浏览代码

质检功能添加

flower_bs 1 周之前
父节点
当前提交
b3be276533
共有 100 个文件被更改,包括 144 次插入32 次删除
  1. 12 0
      bound/filter.py
  2. 18 0
      container/migrations/0025_alter_containerdetaillogmodel_log_type.py
  3. 12 2
      erp/filter.py
  4. 8 2
      erp/serializers.py
  5. 4 0
      erp/urls.py
  6. 57 0
      erp/views.py
  7. 0 0
      templates/dist/spa/css/10.eb31c91a.css
  8. 0 0
      templates/dist/spa/css/11.f57b1220.css
  9. 0 0
      templates/dist/spa/css/12.65fea8cc.css
  10. 0 0
      templates/dist/spa/css/13.296f042c.css
  11. 1 0
      templates/dist/spa/css/14.61bf61e6.css
  12. 0 0
      templates/dist/spa/css/15.a5d7d7ca.css
  13. 1 0
      templates/dist/spa/css/16.bb6b4a4d.css
  14. 0 0
      templates/dist/spa/css/17.601677c3.css
  15. 0 1
      templates/dist/spa/css/18.3fd341e9.css
  16. 0 0
      templates/dist/spa/css/18.71123cd8.css
  17. 0 0
      templates/dist/spa/css/19.f721cf95.css
  18. 0 0
      templates/dist/spa/css/20.ed8e81e9.css
  19. 1 0
      templates/dist/spa/css/21.eed22a1c.css
  20. 0 0
      templates/dist/spa/css/22.4b9e275f.css
  21. 0 0
      templates/dist/spa/css/23.20ec1b8f.css
  22. 0 0
      templates/dist/spa/css/24.01a9029f.css
  23. 0 0
      templates/dist/spa/css/25.31ab8f86.css
  24. 0 0
      templates/dist/spa/css/26.0d4c4716.css
  25. 0 0
      templates/dist/spa/css/27.e2633675.css
  26. 0 0
      templates/dist/spa/css/28.8f3f6188.css
  27. 0 0
      templates/dist/spa/css/29.97f5bf6a.css
  28. 0 0
      templates/dist/spa/css/30.368d1e05.css
  29. 0 0
      templates/dist/spa/css/31.e4f041cc.css
  30. 0 0
      templates/dist/spa/css/32.7a23b7fb.css
  31. 0 0
      templates/dist/spa/css/33.0faa4aeb.css
  32. 1 0
      templates/dist/spa/css/7.0f1870f4.css
  33. 0 0
      templates/dist/spa/css/8.05ad646d.css
  34. 0 0
      templates/dist/spa/css/9.12d7043d.css
  35. 0 1
      templates/dist/spa/css/chunk-common.0afca41f.css
  36. 1 0
      templates/dist/spa/css/chunk-common.f3f8c523.css
  37. 1 1
      templates/dist/spa/index.html
  38. 1 0
      templates/dist/spa/js/10.56915cca.js
  39. 二进制
      templates/dist/spa/js/10.56915cca.js.gz
  40. 二进制
      templates/dist/spa/js/10.ce199471.js.gz
  41. 二进制
      templates/dist/spa/js/11.1ed410d9.js.gz
  42. 1 1
      templates/dist/spa/js/10.ce199471.js
  43. 二进制
      templates/dist/spa/js/11.673b98cc.js.gz
  44. 1 1
      templates/dist/spa/js/11.1ed410d9.js
  45. 二进制
      templates/dist/spa/js/12.815480bb.js.gz
  46. 二进制
      templates/dist/spa/js/12.f453dadc.js.gz
  47. 1 1
      templates/dist/spa/js/12.f453dadc.js
  48. 二进制
      templates/dist/spa/js/13.05bdf440.js.gz
  49. 1 0
      templates/dist/spa/js/14.787cb0cb.js
  50. 二进制
      templates/dist/spa/js/14.787cb0cb.js.gz
  51. 二进制
      templates/dist/spa/js/14.f28e26d3.js.gz
  52. 1 1
      templates/dist/spa/js/13.11fa6bd3.js
  53. 二进制
      templates/dist/spa/js/13.11fa6bd3.js.gz
  54. 1 0
      templates/dist/spa/js/16.83f90c5d.js
  55. 二进制
      templates/dist/spa/js/16.83f90c5d.js.gz
  56. 1 1
      templates/dist/spa/js/14.f28e26d3.js
  57. 二进制
      templates/dist/spa/js/17.32db9573.js.gz
  58. 二进制
      templates/dist/spa/js/17.81453fd8.js.gz
  59. 0 1
      templates/dist/spa/js/18.a6430dcd.js
  60. 二进制
      templates/dist/spa/js/18.a6430dcd.js.gz
  61. 1 1
      templates/dist/spa/js/15.496ae902.js
  62. 二进制
      templates/dist/spa/js/15.496ae902.js.gz
  63. 1 1
      templates/dist/spa/js/16.907689d4.js
  64. 二进制
      templates/dist/spa/js/16.907689d4.js.gz
  65. 二进制
      templates/dist/spa/js/19.787b4641.js.gz
  66. 1 1
      templates/dist/spa/js/17.81453fd8.js
  67. 二进制
      templates/dist/spa/js/20.29051533.js.gz
  68. 二进制
      templates/dist/spa/js/20.e5c2f3f4.js.gz
  69. 1 0
      templates/dist/spa/js/21.6c456dd1.js
  70. 二进制
      templates/dist/spa/js/21.6c456dd1.js.gz
  71. 二进制
      templates/dist/spa/js/21.e25462dc.js.gz
  72. 1 1
      templates/dist/spa/js/19.787b4641.js
  73. 二进制
      templates/dist/spa/js/22.27e97887.js.gz
  74. 1 1
      templates/dist/spa/js/20.e5c2f3f4.js
  75. 二进制
      templates/dist/spa/js/23.b20207c3.js.gz
  76. 1 1
      templates/dist/spa/js/21.e25462dc.js
  77. 二进制
      templates/dist/spa/js/24.4cc2dcf2.js.gz
  78. 0 1
      templates/dist/spa/js/25.b3d1d83d.js
  79. 二进制
      templates/dist/spa/js/25.b3d1d83d.js.gz
  80. 1 1
      templates/dist/spa/js/22.27907a06.js
  81. 二进制
      templates/dist/spa/js/22.27907a06.js.gz
  82. 1 1
      templates/dist/spa/js/23.98750a8d.js
  83. 1 1
      templates/dist/spa/js/24.2b3d36c2.js
  84. 二进制
      templates/dist/spa/js/24.2b3d36c2.js.gz
  85. 1 0
      templates/dist/spa/js/28.f0459a7d.js
  86. 二进制
      templates/dist/spa/js/28.f0459a7d.js.gz
  87. 1 1
      templates/dist/spa/js/26.9460bc13.js
  88. 二进制
      templates/dist/spa/js/26.9460bc13.js.gz
  89. 1 1
      templates/dist/spa/js/27.05af369f.js
  90. 0 1
      templates/dist/spa/js/31.302a4ef9.js
  91. 二进制
      templates/dist/spa/js/31.302a4ef9.js.gz
  92. 1 1
      templates/dist/spa/js/28.6e8bea29.js
  93. 1 1
      templates/dist/spa/js/29.51698d81.js
  94. 0 1
      templates/dist/spa/js/32.b1145adc.js
  95. 1 1
      templates/dist/spa/js/30.3748538a.js
  96. 1 0
      templates/dist/spa/js/34.e7c1f58e.js
  97. 二进制
      templates/dist/spa/js/34.e7c1f58e.js.gz
  98. 1 1
      templates/dist/spa/js/33.4d61e233.js
  99. 1 1
      templates/dist/spa/js/34.3f8e4f2e.js
  100. 0 0
      templates/dist/spa/js/35.52adbcb3.js

+ 12 - 0
bound/filter.py

@@ -170,6 +170,18 @@ class BoundBatchFilter(FilterSet):
 
               'date', 'date__gt', 'date__gte', 'date__lt', 'date__lte', 'date__range', 'date__in', 
               'time', 'time__gt', 'time__gte', 'time__lt', 'time__lte', 'time__range', 'time__in', 'isnull', 'in', 'range'],
+              'check_status' : ['exact', 'gt', 'gte', 'lt', 'lte', 'icontains','range'],
+              'check_user' : ['icontains', 'exact'],
+              'check_time' : ['exact', 'gt', 'gte', 'lt', 'lte',
+             'year', 'year__gt', 'year__gte', 'year__lt', 'year__lte', 'year__range', 'year__in', 
+             'month','month__gt','month__gte','month__lt','month__lte','month__range','month__in', 
+             'day', 'day__gt', 'day__gte', 'day__lt', 'day__lte', 'day__range', 'day__in',
+              'week_day', 'week_day__gt', 'week_day__gte', 'week_day__lt', 'week_day__lte', 'week_day__range', 'week_day__in', 
+              'hour', 'hour__gt', 'hour__gte', 'hour__lt', 'hour__lte', 'hour__range', 'hour__in',
+
+              'date', 'date__gt', 'date__gte', 'date__lt', 'date__lte', 'date__range', 'date__in', 
+              'time', 'time__gt', 'time__gte', 'time__lt', 'time__lte', 'time__range', 'time__in', 'isnull', 'in', 'range'],
+
 
         }
     

+ 18 - 0
container/migrations/0025_alter_containerdetaillogmodel_log_type.py

@@ -0,0 +1,18 @@
+# Generated by Django 4.1.2 on 2025-07-17 10:08
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('container', '0024_alter_containerdetaillogmodel_new_goods_out_qty_and_more'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='containerdetaillogmodel',
+            name='log_type',
+            field=models.CharField(choices=[('create', '创建'), ('update', '更新'), ('delete', '删除'), ('out', '出库'), ('cancel_out', '取消出库'), ('status_change', '状态变更')], max_length=20, verbose_name='日志类型'),
+        ),
+    ]

+ 12 - 2
erp/filter.py

@@ -1,6 +1,6 @@
 from django_filters import FilterSet
 from .models import InboundBill, MaterialDetail ,OutboundBill ,OutMaterialDetail
-
+from django_filters import rest_framework as filters
 class OutboundBillFilter(FilterSet):
     class Meta:
         model = OutboundBill
@@ -44,7 +44,14 @@ class InboundBillFilter(FilterSet):
             "save_status" : ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
         }
 
-class MaterialDetailFilter(FilterSet):
+class MaterialDetailFilter(filters.FilterSet):
+    # 修正字段引用为正确的 number 字段
+    bound_billId_code__icontains = filters.CharFilter(
+        field_name='bound_billId__number',  # 使用正确的字段名
+        lookup_expr='icontains',            # 匹配 URL 参数的后缀
+        label='入库单代码'
+    )
+    
     class Meta:
         model = MaterialDetail
         fields = {
@@ -52,6 +59,8 @@ class MaterialDetailFilter(FilterSet):
             "bound_billId": ['exact'],
             "entryIds": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
             "production_batch": ['exact', 'icontains'],
+            "material_goods_code": ['exact', 'icontains'],
+            "material_batch_order": ['exact', 'icontains'],
             "goods_code": ['exact', 'icontains'],
             "goods_name": ['exact', 'icontains'],
             "goods_std": ['exact', 'icontains'],
@@ -63,6 +72,7 @@ class MaterialDetailFilter(FilterSet):
             "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
             "update_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
             "is_delete": ['exact'],
+            "status": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
         }
 
 class OutMaterialDetailFilter(FilterSet):

+ 8 - 2
erp/serializers.py

@@ -88,10 +88,16 @@ class MaterialDetailSerializer(serializers.ModelSerializer):
     """
     物料明细序列化器
     """
+    bound_billId_code = serializers.SerializerMethodField()
     class Meta:
         model = MaterialDetail
-        exclude = ['id', 'note']
-        read_only_fields = ['entryIds', 'production_batch', 'goods_code', 'goods_name', 'goods_std', 'goods_weight', 'plan_qty', 'goods_total_weight', 'goods_unit', 'note']
+        fields = '__all__'
+    def get_bound_billId_code(self, obj):
+        """
+        物料明细编码
+        """
+        return f"{obj.bound_billId.number}"
+
 class OutMaterialDetailSerializer(serializers.ModelSerializer):
     """
     物料明细序列化器

+ 4 - 0
erp/urls.py

@@ -39,6 +39,10 @@ urlpatterns = [
         'get': 'retrieve',
 
     }), name="Materials_1"),
+    path('materials/check/', views.Materials.as_view({
+        'put': 'check_status',
+    }), name="check_status_1"),
+
 
     path('outmaterials/', views.OutMaterials.as_view({"get": "list"}),name="OutMaterials"),
     re_path(r'^outmaterials/(?P<pk>\d+)/$', views.OutMaterials.as_view({

+ 57 - 0
erp/views.py

@@ -1300,6 +1300,8 @@ class BatchUpdate(APIView):
                             
                             
                             instance.save()
+                            materials_instance = Materials()
+                            materials_instance._check_status_operation(instance)
                             bill_obj.save()
                             success_count += 1
                         except Exception as e:
@@ -2048,6 +2050,7 @@ class Materials(viewsets.ModelViewSet):
             Response a data list(get)
         list:
             Response a data list(all)
+        
     """
     # authentication_classes = []  # 禁用所有认证类
     # permission_classes = [AllowAny]  # 允许任意访问
@@ -2080,6 +2083,60 @@ class Materials(viewsets.ModelViewSet):
         else:
             return self.http_method_not_allowed(request=self.request)   
 
+    def _check_status_operation(self, material_obj):
+        return_data = {}
+        return_data['status'] = material_obj.status
+    
+        if material_obj.status == 0:
+            return_data['message'] = '未质检,请等待'
+        elif material_obj.status == 1:
+            if material_obj.material_goods_code == '' or material_obj.material_batch_order == '':
+                return_data['message'] = 'erp已质检,但是批次信息未填写,请手动检查,并将批次状态设置为已质检'
+                material_goods_code_divded= material_obj.production_batch.split('-')
+                if len(material_goods_code_divded) == 2:
+                    material_obj.material_goods_code = material_goods_code_divded[0]
+                    material_obj.material_batch_order = material_goods_code_divded[1]
+                    if len(material_obj.material_batch_order) == 7:
+                        material_obj.material_batch_order = '20'+material_obj.material_batch_order[0:6]
+                    material_obj.save()
+                    return_data['message'] = 'erp已质检,但是批次信息未填写,已自动填写,请手动检查,并将批次状态设置为已质检'
+                    from bound.models import BoundBatchModel
+                    batch_obj = BoundBatchModel.objects.filter(goods_code=material_obj.material_goods_code, bound_batch_order=material_obj.material_batch_order).first()
+                    if not batch_obj:
+                        return_data['message'] = 'erp已质检,但是批次信息未填写,已自动填写,请手动检查,并将批次状态设置为已质检,但是WMS未找到该批次,请手动检查,并将批次状态设置为已质检'
+                    else :    
+                        batch_obj.check_status = 1
+                        batch_obj.save()
+                        return_data['message'] = 'erp已质检,但是批次信息未填写,已自动填写,请手动检查,并将批次状态设置为已质检,已自动将批次状态设置为已质检'
+            else:
+                from bound.models import BoundBatchModel
+                batch_obj = BoundBatchModel.objects.filter(goods_code=material_obj.material_goods_code, bound_batch_order=material_obj.material_batch_order).first()
+                if not batch_obj:
+                    return_data['message'] = 'erp已质检,但是WMS未找到该批次,请手动检查,并将批次状态设置为已质检'
+                else :    
+                    batch_obj.check_status = 1
+                    batch_obj.save()
+                    return_data['message'] = '已质检,请确认'
+        return return_data
+
+    def check_status(self,request):
+
+        id = request.data.get('id', None)
+   
+        if id is None:
+            return Response({'message': '参数错误', 'data': None, 'code': 400}, status=status.HTTP_200_OK)
+        else:
+            material_obj = MaterialDetail.objects.filter(id=id).first()
+            if material_obj:
+                return_data = self._check_status_operation(material_obj)
+                return Response({'message': '操作成功', 'data': return_data, 'code': 200}, status=status.HTTP_200_OK)
+            else:
+                return Response({'message': '数据不存在', 'data': None, 'code': 400}, status=status.HTTP_200_OK)
+
+
+
+
+
 class OutMaterials(viewsets.ModelViewSet):
     """
         retrieve:

templates/dist/spa/css/9.eb31c91a.css → templates/dist/spa/css/10.eb31c91a.css


templates/dist/spa/css/10.f57b1220.css → templates/dist/spa/css/11.f57b1220.css


templates/dist/spa/css/11.65fea8cc.css → templates/dist/spa/css/12.65fea8cc.css


templates/dist/spa/css/12.296f042c.css → templates/dist/spa/css/13.296f042c.css


+ 1 - 0
templates/dist/spa/css/14.61bf61e6.css

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

templates/dist/spa/css/13.a5d7d7ca.css → templates/dist/spa/css/15.a5d7d7ca.css


文件差异内容过多而无法显示
+ 1 - 0
templates/dist/spa/css/16.bb6b4a4d.css


templates/dist/spa/css/14.601677c3.css → templates/dist/spa/css/17.601677c3.css


+ 0 - 1
templates/dist/spa/css/18.3fd341e9.css

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

templates/dist/spa/css/15.71123cd8.css → templates/dist/spa/css/18.71123cd8.css


templates/dist/spa/css/16.f721cf95.css → templates/dist/spa/css/19.f721cf95.css


templates/dist/spa/css/17.ed8e81e9.css → templates/dist/spa/css/20.ed8e81e9.css


+ 1 - 0
templates/dist/spa/css/21.eed22a1c.css

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

templates/dist/spa/css/19.4b9e275f.css → templates/dist/spa/css/22.4b9e275f.css


templates/dist/spa/css/20.20ec1b8f.css → templates/dist/spa/css/23.20ec1b8f.css


templates/dist/spa/css/21.01a9029f.css → templates/dist/spa/css/24.01a9029f.css


templates/dist/spa/css/22.31ab8f86.css → templates/dist/spa/css/25.31ab8f86.css


templates/dist/spa/css/23.0d4c4716.css → templates/dist/spa/css/26.0d4c4716.css


templates/dist/spa/css/24.e2633675.css → templates/dist/spa/css/27.e2633675.css


templates/dist/spa/css/25.8f3f6188.css → templates/dist/spa/css/28.8f3f6188.css


templates/dist/spa/css/26.97f5bf6a.css → templates/dist/spa/css/29.97f5bf6a.css


templates/dist/spa/css/27.368d1e05.css → templates/dist/spa/css/30.368d1e05.css


templates/dist/spa/css/28.e4f041cc.css → templates/dist/spa/css/31.e4f041cc.css


templates/dist/spa/css/29.7a23b7fb.css → templates/dist/spa/css/32.7a23b7fb.css


templates/dist/spa/css/30.0faa4aeb.css → templates/dist/spa/css/33.0faa4aeb.css


+ 1 - 0
templates/dist/spa/css/7.0f1870f4.css

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

templates/dist/spa/css/7.05ad646d.css → templates/dist/spa/css/8.05ad646d.css


templates/dist/spa/css/8.12d7043d.css → templates/dist/spa/css/9.12d7043d.css


+ 0 - 1
templates/dist/spa/css/chunk-common.0afca41f.css

@@ -1 +0,0 @@
-[data-v-112dd91a] .q-field__label{margin-top:8px;align-self:center}[data-v-112dd91a] .q-field__control-container{padding-left:50px;margin-top:-5px}[data-v-112dd91a] .q-table .q-editable:hover{background-color:#f0f8ff;cursor:pointer}[data-v-112dd91a] .q-field__native{padding:5px 8px}[data-v-112dd91a] .q-table tr.editing{background-color:#e8f5e9!important}

+ 1 - 0
templates/dist/spa/css/chunk-common.f3f8c523.css

@@ -0,0 +1 @@
+[data-v-83418d0a] .q-field__label{margin-top:8px;align-self:center}[data-v-83418d0a] .q-field__control-container{padding-left:50px;margin-top:-5px}[data-v-83418d0a] .q-table .q-editable:hover{background-color:#f0f8ff;cursor:pointer}[data-v-83418d0a] .q-field__native{padding:5px 8px}[data-v-83418d0a] .q-table tr.editing{background-color:#e8f5e9!important}

文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/index.html


文件差异内容过多而无法显示
+ 1 - 0
templates/dist/spa/js/10.56915cca.js


二进制
templates/dist/spa/js/10.56915cca.js.gz


二进制
templates/dist/spa/js/10.ce199471.js.gz


二进制
templates/dist/spa/js/11.1ed410d9.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/10.ce199471.js


二进制
templates/dist/spa/js/11.673b98cc.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/11.1ed410d9.js


二进制
templates/dist/spa/js/12.815480bb.js.gz


二进制
templates/dist/spa/js/12.f453dadc.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/12.f453dadc.js


二进制
templates/dist/spa/js/13.05bdf440.js.gz


文件差异内容过多而无法显示
+ 1 - 0
templates/dist/spa/js/14.787cb0cb.js


二进制
templates/dist/spa/js/14.787cb0cb.js.gz


二进制
templates/dist/spa/js/14.f28e26d3.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/13.11fa6bd3.js


二进制
templates/dist/spa/js/13.11fa6bd3.js.gz


文件差异内容过多而无法显示
+ 1 - 0
templates/dist/spa/js/16.83f90c5d.js


二进制
templates/dist/spa/js/16.83f90c5d.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/14.f28e26d3.js


二进制
templates/dist/spa/js/17.32db9573.js.gz


二进制
templates/dist/spa/js/17.81453fd8.js.gz


文件差异内容过多而无法显示
+ 0 - 1
templates/dist/spa/js/18.a6430dcd.js


二进制
templates/dist/spa/js/18.a6430dcd.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/15.496ae902.js


二进制
templates/dist/spa/js/15.496ae902.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/16.907689d4.js


二进制
templates/dist/spa/js/16.907689d4.js.gz


二进制
templates/dist/spa/js/19.787b4641.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/17.81453fd8.js


二进制
templates/dist/spa/js/20.29051533.js.gz


二进制
templates/dist/spa/js/20.e5c2f3f4.js.gz


文件差异内容过多而无法显示
+ 1 - 0
templates/dist/spa/js/21.6c456dd1.js


二进制
templates/dist/spa/js/21.6c456dd1.js.gz


二进制
templates/dist/spa/js/21.e25462dc.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/19.787b4641.js


二进制
templates/dist/spa/js/22.27e97887.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/20.e5c2f3f4.js


二进制
templates/dist/spa/js/23.b20207c3.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/21.e25462dc.js


二进制
templates/dist/spa/js/24.4cc2dcf2.js.gz


文件差异内容过多而无法显示
+ 0 - 1
templates/dist/spa/js/25.b3d1d83d.js


二进制
templates/dist/spa/js/25.b3d1d83d.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/22.27907a06.js


二进制
templates/dist/spa/js/22.27907a06.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/23.98750a8d.js


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/24.2b3d36c2.js


二进制
templates/dist/spa/js/24.2b3d36c2.js.gz


文件差异内容过多而无法显示
+ 1 - 0
templates/dist/spa/js/28.f0459a7d.js


二进制
templates/dist/spa/js/28.f0459a7d.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/26.9460bc13.js


二进制
templates/dist/spa/js/26.9460bc13.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/27.05af369f.js


文件差异内容过多而无法显示
+ 0 - 1
templates/dist/spa/js/31.302a4ef9.js


二进制
templates/dist/spa/js/31.302a4ef9.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/28.6e8bea29.js


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/29.51698d81.js


文件差异内容过多而无法显示
+ 0 - 1
templates/dist/spa/js/32.b1145adc.js


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/30.3748538a.js


文件差异内容过多而无法显示
+ 1 - 0
templates/dist/spa/js/34.e7c1f58e.js


二进制
templates/dist/spa/js/34.e7c1f58e.js.gz


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/33.4d61e233.js


文件差异内容过多而无法显示
+ 1 - 1
templates/dist/spa/js/34.3f8e4f2e.js


+ 0 - 0
templates/dist/spa/js/35.52adbcb3.js


部分文件因为文件数量过多而无法显示