review
This commit is contained in:
parent
a95dcdc77c
commit
464b46b1ff
|
@ -39,6 +39,15 @@ export function completeCertapp(id) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function reviewCertapp(data) {
|
||||||
|
return request({
|
||||||
|
url: `/project/certapp/review/`,
|
||||||
|
method: 'put',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
export function getCertapp(id) {
|
export function getCertapp(id) {
|
||||||
return request({
|
return request({
|
||||||
url: `/project/certapp/${id}/`,
|
url: `/project/certapp/${id}/`,
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
</el-steps>
|
</el-steps>
|
||||||
</el-card>
|
</el-card>
|
||||||
<el-row :gutter="6" style="margin-top:6px">
|
<el-row :gutter="6" style="margin-top:6px">
|
||||||
<el-col :span="20">
|
<el-col :xs="24" :md="20">
|
||||||
<el-tabs type="border-card" v-model="activeName">
|
<el-tabs type="border-card" v-model="activeName">
|
||||||
<el-tab-pane label="申请信息" name="Basic" style="overflow-y:auto;overflow-x:hidden;">
|
<el-tab-pane label="申请信息" name="Basic" style="overflow-y:auto;overflow-x:hidden;">
|
||||||
<CCCform @handleCommit="save" :certapp="certappdata" v-if="kind=='CCC'&isLoad"></CCCform>
|
<CCCform @handleCommit="save" :certapp="certappdata" v-if="kind=='CCC'&isLoad"></CCCform>
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="资料评审" name="Productunit3" v-if="certapp" lazy>
|
<el-tab-pane label="资料评审" name="Productunit3" v-if="certapp" lazy>
|
||||||
|
<REVIEW :certapp="certapp"></REVIEW>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="收费信息" name="Productunit4" v-if="certapp" lazy>
|
<el-tab-pane label="收费信息" name="Productunit4" v-if="certapp" lazy>
|
||||||
|
|
||||||
|
@ -46,12 +46,12 @@
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :xs="24" :md="4">
|
||||||
<el-card>
|
<el-card>
|
||||||
<div slot="header" class="clearfix">
|
<div slot="header" class="clearfix">
|
||||||
<span>业务时间线</span>
|
<span>业务时间线</span>
|
||||||
</div>
|
</div>
|
||||||
<el-timeline >
|
<el-timeline style="margin-top:6px">
|
||||||
<el-timeline-item
|
<el-timeline-item
|
||||||
v-for="(activity, index) in activities"
|
v-for="(activity, index) in activities"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
@ -76,8 +76,9 @@ import QMSform from "@/views/certapp/qmsform"
|
||||||
import Conclusion from "@/views/audit/conclusion"
|
import Conclusion from "@/views/audit/conclusion"
|
||||||
import Member from "@/views/audit/member"
|
import Member from "@/views/audit/member"
|
||||||
import access from "@/views/accessment/access"
|
import access from "@/views/accessment/access"
|
||||||
|
import REVIEW from "@/views/certapp/review"
|
||||||
export default {
|
export default {
|
||||||
components: { CCCform, Productunit, QMSform, Conclusion, Member, access, CHARGE},
|
components: { CCCform, Productunit, QMSform, Conclusion, Member, access, CHARGE, REVIEW},
|
||||||
props: [],
|
props: [],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
<el-row :gutter="12">
|
<el-row :gutter="12">
|
||||||
|
|
||||||
<el-col>
|
<el-col>
|
||||||
<el-card shadow="always">
|
|
||||||
<el-table id="evl"
|
<el-table id="evl"
|
||||||
ref="multipleTable"
|
ref="multipleTable"
|
||||||
:data="eltList"
|
:data="eltList"
|
||||||
|
@ -12,35 +11,31 @@
|
||||||
border
|
border
|
||||||
fit
|
fit
|
||||||
highlight-current-row
|
highlight-current-row
|
||||||
|
|
||||||
@selection-change='selectRow'
|
|
||||||
max-height="600">
|
max-height="600">
|
||||||
<el-table-column type="selection" label="选择" align="center" width="55"></el-table-column>
|
|
||||||
|
|
||||||
<el-table-column align="center" label="项目内容" width="750">
|
<el-table-column align="center" label="项目内容" width="750">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.content }}
|
<span v-if="scope.row.item">{{ scope.row.item.content }}</span>
|
||||||
|
<span v-else>{{ scope.row.content }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column label="符合">
|
<el-table-column label="符合">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-radio-group v-model="radio[scope.$index]" @change="changeHandler">
|
<!-- @change="changeHandler(scope.$index,radio[scope.$index])" -->
|
||||||
<el-radio :label="item.id" :key="item.id" v-for="item in scope.row.options ">{{item.name}}</el-radio>
|
<el-radio-group v-model="radio[scope.$index]" @change="changeHandler(scope.$index,radio[scope.$index])">
|
||||||
|
<el-radio :label="item" :key="item" v-for="item in review_options ">{{item}}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-card>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" align="center">
|
<div slot="footer" align="center" style="margin-top:6px">
|
||||||
<el-button @click="close(false)">取消</el-button>
|
<el-button type="primary" @click="handelConfirm">保存</el-button>
|
||||||
<el-button type="primary" @click="dialogFormAdd">保存</el-button>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -48,6 +43,7 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
import { createEvaluationDetail, updateEvaluationDetail, getEvaluationDetailList } from "@/api/evaluationdetail";
|
import { createEvaluationDetail, updateEvaluationDetail, getEvaluationDetailList } from "@/api/evaluationdetail";
|
||||||
import { getEvaluationsList } from "@/api/evaluationitem";
|
import { getEvaluationsList } from "@/api/evaluationitem";
|
||||||
|
import { reviewCertapp } from "@/api/certapp"
|
||||||
import Treeselect from "@riophae/vue-treeselect";
|
import Treeselect from "@riophae/vue-treeselect";
|
||||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
||||||
import { options } from "runjs";
|
import { options } from "runjs";
|
||||||
|
@ -70,24 +66,7 @@ export default {
|
||||||
},
|
},
|
||||||
radio: [],
|
radio: [],
|
||||||
review_options:[
|
review_options:[
|
||||||
{
|
'符合', '不符合', '不适用', '需说明'
|
||||||
id : "1",
|
|
||||||
name : "符合"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id : "2",
|
|
||||||
name : "不符合"
|
|
||||||
}
|
|
||||||
,
|
|
||||||
{
|
|
||||||
id : "3",
|
|
||||||
name : "不适用"
|
|
||||||
}
|
|
||||||
,
|
|
||||||
{
|
|
||||||
id : "4",
|
|
||||||
name : "需说明"
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
|
|
||||||
eltList: [],
|
eltList: [],
|
||||||
|
@ -113,7 +92,8 @@ export default {
|
||||||
|
|
||||||
this.eltList = response.data.results
|
this.eltList = response.data.results
|
||||||
for (var i = 0; i < this.eltList.length; i++) {
|
for (var i = 0; i < this.eltList.length; i++) {
|
||||||
this.eltList[i].options = this.review_options;
|
// this.eltList[i].options = this.review_options;
|
||||||
|
// this.eltList[i].result = '符合'
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -122,25 +102,22 @@ export default {
|
||||||
selectRow (val) {
|
selectRow (val) {
|
||||||
this.selectlistRow = val
|
this.selectlistRow = val
|
||||||
},
|
},
|
||||||
changeHandler(value) {
|
changeHandler(val1, val2) {
|
||||||
this.radioresult = value;
|
console.log(val1,val2)
|
||||||
}
|
this.eltList[val1].result = val2
|
||||||
,
|
console.log(this.eltList)
|
||||||
handleSelectionChange(val) {
|
|
||||||
this.multipleTable = val; // this.multipleTable 选中的值
|
|
||||||
console.log(val);
|
|
||||||
},
|
|
||||||
dialogFormAdd() {
|
|
||||||
//for (var i = 0; i < this.multipleTable.length; i++) {
|
|
||||||
// var halo = this.multipleTable[i];
|
|
||||||
// console.log(halo);
|
|
||||||
|
|
||||||
//}
|
|
||||||
console.log(this.selectlistRow);
|
|
||||||
},
|
},
|
||||||
handelConfirm() {
|
handelConfirm() {
|
||||||
let val = this.selectlistRow
|
console.log(this.eltList)
|
||||||
console.log(this.selectlistRow);
|
let rlist = []
|
||||||
|
for (var i = 0; i < this.eltList.length; i++) {
|
||||||
|
rlist.push({id:this.eltList[i].id,result:this.eltList[i].result})
|
||||||
|
}
|
||||||
|
reviewCertapp({certapps:[this.certapp], rlist:rlist}).then(res=>{
|
||||||
|
this.$message.success('成功')
|
||||||
|
})
|
||||||
|
// let val = this.selectlistRow
|
||||||
|
// console.log(this.selectlistRow);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -88,25 +88,7 @@ class CertappViewset(PageOrNot, RbacFilterSet, ModelViewSet):
|
||||||
self.perform_create(serializer)
|
self.perform_create(serializer)
|
||||||
headers = self.get_success_headers(serializer.data)
|
headers = self.get_success_headers(serializer.data)
|
||||||
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
|
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
|
||||||
|
|
||||||
class EvaluationDetailViewset(CreateUpdateCustomMixin, ModelViewSet):
|
|
||||||
"""
|
|
||||||
受理信息
|
|
||||||
"""
|
|
||||||
perms_map = {'get': '*', 'post': 'EvaluationDetail_create',
|
|
||||||
'put': 'EvaluationDetail_update', 'delete': 'EvaluationDetail_delete'}
|
|
||||||
queryset = EvaluationDetail.objects
|
|
||||||
serializer_class = EvaluationDetailSerializer
|
|
||||||
filterset_fields = ['cert_app']
|
|
||||||
ordering = ['-create_time']
|
|
||||||
def paginate_queryset(self, queryset):
|
|
||||||
|
|
||||||
if ((not self.request.query_params.get('page', None)) and (self.request.query_params.get('cert_app', None))) or (self.paginator is None):
|
|
||||||
return None
|
|
||||||
return self.paginator.paginate_queryset(queryset, self.request, view=self)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@action(methods=['put'], detail=True, perms_map={'put':'complete_certapp'},
|
@action(methods=['put'], detail=True, perms_map={'put':'complete_certapp'},
|
||||||
url_name='complete_certapp')
|
url_name='complete_certapp')
|
||||||
def complete(self, request, pk=None):
|
def complete(self, request, pk=None):
|
||||||
|
@ -118,6 +100,34 @@ class EvaluationDetailViewset(CreateUpdateCustomMixin, ModelViewSet):
|
||||||
obj.save()
|
obj.save()
|
||||||
return Response(status=status.HTTP_200_OK)
|
return Response(status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
@action(methods=['put'], detail=False, perms_map={'put':'review_certapp'},
|
||||||
|
url_name='review_certapp')
|
||||||
|
def review(self, request, pk=None):
|
||||||
|
"""
|
||||||
|
完成评审
|
||||||
|
"""
|
||||||
|
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.cert_app.add(*certapps)
|
||||||
|
return Response(status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
class EvaluationDetailViewset(CreateUpdateCustomMixin, PageOrNot,ModelViewSet):
|
||||||
|
"""
|
||||||
|
受理信息
|
||||||
|
"""
|
||||||
|
perms_map = {'get': '*', 'post': 'EvaluationDetail_create',
|
||||||
|
'put': 'EvaluationDetail_update', 'delete': 'EvaluationDetail_delete'}
|
||||||
|
queryset = EvaluationDetail.objects
|
||||||
|
serializer_class = EvaluationDetailSerializer
|
||||||
|
filterset_fields = ['cert_app']
|
||||||
|
ordering = ['-create_time']
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class UnitViewSet(RbacFilterSet, ModelViewSet):
|
class UnitViewSet(RbacFilterSet, ModelViewSet):
|
||||||
"""
|
"""
|
||||||
产品单元
|
产品单元
|
||||||
|
|
Loading…
Reference in New Issue