userDept.vue 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <template>
  2. <sc-dialog class="user-dept-dialog" v-model="visible" title="选择用户所属组织" :width="500" @closed="$emit('closed')">
  3. <el-form ref="dialogForm" :model="form" :rules="rules" label-width="112px">
  4. <el-form-item label="用户所属组织:" prop="startorOrgName">
  5. <el-select v-model="form.startorOrgName" placeholder="请选择用户所属组织">
  6. <el-option v-for="item in depts" :key="item.id" :label="item.name" :value="item.name"></el-option>
  7. </el-select>
  8. </el-form-item>
  9. </el-form>
  10. <template #footer>
  11. <el-button @click="visible = false">取 消</el-button>
  12. <el-button type="primary" :loading="isSaveing" @click="submit">下一步</el-button>
  13. </template>
  14. </sc-dialog>
  15. </template>
  16. <script>
  17. export default {
  18. emits: ["closed"],
  19. data() {
  20. return {
  21. visible: false,
  22. depts: [],
  23. form: {
  24. startorOrgName: null
  25. },
  26. rules: {
  27. startorOrgName: [{ required: true, message: "请选择用户所属组织" }]
  28. }
  29. }
  30. },
  31. methods: {
  32. // 显示
  33. open(depts) {
  34. this.depts = depts;
  35. this.visible = true;
  36. return this;
  37. },
  38. // 表单提交方法
  39. submit() {
  40. this.$refs.dialogForm.validate(valid => {
  41. if (valid) {
  42. this.visible = false;
  43. this.$emit("closed", this.form.startorOrgName);
  44. } else {
  45. return false;
  46. }
  47. });
  48. }
  49. }
  50. }
  51. </script>
  52. <style lang="scss" scoped>
  53. .user-dept-dialog :deep(.el-dialog) {
  54. padding: var(--el-dialog-padding-primary) !important;
  55. background: var(--el-dialog-bg-color) !important;
  56. .el-dialog__header {
  57. display: flex !important;
  58. padding: calc(var(--el-dialog-padding-primary) / 2) 0 !important;
  59. &::after {
  60. display: block !important;
  61. }
  62. }
  63. .el-dialog__footer {
  64. display: block !important;
  65. }
  66. .el-dialog__body {
  67. padding: calc(var(--el-dialog-padding-primary) + 10px) 0 !important;
  68. .el-form {
  69. padding: 10px 30px;
  70. }
  71. }
  72. }
  73. @media (max-width: 992px) {
  74. .user-dept-dialog :deep(.el-dialog) .el-dialog__body .el-form {
  75. padding: 10px;
  76. }
  77. }
  78. </style>