+            
                  { finishedProductTable = c; }}
                     style={{ width: "100% ", overflow: "auto", height: '760px' }}
-                    rowKey="id"
+                    rowKey='id'
                     onReset={(v) => {
                         const { id } = depMessage[0]
                         console.log(id)
@@ -162,7 +320,7 @@ const InForTable = (props) => {
                         },
                     }}
                     columns={columns}
-                    options={false}
+
                     dataSource={(counts || {}).rows || []}
                     request={async (params) => {
                         const query = {
@@ -194,6 +352,7 @@ const InForTable = (props) => {
                             
                         ],
                     }}
+
                 >
                  
 
diff --git a/web/client/src/sections/fillion/components/protable.less b/web/client/src/sections/fillion/components/protable.less
index be3408c0..79869a9f 100644
--- a/web/client/src/sections/fillion/components/protable.less
+++ b/web/client/src/sections/fillion/components/protable.less
@@ -6,4 +6,13 @@
     background-color: #ffffff !important;
   }
  
+}
+.spilce{
+  .split-row-select-active {
+    background-color: #e6f7ff;
+  }
+}
+.card-protable{display: flex;
+  flex-direction:row;
+  width: 100%;
 }
\ No newline at end of file
diff --git a/web/client/src/sections/fillion/components/publicTable.js b/web/client/src/sections/fillion/components/publicTable.js
index c0d1ff6a..d0aba20d 100644
--- a/web/client/src/sections/fillion/components/publicTable.js
+++ b/web/client/src/sections/fillion/components/publicTable.js
@@ -17,23 +17,24 @@ const PublicTable = (props) => {
         setRegionId(user.departmentId)
     }, [user])
     const [activeKey, setActiveKey] = useState('tab1');
-    // const renderBadge = (count, active = false) => {
-    //     return (
-    //         
-    //     );
-    // };
     const columns = {
         tab1: [
             {
-                title: '路线名称',
+                title: '公司',
+                 search: false,
+                dataIndex: 'containers',
+
+                fixed: 'left',
+                width: 120,
+                render: (dom, record) => {
+                    return record.address
+                },
+                fieldProps: {
+                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
+                }
+            },
+            {
+                title: '车队',
                 dataIndex: 'placeName',
                 fixed: 'left',
                 width: 120,
@@ -43,26 +44,12 @@ const PublicTable = (props) => {
                     onChange: (value, cs) => {
                         setSitename(value.currentTarget.value)
                     },
-                    placeholder: '请输入道路名称进行搜索',
+                    placeholder: '请输入所属车队',
                     getPopupContainer: (triggerNode) => triggerNode.parentNode,
                 },
             },
             {
-                title: '路线代码',
-                search: false,
-                dataIndex: 'containers',
-
-                fixed: 'left',
-                width: 120,
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            },
-            {
-                title: '路段序号',
+                title: '车队长',
                 search: false,
                 dataIndex: 'time2',
                 valueType: 'dateRange',
@@ -76,7 +63,7 @@ const PublicTable = (props) => {
                 }
             },
             {
-                title: '乡镇编码',
+                title: '副车队长',
                 search: false,
                 dataIndex: 'time3',
                 valueType: 'dateRange',
@@ -91,7 +78,7 @@ const PublicTable = (props) => {
                     getPopupContainer: (triggerNode) => triggerNode.parentNode,
                 }
             }, {
-                title: '起点地名',
+                title: '办公地点',
                 search: false,
                 dataIndex: 'time4',
                 valueType: 'dateRange',
@@ -105,7 +92,7 @@ const PublicTable = (props) => {
                     getPopupContainer: (triggerNode) => triggerNode.parentNode,
                 }
             }, {
-                title: '起点桩号',
+                title: '线路名称',
                 search: false,
                 dataIndex: 'time5',
                 valueType: 'dateRange',
@@ -119,7 +106,7 @@ const PublicTable = (props) => {
                     getPopupContainer: (triggerNode) => triggerNode.parentNode,
                 }
             }, {
-                title: '起点分界点类别',
+                title: '线路类型',
                 search: false,
                 dataIndex: 'time6',
                 valueType: 'dateRange',
@@ -132,238 +119,106 @@ const PublicTable = (props) => {
                 fieldProps: {
                     getPopupContainer: (triggerNode) => triggerNode.parentNode,
                 }
-            }, {
-                title: '止点地名',
-                search: false,
-                dataIndex: 'time7',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 120,
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '止点分界点类别',
-                search: false,
-                dataIndex: 'time8',
-                valueType: 'dateRange',
-                initialValue: day,
-
+            }, 
+            {
+                title: '操作',
+                dataIndex: 'creatTime',
+                valueType: 'dateTimeRange',
+                hideInSearch: true,
                 width: 120,
+                fixed: 'right',
                 render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '止点桩号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路段类型',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路网调整前路线编码',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '原路段序号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '原路段起点桩号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '原路段止点桩号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路线等级',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路段性质',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
+                    return 
 
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
                 }
-            }, {
-                title: '建成时间',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
+            },
+            {
+                key: "direction",
+                hideInTable: true,
+                dataIndex: "direction",
+                order: 6,
+                renderFormItem: (item, { type, defaultRender, ...rest }, form) => {
+                    return (
+                        
 
+                            
+                        
 
-                width: 140,
 
-                render: (dom, record) => {
-                    return record.address
+                    );
                 },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '改建时间',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
+            },
+        ], tab2: [
+            {
+                title: '所属公司',
+                 search: false,
+                dataIndex: 'containers',
 
+                fixed: 'left',
+                width: 120,
                 render: (dom, record) => {
                     return record.address
                 },
                 fieldProps: {
                     getPopupContainer: (triggerNode) => triggerNode.parentNode,
                 }
-            }, {
-                title: '建设性质',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
+            },
+            {
+                title: '所属车队',
+                dataIndex: 'placeName',
+                fixed: 'left',
+                width: 120,
+                options: 1,
+                backgroundColor: "#ffffff",
+                // render: (dom, record) => {
+                //     return record.address
+                // },
                 fieldProps: {
+                    onChange: (value, cs) => {
+                        setSitename(value.currentTarget.value)
+                    },
+                    placeholder: '请输入所属车队',
                     getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '最近一次修复养护年度',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
                 },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: 'GBM及文明样板路',
+            },
+            {
+                title: '所属线路',
                 search: false,
-                dataIndex: 'time9',
+                dataIndex: 'time2',
                 valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
+                // align: 'right',
+                width: 120,
                 render: (dom, record) => {
                     return record.address
                 },
                 fieldProps: {
                     getPopupContainer: (triggerNode) => triggerNode.parentNode,
                 }
-            }, {
-                title: '地貌',
+            },
+            {
+                title: '车辆编号',
                 search: false,
-                dataIndex: 'time9',
+                dataIndex: 'time3',
                 valueType: 'dateRange',
                 initialValue: day,
 
-                width: 140,
 
+                width: 120,
                 render: (dom, record) => {
                     return record.address
                 },
@@ -371,14 +226,13 @@ const PublicTable = (props) => {
                     getPopupContainer: (triggerNode) => triggerNode.parentNode,
                 }
             }, {
-                title: '收费性质',
+                title: '车辆牌照号',
                 search: false,
-                dataIndex: 'time9',
+                dataIndex: 'time4',
                 valueType: 'dateRange',
                 initialValue: day,
 
-                width: 140,
-
+                width: 120,
                 render: (dom, record) => {
                     return record.address
                 },
@@ -386,14 +240,13 @@ const PublicTable = (props) => {
                     getPopupContainer: (triggerNode) => triggerNode.parentNode,
                 }
             }, {
-                title: '所属收费站',
+                title: '运营类别',
                 search: false,
-                dataIndex: 'time9',
+                dataIndex: 'time5',
                 valueType: 'dateRange',
                 initialValue: day,
 
-                width: 140,
-
+                width: 120,
                 render: (dom, record) => {
                     return record.address
                 },
@@ -401,1919 +254,20 @@ const PublicTable = (props) => {
                     getPopupContainer: (triggerNode) => triggerNode.parentNode,
                 }
             }, {
-                title: '涵洞数量',
+                title: '已使用年限',
                 search: false,
-                dataIndex: 'time9',
+                dataIndex: 'time6',
                 valueType: 'dateRange',
                 initialValue: day,
 
-                width: 140,
-
+                width: 120,
                 render: (dom, record) => {
                     return record.address
                 },
                 fieldProps: {
                     getPopupContainer: (triggerNode) => triggerNode.parentNode,
                 }
-            }, {
-                title: '技术等级',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路面类型',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '面层厚度(厘米)',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路面宽度',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路基宽度',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '是否晴雨通车',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '车道特征',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '设计时速',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '是否城管路段',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '管养单位',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路政管理单位',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '列养情况',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '列养资金来源',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '养护时间',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '可绿化里程',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '已绿化里程',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '重复道路路段类型',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '重复路段序号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '重复路段路线编码',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划资金类别',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划年度',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划文号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划项目唯一编码',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划项目路线编码',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划项目名称',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划项目类型',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '完工情况',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '完工年度',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划资金类别',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划年度',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划文号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划项目唯一编码',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划项目名称',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '完工情况',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '完工年度',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '桩号范围',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '填报单位',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '变更原因',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '变更时间',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '是否按干线公路管理接养',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '备注',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '上年路线编码',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '上年路线名称',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '上年起点桩号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '上年止点桩号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '图形里程',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '桩号里程',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '所在区县',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '所在地市',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            },
-            {
-                title: '操作',
-                dataIndex: 'creatTime',
-                valueType: 'dateTimeRange',
-                hideInSearch: true,
-                width: 120,
-                fixed: 'right',
-                render: (dom, record) => {
-                    return 
-
-                }
-            },
-            {
-                key: "direction",
-                hideInTable: true,
-                dataIndex: "direction",
-                order: 6,
-                renderFormItem: (item, { type, defaultRender, ...rest }, form) => {
-                    return (
-                        
 
-                            
-                        
-
-
-                    );
-                },
-            },
-        ], tab2: [
-            {
-                title: '路线名称',
-                dataIndex: 'placeName',
-                fixed: 'left',
-                width: 120,
-                options: 1,
-                backgroundColor: "#ffffff",
-                fieldProps: {
-                    onChange: (value, cs) => {
-                        setSitename(value.currentTarget.value)
-                    },
-                    placeholder: '请输入道路名称进行搜索',
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                },
-            },
-            {
-                title: '路线代码',
-                search: false,
-                dataIndex: 'containers',
-
-                fixed: 'left',
-                width: 120,
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            },
-            {
-                title: '路段序号',
-                search: false,
-                dataIndex: 'time2',
-                valueType: 'dateRange',
-                // align: 'right',
-                width: 120,
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            },
-            {
-                title: '乡镇编码',
-                search: false,
-                dataIndex: 'time3',
-                valueType: 'dateRange',
-                initialValue: day,
-
-
-                width: 120,
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '起点地名',
-                search: false,
-                dataIndex: 'time4',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 120,
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '起点桩号',
-                search: false,
-                dataIndex: 'time5',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 120,
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '起点分界点类别',
-                search: false,
-                dataIndex: 'time6',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 120,
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '止点地名',
-                search: false,
-                dataIndex: 'time7',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 120,
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '止点分界点类别',
-                search: false,
-                dataIndex: 'time8',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 120,
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '止点桩号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路段类型',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路网调整前路线编码',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '原路段序号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '原路段起点桩号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '原路段止点桩号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路线等级',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路段性质',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '建成时间',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '改建时间',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '建设性质',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '最近一次修复养护年度',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: 'GBM及文明样板路',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '地貌',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '收费性质',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '所属收费站',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '涵洞数量',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '技术等级',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路面类型',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '面层厚度(厘米)',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路面宽度',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路基宽度',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '是否晴雨通车',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '车道特征',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '设计时速',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '是否城管路段',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '管养单位',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '路政管理单位',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '列养情况',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '列养资金来源',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '养护时间',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '可绿化里程',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '已绿化里程',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '重复道路路段类型',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '重复路段序号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '重复路段路线编码',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划资金类别',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划年度',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划文号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划项目唯一编码',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划项目路线编码',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划项目名称',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划项目类型',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '完工情况',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '完工年度',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划资金类别',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划年度',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划文号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划项目唯一编码',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '计划项目名称',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '完工情况',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '完工年度',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '桩号范围',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '填报单位',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '变更原因',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '变更时间',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '是否按干线公路管理接养',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '备注',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '上年路线编码',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '上年路线名称',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '上年起点桩号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '上年止点桩号',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '图形里程',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '桩号里程',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '所在区县',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            }, {
-                title: '所在地市',
-                search: false,
-                dataIndex: 'time9',
-                valueType: 'dateRange',
-                initialValue: day,
-
-                width: 140,
-
-                render: (dom, record) => {
-                    return record.address
-                },
-                fieldProps: {
-                    getPopupContainer: (triggerNode) => triggerNode.parentNode,
-                }
-            },
+            }, 
             {
                 title: '操作',
                 dataIndex: 'creatTime',
diff --git a/web/client/src/sections/fillion/components/videoTable.js b/web/client/src/sections/fillion/components/videoTable.js
new file mode 100644
index 00000000..7f064c6c
--- /dev/null
+++ b/web/client/src/sections/fillion/components/videoTable.js
@@ -0,0 +1,215 @@
+
+import { connect } from 'react-redux';
+import './protable.less'
+import { Card, Button, Popconfirm, Badge,Col, Row } from 'antd';
+import ProTable from '@ant-design/pro-table';
+// import { Badge, Button } from 'antd';
+import React, { useEffect, useState } from 'react';
+// @ts-ignore
+import styles from './protable.less';
+const DetailList = (props) => {
+    const { ip } = props;
+    const [tableListDataSource, setTableListDataSource] = useState([]);
+  
+    const columns= [
+      {
+        title: '视频',
+        key: 'createdAt',
+        dataIndex: 'createdAt',
+        valueType: 'dateTime',
+        render: (dom, record) => {
+            return  
+            
+            col-8
+            col-8
+          
+        },
+      },
+    ];
+    useEffect(() => {
+      const source = [];
+      for (let i = 0; i < 15; i += 1) {
+        source.push({
+          createdAt: Date.now() - Math.floor(Math.random() * 10000),
+          code: `const getData = async params => {
+            const data = await getData(params);
+            return { list: data.data, ...data };
+          };`,
+          key: i,
+        });
+      }
+      setTableListDataSource(source);
+    }, [ip]);
+    return (
+        
+    );
+  };
+  
+
+  
+ 
+  
+
+  
+  const ipListDataSource= [];
+  
+  for (let i = 0; i < 10; i += 1) {
+    ipListDataSource.push({
+      ip: `106.14.98.1${i}4`,
+      cpu: 10,
+      mem: 20,
+      status: [Math.floor(Math.random() * 10) % 4],
+      disk: 30,
+    });
+  }
+  
+ 
+  
+  const IPList = (props) => {
+    const { onChange, ip } = props;
+  
+    const columns= [
+      {
+        title: '路段名称',
+        key: 'ip',
+        dataIndex: 'ip',
+        render: (_, item) => {
+            console.log(item.ip)
+          return 
;
+        },
+      },
+      
+    ];
+    return (
+        
+            
 {
+          // 表单搜索项会从 params 传入,传递给后端接口。
+          console.log(params, sorter, filter);
+          return Promise.resolve({
+            data: ipListDataSource,
+            success: true,
+          });
+        }}
+        rowKey="ip"
+        rowClassName={(record) => {
+          return record.ip === ip ? styles['split-row-select-active'] : '';
+        }}
+        toolbar={{
+          search: {
+            onSearch: (value) => {
+              alert(value);
+            },
+          },
+        }}
+        options={false}
+        pagination={false}
+        search={false}
+        onRow={(record) => {
+          return {
+            onClick: () => {
+              if (record.ip) {
+                onChange(record.ip);
+              }
+            },
+          };
+        }}
+      />
+      
+    );
+  };
+  
+  
+  
+  const videoTable = () => {
+    const [ip, setIp] = useState('0.0.0.0');
+    const tabList = [
+        {
+          key: 'tab1',
+          tab: '公交',
+        },
+        {
+          key: 'tab2',
+          tab: '路段',
+        },
+      ];
+      const contentList= {
+        tab1: [
+        
+           setIp(cIp)} ip={ip} />
+        
+        
+          
+        
+      
],
+        tab2: [
+        
+           setIp(cIp)} ip={ip} />
+        
+        
+            
+          
+        
+      
]
+      };
+      const [activeTabKey1, setActiveTabKey1] = useState('tab1');
+  const [activeTabKey2, setActiveTabKey2] = useState('app');
+  const onTab1Change = (key) => {
+    setActiveTabKey1(key);
+  };
+
+  const onTab2Change = (key) => {
+    setActiveTabKey2(key);
+  };
+    return (
+        <>
+      
 {
+          onTab1Change(key);
+        }}
+      >
+        {contentList[activeTabKey1]}
+      
+     
+    >
+      
+    );
+  };
+  
+function mapStateToProps(state) {
+    const { auth, depMessage } = state;
+    const pakData = (dep) => {
+        return dep.map((d) => {
+            return {
+                title: d.name,
+                value: d.id,
+                // children: d.type >= 2 ? [] : pakData(d.subordinate)
+                children: pakData(d.subordinate)
+            }
+        })
+    }
+    let depData = pakData(depMessage.data || [])
+    return {
+        user: auth.user,
+        depMessage: depMessage.data || [],
+        depLoading: depMessage.isRequesting,
+        depData,
+    };
+}
+export default connect(mapStateToProps)(videoTable);
\ No newline at end of file
diff --git a/web/client/src/sections/fillion/containers/index.js b/web/client/src/sections/fillion/containers/index.js
index 3cfa6ecf..b135e3ee 100644
--- a/web/client/src/sections/fillion/containers/index.js
+++ b/web/client/src/sections/fillion/containers/index.js
@@ -1,6 +1,12 @@
 'use strict';
 
-import infor from './infor';
+import Infor from './infor';
+import transportation from './transportation';
+import BridgeTable from './bridge';
+import HigHways from './highways';
+import OperaTional from './operational';
+import Enforce from './enforce';
+import Public from './public';
+import Videois from './videois';
 
-
-export { infor };
\ No newline at end of file
+export { Infor,transportation,BridgeTable,HigHways,OperaTional,Enforce,Public,Videois };
\ No newline at end of file
diff --git a/web/client/src/sections/fillion/containers/infor.js b/web/client/src/sections/fillion/containers/infor.js
index 4e2c3b21..eb72fbcd 100644
--- a/web/client/src/sections/fillion/containers/infor.js
+++ b/web/client/src/sections/fillion/containers/infor.js
@@ -3,7 +3,6 @@ import { connect } from 'react-redux';
 import '../style.less';
 import { getDepMessage, getReportStatistic } from "../actions/infor"
 import InForTable from '../components/inforTable';
-import UserModal from '../components/infor/details';
 const superagent = require('superagent');
 const infor = (props) => {
     const { dispatch, user} = props
@@ -15,16 +14,16 @@ const infor = (props) => {
         dispatch(getReportStatistic())
         setData(props)
     }, []);
-    //打开弹窗
-    const openModal = (type, record) => {
-        setModalVisible(true);
-        // setModalType(type);
-        if (type == 'edit') {
-            setModalRecord(record);
-        } else {
-            setModalRecord(null);
-        }
-    }
+    // //打开弹窗
+    // const openModal = (type, record) => {
+    //     setModalVisible(true);
+    //     // setModalType(type);
+    //     if (type == 'edit') {
+    //         setModalRecord(record);
+    //     } else {
+    //         setModalRecord(null);
+    //     }
+    // }
     //批量导出
     const exports = (ids,counts) => {
         // console.log(user);
@@ -42,12 +41,8 @@ const infor = (props) => {
             })
     }
     return (
-        <> 
-            
>
+        <> 
+           >
     )
 }
 function mapStateToProps(state) {
diff --git a/web/client/src/sections/fillion/containers/videois.js b/web/client/src/sections/fillion/containers/videois.js
new file mode 100644
index 00000000..61411e51
--- /dev/null
+++ b/web/client/src/sections/fillion/containers/videois.js
@@ -0,0 +1,42 @@
+import React, { useEffect, useState } from 'react';
+import { connect } from 'react-redux';
+import '../style.less';
+import { getDepMessage, getReportStatistic } from "../actions/infor"
+import VideoTable from '../components/videoTable';
+const superagent = require('superagent');
+const Videois = (props) => {
+  const { dispatch, user } = props
+  const [data, setData] = useState()
+  useEffect(() => {
+    // dispatch(getDepMessage())
+    dispatch(getReportStatistic())
+    setData(props)
+  }, []);
+  //批量导出
+  const exports = (ids, counts) => {
+    // console.log(user);
+    let reportIds = [];
+    if (ids.length)
+      reportIds = ids
+    else
+      reportIds = (counts || {}).ids || [];
+    superagent.post('/_report/http')
+      .send({ id: reportIds.map(i => Number(i)) }).end((err, res) => {
+        const resTextIs = res.text.split('/').pop()
+        window.open(
+          '/_api/' +
+          `attachments?src=files/${resTextIs}&filename=${encodeURIComponent(resTextIs)}&token=${user.token}`)
+      })
+  }
+  return (
+    <> 
+    >
+  )
+}
+function mapStateToProps(state) {
+  const { auth } = state
+  return {
+    user: auth.user,
+  }
+}
+export default connect(mapStateToProps)(Videois);
\ No newline at end of file
diff --git a/web/client/src/sections/fillion/nav-item.js b/web/client/src/sections/fillion/nav-item.js
index 70b55fd6..6517d23a 100644
--- a/web/client/src/sections/fillion/nav-item.js
+++ b/web/client/src/sections/fillion/nav-item.js
@@ -5,9 +5,29 @@ import { ReadOutlined } from '@ant-design/icons';
 const SubMenu = Menu.SubMenu;
 export function getNavItem(user, dispatch) {
     return (
-        
} title={'填报管理'}>
+        
} title={'数据管理'}>
             
-                填报信息
+                治超管理
+            
+            
+                道路管理
+            
+                桥梁管理
+            
+            
+                路政管理
+            
+            
+                运政管理
+            
+            
+                执法管理
+            
+            
+                公交管理
+            
+            
+                视频管理
             
         
     );
diff --git a/web/client/src/sections/fillion/routes.js b/web/client/src/sections/fillion/routes.js
index 693ca601..aeba08d1 100644
--- a/web/client/src/sections/fillion/routes.js
+++ b/web/client/src/sections/fillion/routes.js
@@ -1,19 +1,71 @@
 'use strict';
-import {  infor } from './containers';
+import { Infor } from './containers';
+import { transportation } from './containers';
+import { BridgeTable } from './containers';
+import { HigHways } from './containers';
+import { OperaTional } from './containers';
+import { Enforce } from './containers';
+import { Public } from './containers';
+import { Videois } from './containers';
 export default [{
     type: 'inner',
     route: {
         path: '/fillion',
         key: 'fillion',
-        breadcrumb: '填报管理',
+        breadcrumb: '数据管理',
         menuSelectKeys: ['fillion'],
         menuOpenKeys: ['fillion'],
-        childRoutes: [ {
+        childRoutes: [{
             path: '/infor',
             key: 'fillioninfor',
-            menuSelectKeys:['fillioninfor'],
-            component: infor,
-            breadcrumb: '填报信息',
-        }]
+            menuSelectKeys: ['fillioninfor'],
+            component: Infor,
+            breadcrumb: '治超管理',
+        }, {
+            path: '/transportation',
+            key: 'filliontransportation',
+            menuSelectKeys: ['filliontransportation'],
+            component: transportation,
+            breadcrumb: '道路管理',
+        }
+        , {
+            path: '/bridge',
+            key: 'fillionbridge',
+            menuSelectKeys: ['fillionbridge'],
+            component: BridgeTable,
+            breadcrumb: '桥梁管理',
+        }
+        , {
+            path: '/highways',
+            key: 'fillionhighways',
+            menuSelectKeys: ['fillionhighways'],
+            component: HigHways,
+            breadcrumb: '路政管理',
+        }, {
+            path: '/operational',
+            key: 'fillionoperational',
+            menuSelectKeys: ['fillionoperational'],
+            component: OperaTional,
+            breadcrumb: '运政管理',
+        }, {
+            path: '/enforce',
+            key: 'fillionenforce',
+            menuSelectKeys: ['fillionenforce'],
+            component: Enforce,
+            breadcrumb: '执法管理',
+        }, {
+            path: '/public',
+            key: 'fillionpublic',
+            menuSelectKeys: ['fillionpublic'],
+            component: Public,
+            breadcrumb: '公交管理',
+        }, {
+            path: '/videois',
+            key: 'fillionvideois',
+            menuSelectKeys: ['fillionvideois'],
+            component: Videois,
+            breadcrumb: '视频管理',
+        }
+        ]
     }
-}];
\ No newline at end of file
+}];
diff --git a/web/client/src/sections/middleground/actions/data.js b/web/client/src/sections/middleground/actions/data.js
deleted file mode 100644
index 73080b05..00000000
--- a/web/client/src/sections/middleground/actions/data.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-import { basicAction } from '@peace/utils'
-import { ApiTable } from '$utils'
-export function getFundamental() {
-    return dispatch => basicAction({
-        type: 'get',
-        dispatch: dispatch,
-        actionType: 'GET_DATA',
-        url: ApiTable.getFundamental,
-        msg: { error: '获取数据失败' },
-        reducer: { name: 'datas' }
-    });
-}
-
-
-export function getsortord(zuo, day) {
-    return dispatch => basicAction({
-        type: 'get',
-        dispatch: dispatch,
-        actionType: 'GET_PATIENTIA',
-        url: ApiTable.getsortord.replace('{zuo}', zuo).replace('{day}', day),
-        msg: { error: '日期更新失败' },
-        reducer: { name: 'Patientia' }
-    });
-}
-export default {
-    getFundamental,
-    getsortord
-}
\ No newline at end of file
diff --git a/web/client/src/sections/middleground/actions/index.js b/web/client/src/sections/middleground/actions/index.js
deleted file mode 100644
index 077a957b..00000000
--- a/web/client/src/sections/middleground/actions/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-import * as date from "./data"
-
-export default {
-    ...date
-}
\ No newline at end of file
diff --git a/web/client/src/sections/middleground/components/dateModal.js b/web/client/src/sections/middleground/components/dateModal.js
deleted file mode 100644
index 5b83cbed..00000000
--- a/web/client/src/sections/middleground/components/dateModal.js
+++ /dev/null
@@ -1,118 +0,0 @@
-import React, { useState, useEffect } from 'react'
-import { connect } from 'react-redux';
-import { getFundamental } from '../actions/data';
-import * as echarts from "echarts"
-import "../style.less"
-
-const DateModal = (props) => {
-    const { dispatch } = props
-    const [lists, setLists] = useState([])
-    const [keys, setKeys] = useState([])
-    const [days, setDays] = useState()
-    const [unkeys, setUnkeys] = useState([])
-    const [num, setNum] = useState(1)
-    useEffect(() => {
-        // 获取数据
-        dispatch(getFundamental()).then(res => {
-            setDays(res.payload.data.date)
-
-        })
-    }, [true])
-
-    const op = () => {
-        // 把获取的数据进行加工
-        if (days && num == 1) {
-
-            var daysValues = Object.values(days)
-            var daysKeys = Object.keys(days)
-            var list = []
-            var arr = []
-            var months = []
-            for (let index = 6; index >= 0; index--) {
-                list.push(daysValues[index])
-            }
-            setLists(list)
-            for (let index = 6; index >= 0; index--) {
-                arr.push(daysKeys[index].substring(8))
-            }
-            for (let index = 6; index >= 0; index--) {
-                months.push(daysKeys[index].charAt(5) + "" + daysKeys[index].charAt(6))
-            }
-            setUnkeys(months)
-            setKeys(arr)
-            setNum(2)
-        }
-    }
-    op()
-    useEffect(() => {
-        let a = ([...keys])
-        let list = []
-        for (let index = 0; index < 7; index++) {
-            list.push(a[index])
-        }
-        for (let index = 0; index < 7; index++) {
-            list[index] = list[index] + "日"
-        }
-        var myChart = echarts.init(document.getElementById('echarts'));
-        // window.onresize在重复使用过程中会被覆盖
-        // window.onresize = myChart.resize;
-        // addEventListener来添加监听resize的事件,将能避免onresize的覆盖问题,并能实现对窗口的监听操作
-        window.addEventListener("resize", function () {
-            myChart.resize()
-        })
-        var option = {
-            title: {
-                text: '近七日填报数量',
-                left: "7%"
-            },
-            grid: {
-                left: '3%',
-                right: '4%',
-                bottom: '3%',
-                containLabel: true
-            },
-            tooltip: {
-                trigger: 'item',
-                formatter: function (params) {
-                    var htmlStr = `填报数量:${params.value}条
${unkeys[params.dataIndex] + "月" + params.name}
`
-                    return htmlStr;
-                }
-            },
-            xAxis: {
-                type: 'category',
-                data: list,
-                axisTick: {
-                    alignWithLabel: true
-                }
-            },
-            yAxis: {
-                type: "value",
-            },
-            series: [
-                {
-                    name: '填报数量',
-                    type: 'bar',
-                    data: lists,
-                    barWidth: 40
-                }
-            ]
-        };
-
-        // 使用刚指定的配置项和数据显示图表。
-        myChart.setOption(option);
-    }, [lists])
-    return (
-        
-    )
-}
-function mapStateToProps(state) {
-    const { auth, depMessage, depUser, global } = state;
-    return {
-        user: auth.user,
-        clientHeight: global.clientHeight,
-        loading: depMessage.isRequesting,
-        depMessage: depMessage.data || [],
-        depUser: depUser.data || []
-    };
-}
-export default connect(mapStateToProps)(DateModal)
\ No newline at end of file
diff --git a/web/client/src/sections/middleground/components/index.js b/web/client/src/sections/middleground/components/index.js
deleted file mode 100644
index 70405b5b..00000000
--- a/web/client/src/sections/middleground/components/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-import DateModal from './dateModal';
-
-export { DateModal };
\ No newline at end of file
diff --git a/web/client/src/sections/middleground/containers/data.js b/web/client/src/sections/middleground/containers/data.js
deleted file mode 100644
index 72a46915..00000000
--- a/web/client/src/sections/middleground/containers/data.js
+++ /dev/null
@@ -1,157 +0,0 @@
-import React, { useEffect, useState } from "react";
-import { connect } from "react-redux";
-import { Space, Row, Col, DatePicker, Spin } from "antd";
-import { getFundamental, getsortord } from "../actions/data";
-import { DateModal } from "../components";
-import moment from "moment";
-import "../style.less";
-const { RangePicker } = DatePicker;
-const UserManage = (props) => {
-  const { dispatch, loading, datas, Patientias } = props;
-  const dateFormat = "YYYY/MM/DD";
-  const [data, setData] = useState();
-  const [Patientia, setPatientia] = useState();
-  useEffect(() => {
-    // 获取数据
-    dispatch(getFundamental()).then((res) => {
-      setData(res);
-    });
-  }, [true]);
-  useEffect(() => {
-    // 根据接口获取规定时间内获取到的数据
-    var customField = [
-      moment().add(-6, "day").format("YYYY-MM-DD"),
-      moment(new Date(), dateFormat).format("YYYY-MM-DD"),
-    ];
-    dispatch(getsortord(customField[0], customField[1])).then((res) => {
-      setPatientia(res.payload.data);
-    });
-  }, [true]);
-  // useEffect(() => {
-  /* Patientia ? setPatientia(Patientia */ /* .sort(sortByKey("count")) */ /* ) : null */
-  // }, [Patientia])
-  // 根据数组里面对象的key值进行排序
-  // const sortByKey = (key) => {
-  //     return function (a, b) {
-  //         var value1 = a[key];
-  //         var value2 = b[key];
-  //         return value2 - value1;
-  //     }
-  // }
-  const disabledDate = (current) => {
-    return (
-      (current && current < moment("2022/03/01").subtract("day")) ||
-      current > moment(new Date()).subtract("days")
-    );
-  };
-  const getTime = (date) => {
-    // 根据时间框时间获取数据进行展示
-    if (date) {
-      var ao = [];
-      ao.push(date[0].format("YYYY/MM/DD"));
-      ao.push(date[1].format("YYYY/MM/DD"));
-    }
-    dispatch(getsortord(ao[0], ao[1])).then((res) => {
-      setPatientia(res.payload.data /* .sort(sortByKey("count")) */);
-    });
-  };
-
-  return (
-    
-      {/* 此处进行了loding的效果 */}
-      
-        {/* 页面上部分代码 */}
-        
-          
-            
-              今日新增填报
-               {datas.data ? datas.data.added : null}
-            
-            
-              今日已审填报
-              
-                {datas.data ? datas.data.checked : null}
-                /{datas.data ? datas.data.unChecked : null}
-              
-            
-            
-              隐患场所总数
-              {datas.data ? datas.data.danger_place : null}
-            
-            
-              历史填报
-              {datas.data ? datas.data.history : null}
-            
-          
-        
 
-        {/* 页面下部分代码 */}
-        
-          {/* echarts柱状图 */}
-          
{datas ?  : null}
-          {/* 根据时间进行的排序 */}
-          
-            
各区县合用场所填报数量
-            
-              
-            
-            
-              {Patientias
-                ? Patientias.map((item, index) => {
-                  return (
-                    
-                      {index >= 3 ? (
-                        {index + 1}
-                      ) : (
-                        {index + 1}
-                      )}
-                      {item.name}
-                      {item.count}
-                    
-                  );
-                })
-                : null}
-            
-          
-        
 
-      
-    
-  );
-};
-function mapStateToProps(state) {
-  // console.log(state);
-  const { auth, depMessage, depUser, global, datas, Patientia } = state;
-  // 在reducer中进行数据处理
-  const sortByKey = (key) => {
-    return function (a, b) {
-      var value1 = a[key];
-      var value2 = b[key];
-      return value2 - value1;
-    };
-  };
-  return {
-    user: auth.user,
-    clientHeight: global.clientHeight,
-    loading: datas.isRequesting && Patientia.isRequesting,
-    depMessage: depMessage.data || [],
-    depUser: depUser.data || [],
-    datas: datas || [],
-    Patientias: Patientia.data
-      ? Patientia.data.sort(sortByKey("count"))
-      : null || [],
-  };
-}
-
-export default connect(mapStateToProps)(UserManage);
diff --git a/web/client/src/sections/middleground/containers/index.js b/web/client/src/sections/middleground/containers/index.js
deleted file mode 100644
index fb6c0ef3..00000000
--- a/web/client/src/sections/middleground/containers/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-import UserManage from './data';
-
-export { UserManage };
\ No newline at end of file
diff --git a/web/client/src/sections/middleground/index.js b/web/client/src/sections/middleground/index.js
deleted file mode 100644
index fe3e7793..00000000
--- a/web/client/src/sections/middleground/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-import reducers from './reducers';
-import routes from './routes';
-import actions from './actions';
-import { getNavItem } from './nav-item';
-
-export default {
-    key: 'middleground',
-    name: '',
-    reducers: reducers,
-    routes: routes,
-    actions: actions,
-    getNavItem: getNavItem
-};
\ No newline at end of file
diff --git a/web/client/src/sections/middleground/nav-item.js b/web/client/src/sections/middleground/nav-item.js
deleted file mode 100644
index 51ca9557..00000000
--- a/web/client/src/sections/middleground/nav-item.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import React from 'react';
-import { Link } from 'react-router-dom';
-import { Menu } from 'antd';
-import { BarChartOutlined } from '@ant-design/icons';
-import { push } from 'react-router-redux';
-
-
-export function getNavItem(user, dispatch) {
-    if (user.type != 1) {
-        dispatch(push('/fillion/infor'));
-        return null
-    }
-    return (
-        
}>
-            
数据中心
-        
-    );
-}
\ No newline at end of file
diff --git a/web/client/src/sections/middleground/reducers/index.js b/web/client/src/sections/middleground/reducers/index.js
deleted file mode 100644
index 0203d01b..00000000
--- a/web/client/src/sections/middleground/reducers/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-export default {    
-    
-};
\ No newline at end of file
diff --git a/web/client/src/sections/middleground/routes.js b/web/client/src/sections/middleground/routes.js
deleted file mode 100644
index 0d75430b..00000000
--- a/web/client/src/sections/middleground/routes.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-import { UserManage } from './containers';
-
-export default [{
-    type: 'inner',
-    route: {
-        path: '/middleground',
-        key: 'middleground',
-        breadcrumb: '数据中心',
-        menuSelectKeys: ['userManage'],
-        component: UserManage,
-        menuOpenKeys: ['middleground'],
-    }
-}];
\ No newline at end of file
diff --git a/web/client/src/sections/middleground/style.less b/web/client/src/sections/middleground/style.less
deleted file mode 100644
index 659824ed..00000000
--- a/web/client/src/sections/middleground/style.less
+++ /dev/null
@@ -1,86 +0,0 @@
-.shuju-top{
-    width: 100%; 
-    min-Width: 1110px;
-    height: 20vh; 
-    border: 1px solid #F2F2F2;
-    border-Right: 0; 
-    margin-top: 5vh;
-    overflow: auto;
-    .wrap{
-        min-Height: 100%;
-        span{
-            color: #959595; 
-            font-Size: 18px;
-        }
-        p{
-            font-Size: 34px;
-        }
-    }
-}
-.shuju-floer{
-    width: 100%;
-    height: 500px;
-    float: left;
-    margin-Top: 50px; 
-    min-Width: 1110px;
-    .shuju-floer-left{
-        height: 500px;
-        float: left;
-        #echarts{
-            width: calc(75vw - 200px );
-            min-Width: 810px; 
-            height: 500px;
-        }
-    }
-    .shuju-floer-reght{
-        width: calc(32vw - 200px ); 
-        min-Width: 290px; 
-        height: 100%; 
-        float: left;
-        p{
-            color: #464646; 
-            font-Size: 18px; 
-            font-Weight: 600;
-        }
-        .dataDisplay{
-            width: 340px; 
-            height: 75%; 
-            overflow-y: auto;
-            .traverse{
-                width: 300px; 
-                height: 30px;
-                list-style: none;
-                .topThree{
-                    width: 20px; 
-                    height: 20px; 
-                    background-Color: #f0f2f5; 
-                    float: left; 
-                    color: rgba(0, 0, 0, 0.6470588235294118); 
-                    border-Radius: 50%;
-                    text-align: center; 
-                    line-Height: 20px; 
-                    font-Size: 12px;
-                }
-                .untopThree{
-                    width: 20px; 
-                    height: 20px; 
-                    background-Color: #314559;
-                    float: left; 
-                    color: #FFFFFF; 
-                    border-radius: 50%; 
-                    text-align: center; 
-                    line-height: 20px; 
-                    font-size: 12px;
-                }
-                .siteName{
-                    margin-left: 20px;
-                }
-                .sitePeople{
-                    float: right; 
-                    margin-right: 10px;
-                }
-            } 
-        }
-
-    }
-}
\ No newline at end of file
diff --git a/web/client/src/sections/organization/actions/user.js b/web/client/src/sections/organization/actions/user.js
index e24913a4..b9eed02b 100644
--- a/web/client/src/sections/organization/actions/user.js
+++ b/web/client/src/sections/organization/actions/user.js
@@ -36,23 +36,23 @@ export function createUser(data) {
     });
 }
 
-export function updateUser(id, data) {
+export function updateUser(userId, data) {
     return dispatch => basicAction({
         type: 'put',
         data,
         dispatch: dispatch,
         actionType: 'UPDATE_DEPARTMENT_USER',
-        url: ApiTable.updateUser.replace('{id}', id),
+        url: ApiTable.updateUser.replace('{userId}', userId),
         msg: { option: '修改用户' },
     });
 }
 
-export function delUser(ids) {
+export function delUser(userIds) {
     return dispatch => basicAction({
         type: 'del',
         dispatch: dispatch,
         actionType: 'DEL_DEPARTMENT_USER',
-        url: ApiTable.delUser.replace('{ids}', ids),
+        url: ApiTable.delUser.replace('{userIds}', userIds),
         msg: { option: '删除用户' },
     });
 }
diff --git a/web/client/src/sections/organization/containers/index.js b/web/client/src/sections/organization/containers/index.js
index e1a69b05..fc0f4348 100644
--- a/web/client/src/sections/organization/containers/index.js
+++ b/web/client/src/sections/organization/containers/index.js
@@ -1,6 +1,7 @@
 'use strict';
 
-import Authority from './authority';
+
 import UserManage from './user';
 
-export { Authority, UserManage };
\ No newline at end of file
+
+export {  UserManage};
\ No newline at end of file
diff --git a/web/client/src/sections/organization/containers/user.js b/web/client/src/sections/organization/containers/user.js
index ea4e9993..da407ee2 100644
--- a/web/client/src/sections/organization/containers/user.js
+++ b/web/client/src/sections/organization/containers/user.js
@@ -54,7 +54,25 @@ const UserManage = (props) => {
                 dataIndex: 'action',
                 render: (dom, record) => {
 
-                    return record.username == 'SuperAdmin' ? '' : [
+                    // return record.username == 'SuperAdmin' ? '' : [
+                    //     
,
+                    //     
 {
+                    //             delUsers([record.id])
+                    //         }}
+                    //     >
+                    //         
+                    //     ,
+                    //     
+                    // ]
+                    return [
                         
,
                         
 {
         
             
                 
-                    
+
+                    
+                        
                         {
                             depMessage.length ?
                                  {
                                         key: 'id',
                                         children: 'subordinate'
                                     }}
+                                    style={{ paddingTop: 20 }}
                                 /> : ''
                         }
                     
                 
 
                 
-                    
+                    
                          {
                                         style={{ marginRight: 10 }}
                                         onClick={() => openModal('create')}
                                     >新建用户
-                                    
+                                    {/*  */}
                                      { delUsers(rowSelected, 'batch') }}>
                                         
                                     
diff --git a/web/client/src/sections/organization/nav-item.js b/web/client/src/sections/organization/nav-item.js
index 19a8d2c5..25c094d5 100644
--- a/web/client/src/sections/organization/nav-item.js
+++ b/web/client/src/sections/organization/nav-item.js
@@ -9,23 +9,24 @@ import { push } from 'react-router-redux';
 const SubMenu = Menu.SubMenu;
 
 export function getNavItem(user, dispatch) {
-    if (!Func.isAuthorized("ORG_MANAGE")) {
-        return null
-    }
-    // console.log(!Func.isAuthorized("ORG_MANAGE"));
-    if (user.type != 1 && user.type != 2 && user.type != 3) {
-        dispatch(push('/fillion/infor'));
-        return null
-    }
+    // if (!Func.isAuthorized("ORG_MANAGE")) {
+    //     return null
+    // }
+    // // console.log(!Func.isAuthorized("ORG_MANAGE"));
+    // if (user.type != 1 && user.type != 2 && user.type != 3) {
+    //     dispatch(push('/fillion/infor'));
+    //     return null
+    // }
     return (
-        } title={'组织管理'}>
-            {Func.isAuthorized("ORG_MEMBER") && 
+        } title={'授权管理'}>
+         
+            { 
                 用户管理
             
-            }
-            {Func.isAuthorized("ORG_AUTH") && 
-                权限配置
-            }
+            } 
+          
+         
+           
         
     );
 }
\ No newline at end of file
diff --git a/web/client/src/sections/organization/routes.js b/web/client/src/sections/organization/routes.js
index 67d59793..2b4d1571 100644
--- a/web/client/src/sections/organization/routes.js
+++ b/web/client/src/sections/organization/routes.js
@@ -1,12 +1,12 @@
 'use strict';
-import { UserManage, Authority } from './containers';
+import { UserManage, Authority,AdminiSter } from './containers';
 
 export default [{
     type: 'inner',
     route: {
         path: '/organization',
         key: 'organization',
-        breadcrumb: '组织管理',
+        breadcrumb: '授权管理',
         menuSelectKeys: ['userManage'],
         menuOpenKeys: ['organization'],
         childRoutes: [{
@@ -15,12 +15,6 @@ export default [{
             menuSelectKeys: ['userManage'],
             component: UserManage,
             breadcrumb: '用户管理',
-        }, {
-            path: '/authority',
-            key: 'authority',
-            component: Authority,
-            menuSelectKeys: ['authority'],
-            breadcrumb: '权限配置',
         }]
     }
 }];
\ No newline at end of file
diff --git a/web/client/src/sections/report/actions/compile.js b/web/client/src/sections/report/actions/compile.js
deleted file mode 100644
index 339bca22..00000000
--- a/web/client/src/sections/report/actions/compile.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-
-import { basicAction } from '@peace/utils'
-import { ApiTable } from '$utils'
-
-export function reportRectify (timeRange) {
-    return dispatch => basicAction({
-        type: 'get',
-        dispatch: dispatch,
-        actionType: 'GET_REPORT_RECTIFY',
-        url: `${ApiTable.getReportRectify}?startTime=${timeRange ? timeRange[0] : ''}&endTime=${timeRange ? timeRange[1] : ''}`,
-        msg: {},
-        reducer: { name: 'reportRectify' }
-    });
-}
-
-export function reportRectifyDetail (day, depId) {
-    return dispatch => basicAction({
-        type: 'get',
-        dispatch: dispatch,
-        actionType: 'GET_REPORT_RECTIFY_DETAIL',
-        url: `${ApiTable.getReportRectifyDetail}?day=${day}&depId=${depId}`,
-        msg: {},
-        reducer: { name: 'reportRectifyDetail' }
-    });
-}
-
-export function compileReportRectifyDetail (data) {
-    return dispatch => basicAction({
-        type: 'post',
-        dispatch: dispatch,
-        data,
-        actionType: 'COMPILE_REPORT_RECTIFY_DETAIL',
-        url: `${ApiTable.compileReportRectifyDetail}`,
-        msg: { option: '保存信息' },
-    });
-}
\ No newline at end of file
diff --git a/web/client/src/sections/report/actions/config.js b/web/client/src/sections/report/actions/config.js
deleted file mode 100644
index d8a66a79..00000000
--- a/web/client/src/sections/report/actions/config.js
+++ /dev/null
@@ -1,59 +0,0 @@
-'use strict';
-
-import { basicAction } from '@peace/utils'
-import { ApiTable } from '$utils'
-
-export function allAreas (orgId) {
-    return dispatch => basicAction({
-        type: 'get',
-        dispatch: dispatch,
-        actionType: 'GET_ALL_AREAS',
-        url: `${ApiTable.allAreas}`,
-        msg: {},
-        reducer: { name: 'allAreas' }
-    });
-}
-
-export function addReportConfig (data) {
-    return dispatch => basicAction({
-        type: 'post',
-        dispatch: dispatch,
-        data: data,
-        actionType: 'POST_REPORT_CONFIGS',
-        url: `${ApiTable.addReportConfig}`,
-        msg: { option: '添加报表配置' },
-    });
-}
-
-export function getReportConfig () {
-    return dispatch => basicAction({
-        type: 'get',
-        dispatch: dispatch,
-        actionType: 'GET_REPORT_CONFIGS',
-        url: `${ApiTable.getReportConfig}`,
-        msg: { error: '获取报表配置失败' },
-        reducer: { name: 'reportConfig' }
-    });
-}
-
-export function editReportConfig (data, configId) {
-    return dispatch => basicAction({
-        type: 'put',
-        dispatch: dispatch,
-        data: data,
-        actionType: 'EDIT_REPORT_CONFIGS',
-        url: `${ApiTable.editReportConfig.replace('{reportId}', configId)}`,
-        msg: { option: '编辑报表配置' },
-    });
-}
-
-export function delReportConfig (configId) {
-    return dispatch => basicAction({
-        type: 'del',
-        dispatch: dispatch,
-        actionType: 'DEL_REPORT_CONFIGS',
-        url: `${ApiTable.delReportConfig.replace('{reportId}', configId)}`,
-        msg: { option: '删除报表配置' },
-    });
-}
-
diff --git a/web/client/src/sections/report/actions/download.js b/web/client/src/sections/report/actions/download.js
deleted file mode 100644
index 3879fae4..00000000
--- a/web/client/src/sections/report/actions/download.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import { basicAction } from '@peace/utils'
-import { ApiTable } from '$utils'
-
-export function getReportList(query) {
-    return dispatch => basicAction({
-        type: 'get',
-        dispatch: dispatch,
-        query: query,
-        actionType: 'GET_REPORT_LIST',
-        url: ApiTable.getReportList,
-        msg: { error: '获取报表数据失败' },
-        reducer: { name: 'reportList' }
-    });
-}
-
-export function getRegionList(query) {
-    return dispatch => basicAction({
-        type: 'get',
-        dispatch: dispatch,
-        query: query,
-        actionType: 'GET_REGION_LIST',
-        url: ApiTable.allAreas,
-        msg: { error: '获取区域数据失败' },
-        reducer: { name: 'regionList' }
-    });
-}
\ No newline at end of file
diff --git a/web/client/src/sections/report/actions/index.js b/web/client/src/sections/report/actions/index.js
deleted file mode 100644
index 01665ba2..00000000
--- a/web/client/src/sections/report/actions/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-
-import * as config from './config'
-import * as download from './download'
-import * as compile from './compile'
-
-export default {
-    ...config,
-    ...download,
-    ...compile,
-}
\ No newline at end of file
diff --git a/web/client/src/sections/report/components/compileDrawer.js b/web/client/src/sections/report/components/compileDrawer.js
deleted file mode 100644
index 2b2cb107..00000000
--- a/web/client/src/sections/report/components/compileDrawer.js
+++ /dev/null
@@ -1,118 +0,0 @@
-import React, { useEffect, useState } from 'react';
-import { connect } from 'react-redux';
-import { Spin, Drawer, Button } from 'antd';
-import '../style.less';
-import { EditableProTable } from '@ant-design/pro-table';
-
-const CompileDrawer = (props) => {
-    const { dispatch, actions, user, loading, visible, checkRow, close, reportRectifyDetail, checkAction } = props
-    const [requesting, setRequesting] = useState(false)
-    const [dataSource, setDataSource] = useState([])
-    const { report } = actions
-    const isCheck = checkAction == 'check'
-
-    useEffect(() => {
-        if (checkRow.day) {
-            dispatch(report.reportRectifyDetail(checkRow.day, checkRow.depId))
-        }
-    }, [checkRow])
-
-    useEffect(() => {
-        let data = reportRectifyDetail
-        let i = 1
-        for (let d of data) {
-            d.index_ = i++
-        }
-        setDataSource(data)
-    }, [reportRectifyDetail])
-
-    return (
-         {
-                close()
-            }}
-            visible={visible}
-            width={'82%'}
-        >
-            
-                 r.id)
-                    }}
-                    toolBarRender={() => [
-                        isCheck ? '' :
-                            
-                    ]}
-                >
-
-                
-            
-        
-    )
-}
-
-function mapStateToProps (state) {
-    const { auth, global, members, reportRectifyDetail } = state;
-    return {
-        loading: reportRectifyDetail.isRequesting,
-        user: auth.user,
-        actions: global.actions,
-        members: members.data,
-        reportRectifyDetail: reportRectifyDetail.data || []
-    };
-}
-
-export default connect(mapStateToProps)(CompileDrawer);
diff --git a/web/client/src/sections/report/components/configModal.js b/web/client/src/sections/report/components/configModal.js
deleted file mode 100644
index aa5d344f..00000000
--- a/web/client/src/sections/report/components/configModal.js
+++ /dev/null
@@ -1,124 +0,0 @@
-import React, { useEffect, useRef } from 'react';
-import { connect } from 'react-redux';
-import { Spin, Button, Modal, Form, Switch } from 'antd';
-import ProForm, { ProFormText, ProFormSelect } from '@ant-design/pro-form';
-import { useState } from 'react';
-
-const ConfigModal = (props) => {
-    const { dispatch, actions, user, loading, visible, close, editData, allAreas, reportType } = props
-    const [excuteTimeOptions, setExcuteTimeOptions] = useState([])
-    const formRef = useRef()
-    const { report } = actions
-
-    useEffect(() => {
-        let excuteTimeOptions = []
-        for (let i = 0; i < 24; i++) {
-            let curT = i
-            if (curT < 10) {
-                curT = '0' + curT
-            }
-            excuteTimeOptions.push({
-                value: curT + ':00',
-                label: curT + ':00',
-            })
-            excuteTimeOptions.push({
-                value: curT + ':30',
-                label: curT + ':30',
-            })
-        }
-        setExcuteTimeOptions(excuteTimeOptions);
-    }, [])
-
-    return (
-         {
-                formRef.current.validateFields().then(v => {
-                    v.excuteTime = String(v.excuteTime)
-                    console.log(v);
-                    dispatch(editData ? report.editReportConfig(v, editData.id) : report.addReportConfig(v)).then(res => {
-                        if (res.success) {
-                            dispatch(report.getReportConfig())
-                            close()
-                        }
-                    })
-                })
-            }}
-            onCancel={() => {
-                close()
-            }}
-        >
-            
-                
-                
-                 {
-                            return {
-                                value: a.id,
-                                label: a.name,
-                            }
-                        })}
-                    cacheForSwr
-                    name="regionId"
-                    label="区域"
-                    required
-                    rules={[{ required: true, message: '请选择区域' }]}
-                />
-                
-                    
-                
-                
-            
-        
-    )
-}
-
-function mapStateToProps (state) {
-    const { auth, global, allAreas } = state;
-    console.log(allAreas);
-    return {
-        user: auth.user,
-        actions: global.actions,
-        allAreas: allAreas.data || []
-    };
-}
-
-export default connect(mapStateToProps)(ConfigModal);
diff --git a/web/client/src/sections/report/containers/compile.js b/web/client/src/sections/report/containers/compile.js
deleted file mode 100644
index def77e7b..00000000
--- a/web/client/src/sections/report/containers/compile.js
+++ /dev/null
@@ -1,111 +0,0 @@
-// 报表编辑
-
-import React, { useEffect, useState } from 'react';
-import { connect } from 'react-redux';
-import moment from 'moment'
-import CompileDrawer from '../components/compileDrawer'
-import { Spin, Button, DatePicker, Space, Switch } from 'antd';
-import ProTable from '@ant-design/pro-table';
-import { Func } from '$utils';
-
-const { RangePicker } = DatePicker;
-
-const Compile = (props) => {
-    const { dispatch, actions, user, loading, reportRectify } = props
-    const [searchTime, setSearchTime] = useState([moment(), moment()])
-    const [compileDrawerVis, setCompileDrawerVis] = useState(false)
-    const [checkRow, setCheckRow] = useState({})
-    const [checkAction, setCheckAction] = useState('')
-    const { report } = actions
-
-    const getReportRectify = (searchTime) => {
-        dispatch(report.reportRectify([moment(searchTime[0]).format('YYYY-MM-DD'), moment(searchTime[1]).format('YYYY-MM-DD')]))
-    }
-
-    useEffect(() => {
-        getReportRectify(searchTime)
-    }, [])
-
-    const showCompileDrawerVis = (row, action) => {
-        setCompileDrawerVis(true)
-        setCheckRow(row)
-        setCheckAction(action)
-    }
-
-    return (
-        
-             {
-                        return 
-                    }
-                }, {
-                    title: '操作',
-                    dataIndex: 'option',
-                    render: (_, r) => {
-                        return [
-                            
-                                {/* {Func.isAuthorized("REPORT_EDIT") &&
-                                    
-                                } */}
-                                
-                            
-                        ]
-                    }
-                },]}
-                dataSource={reportRectify}
-                rowKey="index"
-                search={false}
-                options={false}
-                headerTitle="合用场所安全隐患排查整治汇总表"
-                toolBarRender={() => [
-                     {
-                            setSearchTime(date)
-                            getReportRectify(dateString)
-                        }}
-                    />,
-                ]}
-            >
-
-            
-             {
-                    setCompileDrawerVis(false)
-                    setCheckRow({})
-                    setCheckAction('')
-
-                    getReportRectify(searchTime)
-                }}
-                checkRow={checkRow}
-                checkAction={checkAction}
-            />
-        
-    )
-}
-
-function mapStateToProps(state) {
-    const { auth, global, reportRectify } = state;
-    console.log(reportRectify);
-    return {
-        user: auth.user,
-        actions: global.actions,
-        loading: reportRectify.isRequesting,
-        reportRectify: reportRectify.data || []
-    };
-}
-
-export default connect(mapStateToProps)(Compile);
diff --git a/web/client/src/sections/report/containers/config.js b/web/client/src/sections/report/containers/config.js
deleted file mode 100644
index 40fa411b..00000000
--- a/web/client/src/sections/report/containers/config.js
+++ /dev/null
@@ -1,157 +0,0 @@
-import React, { useEffect, useState } from 'react';
-import { connect } from 'react-redux';
-import ConfigModal from '../components/configModal'
-import { Spin, Button, Space, Popconfirm, Switch } from 'antd';
-import ProTable from '@ant-design/pro-table';
-import '../style.less';
-import Pinyin from '../../../utils/pinyin'
-const reportType = [{
-    value: 1,
-    label: '县区排查整治汇总表',
-}, {
-    value: 2,
-    label: '各县区每日汇总表',
-}, {
-    value: 3,
-    label: '隐患场所汇总表',
-},]
-var pinyin = null
-var as = null
-var bs = null
-const Config = (props) => {
-    const { dispatch, actions, loading, reportConfig, allAreas } = props
-    const [configModalVis, setConfigModalVis] = useState(false)
-    const [editData, setEditData] = useState(null)
-    const { report } = actions
-    useEffect(() => {
-        dispatch(report.getReportConfig())
-        dispatch(report.allAreas())
-
-    }, [])
-    useEffect(()=>{
-        pinyin=new Pinyin()
-    })
-    return (
-        
-             {
-                        let regionOne = allAreas.find(item => item.id == a.regionId)
-                        let regionTwo = allAreas.find(item => item.id == b.regionId)
-
-                        if (regionOne) {
-                            as = pinyin.getCamelChars(regionOne.name).toLowerCase()
-
-                        } if (regionTwo) {
-                            bs = pinyin.getCamelChars(regionTwo.name).toLowerCase()
-
-                        } else {
-                            return ''
-                        }
-                       let codeOne=as.substr(0,1).charCodeAt()
-                       let codeTwo=bs.substr(0,1).charCodeAt()
-               return codeOne-codeTwo
-                    },
-                    render: (_, row, index, action) => {
-                        let curRegion = allAreas.find(a => a.id == row.regionId)
-                        return curRegion ? curRegion.name : ''
-                    },
-                }, {
-                    title: '类型',
-                    dataIndex: 'reportType',
-
-                    render: (_, r) => {
-                        let curType = reportType.find(t => t.value == r.reportTypeId)
-                        return curType ? curType.label : ''
-                    },
-
-                }, {
-                    title: '生成时间',
-                    dataIndex: 'index',
-                    render: (_, row) => {
-                        return `每日 ${row.excuteTime.indexOf(':') > -1 ? row.excuteTime : row.excuteTime + ':00'}`
-                    }
-                }, {
-                    title: '启用状态',
-                    dataIndex: 'isEnable',
-                    render: (_, row) => {
-                        return 
-
-                    }
-                }, {
-                    title: '操作',
-                    dataIndex: 'option',
-                    render: (_, row) => {
-                        return [
-                            
-                                
-                                 {
-                                        dispatch(report.delReportConfig(row.id)).then(res => {
-                                            if (res.success) {
-                                                dispatch(report.getReportConfig())
-                                            }
-                                        })
-                                    }}
-                                >
-                                    
-                                
-                            
-                        ]
-                    }
-                },]}
-                dataSource={reportConfig}
-                rowKey="id"
-                search={false}
-                options={false}
-                toolBarRender={() => [
-                    ,
-                ]}
-            >
-
-            
-            {
-                configModalVis ?
-                     {
-                            setConfigModalVis(false)
-                            setEditData(null)
-                        }}
-                        reportType={reportType}
-                        editData={editData}
-                    /> : ''
-            }
-        
-    )
-}
-
-function mapStateToProps(state) {
-    const { auth, global, reportConfig, allAreas } = state;
-    return {
-        loading: reportConfig.isRequesting,
-        user: auth.user,
-        actions: global.actions,
-        reportConfig: reportConfig.data || [],
-        allAreas: allAreas.data || []
-    };
-}
-
-export default connect(mapStateToProps)(Config);
diff --git a/web/client/src/sections/report/containers/download.js b/web/client/src/sections/report/containers/download.js
deleted file mode 100644
index ff379d21..00000000
--- a/web/client/src/sections/report/containers/download.js
+++ /dev/null
@@ -1,129 +0,0 @@
-import React, { useEffect } from 'react';
-import { connect } from 'react-redux';
-import { Spin, Button } from 'antd';
-import ProTable from '@ant-design/pro-table';
-import '../style.less';
-import moment from 'moment';
-import { Func } from '$utils';
-
-const Download = (props) => {
-    const { dispatch, actions, reportList, regionList, user } = props
-
-    useEffect(() => {
-        dispatch(actions.report.getRegionList());
-    }, []);
-
-    const columns = [{
-        title: '报表名称',
-        dataIndex: 'reportName',
-        formItemProps: {
-            label: null,
-        },
-        fieldProps: {
-            placeholder: '输入报表名称'
-        }
-    }, {
-        title: '区域名称',
-        dataIndex: 'regionName',
-        valueType: 'select',
-        initialValue: -1,
-        fieldProps: {
-            label: null,
-            options: [{
-                label: '全部',
-                value: -1
-            }].concat(regionList)
-        },
-        order: 5,
-        render: (dom, record) => {
-            return record.department ? record.department.name : null
-        }
-    }, {
-        title: '类型',
-        dataIndex: 'reportType',
-        hideInSearch: true,
-        render: (dom, record) => {
-            return record.reportType ? record.reportType.name : null
-        }
-    }, {
-        title: '生成时间',
-        dataIndex: 'creatTime',
-        valueType: 'dateTimeRange',
-        order: 4,
-        render: (dom, record) => {
-            return moment(record.creatTime).format('YYYY-MM-DD HH:mm')
-        }
-    }]
-    if (Func.isAuthorized("REPORT_DOWN")) {
-        columns.push({
-            title: '操作',
-            key: 'option',
-            hideInSearch: true,
-            render: (dom, record) => {
-                // const ApiRoot = localStorage.getItem('tyApiRoot');
-                const filePathArr = record.filePath.split('/')
-                
-                const fileName = filePathArr.pop()
-                // console.log(fileName);
-                return [
-                    // 下载
-                    
-                        下载
-                    
-                ]
-            }
-        })
-    }
-
-    return (
-        
-             {
-                    const query = {
-                        limit: params.pageSize,
-                        offset: params.pageSize * (params.current - 1),
-                        creatTime: params.creatTime,
-                        reportName: params.reportName,
-                        regionName: params.regionName
-                    }
-                    const res = await dispatch(actions.report.getReportList(query));
-                    return {
-                        ...res,
-                        total: res.payload.data ? res.payload.data.count : 0
-                    }
-                }}
-            >
-            
-        
-    )
-}
-
-function mapStateToProps (state) {
-    const { auth, global, reportList, regionList } = state;
-    const { count, rows } = reportList.data || {};
-    let regions = [];
-    if (regionList.data && regionList.data.length > 0) {
-        regions = regionList.data.map(v => {
-            return {
-                label: v.name,
-                value: v.id,
-            }
-        });
-    }
-    return {
-        user: auth.user,
-        actions: global.actions,
-        reportList: rows || [],
-        regionList: regions
-    };
-}
-
-export default connect(mapStateToProps)(Download);
\ No newline at end of file
diff --git a/web/client/src/sections/report/containers/index.js b/web/client/src/sections/report/containers/index.js
deleted file mode 100644
index 0b3cead7..00000000
--- a/web/client/src/sections/report/containers/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-import Config from './config';
-import Download from './download';
-import Compile from './compile'
-
-export { Config, Download, Compile };
\ No newline at end of file
diff --git a/web/client/src/sections/report/index.js b/web/client/src/sections/report/index.js
deleted file mode 100644
index 68dac209..00000000
--- a/web/client/src/sections/report/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-import reducers from './reducers';
-import routes from './routes';
-import actions from './actions';
-import { getNavItem } from './nav-item';
-
-export default {
-    key: 'report',
-    name: '报表管理',
-    reducers: reducers,
-    routes: routes,
-    actions: actions,
-    getNavItem: getNavItem
-};
\ No newline at end of file
diff --git a/web/client/src/sections/report/nav-item.js b/web/client/src/sections/report/nav-item.js
deleted file mode 100644
index 29c57396..00000000
--- a/web/client/src/sections/report/nav-item.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import React from 'react';
-import { Link } from 'react-router-dom';
-import { Menu } from 'antd';
-import { FileTextOutlined } from '@ant-design/icons';
-import { Func } from '$utils';
-import { push } from 'react-router-redux';
-
-
-const SubMenu = Menu.SubMenu;
-
-export function getNavItem(user, dispatch) {
-    if (user.type != 1 && user.type != 2) {
-        dispatch(push('/fillion/infor'));
-        return null
-    }
-    if (!Func.isAuthorized("REPORT_MANAGE")) {
-        return null
-    }
-    return (
-        } title={'报表管理'}>
-            {Func.isAuthorized("REPROT_CONFIG") && 
-                报表配置
-            }
-            {Func.isAuthorized("REPORT_DOWN") && 
-                报表下载
-            }
-            {Func.isAuthorized("REPORT_LIST") &&
-                
-                    整治汇总表
-                
-            }
-        
-
-    );
-}
\ No newline at end of file
diff --git a/web/client/src/sections/report/reducers/index.js b/web/client/src/sections/report/reducers/index.js
deleted file mode 100644
index 7ed10886..00000000
--- a/web/client/src/sections/report/reducers/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-export default {
-
-}
\ No newline at end of file
diff --git a/web/client/src/sections/report/routes.js b/web/client/src/sections/report/routes.js
deleted file mode 100644
index 1d55966d..00000000
--- a/web/client/src/sections/report/routes.js
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-import { Config, Download, Compile } from './containers';
-
-export default [{
-    type: 'inner',
-    route: {
-        path: '/report',
-        key: 'report',
-        breadcrumb: '报表管理',
-        menuSelectKeys: ['config'],
-        menuOpenKeys: ['report'],
-        // 不设置 component 则面包屑禁止跳转
-        childRoutes: [{
-            path: '/config',
-            key: 'reportConfig',
-            component: Config,
-            menuSelectKeys:['reportConfig'],
-            breadcrumb: '报表配置',
-        }, {
-            path: '/download',
-            key: 'reportDownload',
-            menuSelectKeys:['reportDownload'],
-            component: Download,
-            breadcrumb: '报表下载',
-        }, {
-            path: '/compile',
-            key: 'reportCompile',
-            menuSelectKeys:['reportCompile'],
-            component: Compile,
-            breadcrumb: '整治汇总表',
-        }]
-    }
-}];
\ No newline at end of file
diff --git a/web/client/src/sections/report/style.less b/web/client/src/sections/report/style.less
deleted file mode 100644
index 33234528..00000000
--- a/web/client/src/sections/report/style.less
+++ /dev/null
@@ -1,3 +0,0 @@
-#example:hover {
-    font-size: larger;
-}
\ No newline at end of file
diff --git a/web/client/src/utils/webapi.js b/web/client/src/utils/webapi.js
index 25e9f3b4..1f6a90bf 100644
--- a/web/client/src/utils/webapi.js
+++ b/web/client/src/utils/webapi.js
@@ -7,13 +7,19 @@ export const ApiTable = {
 
     getEnterprisesMembers: 'enterprises/{enterpriseId}/members',
 
-    //组织管理-用户管理
-    getDepMessage: 'organization/department',
-    getDepUser: 'organization/department/{depId}/user',
-    createUser: 'organization/department/user',
-    updateUser: 'organization/department/user/{id}',
-    delUser: 'organization/department/user/{ids}',
-    resetPwd: '/organization/department/user/resetPwd/{id}',
+     //组织管理-用户管理-部门
+    getDepMessage: 'department',
+    createMessage: 'department',
+    updateDepMessage: 'department',
+    delDepMessage: 'department/{depId}',
+    //组织管理-用户管理-用户 
+    getDepUser: 'department/{depId}/user',
+    createUser: 'department/user',
+    updateUser: 'department/user/{userId}',
+    delUser: 'department/user/{userIds}',
+
+    resetPwd: '/organization/department/user/resetPwd/{id}',
+
 
     //用户权限
     getResource: 'resource',
diff --git a/web/log/development.txt b/web/log/development.txt
index b79ade1c..606a4d04 100644
--- a/web/log/development.txt
+++ b/web/log/development.txt
@@ -3415,5 +3415,5 @@
 2022-07-18 17:40:02.984 - [32minfo[39m: [Router] Inject api: attachment/index
 2022-07-19 09:38:20.086 - [34mdebug[39m: [FS-LOGGER] Init.
 2022-07-19 09:38:20.998 - [32minfo[39m: [Router] Inject api: attachment/index
-2022-07-20 19:49:25.720 - [34mdebug[39m: [FS-LOGGER] Init.
-2022-07-20 19:49:25.776 - [32minfo[39m: [Router] Inject api: attachment/index
+2022-07-20 19:15:55.678 - [34mdebug[39m: [FS-LOGGER] Init.
+2022-07-20 19:15:56.118 - [32minfo[39m: [Router] Inject api: attachment/index
diff --git a/web/package-lock.json b/web/package-lock.json
index eb9cdd96..ee58156f 100644
--- a/web/package-lock.json
+++ b/web/package-lock.json
@@ -52,6 +52,272 @@
         "rc-util": "^5.4.0"
       }
     },
+    "@ant-design/pro-components": {
+      "version": "1.1.11",
+      "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-components/-/pro-components-1.1.11.tgz",
+      "integrity": "sha512-90ofw4/Fec/b6hvJdRc+n1UphAo6SPMcidCJv3mRcxkua8IAupGt61gzau8YRTkJ0LR0GvYzf+x6sjHviN59Aw==",
+      "requires": {
+        "@ant-design/pro-card": "1.20.13",
+        "@ant-design/pro-descriptions": "1.11.11",
+        "@ant-design/pro-field": "1.34.20",
+        "@ant-design/pro-form": "1.70.3",
+        "@ant-design/pro-layout": "6.38.13",
+        "@ant-design/pro-list": "1.21.73",
+        "@ant-design/pro-provider": "1.9.0",
+        "@ant-design/pro-skeleton": "1.0.10",
+        "@ant-design/pro-table": "2.77.3",
+        "@ant-design/pro-utils": "1.42.5",
+        "@babel/runtime": "^7.16.3",
+        "antd": ">=4.0"
+      },
+      "dependencies": {
+        "@ant-design/pro-card": {
+          "version": "1.20.13",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-card/-/pro-card-1.20.13.tgz",
+          "integrity": "sha512-Av4QYSuxZPzUGyoR2Gmz5Dnl2+2UUnPrS/7JA7Y/5HqZBzXMYdd6T4Wk3KAMoX+NmOuBtDM28jWGcvPRVKoCMg==",
+          "requires": {
+            "@ant-design/icons": "^4.2.1",
+            "@ant-design/pro-utils": "1.42.5",
+            "@babel/runtime": "^7.18.0",
+            "classnames": "^2.2.6",
+            "omit.js": "^2.0.2",
+            "rc-util": "^5.4.0"
+          },
+          "dependencies": {
+            "@babel/runtime": {
+              "version": "7.18.9",
+              "resolved": "http://npm.anxinyun.cn/@babel%2fruntime/-/runtime-7.18.9.tgz",
+              "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+              "requires": {
+                "regenerator-runtime": "^0.13.4"
+              }
+            }
+          }
+        },
+        "@ant-design/pro-field": {
+          "version": "1.34.20",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-field/-/pro-field-1.34.20.tgz",
+          "integrity": "sha512-/NqXLOwx2erx1HFMh1ydHlBCuhPLpvdm3tMacRxiH5h0QKhoDergGy4+ULLe7hT5FWdbjtI7es0xWUe2+HhMUg==",
+          "requires": {
+            "@ant-design/icons": "^4.2.1",
+            "@ant-design/pro-provider": "1.9.0",
+            "@ant-design/pro-utils": "1.42.5",
+            "@babel/runtime": "^7.18.0",
+            "@chenshuai2144/sketch-color": "^1.0.8",
+            "classnames": "^2.2.6",
+            "lodash.tonumber": "^4.0.3",
+            "moment": "^2.27.0",
+            "omit.js": "^2.0.2",
+            "rc-util": "^5.4.0",
+            "swr": "^1.2.0"
+          },
+          "dependencies": {
+            "@babel/runtime": {
+              "version": "7.18.9",
+              "resolved": "http://npm.anxinyun.cn/@babel%2fruntime/-/runtime-7.18.9.tgz",
+              "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+              "requires": {
+                "regenerator-runtime": "^0.13.4"
+              }
+            }
+          }
+        },
+        "@ant-design/pro-form": {
+          "version": "1.70.3",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-form/-/pro-form-1.70.3.tgz",
+          "integrity": "sha512-uJ+GxYhM5oKX681KiEDE2soG/sJDU3JTo+dov3AFYOjwbKue+/CAfAZ1d1JnVS3sglTKJ98kSxg+/1Ft9UR/pQ==",
+          "requires": {
+            "@ant-design/icons": "^4.2.1",
+            "@ant-design/pro-field": "1.34.20",
+            "@ant-design/pro-provider": "1.9.0",
+            "@ant-design/pro-utils": "1.42.5",
+            "@babel/runtime": "^7.18.0",
+            "@umijs/use-params": "^1.0.9",
+            "classnames": "^2.2.6",
+            "lodash.merge": "^4.6.2",
+            "omit.js": "^2.0.2",
+            "rc-resize-observer": "^1.1.0",
+            "rc-util": "^5.0.6",
+            "use-json-comparison": "^1.0.5",
+            "use-media-antd-query": "^1.1.0"
+          },
+          "dependencies": {
+            "@babel/runtime": {
+              "version": "7.18.9",
+              "resolved": "http://npm.anxinyun.cn/@babel%2fruntime/-/runtime-7.18.9.tgz",
+              "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+              "requires": {
+                "regenerator-runtime": "^0.13.4"
+              }
+            }
+          }
+        },
+        "@ant-design/pro-provider": {
+          "version": "1.9.0",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-provider/-/pro-provider-1.9.0.tgz",
+          "integrity": "sha512-2coPdBMVBapUkjm5vaRhavo9PnrxaADCHvn6PIbPaL/AUflgGBGNlxny0vIjXav8ZFrFaqP2XLa23tv/MLXcQQ==",
+          "requires": {
+            "@babel/runtime": "^7.18.0",
+            "rc-util": "^5.0.1",
+            "swr": "^1.2.0"
+          },
+          "dependencies": {
+            "@babel/runtime": {
+              "version": "7.18.9",
+              "resolved": "http://npm.anxinyun.cn/@babel%2fruntime/-/runtime-7.18.9.tgz",
+              "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+              "requires": {
+                "regenerator-runtime": "^0.13.4"
+              }
+            }
+          }
+        },
+        "@ant-design/pro-table": {
+          "version": "2.77.3",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-table/-/pro-table-2.77.3.tgz",
+          "integrity": "sha512-HuPIvppKYL5+ImOPSdTqai+L+dwCXOBfcj6dIAL4OYGv7/znEF2/5aF7y2du2RZfRB7JGMgiStKrroPrVAhycQ==",
+          "requires": {
+            "@ant-design/icons": "^4.1.0",
+            "@ant-design/pro-card": "1.20.13",
+            "@ant-design/pro-field": "1.34.20",
+            "@ant-design/pro-form": "1.70.3",
+            "@ant-design/pro-provider": "1.9.0",
+            "@ant-design/pro-utils": "1.42.5",
+            "@babel/runtime": "^7.18.0",
+            "classnames": "^2.2.6",
+            "moment": "^2.24.0",
+            "omit.js": "^2.0.2",
+            "rc-util": "^5.0.1",
+            "react-sortable-hoc": "^2.0.0",
+            "unstated-next": "^1.1.0",
+            "use-json-comparison": "^1.0.5",
+            "use-media-antd-query": "^1.1.0"
+          },
+          "dependencies": {
+            "@babel/runtime": {
+              "version": "7.18.9",
+              "resolved": "http://npm.anxinyun.cn/@babel%2fruntime/-/runtime-7.18.9.tgz",
+              "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+              "requires": {
+                "regenerator-runtime": "^0.13.4"
+              }
+            }
+          }
+        },
+        "@ant-design/pro-utils": {
+          "version": "1.42.5",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-utils/-/pro-utils-1.42.5.tgz",
+          "integrity": "sha512-0srMbvsKOfIGdWbJrSsdECHlu2DvinEl4WwlOe4z6fpQQ0kzXfXhYYwNfPw+q5Wb75Mq1KC7kHrYF6wPZclEdQ==",
+          "requires": {
+            "@ant-design/icons": "^4.3.0",
+            "@ant-design/pro-provider": "1.9.0",
+            "@babel/runtime": "^7.18.0",
+            "classnames": "^2.2.6",
+            "moment": "^2.27.0",
+            "rc-util": "^5.0.6",
+            "react-sortable-hoc": "^2.0.0",
+            "swr": "^1.2.0"
+          },
+          "dependencies": {
+            "@babel/runtime": {
+              "version": "7.18.9",
+              "resolved": "http://npm.anxinyun.cn/@babel%2fruntime/-/runtime-7.18.9.tgz",
+              "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+              "requires": {
+                "regenerator-runtime": "^0.13.4"
+              }
+            }
+          }
+        }
+      }
+    },
+    "@ant-design/pro-descriptions": {
+      "version": "1.11.11",
+      "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-descriptions/-/pro-descriptions-1.11.11.tgz",
+      "integrity": "sha512-LU9GfLY9OHpZkgs3G4Xz9o+7U70Z9cUa3uCFYDzm2W3jkLwSxV2o7azW2d76Lw61Gr59IhAMsr9k48vFv1RshA==",
+      "requires": {
+        "@ant-design/pro-field": "1.34.20",
+        "@ant-design/pro-form": "1.70.3",
+        "@ant-design/pro-skeleton": "1.0.10",
+        "@ant-design/pro-utils": "1.42.5",
+        "@babel/runtime": "^7.18.0",
+        "rc-util": "^5.0.6",
+        "use-json-comparison": "^1.0.5"
+      },
+      "dependencies": {
+        "@ant-design/pro-field": {
+          "version": "1.34.20",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-field/-/pro-field-1.34.20.tgz",
+          "integrity": "sha512-/NqXLOwx2erx1HFMh1ydHlBCuhPLpvdm3tMacRxiH5h0QKhoDergGy4+ULLe7hT5FWdbjtI7es0xWUe2+HhMUg==",
+          "requires": {
+            "@ant-design/icons": "^4.2.1",
+            "@ant-design/pro-provider": "1.9.0",
+            "@ant-design/pro-utils": "1.42.5",
+            "@babel/runtime": "^7.18.0",
+            "@chenshuai2144/sketch-color": "^1.0.8",
+            "classnames": "^2.2.6",
+            "lodash.tonumber": "^4.0.3",
+            "moment": "^2.27.0",
+            "omit.js": "^2.0.2",
+            "rc-util": "^5.4.0",
+            "swr": "^1.2.0"
+          }
+        },
+        "@ant-design/pro-form": {
+          "version": "1.70.3",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-form/-/pro-form-1.70.3.tgz",
+          "integrity": "sha512-uJ+GxYhM5oKX681KiEDE2soG/sJDU3JTo+dov3AFYOjwbKue+/CAfAZ1d1JnVS3sglTKJ98kSxg+/1Ft9UR/pQ==",
+          "requires": {
+            "@ant-design/icons": "^4.2.1",
+            "@ant-design/pro-field": "1.34.20",
+            "@ant-design/pro-provider": "1.9.0",
+            "@ant-design/pro-utils": "1.42.5",
+            "@babel/runtime": "^7.18.0",
+            "@umijs/use-params": "^1.0.9",
+            "classnames": "^2.2.6",
+            "lodash.merge": "^4.6.2",
+            "omit.js": "^2.0.2",
+            "rc-resize-observer": "^1.1.0",
+            "rc-util": "^5.0.6",
+            "use-json-comparison": "^1.0.5",
+            "use-media-antd-query": "^1.1.0"
+          }
+        },
+        "@ant-design/pro-provider": {
+          "version": "1.9.0",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-provider/-/pro-provider-1.9.0.tgz",
+          "integrity": "sha512-2coPdBMVBapUkjm5vaRhavo9PnrxaADCHvn6PIbPaL/AUflgGBGNlxny0vIjXav8ZFrFaqP2XLa23tv/MLXcQQ==",
+          "requires": {
+            "@babel/runtime": "^7.18.0",
+            "rc-util": "^5.0.1",
+            "swr": "^1.2.0"
+          }
+        },
+        "@ant-design/pro-utils": {
+          "version": "1.42.5",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-utils/-/pro-utils-1.42.5.tgz",
+          "integrity": "sha512-0srMbvsKOfIGdWbJrSsdECHlu2DvinEl4WwlOe4z6fpQQ0kzXfXhYYwNfPw+q5Wb75Mq1KC7kHrYF6wPZclEdQ==",
+          "requires": {
+            "@ant-design/icons": "^4.3.0",
+            "@ant-design/pro-provider": "1.9.0",
+            "@babel/runtime": "^7.18.0",
+            "classnames": "^2.2.6",
+            "moment": "^2.27.0",
+            "rc-util": "^5.0.6",
+            "react-sortable-hoc": "^2.0.0",
+            "swr": "^1.2.0"
+          }
+        },
+        "@babel/runtime": {
+          "version": "7.18.9",
+          "resolved": "http://npm.anxinyun.cn/@babel%2fruntime/-/runtime-7.18.9.tgz",
+          "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+          "requires": {
+            "regenerator-runtime": "^0.13.4"
+          }
+        }
+      }
+    },
     "@ant-design/pro-field": {
       "version": "1.34.10",
       "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-field/-/pro-field-1.34.10.tgz",
@@ -90,6 +356,276 @@
         "use-media-antd-query": "^1.0.6"
       }
     },
+    "@ant-design/pro-layout": {
+      "version": "6.38.13",
+      "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-layout/-/pro-layout-6.38.13.tgz",
+      "integrity": "sha512-ZNUUJow0pLxOqkuPIGDJJw9FqPYX5Pu/iz5kBRz9vxSakJUylrtg4GWVVuMqZlSbEpRdPdr4WCx0Jz78R4IPmQ==",
+      "requires": {
+        "@ant-design/icons": "^4.0.0",
+        "@ant-design/pro-provider": "1.9.0",
+        "@ant-design/pro-utils": "1.42.5",
+        "@babel/runtime": "^7.18.0",
+        "@umijs/route-utils": "^2.1.0",
+        "@umijs/ssr-darkreader": "^4.9.44",
+        "@umijs/use-params": "^1.0.9",
+        "classnames": "^2.2.6",
+        "lodash.merge": "^4.6.2",
+        "omit.js": "^2.0.2",
+        "path-to-regexp": "2.4.0",
+        "rc-resize-observer": "^1.1.0",
+        "rc-util": "^5.0.6",
+        "swr": "^1.2.0",
+        "unstated-next": "^1.1.0",
+        "use-json-comparison": "^1.0.3",
+        "use-media-antd-query": "^1.1.0",
+        "warning": "^4.0.3"
+      },
+      "dependencies": {
+        "@ant-design/pro-provider": {
+          "version": "1.9.0",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-provider/-/pro-provider-1.9.0.tgz",
+          "integrity": "sha512-2coPdBMVBapUkjm5vaRhavo9PnrxaADCHvn6PIbPaL/AUflgGBGNlxny0vIjXav8ZFrFaqP2XLa23tv/MLXcQQ==",
+          "requires": {
+            "@babel/runtime": "^7.18.0",
+            "rc-util": "^5.0.1",
+            "swr": "^1.2.0"
+          }
+        },
+        "@ant-design/pro-utils": {
+          "version": "1.42.5",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-utils/-/pro-utils-1.42.5.tgz",
+          "integrity": "sha512-0srMbvsKOfIGdWbJrSsdECHlu2DvinEl4WwlOe4z6fpQQ0kzXfXhYYwNfPw+q5Wb75Mq1KC7kHrYF6wPZclEdQ==",
+          "requires": {
+            "@ant-design/icons": "^4.3.0",
+            "@ant-design/pro-provider": "1.9.0",
+            "@babel/runtime": "^7.18.0",
+            "classnames": "^2.2.6",
+            "moment": "^2.27.0",
+            "rc-util": "^5.0.6",
+            "react-sortable-hoc": "^2.0.0",
+            "swr": "^1.2.0"
+          }
+        },
+        "@babel/runtime": {
+          "version": "7.18.9",
+          "resolved": "http://npm.anxinyun.cn/@babel%2fruntime/-/runtime-7.18.9.tgz",
+          "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+          "requires": {
+            "regenerator-runtime": "^0.13.4"
+          }
+        }
+      }
+    },
+    "@ant-design/pro-list": {
+      "version": "1.21.73",
+      "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-list/-/pro-list-1.21.73.tgz",
+      "integrity": "sha512-TifcYSH9MPmDOiiaUXCSyK4kEXQRZrYCQC0TUYP2xZ4nsHtO0SOrj4NR0NdjuPZYGA9aSkSY/tlJhEIlrZDw5A==",
+      "requires": {
+        "@ant-design/icons": "^4.0.0",
+        "@ant-design/pro-card": "1.20.13",
+        "@ant-design/pro-field": "1.34.20",
+        "@ant-design/pro-table": "2.77.3",
+        "@babel/runtime": "^7.18.0",
+        "classnames": "^2.2.6",
+        "moment": "^2.24.0",
+        "rc-resize-observer": "^1.0.0",
+        "rc-util": "^4.19.0",
+        "unstated-next": "^1.1.0",
+        "use-media-antd-query": "^1.1.0"
+      },
+      "dependencies": {
+        "@ant-design/pro-card": {
+          "version": "1.20.13",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-card/-/pro-card-1.20.13.tgz",
+          "integrity": "sha512-Av4QYSuxZPzUGyoR2Gmz5Dnl2+2UUnPrS/7JA7Y/5HqZBzXMYdd6T4Wk3KAMoX+NmOuBtDM28jWGcvPRVKoCMg==",
+          "requires": {
+            "@ant-design/icons": "^4.2.1",
+            "@ant-design/pro-utils": "1.42.5",
+            "@babel/runtime": "^7.18.0",
+            "classnames": "^2.2.6",
+            "omit.js": "^2.0.2",
+            "rc-util": "^5.4.0"
+          },
+          "dependencies": {
+            "rc-util": {
+              "version": "5.23.0",
+              "resolved": "http://npm.anxinyun.cn/rc-util/-/rc-util-5.23.0.tgz",
+              "integrity": "sha512-lgm6diJ/pLgyfoZY59Vz7sW4mSoQCgozqbBye9IJ7/mb5w5h4T7h+i2JpXAx/UBQxscBZe68q0sP7EW+qfkKUg==",
+              "requires": {
+                "@babel/runtime": "^7.18.3",
+                "react-is": "^16.12.0",
+                "shallowequal": "^1.1.0"
+              }
+            }
+          }
+        },
+        "@ant-design/pro-field": {
+          "version": "1.34.20",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-field/-/pro-field-1.34.20.tgz",
+          "integrity": "sha512-/NqXLOwx2erx1HFMh1ydHlBCuhPLpvdm3tMacRxiH5h0QKhoDergGy4+ULLe7hT5FWdbjtI7es0xWUe2+HhMUg==",
+          "requires": {
+            "@ant-design/icons": "^4.2.1",
+            "@ant-design/pro-provider": "1.9.0",
+            "@ant-design/pro-utils": "1.42.5",
+            "@babel/runtime": "^7.18.0",
+            "@chenshuai2144/sketch-color": "^1.0.8",
+            "classnames": "^2.2.6",
+            "lodash.tonumber": "^4.0.3",
+            "moment": "^2.27.0",
+            "omit.js": "^2.0.2",
+            "rc-util": "^5.4.0",
+            "swr": "^1.2.0"
+          },
+          "dependencies": {
+            "rc-util": {
+              "version": "5.23.0",
+              "resolved": "http://npm.anxinyun.cn/rc-util/-/rc-util-5.23.0.tgz",
+              "integrity": "sha512-lgm6diJ/pLgyfoZY59Vz7sW4mSoQCgozqbBye9IJ7/mb5w5h4T7h+i2JpXAx/UBQxscBZe68q0sP7EW+qfkKUg==",
+              "requires": {
+                "@babel/runtime": "^7.18.3",
+                "react-is": "^16.12.0",
+                "shallowequal": "^1.1.0"
+              }
+            }
+          }
+        },
+        "@ant-design/pro-form": {
+          "version": "1.70.3",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-form/-/pro-form-1.70.3.tgz",
+          "integrity": "sha512-uJ+GxYhM5oKX681KiEDE2soG/sJDU3JTo+dov3AFYOjwbKue+/CAfAZ1d1JnVS3sglTKJ98kSxg+/1Ft9UR/pQ==",
+          "requires": {
+            "@ant-design/icons": "^4.2.1",
+            "@ant-design/pro-field": "1.34.20",
+            "@ant-design/pro-provider": "1.9.0",
+            "@ant-design/pro-utils": "1.42.5",
+            "@babel/runtime": "^7.18.0",
+            "@umijs/use-params": "^1.0.9",
+            "classnames": "^2.2.6",
+            "lodash.merge": "^4.6.2",
+            "omit.js": "^2.0.2",
+            "rc-resize-observer": "^1.1.0",
+            "rc-util": "^5.0.6",
+            "use-json-comparison": "^1.0.5",
+            "use-media-antd-query": "^1.1.0"
+          },
+          "dependencies": {
+            "rc-util": {
+              "version": "5.23.0",
+              "resolved": "http://npm.anxinyun.cn/rc-util/-/rc-util-5.23.0.tgz",
+              "integrity": "sha512-lgm6diJ/pLgyfoZY59Vz7sW4mSoQCgozqbBye9IJ7/mb5w5h4T7h+i2JpXAx/UBQxscBZe68q0sP7EW+qfkKUg==",
+              "requires": {
+                "@babel/runtime": "^7.18.3",
+                "react-is": "^16.12.0",
+                "shallowequal": "^1.1.0"
+              }
+            }
+          }
+        },
+        "@ant-design/pro-provider": {
+          "version": "1.9.0",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-provider/-/pro-provider-1.9.0.tgz",
+          "integrity": "sha512-2coPdBMVBapUkjm5vaRhavo9PnrxaADCHvn6PIbPaL/AUflgGBGNlxny0vIjXav8ZFrFaqP2XLa23tv/MLXcQQ==",
+          "requires": {
+            "@babel/runtime": "^7.18.0",
+            "rc-util": "^5.0.1",
+            "swr": "^1.2.0"
+          },
+          "dependencies": {
+            "rc-util": {
+              "version": "5.23.0",
+              "resolved": "http://npm.anxinyun.cn/rc-util/-/rc-util-5.23.0.tgz",
+              "integrity": "sha512-lgm6diJ/pLgyfoZY59Vz7sW4mSoQCgozqbBye9IJ7/mb5w5h4T7h+i2JpXAx/UBQxscBZe68q0sP7EW+qfkKUg==",
+              "requires": {
+                "@babel/runtime": "^7.18.3",
+                "react-is": "^16.12.0",
+                "shallowequal": "^1.1.0"
+              }
+            }
+          }
+        },
+        "@ant-design/pro-table": {
+          "version": "2.77.3",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-table/-/pro-table-2.77.3.tgz",
+          "integrity": "sha512-HuPIvppKYL5+ImOPSdTqai+L+dwCXOBfcj6dIAL4OYGv7/znEF2/5aF7y2du2RZfRB7JGMgiStKrroPrVAhycQ==",
+          "requires": {
+            "@ant-design/icons": "^4.1.0",
+            "@ant-design/pro-card": "1.20.13",
+            "@ant-design/pro-field": "1.34.20",
+            "@ant-design/pro-form": "1.70.3",
+            "@ant-design/pro-provider": "1.9.0",
+            "@ant-design/pro-utils": "1.42.5",
+            "@babel/runtime": "^7.18.0",
+            "classnames": "^2.2.6",
+            "moment": "^2.24.0",
+            "omit.js": "^2.0.2",
+            "rc-util": "^5.0.1",
+            "react-sortable-hoc": "^2.0.0",
+            "unstated-next": "^1.1.0",
+            "use-json-comparison": "^1.0.5",
+            "use-media-antd-query": "^1.1.0"
+          },
+          "dependencies": {
+            "rc-util": {
+              "version": "5.23.0",
+              "resolved": "http://npm.anxinyun.cn/rc-util/-/rc-util-5.23.0.tgz",
+              "integrity": "sha512-lgm6diJ/pLgyfoZY59Vz7sW4mSoQCgozqbBye9IJ7/mb5w5h4T7h+i2JpXAx/UBQxscBZe68q0sP7EW+qfkKUg==",
+              "requires": {
+                "@babel/runtime": "^7.18.3",
+                "react-is": "^16.12.0",
+                "shallowequal": "^1.1.0"
+              }
+            }
+          }
+        },
+        "@ant-design/pro-utils": {
+          "version": "1.42.5",
+          "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-utils/-/pro-utils-1.42.5.tgz",
+          "integrity": "sha512-0srMbvsKOfIGdWbJrSsdECHlu2DvinEl4WwlOe4z6fpQQ0kzXfXhYYwNfPw+q5Wb75Mq1KC7kHrYF6wPZclEdQ==",
+          "requires": {
+            "@ant-design/icons": "^4.3.0",
+            "@ant-design/pro-provider": "1.9.0",
+            "@babel/runtime": "^7.18.0",
+            "classnames": "^2.2.6",
+            "moment": "^2.27.0",
+            "rc-util": "^5.0.6",
+            "react-sortable-hoc": "^2.0.0",
+            "swr": "^1.2.0"
+          },
+          "dependencies": {
+            "rc-util": {
+              "version": "5.23.0",
+              "resolved": "http://npm.anxinyun.cn/rc-util/-/rc-util-5.23.0.tgz",
+              "integrity": "sha512-lgm6diJ/pLgyfoZY59Vz7sW4mSoQCgozqbBye9IJ7/mb5w5h4T7h+i2JpXAx/UBQxscBZe68q0sP7EW+qfkKUg==",
+              "requires": {
+                "@babel/runtime": "^7.18.3",
+                "react-is": "^16.12.0",
+                "shallowequal": "^1.1.0"
+              }
+            }
+          }
+        },
+        "@babel/runtime": {
+          "version": "7.18.9",
+          "resolved": "http://npm.anxinyun.cn/@babel%2fruntime/-/runtime-7.18.9.tgz",
+          "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+          "requires": {
+            "regenerator-runtime": "^0.13.4"
+          }
+        },
+        "rc-util": {
+          "version": "4.21.1",
+          "resolved": "http://npm.anxinyun.cn/rc-util/-/rc-util-4.21.1.tgz",
+          "integrity": "sha1-iGAtDDGFAgqhBT2aHnDqwWG+ywU=",
+          "requires": {
+            "add-dom-event-listener": "^1.1.0",
+            "prop-types": "^15.5.10",
+            "react-is": "^16.12.0",
+            "react-lifecycles-compat": "^3.0.4",
+            "shallowequal": "^1.1.0"
+          }
+        }
+      }
+    },
     "@ant-design/pro-provider": {
       "version": "1.6.5",
       "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-provider/-/pro-provider-1.6.5.tgz",
@@ -100,6 +636,25 @@
         "swr": "^1.2.0"
       }
     },
+    "@ant-design/pro-skeleton": {
+      "version": "1.0.10",
+      "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-skeleton/-/pro-skeleton-1.0.10.tgz",
+      "integrity": "sha512-/CeGtV587kqq6efk2DBsfZD43C0WSGFlw2R9eyJepWcv/+mfgZJ7yPM5m9Zd56EsChG+iu3uLHp56GRhAuh/PQ==",
+      "requires": {
+        "@babel/runtime": "^7.18.0",
+        "use-media-antd-query": "^1.1.0"
+      },
+      "dependencies": {
+        "@babel/runtime": {
+          "version": "7.18.9",
+          "resolved": "http://npm.anxinyun.cn/@babel%2fruntime/-/runtime-7.18.9.tgz",
+          "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
+          "requires": {
+            "regenerator-runtime": "^0.13.4"
+          }
+        }
+      }
+    },
     "@ant-design/pro-table": {
       "version": "2.74.3",
       "resolved": "http://npm.anxinyun.cn/@ant-design%2fpro-table/-/pro-table-2.74.3.tgz",
@@ -1757,6 +2312,11 @@
         "@babel/runtime": "^7.0.0"
       }
     },
+    "@qixian.cs/path-to-regexp": {
+      "version": "6.1.0",
+      "resolved": "http://npm.anxinyun.cn/@qixian.cs%2fpath-to-regexp/-/path-to-regexp-6.1.0.tgz",
+      "integrity": "sha1-a4StAVljMqupX6KdLnAQRpjNXEU="
+    },
     "@react-dnd/asap": {
       "version": "4.0.1",
       "resolved": "http://npm.anxinyun.cn/@react-dnd%2fasap/-/asap-4.0.1.tgz",
@@ -1955,6 +2515,29 @@
         }
       }
     },
+    "@umijs/route-utils": {
+      "version": "2.1.5",
+      "resolved": "http://npm.anxinyun.cn/@umijs%2froute-utils/-/route-utils-2.1.5.tgz",
+      "integrity": "sha512-ByDXNljAMWeCyHOKkM3gc18TgvtAGV9Di/A0MGnzVrf8PY/MdwogGSOktf3Z4w1Iqha2Bt8vHZk3SnQF8C8P4w==",
+      "requires": {
+        "@qixian.cs/path-to-regexp": "^6.1.0",
+        "fast-deep-equal": "^3.1.3",
+        "lodash.isequal": "^4.5.0",
+        "memoize-one": "^5.1.1"
+      },
+      "dependencies": {
+        "memoize-one": {
+          "version": "5.2.1",
+          "resolved": "http://npm.anxinyun.cn/memoize-one/-/memoize-one-5.2.1.tgz",
+          "integrity": "sha1-gzeqPEM1WBg57AHD1ZQJDOvo8A4="
+        }
+      }
+    },
+    "@umijs/ssr-darkreader": {
+      "version": "4.9.45",
+      "resolved": "http://npm.anxinyun.cn/@umijs%2fssr-darkreader/-/ssr-darkreader-4.9.45.tgz",
+      "integrity": "sha512-XlcwzSYQ/SRZpHdwIyMDS4FOGX5kP4U/2g2mykyn/iPQTK4xTiQAyBu6UnnDnn7d5P8s7Atzh1C7H0ETNOypJg=="
+    },
     "@umijs/use-params": {
       "version": "1.0.9",
       "resolved": "http://npm.anxinyun.cn/@umijs%2fuse-params/-/use-params-1.0.9.tgz",
@@ -2179,6 +2762,14 @@
       "resolved": "http://npm.anxinyun.cn/acorn-walk/-/acorn-walk-8.2.0.tgz",
       "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
     },
+    "add-dom-event-listener": {
+      "version": "1.1.0",
+      "resolved": "http://npm.anxinyun.cn/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz",
+      "integrity": "sha1-apLbOg3Qq8JU4JXA8dwUrLuq4xA=",
+      "requires": {
+        "object-assign": "4.x"
+      }
+    },
     "address": {
       "version": "1.2.0",
       "resolved": "http://npm.anxinyun.cn/address/-/address-1.2.0.tgz",
@@ -6999,12 +7590,22 @@
       "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
       "dev": true
     },
+    "lodash.isequal": {
+      "version": "4.5.0",
+      "resolved": "http://npm.anxinyun.cn/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+      "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
+    },
     "lodash.isequalwith": {
       "version": "4.4.0",
       "resolved": "http://npm.anxinyun.cn/lodash.isequalwith/-/lodash.isequalwith-4.4.0.tgz",
       "integrity": "sha1-Jmcm3dUo+FTyH06pigZWBuD7xrA=",
       "dev": true
     },
+    "lodash.merge": {
+      "version": "4.6.2",
+      "resolved": "http://npm.anxinyun.cn/lodash.merge/-/lodash.merge-4.6.2.tgz",
+      "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo="
+    },
     "lodash.sortby": {
       "version": "4.7.0",
       "resolved": "http://npm.anxinyun.cn/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
@@ -7950,8 +8551,7 @@
     "path-to-regexp": {
       "version": "2.4.0",
       "resolved": "http://npm.anxinyun.cn/path-to-regexp/-/path-to-regexp-2.4.0.tgz",
-      "integrity": "sha1-Nc5/Mz1WFvHB4b/iZsOrouWy5wQ=",
-      "dev": true
+      "integrity": "sha1-Nc5/Mz1WFvHB4b/iZsOrouWy5wQ="
     },
     "pause-stream": {
       "version": "0.0.11",
@@ -8940,8 +9540,7 @@
     "react-lifecycles-compat": {
       "version": "3.0.4",
       "resolved": "http://npm.anxinyun.cn/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
-      "integrity": "sha1-TxonOv38jzSIqMUWv9p4+HI1I2I=",
-      "dev": true
+      "integrity": "sha1-TxonOv38jzSIqMUWv9p4+HI1I2I="
     },
     "react-quill": {
       "version": "1.3.5",
@@ -11047,6 +11646,14 @@
         "acorn-walk": "^8.2.0"
       }
     },
+    "warning": {
+      "version": "4.0.3",
+      "resolved": "http://npm.anxinyun.cn/warning/-/warning-4.0.3.tgz",
+      "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=",
+      "requires": {
+        "loose-envify": "^1.0.0"
+      }
+    },
     "watchpack": {
       "version": "2.3.1",
       "resolved": "http://npm.anxinyun.cn/watchpack/-/watchpack-2.3.1.tgz",
diff --git a/web/package.json b/web/package.json
index 8dfa034d..9378e1d4 100644
--- a/web/package.json
+++ b/web/package.json
@@ -62,6 +62,7 @@
   },
   "dependencies": {
     "@ant-design/icons": "^4.6.2",
+    "@ant-design/pro-components": "^1.1.11",
     "@ant-design/pro-form": "^1.34.0",
     "@ant-design/pro-table": "^2.48.0",
     "@antv/g6": "^4.2.5",