diff --git a/src/views/dq/inspectTask/DqInspectTask.api.ts b/src/views/dq/inspectTask/DqInspectTask.api.ts index ccedac6..699ea66 100644 --- a/src/views/dq/inspectTask/DqInspectTask.api.ts +++ b/src/views/dq/inspectTask/DqInspectTask.api.ts @@ -13,6 +13,7 @@ enum Api { exportXls = '/dqinspecttask/dqInspectTask/exportXls', queryDataById = '/dqinspecttask/dqInspectTask/queryById', dqInspectProgressList = '/dqinspecttask/dqInspectTask/queryDqInspectProgressByMainId', + specificProblemOptions = '/dqinspectproblem/dqInspectProblem/specificOptions', } /** * 导出api @@ -31,6 +32,11 @@ export const getImportUrl = Api.importExcel; */ export const queryDqInspectProgressListByMainId = (id) => defHttp.get({url: Api.dqInspectProgressList, params:{ id }}); +/** + * 查询整改任务可挂载的具体问题树 + */ +export const specificProblemOptions = () => defHttp.get({url: Api.specificProblemOptions}); + /** * 列表接口 * @param params @@ -78,4 +84,3 @@ export const saveOrUpdate = (params, isUpdate) => { * @param params */ export const queryDataById = (id) => defHttp.get({url: Api.queryDataById, params:{ id }}); - diff --git a/src/views/dq/inspectTask/DqInspectTask.data.ts b/src/views/dq/inspectTask/DqInspectTask.data.ts index 1d2b894..2541eba 100644 --- a/src/views/dq/inspectTask/DqInspectTask.data.ts +++ b/src/views/dq/inspectTask/DqInspectTask.data.ts @@ -7,9 +7,10 @@ import { getWeekMonthQuarterYear } from '/@/utils'; //列表数据 export const columns: BasicColumn[] = [ { - title: '具体问题ID', + title: '具体问题', align:"center", - dataIndex: 'problemId' + dataIndex: 'problemId', + customRender: ({ text, record }) => record.problemId_dictText || text, }, { title: '密级', diff --git a/src/views/dq/inspectTask/components/DqInspectTaskForm.vue b/src/views/dq/inspectTask/components/DqInspectTaskForm.vue index 76a878d..d96ba62 100644 --- a/src/views/dq/inspectTask/components/DqInspectTaskForm.vue +++ b/src/views/dq/inspectTask/components/DqInspectTaskForm.vue @@ -5,8 +5,17 @@ - - + + @@ -105,22 +114,22 @@ - - - - - + + + + + + + + + + + + + + + +
提 交
@@ -131,7 +140,7 @@ import { defineComponent, ref, reactive, computed, toRaw, onMounted } from 'vue'; import { defHttp } from '/@/utils/http/axios'; import { useValidateAntFormAndTable } from '/@/hooks/system/useJvxeMethods'; - import { queryDqInspectProgressListByMainId, queryDataById, saveOrUpdate } from '../DqInspectTask.api'; + import { queryDqInspectProgressListByMainId, queryDataById, saveOrUpdate, specificProblemOptions } from '../DqInspectTask.api'; import { JVxeTable } from '/@/components/jeecg/JVxeTable'; import {dqInspectProgressColumns} from '../DqInspectTask.data'; import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; @@ -163,6 +172,8 @@ const loading = ref(false); const formRef = ref(); const dqInspectProgressTableRef = ref(); + const problemTreeData = ref([]); + const loadingProblemOptions = ref(false); const dqInspectProgressTable = reactive>({ loading: false, columns: dqInspectProgressColumns, @@ -171,30 +182,31 @@ const activeKey = ref('dqInspectProgress'); const formData = reactive>({ id: '', - problemId: '', - secretLevel: '', - improveMeasure: '', - deadline: '', - targetNode: '', - measureResLeader: '', - measureResDept: '', - rectificationEvidence: '', - evaluationCriterion: '', - isNeedAppro: '', - supDeptleaderid: '', - inspectionStatus: '', - supervisoryOpinion: '', + problemId: '', + secretLevel: '', + improveMeasure: '', + deadline: '', + targetNode: '', + measureResLeader: '', + measureResDept: '', + rectificationEvidence: '', + evaluationCriterion: '', + isNeedAppro: '', + supDeptleaderid: '', + inspectionStatus: '', + supervisoryOpinion: '', measureCount: undefined, - bpmProcessId: '', - bpmStatus: '', - taskStatus: '', - superviseCount: '', + bpmProcessId: '', + bpmStatus: '', + taskStatus: '', + superviseCount: '', sortNo: undefined, - delFlag: '', + delFlag: '', }); //表单验证 const validatorRules = reactive({ + problemId: [{ required: true, message: '请选择具体问题' }], }); const {resetFields, validate, validateInfos} = useForm(formData, validatorRules, {immediate: false}); const dbData = {}; @@ -216,6 +228,7 @@ }); onMounted(()=>{ + loadSpecificProblemOptions(); initFormData(); }); //渲染流程表单数据 @@ -242,14 +255,28 @@ } return false }); - - function add() { + /** + * 整改任务只能选择具体问题,分类和面上问题由后端置灰用于分组展示。 + */ + async function loadSpecificProblemOptions() { + loadingProblemOptions.value = true; + try { + const data = await specificProblemOptions(); + problemTreeData.value = Array.isArray(data) ? data : data?.result || []; + } finally { + loadingProblemOptions.value = false; + } + } + + async function add() { resetFields(); dqInspectProgressTable.dataSource = []; + await loadSpecificProblemOptions(); } async function edit(row) { + await loadSpecificProblemOptions(); //主表数据 await queryMainData(row.id); //子表数据 @@ -292,7 +319,8 @@ async function submitForm() { const mainData = await getFormData(); - const subData = await getSubFormAndTableData(); + // 工作进展子表当前未渲染时 ref 为空,提交主表即可;后续恢复子表时仍走原校验取数逻辑。 + const subData = dqInspectProgressTableRef.value ? await getSubFormAndTableData() : {}; const values = Object.assign({}, dbData, mainData, subData); console.log('表单提交数据', values) const isUpdate = values.id ? true : false @@ -300,7 +328,7 @@ //关闭弹窗 emit('success'); } - + function setFieldsValue(values) { if(values){ Object.keys(values).map(k=>{ @@ -322,6 +350,8 @@ return { dqInspectProgressTableRef, dqInspectProgressTable, + problemTreeData, + loadingProblemOptions, validatorRules, validateInfos, activeKey,