CustomSelectTree.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <template>
  2. <div>
  3. <!-- v-model="userList" -->
  4. <el-select
  5. v-model="prop.form.customPushConfigList[index].customUserList"
  6. value-key="id"
  7. multiple
  8. placeholder="请选择人员"
  9. @click="dialogVisible = !disableType.contentDisable"
  10. :disabled="disableType.contentDisable"
  11. >
  12. <el-option v-for="user in selectedUser" :key="user.id" :label="user.name" :value="user">
  13. </el-option>
  14. </el-select>
  15. <el-dialog
  16. v-model="dialogVisible"
  17. title="添加组内成员"
  18. align-center
  19. :close-on-click-modal="false"
  20. style="height: 583px"
  21. :width="731"
  22. :destroy-on-close="true"
  23. >
  24. <SelectTree @cancel="handleCancle" @submit="handleSubmit" :selectedUser="selectedUser" />
  25. </el-dialog>
  26. </div>
  27. </template>
  28. <script lang="ts" setup>
  29. import { ref, onMounted } from 'vue';
  30. import SelectTree from './persongroup/components/SelectTree.vue';
  31. interface UserList {
  32. id: string;
  33. name: string;
  34. userId: number;
  35. }
  36. const dialogVisible = ref<boolean>(false);
  37. // const userList = ref<UserList[]>([]);
  38. const selectedUser = ref<UserList[]>([]);
  39. const prop = defineProps(['form', 'disableType', 'index'])
  40. // const userIDList = ref()
  41. const handleCancle = () => {
  42. dialogVisible.value = false;
  43. };
  44. const handleSubmit = (selectedData: UserList[]) => {
  45. selectedUser.value = selectedData;
  46. prop.form.customPushConfigList[prop.index].customUserList.length = 0
  47. prop.form.customPushConfigList[prop.index].customUserList.push(...selectedUser.value);
  48. dialogVisible.value = false;
  49. };
  50. onMounted(()=>{
  51. if(prop.form.customPushConfigList[prop.index].customUserList.length > 0){
  52. // selectedUser.value = prop.form.customUserList.value
  53. selectedUser.value = prop.form.customPushConfigList[prop.index].customUserList
  54. // console.log("prop.form.customPushConfigList[prop.index].customUserList.value", prop.form.customPushConfigList[prop.index].customUserList);
  55. // console.log("selectedUser.value", selectedUser.value);
  56. }
  57. })
  58. </script>
  59. <style lang="scss" scoped>
  60. ::v-deep .el-dialog__body {
  61. height: 527px;
  62. }
  63. ::v-deep .el-select__selection {
  64. max-height: 100px;
  65. overflow-y: auto;
  66. }
  67. </style>