diff --git a/src/components/TableModule/index.jsx b/src/components/TableModule/index.jsx index 8f59462..3efcc3d 100644 --- a/src/components/TableModule/index.jsx +++ b/src/components/TableModule/index.jsx @@ -37,7 +37,7 @@ const { RangePicker } = DatePicker; //如想在外部调用搜索方法,请通过 , Ref.current.fetche 的方式调用 const TableModule = forwardRef((props, ref) => { const { - className="", + className = "", pagename = "", columns = [], //表头 tableData = [], //table的数据 @@ -50,9 +50,10 @@ const TableModule = forwardRef((props, ref) => { rowSelection = false, //自定义选择项 isExport = true, //是否显示导出按钮 diyButton,//右上角自定义按钮 + diyTotal, // 自定义统计 rightButtonGroup = [], //右侧按钮额外的展示,需要传入数组 otherData = {}, //额外需要携带的参数,传入对象 - rowKey="id", //table的key值 + rowKey = "id", //table的key值 userInfo = {},//用户信息页面数据 valueChange, mandatory, @@ -61,12 +62,12 @@ const TableModule = forwardRef((props, ref) => { limitCon,//自定义限制条件 isQuickMenu = [], mandatory_name, - renderAdd=() => {}, + renderAdd = () => { }, pageName = '',//路由名字 showSerial = false,// 表格是否显示序号 limitType = 0, // 时间限制类型 0无限制, < 0 今天之前不可选, > 0 今天之后不可选 limit = 0, // 限制距离今天之前或之后天数 - rightHeaderCompSlot= null, // 右侧头部插入自定义组件,注意计算并表格样式高度 + rightHeaderCompSlot = null, // 右侧头部插入自定义组件,注意计算并表格样式高度 } = props; const [sessionTabList, setSessionTabList] = useSessionStorageState(pageName, { value: {} @@ -131,25 +132,25 @@ const TableModule = forwardRef((props, ref) => { function onShowSizeChange(pn, page_size) { setPageData({ - pn:1, + pn: 1, page_size: page_size }); - fetch({pn:1,page_size:page_size}) + fetch({ pn: 1, page_size: page_size }) } - function onChange(pn, page_size){ - if(pageData.page_size == page_size){ + function onChange(pn, page_size) { + if (pageData.page_size == page_size) { setPageData({ pn, page_size, }); - fetch({pn,page_size}) - }else{ + fetch({ pn, page_size }) + } else { setPageData({ - pn:1, + pn: 1, page_size: page_size }); - fetch({pn:1,page_size:page_size}) + fetch({ pn: 1, page_size: page_size }) } } @@ -185,12 +186,12 @@ const TableModule = forwardRef((props, ref) => { } // 处理异常 daterange不做处理, 会出现date1.isAfter 方法异常 todo --> datepicker 也会出现这个问题 let fv = searchForm.getFieldsValue(); - Object.keys(fv).map(key=>{ - if(temp_obj.hasOwnProperty(key) && fv[key]?.length == 2 && fv[key][0]._isAMomentObject){ - if(temp_obj[key] == null || temp_obj[key].length != 2){ - temp_obj[key] = initFormData[key] ? initFormData[key] : [] - }else{ - temp_obj[key] = [moment(temp_obj[key][0]), moment( temp_obj[key][1])] + Object.keys(fv).map(key => { + if (temp_obj.hasOwnProperty(key) && fv[key]?.length == 2 && fv[key][0]._isAMomentObject) { + if (temp_obj[key] == null || temp_obj[key].length != 2) { + temp_obj[key] = initFormData[key] ? initFormData[key] : [] + } else { + temp_obj[key] = [moment(temp_obj[key][0]), moment(temp_obj[key][1])] } } }) @@ -198,7 +199,7 @@ const TableModule = forwardRef((props, ref) => { if (sessionTabList?.plateValue) { // temp_obj.carId = sessionTabList.plate2 fetchPlateSearch(sessionTabList.plateValue.match(/:(\S*)/)[1], setPlateData, []); - } + } // if (sessionTabList.start_time) { // let temp_obj = { ...sessionTabList, start_time: moment(start_time), end_time: moment(end_time) } // if (sessionTabList.plateValue){ @@ -217,7 +218,7 @@ const TableModule = forwardRef((props, ref) => { // searchForm.setFieldsValue({ ...sessionTabList, carId: sessionTabList.plate2 }) // } // let start_time = sessionTabList.start_time // let end_time = sessionTabList.end_time - } + } fetch('first') }, []) useEffect(() => { @@ -242,16 +243,16 @@ const TableModule = forwardRef((props, ref) => { } } let form = {}; - if(typeof args1 == 'object'){ - form = {...searchForm.getFieldsValue(), ...args1, ...otherData, ...updateData} - }else{ - form = {...searchForm.getFieldsValue(), ...pageData, ...otherData, ...pnno, ...updateData} + if (typeof args1 == 'object') { + form = { ...searchForm.getFieldsValue(), ...args1, ...otherData, ...updateData } + } else { + form = { ...searchForm.getFieldsValue(), ...pageData, ...otherData, ...pnno, ...updateData } } - if(args1 == 'first' ){ // 去掉plateData的监听, 避免进入页面多发送一次请求 - if(sessionTabList?.plate2){ - form.carId = sessionTabList.plate2 + if (args1 == 'first') { // 去掉plateData的监听, 避免进入页面多发送一次请求 + if (sessionTabList?.plate2) { + form.carId = sessionTabList.plate2 } - if(sessionTabList?.region?.length){ + if (sessionTabList?.region?.length) { form.region = sessionTabList.region } } @@ -283,7 +284,7 @@ const TableModule = forwardRef((props, ref) => { ) } } - if(args1 != 'first'){ + if (args1 != 'first') { if (areaName !== null) form[areaName] = areaSelectedList; } if (form.deal_time_start !== void 0 && form.deal_time_end !== void 0) {//暂时写法 @@ -597,9 +598,9 @@ const TableModule = forwardRef((props, ref) => { key={item.name} > {item.hiddenCount ? ( - //autoComplete输入框是否显示自动填充 + //autoComplete输入框是否显示自动填充 ) : ( - + )} ); @@ -817,7 +818,7 @@ const TableModule = forwardRef((props, ref) => { key={item.name} initialValue={item.defaultValue} > - + ) break; @@ -927,6 +928,9 @@ const TableModule = forwardRef((props, ref) => { export_file_name: filename, } } + if (pageName === "charge") { //特殊情况,充电记录导出 + form.start_time = moment(form.start_time[0]).format("YYYY-MM-DD") + "," + moment(form.start_time[1]).format("YYYY-MM-DD") + } if (tableData.length != 0) { exportAjax({ url: exportUrl, @@ -1024,11 +1028,11 @@ const TableModule = forwardRef((props, ref) => { 重置 { - if(pageData.pn == 1){ - fetch(1) - }else{ - setPageData({ ...pageData, pn: 1 }) + onClick={() => { + if (pageData.pn == 1) { + fetch(1) + } else { + setPageData({ ...pageData, pn: 1 }) fetch({ ...pageData, pn: 1 }) } }}> @@ -1058,6 +1062,7 @@ const TableModule = forwardRef((props, ref) => { 共查询到 {total} 条结果 + {diyTotal ? diyTotal : null} {rightButtonGroup.map((item) => item)} @@ -1114,7 +1119,7 @@ const TableModule = forwardRef((props, ref) => { pageSize={pageData.page_size} pageSizeOptions={dictionary?.pageSizeOptions} onChange={onChange} - // onShowSizeChange={onShowSizeChange} + // onShowSizeChange={onShowSizeChange} /> @@ -1197,7 +1202,7 @@ function InputSelectGroup(params) { { diff --git a/src/components/TableModule/index.scss b/src/components/TableModule/index.scss index 9ac1eee..fdb52c2 100644 --- a/src/components/TableModule/index.scss +++ b/src/components/TableModule/index.scss @@ -38,6 +38,14 @@ $color-primary: var(--color-primary); } .right-list { + .charge-static { + .charge-item { + padding: 0 20px; + &:first-child { + margin-left: 20px; + } + } + } .total-wrapper { display: block; .total-item { diff --git a/src/pages/NewEnergy/ChargeStationMgm/index.scss b/src/pages/NewEnergy/ChargeStationMgm/index.scss index 8b110b5..d72bd54 100644 --- a/src/pages/NewEnergy/ChargeStationMgm/index.scss +++ b/src/pages/NewEnergy/ChargeStationMgm/index.scss @@ -5,8 +5,14 @@ .left,.right { width: calc(50% - 10px); .row { + position: relative; width: 100%; margin: 10px 0; + .latlng-box { + position: absolute; + right: 0; + top: 0; + } } .cc-form-tree { margin-bottom: 0; diff --git a/src/pages/NewEnergy/ChargeStationMgm/loadable.jsx b/src/pages/NewEnergy/ChargeStationMgm/loadable.jsx index cbec307..0620fe3 100644 --- a/src/pages/NewEnergy/ChargeStationMgm/loadable.jsx +++ b/src/pages/NewEnergy/ChargeStationMgm/loadable.jsx @@ -8,7 +8,7 @@ import { import ajax from "@/services"; import { useSessionStorageState, useSetState } from "ahooks" import { LoadingOutlined, PlusOutlined } from '@ant-design/icons'; -import { TableModule, FormInput, FormSelect, FormTreeSelectNew, ImgError } from "@/components"; +import { TableModule, FormInput, FormSelect, FormTreeSelectNew, ImgError, SelectGaodeLngLat } from "@/components"; import "./index.scss"; @@ -25,6 +25,8 @@ function Appointment() { const [areaList, setAreaList] = useState([]); //商户名称下拉 const [operatorList, setOperatorList] = useState([]); + // 经纬度选择弹窗 + const [lngLatVisible, setLngLatVisible] = useState(false); // 添加站点 const initAdd = { name: "", @@ -34,7 +36,8 @@ function Appointment() { area: "", operator: "", count: "", - img: "" + img: "", + lng_lat: "" } const [addFormData, setAddFormData] = useSetState(initAdd); // 搜索参数 @@ -208,35 +211,40 @@ function Appointment() { setDetailVisible(true) } const handelOk = () => { - if(!addFormData.name) { + // console.log(addFormData); + if (!addFormData.name) { message.warn("请输入充电站名称") return } - if(!addFormData.code) { + if (!addFormData.code) { message.warn("请输入充电站编码") return } - if(!addFormData.count) { + if (!addFormData.count) { message.warn("请输入车位数量") return } - if(!addFormData.address) { + if (!addFormData.address) { message.warn("请输入详细地址") return } - if(!addFormData.site_type) { + if (!addFormData.site_type) { message.warn("请选择站点类型") return } - if(!addFormData.area) { + if (!addFormData.area) { message.warn("请选择所属区域") return } - if(!addFormData.operator) { + if (!addFormData.operator) { message.warn("请选择商户名称") return } - if(!addFormData.img) { + if (!addFormData.lng_lat) { + message.warn("请选择经纬度") + return + } + if (!addFormData.img) { message.warn("请上传充电照片") return } @@ -401,19 +409,6 @@ function Appointment() { isBayonet={true} onChange={(e) => { setAddFormData({ area: e }) }} /> - {/* */} { setAddFormData({ operator: e }) }} /> + + + + setLngLatVisible(true)} + lngLatVisible={lngLatVisible} + getLntLat={(value) => { + setAddFormData({ lng_lat: value }) + }} + onChange={(adress) => { + console.log(adress); + }} + close={() => setLngLatVisible(false)} + /> + + { if (res.status === 20000) { + setResultData(res) setTableData(res.data); setTotal(res.total); } else { @@ -144,6 +154,37 @@ function Charge() { }); } + const diyTotal = (data) => { + return ( + + + 总电量: + {data.total_capacity||0} + 度 + + + 总电费: + {data.total_electric||0} + 元 + + + 总服务费: + {data.total_service_fee||0} + 元 + + + 总收入: + {data.total_income||0} + 元 + + + 总时长: + {data.total_duration||0} + + + ) + } + const handelAdd = () => { setDetailVisible(true) } @@ -153,6 +194,7 @@ function Charge() { { // 预约记录查询 const getAppointmentList = (params) => { return ajax({ - url: "/api/new_power/records/appointment_list", + url: "/api/nes/record_query/appointment_list", type: "post", data: params, }); @@ -21,7 +21,7 @@ const getAppointmentList = (params) => { // 充电记录查询 const getChargeList = (params) => { return ajax({ - url: "/api/new_power/records/charge_list", + url: "/api/nes/record_query/charge_list", type: "post", data: params, }); @@ -30,7 +30,7 @@ const getChargeList = (params) => { // 违规记录查询 const getViolationList = (params) => { return ajax({ - url: "/api/new_power/records/violation_list", + url: "/api/nes/record_query/violation_list", type: "post", data: params, }); @@ -39,7 +39,7 @@ const getViolationList = (params) => { // 违规类型下拉 const getViolationSelect = (params) => { return ajax({ - url: "/api/new_power/records/violation_select", + url: "/api/nes/record_query/violation_select", type: "get", data: params, });