ModifyAppEnv.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <template>
  2. <el-dialog
  3. class="modify-app-env"
  4. :visible.sync="modalIsShow"
  5. :title="title"
  6. top="10px"
  7. width="540px"
  8. :close-on-click-modal="false"
  9. :close-on-press-escape="false"
  10. append-to-body
  11. @opened="visibleChange"
  12. >
  13. <el-form
  14. ref="modalFormComp"
  15. :model="modalForm"
  16. :rules="rules"
  17. label-width="80px"
  18. >
  19. <el-form-item prop="name" label="名称:">
  20. <el-input
  21. v-model.trim="modalForm.name"
  22. placeholder="请输入名称"
  23. clearable
  24. ></el-input>
  25. </el-form-item>
  26. <el-form-item prop="code" label="编码:">
  27. <el-input
  28. v-model.trim="modalForm.code"
  29. placeholder="请输入编码"
  30. clearable
  31. ></el-input>
  32. </el-form-item>
  33. <el-form-item prop="type" label="分类:">
  34. <el-select
  35. v-model="modalForm.type"
  36. placeholder="请选择分类"
  37. clearable
  38. :disabled="isEdit"
  39. >
  40. <el-option
  41. v-for="item in types"
  42. :key="item.code"
  43. :value="item.code"
  44. :label="item.name"
  45. ></el-option>
  46. </el-select>
  47. </el-form-item>
  48. <el-form-item prop="userId" label="维护人:">
  49. <user-select
  50. v-model="modalForm.userId"
  51. placeholder="请选择维护人"
  52. :filter-data="{ enable: true }"
  53. ></user-select>
  54. </el-form-item>
  55. </el-form>
  56. <div slot="footer">
  57. <el-button type="danger" @click="cancel" plain>取消</el-button>
  58. <el-button type="primary" :disabled="isSubmit" @click="submit"
  59. >确认</el-button
  60. >
  61. </div>
  62. </el-dialog>
  63. </template>
  64. <script>
  65. import { appEnvInsertOrUpdate } from "../api";
  66. const initModalForm = {
  67. id: "",
  68. appId: null,
  69. name: "",
  70. code: "",
  71. type: "",
  72. userId: null
  73. };
  74. export default {
  75. name: "modify-app-env",
  76. props: {
  77. instance: {
  78. type: Object,
  79. default() {
  80. return {};
  81. }
  82. },
  83. types: {
  84. type: Array,
  85. default() {
  86. return [];
  87. }
  88. }
  89. },
  90. computed: {
  91. isEdit() {
  92. return !!this.instance.id;
  93. },
  94. title() {
  95. return (this.isEdit ? "编辑" : "新增") + "应用环境";
  96. }
  97. },
  98. data() {
  99. return {
  100. modalIsShow: false,
  101. isSubmit: false,
  102. modalForm: { ...initModalForm },
  103. rules: {
  104. name: [
  105. {
  106. required: true,
  107. message: "请输入名称",
  108. trigger: "change"
  109. },
  110. {
  111. max: 50,
  112. message: "名称不能超过50字符",
  113. trigger: "change"
  114. }
  115. ],
  116. code: [
  117. {
  118. required: true,
  119. message: "请输入编码",
  120. trigger: "change"
  121. },
  122. {
  123. max: 50,
  124. message: "编码不能超过50字符",
  125. trigger: "change"
  126. }
  127. ],
  128. type: [
  129. {
  130. required: true,
  131. message: "请选择分类",
  132. trigger: "change"
  133. }
  134. ],
  135. userId: [
  136. {
  137. required: true,
  138. message: "请选择维护人",
  139. trigger: "change"
  140. }
  141. ]
  142. }
  143. };
  144. },
  145. methods: {
  146. initData(val) {
  147. this.modalForm = this.$objAssign(initModalForm, val);
  148. this.$refs.modalFormComp.clearValidate();
  149. },
  150. visibleChange() {
  151. this.initData(this.instance);
  152. },
  153. cancel() {
  154. this.modalIsShow = false;
  155. },
  156. open() {
  157. this.modalIsShow = true;
  158. },
  159. async submit() {
  160. const valid = await this.$refs.modalFormComp.validate().catch(() => {});
  161. if (!valid) return;
  162. if (this.isSubmit) return;
  163. this.isSubmit = true;
  164. let datas = { ...this.modalForm };
  165. const data = await appEnvInsertOrUpdate(datas).catch(() => {});
  166. this.isSubmit = false;
  167. if (!data) return;
  168. this.$message.success(this.title + "成功!");
  169. this.$emit("modified");
  170. this.cancel();
  171. }
  172. }
  173. };
  174. </script>