123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- <script setup lang="ts">
- import { PageWrapper } from '/@/components/Page';
- import { useTable, TableAction, BasicTable } from '/@/components/Table';
- import { TableColumns } from './components/data.config';
- import formEdit from './components/formEdit.vue';
- import FormDetail from './components/detail.vue';
- import { useDrawer } from '/@/components/Drawer';
- import { ref } from 'vue';
- import { useMessage } from '/@/hooks/web/useMessage';
- import { searchFormSchema } from './components/data.config';
- import {
- getTextbookWarehouseRecordExport,
- getTextbookWarehouseRecordPage,
- postTextbookWarehouseRecordExportQuery,
- } from '/@/services/apis/TextbookWarehouseRecordController';
- import { downloadByData } from '/@/utils/file/download';
- import { formatToDate } from '/@/utils/dateUtil';
- import { useModal } from '/@/components/Modal';
- import FormImport from '/@/views/sys/import/index.vue';
- import { postTextbookWarehouseRecordDetailImport } from '/@/services/apis/TextbookWarehouseRecordDetailController';
- import FormStore from './components/store.vue';
- import ListStore from './components/storeList.vue';
- import FormDiscount from './components/editDiscount.vue';
- import DiscountList from './components/discountList.vue';
- const [formReg, {}] = useDrawer();
- const [formDetailReg, { openModal }] = useModal();
- const [formStoreRegister, { openDrawer }] = useDrawer();
- const [registerImportModal, { openModal: openImportModal }] = useModal();
- const [formStoreListRegister, { openModal: openStoreListModal }] = useModal();
- const [formDiscountRegister, { openModal: openDiscountModal }] = useModal();
- const [formDiscountListRegister, { openModal: openDiscountListModal }] = useModal();
- const selectedRowKeysList = ref<string[] | number[]>([]);
- const [registerTable, { reload }] = useTable({
- api: getTextbookWarehouseRecordPage,
- rowKey: 'id',
- columns: TableColumns,
- title: '教材入库记录',
- bordered: true,
- showTableSetting: true,
- beforeFetch: (params) => {
- return params;
- },
- rowSelection: {
- type: 'checkbox',
- fixed: true,
- onChange: (selectedRowKeys) => {
- selectedRowKeysList.value = selectedRowKeys;
- },
- },
- useSearchForm: true,
- formConfig: {
- labelWidth: 100,
- schemas: searchFormSchema,
- },
- actionColumn: {
- width: 140,
- title: '操作',
- dataIndex: 'action',
- slots: { customRender: 'action' },
- fixed: 'right',
- },
- });
- const { createMessage } = useMessage();
- const handleExport = async (isAll) => {
- let data;
- if (isAll) {
- data = await getTextbookWarehouseRecordExport({ id: 123 });
- } else {
- data = await postTextbookWarehouseRecordExportQuery({
- ids: selectedRowKeysList.value,
- });
- }
- downloadByData(data.data, `教材入库记录${formatToDate(new Date())}.xlsx`);
- createMessage.success('导出成功');
- };
- const handleView = (record) => {
- openModal(true, {
- baseData: { id: record.id },
- });
- };
- const handelImport = () => {
- openImportModal(true, {
- baseData: {
- title: '教材导入',
- upload: postTextbookWarehouseRecordDetailImport,
- params: {},
- errorName: '教材导入错误记录',
-
-
-
- },
- });
- };
- const handelStore = () => {
- openDrawer(true, {});
- };
- const handleStoreList = (record, type) => {
- openStoreListModal(true, {
- baseData: { id: record.id },
- type: type,
- });
- };
- const handleEditDiscount = (record) => {
- openDiscountModal(true, {
- baseData: { ...record },
- });
- };
- const handleDiscountList = (record) => {
- openDiscountListModal(true, {
- baseData: { ...record },
- });
- };
- </script>
- <template>
- <PageWrapper dense contentFullHeight fixedHeight contentClass="flex">
- <BasicTable @register="registerTable">
- <template #toolbar>
- <a-button type="primary" @click="handelStore"> 教材入库 </a-button>
- <a-button
- type="primary"
- :disabled="!selectedRowKeysList.length"
- @click="handleExport(false)"
- >
- 导出指定记录
- </a-button>
- <a-button type="primary" @click="handleExport(true)">导出全部记录</a-button>
- </template>
- <template #action="{ record }">
- <TableAction
- :actions="[
- {
- label: '查看',
- onClick: handleView.bind(null, record),
- },
- {
- label: '修改折扣',
- onClick: handleEditDiscount.bind(null, record),
- },
- ]"
- />
- </template>
- <template #warehouseNumber="{ record }">
- <a @click="handleStoreList(record, 1)">
- {{ record.warehouseNumber }}
- </a>
- </template>
- <template #recedeNumber="{ record }">
- <a @click="handleStoreList(record, 2)">
- {{ record.recedeNumber }}
- </a>
- </template>
- <template #discount="{ record }">
- <a @click="handleDiscountList(record)">
- {{ record.discount }}
- </a>
- </template>
- </BasicTable>
- <formEdit @register="formReg" @success="reload" />
- <FormDetail @register="formDetailReg" />
- <FormImport @register="registerImportModal" @success="reload" />
- <FormStore @register="formStoreRegister" @success="reload" />
- <ListStore @register="formStoreListRegister" />
- <FormDiscount @register="formDiscountRegister" @success="reload" />
- <DiscountList @register="formDiscountListRegister" />
- </PageWrapper>
- </template>
- <style scoped lang="less"></style>
|