style(bqtakepulse): 统一搜索表单布局,简化筛选为4项,牵头/协办部门支持多选

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
wsm
2026-07-23 15:36:06 +08:00
co-authored by Claude Opus 4.7
parent fedb13ce5a
commit 1f92e47287
+52 -46
View File
@@ -2,50 +2,32 @@
<div class="p-2">
<!--查询区域-->
<div class="jeecg-basic-table-form-container">
<a-form ref="formRef" @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-form ref="formRef" @keyup.enter="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-row :gutter="24">
<a-col :lg="6">
<a-form-item name="year">
<template #label><span title="年份">年份</span></template>
<j-select-multiple placeholder="请选择年份" v-model:value="queryParam.year" dictCode="super_year" allow-clear />
<a-col :lg="6" :md="8" :sm="12">
<a-form-item label="意见主题" name="title">
<JInput v-model:value="queryParam.title" type="like" placeholder="请输入意见主题" allow-clear trim @change="searchQuery" />
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="taskType">
<template #label><span title="会议类型:行政线、技术线">会议类型</span></template>
<j-select-multiple placeholder="请选择会议类型:行政线、技术线" v-model:value="queryParam.taskType" dictCode="super_takepulse_type" allow-clear />
<a-col :lg="6" :md="8" :sm="12">
<a-form-item label="分管所领导" name="manageSuoleader">
<DeptRoleUserSelectDropDown v-model:value="queryParam.manageSuoleader" :deptId="PARTY_COMMITTEE_DEPT_ID" :roleId="CHARGE_LEADER_ROLE_ID" placeholder="请选择分管所领导" allow-clear style="width: 100%" @change="searchQuery" />
</a-form-item>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :lg="6">
<a-form-item name="type">
<template #label><span title="类别:党的建设等其他">类别</span></template>
<a-input placeholder="请输入类别:党的建设等其他" v-model:value="queryParam.type" allow-clear ></a-input>
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="responDeptid">
<template #label><span title="牵头部门">牵头部门</span></template>
<sz-select-dept placeholder="请选择牵头部门" v-model:value="queryParam.responDeptid" checkStrictly allow-clear />
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="assistDeptid">
<template #label><span title="协办部门">协办部门</span></template>
<sz-select-dept placeholder="请选择协办部门" v-model:value="queryParam.assistDeptid" checkStrictly allow-clear />
</a-form-item>
</a-col>
</template>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-col :lg="6">
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
<a-button preIcon="ant-design:reload-outlined" @click="searchReset" style="margin-left: 8px">重置</a-button>
<a @click="toggleSearchStatus = !toggleSearchStatus" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<Icon :icon="toggleSearchStatus ? 'ant-design:up-outlined' : 'ant-design:down-outlined'" />
</a>
</a-col>
<a-col :lg="6" :md="8" :sm="12">
<a-form-item label="牵头部门" name="responDeptid">
<sz-select-dept placeholder="请选择牵头部门" v-model:value="selectedResponDept" checkStrictly allow-clear @change="handleResponDeptChange" />
</a-form-item>
</a-col>
<a-col :lg="6" :md="8" :sm="12">
<a-form-item label="协办部门" name="assistDeptid">
<sz-select-dept placeholder="请选择协办部门" v-model:value="selectedAssistDept" checkStrictly allow-clear @change="handleAssistDeptChange" />
</a-form-item>
</a-col>
<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>
</span>
</a-col>
</a-row>
@@ -87,6 +69,11 @@
</template>
<!--字段回显插槽-->
<template v-slot:bodyCell="{ column, record, index, text }">
<template v-if="column.dataIndex === 'title'">
<a-tooltip title="点击查看详情">
<a style="font-weight: 500" @click="handleDetail(record)">{{ text }}</a>
</a-tooltip>
</template>
</template>
<!-- 嵌套反馈信息表仅展示当前事项下的执行情况反馈记录 -->
<template #expandedRowRender="{ record }">
@@ -161,8 +148,10 @@
import { showImportValidationErrors } from '/@/utils/helper/importError';
import { useMessage } from '/@/hooks/web/useMessage';
import { countFeedbackStatus } from '/@/views/bg/utils/feedbackStatusCount';
import JSelectMultiple from '/@/components/Form/src/jeecg/components/JSelectMultiple.vue';
import SzSelectDept from '/@/components/Form/src/jeecg/components/SzSelectDept.vue';
import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
import DeptRoleUserSelectDropDown from '/@/components/semri/userComponent/DeptRoleUserSelectDropDown.vue';
import { PARTY_COMMITTEE_DEPT_ID, CHARGE_LEADER_ROLE_ID } from '/@/constant/supervision';
import Icon from '/@/components/Icon/index';
import { startProcessSchedules } from '/@/api/common/api';
import { dateUtil } from '/@/utils/dateUtil';
@@ -179,6 +168,8 @@
const formRef = ref();
const queryParam = reactive<any>({});
const selectedResponDept = ref([]);
const selectedAssistDept = ref([]);
const expandedRowKeys = ref<Array<string | number>>([]);
const feedbackTableData = reactive<Record<string, Recordable[]>>({});
const statsData = reactive({ notStarted: 0, inProgress: 0, overdue: 0, completed: 0 });
@@ -607,7 +598,6 @@
/* ----------------------以下为原生查询需要添加的-------------------------- */
const { createMessage } = useMessage();
const toggleSearchStatus = ref<boolean>(false);
const labelCol = reactive({
xs:24,
sm:4,
@@ -675,9 +665,29 @@
await defHttp.uploadFile({ url: getImportExcelByEasyExcelUrl }, { file: data.file }, { success: isReturn });
}
function handleResponDeptChange(values) {
if (values && values.length > 0) {
queryParam.responDeptid = values.join(',');
} else {
delete queryParam.responDeptid;
}
searchQuery();
}
function handleAssistDeptChange(values) {
if (values && values.length > 0) {
queryParam.assistDeptid = values.join(',');
} else {
delete queryParam.assistDeptid;
}
searchQuery();
}
function searchReset() {
formRef.value.resetFields();
selectedRowKeys.value = [];
selectedResponDept.value = [];
selectedAssistDept.value = [];
resetFeedbackExpand();
//刷新数据
reload({ page: 1 });
@@ -688,11 +698,7 @@
* @param key
* @param value
*/
function handleFormJoinChange(key, value) {
if (typeof value != 'string') {
queryParam[key] = value.join(',');
}
}
</script>
<style lang="less" scoped>
.jeecg-basic-table-form-container {