Merge remote-tracking branch 'origin/master'

This commit is contained in:
ye1023
2026-05-19 10:25:33 +08:00
33 changed files with 715 additions and 3145 deletions
+18 -1
View File
@@ -89,6 +89,22 @@ export const columns: BasicColumn[] = [
align: 'center',
dataIndex: 'completionStatus_dictText',
},
{
title: '截止日期',
align: 'center',
dataIndex: 'deadline',
customRender: ({ text }) => {
if (!text) return '';
if (text instanceof Date) {
const y = text.getFullYear();
const m = String(text.getMonth() + 1).padStart(2, '0');
const d = String(text.getDate()).padStart(2, '0');
return `${y}-${m}-${d}`;
}
text = String(text);
return text.length > 10 ? text.substr(0, 10) : text;
},
},
{
title: '落实部门',
align: 'center',
@@ -251,7 +267,8 @@ export const superQuerySchema = {
isCompletionRisk: { title: '是否存在完成风险(0不存在,1存在)', order: 14, view: 'number', type: 'number' },
delayRiskMitigation: { title: '拖期风险应对措施', order: 15, view: 'text', type: 'string' },
completionStatus: { title: '完成状态(督办中,1已完成)', order: 16, view: 'number', type: 'number' },
implDept: { title: '落实部门id', order: 17, view: 'sel_depart', type: 'string' },
deadline: { title: '截止日期', order: 17, view: 'date', type: 'string' },
implDept: { title: '落实部门id', order: 18, view: 'sel_depart', type: 'string' },
treeDepth: { title: '层深(最顶层节点层深为0)', order: 18, view: 'number', type: 'number' },
sortOrder: { title: '同级数据排序号', order: 19, view: 'number', type: 'number' },
bpmStatus: { title: '流程引擎状态字段', order: 21, view: 'number', type: 'number' },
+18 -22
View File
@@ -1,6 +1,6 @@
<template>
<div>
<BasicTable @register="registerTable" :expandedRowKeys="expandedRowKeys" @expand="handleExpand" @fetch-success="onFetchSuccess">
<BasicTable @register="registerTable" :rowSelection="rowSelection" :expandedRowKeys="expandedRowKeys" @expand="handleExpand" @fetch-success="onFetchSuccess">
<!--插槽:table标题-->
<template #tableTitle>
<a-button type="primary" v-auth="'bg.xispeak:bg_xi_speak:add'" @click="handleAdd" preIcon="ant-design:plus-outlined">新增</a-button>
@@ -137,6 +137,7 @@
const flowScheduleModalRef = ref();
const feedbackRightNowModalRef = ref();
const businessProcessListModalRef = ref();
const currentBusinessId = ref('');
const pendingFeedbackRightNow = ref(0);
const processColumns = taskTaskColumns;
const selectedFeedbackId = ref<string | number | null>(null);
@@ -160,7 +161,6 @@
const showSdwLeaderSelect = computed(() => queryParam.value.needSdwApproval === '1');
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
designScope: 'bg-xispeak-template',
tableProps: {
title: '习总书记重要讲话指示批示情况',
api: list,
@@ -168,30 +168,14 @@
canResize: false,
useSearchForm: false,
isTreeTable: true,
clickToRowSelect: true,
actionColumn: {
width: 120,
width: 240,
fixed: 'right',
},
beforeFetch: async (params) => {
params.hasQuery = 'true';
return Object.assign(params, queryParam.value);
},
afterFetch: (result) => {
if (result && result.length > 0) {
result.forEach((item) => {
if (item.hasChild == '1' && (!item.children || item.children.length === 0)) {
item.children = [{ id: item.id + '_loadChild', name: 'loading...', isLoading: true }];
}
});
}
return result;
},
pagination: {
current: 1,
pageSize: 10,
pageSizeOptions: ['10', '20', '30'],
},
},
exportConfig: {
name: '习总书记重要讲话指示批示情况',
@@ -203,7 +187,7 @@
},
});
const [registerTable, { reload, collapseAll, updateTableDataRecord, findTableDataRecord, getDataSource }, { selectedRowKeys }] = tableContext;
const [registerTable, { reload, collapseAll, updateTableDataRecord, findTableDataRecord, getDataSource }, { rowSelection, selectedRowKeys }] = tableContext;
const mainId = computed(() => (unref(selectedRowKeys).length > 0 ? unref(selectedRowKeys)[0] : ''));
provide('mainId', mainId);
@@ -565,13 +549,25 @@
}
function handleQueryProcess(record) {
currentBusinessId.value = record.id;
businessProcessListModalRef.value?.open({
title: '流程列表',
businessId: record.id,
columns: '',
onDeleteProcess: handleDeleteProcess,
});
}
async function handleDeleteProcess(processRecord, reload) {
const res = await withDrawXiSpeak({ id: currentBusinessId.value });
if (res.success) {
createMessage.success(res.message || '删除流程成功');
await reload();
} else {
createMessage.error(res.message || '删除流程失败');
}
}
async function handleFlowScheduleConfirm({ payload, options }) {
const record = payload?.record || {};
const flowCode = payload?.flowCode || FLOW_CODE;
@@ -627,7 +623,7 @@
deptId: deptId,
deptLeaderId: deptId,
requireFinishDate: formatDate(record.time, 'YYYY-MM-DD'),
deadline: formatDate(record.time, 'YYYY-MM-DD HH:mm:ss'),
deadline: record.deadline || formatDate(record.time, 'YYYY-MM-DD HH:mm:ss'),
},
};
@@ -664,7 +660,7 @@
deptId: options.deptId || record.leadDepartment,
deptLeaderId: record.responsiblePerson,
requireFinishDate: formatDate(record.time, 'YYYY-MM-DD'),
deadline: formatDate(record.time, 'YYYY-MM-DD HH:mm:ss'),
deadline: record.deadline || formatDate(record.time, 'YYYY-MM-DD HH:mm:ss'),
},
};
@@ -16,9 +16,9 @@
</a-space>
</div>
<a-row class="base-info-row" :gutter="[12, 4]">
<a-col :span="12" v-if="hasPermission('xizhishi')">
<a-col :span="12">
<a-form-item label="重要讲话指示批示" name="speakStatus">
<a-textarea v-model:value="mainForm.speakStatus" :auto-size="{ minRows: 1, maxRows: 7 }" :disabled="isDisabledAuth('xizhishi')" allow-clear />
<a-textarea v-model:value="mainForm.speakStatus" :auto-size="{ minRows: 1, maxRows: 7 }" :disabled="mainDisabled" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
@@ -27,9 +27,9 @@
</a-form-item>
</a-col>
<template v-if="showBaseInfoDetail">
<a-col :span="12" v-if="hasPermission('xitime')">
<a-col :span="12">
<a-form-item label="时间" name="time">
<a-date-picker v-model:value="mainForm.time" value-format="YYYY-MM-DD" :disabled="isDisabledAuth('xitime')" style="width: 100%" allow-clear />
<a-date-picker v-model:value="mainForm.time" value-format="YYYY-MM-DD" :disabled="mainDisabled" style="width: 100%" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
@@ -82,11 +82,37 @@
<JDictSelectTag v-model:value="mainForm.completionStatus" dictCode="db_status" placeholder="请选择完成状态" type="radio" :disabled="mainDisabled" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="截止日期" name="deadline">
<a-date-picker v-model:value="mainForm.deadline" value-format="YYYY-MM-DD HH:mm:ss" :show-time="true" :disabled="mainDisabled" style="width: 100%" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="报告反馈情况" name="reportFeedbackStatus">
<a-input v-model:value="mainForm.reportFeedbackStatus" :disabled="mainDisabled" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="是否存在完成风险" name="isCompletionRisk">
<a-radio-group v-model:value="mainForm.isCompletionRisk" :disabled="mainDisabled">
<a-radio :value="0">不存在</a-radio>
<a-radio :value="1">存在</a-radio>
</a-radio-group>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="是否需要督办领导" name="needSdwApproval">
<a-radio-group v-model:value="mainForm.needSdwApproval" :disabled="mainDisabled">
<a-radio :value="1"></a-radio>
<a-radio :value="0"></a-radio>
</a-radio-group>
</a-form-item>
</a-col>
<a-col v-if="mainForm.needSdwApproval === 1" :span="12">
<a-form-item label="督导领导列表" name="sdwLeaderList">
<j-select-user v-model:value="mainForm.sdwLeaderList" :disabled="mainDisabled" :multiple="true" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="拖期风险应对措施" name="delayRiskMitigation">
<a-input v-model:value="mainForm.delayRiskMitigation" :disabled="mainDisabled" allow-clear />
@@ -226,7 +252,7 @@
const loading = ref(false);
const savingMain = ref(false);
const savingSubApproveUser = ref(false);
const showBaseInfoDetail = ref(false);
const showBaseInfoDetail = ref(true);
const feedbackList = ref<any[]>([]);
const subApproveUser = ref('');
const isEnd = ref(0);
@@ -239,7 +265,7 @@
elmComment: '',
status: '',
responsiblePerson: '',
needSdwApproval: '',
needSdwApproval: 0,
sdwLeaderList: '',
implPlan: '',
leadDepartment: '',
@@ -251,7 +277,8 @@
reportFeedbackStatus: '',
isCompletionRisk: undefined,
delayRiskMitigation: '',
completionStatus: '',
completionStatus: undefined,
deadline: '',
implDept: '',
treeDepth: undefined,
sortOrder: undefined,
@@ -100,6 +100,11 @@
<JDictSelectTag v-model:value="formData.completionStatus" dictCode="db_status" placeholder="请选择完成状态" type="radio" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="截止日期" id="BgXiSpeakForm-deadline" name="deadline">
<a-date-picker placeholder="请选择截止日期" v-model:value="formData.deadline" value-format="YYYY-MM-DD HH:mm:ss" :show-time="true" style="width: 100%" allow-clear />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="拖期风险应对措施" v-bind="validateInfos.delayRiskMitigation" id="BgXiSpeakForm-delayRiskMitigation" name="delayRiskMitigation">
<a-input v-model:value="formData.delayRiskMitigation" placeholder="请输入" allow-clear></a-input>
@@ -175,6 +180,7 @@
isCompletionRisk: undefined,
delayRiskMitigation: '',
completionStatus: undefined,
deadline: '',
implDept: '',
treeDepth: undefined,
sortOrder: undefined,