flower_bs 4 kuukautta sitten
vanhempi
commit
9824cef60f

+ 2 - 2
container/filter.py

@@ -26,7 +26,7 @@ class ContainerDetailLogFilter(filters.FilterSet):
     goods_code__icontains = filters.CharFilter(field_name='container_detail__goods_code', lookup_expr='icontains')
     
     container_code = filters.CharFilter(field_name='container_detail__container__container_code', lookup_expr='exact')
-    
+    bound_number = filters.CharFilter(field_name='container_detail__batch__bound_number', lookup_expr='exact')
     batch = filters.CharFilter(field_name='container_detail__batch__bound_number', lookup_expr='exact')
     batch__icontains = filters.CharFilter(field_name='container_detail__batch__bound_number', lookup_expr='icontains')
     class Meta:
@@ -61,7 +61,7 @@ class ContainerListFilter(FilterSet):
         }
 
 class ContainerDetailFilter(FilterSet):
-
+    bound_number = filters.CharFilter(field_name='batch__bound_number', lookup_expr='exact')
     class Meta:
         model = ContainerDetailModel
         fields = {

+ 6 - 0
container/serializers.py

@@ -147,6 +147,7 @@ class ContainerDetailGetSerializer(serializers.ModelSerializer):
     month = serializers.IntegerField(read_only=True, required=False)
     container = serializers.SerializerMethodField()
     batch = serializers.SerializerMethodField()
+    bound_number = serializers.SerializerMethodField()
     goods_code = serializers.CharField(read_only=True, required=False)
     goods_desc = serializers.CharField(read_only=True, required=False)
     goods_qty = serializers.DecimalField(read_only=False, required=False, max_digits=10, decimal_places=3)
@@ -167,6 +168,11 @@ class ContainerDetailGetSerializer(serializers.ModelSerializer):
         """ 动态序列化关联的批次数据 """
         from bound.serializers import BoundBatchGetSerializer
         return BoundBatchGetSerializer(obj.batch).data
+    
+    def get_bound_number(self, obj):
+        """ 动态序列化关联的批次数据 """
+        from bound.models import BoundBatchModel
+        return BoundBatchModel.objects.get(id=obj.batch_id).bound_number
 
     class Meta:
         # 指定模型和排除字段

+ 1 - 0
templates/dist/spa/css/10.009f6600.css

@@ -0,0 +1 @@
+.q-date__calendar-item--selected[data-v-96afaa0a]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-96afaa0a]{background-color:rgba(25,118,210,0.1)}.custom-title[data-v-96afaa0a]{font-size:0.9rem;font-weight:500}.custom-timeline[data-v-96afaa0a]{--q-timeline-color:#e0e0e0}.custom-node .q-timeline__dot[data-v-96afaa0a]{background:#485573!important;border:2px solid #5c6b8c!important}.custom-node .q-timeline__content[data-v-96afaa0a]{color:#485573}

+ 0 - 1
templates/dist/spa/css/10.916b292f.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-c45ce648]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-c45ce648]{background-color:rgba(25,118,210,0.1)}.custom-title[data-v-c45ce648]{font-size:0.9rem;font-weight:500}.custom-timeline[data-v-c45ce648]{--q-timeline-color:#e0e0e0}.custom-node .q-timeline__dot[data-v-c45ce648]{background:#485573!important;border:2px solid #5c6b8c!important}.custom-node .q-timeline__content[data-v-c45ce648]{color:#485573}

+ 1 - 0
templates/dist/spa/css/4.1df4ea51.css

@@ -0,0 +1 @@
+.q-date__calendar-item--selected[data-v-b05782d8]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-b05782d8]{background-color:rgba(25,118,210,0.1)}.custom-title[data-v-b05782d8]{font-size:0.9rem;font-weight:500}.custom-timeline[data-v-b05782d8]{--q-timeline-color:#e0e0e0}.custom-node .q-timeline__dot[data-v-b05782d8]{background:#485573!important;border:2px solid #5c6b8c!important}.custom-node .q-timeline__content[data-v-b05782d8]{color:#485573}

+ 0 - 1
templates/dist/spa/css/4.60a85e41.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-14975a4a]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-14975a4a]{background-color:rgba(25,118,210,0.1)}

+ 0 - 1
templates/dist/spa/css/7.86480c2e.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-45b60c6c]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-45b60c6c]{background-color:rgba(25,118,210,0.1)}.custom-title[data-v-45b60c6c]{font-size:0.9rem;font-weight:500}.custom-timeline[data-v-45b60c6c]{--q-timeline-color:#e0e0e0}.custom-node .q-timeline__dot[data-v-45b60c6c]{background:#485573!important;border:2px solid #5c6b8c!important}.custom-node .q-timeline__content[data-v-45b60c6c]{color:#485573}

+ 1 - 0
templates/dist/spa/css/7.8879267a.css

@@ -0,0 +1 @@
+.q-date__calendar-item--selected[data-v-264cfcfd]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-264cfcfd]{background-color:rgba(25,118,210,0.1)}.custom-title[data-v-264cfcfd]{font-size:0.9rem;font-weight:500}.custom-timeline[data-v-264cfcfd]{--q-timeline-color:#e0e0e0}.custom-node .q-timeline__dot[data-v-264cfcfd]{background:#485573!important;border:2px solid #5c6b8c!important}.custom-node .q-timeline__content[data-v-264cfcfd]{color:#485573}

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 1
templates/dist/spa/index.html


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 0
templates/dist/spa/js/10.6404af04.js


BIN
templates/dist/spa/js/10.6404af04.js.gz


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 1
templates/dist/spa/js/10.e0ac08b4.js


BIN
templates/dist/spa/js/10.e0ac08b4.js.gz


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 0
templates/dist/spa/js/4.08fdf7c6.js


BIN
templates/dist/spa/js/4.08fdf7c6.js.gz


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 1
templates/dist/spa/js/4.7303364a.js


BIN
templates/dist/spa/js/4.7303364a.js.gz


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 1
templates/dist/spa/js/7.9cc49ae8.js


BIN
templates/dist/spa/js/7.9cc49ae8.js.gz


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 0
templates/dist/spa/js/7.a84e91eb.js


BIN
templates/dist/spa/js/7.a84e91eb.js.gz


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 1
templates/dist/spa/js/84.dfee846a.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 0
templates/dist/spa/js/app.1712f4e2.js


BIN
templates/dist/spa/js/app.1712f4e2.js.gz


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 1
templates/dist/spa/js/app.a66228df.js


BIN
templates/dist/spa/js/app.a66228df.js.gz


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 789 - 336
templates/src/pages/container/containerdetail.vue


+ 14 - 8
templates/src/pages/count/batch.vue

@@ -572,9 +572,15 @@ export default {
         },
         {
           name: 'goods_out_qty',
-          label: '已出库/预定数目',
+          label: '已出库数目',
           field: 'goods_out_qty',
           align: 'center'
+        },        
+        {
+          name: 'goods_in_location_qty',
+          label: '在库',
+          field: 'goods_in_location_qty',
+          align: 'center'
         },
         {
           name: 'goods_std',
@@ -590,13 +596,13 @@ export default {
           align: 'center',
           headerStyle: 'width: 20px'
         },
-        {
-          name: 'goods_package',
-          label: '包装',
-          field: 'goods_package',
-          align: 'center',
-          headerStyle: 'width: 20px'
-        },
+        // {
+        //   name: 'goods_package',
+        //   label: '包装',
+        //   field: 'goods_package',
+        //   align: 'center',
+        //   headerStyle: 'width: 20px'
+        // },
         {
           name: 'check_status',
           label: '质检状态',

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 383 - 442
templates/src/pages/count/containerDetail.vue


+ 37 - 37
templates/src/pages/count/count.vue

@@ -27,7 +27,16 @@
                 exact
               />
             </transition>
-
+            <transition appear enter-active-class="animated zoomIn">
+              <q-route-tab
+                v-if="hasPermission('containerDetail')"
+                name="containerDetail"
+                :label="'托盘明细'"
+                icon="img:statics/inbound/more.png"
+                :to="{ name: 'containerDetail' }"
+                exact
+              />
+            </transition>
             <!-- 托盘日志 -->
             <transition appear enter-active-class="animated zoomIn">
               <q-route-tab
@@ -53,16 +62,6 @@
             </transition>
 
             <!-- 托盘明细 -->
-            <transition appear enter-active-class="animated zoomIn">
-              <q-route-tab
-                v-if="hasPermission('containerDetail')"
-                name="containerDetail"
-                :label="'托盘明细'"
-                icon="img:statics/inbound/more.png"
-                :to="{ name: 'containerDetail' }"
-                exact
-              />
-            </transition>
           </q-tabs>
         </div>
       </div>
@@ -74,53 +73,54 @@
 </template>
 
 <script>
-import { LocalStorage } from 'quasar'
-import { postauth } from 'boot/axios_request'
+import { LocalStorage } from "quasar";
+import { postauth } from "boot/axios_request";
 
 export default {
-  name: 'Pageinbound',
-  data () {
+  name: "Pageinbound",
+  data() {
     return {
-      detaillink: 'batch',
-      login_mode: LocalStorage.getItem('login_mode'),
-      userPermissions: []
-    }
+      detaillink: "batch",
+      login_mode: LocalStorage.getItem("login_mode"),
+      userPermissions: [],
+    };
   },
-  mounted () {
-    this.loadUserPermissions()
+  mounted() {
+    this.loadUserPermissions();
   },
   methods: {
     // 加载用户权限
-    loadUserPermissions () {
-      postauth('staff/role-pagePermissions/' + this.login_mode + '/', {
-        primary_page: 'count' // 设置为count模块
+    loadUserPermissions() {
+      postauth("staff/role-pagePermissions/" + this.login_mode + "/", {
+        primary_page: "count", // 设置为count模块
       }).then(
         (response) => {
           // 存储权限数据
-          this.userPermissions = response
+          this.userPermissions = response;
         },
         (error) => {
           this.$q.notify({
-            type: 'negative',
-            message: '加载用户权限失败: ' + error.message
-          })
+            type: "negative",
+            message: "加载用户权限失败: " + error.message,
+          });
         }
-      )
+      );
     },
 
     // 检查用户是否有指定页面的访问权限
-    hasPermission (page) {
+    hasPermission(page) {
       // 如果没有权限数据,默认显示所有页面
-      if (!this.userPermissions || this.userPermissions.length === 0) return false
+      if (!this.userPermissions || this.userPermissions.length === 0)
+        return false;
 
       // 查找指定页面的权限
       const permission = this.userPermissions.find(
-        perm => perm.page === '/count/' + page
-      )
+        (perm) => perm.page === "/count/" + page
+      );
 
       // 如果找到权限,返回其启用状态;否则默认不允许访问
-      return permission ? permission.enabled : false
-    }
-  }
-}
+      return permission ? permission.enabled : false;
+    },
+  },
+};
 </script>