odc.xiaohui
2023-03-21 b628d9eaed3de37e7e59d0fe47dd12b58a952f0e
miniprogram/pages/user/report/submitReport/index.ts
@@ -1,24 +1,136 @@
// index.ts
const submitReport =getApp()
import Toast from '@vant/weapp/toast/toast';
Page({
    data: {
        capture:['camera'],
        beforList:'a',
        amountInvolved:'',
        workingLocation:'',
        Location:'',
        userIdCard:'',
        sex:'男',
        realName:'',
        phone:'',
        fileImgList: [],
        transactionReceiptList:[],
        otherList:[],
        causeIndex: null,
        items:  { name: '日期时间选择', value: 'dateTime' },
        mode: 'dateTime',
        reportDetail: {},
        causeList: [],
        imagesFile: [],
        cardIdList:[],
        images: [],
        materials:"",
        materials:'',
        cheatTime:"",
        arraySex: [
             {sex:'男',id:1},
             {sex:'女',id:0}
            ],
            sexId:0
    },
    getrealName(e){
        this.setData({
            realName:e.detail
        })
    },
    getsex(e){
        this.setData({
            sex:e.detail
        })
    },
    getuserIdCard(e){
        this.setData({
            userIdCard:e.detail
        })
    },
    getLocation(e){
        this.setData({
            Location:e.detail
        })
    },
    getworkingLocation(e){
        this.setData({
            workingLocation:e.detail
        })
    },
    getamountInvolved(e){
        this.setData({
            amountInvolved:e.detail
        })
    },
    onChangeTabs(e){
        this.setData({
            beforList:e.detail.name
        })
    },
    afterReadImg(event: { detail: { file: any; }; },name){
        console.log(event,name);
        const { file } = event.detail;
        let that=this
        console.log(file);
        // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
        wx.uploadFile({
            // filePath:  this.data.imagesFile[index].tempFilePath,
                        header: {
                            'token': wx.getStorageSync('token'),
                            'content-type': 'application/json'
                        },
          url: submitReport.globalData.url+"/minio/upload",
          filePath: file.url,
          name: 'file',
          formData: { user: 'test' },
          success(res) {
            // 上传完成需要更新 fileList
            const { fileImgList = [] } = that.data;
            const { transactionReceiptList = [] } = that.data;
            const { otherList = [] } = that.data;
            const { cardIdList = [] } = that.data;
            let result = JSON.parse(res.data)
            if (that.data.beforList=='a') {
                cardIdList.push({ ...file, url: res.data });
                that.setData({ cardIdList });
            }else if(that.data.beforList=='b'){
                fileImgList.push({ ...file, url: res.data });
                that.setData({ fileImgList });
            }else if(that.data.beforList=='c'){
                transactionReceiptList.push({ ...file, url: res.data });
                that.setData({ transactionReceiptList });
            }else if(that.data.beforList=='d'){
                otherList.push({ ...file, url: res.data });
                that.setData({ otherList });
            }
            that.setData({
                materials: that.data.materials+=result.data+","
            })
            console.log(that.data.materials);
          },
        });
    },
    //选择案件
    pickCause(e: { detail: { value: string | number; }; }) {
        console.log(e);
        this.setData({
            causeIndex: e.detail.value
        })
        this.data.reportDetail.causeId = this.data.causeList[e.detail.value].id
    },
    uploadImage() {
        wx.chooseMedia({
            sourceType:['camera'],
            mediaType: ['image'],
            success: res => {
                this.setData({
                    imagesFile: res.tempFiles
                })
                console.log(this.data.imagesFile);
                for (let index = 0; index <  this.data.imagesFile.length; index++) {
                    wx.uploadFile({
                        filePath:  this.data.imagesFile[index].tempFilePath,
@@ -30,22 +142,18 @@
                        url: submitReport.globalData.url+"/minio/upload",
                        success: res => {
                            const result = JSON.parse(res.data)
                          this.data.images.push({
                              url:submitReport.globalData.imageUrl+"/img/"+result.data
                          })
                          this.setData({
                            images:this.data.images
                        })
                        if(index< this.data.imagesFile.length-1){
                             this.data.materials+=result.data+","
                        }else{
                            this.data.materials+=result.data
                        }
                        this.setData({
                            materials:this.data.materials
                        })
                                this.data.images.push({
                                    url:submitReport.globalData.imageUrl+"/img/"+result.data
                                })
                                this.setData({
                                    images:this.data.images
                                })
                                this.setData({
                                    materials: this.data.materials+=result.data+","
                                })
                                console.log(this.data.materials);
                        } 
                    })
                    })
                }
            }
        })
@@ -55,6 +163,19 @@
onPickerChange(e){
    console.log(e)
    this.data.cheatTime=e.detail.value
},
subSex(e){
console.log(e);
},
bindPickerChangeSex(e){
console.log(e);
this.setData({
    sexId:e.detail.value
})
this.setData({
    sex:this.data.arraySex[e.detail.value].sex
})
},
getMoney:function(e){
 console.log(e.detail.value)
@@ -75,16 +196,51 @@
       })
    },
    pass() {
        this.data.reportDetail.materials=this.data.materials
        this.data.reportDetail.userId=wx.getStorageSync('id')
        this.data.reportDetail.cheatTime=this.data.cheatTime
        if (  this.data.reportDetail.materials == null||  this.data.reportDetail.information==null||  this.data.reportDetail.reportDescription==null) {
            wx.showToast({
                icon: "none",
                title: '请完整填完表单!',
            })
        console.log(this.data.realName);
        if (this.data.realName=='') {
            Toast('请输入姓名!');
            return
        } else if(this.data.userIdCard=='') {
            Toast('请输入身份证!');
            return
        }else if(this.data.Location=='') {
            Toast('请输入现住址!');
            return
        }else if(this.data.workingLocation=='') {
            Toast('请输入工作单位!');
            return
        }else if(this.data.amountInvolved=='') {
            Toast('请输入受损金额!');
            return
        }else if(this.data.cardIdList.length!=2) {
            Toast('请选择身份证照片!');
            return
        }
        if (this.data.fileImgList.length!=0||this.data.transactionReceiptList.length!=0||this.data.otherList.length!=0) {
        }else{
            Toast('相关合同,交易凭证,其他;必填一项!');
            return
        }
        this.data.materials=this.data.materials.substring(0,this.data.materials.length-1);
        this.data.reportDetail.amountInvolved=this.data.amountInvolved,
        this.data.reportDetail.workingLocation=this.data.workingLocation,
        this.data.reportDetail.Location=this.data.Location,
        this.data.reportDetail.userIdCard=this.data.userIdCard,
        this.data.reportDetail.sex=this.data.sex,
        this.data.reportDetail.realName=this.data.realName,
        this.data.reportDetail.phone=this.data.phone,
        this.data.reportDetail.reportMaterials=this.data.materials
        this.data.reportDetail.userId=wx.getStorageSync('id')
        this.data.reportDetail.cheatTime=this.data.cheatTime
        // if (  this.data.reportDetail.information==null||  this.data.reportDetail.reportDescription==null) {
        //     wx.showToast({
        //         icon: "none",
        //         title: '请完整填完表单!',
        //     })
        //     return
        // }
        wx.request(
            {
                url: submitReport.globalData.url+"/wx/user/addReport",
@@ -104,6 +260,10 @@
    },
    onLoad(e) {
        let phone = wx.getStorageSync('phone')
        this.setData({
            phone:phone
        })
        var date = new Date()
        var month = date.getMonth() + 1
        var day = date.getDate()
@@ -128,5 +288,16 @@
        }
        this.data.cheatTime = date.getFullYear() + "-" + month + "-" + day + " " + hours+":"+minutes+":"+secends
        console.log( this.data.cheatTime)
        wx.request(
            {
                url: submitReport.globalData.url+  "/cause/getCauseList",
                method: "GET",
                header: { 'token': wx.getStorageSync('token')},
                success: (res) => {
                    this.setData({
                        causeList: res.data.data.records
                    })
                }
            })
    }
})