punchAppeal.js 10.0 KB
// pages/punchAppeal/punchAppeal.js
const app = getApp();
Page({

    /**
     * 页面的初始数据
     */
    data: {
        current: 0,
        maxlength: 100,
        minlength: 0,
        currentnum: 0,
        image: '',
        image1: '',
        image2: '',
        textcontent: '',
        has_more: true,
        page_number: 1,
        examining:[],
    },
    //tab切换
    tabCharge(e) {
        var index = +e.currentTarget.dataset.current
        var current = this.data.current
        // console.log('index', index);
        if (index == current) {
            return false
        } else {
            this.setData({
                current: index,
                has_more: true,
                page_number:1,
                examining:[]
            });
            if(index !== 0) {
                // console.log('aa');
                this.getMyComplain(index)
            }
        }
    },
    //申诉内容获取
    appealContent(e) {
        var textcontent = e.detail.value
        var len = e.detail.cursor
        var maxlength = this.data.maxlength
        var minlength = this.data.minlength
        if (len > maxlength) {
            wx.showToast({
                title: '超出最大限制',
                icon: 'none'
            })
            return
        } else {
            this.setData({
                currentnum: len,
                textcontent: textcontent,
            })
        }
    },
    //上传图片
    uploadImg(e) {
        const current = +e.currentTarget.dataset.current;
        const self = this;
        self.chooseImage(current);
    },
    //选择图片
    chooseImage(current) {
        const self = this;
        wx.chooseImage({
            count: 3, //最多可以选择的图片总数
            sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
            sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
            success: function (res) {
                // console.log(res);
                const tempFilePaths = res.tempFilePaths;
                let token = wx.getStorageSync('token');
                let uploadImgCount = 0;
                for (let i = 0, h = tempFilePaths.length; i < h; i++) {
                    wx.uploadFile({
                        url: 'https://kexueduizhang.cn/api/user/Upload/one',
                        filePath: tempFilePaths[i],
                        name: 'file',
                        formData: {
                            'imgIndex': i
                        },
                        header: {
                            'content-type': 'application/x-www-form-urlencoded',
                            'XX-Token': token,
                            'XX-Device-Type': 'wxapp',
                        },
                        success: function(res) {
                            uploadImgCount++;
                            let data = JSON.parse(res.data);
                            // console.log('data',data);
                            if (data.code == 20000) {
                                //服务器返回格式: { "Catalog": "testFolder", "FileName": "1.jpg", "Url": "https://test.com/1.jpg" }
                                if (current === 0) {
                                    self.setData({image: data.data.url,image_params:data.data.local_url});
                                } else if (current === 1) {
                                    self.setData({image1: data.data.url,image_params1:data.data.local_url});
                                } else {
                                    self.setData({image2: data.data.url,image_params2:data.data.local_url});
                                }
                                const images = [];
                                const new_images = [];
                                images.push(self.data.image_params,self.data.image_params1,self.data.image_params2);
                                // console.log('images push后',images);
                                images.map((item)=> {
                                    if(item !== undefined) {
                                        new_images.push(item)
                                    }
                                });
                                self.setData({new_images: new_images.join(',')});
                                // console.log('images',new_images.join(','));

                            } else {
                                wx.showModal({
                                    title: '提示',
                                    content: data.msg,
                                    showCancel: false
                                })
                            }

                        },
                        fail: function(res) {
                            wx.hideToast();
                            wx.showModal({
                                title: '错误提示',
                                content: '上传图片失败',
                                showCancel: false,
                                success: function(res) {}
                            })
                        }
                    });
                }
            },
        })
    },
    //提交
    submit(e) {
        const self = this;
        if(self.data.image === '' && self.data.image1 === '' && self.data.image2 === '') {
            wx.showToast({title:'请上传申诉照片!',icon: 'none'})
        }else if(self.data.textcontent === ''){
            wx.showToast({title:'请填写申诉文字!',icon: 'none'})
        }else {
            let url = '/portal/Experiment/user_complain';
            let header = {
                "XX-token": wx.getStorageSync('token')
            };
            let params = {
                images: this.data.new_images,//实验室id
                description: this.data.textcontent,
                formId: e.detail.formId,
            };
            app.post(url, params, header).then((res) => {
                // console.log('提交结果',res);
                if(res.is_success) {
                    wx.showToast({
                        title:'申诉成功',
                        icon: 'success',
                        success:function () {
                            setTimeout(function () {
                                self.setData({
                                    image: '',image1: '',imag2: '',
                                    current: 1,examining:[],has_more:true,page_number:1
                                });
                                self.getMyComplain(self.data.current)
                            },500)
                        }
                    })
                }
            })
        }
    },
    //我的申诉
    getMyComplain(current) {
        // console.log(this.data.has_more);
        if(!this.data.has_more) return;
        this.setData({has_more: false});
        let url = '/portal/Experiment/user_complain_list';
        let header = {
            "XX-token": wx.getStorageSync('token')
        };
        let params = {
            status: current,//(1,审核中、2,已通过、3,未通过)
            page: this.data.page_number,
        };
        app.post(url, params, header).then((res) => {
            // console.log('我的申诉',res);
            if(res.this_page < res.total_page) {
                this.setData({has_more: true});
            }
            this.setData({examining: this.data.examining.concat(res.list)});
            // console.log(this.data.examining);
        })
    },
    //取消申诉
    cancel(e) {
        const id = e.currentTarget.dataset.id;
        let url = '/portal/Experiment/user_complain_cancel';
        let header = {
            "XX-token": wx.getStorageSync('token')
        };
        let params = {
            complain_id: id,//申诉id
        };
        app.post(url, params, header).then((res) => {
            // console.log('取消申诉',res);
            if(res.is_success == 1) {
                wx.showToast({title:'取消成功',icon:'none'});
                const current = 1;
                this.setData({examining:[],has_more:true,page_number:1});
                this.getMyComplain(+current)
            }else {
                wx.showToast({title:'取消失败,请稍候再试',icon:'none'})
            }
            // this.setData({examining: this.data.examining.concat(res.list)});
            // console.log(this.data.examining);
        })
    },
    //查看原因跳转申诉详情页
    listDetail(e) {
        const current = +e.currentTarget.dataset.index;
        const id = +e.currentTarget.dataset.id;
        // console.log('current',current);
        wx.navigateTo({
            url: '../punchAppealDetail/punchAppealDetail?status=' + current
                + '&test_name=' + this.data.test_name +
                '&id=' + id,
        })
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        // console.log('options', options);
        this.setData({test_name: options.test_name?options.test_name:'',});
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

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

    },

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

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {
        const self = this;
        if(self.data.has_more) {
            self.data.page_number ++;
            self.getMyComplain();
        }else {
            wx.showToast({
                title: '没有更多数据了~',
                icon: 'none'
            });
        }
        console.log('上拉加载');
    },

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

    }
})