skyouc
2024-12-21 c635d78b479510ebe2556a420948effcd30a0731
zy-asrs-admin/src/views/log/viewStayTime/index.vue
@@ -1,209 +1,209 @@
<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.man_loc_detl.stayTime', '滞留天数'),
        dataIndex: 'stayTime',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('stayTime'),
    },
    {
        title: formatMessage('db.man_loc_detl.loc_id', '库位'),
        dataIndex: 'locId$',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('locId$'),
    },
    {
        title: formatMessage('db.man_loc_detl.loc_no', '库位号'),
        dataIndex: 'locNo',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('locNo'),
    },
    {
        title: formatMessage('db.man_loc_detl.mat_id', '商品'),
        dataIndex: 'matId$',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('matId$'),
    },
    {
        title: formatMessage('db.man_loc_detl.matnr', '商品编号'),
        dataIndex: 'matnr',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('matnr'),
    },
    {
        title: formatMessage('db.man_loc_detl.order_no', '订单号'),
        dataIndex: 'orderNo',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('orderNo'),
    },
    {
        title: formatMessage('db.man_loc_detl.batch', '批号'),
        dataIndex: 'batch',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('batch'),
    },
    {
        title: formatMessage('db.man_loc_detl.anfme', '数量'),
        dataIndex: 'anfme',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('anfme'),
    },
    {
        title: formatMessage('db.man_loc_detl.status', '状态'),
        dataIndex: 'status$',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('status$'),
    },
    {
        title: formatMessage('db.man_loc_detl.create_time', '添加时间'),
        dataIndex: 'createTime$',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('createTime$'),
    },
    {
        title: formatMessage('db.man_loc_detl.create_by', '添加人员'),
        dataIndex: 'createBy$',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('createBy$'),
    },
    {
        title: formatMessage('db.man_loc_detl.memo', '备注'),
        dataIndex: 'memo',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('memo'),
    },
];
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/viewStayTime/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/viewStayTime/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.man_loc_detl.stayTime', '滞留天数'),
        dataIndex: 'stayTime',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('stayTime'),
    },
    {
        title: formatMessage('db.man_loc_detl.loc_id', '库位'),
        dataIndex: 'locId$',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('locId$'),
    },
    {
        title: formatMessage('db.man_loc_detl.loc_no', '库位号'),
        dataIndex: 'locNo',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('locNo'),
    },
    {
        title: formatMessage('db.man_loc_detl.mat_id', '商品'),
        dataIndex: 'matId$',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('matId$'),
    },
    {
        title: formatMessage('db.man_loc_detl.matnr', '商品编号'),
        dataIndex: 'matnr',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('matnr'),
    },
    {
        title: formatMessage('db.man_loc_detl.order_no', '订单号'),
        dataIndex: 'orderNo',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('orderNo'),
    },
    {
        title: formatMessage('db.man_loc_detl.batch', '批号'),
        dataIndex: 'batch',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('batch'),
    },
    {
        title: formatMessage('db.man_loc_detl.anfme', '数量'),
        dataIndex: 'anfme',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('anfme'),
    },
    {
        title: formatMessage('db.man_loc_detl.status', '状态'),
        dataIndex: 'status$',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('status$'),
    },
    {
        title: formatMessage('db.man_loc_detl.create_time', '添加时间'),
        dataIndex: 'createTime$',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('createTime$'),
    },
    {
        title: formatMessage('db.man_loc_detl.create_by', '添加人员'),
        dataIndex: 'createBy$',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('createBy$'),
    },
    {
        title: formatMessage('db.man_loc_detl.memo', '备注'),
        dataIndex: 'memo',
        width: 140,
        ellipsis: true,
        ...getColumnSearchProps('memo'),
    },
];
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/viewStayTime/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/viewStayTime/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>