OrgManagementDialog.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <template>
  2. <el-dialog
  3. ref="dialog"
  4. :title="(isEdit ? '编辑' : '新增') + '机构'"
  5. width="480px"
  6. :visible.sync="visible"
  7. @close="closeDialog"
  8. >
  9. <el-form
  10. :model="form"
  11. ref="form"
  12. :rules="rules"
  13. label-position="right"
  14. label-width="140px"
  15. >
  16. <el-row>
  17. <el-form-item label="机构名称" prop="name">
  18. <el-input
  19. class="pull_length"
  20. v-model="form.name"
  21. placeholder="机构名称"
  22. />
  23. </el-form-item>
  24. </el-row>
  25. <el-row>
  26. <el-form-item label="机构编码" prop="code">
  27. <el-input
  28. class="pull_length"
  29. v-model="form.code"
  30. :disabled="!!isEdit"
  31. placeholder="机构编码"
  32. />
  33. </el-form-item>
  34. </el-row>
  35. <el-row>
  36. <el-form-item label="负责人" prop="contactName">
  37. <el-input
  38. class="pull_length"
  39. v-model="form.contactName"
  40. placeholder="负责人"
  41. />
  42. </el-form-item>
  43. </el-row>
  44. <el-row>
  45. <el-form-item label="联系方式" prop="contactPhone">
  46. <el-input
  47. class="pull_length"
  48. v-model="form.contactPhone"
  49. placeholder="联系方式"
  50. />
  51. </el-form-item>
  52. </el-row>
  53. <el-row>
  54. <el-form-item label="logo" prop="logo">
  55. <UploadFile v-model="form.logo" />
  56. </el-form-item>
  57. </el-row>
  58. <el-row>
  59. <el-form-item label="是否启用模考" prop="enableSimulate">
  60. <el-radio-group class="pull_right_sm" v-model="form.enableSimulate">
  61. <el-radio :label="1">启用</el-radio>
  62. <el-radio :label="0">禁用</el-radio>
  63. </el-radio-group>
  64. </el-form-item>
  65. </el-row>
  66. <el-row>
  67. <el-form-item label="是否视频回放" prop="enableMonitorRecord">
  68. <el-radio-group
  69. class="pull_right_sm"
  70. v-model="form.enableMonitorRecord"
  71. >
  72. <el-radio :label="1">启用</el-radio>
  73. <el-radio :label="0">禁用</el-radio>
  74. </el-radio-group>
  75. </el-form-item>
  76. </el-row>
  77. <el-row>
  78. <el-form-item label="是否使用活体检测" prop="enableLiveness">
  79. <el-radio-group class="pull_right_sm" v-model="form.enableLiveness">
  80. <el-radio :label="1">启用</el-radio>
  81. <el-radio :label="0">禁用</el-radio>
  82. </el-radio-group>
  83. </el-form-item>
  84. </el-row>
  85. <el-row>
  86. <el-form-item label="状态" prop="enable">
  87. <el-radio-group class="pull_right_sm" v-model="form.enable">
  88. <el-radio :label="1">启用</el-radio>
  89. <el-radio :label="0">禁用</el-radio>
  90. </el-radio-group>
  91. </el-form-item>
  92. </el-row>
  93. <el-row class="d-flex justify-content-center">
  94. <el-button type="primary" @click="submitForm" :loading="loading"
  95. >保 存</el-button
  96. >
  97. <el-button @click="closeDialog">取 消</el-button>
  98. </el-row>
  99. </el-form>
  100. </el-dialog>
  101. </template>
  102. <script>
  103. import { searchOrg, saveOrg } from "@/api/system-org";
  104. import UploadFile from "./UploadFile";
  105. export default {
  106. name: "OrgManagementDialog",
  107. props: {
  108. org: Object,
  109. },
  110. components: { UploadFile },
  111. computed: {
  112. isEdit() {
  113. return this.org.id;
  114. },
  115. },
  116. data() {
  117. return {
  118. visible: false,
  119. form: {},
  120. rules: {},
  121. loading: false,
  122. };
  123. },
  124. watch: {
  125. org: {
  126. immediate: true,
  127. handler: async function () {
  128. if (this.isEdit) {
  129. let d_loading;
  130. try {
  131. d_loading = this.$loading({ target: this.$refs["dialog"].$el });
  132. // await new Promise((r) => setTimeout(r, 3000));
  133. const res = await searchOrg(this.org.id);
  134. this.form = res.data.data[0];
  135. } finally {
  136. d_loading.close();
  137. }
  138. } else {
  139. this.form = {
  140. name: "",
  141. code: "",
  142. contactName: "",
  143. contactPhone: "",
  144. logo: null,
  145. enableSimulate: 0,
  146. enableMonitorRecord: 0,
  147. enableLiveness: 0,
  148. enable: 0,
  149. };
  150. }
  151. },
  152. },
  153. },
  154. methods: {
  155. openDialog() {
  156. this.visible = true;
  157. },
  158. closeDialog() {
  159. this.visible = false;
  160. },
  161. async submitForm() {
  162. let data = this.form;
  163. if (this.isEdit) {
  164. data = { ...data, id: this.org.id };
  165. }
  166. try {
  167. this.loading = true;
  168. await saveOrg(data);
  169. this.$emit("reload");
  170. this.$notify({ title: "保存成功", type: "success" });
  171. this.closeDialog();
  172. } finally {
  173. this.loading = false;
  174. }
  175. },
  176. },
  177. };
  178. </script>
  179. <style></style>