schangxiang@126.com
2025-05-11 17c0c88cb5419351e4f0bf498e4b9535c5b39197
HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.tsx
@@ -1,17 +1,39 @@
import { defineComponent, ref } from 'vue'
import { defineComponent, onMounted, ref } from 'vue'
import type { Ref } from 'vue'
import styles from './WmsMaterialContainer.module.scss'
import { ElInput, ElForm, ElFormItem, ElButton } from 'element-plus'
import {
  ElInput,
  ElForm,
  ElFormItem,
  ElButton,
  ElSelect,
  ElOption,
} from 'element-plus'
import {
  getPlaceNoForStockList,
  getMaterialModelList,
  instock,
} from '@/widgets/WmsMaterialContainer/Models/Service/WmsMaterialContainer'
export default defineComponent({
  name: 'WmsMaterialContainer',
  setup() {
    // 查询表单数据
    const queryForm = ref({
      materialNo: '',
      materialModel: '',
      placeNo: '',
      materialBatch: '',
      quantity: '',
      stockNumber: '',
    })
    // 数据源
    const modelOptions = ref<Array<{ value: string; label: string }>>([])
    const placeNoOptions = ref<Array<{ value: string; label: string }>>([])
    onMounted(() => {
      // 组件挂载后获取型号列表和库位号列表
      getModelList()
      getPlaceNoList()
    })
    // 组盘操作
@@ -23,53 +45,87 @@
    // 组盘入库操作
    const handlePalletizeStorage = () => {
      console.log('组盘入库操作', queryForm.value)
      instock(queryForm.value)
      // 这里添加组盘入库逻辑
    }
    const getModelList = async () => {
      const models = await getMaterialModelList()
      modelOptions.value = models.map((item: string) => ({
        value: item.materialModel,
        label: item.materialModelDesc,
      }))
    }
    const getPlaceNoList = async () => {
      const placeNos = await getPlaceNoForStockList(2)
      console.log('库位号列表:', placeNos)
      placeNoOptions.value = placeNos.map((item: string) => ({
        value: item.placeNo,
        label: item.placeNoDesc,
      }))
    }
    return () => {
      return (
        <div class={styles.wmsMaterialContainerContent}>
          <ElForm label-position="top" class={styles.h5Form}>
            <ElFormItem label="物料码">
              <ElInput
                v-model={queryForm.value.materialNo}
                placeholder="请输入物料码"
            <ElFormItem label="型号">
              <ElSelect
                v-model={queryForm.value.materialModel}
                placeholder="请选择型号"
                clearable
                class={styles.formInput}
              />
              >
                {modelOptions.value.map((item) => (
                  <ElOption
                    key={item.value}
                    label={item.label}
                    value={item.value}
                  />
                ))}
              </ElSelect>
            </ElFormItem>
            <ElFormItem label="库位号">
              <ElInput
              <ElSelect
                v-model={queryForm.value.placeNo}
                placeholder="请输入库位号"
                placeholder="请选择库位号"
                clearable
                class={styles.formInput}
              />
              >
                {placeNoOptions.value.map((item) => (
                  <ElOption
                    key={item.value}
                    label={item.label}
                    value={item.value}
                  />
                ))}
              </ElSelect>
            </ElFormItem>
            <ElFormItem label="批次号">
              <ElInput
                v-model={queryForm.value.materialBatch}
                placeholder="请输入数量"
                placeholder="请输入批次号"
                clearable
                class={styles.formInput}
              />
            </ElFormItem>
            <ElFormItem label="数量">
              <ElInput
                v-model={queryForm.value.quantity}
                v-model={queryForm.value.stockNumber}
                placeholder="请输入数量"
                clearable
                class={styles.formInput}
              />
            </ElFormItem>
            <div class={styles.buttonGroup}>
              <ElButton
              {/* <ElButton
                type="primary"
                onClick={handlePalletize}
                class={styles.actionButton}
              >
                组盘
              </ElButton>
              </ElButton> */}
              <ElButton
                type="success"
                onClick={handlePalletizeStorage}