kulley 7 年之前
父節點
當前提交
0a8b5a203c
共有 7 個文件被更改,包括 443 次插入132 次删除
  1. 65 48
      README.md
  2. 1 0
      package.json
  3. 2 1
      src/config.js
  4. 15 0
      src/gql.js
  5. 24 25
      src/page/customer/display/TopBar.js
  6. 253 36
      src/page/manage/Release.js
  7. 83 22
      src/page/manage/Store.js

+ 65 - 48
README.md

@@ -80,52 +80,69 @@ with react, graphql, apollo client
 
 
  ```
- name,type,description
- server,collection,
- id,ID,key
- name,String,non-null
- description,String,
- img,String,
- createdAt,String,non-null
- updatedAt,String,
- service,collection,
- id,ID,key
- server_id,ID,non-null
- repertory_id,ID,non-null
- description,String,
- price,float,non-null
- startTime,String,non-null
- lastTime,String,non-null
- createdAt,String,non-null
- updatedAt,String,
- repertory,collection,
- id,ID,key
- service_id,ID,non-null
- count,int,non-null
- createdAt,String,non-null
- updatedAt,String,
- user,collection,
- id,ID,key
- openid,String,
- admin,String,
- username,String,
- password,String,
- telephone,String,
- email,String,
- createdAt,String,non-null
- updatedAt,String,
- order,collection,
- id,ID,key
- user_id,ID,
- service_id,ID,
- orderStatus,String,
- remark,String,
- customerNumber,int,
- contactName,String,non-null
- contactTelephone,String,non-null
- payCount,String,
- payStatus,String,
- payTime,String,
- createdAt,String,non-null
- updatedAt,String,
+name,type,description
+server,collection,
+id,ID,key
+name,String,non-null
+description,String,
+img,String,
+createdAt,String,non-null
+updatedAt,String,
+service,collection,
+id,ID,key
+server_id,ID,non-null
+repertory_id,ID,non-null
+description,String,
+price,float,non-null
+startTime,String,non-null
+lastTime,String,non-null
+createdAt,String,non-null
+updatedAt,String,
+repertory,collection,
+id,ID,key
+server_id,ID,non-null
+service_id,ID,non-null
+count,int,non-null
+createdAt,String,non-null
+updatedAt,String,
+user,collection,
+id,ID,key
+openid,String,
+admin,String,
+nickname,String,
+username,String,
+password,String,
+telephone,String,
+email,String,
+createdAt,String,non-null
+updatedAt,String,
+order,collection,
+id,ID,key
+user_id,ID,
+serverName,String,non-null
+serverDescription,String,
+servicePrice,float,non-null
+serviceDescription,String,
+serviceStartTime,String,non-null
+serviceLastTime,String,non-null
+repertory_id,ID,non-null
+orderStatus,String,
+remark,String,
+contactName,String,non-null
+contactTelephone,String,non-null
+customerNumber,int,
+payCount,String,
+payStatus,String,
+payTime,String,
+createdAt,String,non-null
+updatedAt,String,
+store,collection,
+id,ID,key
+name,String,
+description,String,
+address,String,
+alert,String,
+slideshow,String,list
+createdAt,String,non-null
+updatedAt,String,
  ```

+ 1 - 0
package.json

@@ -10,6 +10,7 @@
     "antd": "^3.11.6",
     "antd-mobile": "^2.2.6",
     "apollo-boost": "^0.1.23",
+    "axios": "^0.18.0",
     "babel-core": "7.0.0-bridge.0",
     "babel-eslint": "9.0.0",
     "babel-jest": "23.6.0",

+ 2 - 1
src/config.js

@@ -1,4 +1,5 @@
 const graphqlFC = window.location.origin + '/graphql';
 // const graphqlFC = 'http://demo.ioobot.cn/graphql';
+const storeFile = 'http://deploy.ioobot.cn/api/store-file';
 
-export {graphqlFC}
+export {graphqlFC, storeFile}

+ 15 - 0
src/gql.js

@@ -352,6 +352,20 @@ const createserver = `
     }
 `;
 
+const updateserver = `
+    mutation updateserver($id: ID, $name: String, $description: String, $img: String, $updatedAt: String) {
+        updateserver: update_server(id: $id name: $name description: $description img: $img updatedAt: $updatedAt) {
+            id
+            name
+            description
+            img
+            updatedAt
+        }
+    }
+`;
+
+
+
 const deleteserver = `mutation deleteserver($id: ID) {
     deleteserver: delete_server(id: $id)
 }`;
@@ -500,6 +514,7 @@ export {
     deleteorder,
     updateorder,
     createserver,
+    updateserver,
     updateserviceAndupdaterepertory,
     createserviceAndcreaterepertory,
     deleteserviceAnddeleterepertory,

+ 24 - 25
src/page/customer/display/TopBar.js

@@ -47,6 +47,30 @@ class TopBar extends Component {
                                                 {store.alert}
                                             </NoticeBar>
                                             <WhiteSpace/>
+                                            <WingBlank>
+                                                <Carousel
+                                                    autoplay={true}
+                                                    infinite
+                                                >
+                                                    {store.slideshow.map(val => (
+                                                        <a
+                                                            key={val}
+                                                            href="/"
+                                                            style={{display: 'inline-block', width: '100%', height: this.state.imgHeight}}
+                                                        >
+                                                            <img
+                                                                src={val}
+                                                                alt=""
+                                                                style={{width: '100%', verticalAlign: 'top'}}
+                                                                onLoad={() => {
+                                                                    window.dispatchEvent(new Event('resize'));
+                                                                    this.setState({imgHeight: 'auto'});
+                                                                }}
+                                                            />
+                                                        </a>
+                                                    ))}
+                                                </Carousel>
+                                            </WingBlank>
                                         </div>
                                     )
                                 }
@@ -57,31 +81,6 @@ class TopBar extends Component {
                         }
                     }
                 </Query>
-
-                <WingBlank>
-                    <Carousel
-                        autoplay={true}
-                        infinite
-                    >
-                        {this.state.data.map(val => (
-                            <a
-                                key={val}
-                                href="http://www.alipay.com"
-                                style={{display: 'inline-block', width: '100%', height: this.state.imgHeight}}
-                            >
-                                <img
-                                    src={`https://zos.alipayobjects.com/rmsportal/${val}.png`}
-                                    alt=""
-                                    style={{width: '100%', verticalAlign: 'top'}}
-                                    onLoad={() => {
-                                        window.dispatchEvent(new Event('resize'));
-                                        this.setState({imgHeight: 'auto'});
-                                    }}
-                                />
-                            </a>
-                        ))}
-                    </Carousel>
-                </WingBlank>
             </div>
         );
     }

+ 253 - 36
src/page/manage/Release.js

@@ -18,13 +18,17 @@ import {
     serverbyprops,
     servicebyprops,
     createserver,
+    updateserver,
     deleteserveranddeleteserviceAnddeleterepertory,
     updateserviceAndupdaterepertory,
     createserviceAndcreaterepertory,
     deleteserviceAnddeleterepertory
 } from "../../gql";
 import {idGen} from "../../func";
+import axios from 'axios';
+import {storeFile} from "../../config";
 
+axios.defaults.withCredentials = true;
 const Item = List.Item;
 const nowTimeStamp = Date.now();
 const now = new Date(nowTimeStamp);
@@ -38,13 +42,16 @@ class Release extends Component {
         }
     }
 
-    dontShowMe = () => {
-        this.setState({
-            serverID: ''
-        })
+    modifyServerID = (id) => {
+        return () => {
+            this.setState({
+                serverID: id
+            })
+        };
     };
 
     render() {
+        let {serverID} = this.state;
         return (
             <div>
                 <WhiteSpace/>
@@ -103,13 +110,19 @@ class Release extends Component {
                                     </List>
 
                                     {
-                                        this.state.serverID === 'add' ?
+                                        serverID === 'add' ?
                                             <AddServer/>
                                             :
-                                            this.state.serverID ?
-                                                <ServiceList serverID={this.state.serverID} dontShowMe={this.dontShowMe}/>
+                                            serverID.startsWith('modify') ?
+                                                <ModifyServer
+                                                    server={data.serverbyprops[serverID.replace('modify', '')]}/>
                                                 :
-                                                ''
+                                                serverID ?
+                                                    <ServiceList serverID={serverID}
+                                                                 serverIndex={data.serverbyprops.findIndex((server => server.id === serverID))}
+                                                                 modifyServerID={this.modifyServerID}/>
+                                                    :
+                                                    ''
                                     }
                                 </div>
                             )
@@ -142,7 +155,8 @@ class ServiceList extends Component {
     };
 
     render() {
-        let {serverID, dontShowMe} = this.props;
+        let {serverID, modifyServerID, serverIndex} = this.props;
+        let {serviceID} = this.state;
         return (
             <Query query={gql(servicebyprops)} variables={{server_id: serverID}}>
                 {
@@ -161,7 +175,7 @@ class ServiceList extends Component {
                         }
                         return (
                             <div>
-                                <List renderHeader={() => 'TA的服务项'} className="my-list">
+                                <List renderHeader={() => 'TA的服务项'} className="my-list">
                                     {
                                         data.servicebyprops.map(service =>
                                             <Item
@@ -190,18 +204,31 @@ class ServiceList extends Component {
                                     >
                                         {
                                             data.servicebyprops.length === 0 ?
-                                                '没有服务项,点我添加' : '添加'
+                                                '没有服务项,点我添加' : '添加其他服务项目'
                                         }
                                     </Item>
 
+                                    <Item
+                                        arrow="horizontal"
+                                        multipleLine
+                                        onClick={() => {
+                                            this.setState({
+                                                serviceID: ''
+                                            });
+                                            modifyServerID(`modify${serverIndex}`)();
+                                        }}
+                                    >
+                                        <span style={{color: '#3f536e'}}>修改该服务</span>
+                                    </Item>
+
                                     <Mutation
                                         mutation={gql(deleteserveranddeleteserviceAnddeleterepertory)}
                                         refetchQueries={[
                                             {query: gql(serverbyprops), variables: {}},
                                             {query: gql(servicebyprops), variables: {server_id: serverID}}
                                         ]}
-                                        onCompleted={()=>{
-                                            dontShowMe()
+                                        onCompleted={() => {
+                                            modifyServerID('')
                                         }}
                                     >
                                         {(deleteEvery, {loading, error}) => {
@@ -239,13 +266,12 @@ class ServiceList extends Component {
                                             )
                                         }}
                                     </Mutation>
-
                                 </List>
 
                                 {
-                                    this.state.serviceID ?
+                                    serviceID ?
                                         <ServiceDetail
-                                            serviceID={this.state.serviceID}
+                                            serviceID={serviceID}
                                             serverID={serverID}
                                             donotShowDetail={this.donotShowDetail}
                                         />
@@ -263,33 +289,204 @@ class ServiceList extends Component {
     }
 }
 
-class AddServer extends Component {
+class ModifyServer extends Component {
     constructor(props) {
         super(props);
         this.state = {
+            id: props.server.id,
+            img: props.server.img,
+            name: props.server.name,
+            description: props.server.description,
             files: [],
-            name: '',
-            description: ''
+            imgDatas: []
         }
     }
 
     onReset = () => {
         this.setState({
+            name: '',
+            description: '',
+            files: [],
+            imgDatas: []
+        })
+    };
+
+    onChange = (files, operationType) => {
+        console.log("files", files, "operationType", operationType);
+
+        let imgDatas = [];
+
+        files.forEach((file, index) => {
+            let base64Cont = files[index].url.split(',')[1];
+            let imgType = files[index].file.type.split('/')[1];
+            let imgNewName = `${Date.now() + '_' + Math.floor(Math.random() * 100)}.${imgType}`;
+
+            const imgData = {
+                'file-name': `appointment/images/${imgNewName}`,
+                'bucket': 'case',
+                'cont': base64Cont,
+                'public': true,
+                'format': 'base64'
+            };
+
+            imgDatas.push(imgData)
+        });
+
+        this.setState({
+            imgDatas,
+            files
+        });
+
+        console.log(imgDatas, 'imgDatas');
+    };
+
+    render() {
+        const {id, files, name, description, imgDatas} = this.state;
+        return (
+            <List renderHeader={() => '请修改服务信息'}>
+                <InputItem onChange={(e) => {
+                    this.setState({name: e})
+                }} value={name} placeholder="请修改名称">名称</InputItem>
+                <InputItem onChange={(e) => {
+                    this.setState({description: e})
+                }} value={description} placeholder="请修改简介">简介</InputItem>
+                <div className={'my-list-subtitle'}>修改图片</div>
+                <ImagePicker
+                    files={files}
+                    onChange={this.onChange}
+                    onImageClick={(index, fs) => console.log(index, fs)}
+                    selectable={files.length < 1}
+                    multiple={false}
+                />
+                <Item>
+                    <ModifyServerButton
+                        id={id}
+                        name={name}
+                        description={description}
+                        imgDatas={imgDatas}
+                    />
+                    <Button size="small" inline style={{marginLeft: '2.5px'}} onClick={this.onReset}>重置</Button>
+                </Item>
+            </List>
+        );
+    }
+}
+
+class ModifyServerButton extends Component {
+    constructor(props) {
+        super(props);
+        this.state = {}
+    }
+
+    uploadImg = () => {
+        let {imgDatas} = this.props;
+        console.log("imgDatas", imgDatas);
+
+        return imgDatas.map((imgData) => (
+            axios({
+                url: storeFile,
+                method: 'post',
+                data: imgData
+            })
+        ));
+    };
+
+    render() {
+        let {name, description, id, imgDatas} = this.props;
+        return (
+            <Mutation
+                mutation={gql(updateserver)}
+                refetchQueries={[{query: gql(serverbyprops), variables: {}}]}
+            >
+                {(updateserver, {loading, error}) => {
+                    if (loading)
+                        return (
+                            <div className="loading">
+                                <div className="align">
+                                    <ActivityIndicator text="Loading..." size="large"/>
+                                </div>
+                            </div>
+                        );
+                    if (error)
+                        return 'error';
+                    let varObj = {
+                        id,
+                        name,
+                        description,
+                        updatedAt: new Date().getTime()
+                    };
+                    return (
+                        <Button type="primary" size="small" inline onClick={() => {
+                            if (imgDatas.length !== 0) {
+                                Promise.all(this.uploadImg()).then(res => {
+                                    let prefix = 'https://case-1254337200.cos.ap-beijing.myqcloud.com/';
+                                    let img = imgDatas.length === 1 ? prefix + imgDatas[0]['file-name'] : imgDatas.map((imgData, index) => (
+                                        prefix + imgDatas[index]['file-name']
+                                    ));
+                                    updateserver({variables: {...varObj, img}})
+                                });
+                            } else {
+                                updateserver({variables: varObj})
+                            }
+                        }}>修改</Button>
+                    )
+                }}
+            </Mutation>
+        )
+    }
+}
+
+class AddServer extends Component {
+    constructor(props) {
+        super(props);
+        this.state = {
+            name: '',
+            description: '',
             files: [],
+            imgDatas: []
+        }
+    }
+
+    onReset = () => {
+        this.setState({
             name: '',
-            description: ''
+            description: '',
+            files: [],
+            imgDatas: []
         })
     };
 
-    onChange = (files, type) => {
-        console.log(files, type);
+    onChange = (files, operationType) => {
+        console.log("files", files, "operationType", operationType);
+
+        let imgDatas = [];
+
+        files.forEach((file, index) => {
+            let base64Cont = files[index].url.split(',')[1];
+            let imgType = files[index].file.type.split('/')[1];
+            let imgNewName = `${Date.now() + '_' + Math.floor(Math.random() * 100)}.${imgType}`;
+
+            const imgData = {
+                'file-name': `appointment/images/${imgNewName}`,
+                'bucket': 'case',
+                'cont': base64Cont,
+                'public': true,
+                'format': 'base64'
+            };
+
+            imgDatas.push(imgData)
+        });
+
         this.setState({
-            files,
+            imgDatas,
+            files
         });
+
+        console.log(imgDatas, 'imgDatas');
     };
 
     render() {
-        const {files, name, description} = this.state;
+        const {files, name, description, imgDatas} = this.state;
         return (
             <List renderHeader={() => '请输入服务信息'}>
                 <InputItem onChange={(e) => {
@@ -307,8 +504,8 @@ class AddServer extends Component {
                     multiple={false}
                 />
                 <Item>
-                    <SubmitServerButton
-                        img={files[0] ? files[0].url : ''}
+                    <CreateServerButton
+                        imgDatas={imgDatas}
                         name={name}
                         description={description}
                     />
@@ -319,14 +516,27 @@ class AddServer extends Component {
     }
 }
 
-class SubmitServerButton extends Component {
+class CreateServerButton extends Component {
     constructor(props) {
         super(props);
         this.state = {}
     }
 
+    uploadImg = () => {
+        let {imgDatas} = this.props;
+        console.log("imgDatas", imgDatas);
+
+        return imgDatas.map((imgData) => (
+            axios({
+                url: storeFile,
+                method: 'post',
+                data: imgData
+            })
+        ));
+    };
+
     render() {
-        let {name, description, img} = this.props;
+        let {name, description, imgDatas} = this.props;
         return (
             <Mutation
                 mutation={gql(createserver)}
@@ -347,13 +557,20 @@ class SubmitServerButton extends Component {
                         id: idGen('server'),
                         name,
                         description,
-                        img,
                         createdAt: new Date().getTime(),
                         updatedAt: ''
                     };
                     return (
                         <Button type="primary" size="small" inline onClick={() => {
-                            createserver({variables: varObj})
+
+                            Promise.all(this.uploadImg()).then(res => {
+                                let prefix = 'https://case-1254337200.cos.ap-beijing.myqcloud.com/';
+                                let img = imgDatas.length === 1 ? prefix + imgDatas[0]['file-name'] : imgDatas.map((imgData, index) => (
+                                    prefix + imgDatas[index]['file-name']
+                                ));
+                                createserver({variables: {...varObj, img}})
+                            });
+
                         }}>提交</Button>
                     )
                 }}
@@ -508,7 +725,7 @@ class ServiceDetailRender extends Component {
                     <Item>
                         {
                             serviceID === 'add' ?
-                                <SubmitServiceCreateButton
+                                <CreateServiceButton
                                     serverID={serverID}
                                     count={repertory}
                                     description={description}
@@ -517,7 +734,7 @@ class ServiceDetailRender extends Component {
                                     lastTime={endDate.getTime() - date.getTime()}
                                 />
                                 :
-                                <SubmitServiceUpdateButton
+                                <UpdateServiceButton
                                     serverID={serverID}
                                     serviceID={serviceID}
                                     repertoryID={repertoryID}
@@ -533,7 +750,7 @@ class ServiceDetailRender extends Component {
                             serviceID === 'add' ?
                                 ''
                                 :
-                                <SubmitServiceDeleteButton
+                                <DeleteServiceButton
                                     serverID={serverID}
                                     serviceID={serviceID}
                                     repertoryID={repertoryID}
@@ -548,7 +765,7 @@ class ServiceDetailRender extends Component {
     }
 }
 
-class SubmitServiceUpdateButton extends Component {
+class UpdateServiceButton extends Component {
     constructor(props) {
         super(props);
         this.state = {}
@@ -596,7 +813,7 @@ class SubmitServiceUpdateButton extends Component {
     }
 }
 
-class SubmitServiceCreateButton extends Component {
+class CreateServiceButton extends Component {
     constructor(props) {
         super(props);
         this.state = {}
@@ -645,7 +862,7 @@ class SubmitServiceCreateButton extends Component {
     }
 }
 
-class SubmitServiceDeleteButton extends Component {
+class DeleteServiceButton extends Component {
     constructor(props) {
         super(props);
         this.state = {}

+ 83 - 22
src/page/manage/Store.js

@@ -5,7 +5,10 @@ import {updateuser, userbyprops, storebyprops, createstore, updatestore} from ".
 import {Query, Mutation} from "react-apollo";
 import gql from "graphql-tag";
 import {Message} from '../customer/home/User';
+import {storeFile} from "../../config";
+import axios from 'axios';
 
+axios.defaults.withCredentials = true;
 const alert = Modal.alert;
 const Item = List.Item;
 const prompt = Modal.prompt;
@@ -58,11 +61,11 @@ class StoreDetailFetch extends Component {
                         let store, newStore;
                         let storeLength = data.storebyprops.length;
                         if (storeLength === 0) {
-                            console.log('尚未个性化 store');
+                            // console.log('尚未个性化 store');
                             store = {};
                             newStore = true;
                         } else if (storeLength === 1) {
-                            console.log('存在 store, update');
+                            // console.log('存在 store, update');
                             store = data.storebyprops[0];
                             newStore = false;
                         } else {
@@ -93,23 +96,19 @@ class StoreDetailRender extends Component {
         super(props);
         this.state = {
             files: [],
+            imgDatas: [],
             name: props.name,
             description: props.description,
             address: props.address,
             alert: props.alert,
-            slideshow: props.slideshow,
+            slideshow: props.slideshow, //未进行展示
         }
     }
 
-    componentWillReceiveProps(next) {
-        this.setState({
-            newStore: next.newStore
-        })
-    }
-
     onReset = () => {
         this.setState({
             files: [],
+            imgDatas: [],
             name: '',
             description: '',
             address: '',
@@ -117,15 +116,37 @@ class StoreDetailRender extends Component {
         })
     };
 
-    onChange = (files, type) => {
-        console.log(files, type);
+    onChange = (files, operationType) => {
+        console.log("files", files, "operationType", operationType);
+
+        let imgDatas = [];
+
+        files.forEach((file, index) => {
+            let base64Cont = files[index].url.split(',')[1];
+            let imgType = files[index].file.type.split('/')[1];
+            let imgNewName = `${Date.now() + '_' + Math.floor(Math.random() * 100)}.${imgType}`;
+
+            const imgData = {
+                'file-name': `appointment/images/${imgNewName}`,
+                'bucket': 'case',
+                'cont': base64Cont,
+                'public': true,
+                'format': 'base64'
+            };
+
+            imgDatas.push(imgData)
+        });
+
         this.setState({
-            files,
+            imgDatas,
+            files
         });
+
+        console.log(imgDatas, 'imgDatas');
     };
 
     render() {
-        let {files, name, description, address, alert, slideshow} = this.state;
+        let {files, name, description, address, alert, slideshow, imgDatas} = this.state;
         let {newStore} = this.props;
         return (
             <List renderHeader={() => '店铺个性化管理'} className="my-list">
@@ -141,7 +162,7 @@ class StoreDetailRender extends Component {
                 <InputItem onChange={(e) => {
                     this.setState({alert: e})
                 }} value={alert} placeholder="通告会显示在用户界面的服务首页">通告</InputItem>
-                <div className={'my-list-subtitle'}>页面轮播图(轮播图设置暂时无效)</div>
+                <div className={'my-list-subtitle'}>页面轮播图</div>
                 <ImagePicker
                     files={files}
                     onChange={this.onChange}
@@ -153,7 +174,7 @@ class StoreDetailRender extends Component {
                     {
                         newStore ?
                             <CreateStoreButton
-                                img={files[0] ? files[0].url : ''}
+                                imgDatas={imgDatas}
                                 name={name}
                                 description={description}
                                 address={address}
@@ -162,7 +183,7 @@ class StoreDetailRender extends Component {
                             />
                             :
                             <UpdateStoreButton
-                                img={files[0] ? files[0].url : ''}
+                                imgDatas={imgDatas}
                                 name={name}
                                 description={description}
                                 address={address}
@@ -183,8 +204,21 @@ class UpdateStoreButton extends Component {
         this.state = {}
     }
 
+    uploadImg = () => {
+        let {imgDatas} = this.props;
+        console.log("imgDatas", imgDatas);
+
+        return imgDatas.map((imgData) => (
+            axios({
+                url: storeFile,
+                method: 'post',
+                data: imgData
+            })
+        ));
+    };
+
     render() {
-        let {name, description, address, alert, slideshow, img} = this.props;
+        let {name, description, address, alert, slideshow, imgDatas} = this.props;
         return (
             <Mutation
                 mutation={gql(updatestore)}
@@ -207,12 +241,21 @@ class UpdateStoreButton extends Component {
                         description,
                         address,
                         alert,
-                        slideshow,
                         updatedAt: new Date().getTime(),
                     };
                     return (
                         <Button type="primary" size="small" inline onClick={() => {
-                            updatestore({variables: varObj})
+                            if (imgDatas.length !== 0) {
+                                Promise.all(this.uploadImg()).then(res => {
+                                    let prefix = 'https://case-1254337200.cos.ap-beijing.myqcloud.com/';
+                                    let slideshow = imgDatas.length === 1 ? prefix + imgDatas[0]['file-name'] : imgDatas.map((imgData, index) => (
+                                        prefix + imgDatas[index]['file-name']
+                                    ));
+                                    updatestore({variables: {...varObj, slideshow}})
+                                });
+                            } else {
+                                updatestore({variables: varObj})
+                            }
                         }}>更新</Button>
                     )
                 }}
@@ -227,8 +270,21 @@ class CreateStoreButton extends Component {
         this.state = {}
     }
 
+    uploadImg = () => {
+        let {imgDatas} = this.props;
+        console.log("imgDatas", imgDatas);
+
+        return imgDatas.map((imgData) => (
+            axios({
+                url: storeFile,
+                method: 'post',
+                data: imgData
+            })
+        ));
+    };
+
     render() {
-        let {name, description, address, alert, slideshow, img} = this.props;
+        let {name, description, address, alert, slideshow, imgDatas} = this.props;
         return (
             <Mutation
                 mutation={gql(createstore)}
@@ -251,13 +307,18 @@ class CreateStoreButton extends Component {
                         description: description ? description : '',
                         address: address ? address : '',
                         alert: alert ? alert : '',
-                        slideshow: slideshow ? slideshow : [],
                         createdAt: new Date().getTime(),
                         updatedAt: ''
                     };
                     return (
                         <Button type="primary" size="small" inline onClick={() => {
-                            createstore({variables: varObj})
+                            Promise.all(this.uploadImg()).then(res => {
+                                let prefix = 'https://case-1254337200.cos.ap-beijing.myqcloud.com/';
+                                let slideshow = imgDatas.length === 1 ? prefix + imgDatas[0]['file-name'] : imgDatas.map((imgData, index) => (
+                                    prefix + imgDatas[index]['file-name']
+                                ));
+                                createstore({variables: {...varObj, slideshow}})
+                            });
                         }}>创建</Button>
                     )
                 }}