Просмотр исходного кода

fix: 5885 公告/通知,目前发布时,无法仅部分人可接收,需要增加范围的选择

johnsen 5 месяцев назад
Родитель
Сommit
3b0494d957

+ 5 - 0
src/business/platform/org/employee/selector.vue

@@ -13,6 +13,7 @@
       :multiple="multiple"
       :filtrate="filtrate"
       :class="className"
+      :isUseScope="isUseScope"
       :party-type-id="partyTypeId"
       :current-org-id="currentOrgId"
       :custom-party-type-options="customPartyTypeOptions"
@@ -106,6 +107,10 @@ export default {
       type: Boolean,
       default: false
     },
+    isUseScope: {
+      type: Boolean,
+      default: false
+    },
     readonlyText: {
       type: String,
       default: 'original'

+ 9 - 2
src/components/ibps-selector/selector.vue

@@ -1,6 +1,11 @@
 <template>
   <div class="el-selector" @click="handleFocus">
     <div
+      @click="
+        (e) => {
+          if (readonly) e.stopPropagation()
+        }
+      "
       v-if="selected && selected.length > 0"
       ref="tags"
       :style="{
@@ -26,7 +31,9 @@
               disable-transitions
               @close="deleteTag(index)"
             >
-              <span class="el-selector__tags-text" :data-label-value="item">{{ item }}</span>
+              <span class="el-selector__tags-text" :data-label-value="item">{{
+                item
+              }}</span>
             </el-tag>
             <el-tag
               v-else-if="tempSearch && index === 1"
@@ -181,7 +188,7 @@ export default {
       return classes
     },
     selectDisabled() {
-      return this.disabled || (this.elForm || {}).disabled
+      return this.readonly || this.disabled || (this.elForm || {}).disabled
     },
     selectSize() {
       return (

+ 23 - 7
src/views/platform/system/news/detail.vue

@@ -55,6 +55,17 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-form-item v-if="isScopeUser" label="公告范围:" prop="scopeUserIds">
+          <ibps-employee-selector
+            v-if="form.scopeUserIds && form.scopeUserIds !== 'ALL'"
+            :readonly="true"
+            :multiple="true"
+            :isUseScope="true"
+            placeholder="不选择时默认全部"
+            v-model="form.scopeUserIds"
+          />
+          <el-tag v-else>全部</el-tag>
+        </el-form-item>
         <el-form-item label="附件:" prop="fileAttach">
           <ibps-attachment-selector
             v-if="form.fileAttach"
@@ -86,12 +97,14 @@ import IbpsTypeSelect from '@/business/platform/cat/type/select'
 import IbpsAttachmentSelector from '@/business/platform/file/attachment/selector'
 import IbpsUeditor from '@/components/ibps-ueditor'
 import { getFile } from '@/utils/avatar'
+import IbpsEmployeeSelector from '@/business/platform/org/employee/selector'
 import { isPublicOptions, publicItemOptions, typeOptions } from './constants'
 export default {
   components: {
     IbpsAttachmentSelector,
     IbpsUeditor,
-    IbpsTypeSelect
+    IbpsTypeSelect,
+    IbpsEmployeeSelector
   },
   props: {
     visible: {
@@ -114,7 +127,9 @@ export default {
       typeOptions: typeOptions,
       publicItemOptions: publicItemOptions,
       isPublicOptions: isPublicOptions,
-      form: {},
+      form: {
+        scopeUserIds: ''
+      },
       toolbars: [{ key: 'cancel', label: '关闭' }]
     }
   },
@@ -124,6 +139,10 @@ export default {
     },
     image() {
       return getFile(this.form.picture)
+    },
+    isScopeUser() {
+      const setting = this.$store.getters.setting
+      return setting?.system?.isScopeUser
     }
   },
   watch: {
@@ -182,11 +201,8 @@ export default {
   .text-border {
     width: 100%;
     color: #000000;
-    box-shadow:
-      0 0 0 0 rgba(0, 0, 0, 0.1),
-      0 0 0 0 rgba(0, 0, 0, 0.1),
-      0 0 0 0 rgba(0, 0, 0, 0.1),
-      0 1px 0px 0 rgba(0, 0, 0, 0.1);
+    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.1), 0 0 0 0 rgba(0, 0, 0, 0.1),
+      0 0 0 0 rgba(0, 0, 0, 0.1), 0 1px 0px 0 rgba(0, 0, 0, 0.1);
     min-height: 38px;
     font-size: 14px;
     font-weight: bold;

+ 2 - 0
src/views/platform/system/news/edit.vue

@@ -57,6 +57,8 @@
         <el-form-item v-if="isScopeUser" label="公告范围:" prop="scopeUserIds">
           <ibps-employee-selector
             :multiple="true"
+            :isUseScope="true"
+            placeholder="不选择时默认全部"
             v-model="form.scopeUserIds"
           />
         </el-form-item>