style(xispeak): 优化列表显示列宽/顺序/对齐,新增所党委责任领导筛选,筛选框统一布局并选完即查

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
wsm
2026-07-23 10:59:10 +08:00
co-authored by Claude Opus 4.7
parent 15e7e10b83
commit bb6fbbc7e8
2 changed files with 57 additions and 53 deletions
+37 -46
View File
@@ -9,36 +9,58 @@ export const columns: BasicColumn[] = [
title: '习近平总书记重要讲话指示批示情况',
align: 'center',
dataIndex: 'speakStatus',
width: 300,
},
{
title: '企业负责同志批示情况',
align: 'center',
dataIndex: 'elmComment',
width: 260,
},
{
title: '学习传达研究部署情况',
align: 'center',
dataIndex: 'status',
width: 260,
},
{
title: '时间',
align: 'center',
dataIndex: 'time',
width: 110,
customRender: ({ text }) => {
text = !text ? '' : text.length > 10 ? text.substr(0, 10) : text;
return text;
},
},
{
title: '企业负责同志批示情况',
title: '截止日期',
align: 'center',
dataIndex: 'elmComment',
},
{
title: '学习传达研究部署情况',
align: 'center',
dataIndex: 'status',
dataIndex: 'deadline',
width: 110,
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',
dataIndex: 'secretLevel_dictText',
width: 80,
width: 70,
},
{
title: '责任领导',
title: '所党委责任领导',
align: 'center',
dataIndex: 'responsiblePerson_dictText',
width: 120,
},
// {
// title: '落实方案',
@@ -49,16 +71,19 @@ export const columns: BasicColumn[] = [
title: '牵头部门',
align: 'center',
dataIndex: 'implDept_dictText',
width: 150,
},
{
title: '贯彻落实措施',
align: 'center',
dataIndex: 'implMeasures',
width: 200,
},
{
title: '会议决策数',
align: 'center',
dataIndex: 'numberOfResolutions',
width: 100,
},
// {
// title: '落实情况',
@@ -69,11 +94,13 @@ export const columns: BasicColumn[] = [
title: '落实措施条数',
align: 'center',
dataIndex: 'implCount',
width: 110,
},
{
title: '措施已闭环数',
align: 'center',
dataIndex: 'closedCount',
width: 110,
},
// {
// title: '报告反馈情况',
@@ -99,22 +126,7 @@ export const columns: BasicColumn[] = [
title: '督办状态',
align: 'center',
dataIndex: 'bpmStatus_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;
},
width: 90,
},
// {
// title: '层深(最顶层节点层深为0)',
@@ -131,27 +143,6 @@ export const columns: BasicColumn[] = [
// align: 'center',
// dataIndex: 'bpmStatus',
// },
{
title: '督办次数',
align: 'center',
dataIndex: 'supervisionCount',
},
{
title: '审批信息',
align: 'center',
dataIndex: 'approveInfo',
customRender: ({ text }) => {
if (!text) return '-';
try {
const info = typeof text === 'string' ? JSON.parse(text) : text;
const keys = Object.keys(info);
if (keys.length === 0) return '-';
return `${keys.length} 项审批`;
} catch {
return '-';
}
},
},
];
//子表列表数据
+20 -7
View File
@@ -4,14 +4,19 @@
<div class="jeecg-basic-table-form-container">
<a-form ref="formRef" @keyup.enter="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-row :gutter="24">
<a-col :lg="8" :md="10" :sm="12">
<a-form-item label="重要讲话指示批示情况" name="speakStatus" :labelCol="{ xs: { span: 24 }, sm: { span: 10 } }" :wrapperCol="{ xs: { span: 24 }, sm: { span: 14 } }">
<JInput v-model:value="queryParam.speakStatus" type="like" placeholder="请输入重要讲话指示批示情况" allow-clear trim />
<a-col :lg="6" :md="8" :sm="12">
<a-form-item label="重要讲话指示批示情况" name="speakStatus">
<JInput v-model:value="queryParam.speakStatus" type="like" placeholder="请输入重要讲话指示批示情况" allow-clear trim @change="searchQuery" />
</a-form-item>
</a-col>
<a-col :lg="6" :md="8" :sm="12">
<a-form-item label="牵头部门" name="implDept">
<SzSelectDept v-model:value="queryParam.implDept" placeholder="选择牵头部门" allow-clear style="width: 100%" />
<SzSelectDept v-model:value="queryParam.implDept" placeholder="选择牵头部门" allow-clear style="width: 100%" @change="searchQuery" />
</a-form-item>
</a-col>
<a-col :lg="6" :md="8" :sm="12">
<a-form-item label="所党委责任领导" name="responsiblePerson">
<DeptRoleUserSelectDropDown v-model:value="queryParam.responsiblePerson" :deptId="PARTY_COMMITTEE_DEPT_ID" :roleId="SDW_LEADER_ROLE_ID" placeholder="请选择所党委责任领导" allow-clear style="width: 100%" @change="searchQuery" />
</a-form-item>
</a-col>
<!-- <a-col :lg="4" :md="6" :sm="8">-->
@@ -19,7 +24,7 @@
<!-- <JDictSelectTag v-model:value="queryParam.completionStatus" dictCode="db_status" placeholder="请选择完成状态" allow-clear @change="searchQuery" />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :lg="6">
<a-col :lg="6" :md="8" :sm="12">
<a-form-item name="bpmStatus" label="督办状态">
<a-select v-model:value="bpmStatusFilter" placeholder="请选择" allow-clear @change="handleBpmStatusChange">
<a-select-option value="1">未开始</a-select-option>
@@ -28,7 +33,7 @@
</a-select>
</a-form-item>
</a-col>
<a-col :lg="4" :md="8" :sm="12">
<a-col :lg="6" :md="8" :sm="12">
<span class="table-page-search-submitButtons">
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
<a-button preIcon="ant-design:reload-outlined" style="margin-left: 8px" @click="searchReset">重置</a-button>
@@ -95,7 +100,13 @@
</Dropdown>
</template>
<!--字段回显插槽-->
<template v-slot:bodyCell="{ column, record, index, text }"> </template>
<template v-slot:bodyCell="{ column, record, index, text }">
<template v-if="column.dataIndex === 'speakStatus'">
<a-tooltip title="点击查看详情">
<a style="font-weight: 500" @click="handleDetail(record)">{{ text }}</a>
</a-tooltip>
</template>
</template>
</BasicTable>
</div>
@@ -125,6 +136,8 @@ import { defHttp } from '/@/utils/http/axios';
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
import SzSelectDept from '/@/components/Form/src/jeecg/components/SzSelectDept.vue';
import DeptRoleUserSelectDropDown from '/@/components/semri/userComponent/DeptRoleUserSelectDropDown.vue';
import { PARTY_COMMITTEE_DEPT_ID, SDW_LEADER_ROLE_ID } from '/@/constant/supervision';
import BgXiSpeakModal from './components/BgXiSpeakModal.vue';
import BusinessProcessListModal from '/src/components/semri/process/BusinessProcessListModal.vue';