skyouc
2024-12-21 c635d78b479510ebe2556a420948effcd30a0731
zy-asrs-admin/src/views/log/viewWorkCountOut/index.vue
@@ -1,153 +1,153 @@
<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_work_count_out.oneday', '出库日期'),
        dataIndex: 'oneday',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('oneday'),
    },
    {
        title: formatMessage('db.view_work_count_out.matnr', '商品编号'),
        dataIndex: 'matnr',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('matnr'),
    },
    {
        title: formatMessage('db.view_work_count_out.maktx', '商品名称'),
        dataIndex: 'maktx',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('maktx'),
    },
    {
        title: formatMessage('db.view_work_count_out.anfme', '数量'),
        dataIndex: 'anfme',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('anfme'),
    },
];
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/viewWorkCountOut/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/viewWorkCountOut/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>
<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_work_count_out.oneday', '出库日期'),
        dataIndex: 'oneday',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('oneday'),
    },
    {
        title: formatMessage('db.view_work_count_out.matnr', '商品编号'),
        dataIndex: 'matnr',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('matnr'),
    },
    {
        title: formatMessage('db.view_work_count_out.maktx', '商品名称'),
        dataIndex: 'maktx',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('maktx'),
    },
    {
        title: formatMessage('db.view_work_count_out.anfme', '数量'),
        dataIndex: 'anfme',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('anfme'),
    },
];
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/viewWorkCountOut/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/viewWorkCountOut/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>