diff --git a/client/src/api/inspectteam.js b/client/src/api/inspectteam.js
new file mode 100644
index 0000000..ba895a8
--- /dev/null
+++ b/client/src/api/inspectteam.js
@@ -0,0 +1,30 @@
+import request from '@/utils/request'
+//巡查组
+
+export function getInspectTeamList(query) {
+ return request({
+ url: '/quality/inspectteam/',
+ method: 'get',
+ params: query
+ })
+}
+
+
+export function createInspectTeam(data) {
+ return request({
+ url: '/quality/inspectteam/',
+ method: 'post',
+ data
+ })
+}
+
+
+
+export function deleteInspectTeam(id, data) {
+ return request({
+ url: `/quality/inspectteam/${id}/`,
+ method: 'delete',
+ data
+ })
+}
+
diff --git a/client/src/views/qualityinspect/inspeatTask.vue b/client/src/views/qualityinspect/inspeatTask.vue
index f096ad6..5a1abd0 100644
--- a/client/src/views/qualityinspect/inspeatTask.vue
+++ b/client/src/views/qualityinspect/inspeatTask.vue
@@ -2,33 +2,33 @@
-
- 搜索
- 重置
-
-
- 创建巡查任务
-
+
+ 搜索
+ 重置
+
+
+ 创建巡查任务
+
-
- {{ scope.row.template_name }}
-
-
+
{{ scope.row.name }}
-
- {{ scope.row.dept_count }}
+
+ {{ scope.row.state }}
-
+
+ {{ scope.row.template_name }}
+
+
{{ scope.row.subtask_count }}
+
+ {{ scope.row.dept_count }}
+
-
+
{{ scope.row.start_date }}
-
+
{{ scope.row.end_date }}
-
-
+
+
执行
+ >执行
编辑
- 关闭
+ >编辑
删除
+ >删除
@@ -120,13 +118,13 @@
-
+
@@ -136,12 +134,10 @@
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
- style="width:100%"
+ style="width: 100%"
>
-
-
取消
@@ -151,15 +147,21 @@
\ No newline at end of file
diff --git a/client_mp/pages.json b/client_mp/pages.json
index 7ff9890..a19b173 100644
--- a/client_mp/pages.json
+++ b/client_mp/pages.json
@@ -105,7 +105,7 @@
"globalStyle": {
"navigationBarTextStyle": "white",
"navigationBarTitleText": "uView",
- "navigationBarBackgroundColor": "#2b85e4",
+ "navigationBarBackgroundColor": "#2581e4",
"backgroundColor": "#FFFFFF"
},
"tabBar": {
diff --git a/client_mp/pages/home/home.vue b/client_mp/pages/home/home.vue
index 9d69798..5578049 100644
--- a/client_mp/pages/home/home.vue
+++ b/client_mp/pages/home/home.vue
@@ -2,9 +2,9 @@
-
+
- 欢迎您:{{vuex_user.name}}
+ 欢迎您:{{vuex_user.name}}
-
+
+ -->
@@ -145,6 +149,39 @@ export default {
this.$u.toast('倒计时结束后再发送');
}
},
+ mpLogin(){
+ uni.showLoading({
+ title:'微信登录中...',
+ mask: true
+ })
+ uni.login({
+ provider: 'weixin',
+ success: (loginRes)=>{
+ this.$u.api.wxmplogin({code:loginRes.code}).then(res=>{
+ this.$u.vuex('vuex_token', res.data.access)
+ this.$u.api.getUserInfo().then(res=>{
+ uni.hideLoading()
+ uni.showToast({
+ title:"登录成功",
+ icon:"none"
+ })
+ uni.reLaunch({
+ url:"/pages/home/home"
+ })
+ this.$u.vuex('vuex_user', res.data)
+ })
+ }).catch(e=>{
+ uni.hideLoading()
+ uni.showToast({
+ title:"暂未绑定微信!",
+ icon:"none"
+ })
+ uni.reLaunch({
+ url:'/pages/login/login'
+ })})
+ }
+ });
+ }
}
};
diff --git a/client_mp/pages/subtask/subtaskdetail.vue b/client_mp/pages/subtask/subtaskdetail.vue
index d3b722a..47f18fe 100644
--- a/client_mp/pages/subtask/subtaskdetail.vue
+++ b/client_mp/pages/subtask/subtaskdetail.vue
@@ -39,7 +39,7 @@
-
+
@@ -104,6 +104,12 @@
uni.navigateTo({
url:'/pages/inspectrecord/index' + this.$u.queryParams(item)
})
+ },
+ touchStart(e){
+ console.log(e)
+ },
+ touchEnd(e){
+ console.log(e)
}
}
}
diff --git a/server/apps/quality/serializers.py b/server/apps/quality/serializers.py
index 739c47f..7ced2e2 100644
--- a/server/apps/quality/serializers.py
+++ b/server/apps/quality/serializers.py
@@ -3,7 +3,7 @@ from django.db.models.base import Model
from rest_framework import serializers
from .models import *
from apps.system.serializers import OrganizationSerializer,FileListSerializer,UserSimpleSerializer,OrganizationSimpleSerializer, FileSimpleSerializer
-from rest_framework.exceptions import ParseError
+from rest_framework.exceptions import ParseError, APIException
class InspectItemSerializer(serializers.ModelSerializer):
cate_name = serializers.StringRelatedField(source='cate', read_only=True)
class Meta:
@@ -102,7 +102,7 @@ class InspectRecordDetailSerializer(serializers.ModelSerializer):
return queryset
class InspectTeamSerializer(serializers.ModelSerializer):
- member_ = UserSimpleSerializer(source='member', read_only=True)
+ member__name = serializers.CharField(source='member.name', read_only=True)
class Meta:
model = InspectTeam
fields = '__all__'
@@ -112,6 +112,17 @@ class InspectTeamSerializer(serializers.ModelSerializer):
queryset = queryset.select_related('member')
return queryset
+ def create(self, validated_data):
+ if InspectTeam.objects.filter(subtask=validated_data.get('subtask'),member=validated_data.get('member')).exists():
+ raise ParseError('成员已存在')
+ if validated_data.get('type') == '组长':
+ obj = InspectTeam.objects.get(type='组长', subtask=validated_data.get('subtask'))
+ obj.type='组员'
+ obj.save()
+ return InspectTeam.objects.create(**validated_data)
+
+
+
class InspectDeptSerializer(serializers.ModelSerializer):
dept__name = serializers.CharField(source='dept.name', read_only=True)
leader = serializers.SerializerMethodField()
diff --git a/server/apps/quality/views.py b/server/apps/quality/views.py
index eaefee3..a4796fd 100644
--- a/server/apps/quality/views.py
+++ b/server/apps/quality/views.py
@@ -7,7 +7,7 @@ from django.shortcuts import render
from django.utils import timezone
from rest_framework import status
from rest_framework.decorators import action, permission_classes
-from rest_framework.mixins import DestroyModelMixin, ListModelMixin, RetrieveModelMixin
+from rest_framework.mixins import CreateModelMixin, DestroyModelMixin, ListModelMixin, RetrieveModelMixin
from rest_framework.permissions import IsAdminUser
from rest_framework.response import Response
from rest_framework.viewsets import GenericViewSet, ModelViewSet
@@ -166,11 +166,12 @@ class SubtaskViewSet(PageOrNot, CreateUpdateCustomMixin, OptimizationMixin, Mode
r['create_by'] = request.user
records.append(InspectRecord(**r))
for member in request.data['members']:
- mmember = User.objects.get(pk=member)
- data = {}
- data['member'] = mmember
- data['subtask'] = obj
- members.append(InspectTeam(**data))
+ if member != request.data['leader']:
+ mmember = User.objects.get(pk=member)
+ data = {}
+ data['member'] = mmember
+ data['subtask'] = obj
+ members.append(InspectTeam(**data))
InspectTeam.objects.bulk_create(members)
InspectDept.objects.bulk_create(depts)
InspectRecord.objects.bulk_create(records)
@@ -245,7 +246,7 @@ class InspectDeptViewSet(OptimizationMixin, ListModelMixin, RetrieveModelMixin,
return Response('检查状态错误', status=status.HTTP_400_BAD_REQUEST)
-class InspectTeamViewSet(OptimizationMixin, ListModelMixin, RetrieveModelMixin, DestroyModelMixin, GenericViewSet):
+class InspectTeamViewSet(PageOrNot, OptimizationMixin, ListModelMixin, CreateModelMixin, DestroyModelMixin, GenericViewSet):
"""
子任务涉及组员表
"""
@@ -253,6 +254,13 @@ class InspectTeamViewSet(OptimizationMixin, ListModelMixin, RetrieveModelMixin,
queryset = InspectTeam.objects.all()
serializer_class = InspectTeamSerializer
filterset_fields = ['subtask']
+ ordering = ['type']
+ def destroy(self, request, *args, **kwargs):
+ instance = self.get_object()
+ if instance.type=='组长':
+ return Response('组长不可删除', status=status.HTTP_400_BAD_REQUEST)
+ instance.delete()
+ return Response(status=status.HTTP_204_NO_CONTENT)
class InspectRecordViewSet(OptimizationMixin, PageOrNot, ModelViewSet):
perms_map = {'get': '*', 'post': 'inspectrecord_create',