| <script setup>  | 
| import { getCurrentInstance, ref, computed, reactive } from 'vue';  | 
| import { useRouter } from "vue-router";  | 
| import { get, post, postBlob } from '@/utils/request.js'  | 
| import { message, Modal } from 'ant-design-vue';  | 
| import { logout } from '@/config.js';  | 
| import { formatMessage } from '@/utils/localeUtils.js';  | 
| import useTableSearch from '@/utils/tableUtils.jsx';  | 
| const context = getCurrentInstance()?.appContext.config.globalProperties;  | 
|   | 
| const router = useRouter();  | 
|   | 
| const TABLE_KEY = 'table-taskType';  | 
| let currentPage = 1;  | 
| let pageSize = 10;  | 
| const searchInput = ref("")  | 
| const editChild = ref(null)  | 
|   | 
| const state = reactive({  | 
|     selectedRowKeys: [],  | 
|     loading: false,  | 
| });  | 
|   | 
| let tableData = ref([]);  | 
| getPage();  | 
|   | 
| const {  | 
|     getColumnSearchProps,  | 
|     handleResizeColumn,  | 
| } = useTableSearch();  | 
|   | 
| const columns = [  | 
|     {  | 
|         title: formatMessage('db.view_in_out.ymd', '日期'),  | 
|         dataIndex: 'ymd',  | 
|         width: 140,  | 
|         ellipsis: true,  | 
|         ...getColumnSearchProps('ymd'),  | 
|     },  | 
|     {  | 
|         title: formatMessage('db.view_in_out.inQty', '入库次数'),  | 
|         dataIndex: 'inQty',  | 
|         width: 140,  | 
|         ellipsis: true,  | 
|         ...getColumnSearchProps('inQty'),  | 
|     },  | 
|     {  | 
|         title: formatMessage('db.view_in_out.outQty', '出库次数'),  | 
|         dataIndex: 'outQty',  | 
|         width: 140,  | 
|         ellipsis: true,  | 
|         ...getColumnSearchProps('outQty'),  | 
|     },  | 
|     {  | 
|         title: formatMessage('db.view_in_out.mat_id', '入出总数'),  | 
|         dataIndex: 'totalQty',  | 
|         width: 140,  | 
|         ellipsis: true,  | 
|         ...getColumnSearchProps('totalQty'),  | 
|     },  | 
| ];  | 
|   | 
|   | 
| const hasSelected = computed(() => state.selectedRowKeys.length > 0);  | 
| const start = () => {  | 
|     state.loading = true;  | 
|     // ajax request after empty completing  | 
|     setTimeout(() => {  | 
|         state.loading = false;  | 
|         state.selectedRowKeys = [];  | 
|     }, 1000);  | 
| };  | 
| const onSelectChange = selectedRowKeys => {  | 
|     // console.log('selectedRowKeys changed: ', selectedRowKeys);  | 
|     state.selectedRowKeys = selectedRowKeys;  | 
| };  | 
|   | 
| function getPage() {  | 
|     state.loading = true;  | 
|     post('/api/viewInOut/page', {  | 
|         current: currentPage,  | 
|         pageSize: pageSize,  | 
|         condition: searchInput.value  | 
|     }).then((resp) => {  | 
|         let result = resp.data;  | 
|         if (result.code == 200) {  | 
|             let data = result.data;  | 
|             tableData.value = data;  | 
|   | 
|             state.loading = false;  | 
|         } else if (result.code === 401) {  | 
|             message.error(result.msg);  | 
|             logout()  | 
|         } else {  | 
|             message.error(result.msg);  | 
|         }  | 
|     })  | 
| }  | 
|   | 
| const handleExport = async (intl) => {  | 
|     postBlob('/api/viewInOut/export', {  | 
|         condition: searchInput.value  | 
|     }).then(result => {  | 
|         const blob = new Blob([result.data], { type: 'application/vnd.ms-excel' });  | 
|         window.location.href = window.URL.createObjectURL(blob);  | 
|         return true;  | 
|     })  | 
| };  | 
|   | 
| const onSearch = () => {  | 
|     // console.log('search');  | 
|     getPage()  | 
| }  | 
|   | 
| const onPageChange = (page, size) => {  | 
|     currentPage = page;  | 
|     pageSize = size;  | 
|     getPage();  | 
| }  | 
|   | 
| function handleTableReload(value) {  | 
|     getPage()  | 
| }  | 
|   | 
| </script>  | 
|   | 
| <script>  | 
| export default {  | 
|     name: '日入出库次数统计'  | 
| }  | 
| </script>  | 
|   | 
| <template>  | 
|     <div>  | 
|         <div class="table-header">  | 
|             <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')"  | 
|                 style="width: 200px;" @search="onSearch" />  | 
|             <div class="table-header-right">  | 
|                 <a-button @click="handleExport">{{ formatMessage('page.export', '导出') }}</a-button>  | 
|             </div>  | 
|         </div>  | 
|         <a-table :row-selection="{ selectedRowKeys: state.selectedRowKeys, onChange: onSelectChange }"  | 
|             :data-source="tableData.records" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id"  | 
|             :pagination="{ total: tableData.total, onChange: onPageChange }"  | 
|             :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="columns" @resizeColumn="handleResizeColumn"  | 
|             :loading="state.loading">  | 
|             <template #bodyCell="{ column, text, record }">  | 
|             </template>  | 
|         </a-table>  | 
|     </div>  | 
| </template>  | 
|   | 
| <style></style>  |