editPerson.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <script setup lang="ts">
  2. import { ref, reactive } from "vue";
  3. import { ElMessageBox, ElMessage } from "element-plus";
  4. import type { DrawerProps, FormItemProps, FormProps } from "element-plus";
  5. import { postUpdateGroupByCode } from "@/api/userGroup";
  6. const drawer = ref(false);
  7. const formRef = ref();
  8. const emit = defineEmits(["handleClick"]);
  9. const disabledValue = ref(true);
  10. const direction = ref<DrawerProps["direction"]>("rtl");
  11. const formLabelAlign = reactive({
  12. groupName: "",
  13. leaderCode: "",
  14. groupCode: "",
  15. hospitalCode: ""
  16. });
  17. const postUpdateGroupByCodeApi = async () => {
  18. const { code } = await postUpdateGroupByCode(formLabelAlign);
  19. if (code === 200) {
  20. emit("handleClick");
  21. ElMessage({
  22. message: "保存成功",
  23. type: "success"
  24. });
  25. }
  26. };
  27. const handleClose = (done: () => void) => {
  28. // ElMessageBox.confirm("配置项未保存,确认关闭", {
  29. // type: "warning"
  30. // }).then(() => {
  31. // });
  32. formRef.value.clearValidate(); // 清除验证错误
  33. formRef.value.resetFields(); // 重置表单字段
  34. drawer.value = false;
  35. disabledValue.value = true;
  36. editShow.value = true;
  37. };
  38. function cancelClick() {
  39. formRef.value.validate(valid => {
  40. if (valid) {
  41. disabledValue.value = true;
  42. editShow.value = true;
  43. }
  44. });
  45. // drawer.value = false;
  46. }
  47. function confirmClick() {
  48. formRef.value.validate(valid => {
  49. if (valid) {
  50. disabledValue.value = true;
  51. editShow.value = true;
  52. drawer.value = !drawer.value;
  53. postUpdateGroupByCodeApi();
  54. }
  55. });
  56. }
  57. const open = row => {
  58. if (row) {
  59. console.log("11111", row);
  60. formLabelAlign.groupName = row.groupName;
  61. formLabelAlign.leaderCode = row.leaderCode;
  62. formLabelAlign.groupCode = row.groupCode;
  63. formLabelAlign.hospitalCode = row.hospitalCode;
  64. }
  65. drawer.value = true;
  66. };
  67. const editShow = ref(true);
  68. // 编辑
  69. const editClick = () => {
  70. console.log("11111", formLabelAlign);
  71. editShow.value = false;
  72. disabledValue.value = false;
  73. };
  74. defineExpose({
  75. open
  76. });
  77. const timer = ref("");
  78. </script>
  79. <template>
  80. <div>
  81. <el-drawer
  82. v-model="drawer"
  83. :direction="direction"
  84. :before-close="handleClose"
  85. >
  86. <template #header>
  87. <h4>用户组详情</h4>
  88. </template>
  89. <template #default>
  90. <div>
  91. <el-form
  92. ref="formRef"
  93. label-position="top"
  94. label-width="auto"
  95. :model="formLabelAlign"
  96. >
  97. <el-form-item label="用户组名称" label-position="top">
  98. <el-input
  99. v-model="formLabelAlign.groupName"
  100. :disabled="disabledValue"
  101. />
  102. </el-form-item>
  103. <el-form-item label="用户组编号" label-position="top">
  104. <el-input
  105. v-model="formLabelAlign.groupCode"
  106. :disabled="disabledValue"
  107. />
  108. </el-form-item>
  109. <el-form-item label="用户组ID" label-position="top">
  110. <el-input v-model="formLabelAlign.hospitalCode" disabled />
  111. </el-form-item>
  112. <el-form-item label="用户组负责人" label-position="top">
  113. <el-input
  114. v-model="formLabelAlign.leaderCode"
  115. :disabled="disabledValue"
  116. />
  117. </el-form-item>
  118. </el-form>
  119. </div>
  120. </template>
  121. <template #footer>
  122. <el-button v-if="editShow" type="warning" @click="editClick"
  123. >编辑</el-button
  124. >
  125. <div v-else>
  126. <el-button @click="cancelClick">取消</el-button>
  127. <el-button type="primary" @click="confirmClick">确认</el-button>
  128. </div>
  129. </template>
  130. </el-drawer>
  131. </div>
  132. </template>