第三个

在这里插入图片描述

import React, { Component } from 'react'
import axios from 'axios';
import "./itemdetail.scss"
// import "../../../public/out.css"
class ItemDetail extends React.Component {
    constructor(props) {
        super(props)
        this.state = {
            pinPlist: [],//评论数组
            pinlunNUm:0,//评论数量
            pageIndex: 0,
            pageSize: 10,
            clientId: '',
            quantity: 1, //数量 接口的参数
            alldata: {
                material: [], // 食用材料
                step: [], //步骤
                dish: {
                    data: [] //作业
                },
            },
            Randcontent: []
        }
    }
    //绑定输入框的数量
    inputchange(e) {
        let value = e.targrt.value
        this.setState({
            quantity: value
        })
    }
    //加号
    addNum() {
        this.setState({
            quantity: this.state.quantity + 1
        }, () => {
            this.getDetail()
        })
    }
    //减号
    jian() {
        let num = this.state.quantity
        num -= 1
        if (num < 1) {
            num = 1
        }
        this.setState({
            quantity: num
        }, () => {
            this.getDetail()
        })
    }
    //点赞
    giveaLike(item) {
        var formData = new FormData()
        let obj = {
            contentId: item,
            csrfToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOjAsImV4cCI6MTc4NDAyNTAxOSwiaWF0IjoxNTk0NzIyNjE5fQ.yYoxfvv1ci1UdiDPxr2WpntU1Ib2rFZnFtRBYmq7XGg'
        }
        for (const key in obj) {
            formData.append(key, obj[key])
        }
        axios.post('https://api.hongbeibang.com/v2/content/like?_t=1595386213653', formData, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).then(function (res) {
            console.log(res)
        }).catch(function (error) {
            console.log(error)
        })
    }
    //评论
    getcomment() {
        let _this = this
        axios.get(`https://api.hongbeibang.com/comment/getFloor?pageIndex=${this.state.pageIndex}&pageSize=500&contentId=7430792`)
            .then(function (res) {
                console.log(res.data.data.data)
                _this.setState({
                    pinPlist: res.data.data.data,
                    pinlunNUm:res.data.data.count
                })
            })
            .catch(function (error) {
                console.log(error)
        })
    }
    getChildren = (data) => {
        return data.map((item, index) => {
            if (item.comments) {
                return (
                    <div key={index}>
                        {item.clientName}:{item.coverSummary}
                    </div>
                )
            }
        })
    }
    getMenuNodes = (menuList) => {
        return menuList.map((item, index) => {
            // if(!item.comments){
            //     return (
            //         <div key={index} className="pinglun-item">
            //             <img src={item.clientImage} alt=""/>
            //             <span>{item.clientName}</span>
            //             <span>{item.createTime}</span>
            //             <div>
            //                 {item.coverSummary}
            //             </div>
            //         </div>
            //     )
            // }else{
            return (
                <div key={index} className="pinglun-item">
                    <img src={item.clientImage} alt="" />
                    <span>{item.clientName}</span>
                    <span>{item.createTime}</span>
                    <div>
                        {item.coverSummary}
                    </div>
                    <div className="huifu">
                        {
                            // this.getChildren(item.comments.data)
                            item.comments.data.map((item, index) => {
                                return (
                                    <div key={index}>
                                        {item.clientName}:{item.coverSummary}
                                    </div>
                                )
                            })
                        }
                    </div>
                </div>
            )
            // }
        })
    }
    render() {
        return (
            <div className="itemDetail">
                <div className="itemDetail_header">
                    <span><img src={require('../image/back.png')} alt="" /></span>
                    <div className="itemDetail_header-right">
                        <div className="itemDetail_header-rightbtn">收藏</div>
                    </div>
                </div>
                <div className="itemDetail_content">
                    <div className="itemDetail_content1">
                        <div className="imgandName">
                            <img src={this.state.alldata.image} alt="" />
                            <div className="itemName">{this.state.alldata.coverTitle}</div>
                            <div className="personName">
                                <div className="care-btn">+关注</div>
                                <div className="head-image">
                                    <img src={this.state.alldata.clientImage} alt="" />
                                </div>
                                <div className="personName-name">
                                    <div>{this.state.alldata.clientName}</div>
                                </div>
                                <div className="message-personName">
                                    {this.state.alldata.coverSummary}
                                </div>
                            </div>
                        </div>
                    </div>
                    <div className="itemDetail_content2">
                        <div className="eat-materials">食用材料</div>
                        <div className="computed">
                            <div className="jiajian">
                                <div className="jia" onClick={this.jian.bind(this)}>
                                    <div></div>
                                </div>
                                <div className="showinput">
                                    <input type="text" value={this.state.quantity} onChange={this.inputchange.bind(this)} />
                                </div>
                                <div className="jian" onClick={this.addNum.bind(this)}>
                                    <div className="div1"></div>
                                    <div className="div2"></div>
                                </div>
                            </div>
                        </div>
                        <div className="usenum">
                            {
                                this.state.alldata.material.map((item, index) => {
                                    return (
                                        <div className="useitem" key={index}>
                                            <div className="useritem-name">{item.name}</div>
                                            <div className="useritem-name">{item.weight}</div>
                                        </div>
                                    )
                                })
                            }
                        </div>
                        <div className="steps">
                            {
                                this.state.alldata.step.map((item, index) => {
                                    return (
                                        <div className="step-item" key={index}>
                                            <div className="step-item-name">步骤{index + 1}</div>
                                            <img src={item.image} alt="" />
                                            <div className="step-item-tips">{item.text}</div>
                                        </div>
                                    )
                                })
                            }
                        </div>
                        <div className="small-tip">
                            小贴士
                        </div>
                        <div className="tip-content">{this.state.alldata.tip}</div>

                    </div>
                    <div className="homework">
                        <div className="homework-title">
                            <div className="homework-title_left">作业</div>
                            <div className="homework-title_right">查看全部</div>
                        </div>
                        <div className="homework-content">
                            <div className="content-out">
                                <div className="content-inside">
                                    {
                                        this.state.alldata.dish.data.map((item, index) => {
                                            return (
                                                <div className="homework-item" key={index}>
                                                    <img className="first-img" src={item.coverImage} alt="" />
                                                    <div className="person-img">
                                                        <img src={item.clientImage} alt="" />
                                                        <span className="client-name">{item.clientName}</span>
                                                    </div>
                                                    <div className="homework-item_tip">{item.coverSummary}</div>
                                                    <div className="zan" onClick={this.giveaLike.bind(this, item.contentId)}>
                                                        <img src={require('../image/zan.png')} alt="" />
                                                        <span className="zannum">{item.likeNum}</span>
                                                    </div>
                                                </div>
                                            )
                                        })
                                    }
                                </div>
                            </div>
                        </div>
                    </div>
                    {/* 推荐 */}
                    {/* <div>
                        <div>推荐</div>
                        {
                            this.state.Randcontent.map((item,index)=>{
                                return(
                                    <div key={index}>
                                        <img src={item.coverImage} alt=""/>
                                        <div>{item.buyNum}在学</div>
                                        <div>{item.coverTitle}底下的字</div>
                                    </div>
                                )
                        })}
                    </div> */}
                    {/* 评论 */}
                    <div className="pinglun">
                        <div>
                            {/* 点赞数在 最开始的第一个接口里 */}
                            <span>点赞数:{this.state.alldata.likeNum}</span>
                            {/* 打赏数在 最开始的第一个接口里 */}
                            <span>打赏数{this.state.alldata.rewardNum}</span>
                            {/* 评论数在评论的接口里 */}
                            <span>评论数{this.state.pinlunNUm}</span>
                        </div>
                        {
                            this.state.pinPlist.map((item, index) => {
                                return (
                                    <div key={index} className="pinglun-item">
                                        <img src={item.clientImage} alt="" />
                                        <span>{item.clientName}</span>
                                        <span>{item.createTime}</span>
                                        <div>
                                            {item.coverSummary}
                                        </div>
                                        <div className="huifu">
                                            {
                                                item.comments.data.map((item1, index1) => {
                                                    return (
                                                        <div key={index1}>
                                                            {item1.clientName}回复{item1.commentClientName}:{item1.coverSummary}
                                                        </div>
                                                    )
                                                })
                                            }
                                        </div>
                                    </div>
                                )
                            })
                        }
                    </div>
                </div>
            </div>
        )
    }
    //整体数据的接口
    getDetail() {
        let _this = this
        axios.get(`https://api.hongbeibang.com/recipe/get?contentId=${this.props.match.params.id}&quantity=${this.state.quantity}`)
            .then(function (res) {
                _this.setState({
                    alldata: res.data.data.recipe,
                })
                // 拿到clienId 传给作者食谱那个方法
                _this.getauthorRecipe(res.data.data.recipe.clientId)
            })
            .catch(function (error) {
                console.log(error)
            })
    }
    //作者食谱的接口方法,
    getauthorRecipe(id) {
        let _this = this
        axios.get(`https://api.hongbeibang.com/client/getRecipe?pageIndex=0&pageSize=10&clientId=${id}`)
            .then(function (res) {
                // console.log(res.data.data.cookClient.recipe.data)
            })
            .catch(function (error) {
                console.log(error)
            })
    }
    //推荐
    getRandcontent() {
        let _this = this
        axios.get(`https://api.hongbeibang.com/recommend/getRandContent?type=3&pageSize=10
        `)
            .then(function (res) {
                _this.setState({
                    Randcontent: res.data.data.data
                }, () => {
                    // console.log(_this.state.Randcontent)
                })
            })
            .catch(function (error) {
                console.log(error)
            })
    }
    componentDidMount() {
        this.getDetail()
        this.getcomment()
        this.getRandcontent()
    }
}

export default ItemDetail



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值