5.6页面样式bug更改
This commit is contained in:
parent
7b04cb0076
commit
0c3b314861
BIN
frontend/public/file/注册操作手册.docx
Normal file
BIN
frontend/public/file/注册操作手册.docx
Normal file
Binary file not shown.
BIN
frontend/public/file/过鱼设施数据填报操作手册.docx
Normal file
BIN
frontend/public/file/过鱼设施数据填报操作手册.docx
Normal file
Binary file not shown.
@ -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
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
@ -25,7 +25,7 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<!-- 密码 -->
|
<!-- 密码 -->
|
||||||
<a-form-item name="password" label="密 码" :dependencies="['username']">
|
<a-form-item name="password" label="密 码" :dependencies="['username']">
|
||||||
<a-input-password v-model:value="registerData.password"
|
<a-input-password v-model:value="registerData.password"
|
||||||
placeholder="请设置密码(6-20个字符)" />
|
placeholder="请设置密码(6-20个字符)" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@ -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>
|
||||||
@ -96,7 +102,7 @@
|
|||||||
|
|
||||||
<!-- 注册确认弹框 -->
|
<!-- 注册确认弹框 -->
|
||||||
<a-modal v-model:open="modalVisible" title="选择所属组织" width="600px" :confirm-loading="loading"
|
<a-modal v-model:open="modalVisible" title="选择所属组织" width="600px" :confirm-loading="loading"
|
||||||
@ok="onRegister" @cancel="handleModalCancel" :maskClosable="false">
|
@ok="onRegister" @cancel="handleModalCancel" :maskClosable="false">
|
||||||
<a-form :model="organizationData" :rules="organizationRules" layout="horizontal"
|
<a-form :model="organizationData" :rules="organizationRules" layout="horizontal"
|
||||||
ref="organizationFormRef" :label-col="{ span: 4 }" :wrapper-col="{ span: 20 }">
|
ref="organizationFormRef" :label-col="{ span: 4 }" :wrapper-col="{ span: 20 }">
|
||||||
|
|
||||||
@ -445,10 +451,10 @@ 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;
|
||||||
}
|
}
|
||||||
message.success("验证码已发送");
|
message.success("验证码已发送");
|
||||||
|
|
||||||
// 启动60秒倒计时
|
// 启动60秒倒计时
|
||||||
@ -838,4 +844,5 @@ const filterOption = (inputValue: string, option: any) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}</style>
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
@ -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",
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<div class="guoYuSheShiShuJuHistory-page">
|
<div class="guoYuSheShiShuJuHistory-page">
|
||||||
<GuoYuSheShiShuJuHistorySearch ref="searchRef" class="search-container" :guoyuStatus="guoyuStatus"
|
<GuoYuSheShiShuJuHistorySearch ref="searchRef" class="search-container" :guoyuStatus="guoyuStatus"
|
||||||
:direction="direction" @reset="handleReset" @search-finish="handleSearchFinish" />
|
:direction="direction" @reset="handleReset" @search-finish="handleSearchFinish" />
|
||||||
|
|
||||||
<div class="table-container" ref="tableContainerRef">
|
<div class="table-container" ref="tableContainerRef">
|
||||||
<BasicTable ref="tableRef" :columns="columns" :scroll-y="tableScrollY" :list-url="getFishDraftPage"
|
<BasicTable ref="tableRef" :columns="columns" :scroll-y="tableScrollY" :list-url="getFishDraftPage"
|
||||||
:search-params="{}" :transform-data="customTransform">
|
:search-params="{}" :transform-data="customTransform">
|
||||||
@ -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",
|
||||||
@ -418,11 +418,11 @@ onMounted(() => {
|
|||||||
observer.observe(tableContainerRef.value);
|
observer.observe(tableContainerRef.value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
getDictItemsByCode({ dictCode: "direction" }).then((res) => {
|
getDictItemsByCode({ dictCode: "direction" }).then((res) => {
|
||||||
direction.value = res.data;
|
direction.value = res.data;
|
||||||
});
|
});
|
||||||
|
|
||||||
getDictItemsByCode({ dictCode: "approvalStatus" }).then((res) => {
|
getDictItemsByCode({ dictCode: "approvalStatus" }).then((res) => {
|
||||||
guoyuStatus.value.length = 0;
|
guoyuStatus.value.length = 0;
|
||||||
res.data.forEach((item: any) => {
|
res.data.forEach((item: any) => {
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
<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>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
@ -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;
|
||||||
@ -201,7 +203,7 @@ const onValuesChange = (changedValues: any, allValues: any) => {
|
|||||||
if (
|
if (
|
||||||
Object.keys(changedValues)[0] == "rstcd" ||
|
Object.keys(changedValues)[0] == "rstcd" ||
|
||||||
Object.keys(changedValues)[0] == "baseId" ||
|
Object.keys(changedValues)[0] == "baseId" ||
|
||||||
Object.keys(changedValues)[0] == "hbrvcd"
|
Object.keys(changedValues)[0] == "hbrvcd"
|
||||||
) {
|
) {
|
||||||
const formInstance = basicSearchRef.value?.formData;
|
const formInstance = basicSearchRef.value?.formData;
|
||||||
formInstance.stcd = null;
|
formInstance.stcd = null;
|
||||||
|
|||||||
@ -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",
|
||||||
|
|||||||
@ -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"),
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -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",
|
||||||
@ -558,7 +572,7 @@ const handleShowDetail = (record: any) => {
|
|||||||
field: "strdt",
|
field: "strdt",
|
||||||
operator: "lte",
|
operator: "lte",
|
||||||
dataType: "date",
|
dataType: "date",
|
||||||
value: dayjs().endOf("day").format("YYYY-MM-DD HH:mm:ss"),
|
value: dayjs().endOf("day").format("YYYY-MM-DD HH:mm:ss"),
|
||||||
},
|
},
|
||||||
approvalId.value && {
|
approvalId.value && {
|
||||||
field: "approvalId", // 字段名
|
field: "approvalId", // 字段名
|
||||||
@ -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',
|
||||||
|
|||||||
@ -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;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user