forked from gzzfw/frontEnd/gzDyh

liyj
2024-09-09 a78e279a1af2a810d27feb943d180f3093fa63a6
Merge branch 'master' of http://120.79.193.119:9090/r/gzzfw/frontEnd/gzDyh
16 files added
18 files modified
1571 ■■■■ changed files
gz-wxparty/api/api.js 33 ●●●●● patch | view | raw | blame | history
gz-wxparty/app.json 4 ●●●● patch | view | raw | blame | history
gz-wxparty/components/personal-data-dom/index.js 33 ●●●●● patch | view | raw | blame | history
gz-wxparty/components/personal-data-dom/index.wxml 2 ●●● patch | view | raw | blame | history
gz-wxparty/components/steps/index.wxml 2 ●●● patch | view | raw | blame | history
gz-wxparty/pages/AIAide/index.js 116 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/AIAide/index.json 4 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/AIAide/index.wxml 50 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/AIAide/index.wxss 90 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/AIAideDetail/index.js 93 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/AIAideDetail/index.json 4 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/AIAideDetail/index.wxml 17 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/AIAideDetail/index.wxss 25 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/DetailPerson/index.js 79 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/DetailPerson/index.json 4 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/DetailPerson/index.wxml 43 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/DetailPerson/index.wxss 16 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/addPerson/index.wxss 5 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/homePage/index.js 6 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/homePage/index.wxml 25 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/homePage/index.wxss 22 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/myRegisterDetail/index.js 86 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/myRegisterDetail/index.json 4 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/myRegisterDetail/index.wxml 82 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/myRegisterDetail/index.wxss 128 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/myRegisterList/index.js 35 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/myRegisterList/index.json 4 ●●● patch | view | raw | blame | history
gz-wxparty/pages/myRegisterList/index.wxml 18 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/myRegisterList/index.wxss 2 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/realNameAuthentication/index.js 76 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/register/index.js 279 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/register/index.wxml 63 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/register/index.wxss 77 ●●●●● patch | view | raw | blame | history
gz-wxparty/utils/util.js 44 ●●●●● patch | view | raw | blame | history
gz-wxparty/api/api.js
@@ -8,28 +8,37 @@
      // === 测试环境 ===
    // debug: 'https://gz.hugeinfo.com.cn/',
    debug: 'http://n3uvrw.natappfree.cc/',
  debug: 'http://8pxgs3.natappfree.cc/',
      img: 'http://120.79.193.119:9103/wx414ae04ac3f10b4e/images/',
      assets: 'http://120.79.193.119:9103/wx414ae04ac3f10b4e/js/',
    txt: 'http://120.79.193.119:9103/wx414ae04ac3f10b4e/txt/',
  
  
  // === 正式环境 ===
    // web: 'https://zfw-dyh.by.gov.cn/',
    // img: 'https://zfw-dyh.by.gov.cn/wechat/images/',
    // assets: 'https://zfw-dyh.by.gov.cn/wechat/js/',
    // txt: 'https://zfw-dyh.by.gov.cn/wechat/txt/',
  web: 'https://zfw-dyh.by.gov.cn/',
  img: 'https://zfw-dyh.by.gov.cn/gz/wechat/images/',
  assets: 'https://zfw-dyh.by.gov.cn/gz/wechat/js/',
  txt: 'https://zfw-dyh.by.gov.cn/gz/wechat/txt/',
    // 文件查看url 后面接附件编号
    fileShowUrl: 'dyh-sys/api/v1/fileInfo/show/',
  fileShowUrl: 'gzdyh-sys/api/v1/fileInfo/show/',
    // 文件下载url 后面接附件编号
    fileDownUrl: 'dyh-sys/api/v1/fileInfo/down/',
  fileDownUrl: 'gzdyh-sys/api/v1/fileInfo/down/',
    // 不同服务接口type
    mediate: 'dyh-mediate', // dyh-mediate
    cust: 'dyh-cust', // dyh-cust
    oper: 'dyh-oper', // dyh-oper
    sys: 'dyh-sys', // dyh-sys
    disp: 'dyh-disp', //dyh-disp
  // mediate: 'dyh-mediate', // dyh-mediate
  // cust: 'dyh-cust', // dyh-cust
  // oper: 'dyh-oper', // dyh-oper
  // sys: 'dyh-sys', // dyh-sys
  // disp: 'dyh-disp', //dyh-disp
  // utils: 'dyh-utils', //dyh-utils
  // 正式环境
  mediate: 'gzdyh-mediate', // gzdyh-mediate
  cust: 'gzdyh-cust', // gzdyh-cust
  oper: 'gzdyh-oper', // gzdyh-oper
  sys: 'gzdyh-sys', // gzdyh-sys
  disp: 'gzdyh-disp', //gzdyh-disp
  utils: 'gzdyh-utils', //gzdyh-utils
};
module.exports = {
gz-wxparty/app.json
@@ -8,8 +8,12 @@
    "pages/addAddress/index",
    "pages/speechToText/index",
    "pages/addPerson/index",
    "pages/DetailPerson/index",
    "pages/AIAide/index",
    "pages/AIAideDetail/index",
    "pages/myRegisterList/index",
    "pages/myRegisterFlow/index",
    "pages/myRegisterDetail/index",
    "pages/autograph/index",
    "pages/course/index",
    "pages/orderConfirm/index",
gz-wxparty/components/personal-data-dom/index.js
@@ -97,10 +97,6 @@
                        values: selectOption[indexArr[0]].children[indexArr[1]].children || [],
                        defaultIndex: indexArr[2]
                    },
                    {
                        values: selectOption[indexArr[0]].children[indexArr[1]].children[indexArr[2]].children || [],
                        defaultIndex: indexArr[3]
                    },
                ];
                selectData.forEach((x) => {
                    x.values.forEach((y) => {
@@ -127,41 +123,12 @@
        async _getUserInfo() {
            console.log('个人信息')
            console.log(app.globalData.access_token, 'app.globalData.access_token1111111')
            // const res = await getUserInfoApi();
            // $$.hideLoading();
            // if (res.type) {
            //     this.triggerEvent('getUserInfo', res.data);
            // }
            const res = await getUserInfoApi();
            $$.hideLoading();
            if (res.type) {
                if(res.data.trueName !== null)
                this.triggerEvent('getUserInfo', res.data);
            }
            if (app.globalData.access_token && res.data.trueName === null) {
                let actoken = app.globalData.access_token;
                wx.request({
                    url: 'https://xcx.pinganbaiyun.cn/p_060_cs_intf/api_001/sv_002_get_paby_login_info', //仅为示例,并非真实的接口地址
                    data: {
                        "access_token": '测试token',
                        "app_id": "测试",
                        "secret": "测试"
                    },
                    method: 'post',
                    success: (res1) => {
                        $$.hideLoading();
                        this.triggerEvent('getUserInfo', {
                            ...res1.data[0],
                            trueName: res1.data[0].XM,
                            idcard: res1.data[0].ZJHM,
                            mobile: res1.data[0].LXDH
                        });
                    }
                })
            }
        },
        // 请求下拉框资源
        async _getSelectOptionData() {
gz-wxparty/components/personal-data-dom/index.wxml
@@ -66,7 +66,7 @@
        data-type="location"
        is-link="{{ !isCheck }}"
        label="居住地"
        placeholder="省/市/区(县)/街道"
        placeholder="市/区(县)/街道"
        readonly
        value="{{ submitData.prov ? wxs.showLocation(submitData) : '' }}"
    />
gz-wxparty/components/steps/index.wxml
@@ -12,7 +12,7 @@
          <van-icon name="{{ imgUrl }}steps-arrow.png" size="14" />
        </block>
        <block wx:else>
          <van-icon name="{{ imgUrl }}steps-arrow-active.png" size="14" />
          <van-icon custom-style="font-weight:600" name="arrow" size="14" />
        </block>
      </view>
    </view>
gz-wxparty/pages/AIAide/index.js
New file
@@ -0,0 +1,116 @@
// pages/AIAide/index.js
const $$ = require('../../utils/util');
const app = getApp();
function getawApi(submitData) {
  return $$.request({
    url: 'case-law/get-law',
    type: 'post',
    ai: true,
    submitData,
    service: 'mediate',
  });
}
// 获取案例
function getCaseApi(submitData) {
  return $$.request({
    url: 'case-law/get-case',
    type: 'post',
    ai: true,
    submitData,
    service: 'mediate',
  });
}
Page({
  /**
   * 页面的初始数据
   */
  data: {
    imgUrl: $$.url.img,
    AIData: [], //法条
    caseData: [], //案例
  },
  async getaw(data) {
    let newData = {
      caseDes: data.caseDes,
      caseClaim: data.caseClaim,
      caseId: data.caseId,
    }
    $$.showLoading();
    const res = await getawApi(newData);
    $$.hideLoading();
    if (res.type) {
      let nowData = res.data || []
      this.setData({
        AIData: nowData.map(i => ({
          ...i,
          show: false
        }))
      })
    }
  },
  // 案例
  async getCase(data) {
    let newData = {
      caseDes: data.caseDes,
      caseClaim: data.caseClaim,
      caseId: data.caseId,
    }
    $$.showLoading();
    const res = await getCaseApi(newData);
    $$.hideLoading();
    if (res.type) {
      this.setData({
        caseData: res.data || []
      })
    }
  },
  // 打开折叠法条
  lawClick(e) {
    let item = e.currentTarget.dataset.item;
    let index = e.currentTarget.dataset.index;
    this.setData({
      AIData: this.data.AIData.map((i, idx) => ({
        ...i,
        show: idx === index ? i.show ? false : true : false,
      }))
    })
  },
  // 跳转案例详情
  caseClick(e) {
    let url = e.currentTarget.dataset.url;
    let caseId = e.currentTarget.dataset.caseid;
    let caseType = e.currentTarget.dataset.casetype;
    wx.navigateTo({
      url: url + '?caseId=' + caseId + '&type=' + caseType,
    });
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log('options', options);
    let {
      caseDes,
      caseClaim,
      caseId,
    } = options;
    this.getaw({
      caseDes,
      caseClaim,
      caseId,
    })
    this.getCase({
      caseDes,
      caseClaim,
      caseId,
    })
  },
})
gz-wxparty/pages/AIAide/index.json
New file
@@ -0,0 +1,4 @@
{
  "navigationBarTitleText": "解纷助手",
  "usingComponents": {}
}
gz-wxparty/pages/AIAide/index.wxml
New file
@@ -0,0 +1,50 @@
<!--pages/AIAide/index.wxml-->
<wxs module="wxs" src="../../utils/wxs/util.wxs" />
<view class="card">
  <view class="card_main">
    <block wx:if="{{caseData.length>0}}">
      <view class="caseList_head">
        <van-icon size="22" name="{{imgUrl}}AIAide_1.png" />为您推荐与申请相似的典型案例({{caseData.length}})
      </view>
      <view class="caseList" bindtap="caseClick" data-caseId="{{item.caseId}}" data-caseType="{{item.caseType}}" data-url="../../pages/AIAideDetail/index" wx:for="{{caseData}}" wx:key="index">
        <view class="caseList_flex">
          <text class="ellipsis">{{item.caseName}}</text>
          <view class="cell-arrow">
            <van-icon color="#1A6FB8" size="14" name="arrow" />
          </view>
        </view>
        <view class="caseList_title">相似度:{{'-'}}% | 发生地:广东省 广州市</view>
      </view>
    </block>
    <block wx:if="{{AIData.length>0}}">
      <view class="line"></view>
      <view class="caseList_head">
        <van-icon size="22" name="{{imgUrl}}AIAide_2.png" />为您推荐与申请相关的专业法条({{AIData.length}})
      </view>
      <view class="caseList" wx:for="{{AIData}}" wx:key="index">
        <view bindtap="lawClick" data-item="{{item}}" data-index="{{index}}" class="caseList_flex">
          <text class="ellipsis">《{{item.lawTitle}}》{{item.lawIndex}}</text>
          <view wx:if="{{item.show}}" class="cell-arrow">
            <van-icon color="#1A6FB8" size="14" name="arrow-down" />
          </view>
          <view wx:else class="cell-arrow">
            <van-icon color="#1A6FB8" size="14" name="arrow-up" />
          </view>
        </view>
        <view wx:if="{{item.show}}" class="show-line">
        </view>
        <view wx:if="{{item.show}}" class="show-Law">
          {{item.lawDesc}}
        </view>
      </view>
      <view class="assess">
        <van-icon size="18" name="{{imgUrl}}AIAide_3.png" />
        <van-icon size="18" name="{{imgUrl}}AIAide_4.png" />
      </view>
    </block>
    <view wx:if="{{caseData.length}}" class="flex_end">以上内容均由人工智能模型生成,其生成内容的准确性和完整性无法保证,不代表我们的态度或观点</view>
  </view>
</view>
gz-wxparty/pages/AIAide/index.wxss
New file
@@ -0,0 +1,90 @@
/* pages/AIAide/index.wxss */
.card {
  padding: 24rpx;
  height: 100%;
  background-color: #fff;
  position: relative;
}
.card_main {
  background-color: #F6F7FB;
  border-radius: 8px;
}
.flex_end {
  /* position: fixed;
  bottom: 40rpx; */
  color: rgba(23, 26, 29, 0.24);
  font-size: 28rpx;
  /* padding: 0 52rpx; */
  text-align: center;
  padding: 24rpx 0;
}
.caseList {
  border-radius: 4px;
  background-color: #fff;
  padding: 24rpx;
  margin: 0 24rpx 16rpx 24rpx;
}
.caseList_flex {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8rpx;
}
.cell-arrow {
  width: 16px;
  height: 16px;
  background: #f6f7fb;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 6rpx;
}
.caseList_title {
  color: rgba(23, 26, 29, 0.60);
  font-size: 24rpx;
  line-height: 40rpx;
}
.caseList_head {
  display: flex;
  gap: 8rpx;
  padding: 24rpx 24rpx;
  margin-top: 24rpx;
}
.line {
  border: 1px dashed #e5e6eb;
  margin: 32rpx 24rpx 0;
}
.assess {
  display: flex;
  gap: 32rpx;
  justify-content: flex-end;
  padding: 12rpx 24rpx 32rpx;
}
.ellipsis {
  overflow: hidden;
  /* 确保超出容器的文本会被裁剪 */
  white-space: nowrap;
  /* 保证文本在一行内显示 */
  text-overflow: ellipsis;
  /* 使用省略号表示文本超出 */
}
.show-line {
  margin: 24rpx 0;
  border-top: 1px solid #F0F0F0;
}
.show-Law {
  color: var(--main-color);
}
gz-wxparty/pages/AIAideDetail/index.js
New file
@@ -0,0 +1,93 @@
// pages/AIAideDetail/index.js
const $$ = require('../../utils/util');
const app = getApp();
function getCaseDetail(submitData) {
  return $$.request({
    url: 'case-law/get-case-detail',
    type: 'get',
    ai: true,
    submitData,
    service: 'mediate',
  });
}
Page({
  /**
   * 页面的初始数据
   */
  data: {
    data: {}
  },
  async getaw(data) {
    $$.showLoading();
    const res = await getCaseDetail(data);
    $$.hideLoading();
    if (res.type) {
      this.setData({
        data: res.data || {}
      })
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    let nowData = {
      ...options
    }
    this.getaw(nowData)
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
  }
})
gz-wxparty/pages/AIAideDetail/index.json
New file
@@ -0,0 +1,4 @@
{
  "navigationBarTitleText": "典型案例",
  "usingComponents": {}
}
gz-wxparty/pages/AIAideDetail/index.wxml
New file
@@ -0,0 +1,17 @@
<!--pages/AIAideDetail/index.wxml-->
<view class="title">{{data.caseTitle||'-'}}</view>
<view class="line"></view>
<view class="card">
  <view class="subtitle">【案件描述】</view>
  <view class="text">
    {{data.caseDesc||'-'}}
  </view>
  <view class="subtitle">【和解协议】</view>
  <view class="text">
    {{data.agreeContent||'-'}}
  </view>
  <view class="subtitle">【立案依据】</view>
  <view class="text">
    {{data.legalBasis||'-'}}
  </view>
</view>
gz-wxparty/pages/AIAideDetail/index.wxss
New file
@@ -0,0 +1,25 @@
/* pages/AIAideDetail/index.wxss */
.card {
  padding: 24rpx;
}
.title {
  text-align: center;
  padding: 24rpx;
  font-size: 34rpx;
  line-height: 50rpx;
  font-weight: 600;
}
.line {
  border: 1px dashed #e5e6eb;
  margin: 0 24rpx 24rpx 24rpx;
}
.subtitle {
  color: var(--main-color);
}
.text {
  padding-bottom: 24rpx;
}
gz-wxparty/pages/DetailPerson/index.js
New file
@@ -0,0 +1,79 @@
// pages/DetailPerson/index.js
const $$ = require('../../utils/util');
// 详情接口
function getByIdApi(param) {
  return $$.request({
    url: 'casePerson/getById',
    type: 'get',
    submitData: param || {},
    service: 'mediate'
  })
}
function getByIdAgentApi(param) {
  return $$.request({
    url: 'caseAgent/getById',
    type: 'get',
    submitData: param || {},
    service: 'mediate'
  })
}
Page({
  /**
   * 页面的初始数据
   */
  data: {
    data: {}
  },
  //获取申请人详情
  async getById(id) {
    $$.showLoading();
    const res = await getByIdApi({
      id
    });
    $$.hideLoading();
    if (res.type) {
      let data = res.data || {};
      this.setData({
        data
      });
    }
  },
  //获取被申请人详情
  async getagenById(id) {
    $$.showLoading();
    const res = await getByIdAgentApi({
      id
    });
    $$.hideLoading();
    if (res.type) {
      let data = res.data || {};
      this.setData({
        data
      });
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    let id = options.id;
    let perType = options.perType;
    // 15_020008-1申请方  24_00006-1 申请方代理人 15_020008-2被申请方  24_00006-2 被申请方代理人
    if (perType === '15_020008-1' || perType === '15_020008-2') {
      this.getById(id)
    }
    if (perType === '24_00006-1' || perType === '24_00006-2') {
      this.getagenById(id)
    }
  },
})
gz-wxparty/pages/DetailPerson/index.json
New file
@@ -0,0 +1,4 @@
{
  "navigationBarTitleText": "当事人信息",
  "usingComponents": {}
}
gz-wxparty/pages/DetailPerson/index.wxml
New file
@@ -0,0 +1,43 @@
<!--pages/DetailPerson/index.wxml-->
<view class="card">
  <view class="cell3">
    <view class="cell-title-placeholder">人员类型</view>
    <view>{{ data.perTypeName || '-' }}</view>
  </view>
  <view class="cell3">
    <view class="cell-title-placeholder">姓名</view>
    <view>{{ data.trueName || '-' }}</view>
  </view>
  <view class="cell3">
    <view class="cell-title-placeholder">联系方式</view>
    <view>{{ data.mobile || '-' }}</view>
  </view>
  <view class="cell3">
    <view class="cell-title-placeholder">证件类型</view>
    <view>{{ data.certiTypeName || '-' }}</view>
  </view>
  <view class="cell3">
    <view class="cell-title-placeholder">证件号码</view>
    <view>{{ data.certiNo || '-' }}</view>
  </view>
  <view class="cell3">
    <view class="cell-title-placeholder">联系地址</view>
    <view>{{ data.addr || '-' }}</view>
  </view>
  <view class="cell3">
    <view class="cell-title-placeholder">户籍地址</view>
    <view>{{ data.placeAddr || '-' }}</view>
  </view>
  <view class="cell3">
    <view class="cell-title-placeholder">工作单位</view>
    <view>{{ data.workUnit || '-' }}</view>
  </view>
  <view class="cell3">
    <view class="cell-title-placeholder">民族</view>
    <view>{{ data.nationName || '-' }}</view>
  </view>
  <view class="cell3">
    <view class="cell-title-placeholder">性别</view>
    <view>{{ data.sexName || '-' }}</view>
  </view>
</view>
gz-wxparty/pages/DetailPerson/index.wxss
New file
@@ -0,0 +1,16 @@
/* pages/DetailPerson/index.wxss */
.card {
  background-color: #fff;
  padding: 24rpx;
}
.cell3 {
  margin-bottom: 16rpx;
}
.cell-title-placeholder {
  font-size: 28rpx;
  line-height: 44rpx;
  color: rgba(0, 0, 0, 0.5);
}
gz-wxparty/pages/addPerson/index.wxss
@@ -19,6 +19,11 @@
.cell-item-select {}
.addPerson-main {
  display: flex;
  flex-direction: column;
}
.cell-idCard {
  color: var(--main-color);
  display: flex;
gz-wxparty/pages/homePage/index.js
@@ -379,14 +379,10 @@
        }
      },
    });
    let agreement = wx.getStorageSync('agreement');
    // 获取弹窗信息提醒
    if (app.globalData.token) {
      if (!agreement) {
        this.getAgreement();
        return;
      }
      if (!$$.userTest('realName', 'bottom')) {
        this.setData({
          popupMsg: [{
gz-wxparty/pages/homePage/index.wxml
@@ -22,20 +22,26 @@
      <view class="main_title">服务申请</view>
      <view class="flex">
        <view bindtap="handleNavigateTo" data-url="../../pages/register/index" data-type="register" class="flex_1 flex_blue">
          <view>
          <view class="main_subTitle">反映诉求</view>
          <view>轻松来访</view>
            <!-- <view>轻松来访</view> -->
          </view>
          <image class="home-image" src="{{imgUrl}}home_3.png" mode="" />
        </view>
        <view bindtap="handleNavigateTo" data-url="../../pages/myRegisterList/index" data-type="register" class="flex_1 flex_orange">
          <view class="main_subTitle">我的申请</view>
          <view>申请进度查询</view>
          <view>
            <view class="main_subTitle">进度查询</view>
            <!-- <view>申请进度查询</view> -->
          </view>
          <image class="home-image" src="{{imgUrl}}home_4.png" mode="" />
        </view>
      </view>
      <view class="flex marginTop_12">
      <!-- <view class="flex marginTop_12">
        <view class="flex_1 flex_green">
          <view class="main_subTitle">事项咨询</view>
          <view>解决您身边的问题</view>
        </view>
      </view>
      </view> -->
    </view>
    <!-- 化解资源 -->
    <view>
@@ -62,8 +68,9 @@
    <view>
      <view class="flex_dt">
        <view class="main_title">咨询动态</view>
        <view bindtap="handleGetMore" data-type="newMsg" wx:if="{{ newMessageMore }}" class=" flex_dt_more">查看更多
          <image class="flex_dt_more_img" src="./../../img/right.png" />
        <view bindtap="handleGetMore" data-type="newMsg" wx:if="{{ newMessageMore }}" class=" flex_dt_more">
          <text>查看更多</text>
          <van-icon name="arrow" size="16" />
        </view>
      </view>
      <view class="dt_card" bindtap="goSeeMessage" wx:for="{{ newMessage }}" style="margin-top:{{index===0?0:'8px'}}" wx:key="index">
@@ -73,7 +80,9 @@
            <time-format format="YYYY-MM-DD" value="{{ item.pushTime }}" /> {{item.playNum}}人阅读
          </view>
        </view>
        <view class="dt_card_r"></view>
        <view class="dt_card_r">
          <image src="{{item.showUrl}}" mode="" />
        </view>
      </view>
    </view>
  </view>
gz-wxparty/pages/homePage/index.wxss
@@ -49,11 +49,23 @@
}
.home-image {
  width: 112rpx;
  height: 100rpx;
  position: absolute;
  right: 10rpx;
  bottom: 0;
}
.flex_1 {
  flex: 1;
  color: #fff;
  padding: 12px;
  border-radius: 4px;
  display: flex;
  justify-content: space-between;
  position: relative;
  align-items: center;
}
.flex_2 {
@@ -121,7 +133,13 @@
.dt_card_r {
  flex: 1;
  background: #ef6c24;
  width: 184rpx;
  height: 136rpx;
}
.dt_card_r image {
  width: 100%;
  height: 100%;
}
.dt_card_title {
@@ -129,10 +147,12 @@
}
.flex_blue {
  height: 80rpx;
  background: linear-gradient(90deg, #5fa6d4, #3a8ac6 50%, #1a6fb8 100%);
}
.flex_orange {
  height: 80rpx;
  background: linear-gradient(90deg, #ffa940, #fa8c16 50%, #ef6c24 100%);
}
gz-wxparty/pages/myRegisterDetail/index.js
New file
@@ -0,0 +1,86 @@
// pages/myRegisterDetail/index.js
const $$ = require('../../utils/util');
// 详情接口
function getByIdApi(param) {
  return $$.request({
    url: 'caseInfo/getCaseInfo',
    type: 'get',
    submitData: param || {},
    service: 'mediate'
  })
}
// 附件查询接口
function getfilesApi(param) {
  return $$.request({
    url: 'fileInfo/listByMainId',
    type: 'get',
    submitData: param || {},
    service: 'sys'
  })
}
Page({
  /**
   * 页面的初始数据
   */
  data: {
    imgUrl: $$.url.img,
    submitData: {},
    oneList: [],
    fileList: []
  },
  // 获取附件信息
  async getFilesId(id) {
    $$.showLoading();
    const res = await getfilesApi({
      mainId: id
    });
    $$.hideLoading();
    if (res.type) {
      let data = res.data || {};
      this.setData({
        fileList: data
      });
    }
  },
  detailPerson(e) {
    let item = e.currentTarget.dataset.item;
    console.log('item', item);
    wx.navigateTo({
      url: '../../pages/DetailPerson/index?id=' + item.id + '&perType=' + item.perType,
    });
  },
  // 获取纠纷案件详情
  async getById(data) {
    $$.showLoading();
    const res = await getByIdApi({
      id: data.id
    });
    $$.hideLoading();
    if (res.type) {
      let data = res.data || {};
      this.setData({
        submitData: data,
        oneList: [...data.personList, ...data.agentList]
      });
      this.getFilesId(data.id)
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getById(options);
  },
})
gz-wxparty/pages/myRegisterDetail/index.json
New file
@@ -0,0 +1,4 @@
{
  "navigationBarTitleText": "事项详情",
  "usingComponents": {}
}
gz-wxparty/pages/myRegisterDetail/index.wxml
New file
@@ -0,0 +1,82 @@
<!--pages/myRegisterDetail/index.wxml-->
<view class="three-tag">
  <van-tabs bind:click="threeTagChange" active="{{threeAvtice}}">
    <!-- 人员信息 -->
    <van-tab title="人员信息" name="1">
      <view style="padding:24rpx">
        <view wx:for="{{oneList}}" data-item="{{ item }}" data-index="{{ index }}" wx:key="index">
          <view class='one-list' bindtap="detailPerson" data-item="{{ item }}" wx:if="{{item.perType==='15_020008-1'||item.perType==='24_00006-1'}}">
            <view class="one-list-l green">申请方</view>
            <view class="one-list-r">
              <view class="one-list-r-t">
                <view class="one-list-text">{{item.trueName}}</view>
                <view class="one-list-phone">{{item.mobile}}</view>
                <view wx:if="{{item.perType==='24_00006-1'}}" class="one-list-tag">代理人</view>
              </view>
              <view class="one-list-r-b">{{item.perClassName}} | {{item.certiNo}} </view>
            </view>
          </view>
          <view class='one-list' bindtap="detailPerson" data-item="{{ item }}" wx:else>
            <view class="one-list-l orange"><text>被申\n请方</text></view>
            <view class="one-list-r">
              <view class="one-list-r-t">
                <view class="one-list-text">{{item.trueName}}</view>
                <view class="one-list-phone">{{item.mobile}}</view>
                <view wx:if="{{item.perType==='24_00006-2'}}" class="one-list-tag-orange">代理人</view>
              </view>
              <view class="one-list-r-b">{{item.perClassName}} |{{item.certiNo}}</view>
            </view>
          </view>
        </view>
      </view>
    </van-tab>
    <van-tab title="纠纷信息" name="2">
      <view class="three-tag2">
        <view class="cell3">
          <view class="cell-title-placeholder">纠纷类型</view>
          <view>{{ submitData.caseTypeName || '-' }}</view>
        </view>
        <view class="cell3">
          <view class="cell-title-placeholder">纠纷发生时间</view>
          <view>{{ submitData.occurTime || '-' }}</view>
        </view>
        <view class="cell3">
          <view class="cell-title-placeholder">纠纷发生地点</view>
          <view>{{ submitData.addr || '-' }}</view>
        </view>
        <view class="cell3">
          <view class="cell-title-placeholder">涉及人数(人)</view>
          <view>{{ submitData.peopleNum || '-' }}</view>
        </view>
        <view class="cell3">
          <view class="cell-title-placeholder">涉及金额(元)</view>
          <view>{{ submitData.amount || '-' }}</view>
        </view>
        <view class="cell3">
          <view class="cell-title-placeholder">事项概况</view>
          <view>{{ submitData.caseDes || '-' }}</view>
        </view>
        <view class="cell3">
          <view class="cell-title-placeholder">事项申请</view>
          <view>{{ submitData.caseClaim || '-' }}</view>
        </view>
        <!-- todo 人工智能提醒 -->
      </view>
    </van-tab>
    <van-tab title="事件材料" name="3">
      <view style="height: 16rpx;">
      </view>
      <view style="padding: 24rpx 32rpx 0; background-color: #fff;" wx:for="{{fileList}}" wx:key="index" data-item="{{item}}" data-index="{{index}}">
        <view class="fileList_border">
          <image class="fileList_img" src="{{imgUrl}}image_1.png" mode="" />
          <view class="flex_1">
            <view style="margin-bottom: 10rpx;">{{item.name}}</view>
            <view style="display: flex;gap:16rpx"><text class="fileList_title">{{item.size}}{{item.unit}}</text><text data-item="{{item}}" data-index="{{index}}" bindtap="handlePreviewImage" class="public-color">预览</text></view>
          </view>
        </view>
      </view>
    </van-tab>
  </van-tabs>
</view>
gz-wxparty/pages/myRegisterDetail/index.wxss
New file
@@ -0,0 +1,128 @@
/* pages/myRegisterDetail/index.wxss */
@import '../../styles/public_components.wxss';
.one-list {
  background: #fff;
  padding: 24rpx;
  display: flex;
  position: relative;
  gap: 8px;
  margin-bottom: 12px;
  border-radius: 8px;
}
.one-list-l {
  height: 96rpx;
  width: 96rpx;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 28rpx;
  text-align: center;
}
.one-list-r-t {
  display: flex;
  gap: 8px;
  font-size: 28rpx;
  line-height: 44rpx;
}
.one-list-phone {
  color: rgba(23, 26, 29, 0.60);
}
.one-list-tag {
  font-size: 24rpx;
  line-height: 40rpx;
  border-radius: 2px;
  background: #e6fffb;
  color: #13C2C2;
  padding: 0 8rpx;
}
.one-list-tag-orange {
  font-size: 24rpx;
  line-height: 40rpx;
  border-radius: 2px;
  background: #FFF2E6;
  color: #EF6C24;
  padding: 0 8rpx;
}
.one-list-r-b {
  color: rgba(23, 26, 29, 0.60);
  font-size: 24rpx;
  line-height: 40rpx;
  margin-top: 8rpx;
}
.three-tag {}
.three-tag .van-tabs__wrap {
  height: 96rpx !important;
}
.three-tag .van-tabs__nav {
  height: 100%;
}
.three-tag .van-tabs__scroll--line {
  height: 100%;
}
.three-tag .van-tab {
  height: 100%;
  line-height: 96rpx !important;
}
.three-tag2 {
  background-color: #fff;
  margin-top: 16rpx;
  padding: 24rpx 32rpx;
}
.green {
  background-color: #13C2C2;
}
.orange {
  background-color: #EF6C24;
}
.fileList {
  background-color: #fff;
  padding: 24rpx 32rpx;
  display: flex;
  gap: 32rpx;
  align-items: center;
}
.fileList_border {
  padding-bottom: 24rpx;
  display: flex;
  gap: 32rpx;
  align-items: center;
  border-bottom: 1px solid rgba(126, 134, 142, 0.16);
}
.fileList_img {
  width: 84rpx;
  height: 96rpx;
}
.fileList_title {
  color: rgba(23, 26, 29, 0.40);
  font-size: 28rpx;
}
.fileList_img_del {
  width: 32rpx;
  height: 32rpx;
}
.flex_1 {
  flex: 1;
}
gz-wxparty/pages/myRegisterList/index.js
@@ -44,13 +44,7 @@
      label: '不予受理',
      value: '4'
    }],
    dataList: [{
      title: '',
      show: true
    }, {
      title: '',
      show: false
    }]
    dataList: []
  },
  // 查看
@@ -78,6 +72,7 @@
  searchSelect(e) {
    let idx = e.currentTarget.dataset.index;
    let item = e.currentTarget.dataset.item;
    console.log('item', item);
    let searchData = {
      ...this.data.search,
      processStatus: item.value
@@ -88,19 +83,23 @@
        ...item,
        hover: index === idx ? true : false
      })),
      searchValue: item.label
      searchValue: item.label,
      showModal: false
    })
  },
  // 切换tab
  threeTagChange(e) {
    value = e.detail;
    this.setData({
      search: {
    let value = e.detail;
    console.log(value, );
    let data = {
        ...this.data.search,
        personType: value,
      personType: value.name,
      }
    this.setData({
      search: data
    });
    this.pageQuery(data)
  },
  // 折叠列表
@@ -122,14 +121,20 @@
      });
    }
    if (res.type) {
      let list = []
      if (params.page === 1) {
        this.data.data = res.data.content || [];
        list = res.data.content || [];
      } else {
        this.data.data = this.data.data.concat(res.data.content || []);
        list = this.data.data.concat(res.data.content || []);
      }
      this.setData({
        search: params,
        data: this.data.data,
        dataList: list.map((i, index) => ({
          ...i,
          plaintiffNames: i.plaintiffList.length > 0 ? i.plaintiffList.map(i => i.trueName).join('、') : '-',
          defendantNames: i.defendantList.length > 0 ? i.defendantList.map(i => i.trueName).join('、') : '-',
          show: index === 0 ? true : false
        })),
        total: res.data.totalElements || 0
      });
      if (type === 'onPullDownRefresh') {
gz-wxparty/pages/myRegisterList/index.json
@@ -1,4 +1,6 @@
{
  "navigationBarTitleText": "进度查询",
  "usingComponents": {}
  "usingComponents": {
    "time-format": "../../components/time-format/index"
  }
}
gz-wxparty/pages/myRegisterList/index.wxml
@@ -7,7 +7,7 @@
</view>
<!-- 筛选 -->
<view bindtap="searchChange" class="search">
  <view class="search-title">全部</view>
  <view class="search-title">{{searchValue}}</view>
  <van-icon size='9' name="{{imgUrl}}down.png" />
</view>
@@ -15,7 +15,7 @@
  <view style="{{!item.show&&'border-bottom:none'}}" class="list-top">
    <view>2024年7月12日反映诉求</view>
    <view class="list-top-r">
      <view class="list-top-r-tag">待受理</view>
      <view class="list-top-r-tag">{{item.processStatusName||'-'}}</view>
      <van-icon wx:if="{{item.show}}" size='16' bindtap="changeShow" data-index="{{ index }}" name="{{imgUrl}}myRegisterList_1.png" />
      <van-icon wx:else size='16' bindtap="changeShow" data-index="{{ index }}" name="{{imgUrl}}myRegisterList_4.png" />
    </view>
@@ -23,32 +23,34 @@
  <view class="list-content" wx:if="{{item.show}}">
    <view class="list-content-flex">
      <view class="list-content-title">申请时间</view>
      <view class="list-content-value">2024-7-12 12:00</view>
      <view class="list-content-value">
        <time-format format="YYYY-MM-DD" value="{{item.createTime}}" />
      </view>
    </view>
    <view class="list-content-flex margin-top">
      <view class="list-content-title">申请方</view>
      <view class="list-content-value">李晓明</view>
      <view class="list-content-value">{{item.plaintiffNames}}</view>
    </view>
    <view class="list-content-flex margin-top">
      <view class="list-content-title">被申请方</view>
      <view class="list-content-value">广东好又多贸易有限公司、张菲菲</view>
      <view class="list-content-value">{{item.defendantNames}}</view>
    </view>
    <view class="list-border"></view>
    <view class="list-detail">
    <view class="list-detail" bindtap="GoPage" data-url="{{'../../pages/myRegisterDetail/index?id='+item.id}}">
      <view class="list-detail-l">
        <van-icon size='16' name="{{imgUrl}}myRegisterList_1.png" />
        <view class="list-detail-title">事项详情</view>
      </view>
      <view class="list-detail-r">查看</view>
    </view>
    <view class="list-detail">
    <view class="list-detail" bindtap="GoPage" data-url="{{'../../pages/AIAide/index?caseDes='+item.caseDes+'&caseClaim='+item.caseClaim+'&caseId='+item.id}}">
      <view class="list-detail-l">
        <van-icon size='16' name="{{imgUrl}}myRegisterList_2.png" />
        <view class="list-detail-title">解纷助手</view>
      </view>
      <view class="list-detail-r">查看</view>
    </view>
    <view bindtap="GoPage" data-url="../../pages/myRegisterFlow/index" class="list-detail">
    <view wx:if="{{item.processStatus !==1}}" bindtap="GoPage" data-url="../../pages/myRegisterFlow/index" class="list-detail">
      <view class="list-detail-l">
        <van-icon size='16' name="{{imgUrl}}myRegisterList_3.png" />
        <view class="list-detail-title">办理流程</view>
gz-wxparty/pages/myRegisterList/index.wxss
@@ -123,6 +123,8 @@
  gap: 8rpx;
}
.list-detail-title {
  font-size: 28rpx;
}
gz-wxparty/pages/realNameAuthentication/index.js
@@ -3,7 +3,12 @@
// 实名认证
function realNameAuthenticationApi(submitData) {
    return $$.request({ url: 'paUser/realAuth', type: 'post', submitData, service: 'cust' });
  return $$.request({
    url: 'paUser/realAuth',
    type: 'post',
    submitData,
    service: 'cust'
  });
}
Page({
@@ -37,17 +42,23 @@
    // 展示弹出层
    handleShowPopup(e) {
        this.setData({ popup: e.detail });
    this.setData({
      popup: e.detail
    });
    },
    // 关闭弹出层
    handleClosePopup() {
        this.data.popup.visible = false;
        this.setData({ popup: this.data.popup });
    this.setData({
      popup: this.data.popup
    });
    },
    // 下拉框确认选择
    handleConfirmPicker({ detail }) {
  handleConfirmPicker({
    detail
  }) {
        let type = this.data.popup.type;
        let value = detail.detail.value;
        let arr = [];
@@ -74,21 +85,34 @@
                this.data.submitData[x] = value[t === 0 ? 'value' : 'label'];
            });
        }
        this.setData({ popup: this.data.popup, submitData: this.data.submitData });
    this.setData({
      popup: this.data.popup,
      submitData: this.data.submitData
    });
    },
    // form的change
    handleChange(e) {
        const { key, value } = e.detail;
    const {
      key,
      value
    } = e.detail;
        this.data.submitData[key] = value;
        this.setData({ submitData: this.data.submitData });
    this.setData({
      submitData: this.data.submitData
    });
    },
    // 修改picker的列时触发
    handleChangeColumns(e) {
        if (this.data.popup.type === 'location') {
            let selectData = $$.changeLocation(e, this.selectComponent('#personal-data-dom').location, this.data.popup.selectData);
            this.setData({ popup: { ...this.data.popup, selectData } });
      this.setData({
        popup: {
          ...this.data.popup,
          selectData
        }
      });
        }
    },
@@ -106,7 +130,9 @@
            msg = '请勾选确认信息';
        }
        if (msg) {
            $$.showToast({ title: msg });
      $$.showToast({
        title: msg
      });
            return false;
        }
        let that = this;
@@ -120,12 +146,16 @@
                        that.realNameAuthentication();
                    },
                    fail() {
                        $$.showToast({ title: '抱歉!识别失败,请稍后重试' });
            $$.showToast({
              title: '抱歉!识别失败,请稍后重试'
            });
                    },
                });
            },
            fail(res) {
                $$.showToast({ title: '抱歉!请求失败,稍后重试' });
        $$.showToast({
          title: '抱歉!请求失败,稍后重试'
        });
            },
        });
    },
@@ -139,11 +169,21 @@
            wx.getStorage({
                key: 'userInfo',
                success(res2) {
                    res2.data.realStatus = '1';
                    wx.setStorage({ key: 'userInfo', data: res2.data });
          console.log('res2', res2);
          let nowData = {
            ...res2.data,
            realStatus: 1,
          }
          wx.setStorage({
            key: 'userInfo',
            data: nowData
          });
                },
            });
            $$.showToast({ icon: 'success', title: '实名认证成功' });
      $$.showToast({
        icon: 'success',
        title: '实名认证成功'
      });
            wx.removeStorage({
                key: 'access_token'
            });
@@ -163,14 +203,18 @@
                this.data.submitData[x] = data[x];
            }
        });
        this.setData({ submitData: this.data.submitData });
    this.setData({
      submitData: this.data.submitData
    });
    },
    // 获取手机号码
    async handleGetPhoneNumber(e) {
        let phone = await this.selectComponent('#common-page').handleGetPhoneNumber(e.detail);
        this.data.submitData.mobile = phone;
        this.setData({ submitData: this.data.submitData });
    this.setData({
      submitData: this.data.submitData
    });
    },
    /**
gz-wxparty/pages/register/index.js
@@ -12,6 +12,36 @@
  });
}
// 附件上传的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 caseRegisterSaveApi(submitData) {
  return $$.request({
    url: 'caseInfo/caseRegister',
@@ -30,6 +60,7 @@
  select: {}, // 下拉框数据
  goToMaterialSave: false, // 避免跳转到材料上传页面重复保存草稿
  agreementMsg: '', // 服务协议
  ownerId: '', //附件上传id
  data: {
    stepText: 5, //用户须知倒计时5秒
    timer: null, // 用于存储定时器的引用
@@ -71,9 +102,8 @@
      amount: '',
      caseDes: '',
      caseClaim: '',
      plaintiffList: [],
      defendantList: [],
    }, // 表单数据
    fileList: [], //表单附件
    addPersonData: {}, //添加的当事人
    materialNum: 0, // 纠纷材料总数量
    userInfoVisible: false, // 是否采用个人信息更新申请人信息
@@ -283,15 +313,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) {
      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 +344,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 +413,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 +450,10 @@
    const res = await caseRegisterSaveApi(params);
    $$.hideLoading();
    if (res.type) {
      Toast('提交成功');
      // Toast('提交成功');
      this.setData({
        saveStatus: true
      })
    }
  },
@@ -343,6 +462,54 @@
    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;
              console.log('wordsResult', wordsResult);
              that.setData({
                submitData: {
                  ...that.data.submitData,
                  [key]: wordsResult
                },
                [keyNum]: wordsResultNum
              });
            }
          },
        });
      },
    });
  },
@@ -384,21 +551,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) {
      let location = [];
      $$.province.forEach((x) => {
        location.push(res[x][0]);
              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
      });
      this.location = location;
              } else {
                $$.showToast({
                  title: '上传失败',
                  duration: 500
                });
    }
            },
          });
        });
      },
    });
  },
  // 预览图片
  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
            })
          }
        }
      },
    });
  },
  // 请求下拉框资源
@@ -521,7 +765,6 @@
   * 生命周期函数--监听页面加载
   */
  onLoad: function () {
    this.getLocationData();
    let agreement = wx.getStorageSync('agreement');
    if (!agreement) {
      this.getAgreement();
gz-wxparty/pages/register/index.wxml
@@ -66,7 +66,7 @@
    </block>
    <!-- 描述纠纷 -->
    <block wx:elif="{{stepsActive === 1}}">
    <view class="page-flex" wx:elif="{{stepsActive === 1}}">
      <view class="popupMsg-form">
        <view bindtap="caseTypeGoPage" data-url="../../pages/caseType/index" class="cell cell-item" data-title="纠纷类型" data-key="certiType" data-type="cardType">
          <view class="cell-title"><text><text class="cell-required">*</text> 纠纷类型</text></view>
@@ -105,13 +105,13 @@
        <view class="cell-item">
          <view class="cell-title1">涉及人数(人)</view>
          <view class="cell-select">
            <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="peopleNum" input-align="right" placeholder="请填写" value="{{ submitData.peopleNum || '' }}" />
            <van-field type='number' bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="peopleNum" input-align="right" placeholder="请填写" value="{{ submitData.peopleNum || '' }}" />
          </view>
        </view>
        <view class="cell-item">
          <view class="cell-title1">涉及金额(元)</view>
          <view class="cell-select">
            <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="amount" input-align="right" placeholder="请填写" value="{{ submitData.amount || '' }}" />
            <van-field type='number' bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="amount" input-align="right" placeholder="请填写" value="{{ submitData.amount || '' }}" />
          </view>
        </view>
        <view style="height: 16rpx;"></view>
@@ -123,7 +123,7 @@
          <view class="textarea-foot">
            <view class="textarea-limit">{{caseDesNum||0}}/2000字</view>
            <view class="textarea-ability">
              <view class="textarea-img">
              <view bindtap="ocrClick" data-keyNum="caseDesNum" data-key="caseDes" class=" textarea-img">
                <image src="{{imgUrl}}imgOcr.png" mode="" />识别图片
              </view>
              <view style="padding: 0 8rpx;">|</view>
@@ -142,7 +142,7 @@
          <view class="textarea-foot">
            <view class="textarea-limit">{{caseClaimNum||0}}/500字</view>
            <view class="textarea-ability">
              <view class="textarea-img">
              <view bindtap="ocrClick" data-keyNum="caseClaimNum" data-key="caseClaim" class="textarea-img">
                <image src="{{imgUrl}}imgOcr.png" mode="" />识别图片
              </view>
              <view style="padding: 0 8rpx;">|</view>
@@ -154,7 +154,7 @@
        </block>
        <view style="height: 16rpx;"></view>
        <block>
          <view style="padding-left: 32rpx;" class="cell-item">
          <view style="padding-left: 32rpx;" bindtap="handleUploadFile" data-id="{{ownerId}}" data-type="22_00014-1" class="cell-item">
            <view class="upload-title">
              事件材料
              <image src="{{imgUrl}}upload-add.png" mode="" />
@@ -163,7 +163,16 @@
              说明:建议上传人员身份证及纠纷涉及的证件材料,代理人请上传身份证及授权委托书
            </view>
          </view>
          <view class="fileList" wx:for="{{fileList}}" wx:key="index" data-item="{{item}}" data-index="{{index}}">
            <image class="fileList_img" src="{{imgUrl}}image_1.png" mode="" />
            <view class="flex_1">
              <view style="margin-bottom: 10rpx;">{{item.name}}</view>
              <view style="display: flex;gap:16rpx"><text class="fileList_title">{{item.size}}{{item.unit}}</text><text data-item="{{item}}" data-index="{{index}}" bindtap="handlePreviewImage" class="public-color">预览</text></view>
            </view>
            <image data-id="{{item.id}}" data-type="22_00014-1" data-item="{{item}}" data-index="{{index}}" bindtap="handleDelImage" class="fileList_img_del" src="{{imgUrl}}image_del.png" mode="" />
          </view>
        </block>
      </view>
        <view class="submitButton" catch:tap="">
          <view style="flex: 1;">
            <view class="two-button">
@@ -178,10 +187,9 @@
          </view>
        </view>
      </view>
    </block>
    <!-- 提交申请 -->
    <block wx:elif="{{stepsActive === 2}}">
    <view class="page-flex" wx:elif="{{stepsActive === 2}}">
      <view class="popupMsg-form">
        <view class="three-tag">
          <van-tabs bind:click="threeTagChange" active="{{threeAvtice}}">
@@ -244,14 +252,33 @@
                  <view class="cell-title-placeholder">事项申请</view>
                  <view>{{ submitData.caseClaim || '-' }}</view>
                </view>
                <!-- todo 人工智能提醒 -->
                <!-- 人工智能提醒 -->
                <!-- <view class="Ai_tip"> -->
                <view class="Ai_tip" wx:if="{{AIData.isClaimRisk===1}}">
                  <view class="Ai_tip_title">{{AIData.analysisProcess||''}}</view>
                  <view class="Ai_tip_line"></view>
                  <view class="Ai_tip_text">内容依据人工智能技术和相关法律数据提供,仅供参考</view>
                </view>
              </view>
            </van-tab>
            <van-tab title="事件材料" name="3">内容 3</van-tab>
            <van-tab title="事件材料" name="3">
              <view style="height: 16rpx;">
              </view>
              <view style="padding: 24rpx 32rpx 0; background-color: #fff;" wx:for="{{fileList}}" wx:key="index" data-item="{{item}}" data-index="{{index}}">
                <view class="fileList_border">
                  <image class="fileList_img" src="{{imgUrl}}image_1.png" mode="" />
                  <view class="flex_1">
                    <view style="margin-bottom: 10rpx;">{{item.name}}</view>
                    <view style="display: flex;gap:16rpx"><text class="fileList_title">{{item.size}}{{item.unit}}</text><text data-item="{{item}}" data-index="{{index}}" bindtap="handlePreviewImage" class="public-color">预览</text></view>
                  </view>
                </view>
              </view>
            </van-tab>
          </van-tabs>
        </view>
      </view>
        <view class="submitButton" catch:tap="">
          <view style="flex: 1;">
            <view class="two-button">
@@ -267,20 +294,14 @@
        </view>
      </view>
    </block>
  </block>
  <!-- 已提交 -->
  <block wx:else>
    <view class="success">
      <van-icon color="#07c160" name="checked" size="106rpx" />
      <view class="success-title">申请已经提交</view>
      <view class="success-subTitle">可通过小程序首页<navigator class="success-link" style="display: inline;" url="/pages/myMediate/index">我的调解</navigator>功能跟进调解进度</view>
      <view class="success-NewButton">
        <view class="success-RedButton">
          <navigator url="/pages/myMediate/index" style="color: #fff;font-size: 14px;">我的调解</navigator>
        </view>
      </view>
      <view>
      <van-icon name="{{imgUrl}}success.png" size="200rpx" />
      <view class="success-title">申请已提交</view>
      <view class="success-subTitle">您已成功提交申请,请保持联系方式畅通。您可以通过“穗好办”微信公众号了解处理进度</view>
      <view style="margin-top: 40rpx;">
        <navigator class="success-link" style="display: inline;" url="/pages/homePage/index">返回首页</navigator>
      </view>
      <!-- <view class="success-button">
gz-wxparty/pages/register/index.wxss
@@ -211,6 +211,41 @@
  height: 15px;
}
.fileList {
  background-color: #fff;
  padding: 24rpx 32rpx;
  display: flex;
  gap: 32rpx;
  align-items: center;
}
.fileList_border {
  padding-bottom: 24rpx;
  display: flex;
  gap: 32rpx;
  align-items: center;
  border-bottom: 1px solid rgba(126, 134, 142, 0.16);
}
.fileList_img {
  width: 84rpx;
  height: 96rpx;
}
.fileList_title {
  color: rgba(23, 26, 29, 0.40);
  font-size: 28rpx;
}
.fileList_img_del {
  width: 32rpx;
  height: 32rpx;
}
.flex_1 {
  flex: 1;
}
.three-tag {
  margin-top: 16rpx;
}
@@ -245,6 +280,33 @@
  background-color: #fff;
  align-items: center;
  padding-left: 32rpx;
}
.Ai_tip {
  background: #FFECE8;
  padding: 8px 12px;
  border-radius: 4px;
}
.Ai_tip_title {
  color: #F53F3F;
  line-height: 46rpx;
}
.page-flex {
  display: flex;
  flex-direction: column;
}
.Ai_tip_line {
  margin: 16rpx 0;
  border-bottom: 1px solid rgba(245, 63, 63, 0.60);
}
.Ai_tip_text {
  color: rgba(245, 63, 63, 0.60);
  font-size: 24rpx;
  line-height: 40rpx;
}
.textarea-limit {
@@ -621,14 +683,13 @@
}
.success-title {
  font-size: 34rpx;
  line-height: 50rpx;
  font-weight: 600;
  font-size: 32rpx;
  line-height: 48rpx;
  padding: 32rpx 0;
}
.success-subTitle {
  width: 383rpx;
  width: 498rpx;
  color: var(--second-text-color);
  margin: auto;
}
@@ -683,7 +744,13 @@
}
.success-link {
  color: #D1021C;
  color: #fff;
  width: 116px;
  height: 36px;
  background: #1a6fb8;
  border-radius: 6px;
  padding: 6px 26px;
  margin-top: 32px;
}
.success-NewButton {
gz-wxparty/utils/util.js
@@ -5,7 +5,7 @@
const url = api.url;
// 是否是开发环境
const isDebug = true;
const isDebug = false;
const baseUrl = isDebug ? api.url.debug : api.url.web;
@@ -22,6 +22,7 @@
    submitData,
    service,
    v1,
  ai,
    noToken
}) => {
    const app = getApp();
@@ -50,7 +51,7 @@
    let baseUrl = isDebug ? api.url.debug : api.url.web;
    let visitUrl = `${baseUrl}${api.url[service] || ''}/api/${v1 ? 'v1' : 'wechat'}/${url}`;
  let visitUrl = `${baseUrl}${api.url[service] || ''}/api/${v1 ? 'v1' :ai ? 'ai' : 'wechat'}/${url}`;
    return new Promise((resolve, reject) => {
        wx.request({
@@ -191,6 +192,18 @@
            success && success(res);
        },
    });
};
const ellipsis = ({
  value,
  len
}) => {
  if (!value) return '';
  if (value.length > len) {
    return value.slice(0, len) + '...';
  }
  return value;
};
//api错误modal框消息提示
@@ -348,15 +361,7 @@
const getLocationIndex = (data, currentData) => {
    let selectOption = JSON.parse(JSON.stringify(data));
    let submitData = currentData;
    let arr = [0, 0, 0, 0];
    if (submitData.prov) {
        forEach: for (let i = 0; i < selectOption.length; i++) {
            if (selectOption[i].value === submitData.prov) {
                arr[0] = i;
                break forEach;
            }
        }
    }
  let arr = [0, 0, 0];
    if (submitData.city) {
        forEach: for (let i = 0; i < selectOption[arr[0]].children.length; i++) {
            if (selectOption[arr[0]].children[i].value === submitData.city) {
@@ -373,14 +378,14 @@
            }
        }
    }
    if (submitData.road) {
        forEach: for (let i = 0; i < selectOption[arr[0]].children[arr[1]].children[arr[2]].children.length; i++) {
            if (selectOption[arr[0]].children[arr[1]].children[arr[2]].children[i].value === submitData.road) {
                arr[3] = i;
                break forEach;
            }
        }
    }
  // if (submitData.road) {
  //   forEach: for (let i = 0; i < selectOption[arr[0]].children[arr[1]].children[arr[2]].children.length; i++) {
  //     if (selectOption[arr[0]].children[arr[1]].children[arr[2]].children[i].value === submitData.road) {
  //       arr[3] = i;
  //       break forEach;
  //     }
  //   }
  // }
    return arr;
};
@@ -478,6 +483,7 @@
    showToast,
    errorModal,
    showModal,
  ellipsis,
    showLoading,
    hideLoading,
    timeFormat,