知与行后台管理端

editGoods.jsx 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. import React, { useState, useEffect } from 'react';
  2. import { Input, Menu, Dropdown, Button, Icon, message, Table, Divider, Tag, Select, Form, Alert } from 'antd';
  3. import { FormattedMessage } from 'umi-plugin-react/locale';
  4. import channels from '../channel/channelList.less';
  5. import BuildSelect from '../../components/SelectButton/BuildSelect'
  6. import XForm, { FieldTypes } from '../../components/XForm';
  7. import Wangedit from '../../components/Wangedit/Wangedit'
  8. import router from 'umi/router';
  9. import apis from '../../services/apis';
  10. import request from '../../utils/request'
  11. const { TextArea } = Input;
  12. const { Option } = Select;
  13. const header = props => {
  14. const goodsId = props.location.query.goodsId
  15. const [ goodsData, setGoodsData ] = useState({})
  16. if(goodsId){
  17. useEffect(() => {
  18. getGoodsData(goodsId);
  19. },[])
  20. // 查询列表
  21. const getGoodsData = (goodsId) => {
  22. request({ ...apis.integralMall.taGoods, urlData: { id: goodsId },}).then((data) => {
  23. console.log(data)
  24. setGoodsData(data)
  25. })
  26. }
  27. }
  28. const fields = [
  29. {
  30. label: '所属项目',
  31. name: 'buildingId',
  32. render: <BuildSelect />,
  33. value: goodsData.buildingId,
  34. rules: [
  35. {required: true, message: '请选择所属项目'},
  36. ]
  37. },
  38. {
  39. label: '商品图片',
  40. name: 'imgUrl',
  41. type: FieldTypes.ImageUploader,
  42. value: goodsData.imgUrl,
  43. help: '建议图片尺寸:164px*164px',
  44. },
  45. {
  46. label: '商品名称',
  47. name: 'goodsName',
  48. type: FieldTypes.Text,
  49. value: goodsData.goodsName,
  50. rules: [
  51. {required: true, message: '请输入商品名称'},
  52. ]
  53. },
  54. {
  55. label: '所需积分',
  56. name: 'pointPrice',
  57. type: FieldTypes.Text,
  58. value: goodsData.pointPrice,
  59. rules: [
  60. {required: true, message: '请输入所需积分'},
  61. ]
  62. },
  63. {
  64. label: '商品数量',
  65. name: 'totalNum',
  66. type: FieldTypes.Text,
  67. value: goodsData.totalNum,
  68. rules: [
  69. {required: true, message: '请输入商品数量'},
  70. ]
  71. },
  72. {
  73. label: '剩余数量',
  74. name: 'inventory',
  75. type: FieldTypes.Text,
  76. value: goodsData.inventory,
  77. rules: [
  78. {required: true, message: '请输入剩余数量'},
  79. ]
  80. },
  81. {
  82. label: '商品详情',
  83. name: 'goodsDescription',
  84. render: <Wangedit />,
  85. value: goodsData.goodsDescription,
  86. },
  87. {
  88. label: '状态',
  89. name: 'status',
  90. type: FieldTypes.Select,
  91. dict: [{label:"已上架",value:1},{label:"已下架",value:0}],
  92. value: goodsData.status != null ? goodsData.status : 1,
  93. },
  94. {
  95. label: '领取地址',
  96. name: 'address',
  97. type: FieldTypes.Text,
  98. value: goodsData.address,
  99. rules: [
  100. {required: true, message: '请输入领取地址'},
  101. ]
  102. },
  103. ]
  104. const handleSubmit = (values) => {
  105. if(goodsId){
  106. values.goodsId = goodsId
  107. request({ ...apis.integralMall.updateTaGoods, data: values,}).then((data) => {
  108. cancelPage()
  109. }).catch((err) => {
  110. message.info(err.msg || err.message)
  111. })
  112. }else{
  113. request({ ...apis.integralMall.addTaGoods, data: values,}).then((data) => {
  114. cancelPage()
  115. }).catch((err) => {
  116. message.info(err.msg || err.message)
  117. })
  118. }
  119. }
  120. const cancelPage = () => {
  121. router.push({
  122. pathname: '/integralMall/GoodsList',
  123. });
  124. }
  125. return (
  126. <XForm onSubmit={handleSubmit} onCancel={cancelPage} fields={fields}></XForm>
  127. )
  128. }
  129. const WrappedNormalLoginForm = Form.create({ name: 'header' })(header);
  130. export default WrappedNormalLoginForm