[update] 企标流程标准化节点只能从流程与标准化部门里选人

This commit is contained in:
lideqin
2024-07-01 18:26:11 +08:00
parent 2cfe5b0bda
commit 3bdd48b83e
11 changed files with 80 additions and 20 deletions
+9
View File
@@ -45,6 +45,7 @@
input-type="textarea" /> input-type="textarea" />
<user-selection v-else-if="step.chooseSource === 'user'" <user-selection v-else-if="step.chooseSource === 'user'"
:type="step.chooseType" :type="step.chooseType"
:isOnlySelectFromOneDept="onlySelectFromFlowStation.includes(step.xmlNodeId)"
v-model="step.linkUserIds" v-model="step.linkUserIds"
:name-str="step.linkUserIds_dictText" :name-str="step.linkUserIds_dictText"
:filedName="step.variableName" :filedName="step.variableName"
@@ -102,6 +103,14 @@ export default {
default: () => { default: () => {
return [] return []
} }
},
// 只能在标准与流程所里选人的节点
onlySelectFromFlowStation: {
type: Array,
required: false,
default: () => {
return []
}
} }
}, },
data () { data () {
+42 -1
View File
@@ -22,6 +22,7 @@
:getPopupContainer="triggerNode=> triggerNode.parentNode" :getPopupContainer="triggerNode=> triggerNode.parentNode"
style="width: 100%" style="width: 100%"
:tree-data="categoryTreeList" :tree-data="categoryTreeList"
:disabled="isOnlySelectFromOneDept"
:placeholder="$t('pleaseSelect')" :placeholder="$t('pleaseSelect')"
/> />
</a-form-item> </a-form-item>
@@ -110,6 +111,19 @@ export default {
type: Boolean, type: Boolean,
required: false, required: false,
default: true default: true
},
// 固定只能从某个部门选人,与isOnlySelectFromSomeDept一起用
fixDepart: {
type: String,
required: false,
// 默认标准与流程所
default: '流程与标准化'
},
// 是否固定只能从某个部门选人
isOnlySelectFromOneDept: {
type: Boolean,
required: false,
default: false
} }
}, },
watch: { watch: {
@@ -229,7 +243,8 @@ export default {
isClickedSearch: false, // 改完搜索条件是否点击过搜索 isClickedSearch: false, // 改完搜索条件是否点击过搜索
oldQueryParam: {}, // 上一次的搜索条件,用于从一个搜索条件改成另一个搜索条件,但是没有点搜索,这时候全选时传旧的搜索条件 oldQueryParam: {}, // 上一次的搜索条件,用于从一个搜索条件改成另一个搜索条件,但是没有点搜索,这时候全选时传旧的搜索条件
oldTotal: 0, oldTotal: 0,
currentQueryAllData: [] // 当前查询条件下的所有数据 currentQueryAllData: [], // 当前查询条件下的所有数据
fixDepartId: ''
} }
}, },
methods: { methods: {
@@ -248,11 +263,33 @@ export default {
queryDepartTreeList().then((res) => { queryDepartTreeList().then((res) => {
if (res.success) { if (res.success) {
this.categoryTreeList = res.result this.categoryTreeList = res.result
// 固定只能从某个部门选人,查找该部门id
if (this.isOnlySelectFromOneDept) {
const targetNode = this.findNodeInTreeList(this.categoryTreeList, this.fixDepart)
this.fixDepartId = targetNode.id
this.queryParam.departId = targetNode.id
}
} else { } else {
this.categoryTreeList = [] this.categoryTreeList = []
} }
}) })
}, },
findNodeInTreeList (treeData, name) {
let node = {}
for (const item of treeData) {
if (item.departName === name) {
node = item
break
}
if (item.children && item.children.length > 0) {
node = this.findNodeInTreeList(item.children, name)
if (node && node.id) {
break
}
}
}
return node && node.id ? node : {}
},
// 初始化角色字典 // 初始化角色字典
initRoleList () { initRoleList () {
queryall().then((res) => { queryall().then((res) => {
@@ -325,6 +362,9 @@ export default {
}, },
searchReset () { searchReset () {
this.queryParam = {} this.queryParam = {}
if (this.isOnlySelectFromOneDept) {
this.queryParam.departId = this.fixDepartId
}
this.loadData(1) this.loadData(1)
}, },
searchQuery () { searchQuery () {
@@ -453,6 +493,7 @@ export default {
showSizeChanger: true, showSizeChanger: true,
total: 0 total: 0
} }
this.dataSource = []
} }
} }
} }
@@ -77,7 +77,7 @@
<!-- 人员信息 --> <!-- 人员信息 -->
<div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0"> <div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0">
<process-detail-list :processKey="ProcessKey.ES_ABOLISH.value"> <process-detail-list :processKey="ProcessKey.ES_ABOLISH.value">
<personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNodeId" :notPermissField="['relatedUserList']"></personnel-info> <personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNodeId" :notPermissField="['relatedUserList']" :onlySelectFromFlowStation="onlySelectFromFlowStation"></personnel-info>
</process-detail-list> </process-detail-list>
</div> </div>
<!-- 操作按钮 --> <!-- 操作按钮 -->
@@ -237,7 +237,8 @@ export default {
personnelInfoData: [], personnelInfoData: [],
url: { url: {
list: '' // 人员信息的右侧表格获取接口 list: '' // 人员信息的右侧表格获取接口
} },
onlySelectFromFlowStation: [EsAnnulNodes.standardizationApproval.value] // 只能在标准与流程所里选人的节点
} }
}, },
methods: { methods: {
@@ -78,7 +78,7 @@
<!-- 人员信息 --> <!-- 人员信息 -->
<div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0"> <div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0">
<process-detail-list :processKey="ProcessKey.ES_CHANGE.value"> <process-detail-list :processKey="ProcessKey.ES_CHANGE.value">
<personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNodeId"></personnel-info> <personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNodeId" :onlySelectFromFlowStation="onlySelectFromFlowStation"></personnel-info>
</process-detail-list> </process-detail-list>
</div> </div>
<!-- 操作按钮 --> <!-- 操作按钮 -->
@@ -248,7 +248,8 @@ export default {
url: { url: {
list: '' // 人员信息的右侧表格获取接口 list: '' // 人员信息的右侧表格获取接口
}, },
tempDraftId: '' // 临时草稿id,解决发起的时候点在线编辑会生成多条草稿的问题 tempDraftId: '', // 临时草稿id,解决发起的时候点在线编辑会生成多条草稿的问题
onlySelectFromFlowStation: [EsChangeNodes.standardizationApproval.value] // 只能在标准与流程所里选人的节点
} }
}, },
methods: { methods: {
@@ -212,7 +212,7 @@
<!-- 人员信息 --> <!-- 人员信息 -->
<div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0"> <div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0">
<process-detail-list :processKey="ProcessKey.ES_INIT_CHANGE.value"> <process-detail-list :processKey="ProcessKey.ES_INIT_CHANGE.value">
<personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNodeId"></personnel-info> <personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNodeId" :onlySelectFromFlowStation="onlySelectFromFlowStation"></personnel-info>
</process-detail-list> </process-detail-list>
</div> </div>
<!-- 操作按钮 --> <!-- 操作按钮 -->
@@ -482,7 +482,8 @@ export default {
url: { url: {
list: '' // 人员信息的右侧表格获取接口 list: '' // 人员信息的右侧表格获取接口
}, },
isInitData: false // 是否正在初始化数据,正在初始化数据的时候不获取企标编号 isInitData: false, // 是否正在初始化数据,正在初始化数据的时候不获取企标编号
onlySelectFromFlowStation: [EsInitChangeNodes.standardizationApproval.value] // 只能在标准与流程所里选人的节点
} }
}, },
methods: { methods: {
@@ -80,7 +80,7 @@
<!-- 人员信息 --> <!-- 人员信息 -->
<div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0"> <div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0">
<process-detail-list :processKey="ProcessKey.ES_RECHECK.value"> <process-detail-list :processKey="ProcessKey.ES_RECHECK.value">
<personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNodeId" :notPermissField="notPermissField"></personnel-info> <personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNodeId" :notPermissField="notPermissField" :onlySelectFromFlowStation="onlySelectFromFlowStation"></personnel-info>
</process-detail-list> </process-detail-list>
</div> </div>
<!-- 操作按钮 --> <!-- 操作按钮 -->
@@ -285,7 +285,8 @@ export default {
approvalInfoForm: this.$form.createForm(this), // 审批信息表单 approvalInfoForm: this.$form.createForm(this), // 审批信息表单
url: { url: {
list: '' // 人员信息的右侧表格获取接口 list: '' // 人员信息的右侧表格获取接口
} },
onlySelectFromFlowStation: [EsRecheckNodes.standardizationApproval.value] // 只能在标准与流程所里选人的节点
} }
}, },
methods: { methods: {
@@ -110,7 +110,7 @@
<!-- 人员信息 --> <!-- 人员信息 -->
<div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0"> <div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0">
<process-detail-list :processKey="ProcessKey.ES_EDIT.value"> <process-detail-list :processKey="ProcessKey.ES_EDIT.value">
<personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNodeId"></personnel-info> <personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNodeId" :onlySelectFromFlowStation="onlySelectFromFlowStation"></personnel-info>
</process-detail-list> </process-detail-list>
</div> </div>
@@ -370,7 +370,8 @@ export default {
flowInitType: 'newProcess', // 流程发起类型,是自动发起(auto)的还是从新建流程发起的(newProcess) flowInitType: 'newProcess', // 流程发起类型,是自动发起(auto)的还是从新建流程发起的(newProcess)
rejectBtnDisabled: false, // 驳回按钮是否置灰 rejectBtnDisabled: false, // 驳回按钮是否置灰
agreeBtnDisabled: false, // 同意按钮是否置灰 agreeBtnDisabled: false, // 同意按钮是否置灰
tempDraftId: '' // 临时草稿id,解决发起的时候点在线编辑会生成多条草稿的问题 tempDraftId: '', // 临时草稿id,解决发起的时候点在线编辑会生成多条草稿的问题
onlySelectFromFlowStation: [EsRevisionNodes.standardizationAudit.value] // 只能在标准与流程所里选人的节点
} }
}, },
methods: { methods: {
@@ -106,6 +106,7 @@
filedName="approvalUserStandard" filedName="approvalUserStandard"
@nameChange="userSelectNameChange" @nameChange="userSelectNameChange"
:nameStr="formInline.approvalUserStandard_dictText" :nameStr="formInline.approvalUserStandard_dictText"
:isOnlySelectFromOneDept="true"
type="radio"/> type="radio"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
@@ -77,7 +77,7 @@
<!-- 人员信息 --> <!-- 人员信息 -->
<div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0"> <div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0">
<process-detail-list :processKey="ProcessKey.ES_ARCHIVE.value"> <process-detail-list :processKey="ProcessKey.ES_ARCHIVE.value">
<personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNodeId" :notPermissField="['relatedUserList']"></personnel-info> <personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNodeId" :notPermissField="['relatedUserList']" :onlySelectFromFlowStation="onlySelectFromFlowStation"></personnel-info>
</process-detail-list> </process-detail-list>
</div> </div>
<!-- 操作按钮 --> <!-- 操作按钮 -->
@@ -237,7 +237,8 @@ export default {
personnelInfoData: [], personnelInfoData: [],
url: { url: {
list: '' // 人员信息的右侧表格获取接口 list: '' // 人员信息的右侧表格获取接口
} },
onlySelectFromFlowStation: [EsSealSaveNodes.standardizationApproval.value] // 只能在标准与流程所里选人的节点
} }
}, },
methods: { methods: {
@@ -77,7 +77,7 @@
<!-- 人员信息 --> <!-- 人员信息 -->
<div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0"> <div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0">
<process-detail-list :processKey="ProcessKey.ES_ENABLE.value"> <process-detail-list :processKey="ProcessKey.ES_ENABLE.value">
<personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNodeId" :notPermissField="['relatedUserList']"></personnel-info> <personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNodeId" :notPermissField="['relatedUserList']" :onlySelectFromFlowStation="onlySelectFromFlowStation"></personnel-info>
</process-detail-list> </process-detail-list>
</div> </div>
<!-- 操作按钮 --> <!-- 操作按钮 -->
@@ -237,7 +237,8 @@ export default {
personnelInfoData: [], personnelInfoData: [],
url: { url: {
list: '' // 人员信息的右侧表格获取接口 list: '' // 人员信息的右侧表格获取接口
} },
onlySelectFromFlowStation: [EsStartUseNodes.standardizationApproval.value] // 只能在标准与流程所里选人的节点
} }
}, },
methods: { methods: {
@@ -120,7 +120,8 @@
<div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0"> <div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0">
<process-detail-list :process-key="processKey"> <process-detail-list :process-key="processKey">
<template #personnelInfo> <template #personnelInfo>
<personnel-info-pap ref="personnelInfo" :data="personnelInfoData" :current-node="currentNode" /> <personnel-info ref="personnelInfo" :data="personnelInfoData" :current-node="currentNode" :onlySelectFromFlowStation="onlySelectFromFlowStation" />
<!-- <personnel-info-pap ref="personnelInfo" :data="personnelInfoData" :current-node="currentNode" />-->
</template> </template>
</process-detail-list> </process-detail-list>
</div> </div>
@@ -146,8 +147,8 @@
import '@assets/less/common.less' import '@assets/less/common.less'
import InternalDetailPage from '@comp/InternalDetailPage' import InternalDetailPage from '@comp/InternalDetailPage'
import ProcessDetailList from '@comp/ProcessDetailList' import ProcessDetailList from '@comp/ProcessDetailList'
// import PersonnelInfo from '@comp/PersonnelInfo' import PersonnelInfo from '@comp/PersonnelInfo'
import PersonnelInfoPap from './modules/PersonnelInfoPap' // import PersonnelInfoPap from './modules/PersonnelInfoPap'
import BaseInfoTable from '@views/workCenter/permissionApplicationProcess/modules/BaseInfoTable' import BaseInfoTable from '@views/workCenter/permissionApplicationProcess/modules/BaseInfoTable'
import UserSelectModal from '@comp/selection/UserSelectModal' import UserSelectModal from '@comp/selection/UserSelectModal'
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin' import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
@@ -164,7 +165,7 @@ import { cloneDeep } from 'lodash'
const tabList = ['base', 'user'] const tabList = ['base', 'user']
export default { export default {
name: 'PermissionApplicationProcess', name: 'PermissionApplicationProcess',
components: { PersonnelInfoPap, UserSelectModal, BaseInfoTable, ProcessDetailList, InternalDetailPage }, components: { PersonnelInfo, UserSelectModal, BaseInfoTable, ProcessDetailList, InternalDetailPage },
mixins: [WorkCenterMixin], mixins: [WorkCenterMixin],
data () { data () {
return { return {
@@ -241,7 +242,8 @@ export default {
// 业务表单 // 业务表单
baseInfoForm: this.$form.createForm(this), baseInfoForm: this.$form.createForm(this),
// 流程审批信息表单 // 流程审批信息表单
approvalInfoForm: this.$form.createForm(this) approvalInfoForm: this.$form.createForm(this),
onlySelectFromFlowStation: [PermissionApply.standardApproval.value] // 只能在标准与流程所里选人的节点
} }
}, },
computed: { computed: {