Просмотр исходного кода

增加班次信息
增加库存禁用

wangzhengguang 4 недель назад
Родитель
Сommit
ad50100c65

+ 45 - 1
src/components/StockIn.vue

@@ -32,6 +32,10 @@
       <van-field v-model="formData.type" name="type" label="规格型号:" readonly />
       <van-field v-model="formData.batchNo" name="batchNo" label="批号:" placeholder="点击输入批号" />
       <van-field v-model="formData.num" name="num" label="入库数量:" placeholder="点击输入数量" />
+      <van-field
+        :model-value="attendanceGroupDisplay" name="attendanceGroup" label="班次:" placeholder="点击选择班次" is-link
+        @click="showBanCiPicker = true"
+      />
       <van-field name="inventoryPackaged" label="是否包装">
         <template #input>
           <van-switch v-model="formData.inventoryPackaged" size="20px" />
@@ -78,10 +82,18 @@
       @confirm="onConfirm"
     />
   </van-popup>
+  <!-- 班次选择器弹出层 -->
+  <van-popup v-model:show="showBanCiPicker" position="bottom">
+    <van-picker
+      :columns="banciOptions"
+      @confirm="onBanCiConfirm"
+      @cancel="showBanCiPicker = false"
+    />
+  </van-popup>
 </template>
 
 <script setup>
-import {ref, onMounted, onUnmounted} from 'vue';
+import {ref, onMounted, onUnmounted, computed} from 'vue';
 import { useRouter, useRoute } from 'vue-router';
 import PositionSelector from './PositionSelector.vue';
 import { processException } from '../common/Common.js';
@@ -122,8 +134,16 @@ const formData = ref({
   inventoryPackaged: false,
   carrierType: '',
   carrierTypeName: '',
+  attendanceGroup:'',
 });
 
+const banciOptions = [
+  { text: '白班', value: 'day' },
+  { text: '夜班', value: 'night' },
+];
+// 班次选择
+const showBanCiPicker = ref(false);
+
 const isShowStockIn = ref(false);
 const isShowTransfer = ref(false);
 const isShowIdle = ref(false);
@@ -455,6 +475,7 @@ const clearFormData = () => {
     inventoryPackaged: false,
     carrierType: '',
     carrierTypeName: '',
+    attendanceGroup:'',
   };
   carrierType.value = [];
   transferPositionSelector.value.clearSelected();
@@ -477,6 +498,29 @@ onMounted(() => {
   initWebSocket();
 });
 
+// 计算显示文本
+const attendanceGroupDisplay = computed(() => {
+  const value = formData.value.attendanceGroup;
+  // console.log('显示文本' + value);
+  if(value === 'day'){
+    return '白班';
+  }else if(value === 'night'){
+    return '夜班';
+  }else {
+    return '';
+  }
+});
+
+// 确认选择
+const onBanCiConfirm = selected => {
+  // console.log('完整参数:', selected);
+  // 获取选中的值(selectedValues 是数组)
+  const selectedValue = selected.selectedValues[0];
+  console.log('选中的值:', selectedValue); // 应该是 'day'
+  formData.value.attendanceGroup = selectedValue;
+  showBanCiPicker.value = false;
+};
+
 </script>
 
 <style scoped>

+ 16 - 1
src/components/StockInScan.vue

@@ -19,6 +19,7 @@
       <van-field v-model="stockData.batchNo" name="batchNo" label="批号:" placeholder="点击输入批号" type="textarea" rows="1" autosize />
 
       <van-field v-model="stockData.num" name="num" label="生产数量:" placeholder="点击输入生产数量" />
+      <van-field :model-value="attendanceGroupText" name="attendanceGroup" label="班次:" :readonly="true" />
       <van-field name="inventoryPackaged" label="是否包装">
         <template #input>
           <van-switch v-model="stockData.inventoryPackaged" size="20px" />
@@ -63,7 +64,7 @@
 </template>
 
 <script setup>
-import { ref, onMounted, onUnmounted } from 'vue';
+import {ref, onMounted, onUnmounted, computed} from 'vue';
 import { useRouter, useRoute } from 'vue-router';
 import PositionSelector from './PositionSelector.vue';
 import { processException } from '../common/Common.js';
@@ -99,6 +100,7 @@ const stockData = ref({
   carrierType:'',
   carrierTypeName: '',
   workDate:'',
+  attendanceGroup:'',
 });
 
 const warehouseId = ref('');
@@ -167,6 +169,7 @@ const handleWebSocketMessage = event => {
         console.log('date:' + jsonData.date);
         stockData.value.workDate = jsonData.date;
       }
+      stockData.value.attendanceGroup = jsonData.attendanceGroup;
 
       // 使用code调用getInfo方法
       if (jsonData.barcode) {
@@ -256,6 +259,7 @@ const clearFormData = () => {
     carrierType:'',
     carrierTypeName:'',
     workDate: '',
+    attendanceGroup:'',
   };
   carrierType.value = [];
   transferPositionSelector.value.clearSelected();
@@ -425,6 +429,17 @@ const getCarrierTypeList = () => {
     },
   );
 };
+
+const attendanceGroupText = computed(() => {
+  switch (stockData.value.attendanceGroup) {
+  case 'day':
+    return '白班';
+  case 'night':
+    return '夜班';
+  default:
+    return stockData.value.attendanceGroup || '';
+  }
+});
 </script>
 
 <style scoped>

+ 2 - 1
src/components/StockOut.vue

@@ -14,7 +14,7 @@
           <van-form :scroll-to-error="true">
             <div class="in-header">
               <strong>{{ index + 1 }}. {{ item.inventoryName }}</strong>
-              <van-button type="primary" plain @click="stockOut(item)">出库</van-button>
+              <van-button :type="item.blocked ? 'default' : 'primary'" plain @click="!item.blocked && stockOut(item)">出库</van-button>
             </div>
             <van-field v-model="item.inventoryNo" name="inventoryNo" label="物料编号:" readonly />
             <van-field v-model="item.inventoryName" name="inventoryName" label="物料名称:" readonly />
@@ -23,6 +23,7 @@
             <van-field v-model="item.batchNo" name="batchNo" label="批号:" readonly type="textarea" rows="1" autosize />
             <van-field v-model="item.positionName" name="positionName" label="货位:" readonly />
             <van-field v-model="item.tuHaoType" name="tuHaoType" label="客户代码:" readonly />
+            <van-field v-model="item.attendanceGroup" name="attendanceGroup" label="班次:" readonly />
           </van-form>
         </div>
       </van-list>

+ 1 - 1
src/components/StockTransfer.vue

@@ -14,7 +14,7 @@
           <van-form :scroll-to-error="true">
             <div class="in-header">
               <strong>{{ index + 1 }}. {{ item.inventoryName }}</strong>
-              <van-button type="primary" plain @click="transfer(item)">调拨</van-button>
+              <van-button :type="item.blocked ? 'default' : 'primary'" plain @click="!item.blocked && transfer(item)">调拨</van-button>
             </div>
             <van-field v-model="item.inventoryNo" name="inventoryNo" label="物料编号:" readonly />
             <van-field v-model="item.inventoryName" name="inventoryName" label="物料名称:" readonly />