import React, {Component} from 'react' import './index.css' import {NavBar, Icon} from 'antd-mobile' import {withRouter} from 'react-router-dom' import {ActivityIndicator, List, ImagePicker, InputItem, Button} from 'antd-mobile' import axios from 'axios' import {Query, Mutation} from "react-apollo" import gql from "graphql-tag" import {shop_by_props, create_shop, update_shop} from "../../../../utils/gql" import {storeFile} from "../../../../configs/url" import moment from 'moment' const Item = List.Item class Shop extends Component { constructor(props) { super(props) this.state = {} } render() { return (
} onLeftClick={() => { this.props.history.go(-2) }} >店铺管理 { ({loading, error, data}) => { if (loading) { return (
) } if (error) { return 'error!' } let shop, newShop let shopLength = data.shopbyprops.length if (shopLength === 0) { // console.log('尚未个性化 shop'); shop = {} newShop = true } else if (shopLength === 1) { // console.log('存在 shop, update'); shop = data.shopbyprops[0] newShop = false } else { console.log('store 数据库出现错误') } let {name, description, address, intro, notice, slideshow, id} = shop let shopID = newShop ? 'default' : id return ( ) } }
) } } class ShopRender extends Component { constructor(props) { super(props) this.state = { files: [], imgDatas: [], name: props.name, intro: props.intro, description: props.description, address: props.address, notice: props.notice, slideshow: props.slideshow, shopID: props.shopID } } onChange = (files, operationType) => { console.log("files", files, "operationType", operationType) let imgDatas = [] let {shopID} = this.state files.forEach((file, index) => { let base64Cont = files[index].url.split(',')[1] let imgType = files[index].file.type.split('/')[1] let imgNewName = `slideshow_${index}_shopID_${shopID}.${imgType}` const imgData = { 'file-name': `e-commerce/images/${imgNewName}`, 'bucket': 'case', 'cont': base64Cont, 'public': true, 'format': 'base64' } imgDatas.push(imgData) }) this.setState({ imgDatas, files }) console.log(imgDatas, 'imgDatas') } onReset = () => { this.setState({ files: [], imgDatas: [], name: '', intro: '', description: '', address: '', notice: '', slideshow: [] }) } render() { let {files, name, intro, description, address, notice, slideshow, imgDatas} = this.state let {newShop, shopID} = this.props return (
'店铺个性化管理'} className="my-list"> { this.setState({name: e}) }} value={name} placeholder="请输入名称">名称 { this.setState({intro: e}) }} value={intro} placeholder="请输入简介">简介 { this.setState({description: e}) }} value={description} placeholder="请输入描述">描述 { this.setState({address: e}) }} value={address} placeholder="请输入地址">地址 { this.setState({notice: e}) }} value={notice} placeholder="不输入或留空则不显示">通告
首页轮播图
console.log(index, fs)} selectable={true} multiple={true} /> { newShop ? : }
) } } class UpdateShopButton extends Component { constructor(props) { super(props) this.state = {} } uploadImg = () => { let {imgDatas} = this.props return imgDatas.map((imgData) => ( axios({ url: storeFile, method: 'post', data: imgData }) )) } render() { let {name, description, address, intro, notice, imgDatas, shopID} = this.props return ( {(updatestore, {loading, error}) => { if (loading) return (
) if (error) return 'error' let varObj = { id: shopID, name, description, address, intro, notice, updatedAt: moment().format('YYYY-MM-DD HH:mm:ss'), } return ( ) }}
) } } class CreateShopButton extends Component { constructor(props) { super(props) this.state = {} } uploadImg = () => { let {imgDatas} = this.props return imgDatas.map((imgData) => ( axios({ url: storeFile, method: 'post', data: imgData }) )) } render() { let {name, description, address, intro, notice, imgDatas, shopID} = this.props return ( {(createstore, {loading, error}) => { if (loading) return (
) if (error) return 'error' let varObj = { id: shopID, name: name ? name : '', description: description ? description : '', address: address ? address : '', intro: intro ? intro : '', notice: notice ? notice : '', createdAt: moment().format('YYYY-MM-DD HH:mm:ss'), updatedAt: '' } return ( ) }}
) } } export default withRouter(Shop)