CustomSelectTree.vue 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. console.log("selectedUser.value", selectedUser.value);
  47. prop.form.customPushConfigList[prop.index].customUserList.length = 0
  48. prop.form.customPushConfigList[prop.index].customUserList.push(...selectedUser.value);
  49. dialogVisible.value = false;
  50. };
  51. onMounted(()=>{
  52. if(prop.form.customPushConfigList[prop.index].customUserList.length > 0){
  53. // selectedUser.value = prop.form.customUserList.value
  54. selectedUser.value = prop.form.customPushConfigList[prop.index].customUserList
  55. // console.log("prop.form.customPushConfigList[prop.index].customUserList.value", prop.form.customPushConfigList[prop.index].customUserList);
  56. // console.log("selectedUser.value", selectedUser.value);
  57. }
  58. })
  59. </script>
  60. <style lang="scss" scoped>
  61. ::v-deep .el-dialog__body {
  62. height: 527px;
  63. }
  64. ::v-deep .el-select__selection {
  65. max-height: 100px;
  66. overflow-y: auto;
  67. }
  68. </style>