diff --git a/src/views/bg/bgpartymatter/BgPartymatter.data.ts b/src/views/bg/bgpartymatter/BgPartymatter.data.ts index d960519..04ec9ff 100644 --- a/src/views/bg/bgpartymatter/BgPartymatter.data.ts +++ b/src/views/bg/bgpartymatter/BgPartymatter.data.ts @@ -6,16 +6,10 @@ import { getWeekMonthQuarterYear } from '/@/utils'; //列表数据 export const columns: BasicColumn[] = [ { - title: '序号', + title: '年份', align:"center", - dataIndex: 'number', - sorter: true, - }, - { - title: '督办次数', - align:"center", - dataIndex: 'superviseCount', - width: '100px', + dataIndex: 'year', + width: '60px', }, { title: '事项名称', @@ -23,10 +17,26 @@ export const columns: BasicColumn[] = [ dataIndex: 'title' }, { - title: '年份', + title: '序号', align:"center", - dataIndex: 'year', - width: '60px', + dataIndex: 'number', + sorter: true, + }, + { + title: '会议决议', + align:"center", + dataIndex: 'content' + }, + { + title: '事项目录编码', + align:"center", + dataIndex: 'matterCode' + }, + { + title: '督办次数', + align:"center", + dataIndex: 'superviseCount', + width: '100px', }, { @@ -40,15 +50,13 @@ export const columns: BasicColumn[] = [ sorter: true, }, { - title: '会议决议', + title: '议题序号', align:"center", - dataIndex: 'content' - }, - { - title: '事项目录编码', - align:"center", - dataIndex: 'matterCode' + dataIndex: 'itemNumber', + sorter: true, + width: '100px', }, + { title: '抄告单编号', align:"center", @@ -175,20 +183,21 @@ export const bgPartymatterFeedbackColumns: BasicColumn[] = [ export const superQuerySchema = { year: {title: '年份',order: 0,view: 'text', type: 'string',}, number: {title: '序号',order: 1,view: 'text', type: 'string',}, - matterTime: {title: '会议时间',order: 2,view: 'date', type: 'string',}, - title: {title: '事项名称',order: 3,view: 'text', type: 'string',}, - content: {title: '会议决议',order: 4,view: 'textarea', type: 'string',}, - matterCode: {title: '事项目录编码',order: 5,view: 'text', type: 'string',}, - noticeNumber: {title: '抄告单编号',order: 6,view: 'text', type: 'string',}, - isImportant: {title: '是否为三重一大决策',order: 7,view: 'list', type: 'string', dictCode: 'yn',}, - responDeptid: {title: '责任部门',order: 8,view: 'sel_depart', type: 'string',}, - actualExect: {title: '实际执行情况',order: 9,view: 'text', type: 'string',}, - bpmStatus: {title: '完成状态',order: 10,view: 'text', type: 'string',}, - superviseCount: {title: '督办次数',order: 11,view: 'text', type: 'string',}, - deadline: {title: '要求完成日期',order: 12,view: 'date', type: 'string',}, - urgencyLevel: {title: '是否急件',order: 13,view: 'list', type: 'string', dictCode: 'yn',}, - isNeedAppro: {title: '是否需要所办领导审批',order: 14,view: 'switch', type: 'string',}, - supDeptleaderid: {title: '所办领导',order: 15,view: 'sel_user', type: 'string',}, - isNeedSuoleader: {title: '是否抄送所领导',order: 16,view: 'switch', type: 'string',}, - suoleaderid: {title: '抄送所领导',order: 17,view: 'sel_user', type: 'string',}, + itemNumber: {title: '议题序号',order: 2,view: 'number', type: 'number',}, + matterTime: {title: '会议时间',order: 3,view: 'date', type: 'string',}, + title: {title: '事项名称',order: 4,view: 'text', type: 'string',}, + content: {title: '会议决议',order: 5,view: 'textarea', type: 'string',}, + matterCode: {title: '事项目录编码',order: 6,view: 'text', type: 'string',}, + noticeNumber: {title: '抄告单编号',order: 7,view: 'text', type: 'string',}, + isImportant: {title: '是否为三重一大决策',order: 8,view: 'list', type: 'string', dictCode: 'yn',}, + responDeptid: {title: '责任部门',order: 9,view: 'sel_depart', type: 'string',}, + actualExect: {title: '实际执行情况',order: 10,view: 'text', type: 'string',}, + bpmStatus: {title: '完成状态',order: 11,view: 'text', type: 'string',}, + superviseCount: {title: '督办次数',order: 12,view: 'text', type: 'string',}, + deadline: {title: '要求完成日期',order: 13,view: 'date', type: 'string',}, + urgencyLevel: {title: '是否急件',order: 14,view: 'list', type: 'string', dictCode: 'yn',}, + isNeedAppro: {title: '是否需要所办领导审批',order: 15,view: 'switch', type: 'string',}, + supDeptleaderid: {title: '所办领导',order: 16,view: 'sel_user', type: 'string',}, + isNeedSuoleader: {title: '是否抄送所领导',order: 17,view: 'switch', type: 'string',}, + suoleaderid: {title: '抄送所领导',order: 18,view: 'sel_user', type: 'string',}, }; diff --git a/src/views/bg/bgpartymatter/BgPartymatterList.vue b/src/views/bg/bgpartymatter/BgPartymatterList.vue index 443a7e8..f2cb572 100644 --- a/src/views/bg/bgpartymatter/BgPartymatterList.vue +++ b/src/views/bg/bgpartymatter/BgPartymatterList.vue @@ -9,9 +9,9 @@ - - - + + + @@ -19,9 +19,14 @@ - - - + + + + + + + + diff --git a/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue b/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue index 98f418c..569d79d 100644 --- a/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue +++ b/src/views/bg/bgpartymatter/components/BgPartymatterBPMForm.vue @@ -40,7 +40,12 @@ - + + + + + + @@ -238,12 +243,14 @@ const feedbackAttachmentRefreshKey = ref(0); const subApproveUser = ref(''); const isEnd = ref(0); + const lastGeneratedNumber = ref(''); const mainForm = reactive>({ id: '', year: '', secretLevel: '', number: '', + itemNumber: undefined, matterTime: '', title: '', content: '', @@ -320,6 +327,14 @@ { immediate: true } ); + // 根据会议时间和议题序号自动生成业务序号,例如:2026-05-20 + 2 => 20260520-2。 + watch( + () => [mainForm.matterTime, mainForm.itemNumber], + () => { + syncGeneratedNumber(); + } + ); + async function initFormData() { const dataId = props.formData?.dataId; if (!dataId) { @@ -342,6 +357,48 @@ }); } + function syncGeneratedNumber() { + const generatedNumber = buildGeneratedNumber(mainForm.matterTime, mainForm.itemNumber); + if (generatedNumber) { + mainForm.number = generatedNumber; + lastGeneratedNumber.value = generatedNumber; + return; + } + if (lastGeneratedNumber.value && mainForm.number === lastGeneratedNumber.value) { + mainForm.number = ''; + lastGeneratedNumber.value = ''; + } + } + + // 只在两个必要字段都填写后生成,避免用户未填完整时写入半截序号。 + function buildGeneratedNumber(matterTime, itemNumber) { + const dateText = formatMatterTime(matterTime); + if (!dateText || itemNumber === undefined || itemNumber === null || itemNumber === '') { + return ''; + } + return `${dateText}-${itemNumber}`; + } + + // 兼容日期选择器返回的字符串、Date、dayjs/moment 对象。 + function formatMatterTime(value) { + if (!value) { + return ''; + } + if (typeof value === 'string') { + return value.slice(0, 10).replace(/-/g, ''); + } + if (value instanceof Date) { + const year = value.getFullYear(); + const month = String(value.getMonth() + 1).padStart(2, '0'); + const day = String(value.getDate()).padStart(2, '0'); + return `${year}${month}${day}`; + } + if (typeof value.format === 'function') { + return value.format('YYYYMMDD'); + } + return ''; + } + async function loadFeedbackList() { const bpmProcessId = processInfo.value.processInstanceId; if (!mainForm.id || !bpmProcessId) { diff --git a/src/views/bg/bgpartymatter/components/BgPartymatterForm.vue b/src/views/bg/bgpartymatter/components/BgPartymatterForm.vue index 38900f7..cb51c04 100644 --- a/src/views/bg/bgpartymatter/components/BgPartymatterForm.vue +++ b/src/views/bg/bgpartymatter/components/BgPartymatterForm.vue @@ -9,21 +9,26 @@ + + + + + + + + + + + + + + + - - - - - - - - - - @@ -159,6 +164,7 @@ year: '', secretLevel: '', number: '', + itemNumber: undefined, matterTime: '', title: '', content: '', @@ -232,6 +238,58 @@ } ); + const lastGeneratedNumber = ref(''); + + // 根据会议时间和议题序号自动生成业务序号,例如:2026-05-20 + 2 => 20260520-2。 + watch( + () => [formData.matterTime, formData.itemNumber], + () => { + syncGeneratedNumber(); + } + ); + + function syncGeneratedNumber() { + const generatedNumber = buildGeneratedNumber(formData.matterTime, formData.itemNumber); + if (generatedNumber) { + formData.number = generatedNumber; + lastGeneratedNumber.value = generatedNumber; + return; + } + if (lastGeneratedNumber.value && formData.number === lastGeneratedNumber.value) { + formData.number = ''; + lastGeneratedNumber.value = ''; + } + } + + // 只在两个必要字段都填写后生成,避免用户未填完整时写入半截序号。 + function buildGeneratedNumber(matterTime, itemNumber) { + const dateText = formatMatterTime(matterTime); + if (!dateText || itemNumber === undefined || itemNumber === null || itemNumber === '') { + return ''; + } + return `${dateText}-${itemNumber}`; + } + + // 兼容日期选择器返回的字符串、Date、dayjs/moment 对象。 + function formatMatterTime(value) { + if (!value) { + return ''; + } + if (typeof value === 'string') { + return value.slice(0, 10).replace(/-/g, ''); + } + if (value instanceof Date) { + const year = value.getFullYear(); + const month = String(value.getMonth() + 1).padStart(2, '0'); + const day = String(value.getDate()).padStart(2, '0'); + return `${year}${month}${day}`; + } + if (typeof value.format === 'function') { + return value.format('YYYYMMDD'); + } + return ''; + } + onMounted(()=>{ initFormData(); }); diff --git a/src/views/super/bpm/process/personalOffice/myHandleTask/TaskRunningList.vue b/src/views/super/bpm/process/personalOffice/myHandleTask/TaskRunningList.vue index de98a1d..6641707 100644 --- a/src/views/super/bpm/process/personalOffice/myHandleTask/TaskRunningList.vue +++ b/src/views/super/bpm/process/personalOffice/myHandleTask/TaskRunningList.vue @@ -64,7 +64,7 @@ //办理 const [registerHandleModal, { openModal: openHandleModal }] = useModal(); async function handleProcess(record) { - debugger + //debugger let { formData, formUrl } = await getTaskNodeInfo(record); formData['PROCESS_TAB_TYPE'] = 'run'; openHandleModal(true, { diff --git a/src/views/super/bpm/process/personalOffice/myHandleTask/useTaskList.ts b/src/views/super/bpm/process/personalOffice/myHandleTask/useTaskList.ts index c9e333f..69eb958 100644 --- a/src/views/super/bpm/process/personalOffice/myHandleTask/useTaskList.ts +++ b/src/views/super/bpm/process/personalOffice/myHandleTask/useTaskList.ts @@ -64,7 +64,7 @@ export function useTaskList(type) { */ async function getTaskNodeInfo(record) { //查询条件 - debugger; + // debugger; let params = { taskId: record.id }; const result = await taskNodeInfo(type, params); console.log('获取流程节点信息', result); diff --git a/src/views/super/bpm/process/processDesign/processNode/process.node.data.ts b/src/views/super/bpm/process/processDesign/processNode/process.node.data.ts index cff1520..cb1e4b5 100644 --- a/src/views/super/bpm/process/processDesign/processNode/process.node.data.ts +++ b/src/views/super/bpm/process/processDesign/processNode/process.node.data.ts @@ -8,7 +8,7 @@ export const columns: BasicColumn[] = [ title: '#', dataIndex: '', key: 'rowIndex', - width: 60, + width: 30, align: 'center', customRender: function ({ index }) { return parseInt(index) + 1; @@ -17,7 +17,7 @@ export const columns: BasicColumn[] = [ { title: '节点名称', align: 'center', - width: 120, + width: 140, dataIndex: 'processNodeName', }, { @@ -30,14 +30,14 @@ export const columns: BasicColumn[] = [ title: 'PC表单地址', align: 'center', dataIndex: 'modelAndView', - width: 240, + width: 400, ellipsis: true, }, { title: '移动表单地址', align: 'center', dataIndex: 'modelAndViewMobile', - width: 240, + width: 30, ellipsis: true, }, {