From 64b2cf06e3adb015877cf645cdc5d640b80847eb Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 27 Jan 2022 13:21:12 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E7=94=9F=E6=88=90=E7=AD=BE=E5=90=8D?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/utils/view.py | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/hb_server/utils/view.py b/hb_server/utils/view.py index e7b3ca5..25dc7d5 100644 --- a/hb_server/utils/view.py +++ b/hb_server/utils/view.py @@ -6,10 +6,9 @@ from PIL import Image from django.conf import settings from rest_framework import status from datetime import datetime -import os -import uuid import cv2 from server.settings import BASE_DIR +import numpy as np # class UploadFileView(APIView): # permission_classes = [IsAuthenticated] @@ -39,16 +38,31 @@ class GenSignature(APIView): def post(self, request, *args, **kwargs): path = (BASE_DIR + request.data['path']).replace('\\', '/') - image = cv2.imread(path, cv2.IMREAD_UNCHANGED) - size = image.shape - for i in range(size[0]): - for j in range(size[1]): - if image[i][j][0]>100 and image[i][j][1]>100 and image[i][j][2]>100: - image[i][j][3] = 0 - else: - image[i][j][0],image[i][j][1],image[i][j][2] = 0,0,0 - cv2.imwrite(path,image) - return Response(request.data, status=status.HTTP_200_OK) + try: + image = cv2.imread(path, cv2.IMREAD_UNCHANGED) + size = image.shape + width = size[0] # 宽度 + height = size[1] # 高度 + if size[2] != 4: # 判断 + background = np.zeros((size[0], size[1], 4)) + for yh in range(height): + for xw in range(width): + background[xw, yh, :3] = image[xw, yh] + background[xw, yh, 3] = 255 + image = background + size = image.shape + for i in range(size[0]): + for j in range(size[1]): + if image[i][j][0]>100 and image[i][j][1]>100 and image[i][j][2]>100: + image[i][j][3] = 0 + else: + image[i][j][0],image[i][j][1],image[i][j][2] = 0,0,0 + cv2.imwrite(path,image) + return Response(request.data, status=status.HTTP_200_OK) + except: + return Response('签名照处理失败,请重新上传', + status=status.HTTP_400_BAD_REQUEST) + import time class UpdateDevelop(APIView): From 850817c04e64cd0bb50a9f6ce3fcfa1870d79779 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 27 Jan 2022 13:38:07 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E7=AD=BE=E5=90=8D=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/srm/views.py | 4 ++-- hb_server/requirements.txt | 1 + hb_server/utils/view.py | 7 +++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/hb_server/apps/srm/views.py b/hb_server/apps/srm/views.py index 9dd73cc..3c7e6a3 100644 --- a/hb_server/apps/srm/views.py +++ b/hb_server/apps/srm/views.py @@ -78,8 +78,8 @@ class AtWorkCountView(CreateAPIView): serializer.is_valid(raise_exception=True) vdata = serializer.validated_data ret = ClockRecord.objects.filter( - create_time__year = vdata['year'], - create_time__month = vdata['month'] + update_time__year = vdata['year'], + update_time__month = vdata['month'] ).values( user_id = F('create_by'), username = F('create_by__username'), diff --git a/hb_server/requirements.txt b/hb_server/requirements.txt index 3d3b1be..500f758 100644 --- a/hb_server/requirements.txt +++ b/hb_server/requirements.txt @@ -11,3 +11,4 @@ psutil==5.8.0 pillow==8.3.1 opencv-python==4.5.3.56 django-celery-results==2.2.0 +numpy==1.21.2 diff --git a/hb_server/utils/view.py b/hb_server/utils/view.py index 25dc7d5..c44f11b 100644 --- a/hb_server/utils/view.py +++ b/hb_server/utils/view.py @@ -1,3 +1,4 @@ +import os from rest_framework.response import Response from rest_framework.views import APIView from rest_framework.parsers import MultiPartParser @@ -57,8 +58,10 @@ class GenSignature(APIView): image[i][j][3] = 0 else: image[i][j][0],image[i][j][1],image[i][j][2] = 0,0,0 - cv2.imwrite(path,image) - return Response(request.data, status=status.HTTP_200_OK) + ext = os.path.splitext(path) + new_path = ext[0] + '.png' + cv2.imwrite(new_path,image) + return Response({'path':new_path}, status=status.HTTP_200_OK) except: return Response('签名照处理失败,请重新上传', status=status.HTTP_400_BAD_REQUEST) From 152996430aaca98d91f890bb59d89f7e897d01f2 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 27 Jan 2022 13:41:55 +0800 Subject: [PATCH 03/16] =?UTF-8?q?=E7=AD=BE=E5=90=8D=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/utils/view.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hb_server/utils/view.py b/hb_server/utils/view.py index c44f11b..30bc9be 100644 --- a/hb_server/utils/view.py +++ b/hb_server/utils/view.py @@ -60,8 +60,8 @@ class GenSignature(APIView): image[i][j][0],image[i][j][1],image[i][j][2] = 0,0,0 ext = os.path.splitext(path) new_path = ext[0] + '.png' - cv2.imwrite(new_path,image) - return Response({'path':new_path}, status=status.HTTP_200_OK) + cv2.imwrite(new_path, image) + return Response({'path':new_path.replace(BASE_DIR, '')}, status=status.HTTP_200_OK) except: return Response('签名照处理失败,请重新上传', status=status.HTTP_400_BAD_REQUEST) From c2919b9673f86ccf1c221180c058e451cc34ba2a Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 27 Jan 2022 14:41:28 +0800 Subject: [PATCH 04/16] =?UTF-8?q?employee=20list=20=E5=A2=9E=E5=8A=A0=20is?= =?UTF-8?q?=5Fatwork?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/hrm/serializers.py | 1 + 1 file changed, 1 insertion(+) diff --git a/hb_server/apps/hrm/serializers.py b/hb_server/apps/hrm/serializers.py index 9371ff4..8d9d841 100644 --- a/hb_server/apps/hrm/serializers.py +++ b/hb_server/apps/hrm/serializers.py @@ -10,6 +10,7 @@ from django.db.models.query import Prefetch class EmployeeSerializer(DynamicFieldsSerializerMixin, ModelSerializer): name = serializers.CharField(source='user.name', read_only=True) dept_ = OrganizationSimpleSerializer(source='user.dept', read_only=True) + is_atwork = serializers.BooleanField(source='user.is_atwork', read_only=True) class Meta: model = Employee exclude = ['face_data'] From ddbd70d172913c396c2a7af0afad98eff6030b26 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 27 Jan 2022 14:57:19 +0800 Subject: [PATCH 05/16] =?UTF-8?q?employee=20list=E5=A2=9E=E5=8A=A0last=5Fc?= =?UTF-8?q?heck=5Ftime?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/hrm/serializers.py | 1 + hb_server/apps/inm/models.py | 2 ++ hb_server/apps/pum/models.py | 20 ++++++++++++++++++-- hb_server/apps/sam/models.py | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/hb_server/apps/hrm/serializers.py b/hb_server/apps/hrm/serializers.py index 8d9d841..dc1eb06 100644 --- a/hb_server/apps/hrm/serializers.py +++ b/hb_server/apps/hrm/serializers.py @@ -11,6 +11,7 @@ class EmployeeSerializer(DynamicFieldsSerializerMixin, ModelSerializer): name = serializers.CharField(source='user.name', read_only=True) dept_ = OrganizationSimpleSerializer(source='user.dept', read_only=True) is_atwork = serializers.BooleanField(source='user.is_atwork', read_only=True) + last_check_time = serializers.DateTimeField(source='user.last_check_time', read_only=True) class Meta: model = Employee exclude = ['face_data'] diff --git a/hb_server/apps/inm/models.py b/hb_server/apps/inm/models.py index ee9d786..6bba339 100644 --- a/hb_server/apps/inm/models.py +++ b/hb_server/apps/inm/models.py @@ -2,6 +2,7 @@ from django.db import models from django.db.models.base import Model import django.utils.timezone as timezone from django.db.models.query import QuerySet +from apps.pum.models import PuOrder from apps.system.models import CommonADModel, CommonAModel, CommonBModel, Organization, User, Dict, File from utils.model import SoftModel, BaseModel from simple_history.models import HistoricalRecords @@ -78,6 +79,7 @@ class FIFO(CommonADModel): User, verbose_name='审核人', on_delete=models.CASCADE, null=True, blank=True) inout_date = models.DateField('出入库日期', null=True, blank=True) remark = models.CharField('备注', max_length=1000, default='') + pu_order = models.ForeignKey(PuOrder, verbose_name='关联采购订单', null=True, blank=True) class FIFOItem(BaseModel): diff --git a/hb_server/apps/pum/models.py b/hb_server/apps/pum/models.py index bf5d5a7..c69fb51 100644 --- a/hb_server/apps/pum/models.py +++ b/hb_server/apps/pum/models.py @@ -5,7 +5,7 @@ from django.db.models.query import QuerySet from apps.system.models import CommonAModel, CommonBModel, Organization, User, Dict, File from utils.model import SoftModel, BaseModel from simple_history.models import HistoricalRecords - +from apps.mtm.models import Material class Vendor(CommonAModel): @@ -23,4 +23,20 @@ class Vendor(CommonAModel): verbose_name_plural = verbose_name def __str__(self): - return self.name \ No newline at end of file + return self.name + +class PuOrder(CommonAModel): + """ + 采购订单信息 + """ + number = models.CharField('订单编号', max_length=100, unique=True) + vendor = models.ForeignKey(Vendor, verbose_name='供应商', on_delete=models.CASCADE) + class Meta: + verbose_name = '采购订单' + verbose_name_plural = verbose_name + +class PuOrderItem(CommonAModel): + """ + 采购订单具体项目 + """ + pass \ No newline at end of file diff --git a/hb_server/apps/sam/models.py b/hb_server/apps/sam/models.py index c652520..ce2ef62 100644 --- a/hb_server/apps/sam/models.py +++ b/hb_server/apps/sam/models.py @@ -58,7 +58,7 @@ class Order(CommonAModel): count = models.PositiveIntegerField('所需数量', default=0) planed_count = models.PositiveIntegerField('已排数量', default=0) delivered_count = models.PositiveIntegerField('已交货数量', default=0) - delivery_date = models.DateField('交货日期') + delivery_date = models.DateField('截止交货日期') need_mtest = models.BooleanField('是否需要军检', default=False) class Meta: verbose_name = '订单信息' From c82ef89054d97f0167bbb860cd38caf0f315b257 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 27 Jan 2022 15:38:00 +0800 Subject: [PATCH 06/16] =?UTF-8?q?=E5=88=B0=E5=B2=97=E5=A4=A9=E6=95=B0?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=A2=9E=E5=8A=A0=E5=B7=A5=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/srm/views.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hb_server/apps/srm/views.py b/hb_server/apps/srm/views.py index 3c7e6a3..d8531c0 100644 --- a/hb_server/apps/srm/views.py +++ b/hb_server/apps/srm/views.py @@ -1,5 +1,6 @@ from django.shortcuts import render +from numpy import number from rest_framework import serializers from rest_framework.generics import ListAPIView, CreateAPIView from rest_framework.views import APIView @@ -82,6 +83,7 @@ class AtWorkCountView(CreateAPIView): update_time__month = vdata['month'] ).values( user_id = F('create_by'), + number = F('create_by__employee_user__number'), username = F('create_by__username'), name = F('create_by__name'), dept_name = F('create_by__dept__name')).annotate( From c8c6945a381405539fe007abee53e022824d9e3e Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 27 Jan 2022 15:48:03 +0800 Subject: [PATCH 07/16] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E8=AE=A2=E5=8D=95part1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apps/inm/migrations/0029_fifo_pu_order.py | 20 +++++++ hb_server/apps/inm/models.py | 3 +- .../migrations/0004_puorder_puorderitem.py | 53 +++++++++++++++++++ hb_server/apps/pum/models.py | 12 +++-- hb_server/apps/pum/serializers.py | 26 ++++++++- hb_server/apps/pum/views.py | 32 +++++++++-- .../0012_alter_order_delivery_date.py | 18 +++++++ 7 files changed, 155 insertions(+), 9 deletions(-) create mode 100644 hb_server/apps/inm/migrations/0029_fifo_pu_order.py create mode 100644 hb_server/apps/pum/migrations/0004_puorder_puorderitem.py create mode 100644 hb_server/apps/sam/migrations/0012_alter_order_delivery_date.py diff --git a/hb_server/apps/inm/migrations/0029_fifo_pu_order.py b/hb_server/apps/inm/migrations/0029_fifo_pu_order.py new file mode 100644 index 0000000..ff2736d --- /dev/null +++ b/hb_server/apps/inm/migrations/0029_fifo_pu_order.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.9 on 2022-01-27 07:47 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('pum', '0004_puorder_puorderitem'), + ('inm', '0028_alter_fifoitem_files'), + ] + + operations = [ + migrations.AddField( + model_name='fifo', + name='pu_order', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='pum.puorder', verbose_name='关联采购订单'), + ), + ] diff --git a/hb_server/apps/inm/models.py b/hb_server/apps/inm/models.py index 6bba339..4042844 100644 --- a/hb_server/apps/inm/models.py +++ b/hb_server/apps/inm/models.py @@ -79,7 +79,8 @@ class FIFO(CommonADModel): User, verbose_name='审核人', on_delete=models.CASCADE, null=True, blank=True) inout_date = models.DateField('出入库日期', null=True, blank=True) remark = models.CharField('备注', max_length=1000, default='') - pu_order = models.ForeignKey(PuOrder, verbose_name='关联采购订单', null=True, blank=True) + pu_order = models.ForeignKey(PuOrder, verbose_name='关联采购订单', + null=True, blank=True, on_delete=models.CASCADE) class FIFOItem(BaseModel): diff --git a/hb_server/apps/pum/migrations/0004_puorder_puorderitem.py b/hb_server/apps/pum/migrations/0004_puorder_puorderitem.py new file mode 100644 index 0000000..03bb346 --- /dev/null +++ b/hb_server/apps/pum/migrations/0004_puorder_puorderitem.py @@ -0,0 +1,53 @@ +# Generated by Django 3.2.9 on 2022-01-27 07:47 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('mtm', '0044_subproduction_need_combtest'), + ('pum', '0003_remove_vendor_material'), + ] + + operations = [ + migrations.CreateModel( + name='PuOrder', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')), + ('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')), + ('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')), + ('number', models.CharField(max_length=100, unique=True, verbose_name='订单编号')), + ('is_audited', models.BooleanField(default=False, verbose_name='是否审核')), + ('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='puorder_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')), + ('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='puorder_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')), + ('vendor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='pum.vendor', verbose_name='供应商')), + ], + options={ + 'verbose_name': '采购订单', + 'verbose_name_plural': '采购订单', + }, + ), + migrations.CreateModel( + name='PuOrderItem', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')), + ('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')), + ('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')), + ('count', models.PositiveIntegerField(default=0, verbose_name='所需数量')), + ('delivered_count', models.PositiveIntegerField(default=0, verbose_name='已到货数量')), + ('delivery_date', models.DateField(verbose_name='截止到货日期')), + ('material', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mtm.material', verbose_name='采购材料')), + ('pu_order', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='item_pu_order', to='pum.puorder', verbose_name='关联采购订单')), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/hb_server/apps/pum/models.py b/hb_server/apps/pum/models.py index c69fb51..d66086a 100644 --- a/hb_server/apps/pum/models.py +++ b/hb_server/apps/pum/models.py @@ -31,12 +31,18 @@ class PuOrder(CommonAModel): """ number = models.CharField('订单编号', max_length=100, unique=True) vendor = models.ForeignKey(Vendor, verbose_name='供应商', on_delete=models.CASCADE) + is_audited = models.BooleanField('是否审核', default=False) class Meta: verbose_name = '采购订单' verbose_name_plural = verbose_name -class PuOrderItem(CommonAModel): +class PuOrderItem(BaseModel): """ - 采购订单具体项目 + 采购具体项目 """ - pass \ No newline at end of file + material = models.ForeignKey(Material, verbose_name='采购材料', on_delete=models.CASCADE) + count = models.PositiveIntegerField('所需数量', default=0) + delivered_count = models.PositiveIntegerField('已到货数量', default=0) + delivery_date = models.DateField('截止到货日期') + pu_order = models.ForeignKey(PuOrder, verbose_name='关联采购订单', + on_delete=models.CASCADE, null=True, blank=True, related_name='item_pu_order') \ No newline at end of file diff --git a/hb_server/apps/pum/serializers.py b/hb_server/apps/pum/serializers.py index 037f7ef..4fe4ae7 100644 --- a/hb_server/apps/pum/serializers.py +++ b/hb_server/apps/pum/serializers.py @@ -1,9 +1,31 @@ from rest_framework.serializers import ModelSerializer - -from .models import Vendor +from apps.mtm.serializers import MaterialSimpleSerializer +from .models import PuOrder, PuOrderItem, Vendor class VendorSerializer(ModelSerializer): class Meta: model = Vendor fields = '__all__' + +class VendorSimpleSerializer(ModelSerializer): + class Meta: + model = Vendor + fields = ['id', 'name'] + +class PuOrderItemSerializer(ModelSerializer): + material_ = MaterialSimpleSerializer(source='material', read_only=True) + class Meta: + model = PuOrderItem + fields = '__all__' + +class PuOrderSerializer(ModelSerializer): + vendor_ = VendorSimpleSerializer(source='vendor', read_only=True) + items = PuOrderItemSerializer(source='item_pu_order', many=True, read_only=True) + class Meta: + model = PuOrder + fields = '__all__' + +class PuOrderCreateUpdateSerializer(ModelSerializer): + class Meta: + fields = ['number', 'vendor'] \ No newline at end of file diff --git a/hb_server/apps/pum/views.py b/hb_server/apps/pum/views.py index 1258ca9..ec11c43 100644 --- a/hb_server/apps/pum/views.py +++ b/hb_server/apps/pum/views.py @@ -1,8 +1,10 @@ + from django.shortcuts import render from rest_framework.viewsets import ModelViewSet - -from apps.pum.models import Vendor -from apps.pum.serializers import VendorSerializer +from rest_framework.mixins import CreateModelMixin, DestroyModelMixin +from rest_framework.viewsets import GenericViewSet +from apps.pum.models import PuOrder, Vendor +from apps.pum.serializers import PuOrderCreateUpdateSerializer, PuOrderSerializer, VendorSerializer from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin @@ -19,3 +21,27 @@ class VendorViewSet(CreateUpdateModelAMixin, ModelViewSet): filterset_fields = [] ordering_fields = ['create_time'] ordering = ['-create_time'] + + +class PuOrderViewSet(CreateUpdateModelAMixin, ModelViewSet): + """ + 采购订单-增删改查 + """ + perms_map = {'get': '*', 'post': '*', + 'put': '*', 'delete': '*'} + queryset = PuOrder.objects.select_related('vendor').\ + prefetch_related('item_pu_order').all() + serializer_class = PuOrderSerializer + search_fields = ['number', 'vendor__name'] + filterset_fields = ['vendor'] + ordering = ['-create_time'] + + def get_serializer_class(self): + if self.action in ['create', 'update']: + return PuOrderCreateUpdateSerializer + return super().get_serializer_class() + + + +class PuOrderItemViewSet(CreateModelMixin, DestroyModelMixin, GenericViewSet): + pass \ No newline at end of file diff --git a/hb_server/apps/sam/migrations/0012_alter_order_delivery_date.py b/hb_server/apps/sam/migrations/0012_alter_order_delivery_date.py new file mode 100644 index 0000000..00af49b --- /dev/null +++ b/hb_server/apps/sam/migrations/0012_alter_order_delivery_date.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.9 on 2022-01-27 07:47 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('sam', '0011_order_need_mtest'), + ] + + operations = [ + migrations.AlterField( + model_name='order', + name='delivery_date', + field=models.DateField(verbose_name='截止交货日期'), + ), + ] From c831b41b61f220d9886d30b8ef049b8a764b8679 Mon Sep 17 00:00:00 2001 From: shilixia <2309368887@qq.com> Date: Thu, 27 Jan 2022 15:51:02 +0800 Subject: [PATCH 08/16] renyuan --- hb_client/src/api/srm.js | 9 + hb_client/src/router/index.js | 10 +- hb_client/src/views/personnel/attendance.vue | 182 +++++++++++++++++++ hb_client/src/views/personnel/user.vue | 22 +-- hb_client/src/views/personnel/userupdate.vue | 159 ++++++++++++---- hb_client/src/views/system/user.vue | 4 +- 6 files changed, 327 insertions(+), 59 deletions(-) create mode 100644 hb_client/src/views/personnel/attendance.vue diff --git a/hb_client/src/api/srm.js b/hb_client/src/api/srm.js index ea41540..ea364db 100644 --- a/hb_client/src/api/srm.js +++ b/hb_client/src/api/srm.js @@ -15,3 +15,12 @@ export function getProcessYield(data) { data }) } +//到岗统计 +export function getatwork(data) { + return request({ + url: '/srm/at_work/', + method: 'post', + data + }) +} + diff --git a/hb_client/src/router/index.js b/hb_client/src/router/index.js index 29004a4..eb72c9b 100644 --- a/hb_client/src/router/index.js +++ b/hb_client/src/router/index.js @@ -418,12 +418,12 @@ export const asyncRoutes = [ meta: { title: '人员列表', icon: 'example', perms: ['user_manage'] } }, { - path: 'personnel', - name: 'personnel', - component: () => import('@/views/personnel/user'), - meta: { title: '考勤列表', icon: 'example', perms: ['user_manage'] } + path: 'attendance', + name: 'attendance', + component: () => import('@/views/personnel/attendance'), + meta: { title: '考勤列表', icon: 'example', perms: ['attendance_manage'] } } ,{ - path: 'userupdate', + path: 'userupdate/:id', name: 'userupdate', component: () => import('@/views/personnel/userupdate'), meta: { title: '人员信息详情', icon: 'employee', perms: ['employee_detail'] }, diff --git a/hb_client/src/views/personnel/attendance.vue b/hb_client/src/views/personnel/attendance.vue new file mode 100644 index 0000000..e986619 --- /dev/null +++ b/hb_client/src/views/personnel/attendance.vue @@ -0,0 +1,182 @@ + + + diff --git a/hb_client/src/views/personnel/user.vue b/hb_client/src/views/personnel/user.vue index 8af611c..c1d4197 100644 --- a/hb_client/src/views/personnel/user.vue +++ b/hb_client/src/views/personnel/user.vue @@ -2,9 +2,7 @@
-
- 用户 -
+
@@ -179,8 +177,7 @@ export default { }, created() { this.getList(); - this.getOrgAll(); - this.getRoleAll(); + }, methods: { checkPermission, @@ -212,18 +209,7 @@ export default { this.listLoading = false; }); }, - getOrgAll() { - this.treeLoding = true; - getOrgAll().then(response => { - this.orgData = genTree(response.data); - this.treeLoding = false; - }); - }, - getRoleAll() { - getRoleAll().then(response => { - this.roles = genTree(response.data); - }); - }, + resetFilter() { this.listQuery = { page: 1, diff --git a/hb_client/src/views/personnel/userupdate.vue b/hb_client/src/views/personnel/userupdate.vue index bba0d14..3afc0d2 100644 --- a/hb_client/src/views/personnel/userupdate.vue +++ b/hb_client/src/views/personnel/userupdate.vue @@ -1,24 +1,56 @@