addPartnerForm.vue 4.3 KB

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