editPartnerForm.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. <template>
  2. <a-modal
  3. title="编辑合作伙伴"
  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="['partnerId']" />
  19. </a-form-item>
  20. <a-form-item label="标题名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
  21. <a-input
  22. placeholder="请输入标题名称"
  23. v-decorator="['partnerName', {rules: [{required: true, message: '请输入标题名称!'}]}]"
  24. />
  25. </a-form-item>
  26. <a-form-item
  27. label="默认图片"
  28. :labelCol="labelCol"
  29. :wrapperCol="wrapperCol"
  30. has-feedback
  31. :required="true"
  32. >
  33. <div>
  34. <upload-component
  35. ref="upLoadRef"
  36. :remarkTxt="remarkTxt"
  37. @uploadSuccess="uploadSuccess"
  38. v-decorator="[
  39. 'partnerImg',
  40. {
  41. trigger: 'change',
  42. rules: [{ validator: checkimageUrl }]
  43. },
  44. ]"
  45. ></upload-component>
  46. </div>
  47. </a-form-item>
  48. <a-form-item
  49. :labelCol="labelCol"
  50. :wrapperCol="wrapperCol"
  51. label="排序"
  52. :hasFeedback="true"
  53. :required="true"
  54. >
  55. <a-input
  56. placeholder="请输入排序号"
  57. v-decorator="['partnerSort', {rules: [{validator: checkSortIndex}]}]"
  58. />
  59. </a-form-item>
  60. <a-form-item label="是否上线" :labelCol="labelCol" :wrapperCol="wrapperCol" :required="true">
  61. <a-radio-group name="partnerIsLine" v-decorator="['partnerIsLine',{ initialValue: 1 }]">
  62. <a-radio :value="1">上线</a-radio>
  63. <a-radio :value="0">下线</a-radio>
  64. </a-radio-group>
  65. </a-form-item>
  66. </a-form>
  67. </a-spin>
  68. </a-modal>
  69. </template>
  70. <script>
  71. import homeApi from '@/api/homeApi'
  72. import uploadComponent from '@/components/upLoad'
  73. export default {
  74. components: { uploadComponent },
  75. data () {
  76. return {
  77. labelCol: {
  78. xs: { span: 24 },
  79. sm: { span: 5 }
  80. },
  81. wrapperCol: {
  82. xs: { span: 24 },
  83. sm: { span: 15 }
  84. },
  85. visible: false,
  86. confirmLoading: false,
  87. formLoading: false,
  88. form: this.$form.createForm(this),
  89. remarkTxt: '请上传174×54规格图像'
  90. }
  91. },
  92. mounted () {
  93. },
  94. methods: {
  95. // 初始化方法
  96. edit (record) {
  97. this.visible = true
  98. // this.formLoading = true
  99. setTimeout(() => {
  100. this.form.setFieldsValue(
  101. {
  102. partnerId: record.partnerId,
  103. partnerName: record.partnerName,
  104. partnerImg: record.partnerImg,
  105. partnerIsLine: record.partnerIsLine,
  106. partnerSort: record.partnerSort
  107. }
  108. )
  109. this.$nextTick(() => {
  110. this.$refs.upLoadRef.initData([record.partnerImg])
  111. })
  112. }, 100)
  113. },
  114. handleSubmit () {
  115. const {
  116. form: { validateFields }
  117. } = this
  118. this.confirmLoading = true
  119. validateFields((errors, values) => {
  120. if (!errors) {
  121. values.partnerSort = parseInt(values.partnerSort)
  122. homeApi.updatePartner(values)
  123. .then(res => {
  124. if (res.status === 200) {
  125. this.$message.success('编辑成功')
  126. this.visible = false
  127. this.confirmLoading = false
  128. this.$emit('ok', values)
  129. this.form.resetFields()
  130. } else {
  131. this.$message.error('编辑失败:' + res.msg)
  132. }
  133. })
  134. .finally(res => {
  135. this.confirmLoading = false
  136. })
  137. } else {
  138. this.confirmLoading = false
  139. }
  140. })
  141. },
  142. handleCancel () {
  143. this.form.resetFields()
  144. this.visible = false
  145. },
  146. uploadSuccess (avg) {
  147. if (avg.fileList[0]) {
  148. this.form.resetFields('partnerImg')
  149. this.form.setFieldsValue({ 'partnerImg': avg.fileList[0].uri })
  150. }
  151. },
  152. checkimageUrl (rule, value, callback) {
  153. if (value && value.length > 0) {
  154. callback()
  155. return
  156. }
  157. var text = '请上传图片'
  158. callback(text)
  159. },
  160. checkSortIndex (rule, value, callback) {
  161. var text = '请输入排序号!'
  162. if (!value) {
  163. callback(text)
  164. } else if (/(^[1-9]\d*$)/.test(value)) {
  165. callback()
  166. } else {
  167. text = '请输入数字'
  168. callback(text)
  169. }
  170. }
  171. }
  172. }
  173. </script>