fix(bqtakepulse): 修复前端页面 QA 审查发现的问题
- 部门树切换点选模式并回写牵头/协办部门 - 导出切换 EasyExcel 端点,统计标签随操作刷新 - 牵头部门必填星号、保存提示、标题点击防连带展开 - bpmStatus 空值不再同时显示发起与再次督办,搜索加防抖 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -156,6 +156,7 @@ export const columns: BasicColumn[] = [
|
||||
align:"center",
|
||||
dataIndex: 'bpmStatus_dictText',
|
||||
width: '80px',
|
||||
fixed: 'right',
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<template #label>
|
||||
<a-tooltip title="支持模糊查询,输入意见主题关键词">意见主题</a-tooltip>
|
||||
</template>
|
||||
<a-tooltip title="支持模糊查询,输入意见主题关键词"><JInput v-model:value="queryParam.title" type="like" placeholder="请输入意见主题" allow-clear trim @change="searchQuery" /></a-tooltip>
|
||||
<a-tooltip title="支持模糊查询,输入意见主题关键词"><JInput v-model:value="queryParam.title" type="like" placeholder="请输入意见主题" allow-clear trim @change="debouncedSearchQuery" /></a-tooltip>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="4" :lg="6" :md="8" :sm="12">
|
||||
@@ -25,7 +25,7 @@
|
||||
<template #label>
|
||||
<a-tooltip title="按牵头部门筛选">牵头部门</a-tooltip>
|
||||
</template>
|
||||
<a-tooltip title="按牵头部门筛选"><sz-select-dept placeholder="请选择牵头部门" v-model:value="selectedResponDept" checkStrictly allow-clear @change="handleResponDeptChange" /></a-tooltip>
|
||||
<a-tooltip title="按牵头部门筛选"><sz-select-dept placeholder="请选择牵头部门" v-model:value="selectedResponDept" :checkable="false" checkStrictly allow-clear @change="handleResponDeptChange" /></a-tooltip>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="5" :lg="6" :md="8" :sm="12">
|
||||
@@ -33,7 +33,7 @@
|
||||
<template #label>
|
||||
<a-tooltip title="按协办部门筛选">协办部门</a-tooltip>
|
||||
</template>
|
||||
<a-tooltip title="按协办部门筛选"><sz-select-dept placeholder="请选择协办部门" v-model:value="selectedAssistDept" checkStrictly allow-clear @change="handleAssistDeptChange" /></a-tooltip>
|
||||
<a-tooltip title="按协办部门筛选"><sz-select-dept placeholder="请选择协办部门" v-model:value="selectedAssistDept" :checkable="false" checkStrictly allow-clear @change="handleAssistDeptChange" /></a-tooltip>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="4" :lg="6" :md="8" :sm="12">
|
||||
@@ -83,7 +83,7 @@
|
||||
<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 style="font-weight: 500" @click.stop="handleDetail(record)">{{ text }}</a>
|
||||
</a-tooltip>
|
||||
</template>
|
||||
</template>
|
||||
@@ -155,11 +155,12 @@
|
||||
import {useModal} from '/@/components/Modal';
|
||||
import BgTakepulseModal from './components/BgTakepulseModal.vue'
|
||||
import {columns, superQuerySchema} from './BgTakepulse.data';
|
||||
import {list, statusStats, deleteOne, getImportUrl, getExportUrl, getImportExcelByEasyExcelUrl, getCheckExcelByEasyExcelUrl, getExportXlsHeadersUrl, saveOrUpdate, bgTakepulseFeedbackList} from './BgTakepulse.api';
|
||||
import {list, statusStats, deleteOne, getImportUrl, getExportXlsByEasyExcelUrl, getImportExcelByEasyExcelUrl, getCheckExcelByEasyExcelUrl, getExportXlsHeadersUrl, saveOrUpdate, bgTakepulseFeedbackList} from './BgTakepulse.api';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { showImportValidationErrors } from '/@/utils/helper/importError';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import { countFeedbackStatus } from '/@/views/bg/utils/feedbackStatusCount';
|
||||
import { useDebounceFn } from '@vueuse/core';
|
||||
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';
|
||||
@@ -235,7 +236,7 @@
|
||||
},
|
||||
exportConfig: {
|
||||
name:"我为四所把把脉",
|
||||
url: getExportUrl,
|
||||
url: getExportXlsByEasyExcelUrl,
|
||||
params: queryParam,
|
||||
},
|
||||
importConfig: {
|
||||
@@ -361,8 +362,12 @@
|
||||
selectedRowKeys.value = [];
|
||||
resetFeedbackExpand();
|
||||
reload({ page: 1 });
|
||||
fetchStatusStats();
|
||||
}
|
||||
|
||||
// 输入框逐字触发的查询做防抖,查询按钮仍走未防抖的 searchQuery
|
||||
const debouncedSearchQuery = useDebounceFn(searchQuery, 500);
|
||||
|
||||
async function fetchStatusStats() {
|
||||
try {
|
||||
const params: Recordable = {};
|
||||
@@ -432,6 +437,7 @@
|
||||
selectedRowKeys.value = [];
|
||||
resetFeedbackExpand();
|
||||
reload();
|
||||
fetchStatusStats();
|
||||
}
|
||||
/**
|
||||
* 操作栏
|
||||
@@ -471,13 +477,13 @@
|
||||
onClick: handleQueryProcess.bind(null, record),
|
||||
}
|
||||
];
|
||||
if(record.bpmStatus == '1' || !record.bpmStatus){
|
||||
if(!record.bpmStatus || record.bpmStatus == '1'){
|
||||
dropDownAction.push({
|
||||
label: '发起督办流程',
|
||||
onClick: handleProcess.bind(null, record),
|
||||
})
|
||||
}
|
||||
if(record.bpmStatus == '2' || !record.bpmStatus){
|
||||
if(record.bpmStatus == '2'){
|
||||
dropDownAction.push({
|
||||
label: '再次督办',
|
||||
onClick: handleProcess.bind(null, record),
|
||||
@@ -713,6 +719,7 @@
|
||||
delete queryParam.responDeptid;
|
||||
}
|
||||
searchQuery();
|
||||
fetchStatusStats();
|
||||
}
|
||||
|
||||
function handleAssistDeptChange(values) {
|
||||
@@ -722,6 +729,7 @@
|
||||
delete queryParam.assistDeptid;
|
||||
}
|
||||
searchQuery();
|
||||
fetchStatusStats();
|
||||
}
|
||||
|
||||
function searchReset() {
|
||||
@@ -732,6 +740,7 @@
|
||||
resetFeedbackExpand();
|
||||
//刷新数据
|
||||
reload({ page: 1 });
|
||||
fetchStatusStats();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -66,12 +66,12 @@
|
||||
</a-col>
|
||||
<a-col :xs="24" :md="12">
|
||||
<a-form-item label="牵头部门" v-bind="validateInfos.responDeptid" id="BgTakepulseForm-responDeptid" name="responDeptid">
|
||||
<sz-select-dept v-model:value="formData.responDeptid" :multiple="true" checkStrictly allow-clear />
|
||||
<sz-select-dept v-model:value="formData.responDeptid" :multiple="true" :checkable="false" checkStrictly allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="24" :md="12">
|
||||
<a-form-item label="协办部门" v-bind="validateInfos.assistDeptid" id="BgTakepulseForm-assistDeptid" name="assistDeptid">
|
||||
<sz-select-dept v-model:value="formData.assistDeptid" :multiple="true" checkStrictly allow-clear />
|
||||
<sz-select-dept v-model:value="formData.assistDeptid" :multiple="true" :checkable="false" checkStrictly allow-clear />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="24" :md="12">
|
||||
@@ -172,6 +172,7 @@
|
||||
<script lang="ts">
|
||||
import { defineComponent, ref, reactive, computed, toRaw, onMounted, watch } from 'vue';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import { queryDataById, saveOrUpdate } from '../BgTakepulse.api';
|
||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||
import JSwitch from '/@/components/Form/src/jeecg/components/JSwitch.vue';
|
||||
@@ -215,6 +216,7 @@
|
||||
setup(props, {emit}) {
|
||||
const SUP_LEADER_DEPT_ID = SUOBAN_DEPT_ID;
|
||||
const SUP_LEADER_ROLE_ID = MEASURE_RES_LEADER_ROLE_ID;
|
||||
const { createMessage } = useMessage();
|
||||
const loading = ref(false);
|
||||
const formRef = ref();
|
||||
const formData = reactive<Record<string, any>>({
|
||||
@@ -258,6 +260,7 @@
|
||||
secretLevel: [{ required: true, message: '请选择密级' }],
|
||||
title: [{ required: true, message: '请输入意见主题' }],
|
||||
responDeptid: [
|
||||
{ required: true, message: '请选择牵头部门' },
|
||||
{
|
||||
validator: async (_rule, value) => {
|
||||
if (value === undefined || value === null || value === '' || (Array.isArray(value) && value.length === 0)) {
|
||||
@@ -394,6 +397,7 @@
|
||||
console.log('表单提交数据', values)
|
||||
const isUpdate = values.id ? true : false
|
||||
await saveOrUpdate(values, isUpdate);
|
||||
createMessage.success('保存成功');
|
||||
//关闭弹窗
|
||||
emit('success');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user