From 590c5d4e18cad6edc91d75ba953cfa1a0f9e8d2a Mon Sep 17 00:00:00 2001 From: lishenfeng Date: Mon, 18 Nov 2024 17:50:51 +0800 Subject: [PATCH] =?UTF-8?q?fix():=20bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/crud/usePageTable2.ts | 6 +- src/service/apiurl.js | 3 +- src/utils/tools.js | 71 +++++++- src/views/rcgl/jdkh/khmbgl/Zbform.js | 6 +- src/views/rcgl/jdkh/khmbgl/form.js | 2 +- src/views/rcgl/jdkh/khmbgl/index.js | 2 +- src/views/rcgl/jdkh/khrwgl/PfDetail.js | 42 +++-- src/views/rcgl/jdkh/khrwgl/form.js | 68 +++++-- src/views/rcgl/jdkh/khrwgl/index.js | 7 +- src/views/rcgl/jdkh/khzbgl/form.js | 2 +- src/views/rcgl/jdkh/khzbgl/index.js | 10 +- src/views/sz/pxjlgl/chartToolbar.js | 2 +- src/views/sz/pxjlgl/form.js | 35 ++-- src/views/sz/pxjlgl/index.js | 19 +- src/views/sz/pxjlgl/options.js | 235 +++++++++++-------------- 15 files changed, 311 insertions(+), 199 deletions(-) diff --git a/src/components/crud/usePageTable2.ts b/src/components/crud/usePageTable2.ts index 23a56d040..ba2fbef79 100644 --- a/src/components/crud/usePageTable2.ts +++ b/src/components/crud/usePageTable2.ts @@ -58,7 +58,7 @@ function usePageTable( setNum(20); } }, [screenHeight]); - + // 写在一起避免异步之后多次setState导致多次重绘 const [state, setState] = useState>(() => ({ data: [], @@ -85,14 +85,14 @@ function usePageTable( setState(s => ({ ...s, loading: true })); const pageParams = { pageNumber: opt?.pageNumber ?? state.pageNumber, - pageSize: opt?.pageSize ?? 10, + pageSize: opt?.pageSize ?? state.pageSize, sortField: opt?.sortField ?? state.sortField, sortOrder: opt?.sortOrder ?? state.sortOrder, search: opt?.search ?? state.search, }; const { search, ...params } = pageParams; // console.log('search',search); - // console.log('params',params); + console.log('pageParams',pageParams); service({ ...search, ...params }).then((data) => { if (!abort.current) { diff --git a/src/service/apiurl.js b/src/service/apiurl.js index 310ea2336..762dc8aad 100644 --- a/src/service/apiurl.js +++ b/src/service/apiurl.js @@ -288,7 +288,8 @@ const apiurl = { delete: service_fxdd + "/assessTemplate/del", choose: service_fxdd + "/assessIndicator/choose", info: service_fxdd + "/assessTemplate/queryIndicators", - detail:service_fxdd + "/assessTemplate/detail" + detail: service_fxdd + "/assessTemplate/detail", + stop:service_fxdd + "/assessTemplate/startStop" } }, btbb: { diff --git a/src/utils/tools.js b/src/utils/tools.js index 73dbde64b..381c96021 100644 --- a/src/utils/tools.js +++ b/src/utils/tools.js @@ -633,4 +633,73 @@ export const myFiltrate = (data,params)=>{ }else{ return Math.ceil(s) } - } \ No newline at end of file +} + +export const convertQuarterToDate = (quarterStr) => { + if (!quarterStr) { + return null + } + // 将字符串按"-"分割成数组 + const [year, quarter] = quarterStr.split("-") + + // 判断季度并计算月份和日期 + switch (quarter) { + case "Q1": + return { + startDate:`${year}-01-01`, + endDate:`${year}-03-31` + } + case "Q2": + return { + startDate:`${year}-04-01`, + endDate:`${year}-06-30` + } + case "Q3": + return { + startDate:`${year}-07-01`, + endDate:`${year}-09-30` + } + case "Q4": + return { + startDate:`${year}-10-01`, + endDate:`${year}-12-31` + } + default: + return null + } +} + +export const getCurrentQuarter = (data) => { + const currentMonth = data ? moment(data).month() : moment().month(); // 获取当前月份,注意月份是从0开始的 + const currentYear = data ? moment(data).year() : moment().year(); // 获取当前年份 + if (currentMonth >= 0 && currentMonth <= 2) { + return { + name: `${currentYear}年第1季度考核`, + value: 1 + }; + } else if (currentMonth >= 3 && currentMonth <= 5) { + return { + name: `${currentYear}年第2季度考核`, + value: 2 + }; + } else if (currentMonth >= 6 && currentMonth <= 8) { + return { + name: `${currentYear}年第3季度考核`, + value: 3 + }; + } else { + return { + name: `${currentYear}年第4季度考核`, + value: 4 + }; + } +}; + + +export const getQuarterStartEndDates = (quarter, year) => { + const quarterStartMonth = (quarter - 1) * 3; // 计算季度起始月份 + const quarterStartDate = moment({ year, month: quarterStartMonth }).startOf('month'); + const quarterEndDate = quarterStartDate.clone().endOf('quarter'); + + return { startDate: quarterStartDate.format('YYYY-MM-DD'), endDate: quarterEndDate.format('YYYY-MM-DD') }; +}; \ No newline at end of file diff --git a/src/views/rcgl/jdkh/khmbgl/Zbform.js b/src/views/rcgl/jdkh/khmbgl/Zbform.js index 1a5d9bc4e..d63dd57e7 100644 --- a/src/views/rcgl/jdkh/khmbgl/Zbform.js +++ b/src/views/rcgl/jdkh/khmbgl/Zbform.js @@ -42,7 +42,7 @@ export default function Zbform({onSubmit,selectKeys}) { align: "center", }, ] - const { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.rcgl.jdkh.khmbgl.choose).find_noCode); + const { tableProps, search, refresh } = usePageTable(createCrudService(apiurl.rcgl.jdkh.khmbgl.choose).find_noCode,{pageSize:9999}); const [tableData, setTableData] = useState([]) const [selectedRowKeys1, setselectedRowKeys1] = useState([]) const [zbTable, setZbtable] = useState({}) @@ -58,7 +58,7 @@ export default function Zbform({onSubmit,selectKeys}) { const onfinish = (values) => { - const params = { + const params = { search: { menuId: values.menuId, name: values.name @@ -68,7 +68,7 @@ export default function Zbform({onSubmit,selectKeys}) { } // 选择某行的回调 - const rowChange1 = (selectedRowKeys, selectedRows, info) => { + const rowChange1 = (selectedRowKeys, selectedRows, info) => { setselectedRowKeys1([...selectedRowKeys]) selectKeyRef.current = selectedRowKeys setZbtable({keys:selectedRowKeys,data:selectedRows}) diff --git a/src/views/rcgl/jdkh/khmbgl/form.js b/src/views/rcgl/jdkh/khmbgl/form.js index aeffcb967..8bf395b70 100644 --- a/src/views/rcgl/jdkh/khmbgl/form.js +++ b/src/views/rcgl/jdkh/khmbgl/form.js @@ -139,7 +139,7 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => { setZbOpen(false) // 重新对数据做处理 data.data.forEach(item => { - if (item.rowSpan) delete item.rowSpan; + if (item?.rowSpan) delete item.rowSpan; }) const result = handleData(data.data, "name") let total = data.data.reduce((total,cur) => total + Number(cur.standardScore),0) diff --git a/src/views/rcgl/jdkh/khmbgl/index.js b/src/views/rcgl/jdkh/khmbgl/index.js index 999832098..33e1eb553 100644 --- a/src/views/rcgl/jdkh/khmbgl/index.js +++ b/src/views/rcgl/jdkh/khmbgl/index.js @@ -31,7 +31,7 @@ const Page = () => { checkedChildren="启用" unCheckedChildren="禁用" checked={v == 0 ? true : false} onChange={(e) => { - onEdit(apiurl.rcgl.jdkh.khmbgl.edit,{...r, status:e ? 0 : 1}) + onEdit(apiurl.rcgl.jdkh.khmbgl.stop,{id:r.id, status:e ? 0 : 1}) }} /> }, {title: '创建日期', key: 'createTime', dataIndex: 'createTime', width: 200,align: "center"}, diff --git a/src/views/rcgl/jdkh/khrwgl/PfDetail.js b/src/views/rcgl/jdkh/khrwgl/PfDetail.js index 4469d9310..0e268df6e 100644 --- a/src/views/rcgl/jdkh/khrwgl/PfDetail.js +++ b/src/views/rcgl/jdkh/khrwgl/PfDetail.js @@ -88,7 +88,8 @@ const EditableRow = ({ index, ...props }) => { }; // 总分 - const [tableData, setTableData] = useState([]) + const [tableData, setTableData] = useState([]) + const [needRectify, setNeedRectify] = useState([]) const score = useMemo(() => tableData?.reduce((total, cur) => total + (cur?.assessScore ?? 0), 0), [tableData]); const columns = [ { @@ -128,7 +129,13 @@ const EditableRow = ({ index, ...props }) => { width: 150, align: "center", render: (text, row) => { - const checked = compareScore(row) + const checked = compareScore(row) + if (checked) { + const id = needRectify.find(item => item?.id == row.id) + if (!id) { + setNeedRectify([...needRectify, row]); + } + } return ( <> { } // 确认完成 - const confirm = async () => { + const confirm = async () => { + const params = { taskId: record.id, score, @@ -372,7 +380,7 @@ const EditableRow = ({ index, ...props }) => { fileList:undefined, rectifyStatus:0 })) - } + } if(tableData.length>0){ let flag = true //fasle有位评分的 params.ratings?.map((item)=>{ @@ -384,6 +392,10 @@ const EditableRow = ({ index, ...props }) => { message.error('请输入全部考核评分') return } + if (zgPush.length != needRectify.length) { + message.error('请确认需要整改的指标都已完成') + return + } } try { const res = await httppost2(apiurl.rcgl.jdkh.khrwgl.confirmpf, params) @@ -406,7 +418,7 @@ const EditableRow = ({ index, ...props }) => { } const [clickItem, setClickItem] = useState() // 点击某一行的回调 - const handleRowClick = (record) => { + const handleRowClick = (record) => { setClickItem(record) } const handleRadioChange = (e) => { @@ -435,12 +447,12 @@ const EditableRow = ({ index, ...props }) => { const [imgloading, setImgLoading] = useState(false) const [imgfileList, setImgFileList] = useState([]) //上传文件列表 - const [zgItem, setZgItem] = useState("") - const zgCallback = (e) => { + const [zgItem, setZgItem] = useState("") + const [zgPush, setZgPush] = useState([]) + const zgCallback = (e) => { + setZgOpen(true) - setZgItem(e) - console.log("ee",e); - + setZgItem(e) } const imgbeforeUpload = (file) => { @@ -477,7 +489,8 @@ const EditableRow = ({ index, ...props }) => { setImgFileList(info.fileList) } // 整改数据 - const onfinish = (values) => { + const onfinish = (values) => { + let files = imgfileList.map(item => ({ fileId: item.response?.data?.fileId })) values.files = files; values.isNeedRectify = 1; @@ -489,6 +502,10 @@ const EditableRow = ({ index, ...props }) => { return item } }) + const id = zgPush.find(item => item?.id == zgItem.id) + if (!id) { + setZgPush([...zgPush, zgItem]); + } setTableData(newData) setZgOpen(false) setZgItem("") @@ -556,7 +573,8 @@ const EditableRow = ({ index, ...props }) => { {clickItem ?
{clickItem?.indicatorRatings?.map(item => (
-
{item?.ratingDesc}
+
【{clickItem?.indicatorName}】
+
{item?.ratingDesc}({item?.standardScore})
))}
: null} diff --git a/src/views/rcgl/jdkh/khrwgl/form.js b/src/views/rcgl/jdkh/khrwgl/form.js index bee23dec4..6cbe6171d 100644 --- a/src/views/rcgl/jdkh/khrwgl/form.js +++ b/src/views/rcgl/jdkh/khrwgl/form.js @@ -10,13 +10,12 @@ import MbForm from "./mbForm" import PersonForm from './transfer'; import "./index.less" import moment from 'moment'; +import {getCurrentQuarter,convertQuarterToDate,getQuarterStartEndDates} from "../../../../utils/tools" const { RangePicker } = DatePicker const { Dragger } = Upload; const url = "http://223.75.53.141:9102/test.by-lyf.tmp" const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => { - console.log("record",record); - const taskFreq = [ {label:"年度",value:1}, {label:"季度",value:2}, @@ -263,9 +262,10 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => { } } const [khTableData, setkhTableData] = useState([]) + const [taskType, setTaskType] = useState(2) const khTableDataRef = useRef(null); khTableDataRef.current = khTableData; - const onvaluesChange = (changedValues, allValues) => { + const onvaluesChange = (changedValues, allValues) => { if (allValues.templateId && allValues?.assessObjects?.length > 0) { const filterData = templateList.find(item => item.id == allValues.templateId); const khObject = allValues.assessObjects.map(item => { @@ -273,11 +273,28 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => { return { objectUserName, ...filterData,id: item } }) setkhTableData(khObject) - // debugger } else { setkhTableData([]) } - + if ("taskFreq" in changedValues) { + setTaskType(changedValues["taskFreq"]); + } + if ("assessBatch" in changedValues) { + console.log(moment(changedValues["assessBatch"]).endOf('days').format("YYYY-MM-DD")); + + const assessBatchData = convertQuarterToDate(changedValues["assessBatch"]); + const assessBatchValues = taskType == 2 ? assessBatchData.startDate : changedValues["assessBatch"] + + const taskName = taskType == 2 ? getCurrentQuarter(assessBatchData.startDate).name : + taskType == 1 ? `${changedValues["assessBatch"]}年考核` :`${moment(changedValues["assessBatch"]).year()}年${moment(changedValues["assessBatch"]).month() + 1}月考核` + const date = taskType == 2 ? + [moment(assessBatchData.startDate), moment(assessBatchData.endDate)] : + taskType == 1 ? [moment(changedValues["assessBatch"]).startOf('year'), moment(changedValues["assessBatch"]).endOf('year')] : + [moment(changedValues["assessBatch"]).startOf('month'), moment(changedValues["assessBatch"]).endOf('month')] + form.setFieldValue("assessBatch", assessBatchValues) + form.setFieldValue("taskName", taskName) + form.setFieldValue("dateRangeSo",date) + } }; // 删除考核对象 @@ -325,11 +342,7 @@ const [selectPerson, setSelectPerson] = useState([]) form.setFieldValue("assessTeams", name) } - const person = () => { - const e = form.getFieldValue("assessTeams") - setSelectPerson(selectPerson) - setTransferOpen(true) - } + // 考核模版显示 const [mbOpen, setMbOpen] = useState(false) const [mbItem, setMbItem] = useState({}) @@ -351,14 +364,14 @@ const [selectPerson, setSelectPerson] = useState([]) const name = localStorage.getItem('userName') form.setFieldValue("createUserName", name) form.setFieldValue("createTime", moment()) + form.setFieldValue("taskFreq", 2) } else { form.setFieldValue("assessObjects", record.assessObjects.map(item => item.objectUserId - 0)) form.setFieldValue("dateRangeSo", [moment(record.startDate), moment(record.endDate)]) console.log("record",record); - - getKhMember(record.id) getTemplateList(record.taskFreq) + setTaskType(record.taskFreq) } }, [mode,record]) @@ -366,7 +379,28 @@ const [selectPerson, setSelectPerson] = useState([]) useEffect(() => { getDeptList() -}, []) + }, []) + + useEffect(() => { + if (mode == "save") { + if (taskType == 2) { + getTemplateList(taskType) + const { startDate, endDate } = getQuarterStartEndDates(getCurrentQuarter('').value, moment().year()); + form.setFieldValue("assessBatch", moment()) + form.setFieldValue("taskName", getCurrentQuarter('').name) + form.setFieldValue("dateRangeSo",[moment(startDate), moment(endDate)]) + } else if (taskType == 1) { + form.setFieldValue("assessBatch", moment()) + form.setFieldValue("taskName", `${moment().year()}年考核`) + form.setFieldValue("dateRangeSo",[moment().startOf('year'), moment().endOf('year')]) + } else { + form.setFieldValue("assessBatch", moment().format('YYYY-MM-DD')) + form.setFieldValue("taskName", `${moment().year()}年${moment().month() + 1}月考核`) + form.setFieldValue("dateRangeSo",[moment().startOf('month'), moment().endOf('month')]) + } + } + }, [taskType,mode]) + return ( <> @@ -428,7 +462,13 @@ const [selectPerson, setSelectPerson] = useState([]) }, ]} > - + diff --git a/src/views/rcgl/jdkh/khrwgl/index.js b/src/views/rcgl/jdkh/khrwgl/index.js index 2eec0a2a6..ae394ce96 100644 --- a/src/views/rcgl/jdkh/khrwgl/index.js +++ b/src/views/rcgl/jdkh/khrwgl/index.js @@ -19,6 +19,7 @@ const Page = () => { 1: "优秀", 2: "良好", 3: "合格", + 4:"不合格" } const khStatus = { 0: "未启动", @@ -108,6 +109,7 @@ const Page = () => { render: (value) =>
{taskStatus[value] || ''}
}, {title: '创建人', key: 'createUserName', dataIndex: 'createUserName', width: 100}, + {title: '创建时间', key: 'createTime', dataIndex: 'createTime', width: 150}, { title: '操作', key: 'operation', width: 300,align: 'center', render: (v,r) => ( @@ -117,7 +119,10 @@ const Page = () => { <> {r.status == 0 ? command("edit")(r)}>编辑 : null} command("view")(r)}>查看 - {r.status == 0 ? command("del")(r)}>删除 : null} + {/* {r.status == 0 ? command("del")(r)}>删除 : null} */} + {r.status == 0 ? command("del")(r)}> + + : null} {r.status == 0 ? startPf(r)}> : null} diff --git a/src/views/rcgl/jdkh/khzbgl/form.js b/src/views/rcgl/jdkh/khzbgl/form.js index d041227f3..3ca05d113 100644 --- a/src/views/rcgl/jdkh/khzbgl/form.js +++ b/src/views/rcgl/jdkh/khzbgl/form.js @@ -251,7 +251,7 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => { label="指标编号" name="indicatorCode" > - + diff --git a/src/views/rcgl/jdkh/khzbgl/index.js b/src/views/rcgl/jdkh/khzbgl/index.js index 354896dee..806f75582 100644 --- a/src/views/rcgl/jdkh/khzbgl/index.js +++ b/src/views/rcgl/jdkh/khzbgl/index.js @@ -32,8 +32,14 @@ const Page = () => { render: (v, r) => { - onEdit(apiurl.rcgl.jdkh.khzbgl.edit,{...r, status:e ? 0 : 1}) + checked={v == 0 ? true : false} + onChange={(e) => { + if (r?.isUsed) { + message.error("已使用指标无法修改启用状态"); + return; + } else { + onEdit(apiurl.rcgl.jdkh.khzbgl.edit,{...r, status:e ? 0 : 1}) + } }} /> }, { diff --git a/src/views/sz/pxjlgl/chartToolbar.js b/src/views/sz/pxjlgl/chartToolbar.js index 6f46415bf..991bc75b3 100644 --- a/src/views/sz/pxjlgl/chartToolbar.js +++ b/src/views/sz/pxjlgl/chartToolbar.js @@ -22,7 +22,7 @@ const ToolBar = ({ setSearchVal }) => { useEffect(() => { const value = {year:moment()} form.setFieldsValue(value) - setSearchVal({...value,year:moment().format("YYYY")}) + setSearchVal({year:moment().format("YYYY")}) }, []) return ( diff --git a/src/views/sz/pxjlgl/form.js b/src/views/sz/pxjlgl/form.js index 0dd6af868..294d6d510 100644 --- a/src/views/sz/pxjlgl/form.js +++ b/src/views/sz/pxjlgl/form.js @@ -210,11 +210,17 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => { setFileList1(filterFile) } const [jh, setJh] = useState([]) + const [jhData, setJhData] = useState([]) const getJhList = async () => { try { const res = await httppost2(apiurl.pxjl.list) if (res.code == 200) { - setJh(res.data.map(item => ({label:item.name,value:item.id}))) + setJhData(res.data) + setJh(res.data.map(item => ({ label: item.name, value: item.id }))) + if (mode != 'save') { + const formName = res.data.find(item => item.id == record.planId) + form.setFieldsValue(formName) + } } } catch (error) { console.log(error); @@ -222,26 +228,18 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => { } } - const imgbeforeUpload = (file) => { - const isJpgOrPng = - file.type === 'image/jpeg' || - file.type === 'image/jpg' || - file.type === 'image/png'; - - if (!isJpgOrPng) { - message.error('请上传图片格式的文件!'); + const handleFieldChange = (changedValues, allValues) => { + // 检查变化的字段是否是您感兴趣的字段 + if ('planId' in changedValues) { + const formName = jhData.find(item => item.id == changedValues['planId']) + form.setFieldsValue(formName) } - const isLt2M = file.size / 1024 / 1024 < 5; - if (!isLt2M) { - message.error('图片大小需小于5M!'); - } - return isJpgOrPng && isLt2M ? true : Upload.LIST_IGNORE; }; useEffect(()=>{ if (mode !== "save") { getFileInfo(record) const momentArr = (record?.stm && record.etm) ? [dayjs("2024-05-06" + record.stm), dayjs("2024-05-06" +record.etm)] : '' - form.setFieldValue("tm",momentArr) + form.setFieldValue("tm", momentArr) } }, [record,mode]) @@ -252,6 +250,8 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => { getJhList() }, []) + + @@ -264,6 +264,7 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => { {...formItemLayout} initialValues={record} onFinish={onfinish} + onValuesChange={handleFieldChange} > @@ -279,7 +280,7 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => { label="培训分类" name="type" > - + @@ -373,7 +374,7 @@ const ModalForm = ({ mode, record, onEdit, onSave, onSimilarSave }) => { wrapperCol={{ span: 19 }} rules={[{ required: true }]} > - + diff --git a/src/views/sz/pxjlgl/index.js b/src/views/sz/pxjlgl/index.js index d42a4c15d..38d9ace51 100644 --- a/src/views/sz/pxjlgl/index.js +++ b/src/views/sz/pxjlgl/index.js @@ -41,7 +41,7 @@ const Page = () => { const delBtn = role?.rule?.find(item => item.menuName == "删除") || true; const refModal = useRef(); const [searchVal, setSearchVal] = useState(false) - const [searchChartVal, setSearchChartVal] = useState(false) + const [searchChartVal, setSearchChartVal] = useState() const columns = [ { title: '序号', key: 'inx', dataIndex: 'inx', width: 60, align:"center" }, { title: '培训日期', key: 'planDate', dataIndex: 'planDate', width: 200, ellipsis: true }, @@ -97,23 +97,24 @@ const Page = () => { } // 获取统计数据 - const [staData, setStaData] = useState() + const [staData, setStaData] = useState({}) const pxOptions = useMemo(() => { if (staData) { - return options(staData,searchChartVal.teamName) + return options(staData) } else { - return options({},searchChartVal.teamName) + return options({}) } }, [staData]) const getStaData = async (params) => { try { const res = await httpget2(apiurl.pxjl.sta + `/${params.year}`) if (res.code == 200) { - if (params.teamName == 1) { - setStaData({...res.data,list:res.data.list1}) - } else { - setStaData({...res.data,list:res.data.list2}) - } + setStaData({...res.data}) + // if (params.teamName == 1) { + // setStaData({...res.data,list:res.data.list1}) + // } else { + // setStaData({...res.data,list:res.data.list2}) + // } }else{ message.error(res.description) setStaData([]) diff --git a/src/views/sz/pxjlgl/options.js b/src/views/sz/pxjlgl/options.js index e3a4ebf7b..72f9e701c 100644 --- a/src/views/sz/pxjlgl/options.js +++ b/src/views/sz/pxjlgl/options.js @@ -1,137 +1,108 @@ -export default function options(data={},teamName) { - const xAxisData = data?.list?.map(item => item.month + "月") - const maxCount = data?.list ? Math.ceil(Math.max(...data?.list?.map(obj => [obj.num1,obj.num2]).flat())) : 0 - const minCount = data?.list ? Math.floor(Math.min(...data?.list?.map(obj => [obj.num1, obj.num2]).flat())) : 100 +export default function options(data = {}) { + const xAxisData = data ?.list1 ?.map(item => item.month + "月") + const maxCount = data ?.list1 ? Math.ceil(Math.max(...data ?.list1 ?.map(obj => [obj.num1, obj.num2]).flat())) : 0 + const minCount = data ?.list1 ? Math.floor(Math.min(...data ?.list1 ?.map(obj => [obj.num1, obj.num2]).flat())) : 100 + return { + animation: true, + tooltip: { + trigger: 'axis', + }, + grid: { + top: '15%', + bottom: '15%', + right: '8%', + left: '7%', + }, + legend: { + show: true, + left: "10%", + top: "-1%", + itemWidth: 11, + itemHeight: 10, + }, + xAxis: { + data: xAxisData, + }, + yAxis: [{ + type: 'value', + position: "left", + offset: 10, + min: minCount, + max: maxCount, + // splitLine:false, + axisTick: { + show: false + }, + axisLine: { + show: false, - const maxRate = data?.list ? Math.ceil(Math.max(...data?.list?.map(obj => obj.rate * 100))) : 0 - const minRate = data?.list ? Math.floor(Math.min(...data?.list?.map(obj => obj.rate * 100))) : 100 - return { - animation: true, - tooltip: { - trigger: 'axis', - formatter: function (params) { - var tooltipText = params[0].name + '
'; - params.forEach(function (item) { - if (item.seriesName === '完成率') { - tooltipText += item.marker + ' ' + item.seriesName + ': ' + item.value + '%
'; - } else { - tooltipText += item.marker + ' ' + item.seriesName + ': ' + item.value + '
'; - } - }); - return tooltipText; - } - }, - grid: { - top: '15%', - bottom: '15%', - right: '8%', - left: '7%', - }, - legend: { - show: true, - left: "10%", - top: "-1%", - itemWidth: 11, - itemHeight: 10, - }, - xAxis: { - data:xAxisData, - // axisLine: { - // show: false // 隐藏X轴轴线 + }, + axisLabel: { + show: true, + margin: 0, + fontSize: 18, + } + }, + { + type: 'value', + position: "right", + offset: 10, + min: minCount, + max: maxCount, + // splitLine:false, + axisTick: { + show: false + }, + axisLine: { + show: false, + + }, + axisLabel: { + show: true, + margin: 0, + fontSize: 18, + } + }, + + ], + series: [{ + name: "实际人次", + type: 'bar', + barWidth: 25, + data: data?.list1?.map(item => item.num1), + itemStyle: { + color: "#6295fa" + } + }, + { + name: '实际期数', + yAxisIndex: 1, + type: 'bar', + barWidth: 25, + data: data ?.list1 ?.map(item => item.num2), + itemStyle: { + color: "#62daab" + } + }, + // { + // name: '完成率', + // type: 'line', + // yAxisIndex: 1, + // showSymbol:false, + // smooth: false, // 平滑曲线显示 + // lineStyle: { + // width: 2, + // color: '#5d7092' // }, - // axisTick: { - // show: false // 隐藏X轴轴线 + // itemStyle: { + // color: '#5d7092', + // shadowColor: '#5d7092', + // shadowBlur: 10, + // borderColor: '#5d7092', + // borderWidth: 2 // }, - - // axisLabel: { - // show: true, - // margin: 14, - // // formatter: '{value}月' + // data: data?.list?.map(item => item.rate * 100), // } - }, - yAxis: [ - { - type: 'value', - offset: 10, - min: minCount, - max: maxCount, - // splitLine:false, - axisTick: { - show: false - }, - axisLine: { - show: false, - - }, - axisLabel: { - show: true, - margin: 0, - fontSize: 18, - } - }, - { - type: 'value', - name: '(%)', - splitLine:false, - - min: minRate, - max: maxRate, - offset: 10, - nameTextStyle: { - color: 'rgba(255,255,255,0.5)', - fontSize: '12px' - }, - axisTick: { - show: false - }, - axisLine: { - show: false, - }, - axisLabel: { - show: true, - fontSize: 18, - formatter: '{value}%' - } - } - ], - series: [ - { - name: teamName===1?'计划人次':'计划期数', - type: 'bar', - barWidth: 25, - data: data?.list?.map(item =>item.num2), - itemStyle:{ - color:"#6295fa" - } - }, - { - name: teamName===1?'实际人次':'实际期数', - type: 'bar', - barWidth: 25, - data: data?.list?.map(item =>item.num1), - itemStyle:{ - color:"#62daab" - } - }, - { - name: '完成率', - type: 'line', - yAxisIndex: 1, - showSymbol:false, - smooth: false, // 平滑曲线显示 - lineStyle: { - width: 2, - color: '#5d7092' - }, - itemStyle: { - color: '#5d7092', - shadowColor: '#5d7092', - shadowBlur: 10, - borderColor: '#5d7092', - borderWidth: 2 - }, - data: data?.list?.map(item => item.rate * 100), - } - ] - } + ] + } } \ No newline at end of file