diff --git a/client/src/views/certapp/certapphandle.vue b/client/src/views/certapp/certapphandle.vue index fd28c2e..a9d5884 100644 --- a/client/src/views/certapp/certapphandle.vue +++ b/client/src/views/certapp/certapphandle.vue @@ -14,6 +14,7 @@ + @@ -27,24 +28,28 @@ - - - - + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -76,9 +81,12 @@ import QMSform from "@/views/certapp/qmsform" import Conclusion from "@/views/audit/conclusion" import Member from "@/views/audit/member" import access from "@/views/accessment/access" -import REVIEW from "@/views/certapp/review" + import REVIEW from "@/views/certapp/review" + import Detectiontask from "@/views/certapp/detectiontask" export default { - components: { CCCform, Certunit, QMSform, Conclusion, Member, access, CHARGE, REVIEW}, + + components: { CCCform, Certunit, QMSform,Productunit, Conclusion, Member, access, CHARGE, REVIEW}, + props: [], data() { return { diff --git a/client/src/views/certapp/detectiontask.vue b/client/src/views/certapp/detectiontask.vue new file mode 100644 index 0000000..12f2a3b --- /dev/null +++ b/client/src/views/certapp/detectiontask.vue @@ -0,0 +1,320 @@ + + diff --git a/client/src/views/certapp/qmsform.vue b/client/src/views/certapp/qmsform.vue index 96166fb..d3990a6 100644 --- a/client/src/views/certapp/qmsform.vue +++ b/client/src/views/certapp/qmsform.vue @@ -298,7 +298,7 @@ export default { name: "QMSform", inheritAttrs: false, components: { Enterprisechose, Treeselect }, - props: ["action", "certapp"], + props: ["certapp"], data() { return { activeNames: ['1', '2', '3', '4','5'], diff --git a/client/src/views/certapp/review.vue b/client/src/views/certapp/review.vue index 7ed8027..50a1951 100644 --- a/client/src/views/certapp/review.vue +++ b/client/src/views/certapp/review.vue @@ -4,32 +4,36 @@ - - - - + + + + - - + + - - - + + + @@ -81,43 +85,73 @@ export default { }, created() { - - this.getList() + + + this.gitEvadellist() }, mounted() {}, methods: { + //创建的时候的加载 getList() { - getEvaluationsList().then(response => { this.eltList = response.data.results - for (var i = 0; i < this.eltList.length; i++) { - // this.eltList[i].options = this.review_options; - // this.eltList[i].result = '符合' - } + }); }, - // 获取表格选中时的数据 - selectRow (val) { - this.selectlistRow = val + //修改的时候加载 + gitEvadellist() { + getEvaluationDetailList({cert_app:this.certapp}).then(response => { + if (response.data.results.length) { + this.eltList = response.data.results; + + let myarrq = response.data.results; + let arrq = []; + for (var i = 0; i < myarrq.length; i++) { + arrq.push(myarrq[i].result) + + } + this.radio = arrq; + } + else { + this.getList() + } + + + }); + }, + //选中赋值 changeHandler(val1, val2) { console.log(val1,val2) this.eltList[val1].result = val2 - console.log(this.eltList) - }, + + }, + //保存 handelConfirm() { - console.log(this.eltList) - let rlist = [] - for (var i = 0; i < this.eltList.length; i++) { - rlist.push({id:this.eltList[i].id,result:this.eltList[i].result}) + console.log(this.eltList[0].evItem) + if (this.eltList[0].evItem) { + let rlist = [] + for (var i = 0; i < this.eltList.length; i++) { + rlist.push({ id: this.eltList[i].id, content: this.eltList[i].content, result: this.eltList[i].result }) + } + reviewCertapp({ certapps: [this.certapp], rlist: rlist }).then(res => { + this.$message.success('创建成功') + }) + } - reviewCertapp({certapps:[this.certapp], rlist:rlist}).then(res=>{ - this.$message.success('成功') - }) - // let val = this.selectlistRow - // console.log(this.selectlistRow); + else { + let rlist = [] + for (var i = 0; i < this.eltList.length; i++) { + rlist.push({ id: this.eltList[i].id, content: this.eltList[i].content, result: this.eltList[i].result }) + } + reviewCertapp({ certapps: [this.certapp], rlist: rlist }).then(res => { + this.$message.success('修改成功') + }) + + } + }, diff --git a/server/apps/laboratory/models.py b/server/apps/laboratory/models.py index 983c6f4..291517d 100644 --- a/server/apps/laboratory/models.py +++ b/server/apps/laboratory/models.py @@ -37,4 +37,9 @@ class TestOrgNotice(CommonBModel): def __str__(self): return self.name +class DetectionTask(CommonBModel): + testorg = models.ForeignKey(TestOrg,verbose_name='检测机构', related_name='detectionTask_testorg', on_delete=models.DO_NOTHING) + + + diff --git a/server/apps/project/migrations/0033_merge_20200916_1011.py b/server/apps/project/migrations/0033_merge_20200916_1011.py new file mode 100644 index 0000000..a578fd8 --- /dev/null +++ b/server/apps/project/migrations/0033_merge_20200916_1011.py @@ -0,0 +1,14 @@ +# Generated by Django 3.0.5 on 2020-09-16 02:11 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('project', '0032_merge_20200903_1142'), + ('project', '0029_auto_20200904_1553'), + ] + + operations = [ + ] diff --git a/server/apps/project/migrations/0034_evaluationdetail_result.py b/server/apps/project/migrations/0034_evaluationdetail_result.py new file mode 100644 index 0000000..52a27e3 --- /dev/null +++ b/server/apps/project/migrations/0034_evaluationdetail_result.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.5 on 2020-09-16 02:12 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('project', '0033_merge_20200916_1011'), + ] + + operations = [ + migrations.AddField( + model_name='evaluationdetail', + name='result', + field=models.TextField(blank=True, null=True, verbose_name='符合结果'), + ), + ] diff --git a/server/apps/project/models.py b/server/apps/project/models.py index eea3c6a..9fb17f2 100644 --- a/server/apps/project/models.py +++ b/server/apps/project/models.py @@ -187,15 +187,11 @@ class SubApplication(CommonBModel): return self.number class EvaluationDetail(CommonBModel): - result_choices = ( - ('符合', '符合'), - ('不符合', '不符合'), - ('不适用', '不适用'), - ('需说明', '需说明'), - ) + cert_app = models.ManyToManyField(CertApp, verbose_name='关联受理', related_name='evaluationdetail_cert_app') item = models.ForeignKey(Evaluations,on_delete=models.DO_NOTHING,verbose_name='评审项',null=True, blank=True, related_name='evaluationdetail_item') item_v = JSONField(verbose_name='评审项目',null=True, blank=True) + result = models.TextField('符合结果',null=True, blank=True) remark = models.TextField('备注', null=True, blank=True) class Meta: diff --git a/server/apps/project/views.py b/server/apps/project/views.py index b0b89e2..f527a4d 100644 --- a/server/apps/project/views.py +++ b/server/apps/project/views.py @@ -112,7 +112,7 @@ class CertappViewset(PageOrNot, RbacFilterSet, ModelViewSet): certapps = request.data['certapps'] rlist = request.data['rlist'] for i in rlist: - instance = EvaluationDetail.objects.create(item=Evaluations.objects.get(id=i['id']), create_by=request.user, result=i['result'] if 'result' in i and i['result'] else None) + instance = EvaluationDetail.objects.create(item=Evaluations.objects.get(id=i['id']),item_v=i['content'], create_by=request.user, result=i['result'] if 'result' in i and i['result'] else None) instance.cert_app.add(*certapps) return Response(status=status.HTTP_200_OK) @@ -143,6 +143,16 @@ class EvaluationDetailViewset(CreateUpdateCustomMixin, PageOrNot,ModelViewSet): serializer_class = EvaluationDetailSerializer filterset_fields = ['cert_app'] ordering = ['-create_time'] + def reviewupdate(self, request, pk=None): + """ + 完成评审 + """ + + rlist = request.data['rlist'] + for i in rlist: + instance = EvaluationDetail.objects.update(item=Evaluations.objects.get(id=i['id']),item_v=i['content'], update_by=request.user, result=i['result'] ) + + return Response(status=status.HTTP_200_OK) from rest_framework.mixins import ListModelMixin