魏超 vor 5 Jahren
Ursprung
Commit
9384e40c3a

+ 12
- 1
config/routes.js Datei anzeigen

@@ -402,7 +402,7 @@ export default [
402 402
           },
403 403
           {
404 404
             path: '/carouselFigure',
405
-            name: '轮播图管理',
405
+            name: '资源位管理',
406 406
             component: '../layouts/BlankLayout',
407 407
             routes: [
408 408
               {
@@ -427,6 +427,17 @@ export default [
427 427
                 hideInMenu: true,
428 428
                 component: './carouselFigure/editAdvertising',
429 429
               },
430
+              {
431
+                path: '/carouselFigure/customImg/list',
432
+                name: '其他',
433
+                component: './carouselFigure/customImg/list',
434
+              },
435
+              {
436
+                path: '/carouselFigure/customImg/edit',
437
+                name: '其他编辑',
438
+                hideInMenu: true,
439
+                component: './carouselFigure/customImg/edit',
440
+              },
430 441
             ],
431 442
           },
432 443
           {

+ 118
- 0
src/pages/carouselFigure/customImg/edit.jsx Datei anzeigen

@@ -0,0 +1,118 @@
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 { createForm, 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
+
12
+const { TextArea } = Input;
13
+const { Option } = Select;
14
+
15
+let activityVisible = false
16
+
17
+const setExtraData = (data) => {
18
+    console.log(data, 'data');
19
+    activityVisible = data.imgType === 'index';
20
+  }
21
+
22
+const handleFormValueChange = (props, changedValues, allValues) => {
23
+    setExtraData(allValues)
24
+}
25
+
26
+const XForm = createForm({ onValuesChange: handleFormValueChange })
27
+
28
+const header = props => {
29
+  
30
+  const imgId = props.location.query.imgId
31
+  const [ data, setData ] = useState({})
32
+  if(imgId){
33
+    useEffect(() => {
34
+      getData(imgId);
35
+    },[])
36
+
37
+  // 查询列表
38
+  const getData = (imgId) => {
39
+    request({ ...apis.carsuseFigure.getCustomImg, urlData: { id: imgId} }).then((data) => {
40
+        console.log(data)
41
+        if (data.imgType === 'index'){
42
+            activityVisible = true;
43
+        }else{
44
+            activityVisible = false;
45
+        }
46
+        setData(data)
47
+    })
48
+  }
49
+  }
50
+
51
+  const fields = [
52
+    {
53
+      label: '图片',
54
+      name: 'imgUrl',
55
+      type: FieldTypes.ImageUploader,
56
+      value: data.imgUrl,
57
+      rules: [
58
+        {required: true, message: '请选择图片'},
59
+      ]
60
+    },
61
+    {
62
+      label: '类型',
63
+      name: 'imgType',
64
+      type: FieldTypes.Select,
65
+      dict: [{
66
+        label: '首页分享',
67
+        value: 'index',
68
+      },
69
+      {
70
+        label: '推荐客户',
71
+        value: 'recommend',
72
+      },
73
+      ],
74
+      value: data.imgType,
75
+      rules: [
76
+        { required: true, message: '请选择类型' },
77
+      ],
78
+    },
79
+    {
80
+      label: '分享文案',
81
+      name: 'imgDocument',
82
+      hidden: () => !activityVisible,
83
+      type: FieldTypes.Text,
84
+      value: data.imgDocument,
85
+    },
86
+  ]
87
+
88
+  const handleSubmit = values => {
89
+    
90
+    if (imgId) {
91
+      values.imgId = imgId
92
+      request({ ...apis.carsuseFigure.updateCustomImg, data: values,}).then((data) => {
93
+        cancelPage()
94
+      }).catch((err) => {
95
+        message.info(err.msg || err.message)
96
+      })
97
+      }else{
98
+      request({ ...apis.carsuseFigure.addCustomImg, data: values,}).then((data) => {
99
+        cancelPage()
100
+      }).catch((err) => {
101
+        message.info(err.msg || err.message)
102
+      })
103
+      }
104
+  }
105
+
106
+  const cancelPage = () => {
107
+    router.push({
108
+        pathname: '/carouselFigure/customImg/list',
109
+    });
110
+  }
111
+
112
+  return (
113
+    <XForm onSubmit={handleSubmit} onCancel={cancelPage} fields={fields}></XForm>
114
+  )
115
+}
116
+
117
+const WrappedNormalLoginForm = Form.create({ name: 'header' })(header);
118
+export default WrappedNormalLoginForm

+ 123
- 0
src/pages/carouselFigure/customImg/list.jsx Datei anzeigen

@@ -0,0 +1,123 @@
1
+import React, { useState, useEffect } from 'react';
2
+import { Form, Input, Button, Icon, Select, message, Table, Divider, Tag, Pagination, Modal,Breadcrumb } from 'antd';
3
+import { FormattedMessage } from 'umi-plugin-react/locale';
4
+import styles from '../../style/GoodsList.less';
5
+import router from 'umi/router';
6
+import BuildSelect from '../../../components/SelectButton/BuildSelect'
7
+import apis from '../../../services/apis';
8
+import request from '../../../utils/request'
9
+import AuthButton from '@/components/AuthButton';
10
+
11
+const { Option } = Select;
12
+
13
+
14
+function header(props) {
15
+  // 获取初始化数据
16
+  const [ data, setData ] = useState({})
17
+
18
+  useEffect(() => {
19
+    getList({ pageNum: 1, pageSize: 10 });
20
+  },[])
21
+
22
+  // 查询列表
23
+  const getList = (params) => {
24
+    request({ ...apis.carsuseFigure.customImg, params: { ...params },}).then((data) => {
25
+        console.log(data)
26
+        setData(data)
27
+    })
28
+  }
29
+  
30
+  // 提交事件
31
+  const handleSubmit = (e, props) => {
32
+    e.preventDefault();
33
+    props.form.validateFields((err, values) => {
34
+      if (!err) {
35
+        getList({ pageNum: 1, pageSize: 10, ...values })
36
+      }
37
+    });
38
+  }
39
+
40
+  const changePageNum = (pageNumber) => {
41
+    props.form.validateFields((err, values) => {
42
+      if (!err) {
43
+        getList({ pageNumber: pageNumber, pageSize: 10, ...values })
44
+      }
45
+    });
46
+  }
47
+
48
+  function handleReset() {
49
+    props.form.resetFields();
50
+    getList({ pageNum: 1, pageSize: 10 });
51
+  }
52
+
53
+  // 跳转到编辑商品
54
+  const toEditCustom = (imgId) => () => {
55
+    router.push({
56
+      pathname: '/carouselFigure/customImg/edit',
57
+      query: {
58
+        imgId
59
+      },
60
+    });
61
+  }
62
+
63
+  /**
64
+   *
65
+   *
66
+   * @param {*} props
67
+   * @returns
68
+   */
69
+  const columns = [
70
+    {
71
+      title: '图片',
72
+      dataIndex: 'imgUrl',
73
+      key: 'imgUrl',
74
+      align: 'center',
75
+      render: (text, record) => <img src={record.imgUrl} className={styles.touxiang} />,
76
+    },
77
+    {
78
+      title: '类型',
79
+      dataIndex: 'imgType',
80
+      key: 'imgType',
81
+      align: 'center',
82
+      render: (text, records) => (<span>{records.imgType == 'index' ? '首页分享':'推荐客户' }</span> )
83
+    },
84
+    {
85
+      title: '说明',
86
+      dataIndex: 'imgDesc',
87
+      key: 'imgDesc',
88
+      align: 'center',
89
+    },
90
+    {
91
+      title: '操作',
92
+      dataIndex: 'handle',
93
+      key: 'handle',
94
+      align: 'center',
95
+      render: (x, row) => (
96
+        <>
97
+          <AuthButton name="admin.taNewsType.id.put" noRight={null}>
98
+            <span style={{ color: '#FF925C', cursor: 'pointer' }} onClick={toEditCustom(row.imgId)}>
99
+              编辑<Icon type="form" className={styles.edit} />
100
+            </span>
101
+          </AuthButton>
102
+        </>
103
+      ),
104
+    },
105
+  ];
106
+
107
+  const { getFieldDecorator } = props.form
108
+  return (
109
+
110
+    <>
111
+      <Form layout="inline" onSubmit={e => handleSubmit(e, props)}>
112
+        
113
+      </Form>
114
+      <AuthButton name="admin.taGoods.add.post" noRight={null}>
115
+        <Button type="danger" className={styles.addBtn} onClick={toEditCustom()}>新增</Button>
116
+      </AuthButton>
117
+      <Table rowKey="goodsList" dataSource={data.records} columns={columns} pagination={false} />
118
+    </>
119
+  )
120
+}
121
+const WrappedHeader = Form.create({ name: 'header' })(header);
122
+
123
+export default WrappedHeader

+ 20
- 0
src/services/apis.js Datei anzeigen

@@ -612,6 +612,26 @@ export default {
612 612
       method: 'POST',
613 613
       action: 'admin.extendContent.post',
614 614
     },
615
+    customImg: {
616
+      url: `${prefix}/taCustomImg`,
617
+      method: 'GET',
618
+      action: 'admin.taCustomImg.get',
619
+    },
620
+    addCustomImg: {
621
+      url: `${prefix}/taCustomImg`,
622
+      method: 'POST',
623
+      action: 'admin.taCustomImg.post',
624
+    },
625
+    updateCustomImg: {
626
+      url: `${prefix}/taCustomImg`,
627
+      method: 'PUT',
628
+      action: 'admin.taCustomImg.put',
629
+    },
630
+    getCustomImg: {
631
+      url: `${prefix}/taCustomImg/:id`,
632
+      method: 'GET',
633
+      action: 'admin.taCustomImg.id.get',
634
+    },
615 635
   },
616 636
   system: {
617 637
     taPolicy: {