editPerson.vue 4.1 KB

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