diff --git a/client/src/api/task.js b/client/src/api/task.js index 4948c2d..c28950a 100644 --- a/client/src/api/task.js +++ b/client/src/api/task.js @@ -96,4 +96,11 @@ export function getmytasklist(query) { method: 'get', params: query }) +} + +export function confirmTaskdept(id) { + return request({ + url: `/supervision/taskdept/${id}/confirm/`, + method: 'put' + }) } \ No newline at end of file diff --git a/client/src/views/supervision/taskdo.vue b/client/src/views/supervision/taskdo.vue index b36146c..83a8725 100644 --- a/client/src/views/supervision/taskdo.vue +++ b/client/src/views/supervision/taskdo.vue @@ -124,6 +124,25 @@ {{ scope.row.confirm_rate }}% + + + @@ -309,7 +328,7 @@ } diff --git a/client_mp/pages.json b/client_mp/pages.json index d2c52dc..7ff9890 100644 --- a/client_mp/pages.json +++ b/client_mp/pages.json @@ -11,6 +11,15 @@ // }] // }, "pages": [ + { + "path" : "pages/login/login", + "style" : + { + "navigationBarTitleText": "验证码登录", + "enablePullDownRefresh": false + } + + }, { "path" : "pages/home/home", "style" : @@ -28,15 +37,6 @@ "enablePullDownRefresh": false } - } - ,{ - "path" : "pages/login/login", - "style" : - { - "navigationBarTitleText": "验证码登录", - "enablePullDownRefresh": false - } - } ,{ "path" : "pages/login/login_password", diff --git a/client_mp/pages/inspectrecord/recorddetail.vue b/client_mp/pages/inspectrecord/recorddetail.vue index d752926..cead268 100644 --- a/client_mp/pages/inspectrecord/recorddetail.vue +++ b/client_mp/pages/inspectrecord/recorddetail.vue @@ -20,7 +20,7 @@ + width="260rpx" height="260rpx" :src="item" v-for="(item, index) in fileList" v-bind:key="index" style="margin: 2rpx;"> diff --git a/client_mp/store/index.js b/client_mp/store/index.js index 5860176..6ece716 100644 --- a/client_mp/store/index.js +++ b/client_mp/store/index.js @@ -34,12 +34,12 @@ const store = new Vuex.Store({ vuex_user: lifeData.vuex_user ? lifeData.vuex_user : {}, vuex_token: lifeData.vuex_token ? lifeData.vuex_token : '', // vuex_host: 'http://127.0.0.1:8000', - // vuex_api: 'http://127.0.0.1:8000/api', - // vuex_apifile: 'http://127.0.0.1:8000/api/file/', + vuex_api: 'http://127.0.0.1:8000/api', + vuex_apifile: 'http://127.0.0.1:8000/api/file/', vuex_host: 'https://testsearch.ctc.ac.cn', - vuex_api: 'https://testsearch.ctc.ac.cn/api', - vuex_apifile: 'https://testsearch.ctc.ac.cn/api/file/', + // vuex_api: 'https://testsearch.ctc.ac.cn/api', + // vuex_apifile: 'https://testsearch.ctc.ac.cn/api/file/', // 如果vuex_version无需保存到本地永久存储,无需lifeData.vuex_version方式 // vuex_version: '1.0.1', diff --git a/server/apps/quality/views.py b/server/apps/quality/views.py index 5854e7b..4ac22f2 100644 --- a/server/apps/quality/views.py +++ b/server/apps/quality/views.py @@ -196,7 +196,7 @@ class InspectDeptViewSet(OptimizationMixin, ListModelMixin, RetrieveModelMixin, if not InspectRecord.objects.filter(dept=obj.dept, subtask=obj.subtask).exists(): for i in InspectItem.objects.filter(is_deleted=False, template=obj.subtask.inspecttask.template): r = {} - r['dept'] = obj.dpet + r['dept'] = obj.dept r['item'] = i r['subtask'] = obj.subtask r['create_by'] = request.user diff --git a/server/apps/supervision/urls.py b/server/apps/supervision/urls.py index 907b470..cbb8155 100644 --- a/server/apps/supervision/urls.py +++ b/server/apps/supervision/urls.py @@ -1,12 +1,13 @@ +from apps.supervision.serializers import TaskDeptSerializer from django.urls import path, include from rest_framework import routers -from .views import ContentViewSet, TaskViewSet,RecordViewSet +from .views import ContentViewSet, TaskViewSet,RecordViewSet, TaskDeptViewSet router = routers.DefaultRouter() router.register('content', ContentViewSet, basename="content") router.register('task', TaskViewSet, basename="task") router.register('record', RecordViewSet, basename="record") - +router.register('taskdept', TaskDeptViewSet, basename="taskdept") urlpatterns = [ path('', include(router.urls)) ] \ No newline at end of file diff --git a/server/apps/supervision/views.py b/server/apps/supervision/views.py index 15efc2e..5f3cd1d 100644 --- a/server/apps/supervision/views.py +++ b/server/apps/supervision/views.py @@ -331,3 +331,26 @@ class RecordViewSet(PageOrNot, CreateUpdateCustomMixin, ModelViewSet): return Response('记录状态错误', status=status.HTTP_400_BAD_REQUEST) +class TaskDeptViewSet(ModelViewSet): + """ + 任务关联部门 操作 + """ + perms_map = {'get': '*', 'post': 'task_update', + 'put': 'task_update', 'delete': 'task_update'} + queryset = TaskDept.objects.all() + serializer_class = TaskDeptSerializer + filterset_fields = ['task','dept'] + ordering = ['dept__sort'] + + @action(methods=['put'], detail=True, perms_map = {'put':'record_confirm'}) + def confirm(self, request, *args, **kwargs): + """ + 批量确认 + """ + obj = self.get_object() + if obj.up_rate == 100: + Record.objects.filter(task=obj.task, belong_dept=obj.dept).update(state='已确认') + obj.confirm_rate = 100 + obj.save() + return Response(status=status.HTTP_200_OK) + return Response('报送未完成', status=status.HTTP_400_BAD_REQUEST) \ No newline at end of file diff --git a/server/apps/system/migrations/0018_auto_20210430_1156.py b/server/apps/system/migrations/0018_auto_20210430_1156.py new file mode 100644 index 0000000..218b434 --- /dev/null +++ b/server/apps/system/migrations/0018_auto_20210430_1156.py @@ -0,0 +1,19 @@ +# Generated by Django 3.0.5 on 2021-04-30 03:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('system', '0017_userthird'), + ] + + operations = [ + migrations.AlterField( + model_name='userthird', + name='openid', + field=models.CharField(default='xx', max_length=200, unique=True, verbose_name='第三方账号'), + preserve_default=False, + ), + ] diff --git a/server/apps/system/models.py b/server/apps/system/models.py index 0afae87..5713fe8 100644 --- a/server/apps/system/models.py +++ b/server/apps/system/models.py @@ -229,4 +229,4 @@ class UserThird(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='关联账户', related_name='third_user') type = models.CharField('类型', max_length=50, choices=type_choices, default='wx_mp') - openid = models.CharField('第三方账号', null=True, blank=True, max_length=200) + openid = models.CharField('第三方账号', max_length=200, unique=True) diff --git a/server/apps/system/views.py b/server/apps/system/views.py index 4c2d3a7..85f2e5c 100644 --- a/server/apps/system/views.py +++ b/server/apps/system/views.py @@ -315,8 +315,8 @@ class UserViewSet(PageOrNot, ModelViewSet): 'perms': perms, } try: - user = UserThird.objects.get(user=user,type='wx_mp').user - data['wxmp_openid'] = user.openid + usert = UserThird.objects.get(user=user,type='wx_mp') + data['wxmp_openid'] = usert.openid except: pass return Response(data) @@ -343,7 +343,13 @@ class UserViewSet(PageOrNot, ModelViewSet): code+'&grant_type=authorization_code').content.decode('utf-8') info = json.loads(info) openid = info['openid'] - UserThird.objects.get_or_create(openid=openid, type='wx_mp', user=request.user, defaults={'openid':openid, 'user':request.user, 'type':'wx_mp'}) + instances = UserThird.objects.filter(openid=openid) + if instances.exists(): + instance = instances[0] + instance.user = request.user + instance.save() + else: + UserThird.objects.get_or_create(openid=openid, type='wx_mp', user=request.user, defaults={'openid':openid, 'user':request.user, 'type':'wx_mp'}) return Response({'wxmp_openid':openid},status=status.HTTP_200_OK)