addSafetySystem.vue 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <!--
  2. * @Author: liuJie
  3. * @Date: 2026-02-05 10:20:24
  4. * @LastEditors: liuJie
  5. * @LastEditTime: 2026-02-05 20:25:10
  6. * @Describe: 添加组织
  7. -->
  8. <script lang="ts" setup>
  9. import { ref, watch } from 'vue';
  10. const props = withDefaults(
  11. defineProps<{
  12. visible?: boolean;
  13. data?: any;
  14. }>(),
  15. {
  16. visible: false,
  17. data: () => ({}),
  18. },
  19. );
  20. const team = ref('');
  21. const emit = defineEmits(['update:visible', 'confirmAddSafetySystem']);
  22. const dialogVisible = ref(props.visible);
  23. const title = ref('添加组织');
  24. watch(
  25. () => props.visible,
  26. (val) => {
  27. dialogVisible.value = val;
  28. if (val) {
  29. if (props.data.type === 'parent' && props.data.action === 'add') {
  30. title.value = '添加组织';
  31. } else if (props.data.type === 'parent' && props.data.action === 'edit') {
  32. title.value = '编辑组织';
  33. team.value = props.data.orgName;
  34. } else if (props.data.type === 'children' && props.data.action === 'add') {
  35. title.value = '添加子组织';
  36. } else {
  37. title.value = '编辑子组织';
  38. team.value = props.data.orgName;
  39. }
  40. }
  41. },
  42. );
  43. watch(dialogVisible, (val) => {
  44. emit('update:visible', val);
  45. });
  46. const confirmSave = () => {
  47. emit('confirmAddSafetySystem', { value: team.value, ...props.data });
  48. handleClose();
  49. };
  50. function handleClose() {
  51. dialogVisible.value = false;
  52. team.value = '';
  53. }
  54. </script>
  55. <template>
  56. <div class="content">
  57. <el-dialog v-model="dialogVisible" :title="title" width="500" :before-close="handleClose">
  58. <div class="flex items-center">
  59. <span style="width: 120px">组织名称:</span>
  60. <el-input v-model="team"></el-input>
  61. </div>
  62. <template #footer>
  63. <div class="dialog-footer">
  64. <el-button @click="handleClose">取消</el-button>
  65. <el-button type="primary" @click="confirmSave"> 确认 </el-button>
  66. </div>
  67. </template>
  68. </el-dialog>
  69. </div>
  70. </template>
  71. <style lang="scss" scoped></style>