no message
							parent
							
								
									435620059b
								
							
						
					
					
						commit
						9b61dab6c6
					
				| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
/**
 | 
			
		||||
 * 入库明细 api 封装
 | 
			
		||||
 *
 | 
			
		||||
 * @Author:    霍锦
 | 
			
		||||
 * @Date:      2025-03-26 15:16:28
 | 
			
		||||
 * @Copyright  友仓
 | 
			
		||||
 */
 | 
			
		||||
import {postRequest} from '/@/lib/axios';
 | 
			
		||||
 | 
			
		||||
export const shippingApi = {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 分配明细  @author  霍锦
 | 
			
		||||
     */
 | 
			
		||||
    allocationPickDetail: (param: any) => {
 | 
			
		||||
        return postRequest('/shipping/allocationPickDetail', param);
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -19,7 +19,7 @@
 | 
			
		|||
        <a-radio-group button-style="solid" v-model:value="queryForm.status" @change="onSearch">
 | 
			
		||||
          <a-radio-button :value="undefined">全部</a-radio-button>
 | 
			
		||||
          <a-radio-button :value="ASN_ORDER_STATUS_ENUM.CREATED.value">已创建</a-radio-button>
 | 
			
		||||
          <a-radio-button :value="ASN_ORDER_STATUS_ENUM.PARTIALLY_IN.value">部分入库</a-radio-button>
 | 
			
		||||
          <a-radio-button :value="ASN_ORDER_STATUS_ENUM.PARTIALLY_IN.value">入库中</a-radio-button>
 | 
			
		||||
          <a-radio-button :value="ASN_ORDER_STATUS_ENUM.COMPLETED.value">已完成</a-radio-button>
 | 
			
		||||
        </a-radio-group>
 | 
			
		||||
      </a-form-item>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,7 +12,7 @@
 | 
			
		|||
    <div class="header">
 | 
			
		||||
      <div>
 | 
			
		||||
        关键字:
 | 
			
		||||
        <a-input style="width: 250px" v-model:value="queryForm.keywords" placeholder="物料/库位/容器"/>
 | 
			
		||||
        <a-input style="width: 250px" v-model:value="queryForm.keywords" placeholder="物料/库位/容器" @change="onSearch"/>
 | 
			
		||||
        <a-button class="button-style" type="primary" @click="onSearch" v-privilege="'task:query'">搜索</a-button>
 | 
			
		||||
        <a-button class="button-style" type="default" @click="resetQuery" v-privilege="'task:query'">重置</a-button>
 | 
			
		||||
      </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,8 +24,8 @@
 | 
			
		|||
          <a-row :gutter="24">
 | 
			
		||||
            <a-col :span="8">
 | 
			
		||||
              <a-form-item label="客户" name="customerId">
 | 
			
		||||
                <CustomerSelect style="width: 100%" v-model:value="form.customerId" :disabled-flag="true"
 | 
			
		||||
                                @change="changeCustomerSelect"/>
 | 
			
		||||
                <CustomerSelect style="width: 100%" v-model:value="form.customerId" :disabled-flag="true" />
 | 
			
		||||
 | 
			
		||||
              </a-form-item>
 | 
			
		||||
            </a-col>
 | 
			
		||||
            <a-col :span="8">
 | 
			
		||||
| 
						 | 
				
			
			@ -140,13 +140,6 @@ const rules = {
 | 
			
		|||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//选择客户
 | 
			
		||||
function changeCustomerSelect(selectValue: any) {
 | 
			
		||||
  if (selectValue) {
 | 
			
		||||
    form.customerId = selectValue.customerId;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//选择收货单位
 | 
			
		||||
function changeAddressSelect(selectValue: any) {
 | 
			
		||||
  if (selectValue) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,21 +10,38 @@
 | 
			
		|||
  <a-form class="smart-query-form">
 | 
			
		||||
    <a-row class="smart-query-form-row">
 | 
			
		||||
      <a-form-item label="客户订单号" class="smart-query-form-item">
 | 
			
		||||
        <a-input style="width: 200px" v-model:value="queryForm.customerNumber" placeholder="客户订单号"/>
 | 
			
		||||
        <a-input style="width: 200px" v-model:value="queryForm.customerNumber" placeholder="客户订单号"
 | 
			
		||||
                 @change="onSearch"/>
 | 
			
		||||
      </a-form-item>
 | 
			
		||||
      <a-form-item label="单据类型" class="smart-query-form-item">
 | 
			
		||||
        <SmartEnumSelect style="width: 200px" enum-name="PICK_ORDER_TYPE_ENUM" v-model:value="queryForm.orderType"
 | 
			
		||||
                         @change="onSearch"/>
 | 
			
		||||
      </a-form-item>
 | 
			
		||||
      <a-form-item label="状态" class="smart-query-form-item">
 | 
			
		||||
        <a-radio-group button-style="solid" v-model:value="queryForm.status" @change="onSearch">
 | 
			
		||||
          <a-radio-button :value="undefined">全部</a-radio-button>
 | 
			
		||||
          <a-radio-button :value="PICK_ORDER_STATUS_ENUM.CREATED.value">已创建</a-radio-button>
 | 
			
		||||
          <a-radio-button :value="PICK_ORDER_STATUS_ENUM.PARTIALLY_ALLOCATED.value">分配中</a-radio-button>
 | 
			
		||||
          <a-radio-button :value="PICK_ORDER_STATUS_ENUM.ALLOCATED.value">已分配</a-radio-button>
 | 
			
		||||
          <a-radio-button :value="PICK_ORDER_STATUS_ENUM.PARTIALLY_PICKED.value">拣货中</a-radio-button>
 | 
			
		||||
          <a-radio-button :value="PICK_ORDER_STATUS_ENUM.COMPLETED.value">已完成</a-radio-button>
 | 
			
		||||
        </a-radio-group>
 | 
			
		||||
      </a-form-item>
 | 
			
		||||
      <a-form-item class="smart-query-form-item">
 | 
			
		||||
        <a-button type="primary" @click="onSearch" class="smart-margin-left10" v-privilege="'pick:query'">
 | 
			
		||||
          <template #icon>
 | 
			
		||||
            <SearchOutlined/>
 | 
			
		||||
          </template>
 | 
			
		||||
          查询
 | 
			
		||||
        </a-button>
 | 
			
		||||
        <a-button @click="resetQuery" class="smart-margin-left10" v-privilege="'pick:query'">
 | 
			
		||||
          <template #icon>
 | 
			
		||||
            <ReloadOutlined/>
 | 
			
		||||
          </template>
 | 
			
		||||
          重置
 | 
			
		||||
        </a-button>
 | 
			
		||||
        <a-button-group>
 | 
			
		||||
          <a-button type="primary" @click="onSearch" v-privilege="'pick:query'">
 | 
			
		||||
            <template #icon>
 | 
			
		||||
              <SearchOutlined/>
 | 
			
		||||
            </template>
 | 
			
		||||
            查询
 | 
			
		||||
          </a-button>
 | 
			
		||||
          <a-button @click="resetQuery" v-privilege="'pick:query'">
 | 
			
		||||
            <template #icon>
 | 
			
		||||
              <ReloadOutlined/>
 | 
			
		||||
            </template>
 | 
			
		||||
            重置
 | 
			
		||||
          </a-button>
 | 
			
		||||
        </a-button-group>
 | 
			
		||||
      </a-form-item>
 | 
			
		||||
    </a-row>
 | 
			
		||||
  </a-form>
 | 
			
		||||
| 
						 | 
				
			
			@ -159,6 +176,8 @@ import {pickApi} from '/@/api/business/wms/shipping/pick/pick-api';
 | 
			
		|||
import {pickDetailApi} from '/@/api/business/wms/shipping/pickDetail/pick-detail-api'
 | 
			
		||||
import {TABLE_ID_CONST} from "/@/constants/support/table-id-const";
 | 
			
		||||
import {useRoute, useRouter} from "vue-router";
 | 
			
		||||
import SmartEnumSelect from "/@/components/framework/smart-enum-select/index.vue";
 | 
			
		||||
import {PICK_ORDER_STATUS_ENUM} from "/@/api/business/wms/shipping/pick/pick-const";
 | 
			
		||||
 | 
			
		||||
// ---------------------------- 表格列 ----------------------------
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -300,6 +319,8 @@ const totals = computed(() => {
 | 
			
		|||
 | 
			
		||||
const queryFormState = {
 | 
			
		||||
  customerNumber: undefined, //客户订单号
 | 
			
		||||
  status: undefined,//状态
 | 
			
		||||
  orderType: undefined,//订单类型
 | 
			
		||||
  pageNum: 1,
 | 
			
		||||
  pageSize: 10,
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -417,7 +438,7 @@ async function requestBatchDelete() {
 | 
			
		|||
    SmartLoading.show();
 | 
			
		||||
    const response = await pickApi.batchDelete(selectedRowKeyList.value);
 | 
			
		||||
    console.log(response)
 | 
			
		||||
    const {error, success} = JSON.parse(response.msg);
 | 
			
		||||
    const {error, success} = JSON.parse(response.data);
 | 
			
		||||
    if (success) {
 | 
			
		||||
      message.success(success);
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,7 +12,7 @@
 | 
			
		|||
    <div class="header">
 | 
			
		||||
      <div>
 | 
			
		||||
        关键字:
 | 
			
		||||
        <a-input style="width: 250px" v-model:value="queryForm.keyword" placeholder="姓名/手机号/登录账号"/>
 | 
			
		||||
        <a-input style="width: 250px" v-model:value="queryForm.keywords" placeholder="" @change="onSearch"/>
 | 
			
		||||
        <a-button class="button-style" type="primary" @click="onSearch" v-privilege="'pickDetail:query'">搜索</a-button>
 | 
			
		||||
        <a-button class="button-style" type="default" @click="resetQuery" v-privilege="'pickDetail:query'">重置
 | 
			
		||||
        </a-button>
 | 
			
		||||
| 
						 | 
				
			
			@ -35,6 +35,14 @@
 | 
			
		|||
          </template>
 | 
			
		||||
          批量移除
 | 
			
		||||
        </a-button>
 | 
			
		||||
        <a-button class="button-style" type="primary" v-privilege="'shipping:allocationPickDetail'"
 | 
			
		||||
                  @click="confirmAllocationPickDetail"
 | 
			
		||||
                  :disabled="props.pickId==0 || selectedRowKeyList.length == 0">
 | 
			
		||||
          <template #icon>
 | 
			
		||||
            <EditOutlined/>
 | 
			
		||||
          </template>
 | 
			
		||||
          分配明细
 | 
			
		||||
        </a-button>
 | 
			
		||||
        <TableOperator class="smart-margin-bottom5" v-model="columns" :tableId="TABLE_ID_CONST.BUSINESS.WMS.PICK_DETAIL"
 | 
			
		||||
                       :refresh="queryData"/>
 | 
			
		||||
      </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -100,6 +108,7 @@ import {smartSentry} from '/@/lib/smart-sentry';
 | 
			
		|||
import {TABLE_ID_CONST} from "/@/constants/support/table-id-const";
 | 
			
		||||
import TableOperator from '/@/components/support/table-operator/index.vue';
 | 
			
		||||
import {pickDetailApi} from "/@/api/business/wms/shipping/pickDetail/pick-detail-api";
 | 
			
		||||
import {shippingApi} from '/@/api/business/wms/shipping/shipping-api'
 | 
			
		||||
import PICKDetailForm from "/@/views/business/wms/shipping/pickDetail/pick-detail-form.vue";
 | 
			
		||||
import {message, Modal} from "ant-design-vue";
 | 
			
		||||
import {SmartLoading} from '/@/components/framework/smart-loading';
 | 
			
		||||
| 
						 | 
				
			
			@ -153,7 +162,7 @@ const defaultQueryForm = {
 | 
			
		|||
  pageNum: 1,
 | 
			
		||||
  pageSize: PAGE_SIZE,
 | 
			
		||||
  pickId: 0,
 | 
			
		||||
  keyword: undefined,
 | 
			
		||||
  keywords: undefined,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查询表单
 | 
			
		||||
| 
						 | 
				
			
			@ -281,6 +290,46 @@ async function requestBatchDelete() {
 | 
			
		|||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//批量分配明细
 | 
			
		||||
function confirmAllocationPickDetail() {
 | 
			
		||||
  Modal.confirm({
 | 
			
		||||
    title: '提示',
 | 
			
		||||
    content: '确定要批量分配这些数据吗?',
 | 
			
		||||
    okText: '分配',
 | 
			
		||||
    okType: 'danger',
 | 
			
		||||
    onOk() {
 | 
			
		||||
      requestAllocationPickDetail();
 | 
			
		||||
    },
 | 
			
		||||
    cancelText: '取消',
 | 
			
		||||
    onCancel() {
 | 
			
		||||
    },
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//请求批量分配明细
 | 
			
		||||
async function requestAllocationPickDetail() {
 | 
			
		||||
  try {
 | 
			
		||||
    SmartLoading.show();
 | 
			
		||||
    const response = await shippingApi.allocationPickDetail({
 | 
			
		||||
      pickId: props.pickId,
 | 
			
		||||
      pickDetailIds: selectedRowKeyList.value
 | 
			
		||||
    });
 | 
			
		||||
    const {error, success} = JSON.parse(response.data);
 | 
			
		||||
    if (error) {
 | 
			
		||||
      message.error(error);
 | 
			
		||||
    }
 | 
			
		||||
    if (success) {
 | 
			
		||||
      message.success(success);
 | 
			
		||||
    }
 | 
			
		||||
    await queryData();
 | 
			
		||||
    selectedRowKeyList.value=[];
 | 
			
		||||
  } catch (e) {
 | 
			
		||||
    smartSentry.captureError(e);
 | 
			
		||||
  } finally {
 | 
			
		||||
    SmartLoading.hide();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
watch(
 | 
			
		||||
    () => props.pickId,
 | 
			
		||||
    (value) => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,7 +17,7 @@
 | 
			
		|||
    <a-form ref="formRef" :model="form" :rules="rules" :label-col="{ span: 5 }">
 | 
			
		||||
 | 
			
		||||
      <a-form-item label="物料" name="itemId">
 | 
			
		||||
        <ItemSelect style="width: 100%" v-model:value="form.itemId" :disabledFlag="true" @change="changeItemSelect"/>
 | 
			
		||||
        <ItemSelect style="width: 100%" v-model:value="form.itemId" :disabledFlag="true"/>
 | 
			
		||||
      </a-form-item>
 | 
			
		||||
 | 
			
		||||
      <a-form-item label="数量" name="orderQuantity">
 | 
			
		||||
| 
						 | 
				
			
			@ -73,13 +73,6 @@ function onClose() {
 | 
			
		|||
  visibleFlag.value = false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//选择物料
 | 
			
		||||
function changeItemSelect(selectValue: any) {
 | 
			
		||||
  if (selectValue) {
 | 
			
		||||
    form.itemId = selectValue.itemId;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 获取当前日期并去除符号作为批次
 | 
			
		||||
function getCurrentDateWithoutSymbols() {
 | 
			
		||||
  const now = new Date();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue