diff --git a/src/common/lang/zh-cn.js b/src/common/lang/zh-cn.js index 78d5ca4f..30e23c37 100644 --- a/src/common/lang/zh-cn.js +++ b/src/common/lang/zh-cn.js @@ -187,6 +187,7 @@ module.exports = { pleaseSelectDate: '请选择日期', noFileAvailableForPreview: '暂无可预览的文件', enterpriseStandard: '企业标准', + pleaseAtLeastSelectOneUser: '请至少选择一个用户', // 树右键 treeRight: { addFolder: '新增文件夹', diff --git a/src/components/selection/UserSelectByContactModal.vue b/src/components/selection/UserSelectByContactModal.vue index 8d55283d..ee224115 100644 --- a/src/components/selection/UserSelectByContactModal.vue +++ b/src/components/selection/UserSelectByContactModal.vue @@ -73,6 +73,12 @@ export default { default: () => { return '' } + }, + // 是否校验必选 + checkRequired: { + type: Boolean, + required: false, + default: true } }, watch: { @@ -254,6 +260,14 @@ export default { this.selectedRowKeys = this.selectedRowKeys.filter(item => item !== record.contactId) }, handleOk () { + if (this.checkRequired && (!this.selectedRowKeys || this.selectedRowKeys.length === 0)) { + if (this.type === 'radio') { + this.$message.warning(this.$t('docTool.split.pleaseSelectUser')) + } else { + this.$message.warning(this.$t('pleaseAtLeastSelectOneUser')) + } + return + } this.$emit('nameChange', this.dataSourceRight.map(item => item.contactId_dictText).join(',')) this.$emit('change', this.selectedRowKeys.join(',')) this.$emit('listChange', this.dataSourceRight) diff --git a/src/components/selection/UserSelectByContactNoMergeModal.vue b/src/components/selection/UserSelectByContactNoMergeModal.vue index ae827be2..72ada66f 100644 --- a/src/components/selection/UserSelectByContactNoMergeModal.vue +++ b/src/components/selection/UserSelectByContactNoMergeModal.vue @@ -80,6 +80,12 @@ export default { default: () => { return [] } + }, + // 是否校验必选 + checkRequired: { + type: Boolean, + required: false, + default: true } }, // computed: { @@ -278,6 +284,14 @@ export default { this.selectedRowKeys = this.selectedRowKeys.filter(item => item !== record.id) }, handleOk () { + if (this.checkRequired && (!this.selectedRowKeys || this.selectedRowKeys.length === 0)) { + if (this.type === 'radio') { + this.$message.warning(this.$t('docTool.split.pleaseSelectUser')) + } else { + this.$message.warning(this.$t('pleaseAtLeastSelectOneUser')) + } + return + } this.$emit('nameChange', this.dataSourceRight.map(item => item.contactId_dictText).join(',')) this.$emit('change', this.selectedRowKeys.join(',')) this.$emit('listChange', this.dataSourceRight) diff --git a/src/components/selection/UserSelectByWorkGroupModal.vue b/src/components/selection/UserSelectByWorkGroupModal.vue index e48076a0..8c5c4613 100644 --- a/src/components/selection/UserSelectByWorkGroupModal.vue +++ b/src/components/selection/UserSelectByWorkGroupModal.vue @@ -126,6 +126,12 @@ export default { default: () => { return '' } + }, + // 是否校验必选 + checkRequired: { + type: Boolean, + required: false, + default: true } }, watch: { @@ -346,6 +352,14 @@ export default { this.selectedRowKeys = this.selectedRowKeys.filter(item => item !== record.userId) }, handleOk () { + if (this.checkRequired && (!this.selectedRowKeys || this.selectedRowKeys.length === 0)) { + if (this.type === 'radio') { + this.$message.warning(this.$t('docTool.split.pleaseSelectUser')) + } else { + this.$message.warning(this.$t('pleaseAtLeastSelectOneUser')) + } + return + } this.$emit('change', this.selectedRowKeys.join(',')) this.$emit('nameChange', this.dataSourceRight.map(item => item.realname + '(' + item.username + ')').join(',')) this.close() diff --git a/src/components/selection/UserSelectModal.vue b/src/components/selection/UserSelectModal.vue index 730f074b..70f6938c 100644 --- a/src/components/selection/UserSelectModal.vue +++ b/src/components/selection/UserSelectModal.vue @@ -106,7 +106,7 @@ export default { checkRequired: { type: Boolean, required: false, - default: false + default: true } }, watch: { @@ -305,7 +305,11 @@ export default { }, handleOk () { if (this.checkRequired && (!this.selectedRowKeys || this.selectedRowKeys.length === 0)) { - this.$message.warning(this.$t('docTool.split.pleaseSelectUser')) + if (this.type === 'radio') { + this.$message.warning(this.$t('docTool.split.pleaseSelectUser')) + } else { + this.$message.warning(this.$t('pleaseAtLeastSelectOneUser')) + } return } this.$emit('nameChange', this.dataSourceRight.map(item => item.realname + '(' + item.username + ')').join(','))