5.6页面样式bug更改

This commit is contained in:
王兴凯 2026-05-07 08:35:52 +08:00
parent 7b04cb0076
commit 0c3b314861
11 changed files with 166 additions and 53 deletions

Binary file not shown.

View File

@ -34,3 +34,12 @@ export function batchApproveByApprovalId(data: any) {
data data
}); });
} }
// 批量驳回
export function batchReject(data: { approvalIds: string[], rejectReason: string }) {
return request({
url: '/data/fishDraft/batchReject',
method: 'post',
data
});
}

View File

@ -83,12 +83,18 @@
<!-- 返回登录 --> <!-- 返回登录 -->
<a-form-item style="display: flex;align-items: center;justify-content: center;width: 100%;"> <a-form-item style="display: flex;align-items: center;justify-content: center;width: 100%;">
<a-button type="link" size="small" block @click="backToLogin" <a-button type="link" size="small" block @click="backToLogin">
style="margin-left: 20px;">
已有账号返回登录 已有账号返回登录
</a-button> </a-button>
<a-button type="link" size="small" block >
|
</a-button>
<div></div>
<a href="/file/注册操作手册.docx" download="注册用户操作手册.docx">
<a-button type="link" size="small" block >
注册用户操作手册
</a-button>
</a>
</a-form-item> </a-form-item>
</a-form> </a-form>
</a-tab-pane> </a-tab-pane>
@ -445,7 +451,7 @@ const handleSendSms = async () => {
} }
try { try {
const res:any = await sendSmsCode(registerData.phone, 1); // type=1 const res: any = await sendSmsCode(registerData.phone, 1); // type=1
if (res.code == 1) { if (res.code == 1) {
return; return;
} }
@ -838,4 +844,5 @@ const filterOption = (inputValue: string, option: any) => {
} }
} }
} }
}</style> }
</style>

View File

@ -87,16 +87,16 @@ const searchList: any = computed(() => [
allowClear: true, allowClear: true,
}, },
}, },
{ // {
width: 120, // width: 120,
type: "Select", // type: "Select",
name: "status", // name: "status",
label: "数据状态", // label: "",
fieldProps: { // fieldProps: {
// allowClear: true, // // allowClear: true,
}, // },
options: props.guoyuStatus, // options: props.guoyuStatus,
}, // },
{ {
span: 12, span: 12,
type: "RangePicker", type: "RangePicker",

View File

@ -349,13 +349,13 @@ const handleSearchFinish = (values: any) => {
field: "strdt", field: "strdt",
operator: "gte", operator: "gte",
dataType: "date", dataType: "date",
value: values.strdt[0], value: values.strdt[0] + ' 00:00:00',
}, },
{ {
field: "strdt", field: "strdt",
operator: "lte", operator: "lte",
dataType: "date", dataType: "date",
value: values.strdt[1], value: values.strdt[1] + ' 23:59:59',
}, },
values.direction && { values.direction && {
field: "direction", field: "direction",
@ -363,11 +363,11 @@ const handleSearchFinish = (values: any) => {
dataType: "string", dataType: "string",
value: values.direction, value: values.direction,
}, },
values.status && { {
field: "status", field: "status",
operator: "eq", operator: "eq",
dataType: "string", dataType: "string",
value: values.status, value: 'APPROVED',
}, },
values.stcd && { values.stcd && {
field: "stcd", field: "stcd",

View File

@ -1,12 +1,12 @@
<template> <template>
<div class="guoYuSheShiShuJuTianBao-search"> <div class="guoYuSheShiShuJuTianBao-search">
<BasicSearch ref="basicSearchRef" :searchList="searchList" :initial-values="initSearchData" :zhujianfujian="'fu'" @reset="handleReset" <BasicSearch ref="basicSearchRef" :searchList="searchList" :initial-values="initSearchData" :zhujianfujian="'fu'"
@finish="onSearchFinish" @values-change="onValuesChange"> @reset="handleReset" @finish="onSearchFinish" @values-change="onValuesChange">
<template #ftp="{ onChange }"> <template #ftp="{ onChange }">
<fishSearch v-model="localTypeDate" width="200px" @update:modelValue="onChange" /> <fishSearch v-model="localTypeDate" width="200px" @update:modelValue="onChange" />
</template> </template>
<template #actions> <template #actions>
<a-tooltip title="手动新增" > <a-tooltip title="手动新增">
<a-button v-hasPerm="['sjtb:import-add']" @click="props.handleAdd" type="primary"> <a-button v-hasPerm="['sjtb:import-add']" @click="props.handleAdd" type="primary">
手动新增 手动新增
</a-button> </a-button>
@ -24,17 +24,17 @@
<template #icon> <template #icon>
<SaveOutlined /> <SaveOutlined />
</template> </template>
提交数据 提交数据
</a-button> </a-button>
</a-tooltip> </a-tooltip>
<a-tooltip title="全部提交"> <a-tooltip title="全部提交">
<a-button v-hasPerm="['sjtb:import-add']" @click="props.allSubmitBtn" :disabled="batchData.length === 0"> <a-button v-hasPerm="['sjtb:import-add']" @click="props.allSubmitBtn" :disabled="batchData.length === 0">
<template #icon> <template #icon>
<SaveOutlined /> <SaveOutlined />
</template> </template>
全部提交 全部提交
</a-button> </a-button>
</a-tooltip> --> </a-tooltip> -->
<!-- <a-tooltip title="批量审批"> <!-- <a-tooltip title="批量审批">
<a-button v-hasPerm="['sjtb:edit-review']" @click="props.successBtn" :disabled="batchData.length === 0"> <a-button v-hasPerm="['sjtb:edit-review']" @click="props.successBtn" :disabled="batchData.length === 0">
@ -67,7 +67,9 @@
</a-tooltip> </a-tooltip>
<a-tooltip title="操作手册下载"> <a-tooltip title="操作手册下载">
<a-button> <a-button>
<a href="/file/过鱼设施数据填报操作手册.docx" download="过鱼设施数据填报操作手册.docx">
操作手册下载 操作手册下载
</a>
</a-button> </a-button>
</a-tooltip> </a-tooltip>
</template> </template>
@ -95,7 +97,7 @@ interface Props {
importBtn: () => void; importBtn: () => void;
batchDelBtn: () => void; batchDelBtn: () => void;
submitBtn: () => void; submitBtn: () => void;
allSubmitBtn:()=> void; allSubmitBtn: () => void;
successBtn: () => void; successBtn: () => void;
batchData: any[]; batchData: any[];
handleAdd: () => void; handleAdd: () => void;

View File

@ -779,13 +779,13 @@ const handleSearchFinish = (values: any) => {
field: "strdt", field: "strdt",
operator: "gte", operator: "gte",
dataType: "date", dataType: "date",
value: values.strdt[0], value: values.strdt[0] + ' 00:00:00',
}, },
{ {
field: "strdt", field: "strdt",
operator: "lte", operator: "lte",
dataType: "date", dataType: "date",
value: values.strdt[1], value: values.strdt[1] + ' 23:59:59',
}, },
values.direction && { values.direction && {
field: "direction", field: "direction",

View File

@ -40,8 +40,8 @@ const initSearchData = {
ftp: null, ftp: null,
direction: null, direction: null,
strdt: [ strdt: [
dayjs().subtract(1, "month").startOf("month").format("YYYY-MM-DD HH:mm:ss"), dayjs().subtract(1, "month").startOf("month").format("YYYY-MM-DD"),
dayjs().endOf("day").format("YYYY-MM-DD HH:mm:ss"), dayjs().endOf("day").format("YYYY-MM-DD"),
], ],
}; };

View File

@ -2,7 +2,7 @@
<div class="shengPiJiLu-page"> <div class="shengPiJiLu-page">
<!-- 搜索区域组件具体 props 需根据实际子组件调整 --> <!-- 搜索区域组件具体 props 需根据实际子组件调整 -->
<GuoYuSheShiShuJuTianBaoSearch @search-finish="handleSearchFinish" @reset="handleReset" <GuoYuSheShiShuJuTianBaoSearch @search-finish="handleSearchFinish" @reset="handleReset"
:selected-count="selectedRows.length" @batch-approve="handleBatchApprove" /> :selected-count="selectedRows.length" @batch-approve="handleBatchApprove" @batch-reject="handleBatchReject" />
<!-- 主表格 --> <!-- 主表格 -->
<BasicTable ref="tableRef" :columns="columns" :list-url="queryPageList" :search-params="computedSearchParams" <BasicTable ref="tableRef" :columns="columns" :list-url="queryPageList" :search-params="computedSearchParams"
:scroll-y="500" :enable-row-selection="true" @selection-change="handleSelectionChange"> :scroll-y="500" :enable-row-selection="true" @selection-change="handleSelectionChange">
@ -165,13 +165,27 @@
</a-form-item> </a-form-item>
</a-form> </a-form>
</a-modal> </a-modal>
<!-- 批量驳回弹框 -->
<a-modal v-model:open="batchRejectVisible" title="批量驳回确认" :confirm-loading="batchRejectLoading"
@ok="handleBatchRejectConfirm" @cancel="handleBatchRejectCancel" width="600px">
<a-form :model="batchRejectForm">
<a-form-item label="选中记录数">
<span>{{ selectedRows.length }} </span>
</a-form-item>
<a-form-item label="驳回原因" required>
<a-textarea v-model:value="batchRejectForm.rejectReason" :rows="4" placeholder="请输入驳回原因(必填)"
:maxlength="500" show-count />
</a-form-item>
</a-form>
</a-modal>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, reactive, onMounted, h, computed, nextTick } from 'vue'; import { ref, reactive, onMounted, h, computed, nextTick } from 'vue';
import dayjs from "dayjs"; import dayjs from "dayjs";
import { queryPageList, getApprovalLogList, getApprovalChangeLogList, batchApproveByApprovalId } from '@/api/shengPiJiLu'; import { queryPageList, getApprovalLogList, getApprovalChangeLogList, batchApproveByApprovalId, batchReject } from '@/api/shengPiJiLu';
import { Tag, message } from "ant-design-vue"; import { Tag, message } from "ant-design-vue";
import { LeftOutlined, RightOutlined } from "@ant-design/icons-vue"; import { LeftOutlined, RightOutlined } from "@ant-design/icons-vue";
import BasicTable from "@/components/BasicTable/index.vue"; import BasicTable from "@/components/BasicTable/index.vue";
@ -489,13 +503,13 @@ const handleDetailSearchFinish = (values: any) => {
field: "strdt", field: "strdt",
operator: "gte", operator: "gte",
dataType: "date", dataType: "date",
value: values.strdt[0], value: values.strdt[0] + " 00:00:00",
}, },
values.strdt && { values.strdt && {
field: "strdt", field: "strdt",
operator: "lte", operator: "lte",
dataType: "date", dataType: "date",
value: values.strdt[1], value: values.strdt[1] + " 23:59:59",
}, },
values.direction && { values.direction && {
field: "direction", field: "direction",
@ -804,6 +818,13 @@ const batchApproveForm = ref({
}); });
const selectedRows = ref<any[]>([]); const selectedRows = ref<any[]>([]);
//
const batchRejectVisible = ref(false);
const batchRejectLoading = ref(false);
const batchRejectForm = ref({
rejectReason: ''
});
// //
const handleSelectionChange = (rows: any[], data: any) => { const handleSelectionChange = (rows: any[], data: any) => {
selectedRows.value = data; selectedRows.value = data;
@ -875,6 +896,69 @@ const handleBatchApproveCancel = () => {
batchApproveForm.value.approveComment = ''; batchApproveForm.value.approveComment = '';
}; };
//
const handleBatchReject = () => {
if (selectedRows.value.length === 0) {
message.warning('请至少选择一条记录');
return;
}
batchRejectForm.value.rejectReason = '';
batchRejectVisible.value = true;
};
//
const handleBatchRejectConfirm = async () => {
//
if (!batchRejectForm.value.rejectReason || batchRejectForm.value.rejectReason.trim() === '') {
message.warning('请填写驳回原因');
return;
}
// PENDING
const hasNonPendingRecord = selectedRows.value.some(row => row.status !== 'PENDING');
if (hasNonPendingRecord) {
message.warning('当前选中的数据中含有非待审批状态的记录,无法驳回。');
return;
}
batchRejectLoading.value = true;
try {
// ID approvalIds
const approvalIds = selectedRows.value.map(row => row.id).filter(id => id);
if (approvalIds.length === 0) {
message.warning('选中的记录缺少有效的ID');
batchRejectLoading.value = false;
return;
}
const res: any = await batchReject({
approvalIds,
rejectReason: batchRejectForm.value.rejectReason
});
if (res.code == '0') {
message.success('批量驳回成功');
batchRejectVisible.value = false;
batchRejectForm.value.rejectReason = '';
//
tableRef.value?.clearSelection();
//
handleSearchFinish(searchData.value);
}
} catch (error) {
// message.error('');
} finally {
batchRejectLoading.value = false;
}
};
//
const handleBatchRejectCancel = () => {
batchRejectVisible.value = false;
batchRejectForm.value.rejectReason = '';
};
// //
const searchData = ref<any>({ const searchData = ref<any>({
hbrvcd: 'all', hbrvcd: 'all',

View File

@ -12,6 +12,15 @@
</a-button> </a-button>
</a-tooltip> </a-tooltip>
<a-tooltip title="批量驳回">
<a-button :disabled="selectedCount === 0" @click="$emit('batch-reject')">
<template #icon>
<CloseCircleOutlined />
</template>
批量驳回
</a-button>
</a-tooltip>
</template> </template>
</BasicSearch> </BasicSearch>
</div> </div>
@ -23,6 +32,7 @@ import BasicSearch from "@/components/BasicSearch/index.vue"; // 确保路径正
import { getDictItemsByCode } from '@/api/dict'; import { getDictItemsByCode } from '@/api/dict';
import { import {
CheckSquareOutlined, CheckSquareOutlined,
CloseCircleOutlined,
} from "@ant-design/icons-vue"; } from "@ant-design/icons-vue";
// --- Props & Emits --- // --- Props & Emits ---
interface Props { interface Props {
@ -37,6 +47,7 @@ const emit = defineEmits<{
(e: "reset", values: any): void; (e: "reset", values: any): void;
(e: "searchFinish", values: any): void; (e: "searchFinish", values: any): void;
(e: "batch-approve"): void; (e: "batch-approve"): void;
(e: "batch-reject"): void;
}>(); }>();