From 37169f1f5699cacd19d1167652dbd5dbfbd41a84 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 19 Oct 2020 17:47:41 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=B2=E6=8A=A4=E7=94=A8=E5=93=81=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test_mini/pages/qtest/form.js | 116 +++++++++++++++++- test_mini/pages/qtest/form.wxml | 12 ++ test_server/cms/views.py | 2 +- .../qtest/migrations/0003_consult_kdd.py | 18 +++ test_server/qtest/models.py | 1 + test_server/qtest/views.py | 7 +- 6 files changed, 153 insertions(+), 3 deletions(-) create mode 100644 test_server/qtest/migrations/0003_consult_kdd.py diff --git a/test_mini/pages/qtest/form.js b/test_mini/pages/qtest/form.js index 8180304..2b5d91f 100644 --- a/test_mini/pages/qtest/form.js +++ b/test_mini/pages/qtest/form.js @@ -26,13 +26,127 @@ Page({ phoneInput: function(e){ this.data.phone = e.detail.value }, + kdInput: function(e){ + this.data.kdd = e.detail.value + }, + tap1:function(){ + api.request('/cms/material/','get', {name:'个人防护用品检测介绍和案例'}).then(res=>{ + var res1 = res.data + if(res1.count){ + var fileurl = getApp().globalData.host + res1.results[0].path + wx.showLoading({ + title: '正在下载...', + }) + wx.downloadFile({ + url: fileurl, + success(res) { + wx.showLoading({ + title: '成功,正在打开...', + }) + const filePath = res.tempFilePath + var filetype + if (fileurl.indexOf(".docx") != -1) { + filetype = 'docx' + } + else if (fileurl.indexOf(".doc") != -1) { + filetype = 'doc' + } + else if (fileurl.indexOf(".xlsx") != -1) { + filetype = 'xlsx' + } + else if (fileurl.indexOf(".xls") != -1) { + filetype = 'xls' + } + else if (fileurl.indexOf(".pptx") != -1) { + filetype = 'pptx' + } + else if (fileurl.indexOf(".ppt") != -1) { + filetype = 'ppt' + } + else if (fileurl.indexOf(".pdf") != -1) { + filetype = 'pdf' + } else { + wx.hideLoading() + return + } + wx.openDocument({ + filePath, + fileType: filetype, + success(res) { + wx.hideLoading() + console.log('打开文档成功') + }, fail: function (e) { + wx.hideLoading() + } + }) + } + }) + } + }) + }, + tap2:function(){ + api.request('/cms/material/','get', {name:'个人防护用品检测申请单'}).then(res=>{ + var res1 = res.data + if(res1.count){ + var fileurl = getApp().globalData.host + res1[0].path + wx.showLoading({ + title: '正在下载...', + }) + wx.downloadFile({ + url: fileurl, + success(res) { + wx.showLoading({ + title: '成功,正在打开...', + }) + const filePath = res.tempFilePath + var filetype + if (fileurl.indexOf(".docx") != -1) { + filetype = 'docx' + } + else if (fileurl.indexOf(".doc") != -1) { + filetype = 'doc' + } + else if (fileurl.indexOf(".xlsx") != -1) { + filetype = 'xlsx' + } + else if (fileurl.indexOf(".xls") != -1) { + filetype = 'xls' + } + else if (fileurl.indexOf(".pptx") != -1) { + filetype = 'pptx' + } + else if (fileurl.indexOf(".ppt") != -1) { + filetype = 'ppt' + } + else if (fileurl.indexOf(".pdf") != -1) { + filetype = 'pdf' + } else { + wx.hideLoading() + return + } + wx.openDocument({ + filePath, + fileType: filetype, + success(res) { + wx.hideLoading() + console.log('打开文档成功') + }, fail: function (e) { + wx.hideLoading() + } + }) + } + }) + } + }) + }, submit: function(){ if(this.data.name&&this.data.phone&&this.data.address){ let data = { name:this.data.name, phone:this.data.phone, address:this.data.address, - tests:this.data.tests + tests:this.data.tests, + kdd:this.data.kdd } api.request('/qtest/consult/','POST', data).then(res=>{ wx.showModal({ diff --git a/test_mini/pages/qtest/form.wxml b/test_mini/pages/qtest/form.wxml index 8dc0127..680f9e8 100644 --- a/test_mini/pages/qtest/form.wxml +++ b/test_mini/pages/qtest/form.wxml @@ -3,6 +3,10 @@

个人防护用品检测(铅当量)

中科辐射学堂和国家建材工业安防工程产品质量监督检验中心推出个人防护用品合格检测,限每个核技术利用单位在10月31日之前免费检测一套个人防护用品,如有需要请提交您的申请。 + + + + 基本信息 @@ -20,6 +24,14 @@ + + + + + + + + diff --git a/test_server/cms/views.py b/test_server/cms/views.py index a556d92..8eb7473 100644 --- a/test_server/cms/views.py +++ b/test_server/cms/views.py @@ -69,7 +69,7 @@ class MaterialViewSet(ModelViewSet): search_fields = ['name','description'] ordering_fields = ['update_time', 'down_count'] ordering = ['-down_count'] - filterset_fields = ['type'] + filterset_fields = ['type', 'name'] @action(methods=['get'], detail=True, url_name='down_material', perms_map=[{'*':'down_material'}]) def down(self, request, *args, **kwargs): diff --git a/test_server/qtest/migrations/0003_consult_kdd.py b/test_server/qtest/migrations/0003_consult_kdd.py new file mode 100644 index 0000000..34c546c --- /dev/null +++ b/test_server/qtest/migrations/0003_consult_kdd.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.4 on 2020-10-19 09:47 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('qtest', '0002_consult_feedback'), + ] + + operations = [ + migrations.AddField( + model_name='consult', + name='kdd', + field=models.TextField(blank=True, null=True, verbose_name='快递单号'), + ), + ] diff --git a/test_server/qtest/models.py b/test_server/qtest/models.py index fdb5c86..b1553c3 100644 --- a/test_server/qtest/models.py +++ b/test_server/qtest/models.py @@ -8,6 +8,7 @@ class Consult(CommonModel): name = models.CharField('姓名', max_length=100) phone = models.CharField('手机号', max_length=100) address = models.CharField('邮寄地址', max_length=1000, null=True, blank=True) + kdd = models.TextField('快递单号', null=True, blank=True) tests = ArrayField(models.CharField('检测内容', max_length=2000)) feedback = models.TextField('反馈记录', null=True, blank=True) class Meta: diff --git a/test_server/qtest/views.py b/test_server/qtest/views.py index c4e0670..6cfc909 100644 --- a/test_server/qtest/views.py +++ b/test_server/qtest/views.py @@ -1,4 +1,5 @@ from django.shortcuts import render +from rest_framework.views import APIView from rest_framework.viewsets import ModelViewSet from .models import Consult # Create your views here. @@ -7,6 +8,9 @@ from utils.custom import CommonPagination from .models import Consult from django_filters.rest_framework import DjangoFilterBackend from rest_framework.filters import OrderingFilter, SearchFilter +from rest_framework.decorators import action +from cms.models import Material +from rest_framework.response import Response class ConsultSerializer(serializers.ModelSerializer): """ 咨询序列化 @@ -27,4 +31,5 @@ class ConsultViewSet(ModelViewSet): pagination_class = CommonPagination filter_backends = [DjangoFilterBackend,SearchFilter, OrderingFilter] search_fields = ['name','tests', 'phone'] - ordering=['-pk'] \ No newline at end of file + ordering=['-pk'] +