editClassifyDictForm.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <template>
  2. <a-modal
  3. :title="modalTitle"
  4. :width="900"
  5. :visible="visible"
  6. :confirmLoading="confirmLoading"
  7. ok-text="保存"
  8. cancel-text="关闭"
  9. @ok="handleSubmit"
  10. @cancel="handleCancel"
  11. :maskClosable="false"
  12. >
  13. <a-spin :spinning="formLoading">
  14. <a-form :form="form">
  15. <a-form-item
  16. style="display: none;"
  17. >
  18. <a-input v-decorator="['id']" />
  19. </a-form-item>
  20. <a-form-item
  21. :required="true"
  22. label="所属类型"
  23. :labelCol="labelCol"
  24. :wrapperCol="wrapperCol"
  25. has-feedback
  26. >
  27. <a-select
  28. style="width: 100%"
  29. placeholder="请选择所属类型"
  30. v-decorator="['systemDictType', {rules: [{ required: true, message: '请选择所属类型!' }]}]"
  31. >
  32. <a-select-option
  33. v-for="(item,index) in typeList"
  34. :key="index"
  35. :value="item.code"
  36. >{{ item.name }}</a-select-option>
  37. </a-select>
  38. </a-form-item>
  39. <a-form-item label="分类名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
  40. <a-input
  41. placeholder="请输入分类名称"
  42. v-decorator="['systemDictClassify', {rules: [{required: true, message: '请输入分类名称!'}]}]"
  43. />
  44. </a-form-item>
  45. <a-form-item label="子分类名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
  46. <a-input
  47. placeholder="请输入子分类名称"
  48. v-decorator="['systemDictSubclassify', {rules: [{required: true, message: '请输入子分类名称!'}]}]"
  49. />
  50. </a-form-item>
  51. <a-form-item
  52. :labelCol="labelCol"
  53. :wrapperCol="wrapperCol"
  54. label="排序"
  55. :hasFeedback="true"
  56. :required="true"
  57. >
  58. <a-input
  59. placeholder="请输入排序号"
  60. v-decorator="['systemDictSort', {rules: [{validator: checkSortIndex}]}]"
  61. />
  62. </a-form-item>
  63. <a-form-item label="是否上线" :labelCol="labelCol" :wrapperCol="wrapperCol" :required="true">
  64. <a-radio-group name="systemDictIsLine" v-decorator="['systemDictIsLine',{ initialValue: 1 }]">
  65. <a-radio :value="1">上线</a-radio>
  66. <a-radio :value="0">下线</a-radio>
  67. </a-radio-group>
  68. </a-form-item>
  69. </a-form>
  70. </a-spin>
  71. </a-modal>
  72. </template>
  73. <script>
  74. import homeApi from '@/api/homeApi'
  75. export default {
  76. data () {
  77. return {
  78. modalTitle: '编辑类型字典',
  79. typeList: homeApi.systemTypeList,
  80. labelCol: {
  81. xs: { span: 24 },
  82. sm: { span: 5 }
  83. },
  84. wrapperCol: {
  85. xs: { span: 24 },
  86. sm: { span: 15 }
  87. },
  88. visible: false,
  89. confirmLoading: false,
  90. formLoading: false,
  91. form: this.$form.createForm(this)
  92. }
  93. },
  94. mounted () {
  95. },
  96. methods: {
  97. // 初始化方法
  98. edit (record) {
  99. this.visible = true
  100. setTimeout(() => {
  101. this.form.setFieldsValue(
  102. {
  103. id: record.systemDictId,
  104. systemDictType: record.systemDictType,
  105. systemDictSubclassify: record.systemDictSubclassify,
  106. systemDictClassify: record.systemDictClassify,
  107. systemDictIsLine: record.systemDictIsLine,
  108. systemDictSort: record.systemDictSort
  109. }
  110. )
  111. }, 100)
  112. },
  113. handleSubmit () {
  114. const {
  115. form: { validateFields }
  116. } = this
  117. this.confirmLoading = true
  118. validateFields((errors, values) => {
  119. if (!errors) {
  120. values.systemDictSort = parseInt(values.systemDictSort)
  121. homeApi.updateSystemDict(values)
  122. .then(res => {
  123. if (res.status === 200) {
  124. this.$message.success('编辑成功')
  125. this.visible = false
  126. this.confirmLoading = false
  127. this.$emit('ok', values)
  128. this.form.resetFields()
  129. } else {
  130. this.$message.error('编辑失败:' + res.msg)
  131. }
  132. })
  133. .finally(res => {
  134. this.confirmLoading = false
  135. })
  136. } else {
  137. this.confirmLoading = false
  138. }
  139. })
  140. },
  141. handleCancel () {
  142. this.form.resetFields()
  143. this.visible = false
  144. },
  145. checkSortIndex (rule, value, callback) {
  146. var text = '请输入排序号!'
  147. if (!value) {
  148. callback(text)
  149. } else if (/(^[1-9]\d*$)/.test(value)) {
  150. callback()
  151. } else {
  152. text = '请输入数字'
  153. callback(text)
  154. }
  155. }
  156. }
  157. }
  158. </script>