forked from gzzfw/frontEnd/gzDyh

zhangyongtian
2024-09-14 272d0e5869d1eaecd51885252eb7b7210ec06d4d
gz-wxparty/pages/register/index.js
@@ -12,6 +12,46 @@
  });
}
// 附件上传的id
function getByIdApi(param) {
  return $$.request({
    url: 'caseUtils/getNewTimeCaseId',
    type: 'get',
    submitData: param || {},
    service: 'utils'
  });
}
// 删除附件
function delfileApi(id) {
  return $$.request({
    url: 'fileInfo/deleteFileById?id=' + id,
    type: 'get',
    service: 'sys',
  });
}
function getawApi(submitData) {
  return $$.request({
    url: 'case-law/get-clain-rise-case',
    type: 'post',
    ai: true,
    submitData,
    service: 'mediate',
  });
}
// 获取案例
function getCaseApi(submitData) {
  return $$.request({
    url: 'case-law/get-case',
    type: 'post',
    ai: true,
    submitData,
    service: 'mediate',
  });
}
function caseRegisterSaveApi(submitData) {
  return $$.request({
    url: 'caseInfo/caseRegister',
@@ -30,6 +70,7 @@
  select: {}, // 下拉框数据
  goToMaterialSave: false, // 避免跳转到材料上传页面重复保存草稿
  agreementMsg: '', // 服务协议
  ownerId: '', //附件上传id
  data: {
    stepText: 5, //用户须知倒计时5秒
    timer: null, // 用于存储定时器的引用
@@ -71,9 +112,8 @@
      amount: '',
      caseDes: '',
      caseClaim: '',
      plaintiffList: [],
      defendantList: [],
    }, // 表单数据
    fileList: [], //表单附件
    addPersonData: {}, //添加的当事人
    materialNum: 0, // 纠纷材料总数量
    userInfoVisible: false, // 是否采用个人信息更新申请人信息
@@ -283,15 +323,28 @@
    this.setData({
      popupVisible: false
    });
    if (this.data.oneList?.length === 0) {
      this.setData({
        addMePlaintiff: true
      })
    }
  },
  // 下一步 or 上一步
  handleNext(e) {
    let type = e.currentTarget.dataset.type;
    if (type === 'next' && this.data.stepsActive === 0) {
      this.setData({
        stepsActive: 1
      });
      if (this.data.oneList?.length <= 0) {
        $$.showToast({
          title: '请至少添加一名当事人',
          duration: 500
        });
      } else {
        this.setData({
          stepsActive: 1
        });
        this.getById();
      }
      return;
    }
    if (type === 'back' && this.data.stepsActive === 1) {
@@ -301,12 +354,58 @@
      return;
    }
    if (type === 'next' && this.data.stepsActive === 1) {
      let newData = this.data.submitData;
      console.log('this.data.submitData', this.data.submitData);
      if (!newData.caseType) {
        $$.showToast({
          title: '请选择纠纷类型',
          duration: 500
        });
        return;
      }
      if (!newData.occurTime) {
        $$.showToast({
          title: '请选择纠纷发生时间',
          duration: 500
        });
        return;
      }
      if (!newData.addr) {
        $$.showToast({
          title: '请选择纠纷发生地',
          duration: 500
        });
        return;
      }
      if (!newData.caseDes) {
        $$.showToast({
          title: '请填写事项概况',
          duration: 500
        });
        return;
      }
      if (!newData.caseClaim) {
        $$.showToast({
          title: '请填写事项申请',
          duration: 500
        });
        return;
      }
      // if (!this.data.fileList?.length <= 0) {
      //   // 附件上传提示
      //   this.setData({
      //     showFileTip: true
      //   })
      //   return;
      // }
      // 提交AI接口
      this.getaw(newData);
      this.setData({
        stepsActive: 2
      });
      return;
    }
    if (type === 'back' && this.data.stepsActive === 2) {
      this.setData({
        stepsActive: 1
@@ -324,8 +423,35 @@
      this.caseRegisterSave({
        ...data,
        personList,
        agentList
        agentList,
        id: this.data.ownerId,
      });
    }
  },
  async getaw(data) {
    let newData = {
      caseDes: data.caseDes,
      caseClaim: data.caseClaim,
      caseId: this.data.ownerId,
    }
    const res = await getawApi(newData);
    if (res.type) {
      console.log('res.data', res.data);
      this.setData({
        AIData: res.data || {}
      })
    }
  },
  async getById() {
    $$.showLoading();
    const res = await getByIdApi();
    $$.hideLoading();
    if (res.type) {
      this.setData({
        ownerId: res.data || ''
      })
    }
  },
@@ -334,7 +460,25 @@
    const res = await caseRegisterSaveApi(params);
    $$.hideLoading();
    if (res.type) {
      Toast('提交成功');
      // Toast('提交成功');
      this.setData({
        saveStatus: true
      })
    }
    const res1 = await getCaseApi({
      caseDes: params.caseDes,
      caseClaim: params.caseClaim,
      caseId: params.id,
    });
    if (res1.type) {
      wx.setStorage({
        key: 'AICase',
        data: {
          caseDes: params.caseDes,
          caseClaim: params.caseClaim,
          caseId: params.id,
        }
      });
    }
  },
@@ -343,6 +487,53 @@
    let url = e.currentTarget.dataset.url;
    wx.navigateTo({
      url: url,
    });
  },
  // 图片识别
  ocrClick(e) {
    let key = e.currentTarget.dataset.key;
    let keyNum = e.currentTarget.dataset.keynum;
    let that = this;
    wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      success(res2) {
        const tempFiles = res2.tempFiles[0];
        $$.showLoading();
        wx.uploadFile({
          url: `${$$.baseUrl}${$$.url.sys}/api/wechat/fileInfo/recognitionText`,
          filePath: tempFiles.tempFilePath,
          name: 'file',
          header: {
            Authorization: app.globalData.token
          },
          complete(res3) {
            $$.hideLoading();
            if (res3.errMsg === 'uploadFile:ok') {
              let {
                code,
                data
              } = JSON.parse(res3.data);
              if (code == -1) {
                $$.errorModal({
                  content: '识别失败'
                });
                return;
              }
              let wordsResult = data?.ocrResult?.wordsResult.join('');
              let wordsResultNum = data?.ocrResult?.wordsResultNum;
              that.setData({
                submitData: {
                  ...that.data.submitData,
                  [key]: that.data.submitData.caseDes + wordsResult
                },
                [keyNum]: (that.data.submitData.caseDes + wordsResult).length
              });
            }
          },
        });
      },
    });
  },
@@ -384,21 +575,98 @@
    })
  },
  // 获取省市区等地理资源
  async getLocationData() {
    $$.showLoading();
    const res = await $$.commonRequest({
      url: `${$$.url.assets}locationSelect.json`,
      type: 'get'
  // 上传文件图片
  async handleUploadFile(e) {
    let id = e.currentTarget.dataset.id;
    let type = e.currentTarget.dataset.type;
    let that = this;
    this.filesArr = [];
    wx.chooseMedia({
      mediaType: ['image'],
      success(res2) {
        const tempFiles = res2.tempFiles;
        // 多个文件逐一上传
        tempFiles.forEach((x, t) => {
          $$.showLoading('上传中...');
          wx.uploadFile({
            url: `${$$.baseUrl}${$$.url.sys}/api/wechat/fileInfo/upload?mainId=${id}&ownerId=${id}&ownerType=${type}`,
            filePath: x.tempFilePath,
            name: 'file',
            header: {
              Authorization: app.globalData.token
            },
            complete(res) {
              $$.hideLoading();
              if (res.errMsg === 'uploadFile:ok') {
                const getData = JSON.parse(res.data)
                const file = {
                  ...getData.data[0],
                  wxurl: x.tempFilePath
                };
                that.setData({
                  fileList: that.data.fileList.concat(file)
                })
                $$.showToast({
                  icon: 'success',
                  title: '上传成功',
                  duration: 500
                });
              } else {
                $$.showToast({
                  title: '上传失败',
                  duration: 500
                });
              }
            },
          });
        });
      },
    });
    $$.hideLoading();
    if (res) {
      let location = [];
      $$.province.forEach((x) => {
        location.push(res[x][0]);
      });
      this.location = location;
    }
  },
  // 预览图片
  handlePreviewImage(e) {
    let item = e.currentTarget.dataset.item;
    console.log('item', item);
    let index = e.currentTarget.dataset.index;
    wx.previewImage({
      current: item.wxurl,
      urls: [item.wxurl] // 需要预览的图片http链接列表
    });
  },
  // 删除图片
  async handleDelImage(e) {
    let item = e.currentTarget.dataset.item;
    let index = e.currentTarget.dataset.index;
    let id = e.currentTarget.dataset.id;
    let type = e.currentTarget.dataset.type;
    $$.showModal({
      title: '删除材料确认',
      content: '确定删除材料' + item.name + '吗?',
      cancelText: '我再想想',
      confirmText: '确定删除',
      success: async (res) => {
        if (res.confirm) {
          $$.showLoading();
          const res = await delfileApi(id);
          if (res.type) {
            $$.showToast({
              icon: 'success',
              title: '删除成功',
              duration: 500
            });
            let list = this.data.fileList.filter((i, idx) => idx !== index);
            console.log('list', list);
            this.setData({
              fileList: list
            })
          }
        }
      },
    });
  },
  // 请求下拉框资源
@@ -429,7 +697,9 @@
          perTypeName: '申请方当事人',
          perClass: '09_01001-1',
          perClassName: '自然人',
          certiNo: data.idcard || ''
          certiNo: data.idcard || '',
          certiType: data.certiType || '09_00015-1',
          certiTypeName: data.certiTypeName || '身份证',
        }]
      })
    };
@@ -521,7 +791,6 @@
   * 生命周期函数--监听页面加载
   */
  onLoad: function () {
    this.getLocationData();
    let agreement = wx.getStorageSync('agreement');
    if (!agreement) {
      this.getAgreement();
@@ -541,9 +810,6 @@
  onShow: function () {
    if (this.data.oneData?.trueName) {
      let list = this.data.oneList;
      console.log('list', list);
      console.log('this.data.editIndex', this.data.editIndex);
      console.log('this.data.oneData', this.data.oneData);
      if (this.data.editIndex) {
        list[this.data.editIndex] = this.data.oneData;
      } else {
@@ -556,12 +822,12 @@
      })
    }
    if (this.data.twoData?.title) {
    if (this.data.twoData?.label) {
      this.setData({
        submitData: {
          ...this.data.submitData,
          caseType: this.data.twoData.value,
          caseTypeName: this.data.twoData.title,
          caseTypeName: this.data.twoData.label,
        },
        twoData: {}
      })
@@ -572,8 +838,9 @@
      this.setData({
        submitData: {
          ...this.data.submitData,
          [this.data.twoKey]: this.data.twoValue
          [this.data.twoKey]: this.data.submitData[this.data.twoKey] + this.data.twoValue,
        },
        [this.data.twoKey + 'Num']: (this.data.submitData[this.data.twoKey] + this.data.twoValue).length,
        twoValue: '',
        twoKey: ''
      })