OrgManagementDialog.vue 4.5 KB

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