diff --git a/client/src/api/eaduitors.js b/client/src/api/eaduitors.js
new file mode 100644
index 0000000..e27f3d2
--- /dev/null
+++ b/client/src/api/eaduitors.js
@@ -0,0 +1,51 @@
+import request from '@/utils/request'
+
+
+
+export function getEa(query) {
+ return request({
+ url: '/info/ea/',
+ method: 'get',
+ params: query
+ })
+ }
+
+export function getMyEas(query) {
+ return request({
+ url: '/info/ea/activate_info/',
+ method: 'get',
+ params: query
+ })
+}
+
+ export function getOneEa(id) {
+ return request({
+ url: `/info/ea/${id}/`,
+ method: 'get'
+ })
+ }
+
+
+ export function updateEa(id, data) {
+ return request({
+ url: `/info/ea/${id}/`,
+ method: 'put',
+ data
+ })
+ }
+
+ export function createEa(data) {
+ return request({
+ url: `/info/ea/`,
+ method: 'post',
+ data
+ })
+ }
+
+
+ export function delEa(id) {
+ return request({
+ url: `/info/ea/${id}/`,
+ method: 'delete'
+ })
+ }
diff --git a/client/src/views/informatiomCollect/externalAuditor.vue b/client/src/views/informatiomCollect/externalAuditor.vue
index 306ab50..acffc73 100644
--- a/client/src/views/informatiomCollect/externalAuditor.vue
+++ b/client/src/views/informatiomCollect/externalAuditor.vue
@@ -2,62 +2,131 @@
-
-
- {{ scope.row.name }}
-
-
- {{ scope.row.description }}
-
-
- {{ scope.row.file_.mime }}
-
-
+
+
+
+
+
+
+
+
- 编辑
-
+ 删除
+
+
+ 外审员情况
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
- 上传文件
-
+
+
+
+
+
+
+
+
-
取消
确认
+
+
+
+ 点击下载模板
+
+
+
+ 导入
+
+
+
+
+ 取 消
+ 确 定
+
+
-
+
\ No newline at end of file
diff --git a/client/src/views/informatiomCollect/reviewStatus.vue b/client/src/views/informatiomCollect/reviewStatus.vue
index 75d7de7..c492f7a 100644
--- a/client/src/views/informatiomCollect/reviewStatus.vue
+++ b/client/src/views/informatiomCollect/reviewStatus.vue
@@ -301,7 +301,7 @@ export default {
if (valid) {
const isEdit = this.dialogType === "edit";
if (isEdit) {
- console.log(this.Content)
+ console.log(this.Content);
updateRs(this.Content.id, this.Content).then((response) => {
if (response.data) {
this.tableData = response.data;
diff --git a/client/src/views/supervisionNew/oinspect_form.vue b/client/src/views/supervisionNew/oinspect_form.vue
index 4cbf8f5..73054bf 100644
--- a/client/src/views/supervisionNew/oinspect_form.vue
+++ b/client/src/views/supervisionNew/oinspect_form.vue
@@ -65,10 +65,10 @@
accept=".doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip">
上传文件
-
+
确认
+
diff --git a/server/apps/information/migrations/0017_externalauditors_department.py b/server/apps/information/migrations/0017_externalauditors_department.py
new file mode 100644
index 0000000..bb3d014
--- /dev/null
+++ b/server/apps/information/migrations/0017_externalauditors_department.py
@@ -0,0 +1,20 @@
+# Generated by Django 3.2.12 on 2024-04-03 01:04
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('system', '0023_alter_user_first_name'),
+ ('information', '0016_auto_20240402_1558'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='externalauditors',
+ name='department',
+ field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to='system.organization', verbose_name='组织单位'),
+ ),
+ ]
diff --git a/server/apps/information/models.py b/server/apps/information/models.py
index 7a52ad1..e5baf96 100644
--- a/server/apps/information/models.py
+++ b/server/apps/information/models.py
@@ -82,8 +82,8 @@ class ExternalAuditors(models.Model):
certificate_expiration = models.DateField(verbose_name='证书有效期')
contact = models.CharField(max_length=20, verbose_name='联系方式')
judging_areas = models.CharField(max_length=20, verbose_name='评审领域')
- remark = models.CharField(max_length=20, verbose_name='备注', null=True)
-
+ remark = models.CharField(max_length=20, verbose_name='备注', null=True, blank=True)
+ department = models.ForeignKey(Organization, on_delete=models.PROTECT, null=True, verbose_name='单位名称')
class Meta:
verbose_name = '外审员情况'
db_table = 'externalauditors'
diff --git a/server/apps/information/views.py b/server/apps/information/views.py
index 99d17df..ac00596 100644
--- a/server/apps/information/views.py
+++ b/server/apps/information/views.py
@@ -186,23 +186,32 @@ class QualityActivitiesViewSet(ModelViewSet):
serializer = QualityActivitiesSerializer(query, many=True)
data = {'count':len(serializer.data), 'results':serializer.data}
return Response(data, status = status.HTTP_200_OK)
-
-
-class ContactViewSet(mixins.CreateModelMixin,
- mixins.ListModelMixin,
- mixins.DestroyModelMixin,
- mixins.UpdateModelMixin,
- viewsets.GenericViewSet):
+
+class ContactViewSet(ModelViewSet):
queryset = Contact.objects.all()
serializer_class = ContactSerializer
-
-class ExternalAuditorsViewSet(mixins.CreateModelMixin,
- mixins.ListModelMixin,
- mixins.DestroyModelMixin,
- mixins.UpdateModelMixin,
- viewsets.GenericViewSet):
+class ExternalAuditorsViewSet(ModelViewSet):
queryset = ExternalAuditors.objects.all()
serializer_class = ExternalAuditorsSerializer
+ def create(self, request):
+ if Organization.objects.filter(name=request.data['name_company']).exists():
+ department_id = Organization.objects.filter(name=request.data['name_company']).first().id
+ request.data['department'] = department_id
+ serializer = self.get_serializer(data=request.data)
+ if serializer.is_valid(raise_exception=True):
+ serializer.save()
+ return Response(serializer.data, status = status.HTTP_201_CREATED)
+ else:
+ raise ParseError("组织单位不存在")
+
+ # 查询子以及已经本公司的质量活动
+ @action(detail=False, methods=['get'])
+ def activate_info(self, request, *args, **kwargs):
+ child_dept = get_child_queryset2(request.user.dept)
+ query = ExternalAuditors.objects.filter(department__in=child_dept)
+ serializer = ExternalAuditorsSerializer(query, many=True)
+ data = {'count':len(serializer.data), 'results':serializer.data}
+ return Response(data, status = status.HTTP_200_OK)