[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 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 enterprisePlanApprovalDetermine = (params) => postAction('', params)
|
||||||
// 节点一的提交————发起流程
|
// 节点一的提交————发起流程
|
||||||
const enterprisePlanApproval = (params) => postAction('/process/es/initChange/start', params)
|
const enterprisePlanApproval = (params) => postAction('/process/es/initChange/start', params)
|
||||||
|
// 其他节点的提交
|
||||||
|
const enterprisePlanApprovalSubmit = (params) => postAction('', params)
|
||||||
// 保存
|
// 保存
|
||||||
const enterprisePlanApprovalSave = (params) => postAction('/process/es/initChange/save', params)
|
const enterprisePlanApprovalSave = (params) => postAction('/process/es/initChange/save', params)
|
||||||
// 根据三个编号和年代号获取企标编号
|
// 根据三个编号和年代号获取企标编号
|
||||||
@@ -43,6 +45,7 @@ export {
|
|||||||
enterprisePlanApprovalReject,
|
enterprisePlanApprovalReject,
|
||||||
enterprisePlanApprovalDetermine,
|
enterprisePlanApprovalDetermine,
|
||||||
enterprisePlanApproval,
|
enterprisePlanApproval,
|
||||||
|
enterprisePlanApprovalSubmit,
|
||||||
enterprisePlanApprovalSave,
|
enterprisePlanApprovalSave,
|
||||||
getEnStandardNo,
|
getEnStandardNo,
|
||||||
getProcessDataById,
|
getProcessDataById,
|
||||||
|
|||||||
@@ -157,6 +157,7 @@ module.exports = {
|
|||||||
addAtLeastOneRowOfData: 'Please Add At Least One Row Of Data',
|
addAtLeastOneRowOfData: 'Please Add At Least One Row Of Data',
|
||||||
mergeStandardInformation: '合并标准信息',
|
mergeStandardInformation: '合并标准信息',
|
||||||
pleaseEnterPersonnelInfo: '请完整填写人员信息',
|
pleaseEnterPersonnelInfo: '请完整填写人员信息',
|
||||||
|
pleaseEnterRemarks: '请填写备注',
|
||||||
// 树右键
|
// 树右键
|
||||||
treeRight: {
|
treeRight: {
|
||||||
addFolder: 'Create New Folder',
|
addFolder: 'Create New Folder',
|
||||||
|
|||||||
@@ -90,7 +90,8 @@ module.exports = {
|
|||||||
whetherToSendAContact: '是否下发联络人',
|
whetherToSendAContact: '是否下发联络人',
|
||||||
workingGroupContactPerson: '工作组/所联络人',
|
workingGroupContactPerson: '工作组/所联络人',
|
||||||
contactSupervisorSuperiorLeader: '联络人主管级上一级领导',
|
contactSupervisorSuperiorLeader: '联络人主管级上一级领导',
|
||||||
affiliatedWorkingGroup: '隶属工作组'
|
affiliatedWorkingGroup: '隶属工作组',
|
||||||
|
contactsSupervisorLevelLeaders: '收集联络人主管级领导'
|
||||||
},
|
},
|
||||||
// 流程配置
|
// 流程配置
|
||||||
processConfig: {
|
processConfig: {
|
||||||
|
|||||||
@@ -90,7 +90,8 @@ module.exports = {
|
|||||||
whetherToSendAContact: '是否下发联络人',
|
whetherToSendAContact: '是否下发联络人',
|
||||||
workingGroupContactPerson: '工作组/所联络人',
|
workingGroupContactPerson: '工作组/所联络人',
|
||||||
contactSupervisorSuperiorLeader: '联络人主管级上一级领导',
|
contactSupervisorSuperiorLeader: '联络人主管级上一级领导',
|
||||||
affiliatedWorkingGroup: '隶属工作组'
|
affiliatedWorkingGroup: '隶属工作组',
|
||||||
|
contactsSupervisorLevelLeaders: '收集联络人主管级领导'
|
||||||
},
|
},
|
||||||
// 流程配置
|
// 流程配置
|
||||||
processConfig: {
|
processConfig: {
|
||||||
|
|||||||
@@ -160,6 +160,7 @@ module.exports = {
|
|||||||
addAtLeastOneRowOfData: '请至少添加一行数据',
|
addAtLeastOneRowOfData: '请至少添加一行数据',
|
||||||
mergeStandardInformation: '合并标准信息',
|
mergeStandardInformation: '合并标准信息',
|
||||||
pleaseEnterPersonnelInfo: '请完整填写人员信息',
|
pleaseEnterPersonnelInfo: '请完整填写人员信息',
|
||||||
|
pleaseEnterRemarks: '请填写备注',
|
||||||
// 树右键
|
// 树右键
|
||||||
treeRight: {
|
treeRight: {
|
||||||
addFolder: '新增文件夹',
|
addFolder: '新增文件夹',
|
||||||
|
|||||||
+186
-23
@@ -3,16 +3,18 @@
|
|||||||
<!-- 标题右侧tab -->
|
<!-- 标题右侧tab -->
|
||||||
<template v-slot:titleRightCustom>
|
<template v-slot:titleRightCustom>
|
||||||
<div class="table-operator-tab">
|
<div class="table-operator-tab">
|
||||||
|
<!-- 基础信息 -->
|
||||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||||
@click="switchChange('base')">基础信息
|
@click="switchChange('base')">{{ $t('basicInformation') }}
|
||||||
</a>
|
</a>
|
||||||
|
<!-- 人员信息 -->
|
||||||
<a class="switch-item" :class="switchValue === 'user' ? 'table-operator-tab-active' : ''"
|
<a class="switch-item" :class="switchValue === 'user' ? 'table-operator-tab-active' : ''"
|
||||||
@click="switchChange('user')">人员信息
|
@click="switchChange('user')">{{ $t('personalInformation') }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</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>
|
<div class="process-part-title">{{ $t('processInformation') }}</div>
|
||||||
<a-form :form="processInfoForm">
|
<a-form :form="processInfoForm">
|
||||||
@@ -47,6 +49,16 @@
|
|||||||
v-decorator="['processExplain']" />
|
v-decorator="['processExplain']" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</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-row>
|
||||||
</a-form>
|
</a-form>
|
||||||
|
|
||||||
@@ -56,6 +68,12 @@
|
|||||||
<engineer-init-form v-if="currentNode === 1" ref="basicInfoFormRef"></engineer-init-form>
|
<engineer-init-form v-if="currentNode === 1" ref="basicInfoFormRef"></engineer-init-form>
|
||||||
<!-- 节点2、各部所联络人填写/下发任务 -->
|
<!-- 节点2、各部所联络人填写/下发任务 -->
|
||||||
<contact-enter-send-task-form v-if="currentNode === 2" ref="basicInfoFormRef"></contact-enter-send-task-form>
|
<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>
|
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||||
@@ -75,11 +93,48 @@
|
|||||||
</div>
|
</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">
|
<process-detail-list :url="url">
|
||||||
<personnel-info slot="personnelInfo" :data="personnelInfoData" :currentNode="currentNode"></personnel-info>
|
<personnel-info slot="personnelInfo" :data="personnelInfoData" :currentNode="currentNode"></personnel-info>
|
||||||
</process-detail-list>
|
</process-detail-list>
|
||||||
</div>
|
</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>
|
</internal-detail-page>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -89,6 +144,9 @@ import InternalDetailPage from '@/components/InternalDetailPage'
|
|||||||
import PersonnelInfo from '@/components/PersonnelInfo'
|
import PersonnelInfo from '@/components/PersonnelInfo'
|
||||||
import ContactEnterSendTaskForm from './modules/ContactEnterSendTaskForm'
|
import ContactEnterSendTaskForm from './modules/ContactEnterSendTaskForm'
|
||||||
import ProcessDetailList from '../../../components/ProcessDetailList'
|
import ProcessDetailList from '../../../components/ProcessDetailList'
|
||||||
|
import ContactEnterStandardForm from './modules/ContactEnterStandardForm'
|
||||||
|
import OnlyTableForm from './modules/OnlyTableForm'
|
||||||
|
import UserSelectModal from '@/components/selection/UserSelectModal'
|
||||||
|
|
||||||
const personData = [
|
const personData = [
|
||||||
{
|
{
|
||||||
@@ -143,7 +201,16 @@ const personData = [
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'RevisionPlanActivelyReportFlow',
|
name: 'RevisionPlanActivelyReportFlow',
|
||||||
components: { ProcessDetailList, ContactEnterSendTaskForm, EngineerInitForm, InternalDetailPage, PersonnelInfo },
|
components: {
|
||||||
|
OnlyTableForm,
|
||||||
|
ContactEnterStandardForm,
|
||||||
|
ProcessDetailList,
|
||||||
|
ContactEnterSendTaskForm,
|
||||||
|
EngineerInitForm,
|
||||||
|
InternalDetailPage,
|
||||||
|
PersonnelInfo,
|
||||||
|
UserSelectModal
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
pageTitle () {
|
pageTitle () {
|
||||||
return this.$t('flowCenter') + this.$route.meta.title
|
return this.$t('flowCenter') + this.$route.meta.title
|
||||||
@@ -157,6 +224,11 @@ export default {
|
|||||||
return { ...item, canChoose: false }
|
return { ...item, canChoose: false }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 如果是查看进入的,不可编辑,不可操作
|
||||||
|
if (this.$route.query.onlyLook) {
|
||||||
|
this.onlyLook = this.$route.query.onlyLook
|
||||||
|
this.disabled = this.$route.query.onlyLook
|
||||||
|
}
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
@@ -200,7 +272,7 @@ export default {
|
|||||||
validateTrigger: 'blur'
|
validateTrigger: 'blur'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
currentNode: 2,
|
currentNode: 1,
|
||||||
approvalInfoForm: this.$form.createForm(this), // 审批信息表单
|
approvalInfoForm: this.$form.createForm(this), // 审批信息表单
|
||||||
personnelInfoData: [], // 人员信息数据
|
personnelInfoData: [], // 人员信息数据
|
||||||
url: {
|
url: {
|
||||||
@@ -212,32 +284,123 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
switchChange (value) {
|
switchChange (value) {
|
||||||
this.switchValue = 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>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
|
@import '~@assets/less/common.less';
|
||||||
/deep/ .ant-form-item-children {
|
/deep/ .ant-form-item-children {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: inline-block;
|
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>
|
</style>
|
||||||
|
|||||||
+40
-6
@@ -4,7 +4,7 @@
|
|||||||
<div class="collapsible-panel-form">
|
<div class="collapsible-panel-form">
|
||||||
<div class="form-flex-box collapsible-panel-form-content collapsible-content-no-head">
|
<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">
|
<div class="title-text">
|
||||||
<span class="required">*</span>
|
<span class="required">*</span>
|
||||||
<span class="title-text-text" :title="$t('workCenter.revisionPlanActivelyReport.whetherToSendAContact')">
|
<span class="title-text-text" :title="$t('workCenter.revisionPlanActivelyReport.whetherToSendAContact')">
|
||||||
@@ -25,8 +25,8 @@
|
|||||||
<!-- 是否下发联络人选了是,不显示表格,只显示完整表单 -->
|
<!-- 是否下发联络人选了是,不显示表格,只显示完整表单 -->
|
||||||
<template v-if="formInline.whetherToSendAContact === 1">
|
<template v-if="formInline.whetherToSendAContact === 1">
|
||||||
<!-- 工作组/所联络人 -->
|
<!-- 工作组/所联络人 -->
|
||||||
<div class="box-title-text form-flex-item-long">
|
<div class="box-title-text form-flex-item flex-item-long">
|
||||||
<div class="title-text">
|
<div class="title-text title-text-middle">
|
||||||
<span class="required">*</span>
|
<span class="required">*</span>
|
||||||
<span class="title-text-text" :title="$t('workCenter.revisionPlanActivelyReport.workingGroupContactPerson')">
|
<span class="title-text-text" :title="$t('workCenter.revisionPlanActivelyReport.workingGroupContactPerson')">
|
||||||
{{ $t('workCenter.revisionPlanActivelyReport.workingGroupContactPerson') }}
|
{{ $t('workCenter.revisionPlanActivelyReport.workingGroupContactPerson') }}
|
||||||
@@ -43,8 +43,8 @@
|
|||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
</div>
|
</div>
|
||||||
<!-- 联络人主管级上一级领导 -->
|
<!-- 联络人主管级上一级领导 -->
|
||||||
<div class="box-title-text form-flex-item-long">
|
<div class="box-title-text form-flex-item flex-item-long">
|
||||||
<div class="title-text">
|
<div class="title-text title-text-long">
|
||||||
<span class="required">*</span>
|
<span class="required">*</span>
|
||||||
<span class="title-text-text" :title="$t('workCenter.revisionPlanActivelyReport.contactSupervisorSuperiorLeader')">
|
<span class="title-text-text" :title="$t('workCenter.revisionPlanActivelyReport.contactSupervisorSuperiorLeader')">
|
||||||
{{ $t('workCenter.revisionPlanActivelyReport.contactSupervisorSuperiorLeader') }}
|
{{ $t('workCenter.revisionPlanActivelyReport.contactSupervisorSuperiorLeader') }}
|
||||||
@@ -188,6 +188,16 @@ export default {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
columns: [
|
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'),
|
title: this.$t('enterpriseStandardLibrary.plan.revisionType'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
@@ -442,6 +452,30 @@ export default {
|
|||||||
}
|
}
|
||||||
</script>
|
</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>
|
</style>
|
||||||
|
|||||||
+35
-5
@@ -143,6 +143,7 @@
|
|||||||
v-model="formInline.yearNumber"
|
v-model="formInline.yearNumber"
|
||||||
:default-value="yearNumberDefaultValue"
|
:default-value="yearNumberDefaultValue"
|
||||||
date-format="YYYY"
|
date-format="YYYY"
|
||||||
|
@change="decadeCodeChange"
|
||||||
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.yearNumber')" />
|
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.yearNumber')" />
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
</div>
|
</div>
|
||||||
@@ -357,7 +358,7 @@
|
|||||||
<a-form-model-item class="item-model" prop="affiliatedWorkingGroup">
|
<a-form-model-item class="item-model" prop="affiliatedWorkingGroup">
|
||||||
<a-tree-select
|
<a-tree-select
|
||||||
tree-node-filter-prop="title"
|
tree-node-filter-prop="title"
|
||||||
v-model="formInline.workingGroupId"
|
v-model="formInline.affiliatedWorkingGroup"
|
||||||
:maxTagCount="1"
|
:maxTagCount="1"
|
||||||
:show-search="true"
|
:show-search="true"
|
||||||
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||||
@@ -482,7 +483,9 @@ import { StandardSource } from '@/enums/commonEnums'
|
|||||||
import { getWorkGroupTreeList, getFormDictTreeList } from '@/api/api'
|
import { getWorkGroupTreeList, getFormDictTreeList } from '@/api/api'
|
||||||
import UserSelection from '@/components/selection/UserSelection'
|
import UserSelection from '@/components/selection/UserSelection'
|
||||||
import StandardSelection from '@/components/selection/StandardSelection'
|
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 {
|
export default {
|
||||||
name: 'ContactEnterSendTaskModal',
|
name: 'ContactEnterSendTaskModal',
|
||||||
@@ -515,7 +518,7 @@ export default {
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
// 企标编号
|
// 企标编号
|
||||||
enterpriseStandardPlanId: [
|
enterpriseStandardNum: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t('workCenter.enterpriseInitChangePlan.enterpriseStandardNum') + this.$t('cannotEmpty'),
|
message: this.$t('workCenter.enterpriseInitChangePlan.enterpriseStandardNum') + this.$t('cannotEmpty'),
|
||||||
@@ -618,6 +621,22 @@ export default {
|
|||||||
trigger: ['change', 'blur']
|
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: [
|
authorizationDepart: [
|
||||||
{
|
{
|
||||||
@@ -673,7 +692,17 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
add () {
|
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) {
|
edit (record) {
|
||||||
this.visible = true
|
this.visible = true
|
||||||
@@ -706,7 +735,7 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 处理左侧树数据结构
|
// 处理内部工作组数据结构
|
||||||
dealTreeData (treeData) {
|
dealTreeData (treeData) {
|
||||||
return treeData.map(item => {
|
return treeData.map(item => {
|
||||||
item.label = item.name
|
item.label = item.name
|
||||||
@@ -727,6 +756,7 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.rules.enterpriseStandardName[0].required = false
|
this.rules.enterpriseStandardName[0].required = false
|
||||||
}
|
}
|
||||||
|
this.formInline.decadeCode = new Date().getFullYear() + ''
|
||||||
},
|
},
|
||||||
// 选择用户得到用户名
|
// 选择用户得到用户名
|
||||||
userSelectNameChange (value, fieldName) {
|
userSelectNameChange (value, fieldName) {
|
||||||
|
|||||||
+331
-10
@@ -5,19 +5,19 @@
|
|||||||
<div class="form-flex-box collapsible-panel-form-content collapsible-content-no-head">
|
<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-long">
|
||||||
<div class="title-text">
|
<div class="title-text title-text-middle">
|
||||||
<span class="required">*</span>
|
<span class="required">*</span>
|
||||||
<span class="title-text-text" :title="$t('workCenter.revisionPlanActivelyReport.whetherToSendAContact')">
|
<span class="title-text-text" :title="$t('workCenter.revisionPlanActivelyReport.contactsSupervisorLevelLeaders')">
|
||||||
{{ $t('workCenter.revisionPlanActivelyReport.whetherToSendAContact') }}
|
{{ $t('workCenter.revisionPlanActivelyReport.contactsSupervisorLevelLeaders') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="item-model" prop="whetherToSendAContact">
|
<a-form-model-item class="item-model" prop="contactsSupervisorLevelLeaders">
|
||||||
<user-selection :placeholder="$t('pleaseSelect')+$t('workCenter.revisionPlanActivelyReport.workingGroupContactPerson')"
|
<user-selection :placeholder="$t('pleaseSelect')+$t('workCenter.revisionPlanActivelyReport.contactsSupervisorLevelLeaders')"
|
||||||
v-model="formInline.revisionPlanActivelyReport"
|
v-model="formInline.contactsSupervisorLevelLeaders"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
filedName="revisionPlanActivelyReport"
|
filedName="contactsSupervisorLevelLeaders"
|
||||||
@nameChange="userSelectNameChange"
|
@nameChange="userSelectNameChange"
|
||||||
:nameStr="formInline.revisionPlanActivelyReport_dictText"
|
:nameStr="formInline.contactsSupervisorLevelLeaders_dictText"
|
||||||
type="radio" />
|
type="radio" />
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
</div>
|
</div>
|
||||||
@@ -71,15 +71,336 @@
|
|||||||
</j-table>
|
</j-table>
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格新增、编辑弹框 -->
|
<!-- 表格新增、编辑弹框 -->
|
||||||
|
<contact-enter-send-task-modal ref="contactEnterSendTaskModal" @ok="modelFormOk"></contact-enter-send-task-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<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 {
|
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>
|
</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>
|
</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>
|
</div>
|
||||||
</template>
|
</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>
|
<div class="process-part-title">{{ $t('processInformation') }}</div>
|
||||||
<a-form :form="processInfoForm">
|
<a-form :form="processInfoForm">
|
||||||
@@ -201,13 +201,13 @@
|
|||||||
</a-form>
|
</a-form>
|
||||||
</div>
|
</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">
|
<process-detail-list :url="url">
|
||||||
<personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNode + ''"></personnel-info>
|
<personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNode + ''"></personnel-info>
|
||||||
</process-detail-list>
|
</process-detail-list>
|
||||||
</div>
|
</div>
|
||||||
<!-- 操作按钮 -->
|
<!-- 操作按钮 -->
|
||||||
<div class="bottom-operate-box" v-if="!onlyLook">
|
<div class="detail-page-bottom-operate-box" v-if="!onlyLook">
|
||||||
<!-- 发起节点 -->
|
<!-- 发起节点 -->
|
||||||
<template v-if="currentNode === 1">
|
<template v-if="currentNode === 1">
|
||||||
<!-- 保存 -->
|
<!-- 保存 -->
|
||||||
@@ -257,7 +257,8 @@ import {
|
|||||||
enterprisePlanApprovalDetermine,
|
enterprisePlanApprovalDetermine,
|
||||||
enterprisePlanApprovalSave,
|
enterprisePlanApprovalSave,
|
||||||
enterprisePlanApproval,
|
enterprisePlanApproval,
|
||||||
getProcessDataById
|
getProcessDataById,
|
||||||
|
enterprisePlanApprovalSubmit
|
||||||
} from '@/api/workCenter'
|
} from '@/api/workCenter'
|
||||||
import ApprovalBaseInfo from './modules/ApprovalBaseInfo'
|
import ApprovalBaseInfo from './modules/ApprovalBaseInfo'
|
||||||
import FinishTimeChangeBaseInfo from './modules/FinishTimeChangeBaseInfo'
|
import FinishTimeChangeBaseInfo from './modules/FinishTimeChangeBaseInfo'
|
||||||
@@ -285,7 +286,6 @@ const approvalPersonalInfo = [ // 人员信息的数据
|
|||||||
nodeRoleName: '部所联络人',
|
nodeRoleName: '部所联络人',
|
||||||
canChoose: true,
|
canChoose: true,
|
||||||
chooseType: 'radio',
|
chooseType: 'radio',
|
||||||
// todo: 还没有联络人管理模块,暂时用选用户
|
|
||||||
chooseSource: 'contactManage',
|
chooseSource: 'contactManage',
|
||||||
fieldName: 'contactUser'
|
fieldName: 'contactUser'
|
||||||
},
|
},
|
||||||
@@ -337,7 +337,6 @@ const changePersonalInfo = [
|
|||||||
nodeRoleName: '部所联络人',
|
nodeRoleName: '部所联络人',
|
||||||
canChoose: true,
|
canChoose: true,
|
||||||
chooseType: 'radio',
|
chooseType: 'radio',
|
||||||
// todo: 还没有联络人管理模块,暂时用选用户
|
|
||||||
chooseSource: 'contactManage',
|
chooseSource: 'contactManage',
|
||||||
fieldName: 'contactUser'
|
fieldName: 'contactUser'
|
||||||
},
|
},
|
||||||
@@ -478,6 +477,9 @@ export default {
|
|||||||
}
|
}
|
||||||
if (this.currentNode === 1) {
|
if (this.currentNode === 1) {
|
||||||
this.personnelInfoData = approvalPersonalInfo
|
this.personnelInfoData = approvalPersonalInfo
|
||||||
|
this.disabled = false
|
||||||
|
} else {
|
||||||
|
this.disabled = true
|
||||||
}
|
}
|
||||||
// 如果是查看进入的,不可编辑,不可操作
|
// 如果是查看进入的,不可编辑,不可操作
|
||||||
if (this.$route.query.onlyLook) {
|
if (this.$route.query.onlyLook) {
|
||||||
@@ -577,8 +579,8 @@ export default {
|
|||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
// 初始化流程信息
|
// 初始化流程信息
|
||||||
this.processInfoForm.setFieldsValue(pick(this.model[0], 'processName', 'deadlineDate', 'processDescription'))
|
this.processInfoForm.setFieldsValue(pick(this.model[0], 'processName', 'deadlineDate', 'processDescription'))
|
||||||
// 初始化流程审批信息
|
// 初始化流程审批信息,todo:需要判断是不是草稿进来的,草稿进来的才回显审批信息
|
||||||
this.approvalInfoForm.setFieldsValue(pick(this.model[0], 'remarks', 'attachment'))
|
// this.approvalInfoForm.setFieldsValue(pick(this.model[0], 'remarks', 'attachment'))
|
||||||
})
|
})
|
||||||
// 初始化业务基本信息的申请类型和项目类别
|
// 初始化业务基本信息的申请类型和项目类别
|
||||||
this.formInline.applicationCategory = this.model[0].applicationCategory
|
this.formInline.applicationCategory = this.model[0].applicationCategory
|
||||||
@@ -656,6 +658,8 @@ export default {
|
|||||||
const ruleForm = this.formInline
|
const ruleForm = this.formInline
|
||||||
// 流程审批信息
|
// 流程审批信息
|
||||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||||
|
// 部分节点的选人表单
|
||||||
|
const userInfoForm = this.userForm.getFieldsValue()
|
||||||
// 人员信息的数据, 处理成对象
|
// 人员信息的数据, 处理成对象
|
||||||
const personnelInfo = this.$refs.personnelInfo.stepsData
|
const personnelInfo = this.$refs.personnelInfo.stepsData
|
||||||
const personnelObj = {}
|
const personnelObj = {}
|
||||||
@@ -674,7 +678,7 @@ export default {
|
|||||||
if (approvalBaseInfo.enStandardSystem && approvalBaseInfo.enStandardSystem.length > 0) {
|
if (approvalBaseInfo.enStandardSystem && approvalBaseInfo.enStandardSystem.length > 0) {
|
||||||
approvalBaseInfo.enStandardSystem = approvalBaseInfo.enStandardSystem.map(item => item.value).join(',')
|
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)
|
const flag = Object.values(param).some(v => !!v || v === 0)
|
||||||
if (!flag) {
|
if (!flag) {
|
||||||
// 提示至少填写一项
|
// 提示至少填写一项
|
||||||
@@ -684,7 +688,7 @@ export default {
|
|||||||
arr.push(param)
|
arr.push(param)
|
||||||
} else if (this.formInline.projectType === ProjectType.COMPLETE_TIME_CHANGE.value) {
|
} 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)
|
const flag = Object.values(param).some(v => !!v || v === 0)
|
||||||
if (!flag && this.$refs.changeBaseInfo.dataSource.length <= 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 } })
|
arr = this.$refs.changeBaseInfo.dataSource.map(item => { return { ...item, ...param } })
|
||||||
} else if (this.formInline.projectType === ProjectType.WORK_TERMINATE.value) {
|
} 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)
|
const flag = Object.values(param).some(v => !!v || v === 0)
|
||||||
if (!flag && this.$refs.changeBaseInfo.dataSource.length <= 0) {
|
if (!flag && this.$refs.changeBaseInfo.dataSource.length <= 0) {
|
||||||
// 提示至少填写一项
|
// 提示至少填写一项
|
||||||
@@ -708,7 +712,7 @@ export default {
|
|||||||
if (this.$refs.changeBaseInfo) {
|
if (this.$refs.changeBaseInfo) {
|
||||||
dutyDepartChangeForm = this.$refs.changeBaseInfo.formInline
|
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)
|
const flag = Object.values(param).some(v => !!v || v === 0)
|
||||||
if (!flag) {
|
if (!flag) {
|
||||||
// 提示至少填写一项
|
// 提示至少填写一项
|
||||||
@@ -722,7 +726,7 @@ export default {
|
|||||||
if (this.$refs.changeBaseInfo) {
|
if (this.$refs.changeBaseInfo) {
|
||||||
mergeForm = this.$refs.changeBaseInfo.formInline
|
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)
|
const flag = Object.values(param).some(v => !!v || v === 0)
|
||||||
if (!flag) {
|
if (!flag) {
|
||||||
// 提示至少填写一项
|
// 提示至少填写一项
|
||||||
@@ -732,7 +736,7 @@ export default {
|
|||||||
arr.push(param)
|
arr.push(param)
|
||||||
} else {
|
} 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)
|
const flag = Object.values(param).some(v => !!v || v === 0)
|
||||||
if (!flag) {
|
if (!flag) {
|
||||||
// 提示至少填写一项
|
// 提示至少填写一项
|
||||||
@@ -761,10 +765,10 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 校验是否填了所有能填的人员信息
|
// 校验是否填了所有能填的人员信息
|
||||||
// if (!Object.values(personnelObj).every(v => !!v)) {
|
if (!Object.values(personnelObj).every(v => !!v)) {
|
||||||
// this.$message.warning(this.$t('pleaseEnterPersonnelInfo'))
|
this.$message.warning(this.$t('pleaseEnterPersonnelInfo'))
|
||||||
// return
|
return
|
||||||
// }
|
}
|
||||||
this.processInfoForm.validateFields((err, values) => {
|
this.processInfoForm.validateFields((err, values) => {
|
||||||
this.$refs.ruleForm.validate(valid => {
|
this.$refs.ruleForm.validate(valid => {
|
||||||
this.approvalInfoForm.validateFields((approvalErr, approvalValues) => {
|
this.approvalInfoForm.validateFields((approvalErr, approvalValues) => {
|
||||||
@@ -857,33 +861,45 @@ export default {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 提交
|
// 其他节点的提交,校验部分节点需要选人的表单和审批信息即可
|
||||||
handleSubmit () {
|
handleSubmit () {
|
||||||
if (this.loading) return
|
if (this.loading) return
|
||||||
this.processInfoForm.validateFields((err, values) => {
|
this.userForm.validateFields((err, values) => {
|
||||||
this.$refs.ruleForm.validate(valid => {
|
this.approvalInfoForm.validateFields((approvalErr, approvalValues) => {
|
||||||
this.approvalInfoForm.validateFields((approvalErr, approvalValues) => {
|
if (!err && !approvalErr) {
|
||||||
// 立项和变更的数据不一样,分开判断
|
this.loading = true
|
||||||
if (this.formInline.applicationCategory === ApplicationCategory.INITIATION.value) {
|
const param = Object.assign({}, values, approvalValues)
|
||||||
// 是立项
|
param.taskId = this.$route.query.taskId
|
||||||
this.$refs.approvalBaseInfo.$refs.ruleForm.validate(approvalBaseValid => {
|
enterprisePlanApprovalSubmit(param).then(res => {
|
||||||
if (valid && approvalBaseValid && !err && !approvalErr) {
|
if (res.success) {
|
||||||
this.loading = true
|
this.$message.success(res.message)
|
||||||
const param = Object.assign({}, this.$refs.approvalBaseInfo.formInline)
|
} else {
|
||||||
console.log(param)
|
this.$message.warning(res.message)
|
||||||
}
|
}
|
||||||
})
|
}).finally(() => {
|
||||||
} else {
|
this.loading = false
|
||||||
// 是变更
|
})
|
||||||
this.userForm.validateFields((userErr, userValues) => {
|
}
|
||||||
if (valid && !err && !approvalErr && !userErr) {
|
// // 立项和变更的数据不一样,分开判断
|
||||||
this.loading = true
|
// if (this.formInline.applicationCategory === ApplicationCategory.INITIATION.value) {
|
||||||
const param = this.$refs.changeBaseInfo.dataSource
|
// // 是立项
|
||||||
console.log(param)
|
// 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) => {
|
this.approvalInfoForm.validateFields((err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
let param = {}
|
const param = Object.assign({}, values)
|
||||||
param = Object.assign({}, values)
|
|
||||||
param.userId = userIds
|
param.userId = userIds
|
||||||
// param.taskId = this.model[0].id
|
// param.taskId = this.model[0].id
|
||||||
param.taskId = this.$route.query.taskId
|
param.taskId = this.$route.query.taskId
|
||||||
@@ -921,9 +936,8 @@ export default {
|
|||||||
this.approvalInfoForm.validateFields((err, values) => {
|
this.approvalInfoForm.validateFields((err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
let param = {}
|
const param = Object.assign({}, values)
|
||||||
param = Object.assign({}, values)
|
param.taskId = this.$route.query.taskId
|
||||||
param.processId = this.model.id
|
|
||||||
enterprisePlanApprovalAgree(param).then(res => {
|
enterprisePlanApprovalAgree(param).then(res => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.$message.success(res.message)
|
this.$message.success(res.message)
|
||||||
@@ -940,23 +954,27 @@ export default {
|
|||||||
handleReject () {
|
handleReject () {
|
||||||
if (this.loading) return
|
if (this.loading) return
|
||||||
this.validatorRules.remarks.rules[0].required = true
|
this.validatorRules.remarks.rules[0].required = true
|
||||||
this.approvalInfoForm.validateFields((err, values) => {
|
if (!this.approvalInfoForm.getFieldValue('remarks')) {
|
||||||
if (!err) {
|
this.$message.warning(this.$t('pleaseEnterRemarks'))
|
||||||
this.loading = true
|
}
|
||||||
let param = {}
|
this.$nextTick(() => {
|
||||||
param = Object.assign({}, values)
|
this.approvalInfoForm.validateFields((err, values) => {
|
||||||
param.processId = this.model.id
|
if (!err) {
|
||||||
enterprisePlanApprovalReject(param).then(res => {
|
this.loading = true
|
||||||
if (res.success) {
|
const param = Object.assign({}, values)
|
||||||
this.$message.success(res.message)
|
param.taskId = this.$route.query.id
|
||||||
} else {
|
enterprisePlanApprovalReject(param).then(res => {
|
||||||
this.$message.warning(res.message)
|
if (res.success) {
|
||||||
}
|
this.$message.success(res.message)
|
||||||
}).finally(() => {
|
} else {
|
||||||
this.loading = false
|
this.$message.warning(res.message)
|
||||||
this.validatorRules.remarks.rules[0].required = false
|
}
|
||||||
})
|
}).finally(() => {
|
||||||
}
|
this.loading = false
|
||||||
|
this.validatorRules.remarks.rules[0].required = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 确定
|
// 确定
|
||||||
@@ -965,9 +983,8 @@ export default {
|
|||||||
this.approvalInfoForm.validateFields((err, values) => {
|
this.approvalInfoForm.validateFields((err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
let param = {}
|
const param = Object.assign({}, values)
|
||||||
param = Object.assign({}, values)
|
param.taskId = this.$route.query.taskId
|
||||||
param.processId = this.model.id
|
|
||||||
enterprisePlanApprovalDetermine(param).then(res => {
|
enterprisePlanApprovalDetermine(param).then(res => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.$message.success(res.message)
|
this.$message.success(res.message)
|
||||||
@@ -976,7 +993,6 @@ export default {
|
|||||||
}
|
}
|
||||||
}).finally(() => {
|
}).finally(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.validatorRules.remarks.rules[0].required = false
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -986,64 +1002,12 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
|
@import '~@assets/less/common.less';
|
||||||
/deep/ .ant-form-item-children {
|
/deep/ .ant-form-item-children {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: inline-block;
|
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 {
|
.collapsible-content-no-head {
|
||||||
border-top: 1px solid #E5E6EB;
|
border-top: 1px solid #E5E6EB;
|
||||||
border-radius: 8px 8px 8px 8px;
|
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 {
|
.user-form {
|
||||||
margin-top: 24px;
|
margin-top: 24px;
|
||||||
/deep/ .ant-form-item {
|
/deep/ .ant-form-item {
|
||||||
|
|||||||
@@ -213,6 +213,7 @@
|
|||||||
v-model="formInline.enStandardSystem"
|
v-model="formInline.enStandardSystem"
|
||||||
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
|
:disabled="disabled"
|
||||||
:tree-data="standardSystemOptions"
|
:tree-data="standardSystemOptions"
|
||||||
tree-checkable
|
tree-checkable
|
||||||
treeCheckStrictly
|
treeCheckStrictly
|
||||||
|
|||||||
+1
-49
@@ -235,60 +235,12 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
|
@import '~@assets/less/common.less';
|
||||||
/deep/ .ant-form-item-children {
|
/deep/ .ant-form-item-children {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: inline-block;
|
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 {
|
.collapsible-content-no-head {
|
||||||
border-top: 1px solid #E5E6EB;
|
border-top: 1px solid #E5E6EB;
|
||||||
border-radius: 8px 8px 8px 8px;
|
border-radius: 8px 8px 8px 8px;
|
||||||
|
|||||||
+28
-13
@@ -232,6 +232,7 @@ export default {
|
|||||||
required: true,
|
required: true,
|
||||||
message: this.$t('workCenter.enterpriseInitChangePlan.draftPlanFinishDate') + this.$t('cannotEmpty'),
|
message: this.$t('workCenter.enterpriseInitChangePlan.draftPlanFinishDate') + this.$t('cannotEmpty'),
|
||||||
trigger: ['change', 'blur']
|
trigger: ['change', 'blur']
|
||||||
|
// trigger: 'change'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
// 征求意见稿计划完成日期
|
// 征求意见稿计划完成日期
|
||||||
@@ -240,6 +241,7 @@ export default {
|
|||||||
required: true,
|
required: true,
|
||||||
message: this.$t('workCenter.enterpriseInitChangePlan.exposureDraftPlanFinishDate') + this.$t('cannotEmpty'),
|
message: this.$t('workCenter.enterpriseInitChangePlan.exposureDraftPlanFinishDate') + this.$t('cannotEmpty'),
|
||||||
trigger: ['change', 'blur']
|
trigger: ['change', 'blur']
|
||||||
|
// trigger: 'change'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
// 计划报批日期
|
// 计划报批日期
|
||||||
@@ -248,6 +250,7 @@ export default {
|
|||||||
required: true,
|
required: true,
|
||||||
message: this.$t('workCenter.enterpriseInitChangePlan.planSubmissionDate') + this.$t('cannotEmpty'),
|
message: this.$t('workCenter.enterpriseInitChangePlan.planSubmissionDate') + this.$t('cannotEmpty'),
|
||||||
trigger: ['change', 'blur']
|
trigger: ['change', 'blur']
|
||||||
|
// trigger: 'change'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
// 变更原因
|
// 变更原因
|
||||||
@@ -279,19 +282,31 @@ export default {
|
|||||||
// todo: 三个有校验的日期验证不会消失
|
// todo: 三个有校验的日期验证不会消失
|
||||||
console.log(value)
|
console.log(value)
|
||||||
if (value && value.length > 0) {
|
if (value && value.length > 0) {
|
||||||
this.$refs.ruleForm.clearValidate()
|
// this.$refs.ruleForm.clearValidate()
|
||||||
this.formInline.originEnStandardName = value[0].originEnStandardName
|
const formInline = {}
|
||||||
this.formInline.mainDraftingUser = value[0].mainDraftingUser
|
// 企标名称
|
||||||
this.formInline.mainDraftingUser_dictText = value[0].mainDraftingUser_dictText
|
formInline.originEnStandardName = value[0].originEnStandardName
|
||||||
this.formInline.mainDraftingUnit = value[0].mainDraftingUnit
|
// 主起草人
|
||||||
this.formInline.mainDraftingUnit_dictText = value[0].mainDraftingUnit_dictText
|
formInline.mainDraftingUser = value[0].mainDraftingUser
|
||||||
this.formInline.originDraftPlannedCompleteDate = value[0].draftPlannedCompleteDate
|
formInline.mainDraftingUser_dictText = value[0].mainDraftingUser_dictText
|
||||||
this.formInline.originSolicitationDraftPlanCompleteDate = value[0].solicitationDraftPlanCompleteDate
|
// 主起草单位
|
||||||
this.formInline.originPlanApprovalDate = value[0].planApprovalDate
|
formInline.mainDraftingUnit = value[0].mainDraftingUnit
|
||||||
this.formInline.draftPlannedCompleteDate = value[0].draftPlannedCompleteDate
|
formInline.mainDraftingUnit_dictText = value[0].mainDraftingUnit_dictText
|
||||||
this.formInline.solicitationDraftPlanCompleteDate = value[0].solicitationDraftPlanCompleteDate
|
// 原草稿计划完成日期
|
||||||
this.formInline.planApprovalDate = value[0].planApprovalDate
|
formInline.originDraftPlannedCompleteDate = value[0].draftPlannedCompleteDate
|
||||||
this.$refs.ruleForm.validate()
|
// 原征求意见稿计划完成日期
|
||||||
|
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