董国庆
2025-02-22 3370689a21394e4321755b6c0e46304146111c2b
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/H5/threeSide
3个文件已修改
9个文件已添加
978 ■■■■■ 已修改文件
H5/pages.json 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/dispatchWorkOrder/dispatchWorkOrder.vue 342 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages/problemReporting/problemReporting.vue 247 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/static/pop@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
H5/static/position@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
H5/static/warnng@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
management/config/routes.ts 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/package.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/src/pages/setting/career/components/addAndEdit.jsx 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/src/pages/setting/career/index.jsx 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/src/pages/setting/career/service.js 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
management/src/pages/work-order-setting/index.jsx 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/pages.json
@@ -12,13 +12,25 @@
                "navigationBarTitleText": "添加办理进度",
                "navigationBarBackgroundColor": "#ffffff"
            }
        },
        {
        },{
            "path": "pages/work-detail/work-detail",
            "style": {
                "navigationBarTitleText": "诉求详情",
                "navigationBarBackgroundColor": "#ffffff",
                "navigationStyle": "custom"
                "navigationStyle": "custom"}
        },
        {
            "path": "pages/problemReporting/problemReporting",
            "style": {
                "navigationBarTitleText": "问题上报",
                "navigationBarBackgroundColor": "#ffffff"
            }
        },
        {
            "path": "pages/dispatchWorkOrder/dispatchWorkOrder",
            "style": {
                "navigationBarTitleText": "工单下派",
                "navigationBarBackgroundColor": "#ffffff"
            }
        }
    ],
H5/pages/dispatchWorkOrder/dispatchWorkOrder.vue
New file
@@ -0,0 +1,342 @@
<template>
    <view class="problem-report-page">
        <view class="info-cards">
            <view class="info-top">
                <view class="num">诉求号:7843523454</view>
                <view class="status">正在办理</view>
            </view>
            <view class="address">
                <view class="adr">江苏省常州市溧阳市牛顿大道172号</view>
                <image src="/static/position@2x.png" class="w-31 h-31" mode="aspectFill"></image>
            </view>
            <view class="table-head">
                <view class="type flex1">问题类型</view>
                <view class="person flex1">群众</view>
                <view class="phone flex1">联系电话</view>
            </view>
            <view class="table-body">
                <view class="table-item">
                    <view class="type-tip flex1">
                        <view class="tip">
                            教育
                        </view>
                    </view>
                    <view class="person-item flex1">沙振</view>
                    <view class="phone-item flex1">14225874426</view>
                </view>
            </view>
        </view>
        <view class="input-card">
            <view class="title mb-27">
                上报说明
            </view>
            <u--textarea style="background-color:rgba(248, 248, 248, 1);border: unset;padding:25rpx 30.77rpx;"
                height="365.38rpx" v-model="content" placeholder="请输入内容"></u--textarea>
        </view>
        <view class="notice-tip flex a-center ">
            <image src="/static/warnng@2x.png" class="w-31 h-31 mr-15" mode="aspectFill"></image>
            提交后会由上级部门进行审核,请留意审核结果
        </view>
        <view class="btn">下派至下级部门</view>
        <u-popup round="19rpx" :show="showPop" mode="center" @close="close" @open="open">
            <view class="popup-content">
                <view class="title-pop">请选择下派单位</view>
                <view class="pop-label">社区:</view>
                <view class="pop-select">
                    请选择
                </view>
                <view class="botton-btn">
                    <view class="cancle">取消</view>
                    <view class="sure">确定</view>
                </view>
            </view>
        </u-popup>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                content: '',
                showPop: false,
            };
        }
    }
</script>
<style lang="scss" scoped>
    .problem-report-page {
        padding-top: 38.46rpx;
        margin: 0 30.77rpx;
        .info-cards {
            padding: 21.15rpx 26.92rpx 36.54rpx 26.92rpx;
            background: #FFFFFF;
            box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1);
            background: linear-gradient(180deg, #FFDCDB 0%, rgba(255, 255, 255, 0) 100%);
            border-radius: 19rpx;
            .info-top {
                display: flex;
                justify-content: space-between;
                align-items: center;
                .num {
                    font-family: PingFangSC, PingFang SC;
                    font-weight: 600;
                    font-size: 23rpx;
                    color: rgba(0, 0, 0, 0.88);
                    line-height: 33rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
                .status {
                    font-family: PingFangSC, PingFang SC;
                    font-weight: 600;
                    font-size: 23rpx;
                    color: #FF4948;
                    line-height: 33rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
            }
            .address {
                margin: 32.69rpx 13.46rpx 30.77rpx 13.46rpx;
                display: flex;
                justify-content: space-between;
                // height: 106rpx;
                background: linear-gradient(270deg, rgba(255, 241, 0, 0.5) 0%, rgba(255, 249, 172, 0.25) 48%, rgba(255, 255, 255, 0.2) 100%, #FFFFFF 100%);
                box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1);
                border-radius: 19rpx;
                align-items: center;
                padding: 38.46rpx 26.92rpx 36.54rpx 26.92rpx;
                .adr {
                    font-family: PingFangSC, PingFang SC;
                    font-weight: 500;
                    font-size: 27rpx;
                    color: #000000;
                    line-height: 38rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
            }
            .table-head {
                display: flex;
                text-align: center;
                .type {
                    text-align: left;
                    font-family: PingFangSC, PingFang SC;
                    font-weight: 500;
                    font-size: 27rpx;
                    color: #000000;
                    line-height: 38rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
                .person {
                    font-family: PingFangSC, PingFang SC;
                    font-weight: 500;
                    font-size: 27rpx;
                    color: #000000;
                    line-height: 38rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
                .phone {
                    font-family: PingFang-SC, PingFang-SC;
                    font-weight: 500;
                    font-size: 27rpx;
                    color: #000000;
                    line-height: 38rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
            }
            .table-item {
                display: flex;
                display: flex;
                text-align: center;
                margin-top: 8rpx;
                .tip {
                    width: calc(108rpx - 30.77rpx - 30.77rpx);
                    font-family: PingFangSC, PingFang SC;
                    font-weight: 400;
                    font-size: 23rpx;
                    color: #FAAD14;
                    line-height: 38rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                    padding: 1.92rpx 30.77rpx;
                    background: #FFFBE6;
                    box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1);
                    border-radius: 8rpx;
                    border: 2rpx solid #FFF1B8;
                }
                .person-item {
                    font-family: PingFang-SC, PingFang-SC;
                    font-weight: 500;
                    font-size: 27rpx;
                    color: #000000;
                    line-height: 38rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
                .phone-item {
                    font-family: PingFang-SC, PingFang-SC;
                    font-weight: 500;
                    font-size: 27rpx;
                    color: #000000;
                    line-height: 38rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
            }
        }
        .input-card {
            // width: 688rpx;
            min-height: calc(504rpx - 34.62rpx - 38.46rpx);
            padding: 34.62rpx 30.77rpx 38.46rpx 30.77rpx;
            border-radius: 19rpx;
            background: #FFFFFF;
            box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1);
            margin-top: 38.46rpx;
            .title {
                font-family: PingFangSC, PingFang SC;
                font-weight: 600;
                font-size: 27rpx;
                color: rgba(0, 0, 0, 0.88);
                line-height: 38rpx;
                text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
            }
        }
        .notice-tip {
            margin-top: 38.46rpx;
            font-family: PingFangSC, PingFang SC;
            font-weight: 400;
            font-size: 27rpx;
            color: #FF4948;
            line-height: 42rpx;
        }
        .btn {
            position: fixed;
            bottom: calc(38.46rpx + env(safe-area-inset-bottom));
            left: 0;
            right: 0;
            width: 688rpx;
            height: 96rpx;
            background: linear-gradient(270deg, #FC8D55 0%, #FF4948 100%);
            border-radius: 48rpx;
            margin: 0 auto;
            display: flex;
            justify-content: center;
            align-items: center;
            font-family: PingFangSC, PingFang SC;
            font-weight: 600;
            font-size: 35rpx;
            color: #FFFFFF;
        }
    }
    .popup-content {
        background: url('/static/pop@2x.png') no-repeat center center;
        width: 576.92rpx;
        height: 425rpx;
        border-radius: 19rpx;
        .title-pop {
            font-family: PingFangSC, PingFang SC;
            font-weight: 600;
            font-size: 35rpx;
            color: rgba(0, 0, 0, 0.8);
            line-height: 35rpx;
            text-align: center;
            margin-top: 46.15rpx;
        }
        .pop-label {
            font-family: PingFang-SC, PingFang-SC;
            font-weight: 500;
            font-size: 31rpx;
            color: rgba(0, 0, 0, 0.6);
            margin-top: 46.15rpx;
            margin-left: 64.54rpx;
        }
        .pop-select {
            height: 77rpx;
            background: #FFFFFF;
            border-radius: 15rpx;
            border: 2rpx solid rgba(0, 0, 0, 0.15);
            margin-left: 61.54rpx;
            margin-top: 19.23rpx;
            margin-right: 61.54rpx;
            display: flex;
            align-items: center;
            padding-left: 30.77rpx;
            font-family: PingFangSC, PingFang SC;
            font-weight: 400;
            font-size: 31rpx;
            color: rgba(0, 0, 0, 0.24);
            cursor: pointer;
        }
        .botton-btn {
            display: flex;
            margin-top: 44.23rpx;
            justify-content: center;
        }
        .cancle {
            width: 212rpx;
            height: 77rpx;
            border-radius: 48rpx;
            border: 2rpx solid rgba(0, 0, 0, 0.8);
            font-family: PingFangSC, PingFang SC;
            font-weight: 500;
            font-size: 27rpx;
            color: rgba(0, 0, 0, 0.8);
            display: flex;
            justify-content: center;
            align-items: center;
            margin-right: 32.69rpx;
            cursor: pointer;
        }
        .sure {
            width: 212rpx;
            height: 77rpx;
            background: linear-gradient(270deg, #FC8D55 0%, #FF4948 100%);
            border-radius: 48rpx;
            display: flex;
            justify-content: center;
            align-items: center;
            font-family: PingFangSC, PingFang SC;
            font-weight: 600;
            font-size: 27rpx;
            color: #FFFFFF;
            cursor: pointer;
        }
    }
</style>
H5/pages/problemReporting/problemReporting.vue
New file
@@ -0,0 +1,247 @@
<template>
    <view class="problem-report-page">
        <view class="info-cards">
            <view class="info-top">
                <view class="num">诉求号:7843523454</view>
                <view class="status">正在办理</view>
            </view>
            <view class="address">
                <view class="adr">江苏省常州市溧阳市牛顿大道172号</view>
                <image src="/static/position@2x.png" class="w-31 h-31" mode="aspectFill"></image>
            </view>
            <view class="table-head">
                <view class="type flex1">问题类型</view>
                <view class="person flex1">群众</view>
                <view class="phone flex1">联系电话</view>
            </view>
            <view class="table-body">
                <view class="table-item">
                    <view class="type-tip flex1">
                        <view class="tip">
                            教育
                        </view>
                    </view>
                    <view class="person-item flex1">沙振</view>
                    <view class="phone-item flex1">14225874426</view>
                </view>
            </view>
        </view>
        <view class="input-card">
            <view class="title mb-27">
                上报说明
            </view>
            <u--textarea style="background-color:rgba(248, 248, 248, 1);border: unset;padding:25rpx 30.77rpx;"
                height="365.38rpx" v-model="content" placeholder="请输入内容"></u--textarea>
        </view>
        <view class="notice-tip flex a-center ">
            <image src="/static/warnng@2x.png" class="w-31 h-31 mr-15" mode="aspectFill"></image>
            提交后会由上级部门进行审核,请留意审核结果
        </view>
        <view class="btn">提交至上级部门</view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                content: '',
            };
        }
    }
</script>
<style lang="scss" scoped>
    .problem-report-page {
        padding-top: 38.46rpx;
        margin: 0 30.77rpx;
        .info-cards {
            padding: 21.15rpx 26.92rpx 36.54rpx 26.92rpx;
            background: #FFFFFF;
            box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1);
            background: linear-gradient(180deg, #FFDCDB 0%, rgba(255, 255, 255, 0) 100%);
            border-radius: 19rpx;
            .info-top {
                display: flex;
                justify-content: space-between;
                align-items: center;
                .num {
                    font-family: PingFangSC, PingFang SC;
                    font-weight: 600;
                    font-size: 23rpx;
                    color: rgba(0, 0, 0, 0.88);
                    line-height: 33rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
                .status {
                    font-family: PingFangSC, PingFang SC;
                    font-weight: 600;
                    font-size: 23rpx;
                    color: #FF4948;
                    line-height: 33rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
            }
            .address {
                margin: 32.69rpx 13.46rpx 30.77rpx 13.46rpx;
                display: flex;
                justify-content: space-between;
                // height: 106rpx;
                background: linear-gradient(270deg, rgba(255, 241, 0, 0.5) 0%, rgba(255, 249, 172, 0.25) 48%, rgba(255, 255, 255, 0.2) 100%, #FFFFFF 100%);
                box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1);
                border-radius: 19rpx;
                align-items: center;
                padding: 38.46rpx 26.92rpx 36.54rpx 26.92rpx;
                .adr {
                    font-family: PingFangSC, PingFang SC;
                    font-weight: 500;
                    font-size: 27rpx;
                    color: #000000;
                    line-height: 38rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
            }
            .table-head {
                display: flex;
                text-align: center;
                .type {
                    text-align: left;
                    font-family: PingFangSC, PingFang SC;
                    font-weight: 500;
                    font-size: 27rpx;
                    color: #000000;
                    line-height: 38rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
                .person {
                    font-family: PingFangSC, PingFang SC;
                    font-weight: 500;
                    font-size: 27rpx;
                    color: #000000;
                    line-height: 38rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
                .phone {
                    font-family: PingFang-SC, PingFang-SC;
                    font-weight: 500;
                    font-size: 27rpx;
                    color: #000000;
                    line-height: 38rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
            }
            .table-item {
                display: flex;
                display: flex;
                text-align: center;
                margin-top: 8rpx;
                .tip {
                    width: calc(108rpx - 30.77rpx - 30.77rpx);
                    font-family: PingFangSC, PingFang SC;
                    font-weight: 400;
                    font-size: 23rpx;
                    color: #FAAD14;
                    line-height: 38rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                    padding: 1.92rpx 30.77rpx;
                    background: #FFFBE6;
                    box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1);
                    border-radius: 8rpx;
                    border: 2rpx solid #FFF1B8;
                }
                .person-item {
                    font-family: PingFang-SC, PingFang-SC;
                    font-weight: 500;
                    font-size: 27rpx;
                    color: #000000;
                    line-height: 38rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
                .phone-item {
                    font-family: PingFang-SC, PingFang-SC;
                    font-weight: 500;
                    font-size: 27rpx;
                    color: #000000;
                    line-height: 38rpx;
                    text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
                }
            }
        }
        .input-card {
            // width: 688rpx;
            min-height: calc(504rpx - 34.62rpx - 38.46rpx);
            padding: 34.62rpx 30.77rpx 38.46rpx 30.77rpx;
            border-radius: 19rpx;
            background: #FFFFFF;
            box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1);
            margin-top: 38.46rpx;
            .title {
                font-family: PingFangSC, PingFang SC;
                font-weight: 600;
                font-size: 27rpx;
                color: rgba(0, 0, 0, 0.88);
                line-height: 38rpx;
                text-shadow: 0px 0px 27px rgba(0, 0, 0, 0.1);
            }
        }
        .notice-tip {
            margin-top: 38.46rpx;
            font-family: PingFangSC, PingFang SC;
            font-weight: 400;
            font-size: 27rpx;
            color: #FF4948;
            line-height: 42rpx;
        }
        .btn {
            position: fixed;
            bottom: calc(38.46rpx + env(safe-area-inset-bottom));
            left: 0;
            right: 0;
            width: 688rpx;
            height: 96rpx;
            background: linear-gradient(270deg, #FC8D55 0%, #FF4948 100%);
            border-radius: 48rpx;
            margin: 0 auto;
            display: flex;
            justify-content: center;
            align-items: center;
            font-family: PingFangSC, PingFang SC;
            font-weight: 600;
            font-size: 35rpx;
            color: #FFFFFF;
        }
    }
</style>
H5/static/pop@2x.png
H5/static/position@2x.png
H5/static/warnng@2x.png
management/config/routes.ts
@@ -33,4 +33,29 @@
      },
    ],
  },
  {
    path: '/setting',
    layout: false,
    name:'系统设置',
    routes: [
      {
        name: '职位管理',
        path: '/career',
        component: './setting/career',
      },
    ],
  },
  {
    path: '/work-order',
    layout: false,
    name:'工单事项管理',
    routes: [
      {
        name: '工单事项配置',
        path: '/configuration',
        component: './work-order-settimg/configuration',
      },
    ],
  },
];
management/package.json
@@ -80,4 +80,4 @@
  "engines": {
    "node": ">=12.0.0"
  }
}
}
management/src/pages/setting/career/components/addAndEdit.jsx
New file
@@ -0,0 +1,72 @@
import { Form, Input, Modal,Button } from 'antd';
import { forwardRef, useImperativeHandle, useState } from 'react';
const formItemLayout = {
  labelCol: { span: 7 },
  wrapperCol: { span: 12 },
};
const AddEditView = ({ visible, onSave, onUpdate, onCancel }, ref) => {
  const [form] = Form.useForm();
  const [editData, setEditData] = useState({});
  const [rolesList, setRolesList] = useState();
  /**
   * 确定按钮事件
   */
  const okHandle = () => {
    form.validateFields().then((values) => {
      if (editData.deptId) {
        values.deptId = editData.deptId;
        onUpdate(values);
      } else {
        onSave(values);
      }
    });
  };
  useImperativeHandle(ref, () => {
    return {
      refreshData: (data) => {
        form.resetFields();
        form.setFieldsValue(data);
        setEditData(data);
      },
      clean: () => {
        form.resetFields();
      },
    };
  });
  return (
    <Modal
      getContainer={false}
      width="25%"
      destroyOnClose
      title={editData.deptId ? '编辑职位' : '添加职位'}
      open={visible}
      onCancel={() => onCancel(false)}
      footer={[
        <Button key="back" onClick={() => onCancel(false)}>
          关闭
        </Button>,
        <Button key="submit" type="primary" onClick={okHandle}>
          确认
        </Button>
      ]}
    >
      <Form layout="horizontal" {...formItemLayout} form={form} initialValues={{ isAuctioneer: 1 }}>
        <Form.Item
          name="deptName"
          required
          label="职位名称"
          rules={[{ required: true, message: '请输入职位名称' }]}
        >
          <Input placeholder="请输入职位名称" />
        </Form.Item>
      </Form>
    </Modal>
  );
};
export default forwardRef(AddEditView);
management/src/pages/setting/career/index.jsx
New file
@@ -0,0 +1,109 @@
import { buildProTableDataSource, sendRequest, showDelConfirm } from '@/utils/antdUtils';
import { PageContainer, ProTable } from '@ant-design/pro-components';
import { Button, InputNumber, Select, Space } from 'antd';
import { useRef, useState } from 'react';
import { Access, useAccess } from 'umi';
import AddAndEdit from './components/addAndEdit';
import { add, edit, del, getList, updateStatus, resetPaswword } from './service';
const Account = () => {
  const actionRef = useRef();
  const addViewRef = useRef();
  const [modalVisible, handleModalVisible] = useState(false);
  const access = useAccess();
  const columns = [
    {
      title: '职位名称',
      dataIndex: 'deptName',
    },
    {
      title: '操作',
      hideInSearch: true,
      render: (text, record) => {
        return (
          <Space>
            {
              !record.admin &&
              <Button
                type="link"
                onClick={() => {
                  addViewRef.current.refreshData(record);
                  handleModalVisible(true);
                }}
              >
                编辑
              </Button>
            }
            {
              !record.admin &&
              <Button
                type="link"
                onClick={() => {
                  showDelConfirm(async () => {
                    let status = await sendRequest(del, record.deptId);
                    if (status) {
                      actionRef.current.reload();
                    }
                  }, '确认删除所选信息吗?');
                }}
              >
                删除
              </Button>
            }
          </Space>
        );
      },
    },
  ];
  return (
    <div>
      <PageContainer header={{
          breadcrumb: {},
        }}>
        <ProTable
          rowKey="id"
          actionRef={actionRef}
          columns={columns}
          pagination={false}
          request={async(params) => {
            return await buildProTableDataSource(getList, params);
          }}
          toolBarRender={(action, selectRows) => [
            <Space>
              <Button
                type="primary"
                onClick={() => {
                  addViewRef.current.refreshData({});
                  handleModalVisible(true);
                }}
              >
                添加
              </Button>
            </Space>,
          ]}
        />
        <AddAndEdit
          ref={addViewRef}
          visible={modalVisible}
          onCancel={() => handleModalVisible(false)}
          onSave={async (fileds) => {
            const success = await sendRequest(add, fileds);
            if (success) {
              handleModalVisible(false);
              actionRef.current.reload();
            }
          }}
          onUpdate={async (fileds) => {
            const success = await sendRequest(edit, fileds);
            if (success) {
              handleModalVisible(false);
              actionRef.current.reload();
            }
          }}
        />
      </PageContainer>
    </div>
  );
};
export default Account;
management/src/pages/setting/career/service.js
New file
@@ -0,0 +1,34 @@
import { request } from '@umijs/max';
// 分页获取部门列表
export const getList = async (data) => {
    return request(`/system/dept/list`, {
        method: 'GET',
        params:data
    });
}
// 新增部门
export const add = async (data) => {
    return request('/system/dept', {
        method: 'POST',
        data,
    });
}
// 修改部门
export const edit = async (data) => {
    return request('/system/dept', {
        method: 'PUT',
        data
    });
}
// 删除部门管理
export const del = async (data) => {
    return request(`/system/dept/${data}`, {
        method: 'DELETE',
    });
}
management/src/pages/work-order-setting/index.jsx
New file
@@ -0,0 +1,129 @@
import { showDelConfirm } from '@/utils/antdUtils';
import { PageContainer, ProTable } from '@ant-design/pro-components';
import { Button, Space, Form, InputNumber, Card } from 'antd';
import { useRef, useState, useEffect } from 'react';
import { Access, useAccess } from 'umi';
import { sendRequest } from '@/utils/antdUtils';
// import AddAndEdit from './components/addAndEdit';
// import { getConfig, saveConfig } from './service';
const TabPane = Tabs.TabPane;
const Account = () => {
    const actionRef = useRef();
    const addViewRef = useRef();
    const addViewRef1 = useRef();
    const [form] = Form.useForm();
    const [tab, setTab] = useState('1');
    const [modalVisible, handleModalVisible] = useState(false);
    const [selectedRowKeys, setSelectedRowKeys] = useState([]);
    const changeStatusRef = useRef();
    const [addWarnVisible, handleAddWarnVisible] = useState(false);
    const { RangePicker } = DatePicker;
    const [dataSource, setDataSource] = useState([]);
    const [data, setData] = useState([]);
    const access = useAccess();
    useEffect(() => {
    }, [])
    const save = () => {
        form.validateFields().then(async (values) => {
        });
    };
    return (
        <div>
            <PageContainer
                header={{
                    title: '述求事项配置',
                    breadcrumb: {},
                }}
            >
                <Card>
                    <Form scrollToFirstError form={form}>
                        <Card>
                            <div><span style={{ fontSize: '14px', fontWeight: 600 }}>*诉求处理时间配置:
                            </span><span style={{ marginLeft: 8, color: '#a5a5a5' }}>超过时间未处理诉求,系统自动对该事件承办者发送短信提醒,并知会至上一级管理层进行督办。
                                </span></div>
                            <Form.Item label="市级账号" name="isAuctioneer" rules={
                                [{ required: true, message: '请输入市级账号' }]
                            }>
                                <InputNumber precision={0} min={0} addonAfter="天内"  ></InputNumber>
                            </Form.Item>
                            <Form.Item label="区县账号" name="isAuctioneer" rules={
                                [{ required: true, message: '请输入区县账号' }]
                            }>
                                <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber>
                            </Form.Item>
                            <Form.Item label="街道账号" name="isAuctioneer" rules={
                                 [{ required: true, message: '请输入街道账号' }]
                            }>
                                <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber>
                            </Form.Item>
                            <Form.Item label="社区账号" name="isAuctioneer" rules={
                                [{ required: true, message: '请输入社区账号' }]
                            }>
                                <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber>
                            </Form.Item>
                            <Form.Item label="党员账号" name="isAuctioneer" rules={
                                  [{ required: true, message: '请输入党员账号' }]
                            }>
                                <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber>
                            </Form.Item>
                        </Card>
                        <Card>
                            <div><span style={{ fontSize: '14px', fontWeight: 600 }}>*时限临期提醒配置:
                            </span><span style={{ marginLeft: 8, color: '#a5a5a5' }}>超过时间未处理诉求,系统自动对该事件承办者发送短信提醒,并知会至上一级管理层进行督办。
                                </span></div>
                                <Form.Item label="市级账号" name="isAuctioneer" rules={
                                [{ required: true, message: '请输入市级账号' }]
                            }>
                                <InputNumber precision={0} min={0} addonAfter="天内"  ></InputNumber>
                            </Form.Item>
                            <Form.Item label="区县账号" name="isAuctioneer" rules={
                                [{ required: true, message: '请输入区县账号' }]
                            }>
                                <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber>
                            </Form.Item>
                            <Form.Item label="街道账号" name="isAuctioneer" rules={
                                 [{ required: true, message: '请输入街道账号' }]
                            }>
                                <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber>
                            </Form.Item>
                            <Form.Item label="社区账号" name="isAuctioneer" rules={
                                [{ required: true, message: '请输入社区账号' }]
                            }>
                                <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber>
                            </Form.Item>
                            <Form.Item label="党员账号" name="isAuctioneer" rules={
                                  [{ required: true, message: '请输入党员账号' }]
                            }>
                                <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber>
                            </Form.Item>
                        </Card>
                        <Card>
                            <div><span style={{ fontSize: '14px', fontWeight: 600 }}>*诉求处理时间:
                            </span><span style={{ marginLeft: 8, color: '#a5a5a5' }}>超过时间未处理诉求,系统自动对该事件承办者发送短信提醒,并知会至上一级管理层进行督办。
                                </span></div>
                            <Form.Item label="添加后处理时间" name="isAuctioneer" rules={
                                [{ required: true, message: '请输入添加后处理时间' }]
                            }>
                                <InputNumber precision={0} min={0} addonAfter="天内" ></InputNumber>
                            </Form.Item>
                        </Card>
                    </Form>
                </Card>
            </PageContainer>
        </div>
    );
};
export default Account;