Merge branch 'ycds-wms-dev' of http://47.97.1.152:5880/r/zy-asrs-master into ycds-wms-dev
| | |
| | | <script setup>
|
| | | import {getCurrentInstance, ref, computed, reactive, defineProps, nextTick} from 'vue';
|
| | | import { getCurrentInstance, ref, computed, reactive, defineProps, nextTick } from 'vue';
|
| | | import { useRouter } from "vue-router";
|
| | | import { get, post, postBlob, postForm } from '@/utils/request.js'
|
| | | import { message, Modal } from 'ant-design-vue';
|
| | |
| | | UploadOutlined,
|
| | | DownloadOutlined,
|
| | | } from "@ant-design/icons-vue";
|
| | | import { filters } from 'pixi.js';
|
| | | const context = getCurrentInstance()?.appContext.config.globalProperties;
|
| | |
|
| | | const router = useRouter();
|
| | |
|
| | | const orderBy = ref({});
|
| | | const order = ref("")
|
| | | const props = defineProps({
|
| | | ioModel: null
|
| | | })
|
| | |
| | | dataIndex: 'orderTime',
|
| | | width: 180,
|
| | | ellipsis: true,
|
| | | sorter: true,
|
| | | ...getColumnSearchProps('orderTime'),
|
| | | },
|
| | | {
|
| | |
| | | state.selectedRowKeys = [];
|
| | | }, 1000);
|
| | | };
|
| | |
|
| | | const onSelectChange = selectedRowKeys => {
|
| | | // console.log('selectedRowKeys changed: ', selectedRowKeys);
|
| | | state.selectedRowKeys = selectedRowKeys;
|
| | | };
|
| | |
|
| | | const handleTableChange = (pagination, filters, sorter) => {
|
| | | if (sorter != null) {
|
| | | if (sorter?.order == "ascend") {
|
| | | orderBy.__v_raw = { order: "asc", field: sorter.field }
|
| | | } else if (sorter?.order == "descend") {
|
| | | orderBy.__v_raw = { order: "desc", field: sorter.field }
|
| | | }
|
| | | }
|
| | |
|
| | | getPage()
|
| | | }
|
| | |
|
| | | function getPage() {
|
| | | state.loading = true;
|
| | |
|
| | | let apiUrl = '/api/order/page';
|
| | | if (props.ioModel == 'in') {
|
| | | apiUrl = '/api/order/in/page';
|
| | |
| | | }
|
| | |
|
| | | post(apiUrl, {
|
| | | orderBy: orderBy?.__v_raw,
|
| | | current: currentPage,
|
| | | pageSize: pageSize,
|
| | | condition: searchInput.value,
|
| | |
| | | };
|
| | |
|
| | | const onSearch = () => {
|
| | | currentPage = 1;
|
| | | currentPage = 1;
|
| | |
|
| | | getPage()
|
| | | }
|
| | |
| | | <div>
|
| | | <a-input v-model:value="searchParam.orderNo" :placeholder="formatMessage('page.order.orderNo.input', '请输入订单编号')"
|
| | | style="width: 140px;margin-right: 10px;" />
|
| | | <a-select v-model:value="searchParam.orderSettle" :placeholder="formatMessage('page.order.orderSettle.select', '请选择单据状态')"
|
| | | style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderSettleQueryList" optionFilterProp="label"
|
| | | optionLabelProp="label">
|
| | | <a-select v-model:value="searchParam.orderSettle"
|
| | | :placeholder="formatMessage('page.order.orderSettle.select', '请选择单据状态')"
|
| | | style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderSettleQueryList"
|
| | | optionFilterProp="label" optionLabelProp="label">
|
| | | </a-select>
|
| | | <a-select v-model:value="searchParam.orderType" :placeholder="formatMessage('page.order.orderType.select', '请选择单据类型')"
|
| | | style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderTypeQueryList" optionFilterProp="label"
|
| | | optionLabelProp="label">
|
| | | <a-select v-model:value="searchParam.orderType"
|
| | | :placeholder="formatMessage('page.order.orderType.select', '请选择单据类型')"
|
| | | style="width: 140px;margin-right: 10px;" show-search allowClear :options="orderTypeQueryList"
|
| | | optionFilterProp="label" optionLabelProp="label">
|
| | | </a-select>
|
| | |
|
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')"
|
| | |
| | | </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 }"
|
| | | @change="handleTableChange" :pagination="{ total: tableData.total, onChange: onPageChange }"
|
| | | :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="columns" @resizeColumn="handleResizeColumn"
|
| | | :loading="state.loading">
|
| | | <template #bodyCell="{ column, text, record }">
|
| | | <template v-if="column.dataIndex === 'oper'">
|
| | | <div style="display: flex;justify-content: space-evenly;">
|
| | | <a-button type="link" primary @click="showDetl(record)">{{ formatMessage('page.order.orderDetl', '订单明细')
|
| | | }}</a-button>
|
| | | }}</a-button>
|
| | | <a-button type="link" primary @click="handlePrint(record)">{{ formatMessage('page.order.orderDetl',
|
| | | '打印订单')
|
| | | }}</a-button>
|
| | | '打印订单')
|
| | | }}</a-button>
|
| | | <a-button type="link" primary @click="handleEdit(record)">{{ formatMessage('page.edit', '编辑') }}</a-button>
|
| | | <a-button type="link" danger @click="handleDel([record])">{{ formatMessage('page.delete', '删除')
|
| | | }}</a-button>
|
| | | }}</a-button>
|
| | | </div>
|
| | | </template>
|
| | | </template>
|
| | |
| | | editChild.value.isSave = item == null;
|
| | | }
|
| | |
|
| | | // const handleDone = (item) => {
|
| | | // Modal.confirm({
|
| | | // title: formatMessage('page.delete', '完结'),
|
| | | // content: formatMessage('page.delete.confirm', '确定完成该项吗?'),
|
| | | // maskClosable: true,
|
| | | // onOk: async () => {
|
| | | // const hide = message.loading(formatMessage('common.loading', '请求中'));
|
| | | // try {
|
| | | // post('/api/order/done/' + rows.map((row) => row.id).join(','), {}).then(resp => {
|
| | | // let result = resp.data;
|
| | | // if (result.code === 200) {
|
| | | // message.success(result.msg);
|
| | | // } else {
|
| | | // message.error(result.msg);
|
| | | // }
|
| | | // getPage()
|
| | | // hide()
|
| | | // })
|
| | | // } catch (error) {
|
| | | // message.error(formatMessage('common.fail', '请求失败'));
|
| | | // }
|
| | | // },
|
| | | // });
|
| | | // }
|
| | |
|
| | | const handleDel = (rows) => {
|
| | | Modal.confirm({
|
| | | title: formatMessage('page.delete', '删除'),
|
| | |
| | | newItem.specs = item.mat$.specs
|
| | | newItem.batch = item.batch
|
| | | newItem.anfme = item.anfme
|
| | | newItem.wareType$ = item.wareType$
|
| | | printData.push(newItem)
|
| | | })
|
| | | printChild.value.printData = printData;
|
| | |
| | | <a-select v-model:value="channel" :options="channelList" mode="multiple"
|
| | | style="width: 100px;"></a-select>
|
| | | <a-button @click="handleGenerateWave()">{{ formatMessage('common.generateWave', '生成波次')
|
| | | }}</a-button>
|
| | | }}</a-button>
|
| | | </div>
|
| | | </div>
|
| | |
|
| | |
| | | <div style="display: flex;justify-content: space-evenly;">
|
| | | <a-button type="link" primary @click="showDetl(record)">{{ formatMessage('page.order.orderDetl',
|
| | | '订单明细')
|
| | | }}</a-button>
|
| | | }}</a-button>
|
| | | <a-button type="link" primary @click="handlePrint(record)">{{
|
| | | formatMessage('page.order.orderDetl',
|
| | | '打印订单')
|
| | | }}</a-button>
|
| | | }}</a-button>
|
| | | <a-button type="link" primary @click="handleEdit(record)">{{ formatMessage('page.edit', '编辑')
|
| | | }}</a-button>
|
| | | }}</a-button>
|
| | | <!-- <a-button type="link" primary @click="handleDone(record)">{{ formatMessage('page.edit', '完结')
|
| | | }}</a-button> -->
|
| | | <a-button type="link" danger @click="handleDel([record])">{{ formatMessage('page.delete', '删除')
|
| | | }}</a-button>
|
| | | }}</a-button>
|
| | | </div>
|
| | | </template>
|
| | | </template>
|
| | |
| | | <td align="center" colspan="1">序号</td> |
| | | <td align="center" colspan="2">商品编号</td> |
| | | <td align="center" colspan="3">商品名称</td> |
| | | <td align="center" colspan="2">批次</td> |
| | | <td align="center" :colspan="inModel == 'in' ? '2' : '1'">批次</td> |
| | | <td align="center" colspan="2">规格</td> |
| | | <td align="center" colspan="1">数量 </td> |
| | | <td align="center" colspan="1" v-if="inModel != 'in'">仓库类型 </td> |
| | | </tr> |
| | | <template v-for="(item, index) in list" :key="index"> |
| | | <tr style="height: 40px"> |
| | | <td align="center" colspan="1">{{ index + 1 }}</td> |
| | | <td align="center" colspan="2">{{ item.matnr }}</td> |
| | | <td align="center" colspan="3">{{ item.maktx }}</td> |
| | | <td align="center" colspan="2">{{ item.batch }}</td> |
| | | <td align="center" :colspan="inModel == 'in' ? '2' : '1'">{{ item.batch }}</td> |
| | | <td align="center" colspan="2">{{ item.specs }}</td> |
| | | <td align="center" colspan="1">{{ item.anfme }}</td> |
| | | <td align="center" colspan="1" v-if="inModel != 'in'">{{ item.wareType$ }}</td> |
| | | </tr> |
| | | </template> |
| | | </table> |
| | |
| | | let currentPage = 1;
|
| | | let pageSize = 10;
|
| | | const searchInput = ref("")
|
| | | const orderBy = ref({});
|
| | | const searchParam = ref({
|
| | | locNo: null,
|
| | | matnr: null,
|
| | |
| | | // console.log('selectedRowKeys changed: ', selectedRowKeys);
|
| | | state.selectedRowKeys = selectedRowKeys;
|
| | | };
|
| | |
|
| | |
|
| | | const handleTableChange = (pagination, filters, sorter) => {
|
| | | if (sorter != null) {
|
| | | if (sorter?.order == "ascend") {
|
| | | orderBy.__v_raw = { order: "asc", field: "createTime" }
|
| | | } else if (sorter?.order == "descend") {
|
| | | orderBy.__v_raw = { order: "desc", field: "createTime" }
|
| | | }
|
| | | }
|
| | |
|
| | | getPage()
|
| | | }
|
| | |
|
| | | state.columns = [
|
| | | // {
|
| | |
| | | dataIndex: 'dewell$',
|
| | | width: 140,
|
| | | ellipsis: true,
|
| | | sorter: true,
|
| | | ...getColumnSearchProps('dewell$'),
|
| | | },
|
| | | {
|
| | |
| | | function getPage() {
|
| | | state.loading = true;
|
| | | post('/api/locDetl/page', {
|
| | | orderBy: orderBy.__v_raw,
|
| | | current: currentPage,
|
| | | pageSize: pageSize,
|
| | | condition: searchInput.value,
|
| | |
| | | if (result.code == 200) {
|
| | | let data = result.data;
|
| | | tableData.value = data;
|
| | |
|
| | | state.loading = false;
|
| | | } else if (result.code === 401) {
|
| | | message.error(result.msg);
|
| | |
| | | post('/api/out/locs/stock', params).then(resp => {
|
| | | let result = resp.data;
|
| | | if (result.code === 200) {
|
| | | console.log(result);
|
| | | message.success(result.msg);
|
| | | } else {
|
| | | message.error(result.msg);
|
| | |
| | | };
|
| | |
|
| | | const onSearch = () => {
|
| | | // console.log('search');
|
| | | currentPage = 1;
|
| | | getPage()
|
| | | }
|
| | |
| | | getPage()
|
| | | }
|
| | |
|
| | | const total = computed(() => tableData.value?.records?.reduce((sum, item) => sum + item.anfme, 0))
|
| | |
|
| | | </script>
|
| | |
|
| | | <script>
|
| | | export default {
|
| | | name: '库存明细'
|
| | | name: '库存明细',
|
| | | }
|
| | |
|
| | | </script>
|
| | |
|
| | | <template>
|
| | |
| | | style="width: 140px;margin-right: 10px;" />
|
| | | <a-input v-model:value="searchParam.batch" :placeholder="formatMessage('page.locDetl.batch.input', '请输入批号')"
|
| | | style="width: 140px;margin-right: 10px;" />
|
| | | <a-select v-model:value="searchParam.orderType" :placeholder="formatMessage('page.locDetl.orderNo.input', '仓库类型')"
|
| | | :options="[
|
| | | { label: '全部', value: null }, { label: '立库', value: 1 }, { label: '平库', value: 2 }]" style="width: 140px;margin-right: 10px;">
|
| | | <a-select v-model:value="searchParam.orderType"
|
| | | :placeholder="formatMessage('page.locDetl.orderNo.input', '仓库类型')" :options="[
|
| | | { label: '全部', value: null }, { label: '立库', value: 1 }, { label: '平库', value: 2 }]"
|
| | | style="width: 140px;margin-right: 10px;">
|
| | | </a-select>
|
| | | <a-select v-model:value="searchParam.tagId" :placeholder="formatMessage('page.locDetl.orderNo.input', '请选择品类')"
|
| | | :options="[
|
| | |
| | | </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 }"
|
| | | :pagination="{ total: tableData.total, onChange: onPageChange }" @change="handleTableChange"
|
| | | :scroll="{ y: 768, scrollToFirstRowOnChange: true }" :columns="state.columns" @resizeColumn="handleResizeColumn"
|
| | | :loading="state.loading">
|
| | | <template #bodyCell="{ column, text, record }">
|
| | |
| | | </div>
|
| | | </template>
|
| | | </template>
|
| | | <template #footer>
|
| | | <div>
|
| | | <span>当前页总量:{{ total }}</span>
|
| | | </div>
|
| | | </template>
|
| | | </a-table>
|
| | | </div>
|
| | | </template>
|