diff --git a/src/service/apiurl.js b/src/service/apiurl.js index 8624d1185..734a5d188 100644 --- a/src/service/apiurl.js +++ b/src/service/apiurl.js @@ -1039,6 +1039,13 @@ const apiurl = { } }, + // 全周期 + gcdsj:{ + qzqda:{ + list:service_fxdd + '/projectEvents/doc/page' + } + } + } export default apiurl diff --git a/src/views/sq/qys/kqys/index.js b/src/views/sq/qys/kqys/index.js index 26fd77857..03526a7a4 100644 --- a/src/views/sq/qys/kqys/index.js +++ b/src/views/sq/qys/kqys/index.js @@ -53,12 +53,12 @@ const Page = () => { }, []) return (
-
+
{list.map(item =>
tabClick(item)}>{item.name}
)}
{ @@ -43,7 +44,7 @@ const Page = () => { downloadLink.click(); } - const { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.rcgl.gcdsj.page).find_noCode); + const { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.gcdsj.qzqda.list).find_noCode); @@ -75,7 +76,7 @@ const viewPdf = (params) => {
- {tableProps.dataSource.map((item, index) => ( + {tableProps.dataSource?.map((item, index) => (
{item.eventsDate} @@ -85,12 +86,12 @@ const viewPdf = (params) => { 附件: { - item.files.length > 0 && item.files.map(file => { + item.files?.length > 0 && item.files?.map(file => { return (
- {file.fileName.indexOf('.docx') > -1 ? + {file.fileName?.indexOf('.docx') > -1 ?
{ download(file.fileId) }} style={{ cursor: 'pointer' }} @@ -100,7 +101,7 @@ const viewPdf = (params) => { />
: - file.fileName.indexOf('.pdf') > -1 ? + file.fileName?.indexOf('.pdf') > -1 ?
{ viewPdf(file?.fileId) }} style={{ cursor: 'pointer' }} @@ -108,7 +109,7 @@ const viewPdf = (params) => {
: - file.fileName.indexOf('.zip') > -1 ? + file.fileName?.indexOf('.zip') > -1 ?
{ download(file?.fileId) }} style={{ cursor: 'pointer' }} @@ -116,7 +117,7 @@ const viewPdf = (params) => {
: - file.fileName.indexOf('.xlsx') > -1 ? + file.fileName?.indexOf('.xlsx') > -1 ?
{ download(file?.fileId) }} style={{ cursor: 'pointer' }} diff --git a/src/views/sq/qzq/qzqda/index.less b/src/views/sq/qzq/qzqda/index.less index e0bd72879..a578e119b 100644 --- a/src/views/sq/qzq/qzqda/index.less +++ b/src/views/sq/qzq/qzqda/index.less @@ -24,7 +24,11 @@ // align-items: center; column-gap: 20px; .item-right{ - flex:1 + flex:1; + display: flex; + flex-direction: column; + justify-content: space-between; + height: 70px; } } } \ No newline at end of file diff --git a/src/views/sq/qzq/qzqda/toolbar.js b/src/views/sq/qzq/qzqda/toolbar.js index e8f1fd24d..3205c0ba2 100644 --- a/src/views/sq/qzq/qzqda/toolbar.js +++ b/src/views/sq/qzq/qzqda/toolbar.js @@ -1,9 +1,9 @@ -import React, { useEffect,useState } from 'react'; +import React, { useEffect, useState } from 'react'; import { Form, Input, Button, DatePicker } from 'antd'; import moment from 'moment'; const { RangePicker } = DatePicker; -const ToolBar = ({ setSearchVal, onSave, storeData,role }) => { +const ToolBar = ({ setSearchVal, onSave, storeData, role }) => { const addBtn = role?.rule?.find(item => item.menuName == "新增"); const searchBtn = role?.rule?.find(item => item.menuName == "查询"); const [form] = Form.useForm(); @@ -17,39 +17,35 @@ const ToolBar = ({ setSearchVal, onSave, storeData,role }) => { } } delete values.tm - setSearchVal({...values, dataSo}); + setSearchVal({ ...values, dataSo }); } return ( <> -
+
- + {searchBtn ? - : null } - + : null} + - { - (onSave) ? - - - - :null - } + + +
diff --git a/src/views/sz/szzf/ajdj/bajz.js b/src/views/sz/szzf/ajdj/bajz.js index 8e51743f1..e25a7af71 100644 --- a/src/views/sz/szzf/ajdj/bajz.js +++ b/src/views/sz/szzf/ajdj/bajz.js @@ -52,7 +52,7 @@ const Page = () => {
-
+
案卷存档
@@ -76,7 +76,7 @@ const Page = () => {
-
+
{item.type}
diff --git a/src/views/sz/szzf/ajdj/lsyx.js b/src/views/sz/szzf/ajdj/lsyx.js index bdcaa10b5..710b13979 100644 --- a/src/views/sz/szzf/ajdj/lsyx.js +++ b/src/views/sz/szzf/ajdj/lsyx.js @@ -44,7 +44,7 @@ const Page = () => {
-
+
{item.type}
diff --git a/src/views/sz/szzf/ajtj/barCharts.js b/src/views/sz/szzf/ajtj/barCharts.js index 9fc8b359b..d2dd35583 100644 --- a/src/views/sz/szzf/ajtj/barCharts.js +++ b/src/views/sz/szzf/ajtj/barCharts.js @@ -1,9 +1,9 @@ import dayjs from 'dayjs'; import { Space, Table, Tag, DatePicker, Form, Select, Button, Card } from 'antd'; import ReactECharts from 'echarts-for-react'; -import { useEffect, useState,useMemo } from 'react'; +import { useEffect, useState, useMemo } from 'react'; -const Page = ({title}) => { +const Page = ({ title = '标题' }) => { const [echart2, setEchart2] = useState(Object()) const [inspectordata, setInspectorData] = useState([{}]) const [plandata, setPlanData] = useState(Object()) @@ -48,9 +48,9 @@ const Page = ({title}) => { } - },[plandata]) + }, [plandata]) console.log(getPlanOption); - + const onOk = (event, index) => { if (event !== null) { let params = { @@ -60,20 +60,23 @@ const Page = ({title}) => { // getStm(params, index) } } - useEffect(()=>{ + useEffect(() => { let data = [ { value: 1048, name: 'Search Engine' }, { value: 735, name: 'Direct' }, { value: 580, name: 'Email' }, { value: 484, name: 'Union Ads' }, { value: 300, name: 'Video Ads' } - ] - setPlanData(data) + ] + setPlanData(data) }) return ( <>
-
{title}
+
+
+ {title} +
onOk(e, 2)} diff --git a/src/views/sz/szzf/ajtj/bincharts.js b/src/views/sz/szzf/ajtj/bincharts.js index cc7c452fb..dfc185f1b 100644 --- a/src/views/sz/szzf/ajtj/bincharts.js +++ b/src/views/sz/szzf/ajtj/bincharts.js @@ -1,9 +1,9 @@ import dayjs from 'dayjs'; import { Space, Table, Tag, DatePicker, Form, Select, Button, Card } from 'antd'; import ReactECharts from 'echarts-for-react'; -import { useEffect, useState,useMemo } from 'react'; +import { useEffect, useState, useMemo } from 'react'; -const Page = ({title}) => { +const Page = ({ title = '标题' }) => { const [echart2, setEchart2] = useState(Object()) const [inspectordata, setInspectorData] = useState([{}]) const [plandata, setPlanData] = useState(Object()) @@ -48,9 +48,9 @@ const Page = ({title}) => { } - },[plandata]) + }, [plandata]) console.log(getPlanOption); - + const onOk = (event, index) => { if (event !== null) { let params = { @@ -60,20 +60,23 @@ const Page = ({title}) => { // getStm(params, index) } } - useEffect(()=>{ + useEffect(() => { let data = [ { value: 1048, name: 'Search Engine' }, { value: 735, name: 'Direct' }, { value: 580, name: 'Email' }, { value: 484, name: 'Union Ads' }, { value: 300, name: 'Video Ads' } - ] - setPlanData(data) + ] + setPlanData(data) }) return ( <>
-
{title}
+
+
+ {title} +
onOk(e, 2)} diff --git a/src/views/sz/szzf/ajtj/index.js b/src/views/sz/szzf/ajtj/index.js index 38711a4c0..21ff6a883 100644 --- a/src/views/sz/szzf/ajtj/index.js +++ b/src/views/sz/szzf/ajtj/index.js @@ -1,6 +1,8 @@ import Charts from './bincharts' import BarCharts from './barCharts' import LineCharts from './lincharts' +import LdCharts from './ldCharts' + const Page = () => { @@ -11,7 +13,7 @@ const Page = () => {
- +
diff --git a/src/views/sz/szzf/ajtj/ldCharts.js b/src/views/sz/szzf/ajtj/ldCharts.js new file mode 100644 index 000000000..88aff7023 --- /dev/null +++ b/src/views/sz/szzf/ajtj/ldCharts.js @@ -0,0 +1,136 @@ +import dayjs from 'dayjs'; +import { Space, Table, Tag, DatePicker, Form, Select, Button, Card } from 'antd'; +import ReactECharts from 'echarts-for-react'; +import { useEffect, useState, useMemo } from 'react'; + +const Page = ({ title = '标题' }) => { + const [echart2, setEchart2] = useState(Object()) + const [inspectordata, setInspectorData] = useState([{}]) + const [plandata, setPlanData] = useState(Object()) + const [problemdata, setProblemData] = useState(Object()) + const getPlanOption = useMemo((name, data) => { + // let total = 0 + // for (let i = 0; i < data.length; i++) { + // total = total + Number(data[i].value) + // } + return { + angleAxis: { + type: 'category', + data: ['应用服务中心', '技术管理', '综合管理', '进度管理', '质量管理', '安全管理', '其它'] + }, + radar: [ + { + indicator: [ + { text: '' }, + { text: '' }, + { text: '' }, + { text: '' }, + { text: '' }, + { text: '' }, + { text: '' }, + ], + radius: '80%', + splitNumber: 12, + shape: 'circle', + splitArea: { + areaStyle: { + color: '#fff', + } + }, + axisLine: { + lineStyle: { + color: '#d4d4d4' + } + }, + }, + ], + radiusAxis: { + min: 0, + max: 20, + interval: 2, + // 刻度 + axisTick: { + show: false + }, + //刻度数值 + axisLabel: { + show: false + }, + // 线 + axisLine: { + show: false + }, + }, + polar: {}, + series: [ + { + stack: 'a', + type: 'pie', + center: ['50%', '50%'], + selectedOffset: 0, + radius: [0, 140], + roseType: 'area', + itemStyle: {  //去除饼图的指示折线label + normal: { + label: { + show: false, + }, + borderRadius: 8 + }, + }, + data: [ + { value: 40, name: '应用服务中心' }, + { value: 32, name: '技术管理' }, + { value: 30, name: '综合管理' }, + { value: 30, name: '进度管理' }, + { value: 28, name: '质量管理' }, + { value: 28, name: '安全管理' }, + { value: 18, name: '其它' }, + ] + } + ] + } + }, [plandata]) + console.log(getPlanOption); + + const onOk = (event, index) => { + if (event !== null) { + let params = { + stm: dayjs(new Date(event[0])).format('YYYY-MM-DD'), + etm: dayjs(new Date(event[1])).format('YYYY-MM-DD'), + } + // getStm(params, index) + } + } + useEffect(() => { + let data = [ + { value: 1048, name: 'Search Engine' }, + { value: 735, name: 'Direct' }, + { value: 580, name: 'Email' }, + { value: 484, name: 'Union Ads' }, + { value: 300, name: 'Video Ads' } + ] + setPlanData(data) + }) + return ( + <> +
+
+
+ {title} +
+ onOk(e, 2)} + defaultValue={[dayjs().startOf("year"), dayjs()]} + > +
+ setEchart2(e)} + option={getPlanOption} + style={{ height: 350 }} + /> + + ) +} +export default Page \ No newline at end of file diff --git a/src/views/sz/szzf/ajtj/lincharts.js b/src/views/sz/szzf/ajtj/lincharts.js index 11340e488..0b46ede55 100644 --- a/src/views/sz/szzf/ajtj/lincharts.js +++ b/src/views/sz/szzf/ajtj/lincharts.js @@ -4,7 +4,7 @@ import ReactECharts from 'echarts-for-react'; import { useEffect, useState, useMemo } from 'react'; import { encode } from 'punycode'; -const Page = ({ title }) => { +const Page = ({ title = '标题' }) => { const [echart2, setEchart2] = useState(Object()) const [inspectordata, setInspectorData] = useState([{}]) const [plandata, setPlanData] = useState([]) @@ -41,13 +41,13 @@ const Page = ({ title }) => { type: 'line', datasetIndex: 0, encode: { - x: 'name', - y: 'value' + x: 'name', + y: 'value' }, itemStyle: { - color: 'skyblue' + color: 'skyblue' } - }, + }, ] } @@ -74,7 +74,10 @@ const Page = ({ title }) => { return ( <>
-
{title}
+
+
+ {title} +
onOk(e, 2)} diff --git a/src/views/sz/szzf/clyj/treeSelectZdy.js b/src/views/sz/szzf/clyj/treeSelectZdy.js index 8bc17e10b..935935407 100644 --- a/src/views/sz/szzf/clyj/treeSelectZdy.js +++ b/src/views/sz/szzf/clyj/treeSelectZdy.js @@ -1,10 +1,10 @@ -import React, { useState,useMemo } from 'react'; +import React, { useState, useMemo } from 'react'; import { Tree, Input } from 'antd'; const { Search } = Input; -const treeData = [ +const data = [ { - value: 'parent 1', + key: 'parent 1', title: '违反水利工程建设与管理类行为', children: [ { @@ -12,33 +12,33 @@ const treeData = [ title: '侵占、毁坏水法规定相关设施', children: [ { - value: 'leaf1', + key: 'leaf1', title: '侵占、毁坏水工程及堤防、护岸...', }, { - value: 'leaf2', + key: 'leaf2', title: '毁坏防汛、水文监测、水文地质...', }, { - value: 'leaf3', + key: 'leaf3', title: '在水工程保护范围内,从事影响..', } ], }, { - value: 'parent 1-1', + key: 'parent 1-1', title: '破坏大坝管理设施、妨碍大坝', children: [ { - value: 'leaf3', + key: 'leaf4', title: '毁坏大坝及其管理设施', }, { - value: 'leaf3', + key: 'leaf5', title: '危害大坝安全或破坏大坝正常运行', }, { - value: 'leaf3', + key: 'leaf6', title: '在岸区或坝体从事生产活动', }, ], @@ -46,27 +46,75 @@ const treeData = [ ], }, ]; -const Page = () => { - const [value, setValue] = useState(); +let dataList = []; + +const Page = () => { + const [expandedKeys, setExpandedKeys] = useState([]); + const [searchValue, setSearchValue] = useState(''); + const [autoExpandParent, setAutoExpandParent] = useState(true); + + + const onExpand = (newExpandedKeys) => { + setExpandedKeys(newExpandedKeys); + setAutoExpandParent(false); + + }; + const onSearch = (value) => { + // const newExpandedKeys = dataList + // .map((item) => { + // if (item.title.indexOf(value) > -1) { + // return getParentKey(item.key, data); + // } + // return null; + // }) + // .filter((item, i, self) => !!(item && self.indexOf(item) === i)); + // setExpandedKeys(newExpandedKeys); + setSearchValue(value); + setAutoExpandParent(true); + + }; + const treeData = useMemo(() => { + const loop = (data) => + data.map((item) => { + const strTitle = item.title; + const index = strTitle?.indexOf(searchValue); + const beforeStr = strTitle.substring(0, index); + const afterStr = strTitle.slice(index + searchValue.length); + const title = + index > -1 ? ( + + {beforeStr} + {searchValue} + {afterStr} + + ) : ( + {strTitle} + ); + if (item.children) { + return { title, key: item.key, children: loop(item.children) }; + } + if (index > -1) { + dataList.push(item.key) + setExpandedKeys(dataList); + } + return { + title, + key: item.key, + }; + }); + + return loop(data); + }, [searchValue]); - const filterTreeNode=useMemo((treeNode)=>{ - console.log(1111111); - - if (!value) return false; - return treeNode?._title?.indexOf(value) > -1; - },[value]) - const onSearch =(e)=>{ - setValue(e) - console.log(e); - } return ( <> -
+
);