forked from gzzfw/frontEnd/gzDyh

zhangyongtian
2024-09-14 272d0e5869d1eaecd51885252eb7b7210ec06d4d
Merge branch 'master' of http://120.79.193.119:9090/r/gzzfw/frontEnd/gzDyh
12 files modified
362 ■■■■■ changed files
gz-customerSystem/src/api/appUrl.js 4 ●●●● patch | view | raw | blame | history
gz-customerSystem/src/components/NewTableSearch/index.jsx 128 ●●●● patch | view | raw | blame | history
gz-customerSystem/src/components/NewTableSearch/index.less 3 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/styles/theme.less 2 ●●● patch | view | raw | blame | history
gz-customerSystem/src/views/comprehensive/index.jsx 171 ●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/comprehensive/index.less 9 ●●●●● patch | view | raw | blame | history
gz-wxparty/api/api.js 32 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/AIAide/index.js 3 ●●●● patch | view | raw | blame | history
gz-wxparty/pages/AIAide/index.wxml 2 ●●● patch | view | raw | blame | history
gz-wxparty/pages/AIAideDetail/index.wxml 2 ●●● patch | view | raw | blame | history
gz-wxparty/pages/register/index.js 4 ●●●● patch | view | raw | blame | history
gz-wxparty/utils/util.js 2 ●●● patch | view | raw | blame | history
gz-customerSystem/src/api/appUrl.js
@@ -2,8 +2,8 @@
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-02-16 11:25:57
 * @LastEditTime: 2024-09-13 11:32:06
 * @LastEditors: dminyi 1301963064@qq.com
 * @LastEditTime: 2024-09-14 10:03:46
 * @LastEditors: lwh
 * @Version: 1.0.0
 * @Description: api地址
 */
gz-customerSystem/src/components/NewTableSearch/index.jsx
@@ -59,68 +59,74 @@
  return (
    <Form form={form} labelAlign="right" className="tableSearch">
      <Row gutter={[24, 16]}>
        {itemData.map((x, t) => {
          let placeholder = x.placeholder || setPlaceholder(x.name, x.type);
          let allowClear = x.allowClear || true;
          let dom = null;
          let rules = {};
          if (x.type === 'Input') {
            dom = <Input placeholder={placeholder} allowClear {...x} />;
            rules = { max: x.max || 32, message: '搜索内容过长' };
          }
          if (x.type === 'Select') {
            dom = (
              <Select allowClear placeholder={placeholder} {...x}>
                {x.selectdata?.map((y) => (
                  <Option key={y.value}>{y.label}</Option>
                ))}
              </Select>
            );
          }
          if (x.type === 'RangePicker') {
            rules = { type: 'array' };
            dom = (
              <RangePicker
                style={{ width: '100%' }}
                ranges={{
                  '今日': [$$.myMoment(), $$.myMoment()],
                  '本月': [$$.myMoment().startOf('month'), $$.myMoment().endOf('month')],
                }}
                allowClear
                {...x}
              />
            );
          }
          if (x.type === 'TreeSelect') {
            dom = (
              <TreeSelect
                showSearch
                placeholder={placeholder}
                dropdownStyle={{ maxHeight: 500, overflow: 'auto' }}
                treeData={x.treedata}
                treeDefaultExpandAll
                allowClear
                filterTreeNode={(inputValue, treeNode) => (treeNode.label.indexOf(inputValue) !== -1 ? true : false)}
                {...x}
              />
            );
          }
          return (
            <>
              <Col span={8} style={display && { display: searchMore ? 'block' : t < lineNum ? 'block' : 'none' }} key={t + 1}>
                <Form.Item name={x.name} rules={[rules]} label={<div style={{ width: `${fontSize * labelLength}px` }}>{x.label}</div>}>
                  {dom}
                </Form.Item>
              </Col>
              <Col span={8}></Col>
              <Col span={8}></Col>
            </>
      {itemData.map((x, t) => {
        let placeholder = x.placeholder || setPlaceholder(x.name, x.type);
        let allowClear = x.allowClear || true;
        let dom = null;
        let rules = {};
        if (x.type === 'Input') {
          dom = <Input placeholder={placeholder} allowClear {...x} />;
          rules = { max: x.max || 32, message: '搜索内容过长' };
        }
        if (x.type === 'Select') {
          dom = (
            <Select allowClear placeholder={placeholder} {...x}>
              {x.selectdata?.map((y) => (
                <Option key={y.value}>{y.label}</Option>
              ))}
            </Select>
          );
        })}
      </Row>
        }
        if (x.type === 'RangePicker') {
          rules = { type: 'array' };
          dom = (
            <RangePicker
              style={{ width: '100%' }}
              ranges={{
                '今日': [$$.myMoment(), $$.myMoment()],
                '本月': [$$.myMoment().startOf('month'), $$.myMoment().endOf('month')],
              }}
              allowClear
              {...x}
            />
          );
        }
        if (x.type === 'TreeSelect') {
          dom = (
            <TreeSelect
              showSearch
              placeholder={placeholder}
              dropdownStyle={{ maxHeight: 500, overflow: 'auto' }}
              treeData={x.treedata}
              treeDefaultExpandAll
              allowClear
              filterTreeNode={(inputValue, treeNode) => (treeNode.label.indexOf(inputValue) !== -1 ? true : false)}
              {...x}
            />
          );
        }
        return (
          <Row className='tableSearch-searchMore-row' gutter={[24, 16]} style={display && { display: searchMore ? 'block' : t < lineNum ? 'block' : 'none' }}>
            <Col span={x.span || 8} key={t + 1}>
              <Form.Item name={x.name} rules={[rules]} label={<div style={{ width: `${fontSize * labelLength}px` }}>{x.label}</div>}>
                {dom}
              </Form.Item>
            </Col>
          </Row>
          // <div>
          //   <Col span={8} style={display && { display: searchMore ? 'block' : t < lineNum ? 'block' : 'none' }} key={t + 1}>
          //     <Form.Item name={x.name} rules={[rules]} label={<div style={{ width: `${fontSize * labelLength}px` }}>{x.label}</div>}>
          //       {dom}
          //     </Form.Item>
          //   </Col>
          //   <Col span={8}></Col>
          //   <Col span={8}></Col>
          // </div>
        );
      })}
      <Row style={{ marginTop: '16px' }}>
        <Col span={24} style={{ textAlign: 'right' }}>
        <Col span={24} style={{ textAlign: 'left' }}>
          <Button className="public-buttonMargin" onClick={handleReset}>
            重置
          </Button>
@@ -129,7 +135,7 @@
          </Button>
          {display && (
            <span className="tableSearch-searchMore" onClick={() => setSearchMore(!searchMore)}>
              {!searchMore ? '展开' : '折叠'}
              {!searchMore ? '展开更多' : '收起更多'}
              <DownOutlined className={`tableSearch-searchMore-icon ${searchMore && 'tableSearch-searchMore-iconRotate'}`} />
            </span>
          )}
gz-customerSystem/src/components/NewTableSearch/index.less
@@ -13,4 +13,7 @@
    &-iconRotate {
        transform: rotate(180deg);
    }
  &-row {
    margin-bottom: 16px;
  }
}
gz-customerSystem/src/styles/theme.less
@@ -16,7 +16,7 @@
@warning-color: #FA8C16; // 警告色
@warning-bg-color: #fdf6e0; // 警告色背景
@error-color: #F53F3F; // 错误色
@font-size-base: 16px; // 主字号
@font-size-base: 14px; // 主字号
@line-height-base: 1.5715;
@heading-color: rgba(0, 0, 0, 0.85); // 标题色
@text-color: rgba(0, 0, 0, 0.85); // 主文本色
gz-customerSystem/src/views/comprehensive/index.jsx
@@ -8,12 +8,12 @@
import TableView from '../../components/TableView';
import NewTableSearch from '../../components/NewTableSearch';
import MyTabs from '../../components/MyTabs';
import './index.less'
const { Link } = Typography;
// 获取数据
function getMyMediationDataApi(submitData) {
  return $$.ax.request({ url: 'caseTask/pageMyMediate', type: 'get', data: submitData, service: 'mediate' });
function getCaseInfoDataApi(submitData) {
  return $$.ax.request({ url: 'caseInfo/pageQueryAll', type: 'get', data: submitData, service: 'mediate' });
}
function getCacheLatjCaseGuideApi(submitData) {
@@ -34,100 +34,31 @@
  let navigate = useNavigate();
  // 搜索
  const [search, setSearch] = useState({ page: 1, size: 10, pageType: '1', joinRole: '1' });
  const [search, setSearch] = useState({ page: 1, size: 10, });
  // 数据
  const [data, setData] = useState({ tableData: [] });
  // 表头
  const columns = () => {
    const columnOne =
      search.pageType === '3'
        ? [
          {
            title: '调解结果',
            dataIndex: 'mediResultName',
            record: (text, record) =>
              !text ? '-' : <div className={`public-tag public-tag-${record.mediResult === '22_00025-1' ? 'tagGreen' : 'tagRed'}`}>{text}</div>,
          },
        ]
        : [];
    const columnTwo =
      search.pageType === '3'
        ? [{ title: '调解结束时间', dataIndex: 'mediEndTime' }]
        : [
          // TODO:暂时取消,后续可根据需求改动
          // {
          //     title: '处理时限',
          //     dataIndex: 'expireTime',
          //     render: (text, record) => {
          //         let obj = $$.getHours(text);
          //         return record.status === '1' ? (
          //             <span className={obj.isNegativeNum ? 'tableView-dangerTime' : ''}>{!!text ? `${obj.hours}小时` : '-'}</span>
          //         ) : (
          //             '-'
          //         );
          //     },
          // },
        ];
    const columnThree = search.joinRole === '2' ? [{ title: '调解员', dataIndex: 'mediator' }] : [];
    const columnsData = [
      {
        title: '调解案号',
        dataIndex: 'caseNo',
        render: (text, record) => (
          <Space size={0}>
            {record.taskType === '2' && <div className="myMediation-tuiTag">退</div>}
            {record.serieStatus === '2' ? (
              <Space size={4}>
                <FolderFilled className="public-folder" />
                <span>系列案</span>
              </Space>
            ) : (
              <Tooltip placement="topLeft" title={text}>
                {text}
              </Tooltip>
            )}
          </Space>
        ),
      },
      { title: '调解进度', dataIndex: 'processName' },
      ...columnOne,
      { title: '申请人', dataIndex: 'plaintiffs' },
      { title: '被申请人', dataIndex: 'defendants' },
      { title: '纠纷发生地', dataIndex: 'addr' },
      { title: '调解类型', dataIndex: 'mediTypeName' },
      { title: '纠纷类型', dataIndex: 'caseTypeName' },
      { title: '申请渠道', dataIndex: 'canalName' },
      { title: '纠纷受理时间', dataIndex: 'acceptTime' },
      ...columnTwo,
      ...columnThree,
      { title: '协助调解员', width: 100, dataIndex: 'otherMediator' },
      { title: '事项状态', width: 80, dataIndex: 'statusName' },
      { title: '事项来源', width: 80, dataIndex: 'canalName' },
      { title: '事项等级', width: 80, dataIndex: 'caseLevel' },
      { title: '纠纷类型', width: 150, dataIndex: 'caseTypeName' },
      { title: '承办部门', width: 150, dataIndex: 'mediateDeptName' },
      { title: '配合部门', width: 150, dataIndex: 'assistUnitName' },
      { title: '化解结果', width: 80, dataIndex: 'mediResult' },
      { title: '办结时间', width: 80, dataIndex: 'closeTime' },
      // { title: '申请方', dataIndex: 'plaintiffList' },
      // { title: '被申请方', dataIndex: 'defendantList' },
      { title: '登记机构', dataIndex: 'inputUnitName' },
      {
        title: '操作',
        dataIndex: 'action',
        width: 50,
        render: (_, record) => {
          let type = 'check';
          if (search.joinRole === '2') {
            type = 'check'
          } else if (search.joinRole === '1') {
            if (search.pageType == '3') {
              type = 'check';
            } else {
              type = 'handle'
            }
          }
          // if (search.joinRole === '1' && (search.pageType === '1' || search.pageType === '2')) {
          //   type = 'handle';
          // }
          // if (search.joinRole === '2' && (search.pageType === '1' || search.pageType === '2')) {
          //   type = 'feedback';
          // }
          // if (search.joinRole === '2' && search.pageType === '3' && record.feedbackStatus === '1') {
          //   type = 'feedback';
          // }
          return <Link onClick={() => handleJump(type, record)}>{type === 'check' ? '查看' : '调解'}</Link>;
          return <Link onClick={() => handleJump(record)}>详情</Link>;
        },
      },
    ];
@@ -191,7 +122,7 @@
  function handleChangePage(page, pageSize) {
    let paramsObj = Object.assign(search, { page, size: pageSize });
    setSearch(paramsObj);
    getMyMediationData(paramsObj);
    getCaseInfoData(paramsObj);
  }
  // 搜索 or 重置
@@ -204,7 +135,7 @@
      $$.changeTimeFormat(paramsObj, 'mediStartTime', 'mediStartTimeStart', 'mediStartTimeEnd');
    }
    if (type === 'reset') {
      paramsObj = { page: 1, size: 10, pageType: '1', joinRole: '1' };
      paramsObj = { page: 1, size: 10 };
      form.resetFields();
      form.setFieldsValue({ joinRole: '1' });
    }
@@ -222,23 +153,19 @@
      }
      form.setFieldsValue(copyObj);
    }
    getMyMediationData(paramsObj, session?.tableActive);
    getCaseInfoData(paramsObj, session?.tableActive);
  }
  // 获取数据
  async function getMyMediationData(submitData, tableActive) {
  async function getCaseInfoData(submitData, tableActive) {
    global.setSpinning(true);
    const res = await getMyMediationDataApi(submitData);
    const res = await getCaseInfoDataApi(submitData);
    global.setSpinning(false);
    if (res.type) {
      setSearch(submitData);
      setData({
        total: res.data?.dtoPage?.totalElements,
        tableData: res.data?.dtoPage?.content || [],
        tableActive,
        countDtj: res.data.countDtj,
        countTjz: res.data.countTjz,
        countTjjs: res.data.countTjjs,
        total: res.data?.totalElements,
        tableData: res.data?.content || [],
      });
    }
  }
@@ -254,54 +181,56 @@
    }
  }, []);
  const countDtj = (search.pageType === '1' ? data.total : data.countDtj) || 0;
  const countTjz = (search.pageType === '2' ? data.total : data.countTjz) || 0;
  const countTjjs = (search.pageType === '3' ? data.total : data.countTjjs) || 0;
  return (
    <Page pageHead={{ title: '综合查询', subtitle: '管理员名下综合查询列表' }}>
      <div className="myMediation">
        <div className="myMediation-search">
          <div className='comprehensive-title'>查询条件</div>
          <NewTableSearch
            labelLength={6}
            form={form}
            itemData={[
              { type: 'RangePicker', name: 'acceptTime', label: '办结时间' },
              { type: 'RangePicker', name: 'acceptTime', label: '归档时间' },
              { type: 'Input', name: 'defendants', label: '被申请人' },
              { type: 'Input', name: 'caseNo', label: '调解案号' },
              { type: 'Input', name: 'addr', label: '纠纷发生地' },
              { type: 'RangePicker', name: 'acceptTime', label: '办结时间', span: 8 },
              { type: 'RangePicker', name: 'acceptTime', label: '归档时间', span: 8 },
              {
                type: 'Select',
                name: 'joinRole',
                label: '参与角色',
                label: '纠纷类型',
                span: 12,
                selectdata: [
                  { label: '我负责的', value: '1' },
                  { label: '我协助的', value: '2' },
                ],
              },
              { type: 'RangePicker', name: 'mediStartTime', label: '调解开始时间' },
              { type: 'RangePicker', name: 'mediEndTime', label: '调解结束时间' },
              { type: 'Select', name: 'mediResult', label: '调解结果', selectdata: $$.options.mediResult },
              {
                type: 'Select',
                name: 'joinRole',
                label: '承办部门',
                selectdata: [
                  { label: '我负责的', value: '1' },
                  { label: '我协助的', value: '2' },
                ],
              },
              {
                type: 'Select',
                name: 'joinRole',
                label: '登记机构',
                selectdata: [
                  { label: '我负责的', value: '1' },
                  { label: '我协助的', value: '2' },
                ],
              },
              { type: 'Input', name: 'defendants', label: '被申请人' },
              { type: 'Input', name: 'caseNo', label: '调解案号' },
            ]}
            handleReset={() => handleSearch('reset')}
            handleSearch={() => handleSearch('search')}
          />
        </div>
        <div className="pageTabs">
          <MyTabs
            tabs={[
              { key: '1', label: `待调解(${$$.showMoreNum(countDtj)})` },
              { key: '2', label: `调解中(${$$.showMoreNum(countTjz)})` },
              { key: '3', label: `调解结束(${$$.showMoreNum(countTjjs)})` },
            ]}
            activeKey={search.pageType}
            onChange={(activeKey) => getMyMediationData({ ...search, page: 1, size: 10, pageType: activeKey })}
          />
        </div>
        <div className="pageTable">
        <div style={{ marginTop: '8px' }} className="pageTable">
          <TableView
            showHeader
            title="查询结果"
gz-customerSystem/src/views/comprehensive/index.less
@@ -0,0 +1,9 @@
.comprehensive {
    &-title {
        // margin: 0 16px;
    font-size: 16px;
    font-weight: 400;
    color: rgba(0,0,0,0.85);
    margin-bottom: 16px;
    }
}
gz-wxparty/api/api.js
@@ -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/pages/AIAide/index.js
@@ -86,9 +86,10 @@
    let url = e.currentTarget.dataset.url;
    let caseId = e.currentTarget.dataset.caseid;
    let caseType = e.currentTarget.dataset.casetype;
    let caseName = e.currentTarget.dataset.casename;
    wx.navigateTo({
      url: url + '?caseId=' + caseId + '&type=' + caseType,
      url: url + '?caseId=' + caseId + '&type=' + caseType + '&caseName=' + caseName,
    });
  },
gz-wxparty/pages/AIAide/index.wxml
@@ -8,7 +8,7 @@
      <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" bindtap="caseClick" data-caseId="{{item.caseId}}" data-caseName="{{item.caseName}}" 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">
gz-wxparty/pages/AIAideDetail/index.wxml
@@ -1,5 +1,5 @@
<!--pages/AIAideDetail/index.wxml-->
<view class="title">{{data.caseTitle||'-'}}</view>
<view class="title">{{lastData.caseName||'-'}}</view>
<view class="line"></view>
<view class="card" wx:if="{{lastData.type==='1'}}">
  <view class="subtitle">【案件描述】</view>
gz-wxparty/pages/register/index.js
@@ -838,9 +838,9 @@
      this.setData({
        submitData: {
          ...this.data.submitData,
          [this.data.twoKey]: this.data.submitData.caseDes + this.data.twoValue,
          [this.data.twoKey]: this.data.submitData[this.data.twoKey] + this.data.twoValue,
        },
        [this.data.twoKey + 'Num']: (this.data.submitData.caseDes + this.data.twoValue).length,
        [this.data.twoKey + 'Num']: (this.data.submitData[this.data.twoKey] + this.data.twoValue).length,
        twoValue: '',
        twoKey: ''
      })
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;