!27 refactor(xispeak): 改造列表页搜索框为表单式搜索区域

* refactor(xispeak): 改造列表页搜索框为表单式搜索区域
* Merge branch 'master' into feature/20260610
* fix(inspectTask): BPM表单移除措施数量/流程实例ID/流程状态/督办次数/排序字段,调整具体问题和整改措施label宽度对齐
* refactor(inspectTask): 合并基本信息与状态与统计为一个区域
* fix(inspectTask): 台账列表移除措施数量/流程状态/督办次数/排序列
* fix(inspectTask): 移除反馈数量和督办次数字段,措施数量/督办次数设为不可编辑
* fix(inspectTask): 党群领导条件显示,移除流程实例ID/流程状态/排序字段
* fix(inspectTask): 修复编辑时子表数据未回传导致反馈记录被清空
This commit is contained in:
new_new_new
2026-06-10 08:31:25 +00:00
parent 2b61314ae8
commit 67b60231ba
5 changed files with 121 additions and 139 deletions
+85 -39
View File
@@ -1,5 +1,34 @@
<template>
<div>
<div class="p-2 erpNativeList">
<!--查询区域-->
<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="6" :md="8" :sm="12">
<a-form-item label="重要讲话指示批示情况" name="speakStatus">
<JInput v-model:value="queryParam.speakStatus" type="like" placeholder="请输入重要讲话指示批示情况" allow-clear trim />
</a-form-item>
</a-col>
<a-col :lg="5" :md="8" :sm="12">
<a-form-item label="牵头部门" name="implDept">
<j-select-dept v-model:value="queryParam.implDept" placeholder="选择牵头部门" allow-clear style="width: 100%" />
</a-form-item>
</a-col>
<a-col :lg="4" :md="6" :sm="8">
<a-form-item label="完成状态" name="completionStatus">
<JDictSelectTag v-model:value="queryParam.completionStatus" dictCode="db_status" placeholder="请选择完成状态" allow-clear @change="searchQuery" />
</a-form-item>
</a-col>
<a-col :lg="4" :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>
</a-form>
</div>
<div class="content">
<BasicTable
@register="registerTable"
:rowSelection="rowSelection"
@@ -30,9 +59,6 @@
</a-dropdown>
<!-- 高级查询 -->
<super-query :config="superQueryConfig" @search="handleSuperQuery" />
<div class="table-title-search">
<j-select-dept v-model:value="searchDeptIds" placeholder="选择牵头部门" allow-clear style="width: 100%" @change="handleDeptSearch" />
</div>
</template>
<!--操作栏-->
@@ -42,6 +68,7 @@
<!--字段回显插槽-->
<template v-slot:bodyCell="{ column, record, index, text }"> </template>
</BasicTable>
</div>
<BgXiSpeakFeedbackViewModal ref="feedbackViewModalRef" />
<!-- 表单区域 -->
@@ -63,6 +90,8 @@
import { startProcessSchedules } from '/@/api/common/api';
import { dateUtil } from '/@/utils/dateUtil';
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue';
import BgXiSpeakModal from './components/BgXiSpeakModal.vue';
@@ -83,7 +112,6 @@
updateLaunchType,
saveOrUpdateDict,
withDrawXiSpeak,
getRootListWithDept,
bgXiSpeakFeedbackList,
} from './BgXiSpeak.api';
@@ -95,9 +123,9 @@
const [registerBpmModal, { openModal: bpmPicModal }] = useModal();
const { createMessage } = useMessage();
const formRef = ref();
const expandedRowKeys = ref([]);
const queryParams = ref<any>({});
const toggleSearchStatus = ref<boolean>(false);
const queryParam = ref<any>({});
const registerModal = ref();
const flowScheduleModalRef = ref();
const feedbackViewModalRef = ref();
@@ -144,35 +172,17 @@
const mainId = computed(() => (unref(selectedRowKeys).length > 0 ? unref(selectedRowKeys)[0] : ''));
provide('mainId', mainId);
const searchDeptIds = ref([]);
const isDeptSearching = ref(false);
async function handleDeptSearch(value) {
if (!value || (Array.isArray(value) && value.length === 0)) {
isDeptSearching.value = false;
reload();
return;
}
const deptIds = Array.isArray(value) ? value.join(',') : value;
try {
const res = await getRootListWithDept(deptIds);
isDeptSearching.value = true;
const records = res?.records || res || [];
setTableData(records);
} catch (e) {
createMessage.error('按部门查询失败');
}
}
const labelCol = reactive({
xs: 24,
sm: 4,
xl: 6,
xxl: 4,
sm: 8,
xl: 10,
xxl: 8,
});
const wrapperCol = reactive({
xs: 24,
sm: 20,
sm: 16,
xl: 14,
xxl: 16,
});
// 高级查询配置
@@ -717,20 +727,27 @@
feedbackViewModalRef.value.open(record);
}
function clearQueryParams() {
Object.keys(queryParam.value).forEach((key) => {
delete queryParam.value[key];
});
}
/**
* 查询
*/
function searchQuery() {
reload();
reload({ page: 1 });
}
/**
* 重置
*/
function searchReset() {
queryParam.value = {};
formRef.value?.resetFields();
clearQueryParams();
selectedRowKeys.value = [];
reload();
reload({ page: 1 });
}
/**
@@ -744,10 +761,39 @@
</script>
<style lang="less" scoped>
.table-title-search {
display: inline-flex;
align-items: center;
margin-left: 8px;
width: 280px;
.jeecg-basic-table-form-container {
padding: 0;
.table-page-search-submitButtons {
display: block;
margin-bottom: 24px;
white-space: nowrap;
}
.query-group-cust{
min-width: 100px !important;
}
.query-group-split-cust{
width: 30px;
display: inline-block;
text-align: center;
}
.ant-form-item:not(.ant-form-item-with-help) {
margin-bottom: 16px;
height: 32px;
}
:deep(.ant-picker),
:deep(.ant-input-number) {
width: 100%;
}
}
.erpNativeList {
height: 100%;
.content {
background-color: #fff;
height: 100%;
}
}
</style>