import {
    ApiModel
} from "../../../utils/api";
const _Http = new ApiModel();
const handleList = require("../../../utils/processingData");
Page({
    /**
     * 页面的初始数据
     */
    data: {
        isOnShow: true, //是否触发onshow中的刷新列表
        searchFocus: false, //我的需求搜索框焦点
        searchText: "", //我的需求搜索内容
        pageNumber: 1, //获取第几页
        pageTotal: 2, //全部分页数量
        active: 0, //tabs 选中下标
        ftypeList: [], //分类列表
        ftype: "", //当前查询分类
        ifShowCommunicationOfNumber: false,
        /* 供需列表 */
        productList: [],
        //轮播图列表
        swiperBannerList: [{
            id: "001",
            url: "/static/userImage.png",
            src: ''
        }, {
            id: "002",
            url: "/static/userImage.png",
            src: ''
        }, {
            id: "003",
            url: "/static/userImage.png",
            src: ''
        }],
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        /* 获取所有信息分类 */
        _Http.basic({
            "accesstoken": wx.getStorageSync('userData').token,
            "classname": "enterprise.system.supplyanddemand",
            "method": "query_typeselectList",
            "content": {}
        }).then(res => {
            if (res.msg != '成功') return;
            this.setData({
                ftypeList: res.data
            })
        })
    },
    /* tabs切换接口 */
    getList() {
        if (this.data.active == 0) return this.getSupplyAndDemand();
        if (this.data.active == 1) return this.getSupplyAndDemand(true);
        if (this.data.active == 2) return this.myNeed();
    },
    /* 宫格区点击事件 */
    switchScreenType(even) {
        let {
            type
        } = even.currentTarget.dataset;
        this.InitializeDataPaging();
        /* 第二次触发同一个，查询全部 */
        if (type == this.data.ftype) type = "";
        this.setData({
            ftype: type
        });
        this.getSupplyAndDemand()
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },
    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
        this.getTabBar().init();
        //获取列表
        if (this.data.isOnShow) {
            this.getList();
        } else {
            this.setData({
                isOnShow: true
            })
        }
    },
    /* 显示沟通数量 */
    showCommunicationOfNumber() {
        this.setData({
            ifShowCommunicationOfNumber: !this.data.ifShowCommunicationOfNumber
        })
    },
    /* 阻止冒泡 */
    stop() {

    },
    /* 一键联系 */
    contact() {
        console.log('一键联系')
    },
    /* 供需下架 */
    soldOut(e) {
        const that = this;
        const {
            index
        } = e.target.dataset;
        wx.showModal({
            title: '提示',
            content: '是否确定下架该需求',
            success: function (res) {
                if (res.confirm) {
                    _Http.basic({
                        "accesstoken": wx.getStorageSync('userData').token,
                        "classname": "customer.supplyanddemand.supplyanddemand",
                        "method": "updatesupplyanddemandstatus",
                        "content": {
                            "tsupplyanddemandid": that.data.productList[index].tsupplyanddemandid,
                            "fstatus": "已解决"
                        }
                    }).then(res => {
                        console.log(res)
                        if (res.msg != "成功") return;
                        let productList = that.data.productList;
                        productList[index].fstatus = "已解决"
                        that.setData({
                            productList
                        })
                        wx.showToast({
                            title: "下架成功"
                        })
                    })
                }
            }
        });
    },
    /* 获取供需列表 */
    getSupplyAndDemand(fstatus) {
        let condition = "";
        let where = {
            "condition": condition, //模糊搜索
            "ftype": this.data.ftype, //数据类型
            "fissupply": "" // 0需 1供
        };
        if (fstatus) {
            where = {
                "condition": condition, //模糊搜索
                "ftype": this.data.ftype, //数据类型
                "fissupply": 0, // 0需 1供
                "fstatus": "正在对接"
            }
        };
        _Http.basic({
            "accesstoken": wx.getStorageSync('userData').token,
            "classname": "customer.supplyanddemand.supplyanddemand",
            "method": "query_supplyanddemandList",
            "content": {
                "getdatafromdbanyway": true,
                "pageNumber": this.data.pageNumber,
                "pageSize": 20,
                "where": where
            }
        }).then(res => {
            if (res.msg != "成功") return;
            this.returnList(res);
        })
    },
    /* tabs */
    tabsChange(even) {
        this.setData({
            active: even.detail.index
        })
        /* 初始化分页 */
        this.InitializeDataPaging();
        this.getList();
    },
    /* 跳转商品详情页 */
    jumpForDetails(e) {
        const {
            index
        } = e.currentTarget.dataset,
            id = this.data.productList[index].tsupplyanddemandid;
        wx.navigateTo({
            url: '/pages/tabbar-pages/supplyAndDemand/particulars?tsupplyanddemandid=' + id + '&type=' + this.data.active,
        })
    },
    /* 我的需求 */
    myNeed() {
        //全部加载完成退出请求
        _Http.basic({
            "accesstoken": wx.getStorageSync('userData').token,
            "classname": "customer.supplyanddemand.supplyanddemand",
            "method": "query_mysupplyanddemandList",
            "content": {
                "getdatafromdbanyway": true,
                "pageNumber": this.data.pageNumber,
                "pageSize": 20,
                "where": {
                    "condition": this.data.searchText,
                    "ftype": "",
                    "fissupply": "0"
                }
            }
        }).then(res => {
            if (res.msg != "成功") return;
            this.returnList(res);
        })
    },
    /* 返回列表 */
    returnList(res) {
        const data = handleList.checkdate(res.data)
        const productList = handleList.listOrdering(data);
        let pageNumber = this.data.pageNumber + 1;
        //替换或拼接
        if (res.pageNumber == 1) {
            this.InitializeDataPaging()
            //第一页直接替换list
            this.setData({
                productList,
                pageTotal: res.pageTotal,
                pageNumber
            });
        } else {
            //第二页开始拼接列表
            let list = this.data.productList.concat(productList);
            this.setData({
                productList: list,
                pageNumber
            })
        };
    },
    /* 我的需求编辑按钮跳转 */
    productEdit(e) {
        console.log(e)
        const {
            index
        } = e.currentTarget.dataset
        const data = JSON.stringify(this.data.productList[index])
        wx.navigateTo({
            url: '/pages/announceDemand/index?data=' + data,
        })
    },
    /* 我的需求搜索框获得焦点 */
    needSearchFocus() {
        this.setData({
            searchFocus: true
        })
    },
    /* 我的需求搜索框失去焦点 */
    needSearchBlur(e) {
        const {
            value
        } = e.detail;
        //数据比较，防止重复查询
        if (value == this.data.searchText) return this.setData({
            searchFocus: false,
        });
        let searchText = "";
        if (value != "") searchText = value;
        this.setData({
            searchFocus: false,
            searchText
        })
        this.InitializeDataPaging();
        this.myNeed();
    },
    /* 初始化分页数据 */
    InitializeDataPaging() {
        this.setData({
            pageTotal: 2,
            pageNumber: 1
        })
    },
    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {
        this.setData({
            isOnShow: true
        })
    },
    /* 阻止刷新列表 */
    stopOnShow() {
        this.setData({
            isOnShow: false
        })
    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {
        if (this.data.pageNumber <= this.data.pageTotal) this.getList();
    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})