forked from gzzfw/frontEnd/gzDyh

zhangyongtian
2024-09-13 cf88306b1f6aade9f0c6c4fa5859872d3f177c4a
Merge branch 'master' of http://120.79.193.119:9090/r/gzzfw/frontEnd/gzDyh
6 files added
34 files modified
1595 ■■■■ changed files
gz-customerSystem/src/api/appUrl.js 2 ●●● patch | view | raw | blame | history
gz-customerSystem/src/assets/images/icon/index.js 4 ●●● patch | view | raw | blame | history
gz-customerSystem/src/assets/images/icon/person1.svg 6 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx 51 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/index.less 6 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/matterDetail/FileTable.jsx 15 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/matterDetail/HandleRecord.jsx 59 ●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/matterDetail/Supervising.jsx 12 ●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/matterDetail/fileMessage.jsx 2 ●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/matterDetail/personCard.jsx 43 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/visit/component/previewTable.jsx 9 ●●●●● patch | view | raw | blame | history
gz-wxparty/api/api.js 34 ●●●● patch | view | raw | blame | history
gz-wxparty/app.json 1 ●●●● patch | view | raw | blame | history
gz-wxparty/components/common-page/index.js 272 ●●●●● patch | view | raw | blame | history
gz-wxparty/components/personal-data-dom/index.js 4 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/AIAide/index.wxml 2 ●●● patch | view | raw | blame | history
gz-wxparty/pages/AIAideDetail/index.wxml 4 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/caseType/index.js 502 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/caseType/index.wxml 14 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/evaluate/index.js 78 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/evaluate/index.json 4 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/evaluate/index.wxml 39 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/evaluate/index.wxss 69 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/homePage/index.js 181 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/homePage/index.wxml 17 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/homePage/index.wxss 21 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/myRegisterDetail/index.wxml 2 ●●● patch | view | raw | blame | history
gz-wxparty/pages/myRegisterDetail/index.wxss 4 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/myRegisterList/index.js 39 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/myRegisterList/index.wxml 6 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/myRegisterList/index.wxss 4 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/perfectInformation/index.js 4 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/realNameAuthentication/index.js 15 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/register/index.js 7 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/register/index.json 2 ●●● patch | view | raw | blame | history
gz-wxparty/pages/register/index.wxml 12 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/register/index.wxss 4 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/speechToText/index.js 29 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/speechToText/index.wxml 8 ●●●● patch | view | raw | blame | history
gz-wxparty/utils/util.js 8 ●●●● patch | view | raw | blame | history
gz-customerSystem/src/api/appUrl.js
@@ -2,7 +2,7 @@
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-02-16 11:25:57
 * @LastEditTime: 2024-09-12 20:34:31
 * @LastEditTime: 2024-09-13 11:32:06
 * @LastEditors: dminyi 1301963064@qq.com
 * @Version: 1.0.0
 * @Description: api地址
gz-customerSystem/src/assets/images/icon/index.js
@@ -147,6 +147,7 @@
import person from './person.svg'
import knock from './knock.svg'
import escalation from './escalation.svg'
import person1 from './person1.svg'
export {
  mediationCenter,
@@ -275,5 +276,6 @@
  result,
  person,
  knock,
  escalation
  escalation,
  person1
};
gz-customerSystem/src/assets/images/icon/person1.svg
New file
@@ -0,0 +1,6 @@
<svg width="64" height="94" viewBox="0 0 64 94" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.68 0H56.32C58.3569 0 60.3103 0.80914 61.7506 2.24942C63.1909 3.6897 64 5.64314 64 7.68V56.32C64 58.3569 63.1909 60.3103 61.7506 61.7506C60.3103 63.1909 58.3569 64 56.32 64H7.68C5.64314 64 3.6897 63.1909 2.24942 61.7506C0.80914 60.3103 0 58.3569 0 56.32L0 7.68C0 5.64314 0.80914 3.6897 2.24942 2.24942C3.6897 0.80914 5.64314 0 7.68 0V0Z" fill="#E7F0F9"/>
<path d="M49.6264 48.0112H13.8427C13.6635 48.0224 13.4845 47.9849 13.3249 47.9025C13.1653 47.8202 13.0311 47.6961 12.9364 47.5435C12.8417 47.3909 12.7902 47.2155 12.7872 47.0359C12.7843 46.8564 12.8301 46.6794 12.9198 46.5238L17.1707 37.1017C17.5755 36.4921 18.1248 35.992 18.7696 35.6461C19.4145 35.3002 20.1349 35.1192 20.8667 35.1192C21.5985 35.1192 22.3189 35.3002 22.9638 35.6461C23.6087 35.992 24.1579 36.4921 24.5627 37.1017L26.5313 40.2761C26.7399 40.5922 27.026 40.8494 27.3624 41.0232C27.6988 41.197 28.0742 41.2815 28.4527 41.2687C28.8311 41.2558 29.1999 41.146 29.5237 40.9498C29.8476 40.7536 30.1156 40.4776 30.3022 40.1481L36.7137 27.7321C37.001 27.2191 37.4198 26.7921 37.9271 26.4948C38.4343 26.1975 39.0116 26.0408 39.5995 26.0408C40.1874 26.0408 40.7647 26.1975 41.2719 26.4948C41.7792 26.7921 42.198 27.2191 42.4853 27.7321L50.5877 46.5968C50.6604 46.753 50.6913 46.9254 50.6775 47.0972C50.6636 47.269 50.6054 47.4342 50.5085 47.5768C50.4116 47.7193 50.2794 47.8343 50.1248 47.9104C49.9702 47.9866 49.7984 48.0213 49.6264 48.0112Z" fill="#AFD6FF"/>
<path d="M21.4794 26.0347C23.9317 26.0347 25.9197 24.0467 25.9197 21.5944C25.9197 19.1421 23.9317 17.1541 21.4794 17.1541C19.0271 17.1541 17.0391 19.1421 17.0391 21.5944C17.0391 24.0467 19.0271 26.0347 21.4794 26.0347Z" fill="#AFD6FF"/>
<path d="M11.014 81.7V82.344C10.1087 82.4373 9.38533 82.5027 8.844 82.54V83.702H8.13V82.596C7.43 82.6427 6.42667 82.7033 5.12 82.778L5.022 82.106C6.13267 82.05 7.16867 81.994 8.13 81.938V80.58H5.414L5.26 79.964C5.68 79.516 6.09533 78.9187 6.506 78.172H4.84V77.472H6.856L7.262 76.506L8.018 76.632L7.654 77.472H11.21V78.172H7.304C6.912 78.8907 6.52933 79.4833 6.156 79.95H8.13V78.956H8.844V79.95H11.14V80.58H8.844V81.882L11.014 81.7ZM12.862 80.58C12.722 81.7747 12.344 82.8153 11.728 83.702L11.196 83.156C11.8493 82.1947 12.1947 81.07 12.232 79.782V77.682C13.912 77.5233 15.256 77.2107 16.264 76.744L16.768 77.304C15.76 77.7707 14.4767 78.088 12.918 78.256V79.894H17.216V80.58H15.648V83.73H14.906V80.58H12.862ZM15.536 84.22V89.372H14.78V88.77H7.388V89.372H6.632V84.22H15.536ZM7.388 88.112H14.78V86.824H7.388V88.112ZM7.388 86.18H14.78V84.864H7.388V86.18ZM19.932 77.444H29.844V78.2H24.804V79.208C24.7947 80.0947 24.7293 80.9627 24.608 81.812H31.02V82.554H26.582V87.748C26.582 88.2053 26.8107 88.434 27.268 88.434H29.2C29.6013 88.434 29.886 88.3407 30.054 88.154C30.2687 87.9393 30.4133 87.272 30.488 86.152L31.202 86.39C31.1087 87.6687 30.9033 88.4667 30.586 88.784C30.3247 89.0267 29.914 89.148 29.354 89.148H27.044C26.232 89.148 25.826 88.7327 25.826 87.902V82.554H24.496C24.2813 83.7487 23.9267 84.808 23.432 85.732C22.5827 87.244 21.1827 88.434 19.232 89.302L18.784 88.63C20.7067 87.7807 22.074 86.614 22.886 85.13C23.2313 84.402 23.5067 83.5433 23.712 82.554H18.966V81.812H23.838C23.9593 80.9627 24.0247 80.0947 24.034 79.208V78.2H19.932V77.444ZM33.47 77.206H37.292V85.424H33.47V77.206ZM36.578 84.724V81.644H34.226V84.724H36.578ZM34.226 80.93H36.578V77.906H34.226V80.93ZM38.58 81.91H44.32V85.424H38.58V81.91ZM43.578 84.738V82.596H39.322V84.738H43.578ZM38.244 77.934V77.206H44.572C44.544 78.7273 44.4553 79.7167 44.306 80.174C44.11 80.818 43.6107 81.154 42.808 81.182C42.6493 81.182 42.3087 81.1633 41.786 81.126L41.562 80.468C42.1593 80.5053 42.5513 80.524 42.738 80.524C43.2607 80.496 43.5687 80.2393 43.662 79.754C43.7553 79.3807 43.802 78.774 43.802 77.934H41.086C40.9367 79.4833 39.9847 80.6173 38.23 81.336L37.824 80.706C39.3733 80.1367 40.218 79.2127 40.358 77.934H38.244ZM34.94 86.348C34.6413 87.4867 34.24 88.518 33.736 89.442L33.05 89.176C33.5167 88.3827 33.918 87.3793 34.254 86.166L34.94 86.348ZM37.362 86.362C37.614 87.2487 37.838 88.2053 38.034 89.232L37.292 89.414C37.124 88.322 36.914 87.356 36.662 86.516L37.362 86.362ZM40.344 86.264C40.7267 87.1693 41.0627 88.1493 41.352 89.204L40.61 89.386C40.3393 88.2567 40.0173 87.2673 39.644 86.418L40.344 86.264ZM43.242 86.04C44.054 87.16 44.67 88.14 45.09 88.98L44.488 89.414C44.0493 88.518 43.4333 87.5193 42.64 86.418L43.242 86.04ZM49.612 84.248C49.304 86.3667 48.6133 87.9907 47.54 89.12L46.966 88.63C48.3007 87.258 48.982 85.032 49.01 81.952V76.772H49.766V80.104H54.414V76.59H55.17V80.104H59.132V80.86H49.766V81.952C49.7567 82.372 49.7333 82.89 49.696 83.506H56.094V89.4H55.352V84.248H49.612Z" fill="#C9CDD4"/>
</svg>
gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx
@@ -143,9 +143,6 @@
    setScannerVisible(false);
  };
  const openScanner = () => {
    setScannerVisible(true);
  };
  const choosePrincipal = async (id) => {
@@ -245,19 +242,6 @@
  }
  const handleSubmit = async () => {
    if (formRef.current) {
      formRef.current.validate(undefined, (errors, values) => {
        if (!errors) {
          const params = formRef.current.getFields()
        }
      });
    }
  }
  //添加办理记录
  const addMark = () => {
    setFormView(!formView);
@@ -308,10 +292,6 @@
    setSupervising(!supervising)
  }
  const handlePersonView = () => {
    getByIdRole();
  }
  const handleCaseResultApply = () => {
    SetCaseResult(!caseResult)
@@ -411,12 +391,7 @@
                      <Row gutter={[32, 0]}>
                        <Col span={24}>
                          <FormItem
                            label={<div style={{ display: 'flex' }}>
                              办理意见
                              <img src={scan} alt="" style={{ marginRight: '-2px', marginLeft: '8px' }} />
                              <div style={{ marginLeft: '8px', color: '#1A6FB8', fontSize: '14px', cursor: 'pointer' }} onClick={openScanner}>识别材料</div>
                            </div>
                            }
                             label={(<div style={{ display: 'flex' }}>办理意见<div className="must">必填</div></div>)}
                            field='handleContent'
                            rules={[{ message: '请填写办理意见', required: true }]}
                          >
@@ -461,7 +436,6 @@
                {/* } */}
              </Col>
            </Form>
            {!formView &&
              <div className="dataSync-excel">
                <Space size="middle" style={{ margin: '4px 14px' }}>
                  {staticButtonList?.map(item => {
@@ -471,7 +445,6 @@
                  <Button type='secondary' onClick={() => navigate(-1)}>返回上级页面</Button>
                </Space>
              </div>
            }
          </div>
          <div className='container-bottom-right'>
            <Tabs defaultActiveTab='1' className='tabs-container' >
@@ -525,28 +498,6 @@
          onConfirm={handleConfirm}
          onCancel={handleCancel}
        />
        <Modal visible={personView} onCancel={() => setPersonView(false)} title='工作人员信息' centered footer={null}>
          <table border="1" align="center" cellpadding="5" className="table">
            <tr>
              <th bgcolor="#F7F8FA" className="table-title" width="120">姓名</th>
              <td width='380'><div style={{ display: 'flex' }}><div>{personData?.trueName}</div></div></td>
              <th bgcolor="#F7F8FA" className="table-title" width="120">登录账号</th>
              <td width='380'>{personData?.acc}</td>
            </tr>
            <tr>
              <th bgcolor="#F7F8FA" className="table-title">手机号码</th>
              <td>{personData?.mobile}</td>
              <th bgcolor="#F7F8FA" className="table-title">工作电话</th>
              <td>-</td>
            </tr>
            <tr>
              <th bgcolor="#F7F8FA" className="table-title">所属部门</th>
              <td>{personData?.unitName}</td>
              <th bgcolor="#F7F8FA" className="table-title">职务</th>
              <td>{personData?.userRoles}</td>
            </tr>
          </table>
        </Modal>
        <Modal visible={supervising} onCancel={() => setSupervising(false)} title='督办' centered footer={null}>
          <Form
            ref={formRef}
gz-customerSystem/src/views/register/index.less
@@ -322,6 +322,10 @@
        flex-direction: row;
        column-gap: 8px;
        margin: 0px 8px 0 16px;
        // max-height: 600px;
    // min-height: fit-content;
    // overflow-y: auto;
        &-left {
@@ -393,6 +397,7 @@
        &-right {
            flex: 1 1 0%;
            background-color: rgb(255, 255, 255);
            // height: fit-content;
        }
    }
}
@@ -587,6 +592,7 @@
        &-detail {
            color: #1A6FB8;
            cursor: pointer;
        }
    }
gz-customerSystem/src/views/register/matterDetail/FileTable.jsx
@@ -102,7 +102,7 @@
      key: 'perClassName',
      width: props.isReview ? 80 : 140,
      fixed: 'right',
      render: (text, record) => (
      render: (text, record, index) => (
        <Space size="middle">
          <Link onClick={() => {
            setSourceType(record.ownerType)
@@ -111,9 +111,9 @@
            查看
          </Link>
          {!props.isReview && <Link onClick={() => {
            if (record.fileList && record.fileList.length != 0) {
              let ids = record.fileList?.map(item => item.id).join(',')
              handleDelete(ids)
            if (record.fileInfoList && record.fileInfoList.length != 0) {
              let ids = record.fileInfoList?.map(item => item.id).join(',')
              handleDelete(ids, record, index)
            } else {
              $$.info({ type: 'warning', content: '还没上传关于该材料的文件!' });
            }
@@ -323,11 +323,16 @@
  }
  //删除
  const handleDelete = (ids) => {
  const handleDelete = (ids, record, index) => {
    Modal.confirm({
      title: '删除确认',
      content: '确认全部删除该材料?',
      onOk: async () => {
        let newData = tableData;
        newData[index] = { ...record, fileInfoList: record.fileInfoList.filter(i => (i.id !== ids)) }
        console.log('newData', newData);
        // setTableData(newData)
        const res = await deleteFileByIdApi({ ids })
        if (res.type) {
          $$.infoSuccess({ content: '删除成功!' });
gz-customerSystem/src/views/register/matterDetail/HandleRecord.jsx
@@ -2,23 +2,28 @@
 * @Author: dminyi 1301963064@qq.com
 * @Date: 2024-09-06 09:40:00
 * @LastEditors: dminyi 1301963064@qq.com
 * @LastEditTime: 2024-09-12 20:55:47
 * @LastEditTime: 2024-09-13 10:29:41
 * @FilePath: \gzDyh\gz-customerSystem\src\views\register\matterDetail\HandleRecord.jsx
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 * @Description: 办理记录
 */
import React, { useState, useEffect } from 'react';
import { Empty } from '@arco-design/web-react';
import { fold, down, empty, edit } from '@/assets/images';
import { fold, down, empty, edit, register } from '@/assets/images';
import { Image } from 'antd';
import {link} from '@/assets/images';
import { link } from '@/assets/images';
import * as $$ from '@/utils/utility';
import PersonCard from './personCard';
function getByIdRoleApi(id) {
  return $$.ax.request({ url: `ctUser/getByIdRole?id=` + id, type: 'get', service: 'cust' });
}
export default function HandleRecord(props) {
  const appUrl = $$.appUrl;
  const [list, setList] = useState([]);
  const [imgVisible, setImgVisible] = useState({ visible: false, src: '' });
  const [personView, setPersonView] = useState(false)
  const [personData, setPersonData] = useState({})
  useEffect(() => {
    setList(props.data)
@@ -35,6 +40,24 @@
      return record;
    }));
  };
  const getByIdRole = async (id) => {
    const res = await getByIdRoleApi(id)
    if (res.type) {
      setPersonView(!personView)
      setPersonData(res.data)
    }
  }
  const handlePersonDetail = (id) => {
    getByIdRole(id)
  }
  const handleCancel=()=>{
    setPersonView(false)
  }
  const handleEdit = (id) => {
    props.handleEdit(id)
@@ -68,13 +91,16 @@
                }
                <div>{`${record.createTime} ${record.handleUnitName}`}</div>
                <div className={`container-bottom-left-record-top-${record.handleType === '2' ? 'remark' : 'hostOrg'}`}>{record.handleType === '2' ? '配合部门' : '承办部门'}</div>
                {!props.isReview && <div><img src={edit} alt='' className='container-bottom-left-record-top-edit' onClick={() => handleEdit(record)} /></div>}
                {!props.isReview && !props.noEdit && <div><img src={edit} alt='' className='container-bottom-left-record-top-edit' onClick={() => handleEdit(record)} /></div>}
              </div>
              <div className='container-bottom-left-record-bottom' style={{ display: record.showView ? 'block' : 'none' }}>
                <table border="1" cellpadding="8" className='container-bottom-left-record-bottom-table'>
                  <tr>
                    <th bgcolor="#F7F8FA" className="table-title" width="120">操作人</th>
                    <td>{record.handleUserName || '-'}</td>
                    <td>
                      {record.handleUserName || '-'}
                      <img src={register} alt='' onClick={() => handlePersonDetail(record.handleUserId)} style={{ width: '14px', height: '14px', marginLeft: '8px', marginTop: '-4px' }} />
                    </td>
                  </tr>
                  <tr>
                    <th bgcolor="#F7F8FA" className="table-title" width="120">办理意见</th>
@@ -92,11 +118,18 @@
                        }}
                      />
                    </div>
                    <td style={{ color: '#1A6FB8' }} onClick={() => handleOpenFiles(record?.fileInfoList?.[0])}>
                      <div style={{cursor: 'pointer',display:'flex',alignItems:'center',gap:'4px'}}>
                        <img src={link} alt='' style={{width:'14px',height:'14px'}}/>
                        <div>{record?.fileInfoList?.[0]?.name || '-'}</div>
                      </div>
                    <td>
                      {record?.fileInfoList?.length > 0 ?
                        <div style={{ display: 'flex', alignItems: 'center', gap: '4px', color: '#1A6FB8' }}>
                          <img src={link} alt='' style={{ width: '14px', height: '14px' }} />
                          <div>
                            {record?.fileInfoList?.map((item, index) =>
                              <div key={index} onClick={() => handleOpenFiles(item)} style={{ cursor: 'pointer' }}>{item.name || '-'}{index === record.fileInfoList.length - 1 ? '' : ','}</div>
                            )}
                          </div>
                        </div> : '-'
                      }
                    </td>
                  </tr>
                </table>
@@ -120,7 +153,7 @@
          description='暂无数据'
        />
      }
      <PersonCard personView={personView} handleCancel={handleCancel} personData={personData} />
    </div>
  )
}
gz-customerSystem/src/views/register/matterDetail/Supervising.jsx
@@ -2,7 +2,7 @@
 * @Author: dminyi 1301963064@qq.com
 * @Date: 2024-09-06 09:54:09
 * @LastEditors: dminyi 1301963064@qq.com
 * @LastEditTime: 2024-09-06 11:03:29
 * @LastEditTime: 2024-09-13 11:20:00
 * @FilePath: \gzDyh\gz-customerSystem\src\views\register\matterDetail\Supervising.jsx
 * @Description: 督办
 */
@@ -102,7 +102,7 @@
            <div>张三丰</div>
          </div>
          <div className='Supervising-item'>
            <div className='Supervising-item-title' style={{ width: '70px' }}>督办内容:</div>
            <div className='Supervising-item-title' style={{ width: '80px' }}>督办内容:</div>
            <div style={{ flex: 1 }}>该纠纷事件目前群众较为关注,现要求相关部门即刻启动纠纷化解工作。请负责同事务必于本周内制定出具体解决方案,并确保与当事人进行有效沟通。请各位积极响应,高效协作,争取在最短时间内妥善处理完毕。</div>
          </div>
          <div className='Supervising-item'>
@@ -125,8 +125,8 @@
            <div>张三丰</div>
          </div>
          <div className='Supervising-item'>
            <div className='Supervising-item-title'>督办内容:</div>
            <div>该纠纷事件目前群众较为关注,现要求相关部门即刻启动纠纷化解工作。请负责同事务必于本周内制定出具体解决方案,并确保与当事人进行有效沟通。请各位积极响应,高效协作,争取在最短时间内妥善处理完毕。</div>
            <div className='Supervising-item-title' style={{ width: '80px' }}>督办内容:</div>
            <div style={{ flex: 1 }}>该纠纷事件目前群众较为关注,现要求相关部门即刻启动纠纷化解工作。请负责同事务必于本周内制定出具体解决方案,并确保与当事人进行有效沟通。请各位积极响应,高效协作,争取在最短时间内妥善处理完毕。</div>
          </div>
          <div className='Supervising-item'>
            <div className='Supervising-item-title'>督办附件:</div>
@@ -161,7 +161,7 @@
            </Col>
            <Col span={24}>
              <div className="title-text">督办附件</div>
              <img src={link} alt="" className="title-file" />广东好又多贸易有限公司营业执照副本.pdf
              <img src={link} alt="" style={{ width: '14px', height: '14px' }} />广东好又多贸易有限公司营业执照副本.pdf
            </Col>
          </Row>
          <Col span={24} style={{ marginBottom: '8px' }}>
@@ -257,7 +257,7 @@
          <Col span={24}>
            <div className="title-text">督办附件</div>
            <div style={{ display: 'flex' }}>
              <img src={link} alt="" className="title-file" />
              <img src={link} alt="" style={{ width: '14px', height: '14px' }} />
              <div style={{ color: '#1A6FB8' }}>广东好又多贸易有限公司营业执照副本.pdf</div>
            </div>
gz-customerSystem/src/views/register/matterDetail/fileMessage.jsx
@@ -170,7 +170,7 @@
                      <Space size='small'>
                        <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h4>办理记录({list.length})</h4>
                      </Space>
                      <HandleRecord isReview={true} data={list} />
                      <HandleRecord isReview={true} data={list} noEdit/>
                    </div>
                  }
                  {grade &&
gz-customerSystem/src/views/register/matterDetail/personCard.jsx
New file
@@ -0,0 +1,43 @@
/*
 * @Author: dminyi 1301963064@qq.com
 * @Date: 2024-09-13 10:37:48
 * @LastEditors: dminyi 1301963064@qq.com
 * @LastEditTime: 2024-09-13 10:46:34
 * @FilePath: \gzDyh\gz-customerSystem\src\views\register\matterDetail\personCard.jsx
 * @Description:
 */
import React from 'react';
import {  Modal } from '@arco-design/web-react';
const PersonCard = (props) => {
  return (
    <>
      <Modal visible={props.personView} onCancel={props.handleCancel} title='工作人员信息' centered footer={null}>
        <table border="1" align="center" cellpadding="5" className="table">
          <tr>
            <th bgcolor="#F7F8FA" className="table-title" width="120">姓名</th>
            <td width='380'><div style={{ display: 'flex' }}><div>{props.personData?.trueName}</div></div></td>
            <th bgcolor="#F7F8FA" className="table-title" width="120">登录账号</th>
            <td width='380'>{props.personData?.acc}</td>
          </tr>
          <tr>
            <th bgcolor="#F7F8FA" className="table-title">手机号码</th>
            <td>{props.personData?.mobile}</td>
            <th bgcolor="#F7F8FA" className="table-title">工作电话</th>
            <td>-</td>
          </tr>
          <tr>
            <th bgcolor="#F7F8FA" className="table-title">所属部门</th>
            <td>{props.personData?.unitName}</td>
            <th bgcolor="#F7F8FA" className="table-title">职务</th>
            <td>{props.personData?.userRoles}</td>
          </tr>
        </table>
      </Modal>
    </>
  )
}
export default PersonCard;
gz-customerSystem/src/views/register/visit/component/previewTable.jsx
@@ -1,5 +1,8 @@
import React, { useEffect, useState } from 'react';
import { person, link } from '@/assets/images'
import { person1 } from '@/assets/images/icon'
const ApplyDialog = ({ applyDialog }) => {
@@ -16,10 +19,10 @@
              <th bgcolor="#F7F8FA" className="table-title" width='140'>性别</th>
              <td>{item.sexName || '-'}</td>
              <td rowspan="4" width="112" height='147' style={{ padding: '0px' }}>
                <img border="0" src={person} alt="" style={{
                <img border="0" src={person1} alt="" style={{
                  width: '100%',
                  height: '100%',
                  objectFit: 'cover', // 保持原始宽高比并填充整个容器
                  // objectFit: 'cover', // 保持原始宽高比并填充整个容器
                  objectPosition: 'center', // 图片居中显示
                }} />
              </td>
@@ -83,7 +86,7 @@
            <th bgcolor="#F7F8FA" className="table-title" width="140">性别</th>
            <td>{item.sexName || '-'}</td>
            <td rowspan="4" width="112" height='147' style={{ padding: '0px' }}>
              <img border="0" src={person} alt="" style={{ width: '100%', height: '100%' }} />
              <img border="0" src={person1} alt="" style={{ width: '100%', height: '100%' }} />
            </td>
          </tr>
          <tr>
gz-wxparty/api/api.js
@@ -8,7 +8,7 @@
  // === 测试环境 ===
  // debug: 'https://gz.hugeinfo.com.cn/',
  debug: 'http://b5qpdu.natappfree.cc/',
  debug: 'http://gxdn5f.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/',
@@ -23,24 +23,24 @@
  // 文件下载url 后面接附件编号
  // 不同服务接口type
  // fileShowUrl: 'dyh-sys',
  // fileDownUrl: 'dyh-sys',
  // 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
  fileShowUrl: 'dyh-sys',
  fileDownUrl: 'dyh-sys',
  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
  // 正式环境
  fileShowUrl: 'gzdyh-sys',
  fileDownUrl: 'gzdyh-sys',
  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
  // fileShowUrl: 'gzdyh-sys',
  // fileDownUrl: 'gzdyh-sys',
  // 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
@@ -11,6 +11,7 @@
    "pages/DetailPerson/index",
    "pages/AIAide/index",
    "pages/AIAideDetail/index",
    "pages/evaluate/index",
    "pages/myRegisterList/index",
    "pages/myRegisterFlow/index",
    "pages/myRegisterDetail/index",
gz-wxparty/components/common-page/index.js
@@ -3,106 +3,188 @@
// 获取手机号码
function getPhoneNumber(submitData) {
    return $$.request({ url: 'paAccount/getUserPhone', type: 'post', service: 'cust', submitData });
  return $$.request({
    url: 'paAccount/getUserPhone',
    type: 'post',
    service: 'cust',
    submitData
  });
}
Component({
    /**
     * 组件的属性列表
     * popup: 下拉框的数据;visible:boolean 是否显示;title: string 标题;selectData: array;列数据;可拓展对象属性
     * safeBottom: iphoneX安全距离
     */
    properties: {
        popup: {
            type: Object,
            value: { visible: false }, // default: { visible: false, title: '', selectData: [] }
        },
        safeBottom: {
            type: Boolean,
            value: true,
        },
    },
  /**
   * 组件的属性列表
   * popup: 下拉框的数据;visible:boolean 是否显示;title: string 标题;selectData: array;列数据;可拓展对象属性
   * safeBottom: iphoneX安全距离
   */
  properties: {
    popup: {
      type: Object,
      value: {
        visible: false
      }, // default: { visible: false, title: '', selectData: [] }
    },
    safeBottom: {
      type: Boolean,
      value: true,
    },
  },
    /**
     * 组件的初始数据
     */
    columnsDefaultIndex: 0,
    data: {
        loginVisible: false,
        popupIndex: null,
    },
  /**
   * 组件的初始数据
   */
  columnsDefaultIndex: 0,
  data: {
    loginVisible: false,
    popupIndex: null,
  },
    pageLifetimes: {
        show: function () {
            if (!app.globalData.token) {
                console.log('测试')
                if (!app.globalData.access_token) {
                    $$.showModal({
                        content: '抱歉您未登录,是否前往登录?',
                        success: (res) => {
                            if (res.confirm) {
                                wx.redirectTo({
                                    url: '../../pages/login/index',
                                });
                            } else {
                                wx.navigateBack({
                                    delta: 1,
                                });
                            }
                        },
                    });
  pageLifetimes: {
    show: function () {
      if (!app.globalData.token) {
        console.log('测试')
        if (!app.globalData.access_token) {
          $$.showModal({
            content: '抱歉您未登录,是否前往登录?',
            success: (res) => {
              if (res.confirm) {
                // wx.redirectTo({
                //     url: '../../pages/login/index',
                // });
                this.handleGetUserInfo()
              } else {
                wx.navigateBack({
                  delta: 1,
                });
              }
            },
          });
        }
      }
      if (app.globalData.token && !this.data.loginVisible) {
        this.setData({
          loginVisible: true
        });
      }
    },
  },
  // 登录,获取用户信息
  async handleGetUserInfo() {
    $$.showLoading();
    wx.getUserProfile({
      desc: '完善用户信息',
      complete(res) {
        if (res.errMsg === 'getUserProfile:ok') {
          wx.login({
            async success(res2) {
              if (res2.code) {
                const accountInfo = wx.getAccountInfoSync();
                const submitData = {
                  appid: accountInfo.miniProgram.appId,
                  code: res2.code,
                  avatar: res?.userInfo.avatarUrl,
                  encryptedData: res.encryptedData,
                  ivStr: res.iv,
                };
                const res3 = await loginApi(submitData);
                $$.hideLoading();
                if (res3.type) {
                  wx.setStorage({
                    key: 'userInfo',
                    data: res3.data
                  });
                  app.globalData.token = res3.data.token;
                  $$.showToast({
                    title: '登录成功',
                    icon: 'success'
                  });
                  await $$.sleep();
                  wx.reLaunch({
                    url: '../../pages/homePage/index',
                  });
                }
            }
            if (app.globalData.token && !this.data.loginVisible) {
                this.setData({ loginVisible: true });
            }
        },
    },
              } else {
                $$.hideLoading();
                $$.showToast('登录失败,请稍后重试');
              }
            },
          });
        } else {
          $$.hideLoading();
          $$.showToast({
            title: '抱歉!授权失败'
          });
        }
      },
    });
  },
    observers: {
        'popup.visible,popup.noPicker': function (data1, data2) {
            if ((data1, data2)) {
                this.setData({ popupIndex: this.data.popup.activeIndex });
            }
        },
    },
  observers: {
    'popup.visible,popup.noPicker': function (data1, data2) {
      if ((data1, data2)) {
        this.setData({
          popupIndex: this.data.popup.activeIndex
        });
      }
    },
  },
    /**
     * 组件的方法列表
     */
    methods: {
        // 退出登录
        loginOut() {
            this.setData({ loginVisible: false });
        },
        // 获取手机号码
        async handleGetPhoneNumber(code) {
            $$.showLoading();
            const accountInfo = wx.getAccountInfoSync();
            const res = await getPhoneNumber({ appid: accountInfo.miniProgram.appId, code });
            $$.hideLoading();
            if (res.type) {
                $$.showToast({ title: '获取成功' });
                return res.data;
            }
        },
        // 下拉框底层弹出层方法
        _handleClosePopup() {
            this.triggerEvent('onClosePopup');
        },
        _handleChangePicker(e) {
            this.triggerEvent('onChangePicker', { dataset: e.currentTarget.dataset, detail: e.detail });
        },
        _handleConfirmPicker(e) {
            if (this.data.popup.noPicker) {
                // 当组件不是Picker时
                let index = e.currentTarget.dataset.index;
                let value = e.currentTarget.dataset.value;
                this.triggerEvent('onConfirmPicker', { dataset: e.currentTarget.dataset, detail: { index, value } });
                return;
            }
            this.triggerEvent('onConfirmPicker', { dataset: e.currentTarget.dataset, detail: e.detail });
        },
    },
});
  /**
   * 组件的方法列表
   */
  methods: {
    // 退出登录
    loginOut() {
      this.setData({
        loginVisible: false
      });
    },
    // 获取手机号码
    async handleGetPhoneNumber(code) {
      $$.showLoading();
      const accountInfo = wx.getAccountInfoSync();
      const res = await getPhoneNumber({
        appid: accountInfo.miniProgram.appId,
        code
      });
      $$.hideLoading();
      if (res.type) {
        $$.showToast({
          title: '获取成功'
        });
        return res.data;
      }
    },
    // 下拉框底层弹出层方法
    _handleClosePopup() {
      this.triggerEvent('onClosePopup');
    },
    _handleChangePicker(e) {
      this.triggerEvent('onChangePicker', {
        dataset: e.currentTarget.dataset,
        detail: e.detail
      });
    },
    _handleConfirmPicker(e) {
      if (this.data.popup.noPicker) {
        // 当组件不是Picker时
        let index = e.currentTarget.dataset.index;
        let value = e.currentTarget.dataset.value;
        this.triggerEvent('onConfirmPicker', {
          dataset: e.currentTarget.dataset,
          detail: {
            index,
            value
          }
        });
        return;
      }
      this.triggerEvent('onConfirmPicker', {
        dataset: e.currentTarget.dataset,
        detail: e.detail
      });
    },
  },
});
gz-wxparty/components/personal-data-dom/index.js
@@ -128,6 +128,10 @@
      if (res.type) {
        if (res.data.trueName !== null)
          this.triggerEvent('getUserInfo', res.data);
        wx.setStorage({
          key: 'userInfo',
          data: res.data
        });
      }
    },
    // 请求下拉框资源
gz-wxparty/pages/AIAide/index.wxml
@@ -15,7 +15,7 @@
            <van-icon color="#1A6FB8" size="14" name="arrow" />
          </view>
        </view>
        <view class="caseList_title">相似度:{{'-'}}% | 发生地:广东省 广州市</view>
        <!-- <view class="caseList_title">相似度:{{'-'}}% | 发生地:广东省 广州市</view> -->
      </view>
    </block>
    <block wx:if="{{AIData.length>0}}">
gz-wxparty/pages/AIAideDetail/index.wxml
@@ -8,11 +8,11 @@
  </view>
  <view class="subtitle">【群众诉求】</view>
  <view class="text">
    {{data.caseclaim||'-'}}
    {{data.caseClaim||'-'}}
  </view>
  <view class="subtitle">【和解协议】</view>
  <view class="text">
    {{data.agreecontent||'-'}}
    {{data.agreeContent||'-'}}
  </view>
</view>
gz-wxparty/pages/caseType/index.js
@@ -9,58 +9,466 @@
   */
  data: {
    imgUrl: $$.url.img,
    typeList: [
      [{
        title: '邻里纠纷',
        value: '24_000011-1',
        imgUrl: 'caseType-1-1.png'
      }, {
        title: '拖欠、克扣工资',
        value: '24_000011-3',
        imgUrl: 'caseType-1-5.png'
      }, {
        title: '门诊及住院待遇',
        value: '24_000011-4',
        imgUrl: 'caseType-1-10.png'
      }, {
        title: '公共设施',
        imgUrl: 'caseType-1-4.png'
      }, {
        title: '施工问题',
        imgUrl: 'caseType-1-2.png'
      }, {
        title: '违章建筑',
        imgUrl: 'caseType-1-6.png'
      }, {
        title: '港澳青年来穗服务',
        imgUrl: 'caseType-1-7.png'
      }, {
        title: '乱摆卖、垃圾清理...',
        imgUrl: 'caseType-1-8.png'
      }, {
        title: '噪声、气味、污水...',
        imgUrl: 'caseType-1-9.png'
      }, {
        title: '车辆乱停放',
        imgUrl: 'caseType-1-14.png'
      }, {
        title: '出租车、公交车站...',
        imgUrl: 'caseType-1-11.png'
      }, {
        title: '电动车违规问题',
        imgUrl: 'caseType-1-12.png'
      }, {
        title: '教培机构投诉',
        imgUrl: 'caseType-1-13.png'
      }, {
        title: '物业/业委会管理',
        imgUrl: 'caseType-1-3.png'
      }]
    typeList: [{
        "label": "劳动社保",
        "value": "24_01-2",
        "icon": null,
        "parentId": "root",
        "children": [{
            "label": "拖欠、克扣工资",
            "value": "24_02-9",
            "icon": 'caseType-1-5.png',
            "parentId": "24_01-2",
            "children": null
          },
          {
            "label": "社保费用补缴",
            "value": "24_02-16",
            "icon": 'caseType-1-1.png',
            "parentId": "24_01-2",
            "children": null
          },
          {
            "label": "异地就医办理",
            "value": "24_02-13",
            "icon": 'caseType-1-3.png',
            "parentId": "24_01-2",
            "children": null
          },
          {
            "label": "生育待遇",
            "value": "24_02-12",
            "icon": 'caseType-1-6.png',
            "parentId": "24_01-2",
            "children": null
          },
          {
            "label": "养老待遇",
            "value": "24_02-14",
            "icon": 'caseType-1-4.png',
            "parentId": "24_01-2",
            "children": null
          },
          {
            "label": "参保流程",
            "value": "24_02-17",
            "icon": 'caseType-1-13.png',
            "parentId": "24_01-2",
            "children": null
          },
          {
            "label": "失业保险待遇",
            "value": "24_02-15",
            "icon": 'caseType-1-9.png',
            "parentId": "24_01-2",
            "children": null
          },
          {
            "label": "港澳青年来穗服务",
            "value": "24_02-19",
            "icon": 'caseType-1-14.png',
            "parentId": "24_01-2",
            "children": null
          },
          {
            "label": "医保个人账户",
            "value": "24_02-11",
            "icon": 'caseType-1-12.png',
            "parentId": "24_01-2",
            "children": null
          },
          {
            "label": "门诊及住院待遇",
            "value": "24_02-10",
            "icon": 'caseType-1-11.png',
            "parentId": "24_01-2",
            "children": null
          },
          {
            "label": "其他(职业技能、社保补贴等)",
            "value": "24_02-18",
            "icon": 'caseType-1-7.png',
            "parentId": "24_01-2",
            "children": null
          }
        ]
      },
      {
        "label": "城市管理",
        "value": "24_01-3",
        "icon": null,
        "parentId": "root",
        "children": [{
            "label": "施工问题",
            "value": "24_02-20",
            "icon": 'caseType-1-9.png',
            "parentId": "24_01-3",
            "children": null
          },
          {
            "label": "违章建筑",
            "value": "24_02-21",
            "icon": 'caseType-1-8.png',
            "parentId": "24_01-3",
            "children": null
          },
          {
            "label": "路桥坑洼、破损",
            "value": "24_02-22",
            "icon": 'caseType-1-7.png',
            "parentId": "24_01-3",
            "children": null
          },
          {
            "label": "消防隐患举报",
            "value": "24_02-23",
            "icon": 'caseType-1-6.png',
            "parentId": "24_01-3",
            "children": null
          },
          {
            "label": "噪声、气味、污水等环境问题",
            "value": "24_02-25",
            "icon": 'caseType-1-5.png',
            "parentId": "24_01-3",
            "children": null
          },
          {
            "label": "乱摆卖、垃圾清理等街面问题",
            "value": "24_02-24",
            "icon": 'caseType-1-4.png',
            "parentId": "24_01-3",
            "children": null
          }
        ]
      },
      {
        "label": "家庭邻里",
        "value": "24_01-8",
        "icon": null,
        "parentId": "root",
        "children": [{
            "label": "邻里纠纷",
            "value": "24_02-48",
            "icon": 'caseType-1-3.png',
            "parentId": "24_01-8",
            "children": null
          },
          {
            "label": "婚姻家庭纠纷",
            "value": "24_02-47",
            "icon": 'caseType-1-2.png',
            "parentId": "24_01-8",
            "children": null
          },
          {
            "label": "男女情感问题",
            "value": "24_02-49",
            "icon": 'caseType-1-1.png',
            "parentId": "24_01-8",
            "children": null
          }
        ]
      },
      {
        "label": "交通运输",
        "value": "24_01-4",
        "icon": null,
        "parentId": "root",
        "children": [{
            "label": "交通拥堵",
            "value": "24_02-27",
            "icon": 'caseType-1-8.png',
            "parentId": "24_01-4",
            "children": null
          },
          {
            "label": "道路违章举报",
            "value": "24_02-29",
            "icon": 'caseType-1-9.png',
            "parentId": "24_01-4",
            "children": null
          },
          {
            "label": "物流快递管理",
            "value": "24_02-30",
            "icon": 'caseType-1-10.png',
            "parentId": "24_01-4",
            "children": null
          },
          {
            "label": "驾校纠纷",
            "value": "24_02-31",
            "icon": 'caseType-1-11.png',
            "parentId": "24_01-4",
            "children": null
          },
          {
            "label": "车辆乱停放",
            "value": "24_02-26",
            "icon": 'caseType-1-12.png',
            "parentId": "24_01-4",
            "children": null
          },
          {
            "label": "电动车违规问题",
            "value": "24_02-33",
            "icon": 'caseType-1-13.png',
            "parentId": "24_01-4",
            "children": null
          },
          {
            "label": "出租车、公交车、站点等营运问题",
            "value": "24_02-32",
            "icon": 'caseType-1-14.png',
            "parentId": "24_01-4",
            "children": null
          },
          {
            "label": "交通灯、电子警察等公安设施",
            "value": "24_02-28",
            "icon": 'caseType-1-2.png',
            "parentId": "24_01-4",
            "children": null
          },
          {
            "label": "其他(社会治安、限行、养犬等)",
            "value": "24_02-34",
            "icon": 'caseType-1-1.png',
            "parentId": "24_01-4",
            "children": null
          }
        ]
      },
      {
        "label": "教育医疗",
        "value": "24_01-5",
        "icon": null,
        "parentId": "root",
        "children": [{
            "label": "教育事务、培训机构投诉",
            "value": "24_02-35",
            "icon": 'caseType-1-8.png',
            "parentId": "24_01-5",
            "children": null
          },
          {
            "label": "医疗服务",
            "value": "24_02-36",
            "icon": 'caseType-1-9.png',
            "parentId": "24_01-5",
            "children": null
          }
        ]
      },
      {
        "label": "房屋规划",
        "value": "24_01-7",
        "icon": null,
        "parentId": "root",
        "children": [{
            "label": "物业/业委会管理",
            "value": "24_02-41",
            "icon": 'caseType-1-1.png',
            "parentId": "24_01-7",
            "children": null
          },
          {
            "label": "不动产登记",
            "value": "24_02-42",
            "icon": 'caseType-1-2.png',
            "parentId": "24_01-7",
            "children": null
          },
          {
            "label": "开发商/中介纠纷",
            "value": "24_02-43",
            "icon": 'caseType-1-3.png',
            "parentId": "24_01-7",
            "children": null
          },
          {
            "label": "电梯加装",
            "value": "24_02-44",
            "icon": 'caseType-1-4.png',
            "parentId": "24_01-7",
            "children": null
          },
          {
            "label": "建设项目规划",
            "value": "24_02-45",
            "icon": 'caseType-1-5.png',
            "parentId": "24_01-7",
            "children": null
          },
          {
            "label": "租赁纠纷",
            "value": "24_02-46",
            "icon": 'caseType-1-6.png',
            "parentId": "24_01-7",
            "children": null
          }
        ]
      },
      {
        "label": "公共服务",
        "value": "24_01-6",
        "icon": null,
        "parentId": "root",
        "children": [{
            "label": "停水/电/气",
            "value": "24_02-37",
            "icon": 'caseType-1-8.png',
            "parentId": "24_01-6",
            "children": null
          },
          {
            "label": "自然灾害",
            "value": "24_02-38",
            "icon": 'caseType-1-9.png',
            "parentId": "24_01-6",
            "children": null
          },
          {
            "label": "个人危险行为",
            "value": "24_02-40",
            "icon": 'caseType-1-7.png',
            "parentId": "24_01-6",
            "children": null
          },
          {
            "label": "公共卫生安全",
            "value": "24_02-39",
            "icon": 'caseType-1-10.png',
            "parentId": "24_01-6",
            "children": null
          }
        ]
      },
      {
        "label": "市场监管",
        "value": "24_01-1",
        "icon": null,
        "parentId": "root",
        "children": [{
            "label": "金融纠纷",
            "value": "24_02-6",
            "icon": 'caseType-1-11.png',
            "parentId": "24_01-1",
            "children": null
          },
          {
            "label": "网购及其他消费纠纷",
            "value": "24_02-5",
            "icon": 'caseType-1-12.png',
            "parentId": "24_01-1",
            "children": null
          },
          {
            "label": "其他经济违法举报",
            "value": "24_02-7",
            "icon": 'caseType-1-13.png',
            "parentId": "24_01-1",
            "children": null
          },
          {
            "label": "食品消费纠纷",
            "value": "24_02-3",
            "icon": 'caseType-1-1.png',
            "parentId": "24_01-1",
            "children": null
          },
          {
            "label": "旅游消费纠纷",
            "value": "24_02-2",
            "icon": 'caseType-1-2.png',
            "parentId": "24_01-1",
            "children": null
          },
          {
            "label": "通讯、宽带消费纠纷",
            "value": "24_02-1",
            "icon": 'caseType-1-3.png',
            "parentId": "24_01-1",
            "children": null
          },
          {
            "label": "电费问题",
            "value": "24_02-8",
            "icon": 'caseType-1-4.png',
            "parentId": "24_01-1",
            "children": null
          },
          {
            "label": "无证/无照/冒用信息等违法经营行为举报",
            "value": "24_02-4",
            "icon": 'caseType-1-14.png',
            "parentId": "24_01-1",
            "children": null
          },
        ]
      }
    ],
    // [
    //   [{
    //     title: '邻里纠纷',
    //     value: '24_000011-1',
    //     imgUrl: 'caseType-1-1.png'
    //   }, {
    //     title: '拖欠、克扣工资',
    //     value: '24_000011-3',
    //     imgUrl: 'caseType-1-5.png'
    //   }, {
    //     title: '门诊及住院待遇',
    //     value: '24_000011-4',
    //     imgUrl: 'caseType-1-10.png'
    //   }, {
    //     title: '公共设施',
    //     imgUrl: 'caseType-1-4.png'
    //   }, {
    //     title: '施工问题',
    //     imgUrl: 'caseType-1-2.png'
    //   }, {
    //     title: '违章建筑',
    //     imgUrl: 'caseType-1-6.png'
    //   }, {
    //     title: '港澳青年来穗服务',
    //     imgUrl: 'caseType-1-7.png'
    //   }, {
    //     title: '乱摆卖、垃圾清理...',
    //     imgUrl: 'caseType-1-8.png'
    //   }, {
    //     title: '噪声、气味、污水...',
    //     imgUrl: 'caseType-1-9.png'
    //   }, {
    //     title: '车辆乱停放',
    //     imgUrl: 'caseType-1-14.png'
    //   }, {
    //     title: '出租车、公交车站...',
    //     imgUrl: 'caseType-1-11.png'
    //   }, {
    //     title: '电动车违规问题',
    //     imgUrl: 'caseType-1-12.png'
    //   }, {
    //     title: '教培机构投诉',
    //     imgUrl: 'caseType-1-13.png'
    //   }, {
    //     title: '物业/业委会管理',
    //     imgUrl: 'caseType-1-3.png'
    //   }]
    // ],
    activeKey: '0'
  },
  onChange(e) {
    this.setData({
      activeKey: e.detail
    })
  },
  onClick(e) {
    let item = e.currentTarget.dataset.item;
    console.log(item);
gz-wxparty/pages/caseType/index.wxml
@@ -19,26 +19,26 @@
  <!-- 主体 -->
  <view class='caseType-main'>
    <view class="sidebar">
      <van-sidebar active-key="{{ activeKey }}">
        <van-sidebar-item title="热点事项" />
        <van-sidebar-item title="市场监管" />
      <van-sidebar active-key="{{ activeKey }}" bind:change="onChange">
        <van-sidebar-item wx:for="{{typeList}}" title="{{item.label}}" />
        <!-- <van-sidebar-item title="市场监管" />
        <van-sidebar-item title="劳动社保" />
        <van-sidebar-item title="城市管理" />
        <van-sidebar-item title="交通运输" />
        <van-sidebar-item title="教育医疗" />
        <van-sidebar-item title="公共服务" />
        <van-sidebar-item title="房屋规划" />
        <van-sidebar-item title="房屋规划" /> -->
      </van-sidebar>
    </view>
    <view class="grid">
      <van-grid border="{{ false }}" column-num="3">
        <van-grid-item bind:click='onClick' data-item="{{item}}" use-slot wx:for="{{typeList[activeKey] }}" wx:for-item="item">
        <van-grid-item bind:click='onClick' class="van-grid-item" data-item="{{item}}" use-slot wx:for="{{typeList[activeKey].children }}" wx:for-item="item">
          <view class="grid-flex">
            <view class="grid-img">
              <image src="{{imgUrl}}{{item.imgUrl}}" mode="" />
              <image src="{{imgUrl}}{{item.icon}}" mode="" />
            </view>
            <view class="grid-title">
              {{item.title}}
              {{item.label}}
            </view>
          </view>
        </van-grid-item>
gz-wxparty/pages/evaluate/index.js
New file
@@ -0,0 +1,78 @@
// pages/evaluate/index.js
const $$ = require('../../utils/util');
const app = getApp();
import Toast from '../../components/vant/toast/toast';
function saveCaseApi(submitData) {
  return $$.request({
    url: 'caseEvaluate/saveCaseEvaluate',
    type: 'post',
    submitData,
    service: 'mediate',
  });
}
Page({
  /**
   * 页面的初始数据
   */
  data: {
    data: [false, false, false, false, false, false],
    dataName: ['', '', '', '', '', '']
  },
  onChange(e) {
    let key = e.currentTarget.dataset.key;
    let name = e.currentTarget.dataset.name;
    if (name) {
      this.data.data[key] = e.detail
      this.data.dataName[key] = e.detail ? name : ''
      this.setData({
        data: this.data.data,
        dataName: this.data.dataName
      })
    } else {
      this.setData({
        [key]: e.detail
      })
    }
  },
  // 提交评价
  async handleNext() {
    let newData = {
      caseId: this.data.id,
      evaluateGrade: this.data.evaluateGrade,
      evaluateRemark: this.data.dataName?.length > 0 ? this.data.dataName.join(',') : '',
      evaluateContent: this.data.evaluateContent, //评价建议
    }
    $$.showLoading();
    const res = await saveCaseApi(newData);
    $$.hideLoading();
    if (res.type) {
      Toast('提交成功');
      wx.navigateBack({
        delta: 1,
        success: function (res) {
          // 返回页面刷新接口
          wx.emitEvent('getUserInfo', {});
        }
      });
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    let {
      id
    } = options;
    this.setData({
      id
    })
  },
})
gz-wxparty/pages/evaluate/index.json
New file
@@ -0,0 +1,4 @@
{
  "navigationBarTitleText": "去评价",
  "usingComponents": {}
}
gz-wxparty/pages/evaluate/index.wxml
New file
@@ -0,0 +1,39 @@
<!--pages/evaluate/index.wxml-->
<view class="card">
  <view class="flex">
    <view class="cell3">
      <view class="cell-title-placeholder">评价等级</view>
      <view class="">
        <van-rate value="{{ evaluateGrade }}" size="{{ 18 }}" color="#ffd21e" void-icon="star" void-color="#eee" data-key="evaluateGrade" bind:change="onChange" />
      </view>
    </view>
    <view class="cell3">
      <view class="cell-title-placeholder">评语</view>
      <view>
        <view class="view-flex">
          <view class="view-flex-1">工作人员态度好<van-checkbox value="{{ data[0] }}" data-key="0" data-name="工作人员态度好" bind:change="onChange" icon-size="18px"></van-checkbox>
          </view>
          <view class="view-flex-1">办理效率高<van-checkbox value="{{ data[1] }}" data-key="1" data-name="办理效率高" bind:change="onChange" icon-size="18px"></van-checkbox>
          </view>
          <view class="view-flex-1">工作人员认真负责<van-checkbox value="{{ data[2] }}" data-key="2" data-name="工作人员认真负责" bind:change="onChange" icon-size="18px"></van-checkbox>
          </view>
          <view class="view-flex-1">结案严谨<van-checkbox value="{{ data[3] }}" data-key="3" data-name="结案严谨" bind:change="onChange" icon-size="18px"></van-checkbox>
          </view>
          <view class="view-flex-1">结案结果符合预期<van-checkbox value="{{ data[4] }}" data-key="4" data-name="结案结果符合预期" bind:change="onChange" icon-size="18px"></van-checkbox>
          </view>
          <view class="view-flex-1">处理方式符合预期<van-checkbox value="{{ data[5] }}" data-key="5" data-name="处理方式符合预期" bind:change="onChange" icon-size="18px"></van-checkbox>
          </view>
        </view>
        <view class="cell-item">
          <van-field custom-style="padding:0 20rpx;line-height:90rpx" autosize="{{ { maxHeight: 110, minHeight: 110 } }}" bind:change="onChange" border="{{ false }}" maxlength='500' data-key="evaluateContent" placeholder="如果有其他意见或建议,请反馈给我们" type="textarea" value="{{ evaluateContent }}" />
        </view>
      </view>
    </view>
  </view>
  <view class="submitButton" catch:tap="">
    <view style="flex: 1;">
      <van-button bind:click="handleNext" block data-type="next" type="primary">提交评价</van-button>
      <view class="safeHeight" />
    </view>
  </view>
</view>
gz-wxparty/pages/evaluate/index.wxss
New file
@@ -0,0 +1,69 @@
/* pages/evaluate/index.wxss */
.card {
  display: flex;
  flex-direction: column;
}
.flex {
  flex: 1;
  padding: 24rpx;
  background-color: #fff;
}
.cell-title-placeholder {
  margin-bottom: 8rpx;
}
.cell3 {
  margin-bottom: 24rpx;
}
.view-flex {
  display: flex;
  gap: 32rpx;
  flex-wrap: wrap;
  justify-content: space-between;
}
.view-flex-1 {
  width: 47%;
  height: 76rpx;
  border: 1px solid #1a6fb8;
  border-radius: 4px;
  text-align: center;
  /* padding: 16rpx 16rpx; */
  font-size: 28rpx;
  line-height: 44rpx;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24rpx;
}
.cell-item {
  margin-top: 32rpx;
  padding: 16rpx 0;
  background: #f2f3f5;
  border-radius: 8px;
}
.cell-item .van-cell {
  background-color: #f2f3f5;
}
.flex-view {
  margin-bottom: 24rpx;
}
.submitButton {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  padding: 32rpx var(--padding-my);
  background-color: #fff;
  z-index: 99;
}
gz-wxparty/pages/homePage/index.js
@@ -53,7 +53,13 @@
    imgUrl: $$.url.img,
    agreementMsg: '', // 服务协议
    popupVisible: false,
    banner: [`${$$.url.img}Banner1.png`, `${$$.url.img}Banner2.png`], // 轮播图
    banner: [{
      image: `${$$.url.img}Banner1.png`,
      image1: `${$$.url.img}banner4.png`
    }, {
      image: `${$$.url.img}Banner2.png`,
      image1: `${$$.url.img}banner3.png`
    }], // 轮播图
    // banner: [`${$$.url.img}Banner1.png`, `${$$.url.img}Banner2.png`, `${$$.url.img}banner3.png`, `${$$.url.img}banner4.png`], // 轮播图
    countUnitData: {}, //化解资源
    userInfo: {}, //用户信息
@@ -75,6 +81,7 @@
  // 跳转资讯链接
  goSeeMessage(e) {
    let url = e.currentTarget.dataset.url;
    console.log('url', url);
    wx.navigateTo({
      url: '../webview/index?showUrl=' + url
    });
@@ -233,114 +240,6 @@
    }
  },
  async dd() {
    $$.showLoading();
    wx.login({
      async success(res) {
        if (res.code) {
          const accountInfo = wx.getAccountInfoSync();
          const submitData = {
            appid: accountInfo.miniProgram.appId,
            code: res.code,
          }
          const res1 = await loginApi(submitData);
          if (res1.type) {
            console.log(res1.data, 'res1111')
            if (res1.data.state === '1') {
              $$.hideLoading();
              console.log(res1, 'res1');
              wx.setStorage({
                key: 'userInfo',
                data: res1.data
              });
              app.globalData.token = res1.data.token;
              $$.showToast({
                title: '登录成功',
                icon: 'success'
              });
              await $$.sleep();
              wx.reLaunch({
                url: '../../pages/homePage/index',
              });
            } else {
              $$.hideLoading();
              app.globalData.access_token = wx.getStorageSync('access_token');
              $$.showModal({
                title: '提示',
                content: '您尚未注册,是否前往注册?',
                cancelText: '取消',
                confirmText: '前往',
                success: (res) => {
                  if (res.confirm) {
                    $$.showLoading();
                    wx.getUserProfile({
                      desc: '完善用户信息',
                      complete(res) {
                        if (res.errMsg === 'getUserProfile:ok') {
                          wx.login({
                            async success(res2) {
                              if (res2.code) {
                                const accountInfo = wx.getAccountInfoSync();
                                const submitData = {
                                  appid: accountInfo.miniProgram.appId,
                                  code: res2.code,
                                  avatar: res?.userInfo.avatarUrl,
                                  encryptedData: res.encryptedData,
                                  ivStr: res.iv,
                                };
                                const res3 = await registerApi(submitData);
                                $$.hideLoading();
                                if (res3.type) {
                                  wx.setStorage({
                                    key: 'userInfo',
                                    data: res3.data
                                  });
                                  app.globalData.token = res3.data.token;
                                  $$.showToast({
                                    title: '登录成功',
                                    icon: 'success'
                                  });
                                  await $$.sleep();
                                  wx.reLaunch({
                                    url: '../../pages/homePage/index',
                                  });
                                }
                              } else {
                                $$.hideLoading();
                                $$.showToast('登录失败,请稍后重试');
                              }
                            },
                          });
                        } else {
                          $$.hideLoading();
                          $$.showToast({
                            title: '抱歉!授权失败'
                          });
                        }
                      },
                    });
                    // wx.navigateTo({
                    //     url: '../../pages/login/index',
                    // });
                  } else {
                    wx.navigateBack({
                      delta: 1,
                    });
                  }
                },
              });
            }
          }
        } else {
          $$.hideLoading();
          $$.showToast('登录失败,请稍后重试');
        }
      }
    })
  },
  // 前往查看
  AiModalClick(e) {
    let item = e.currentTarget.dataset.item;
@@ -359,15 +258,75 @@
    })
  },
  // 登录,获取用户信息
  async handleGetUserInfo() {
    $$.showLoading();
    wx.getUserProfile({
      desc: '完善用户信息',
      complete(res) {
        if (res.errMsg === 'getUserProfile:ok') {
          wx.login({
            async success(res2) {
              if (res2.code) {
                const accountInfo = wx.getAccountInfoSync();
                const submitData = {
                  appid: accountInfo.miniProgram.appId,
                  code: res2.code,
                  avatar: res?.userInfo.avatarUrl,
                  encryptedData: res.encryptedData,
                  ivStr: res.iv,
                };
                const res3 = await registerApi(submitData);
                $$.hideLoading();
                if (res3.type) {
                  wx.setStorage({
                    key: 'userInfo',
                    data: res3.data
                  });
                  app.globalData.token = res3.data.token;
                  $$.showToast({
                    title: '登录成功',
                    icon: 'success'
                  });
                  await $$.sleep();
                  wx.reLaunch({
                    url: '../../pages/homePage/index',
                  });
                }
              } else {
                $$.hideLoading();
                $$.showToast('登录失败,请稍后重试');
              }
            },
          });
        } else {
          $$.hideLoading();
          $$.showToast({
            title: '抱歉!授权失败'
          });
        }
      },
    });
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {},
  onShow(options) {
    if (!$$.userTest('login')) {
      return
    if (!app.globalData.token) {
      $$.showModal({
        content: '抱歉您未登录,是否前往登录?',
        success: (res) => {
          if (res.confirm) {
            this.handleGetUserInfo();
          }
        },
      });
      return;
    }
    // this.getUserInfo()
    let userInfo = wx.getStorageSync('userInfo') || {};
    let AICase = wx.getStorageSync('AICase') || '';
    if (AICase) {
gz-wxparty/pages/homePage/index.wxml
@@ -8,8 +8,17 @@
<view class="homePage-main">
  <view class="swiper-bg">
    <swiper autoplay="{{ true }}" class="swiper" indicator-dots="{{ true }}">
      <swiper-item class="swiper-main" wx:for="{{ banner }}" wx:key="index">
        <image class="swiper-item" src="{{ item }}" />
      <swiper-item class="swiper-main">
        <view class="swiper-main-image">
          <image class="swiper-item" src="{{ imgUrl }}Banner1.png" />
          <image class="swiper-item1" src="{{ imgUrl }}banner4.png" />
        </view>
      </swiper-item>
      <swiper-item class="swiper-main">
        <view class="swiper-main-image">
          <image class="swiper-item" src="{{ imgUrl }}Banner2.png" />
          <image class="swiper-item2" src="{{ imgUrl }}banner3.png" />
        </view>
      </swiper-item>
    </swiper>
    <view class="swiper-head">
@@ -22,7 +31,7 @@
  </view>
  <view class="main">
    <view style="height: 32rpx;">
    </view>
    <!-- 服务申请 -->
    <view>
@@ -80,7 +89,7 @@
          <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">
      <view class="dt_card" bindtap="goSeeMessage" data-url="{{item.showUrl}}" wx:for="{{ newMessage }}" style="margin-top:{{index===0?0:'8px'}}" wx:key="index">
        <view class="dt_card_l">
          <view class="dt_card_title">{{item.title}}</view>
          <view class="dt_card_time">
gz-wxparty/pages/homePage/index.wxss
@@ -14,11 +14,32 @@
  height: 300rpx;
}
.swiper-main-image {
  position: relative;
  height: 100%;
  width: 100%;
}
.swiper-item {
  height: 100%;
  width: 100%;
}
.swiper-item1 {
  position: absolute;
  top: 60px;
  left: 10px;
  height: 42px;
}
.swiper-item2 {
  position: absolute;
  top: 72rpx;
  left: 20px;
  width: 200px;
  height: 61px;
}
.homePage-main {
  height: 100vh;
  background-color: #EFF8FF;
gz-wxparty/pages/myRegisterDetail/index.wxml
@@ -1,6 +1,6 @@
<!--pages/myRegisterDetail/index.wxml-->
<view class="three-tag">
  <van-tabs bind:click="threeTagChange" active="{{threeAvtice}}">
  <van-tabs animated bind:click="threeTagChange" active="{{threeAvtice}}">
    <!-- 人员信息 -->
    <van-tab title="人员信息" name="1">
      <view style="padding:24rpx">
gz-wxparty/pages/myRegisterDetail/index.wxss
@@ -65,6 +65,10 @@
  height: 96rpx !important;
}
.van-tabs__wrap .van-tab--active {
  color: var(--main-color) !important;
}
.three-tag .van-tabs__nav {
  height: 100%;
}
gz-wxparty/pages/myRegisterList/index.js
@@ -57,6 +57,7 @@
  // 关闭筛选框
  addClosePopup() {
    console.log('111', 11);
    this.setData({
      showModal: false
    })
@@ -158,29 +159,37 @@
    })
  },
  // 关闭AI弹窗
  addClosePopup() {
    this.setData({
      AiModal: false
    })
  // 评价
  evaluate(e) {
    let id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: '../../pages/evaluate/index?id=' + id
    });
  },
  // 关闭AI弹窗
  // addClosePopup() {
  //   this.setData({
  //     AiModal: false
  //   })
  // },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.pageQuery(this.data.search)
  },
  onShow() {
    let AICase = wx.getStorageSync('AICase') || '';
    if (AICase) {
      this.setData({
        AiModal: AICase
      })
      wx.removeStorage({
        key: 'AICase'
      })
    }
    this.pageQuery(this.data.search)
    // let AICase = wx.getStorageSync('AICase') || '';
    // if (AICase) {
    //   this.setData({
    //     AiModal: AICase
    //   })
    //   wx.removeStorage({
    //     key: 'AICase'
    //   })
    // }
  }
})
gz-wxparty/pages/myRegisterList/index.wxml
@@ -1,6 +1,6 @@
<!--pages/myRegisterList/index.wxml-->
<view class="three-tag">
  <van-tabs bind:click="threeTagChange" active="{{search.personType}}">
  <van-tabs animated bind:click="threeTagChange" active="{{search.personType}}">
    <van-tab title="我是申请方" name="1"></van-tab>
    <van-tab title="我是被申请方" name="2"></van-tab>
  </van-tabs>
@@ -71,6 +71,10 @@
      </view>
      <view class="list-detail-r">查看</view>
    </view>
    <view wx:if="{{item.processStatus>2&&item.isEvaluate==='0'}}" class="list-border"></view>
    <view wx:if="{{item.processStatus>2&&item.isEvaluate==='0'}}" style="margin: 24rpx 0;">
      <van-button bind:click="evaluate" block data-id="{{item.id}}" type="primary">去评价</van-button>
    </view>
  </view>
</view>
gz-wxparty/pages/myRegisterList/index.wxss
@@ -42,6 +42,10 @@
  height: 96rpx !important;
}
.van-tabs__wrap .van-tab--active {
  color: var(--main-color) !important;
}
.three-tag .van-tabs__nav {
  height: 100%;
}
gz-wxparty/pages/perfectInformation/index.js
@@ -171,10 +171,6 @@
      await $$.sleep();
      wx.navigateBack({
        delta: 1,
        success: function (res) {
          // 返回页面刷新接口
          wx.emitEvent('getUserInfo', {});
        }
      });
    }
  },
gz-wxparty/pages/realNameAuthentication/index.js
@@ -166,20 +166,7 @@
    const res = await realNameAuthenticationApi(this.data.submitData);
    $$.hideLoading();
    if (res.type) {
      wx.getStorage({
        key: 'userInfo',
        success(res2) {
          console.log('res2', res2);
          let nowData = {
            ...res2.data,
            realStatus: 1,
          }
          wx.setStorage({
            key: 'userInfo',
            data: nowData
          });
        },
      });
      this.getUserInfo()
      $$.showToast({
        icon: 'success',
        title: '实名认证成功'
gz-wxparty/pages/register/index.js
@@ -825,12 +825,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: {}
      })
@@ -841,8 +841,9 @@
      this.setData({
        submitData: {
          ...this.data.submitData,
          [this.data.twoKey]: this.data.twoValue
          [this.data.twoKey]: this.data.twoValue,
        },
        [this.data.twoKey + 'Num']: this.data.twoValue.length,
        twoValue: '',
        twoKey: ''
      })
gz-wxparty/pages/register/index.json
@@ -1,5 +1,5 @@
{
  "navigationBarTitleText": "反应诉求",
  "navigationBarTitleText": "反映诉求",
  "usingComponents": {
    "steps": "../../components/steps/index",
    "mediate-detail": "../../components/mediate-detail/index",
gz-wxparty/pages/register/index.wxml
@@ -154,13 +154,13 @@
        </block>
        <view style="height: 16rpx;"></view>
        <block>
          <view style="padding-left: 32rpx;" bindtap="handleUploadFile" data-id="{{ownerId}}" data-type="22_00014-1" class="cell-item">
          <view style="padding-left: 32rpx;" bindtap="handleUploadFile" data-id="{{ownerId}}" data-type="22_00018-101" class="cell-item">
            <view class="upload-title">
              事件材料
              <image src="{{imgUrl}}upload-add.png" mode="" />
            </view>
            <view class="upload-text">
              说明:建议上传人员身份证及纠纷涉及的证件材料,代理人请上传身份证及授权委托书
              说明:请上传与您的申请事项相关的证据材料,如合同、转账记录、聊天记录、鉴定结果等
            </view>
          </view>
          <view class="fileList" wx:for="{{fileList}}" wx:key="index" data-item="{{item}}" data-index="{{index}}">
@@ -169,7 +169,7 @@
              <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="" />
            <image data-id="{{item.id}}" data-type="22_00018-101" data-item="{{item}}" data-index="{{index}}" bindtap="handleDelImage" class="fileList_img_del" src="{{imgUrl}}image_del.png" mode="" />
          </view>
        </block>
      </view>
@@ -177,7 +177,7 @@
        <view style="flex: 1;">
          <view class="two-button">
            <view class="two-button-flex1">
              <van-button bind:click="handleNext" block data-type="back">上一步</van-button>
              <van-button color="#1A6FB8" plain bind:click="handleNext" block data-type="back">上一步</van-button>
            </view>
            <view class="two-button-flex2">
              <van-button bind:click="handleNext" block data-type="next" type="primary">下一步</van-button>
@@ -192,7 +192,7 @@
    <view class="page-flex" wx:elif="{{stepsActive === 2}}">
      <view class="popupMsg-form">
        <view class="three-tag">
          <van-tabs bind:click="threeTagChange" active="{{threeAvtice}}">
          <van-tabs animated bind:click="threeTagChange" active="{{threeAvtice}}">
            <!-- 人员信息 -->
            <van-tab title="人员信息" name="1">
              <view style="padding:24rpx">
@@ -283,7 +283,7 @@
        <view style="flex: 1;">
          <view class="two-button">
            <view class="two-button-flex1">
              <van-button bind:click="handleNext" block data-type="back">上一步</van-button>
              <van-button color="#1A6FB8" plain bind:click="handleNext" block data-type="back">上一步</van-button>
            </view>
            <view class="two-button-flex2">
              <van-button bind:click="handleNext" block data-type="next" type="primary">提交申请</van-button>
gz-wxparty/pages/register/index.wxss
@@ -254,6 +254,10 @@
  height: 96rpx !important;
}
.van-tabs__wrap .van-tab--active {
  color: var(--main-color) !important;
}
.three-tag .van-tabs__nav {
  height: 100%;
}
gz-wxparty/pages/speechToText/index.js
@@ -113,6 +113,7 @@
          if (code === '0' || code === 0) {
            that.setData({
              value: that.data.value + data || '',
              number: (that.data.value + data || '').length,
            });
          } else {
            $$.showToast({
@@ -171,5 +172,33 @@
    this.setData({
      key: type
    })
    wx.getSetting({
      success(res) {
        if (res.authSetting['scope.record'] === false) {
          $$.hideLoading();
          $$.showModal({
            content: '抱歉!此功能需授权麦克风录音功能',
            confirmText: '跳转授权',
            success: (res) => {
              if (res.confirm) {
                wx.openSetting({
                  success(res) {
                    if (res.authSetting['scope.record']) {
                      $$.showToast({
                        title: '授权成功'
                      });
                    } else {
                      $$.showToast({
                        title: '授权失败'
                      });
                    }
                  },
                });
              }
            },
          });
        }
      }
    })
  },
})
gz-wxparty/pages/speechToText/index.wxml
@@ -4,10 +4,10 @@
    <block wx:if="{{key==='caseDes'}}">
      <view class="cell-item">
        <view class="cell-title"><text><text class="cell-required">*</text>事项概况</text></view>
        <van-field custom-style="padding:0 20rpx;line-height:90rpx; margin-bottom:32rpx" autosize="{{ { maxHeight: 470, minHeight: 470 } }}" bind:change="handleChange" border="{{ false }}" maxlength='2000' data-key="caseDesNum" placeholder="请完整描述事项概况,应具备5要素:发生时间+发生地点+人物情况+事项起因+事项经过" type="textarea" value="{{ value }}" />
        <van-field custom-style="padding:0 20rpx;line-height:90rpx; margin-bottom:32rpx" autosize="{{ { maxHeight: 470, minHeight: 470 } }}" bind:change="handleChange" border="{{ false }}" maxlength='2000' data-key="number" placeholder="请完整描述事项概况,应具备5要素:发生时间+发生地点+人物情况+事项起因+事项经过" type="textarea" value="{{ value }}" />
      </view>
      <view class="textarea-foot">
        <view class="textarea-limit">{{caseDesNum||0}}/2000字</view>
        <view class="textarea-limit">{{number||0}}/2000字</view>
        <view class="textarea-ability">
          <!-- <view bindtouchstart="touchStart" bindtouchend="touchEnd" class="textarea-img"> -->
          <view bindtouchstart="touchStart" bindtouchend="touchEnd" class="textarea-img">
@@ -19,10 +19,10 @@
    <block wx:else>
      <view class="cell-item">
        <view class="cell-title"><text><text class="cell-required">*</text>事项申请</text></view>
        <van-field custom-style="padding:0 20rpx;line-height:90rpx" autosize="{{ { maxHeight: 470, minHeight: 470 } }}" bind:change="handleChange" border="{{ false }}" maxlength='500' data-key="caseClaimNum" placeholder="希望相关部门如何处理,建议分条描述,如请求1,请求2..." type="textarea" value="{{ value }}" />
        <van-field custom-style="padding:0 20rpx;line-height:90rpx" autosize="{{ { maxHeight: 470, minHeight: 470 } }}" bind:change="handleChange" border="{{ false }}" maxlength='500' data-key="number" placeholder="希望相关部门如何处理,建议分条描述,如请求1,请求2..." type="textarea" value="{{ value }}" />
      </view>
      <view class="textarea-foot">
        <view class="textarea-limit">{{caseClaimNum||0}}/500字</view>
        <view class="textarea-limit">{{number||0}}/500字</view>
        <view class="textarea-ability">
          <view bindtouchstart="touchStart" bindtouchend="touchEnd" class="textarea-img">
            <image src="{{imgUrl}}voiceOcr.png" mode="" />按住说话
gz-wxparty/utils/util.js
@@ -5,7 +5,7 @@
const url = api.url;
// 是否是开发环境
const isDebug = false;
const isDebug = true;
const baseUrl = isDebug ? api.url.debug : api.url.web;
@@ -430,9 +430,9 @@
      content: '抱歉您未登录,是否前往登录?',
      success: (res) => {
        if (res.confirm) {
          wx.navigateTo({
            url: '../../pages/login/index',
          });
          // wx.navigateTo({
          //   url: '../../pages/login/index',
          // });
        }
      },
    });