fix conflict

This commit is contained in:
caoqianming 2020-08-21 15:55:21 +08:00
commit f84dfc3cc0
21 changed files with 781 additions and 36 deletions

View File

@ -3,7 +3,16 @@
<router-view />
</div>
</template>
<style >
<style type="text/css">
.el-table--medium td,   .el-table--medium th {
padding: 0px 0;
}
.el-form-item {
margin-bottom: 10px;
}
</style>
<script>

View File

@ -93,7 +93,7 @@ export default {
<style scoped>
.pagination-container {
background: #fff;
padding: 32px 16px;
padding: 0px 16px;
}
.pagination-container.hidden {
display: none;

View File

@ -342,6 +342,7 @@ export const asyncRoutes = [
component: () => import('@/views/system/dict'),
meta: { title: '数据字典', icon: 'example', perms: ['dict_manage'] }
},
{
path: 'file',
name: 'File',

View File

@ -410,24 +410,7 @@ export default {
chooseComplete(val) {
this.dgVisiable = false;
if (val) {
if (this.dgType == 1) {
this.formData.manufacture = val.id;
this.formData.manufacture_v = {
name: val.name,
linkman_name: val.linkman1_name,
linkman_mobile: val.linkman1_mobile,
linkman_duty: val.linkman1_duty,
};
} else if (this.dgType == 2) {
this.formData.factory = val.id;
this.formData.factory_v = {
name: val.name,
linkman_name: val.linkman1_name,
linkman_mobile: val.linkman1_mobile,
linkman_duty: val.linkman1_duty,
person_count: val.person_count,
};
} else if (this.dgType == 0) {
if (this.dgType == 0) {
this.formData.applicant = val.id;
this.formData.applicant_v = {
name: val.name,

View File

@ -1,10 +1,17 @@
<template>
<div class="app-container">
<<<<<<< HEAD
<el-tabs >
<el-tab-pane label="申请信息" >
<div v-if="isLoad">
<CCCform :action="action" @handleCommit="save" :certapp="certapp" v-if="kind=='CCC'"></CCCform>
</div>
=======
<el-tabs type="border-card" >
<el-tab-pane label="申请信息" style="height:700px;overflow-y:auto;overflow-x:hidden;">
<CCCform :action="action" @handleCommit="save" :certapp="certapp" v-if="kind=='CCC'"></CCCform>
<QMSform :action="action" @handleCommit="save" :certapp="certapp" v-if="kind=='QMS'"></QMSform>
>>>>>>> cadd1bc4bb33c7e12f4af4ff51565f60fbb6dc85
</el-tab-pane>
<el-tab-pane label="产品单元" v-if="certapp">
<Productunit :certapp="certapp"></Productunit>
@ -28,11 +35,17 @@
</template>
<script>
import CCCform from "@/views/certapp/cccform"
<<<<<<< HEAD
import Productunit from "@/views/certapp/productunit"
import { getCertapp, completeCertapp } from "@/api/certapp"
import router from '@/router';
export default {
components: { CCCform, Productunit},
=======
import QMSform from "@/views/certapp/qmsform"
export default {
components: { CCCform,QMSform },
>>>>>>> cadd1bc4bb33c7e12f4af4ff51565f60fbb6dc85
props: [],
data() {
return {
@ -76,4 +89,4 @@ export default {
}
}
};
</script>
</script>

View File

@ -0,0 +1,430 @@
<template>
<div>
<el-form ref="elForm" :model="formData" size="medium" label-width="150px">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="申请信息" name="1">
<el-row>
<el-col :xs="24" :md="8">
<el-form-item label="受理日期" prop="apply_date">
<el-date-picker v-model="formData.apply_date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:style="{width: '100%'}"
placeholder="受理日期"
clearable></el-date-picker>
</el-form-item>
</el-col>
<el-col :xs="24" :md="8">
<el-form-item label="接收日期" prop="accept_date">
<el-date-picker v-model="formData.accept_date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:style="{width: '100%'}"
placeholder="材料接收日期"
clearable></el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="申请方" name="2">
<el-row>
<el-col :xs="24" :md="8">
<el-form-item label="申请方" prop="applicant">
<el-input placeholder="请选择申请方" readonly clearable v-model="formData.applicant_v.name">
<el-button slot="append" icon="el-icon-search" @click="choose(0)"></el-button>
</el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="8">
<el-form-item label="地址" prop="applicant_v.address">
<el-select v-model="formData.applicant_v.address"
placeholder="请选择地址"
filterable
allow-create
:style="{width: '100%'}">
<el-option v-for="(item, index) in addressOptions0"
:key="index"
:label="item.address"
:value="item.address"
:disabled="item.disabled"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :xs="24" :md="8">
<el-form-item label="联系人">
<el-input v-model="formData.applicant_v.linkman_name"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="8">
<el-form-item label="手机">
<el-input v-model="formData.applicant_v.linkman_mobile"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="8">
<el-form-item label="职务">
<el-input v-model="formData.applicant_v.linkman_duty"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="质量管理体系信息" name="3">
<el-row>
<el-col :xs="24" :md="5">
<el-form-item label="体系相关人数">
<el-input v-model="formData.system_people"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="5">
<el-form-item label="初始人数">
<el-input v-model="formData.initial_people"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="5">
<el-form-item label="监督人日">
<el-input v-model="formData.supervision_people"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="5">
<el-form-item label="认可情况" prop="is_approve">
<el-switch v-model="formData.is_approve"
active-color="#13ce66"
inactive-color="#8C969D">
</el-switch>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :xs="24" :md="5">
<el-form-item label="初次认证费">
<el-input v-model="formData.Initial_certification"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="5">
<el-form-item label="年金">
<el-input v-model="formData.annuity"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="5">
<el-form-item label="监督金额">
<el-input v-model="formData.supervise_amount"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="5">
<el-form-item label="复评金额">
<el-input v-model="formData.review_amount"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :xs="24" :md="8">
<el-form-item label="依据的体系标准" prop="system_standard">
<el-select v-model="formData.system_standard"
placeholder="请选择"
clearable
:style="{width: '100%'}">
<el-option v-for="(item, index) in type_Options"
:key="index"
:label="item.name"
:value="item.value"
:disabled="item.disabled">
</el-option>
</el-select>
</el-form-item>
</el-col>
<!--<el-col :xs="24" :md="8">
<el-form-item label="产品生产依据的国家/行业标准代号">
<el-input v-model="formData.factory_v.linkman_mobile"></el-input>
</el-form-item>
</el-col>-->
<el-col :xs="24" :md="12">
<el-form-item label="专业代码">
<el-select v-model="formData.professional_code"
multiple
filterable
allow-create
default-first-option
:style="{width: '100%'}"
placeholder="请选择专业代码">
<el-option v-for="item in professionaloptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :xs="24">
<el-form-item label="认证范围">
<el-input type="textarea" :rows="2" v-model="formData.certification"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<!--<el-collapse-item title="机构转换" name="4">
<el-row>
<el-col :xs="24" :md="8">
<el-form-item label="原认证机构名称">
<el-input v-model="formData.factory_v.linkman_name"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="8">
<el-form-item label="原(已)获认证的认证注册号">
<el-input v-model="formData.factory_v.linkman_mobile"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
<el-collapse-item title="申请性质" name="5">
<el-row>
<el-col :xs="24" :md="5">
<el-form-item label="项目级别">
<el-input v-model="formData.factory_v.linkman_mobile"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="5">
<el-form-item label="申请性质">
<el-input v-model="formData.factory_v.linkman_duty"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="5">
<el-form-item label="审查方式">
<el-input v-model="formData.factory_v.linkman_name"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="5">
<el-form-item label="专业范围">
<el-input v-model="formData.factory_v.linkman_mobile"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :xs="24" :md="11">
<el-form-item label="认证范围">
<el-input type="textarea" :rows="2" v-model="formData.remarks"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="11">
<el-form-item label="特殊要求">
<el-input type="textarea" :rows="2" v-model="formData.remarks"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :xs="24" :md="8">
<el-form-item label="申请认证范围涉及的产品是否获得其它认证">
<el-input type="textarea" :rows="5" v-model="formData.remarks"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="8">
<el-form-item label="如获得过其他机构颁发的质量体系证书,该证书是否仍然有效?">
<el-input type="textarea" :rows="5" v-model="formData.remarks"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :xs="24" :md="8">
<el-form-item label="备注">
<el-input type="textarea" :rows="5" v-model="formData.remarks"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>-->
</el-collapse>
</el-form>
<div slot="footer" align="center">
<el-button @click="close(false)">取消</el-button>
<el-button type="primary" @click="handelConfirm">保存</el-button>
</div>
<el-dialog title="选择企业"
:visible.sync="dgVisiable"
:close-on-click-modal="false"
width="80%"
:append-to-body="true">
<Enterprisechose ref="Enterprisechose" @handleChose="chooseComplete"></Enterprisechose>
</el-dialog>
</div>
</template>
<script>
import { createCertapp, updateCertapp, getCertapp } from "@/api/certapp";
import Enterprisechose from "@/views/enterprise/enterprisechoose";
import { getAddressList } from "@/api/enterprise";
import { genTree } from "../../utils";
import { getDictList } from "../../api/dict";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "QMSform",
inheritAttrs: false,
components: { Enterprisechose, Treeselect },
props: ["action", "certapp"],
data() {
return {
activeNames: ['1', '2', '3', '4','5'],
formData: {
field_code: 'QMS',
applicant: null,
applicant_v: {},
factory: null,
factory_v: {},
cccpv_class: null,
pattern: "正常",
is_approve: true,
},
dgType: 0,
dgVisiable: false,
addressOptions0: [],
type_Options: [],
professionaloptions:[],
};
},
computed: {},
watch: {
},
created() {
if(this.action!='create'){
this.formData.id = this.certapp
this.getCertapp_()
}
this.getTypeOptions();
this.getProfOptions()
},
mounted() {},
methods: {
handleChange(val) {
console.log(val);
},
getTypeOptions() {
getDictList({ type__code: "system_standards" }).then(response => {
this.type_Options = genTree(response.data);
});
},
getProfOptions() {
getDictList({ type__code: "industry_classification" }).then(response => {
this.professionaloptions = genTree(response.data);
});
},
getCertapp_(){
getCertapp(this.formData.id).then(res=>{
this.formData = res.data
})
},
handelConfirm() {
this.$refs["elForm"].validate((valid) => {
if (!valid) return;
if(this.formData.id){
updateCertapp(this.formData.id, this.formData).then((res) => {
this.$message.success('成功')
this.$emit("handleCommit", res.data);
});
}else{
createCertapp(this.formData).then((res) => {
this.$message.success('成功')
this.$emit("handleCommit", res.data);
});
}
});
},
choose(val) {
this.dgType = val;
this.dgVisiable = true;
},
chooseComplete(val) {
this.dgVisiable = false;
if (val) {
if (this.dgType == 1) {
this.formData.manufacture = val.id;
this.formData.manufacture_v = {
name: val.name,
linkman_name: val.linkman1_name,
linkman_mobile: val.linkman1_mobile,
linkman_duty: val.linkman1_duty,
};
} else if (this.dgType == 2) {
this.formData.factory = val.id;
this.formData.factory_v = {
name: val.name,
linkman_name: val.linkman1_name,
linkman_mobile: val.linkman1_mobile,
linkman_duty: val.linkman1_duty,
person_count: val.person_count,
};
} else if (this.dgType == 0) {
this.formData.applicant = val.id;
this.formData.applicant_v = {
name: val.name,
linkman_name: val.linkman1_name,
linkman_mobile: val.linkman1_mobile,
linkman_duty: val.linkman1_duty,
person_count: val.person_count,
};
}
}
this.getAddressList_(val.id);
},
getAddressList_(id) {
getAddressList({ enterprise: id }).then((res) => {
let data = genTree(res.data);
if(this.dgType==0){
this.addressOptions0 = data;
}
});
},
}
};
</script>
<style>
</style>

View File

@ -77,6 +77,7 @@
/>
</div>
</template>
<script>
import { getTrainList,deleteTrain,createTrain } from "@/api/train"
import { getDictList } from "@/api/dict"

View File

@ -4,7 +4,36 @@
<el-tabs type="border-card">
<el-tab-pane label="评审信息">
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
<el-row>
<el-col :span="8">
<el-form-item label="认证类型" prop="cert_field">
<treeselect v-model="formData.cert_field" :multiple="false" :options="cert_fieldOptions" placeholder="请选择认证类型" :style="{width: '100%'}" @select="typeChange"
:clearable="false" :defaultExpandLevel='1' :disable-branch-nodes="true" />
</el-form-item>
</el-col>
<el-col :span="24" v-if="cert_field_code =='PV'">
<el-form-item label="产品分类" prop="pv_class">
<treeselect v-model="formData.pv_class"
:disable-branch-nodes="true"
placeholder="请选择产品分类"
clearable
:style="{width: '100%'}"
:options="pv_classOptions"
:multiple="false"></treeselect>
</el-form-item>
</el-col>
<el-col :span="24" v-if="cert_field_code =='CCC'">
<el-form-item label="产品分类" prop="ccc_list">
<treeselect v-model="formData.ccc_list"
:disable-branch-nodes="true"
placeholder="请选择产品分类"
clearable
:style="{width: '100%'}"
:options="ccc_listOptions"
:multiple="true"></treeselect>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="评审标题" prop="name">
@ -14,15 +43,7 @@
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="评审代号" prop="cert_field">
<el-input v-model="formData.cert_field" placeholder="请输入评审代号" clearable :style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" style="margin-top:4px">
<el-form-item size="large">
@ -41,7 +62,9 @@
</div>
</template>
<script>
import { getDictList } from "@/api/dict";
import { createEvaluationItem} from "@/api/evaluationitem";
import { genTree } from "@/utils";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@ -56,21 +79,68 @@ export default {
id: null,
name:undefined,
cert_field: undefined,
pv_scope: undefined,
pv_class: undefined,
ccc_list: undefined
},
rules: {
},
cert_fieldOptions: [],
cert_field_code:null,
pv_scopeOptions: [],
pv_classOptions: [],
ccc_listOptions: [],
cert_patternOptions: []
};
},
created() {
this.getPvscope();
this.getPvclass();
this.getCccList();
this.getCertpattern();
this.getCerttype();
},
mounted() {},
methods: {
getCerttype() {
getDictList({ type__code: "cert_field" }).then(response => {
if (response.data) {
this.cert_fieldOptions = genTree(response.data);
}
});
},
getPvscope() {
getDictList({ type__code: "pv_scope" }).then(response => {
if (response.data) {
this.pv_scopeOptions = genTree(response.data);
}
});
},
getPvclass() {
getDictList({ type__code: "pv_class" }).then(response => {
if (response.data) {
this.pv_classOptions = genTree(response.data);
}
});
},
getCccList() {
getDictList({ type__code: "ccc_list" }).then(response => {
if (response.data) {
this.ccc_listOptions = genTree(response.data);
}
});
},
getCertpattern() {
getDictList({ type__code: "cert_pattern" }).then(response => {
if (response.data) {
this.cert_patternOptions = genTree(response.data);
}
});
},
submitForm() {
this.$refs["elForm"].validate(valid => {
if (!valid) return;

View File

@ -0,0 +1,25 @@
# Generated by Django 3.0.5 on 2020-08-21 07:22
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('system', '0031_delete_bscodeset'),
('certset', '0016_auto_20200805_1435'),
]
operations = [
migrations.AddField(
model_name='evaluationitem',
name='cccpv_class',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='Evaluations_cccpv_class', to='system.Dict', verbose_name='涉及CCC/PV分类'),
),
migrations.AlterField(
model_name='evaluationitem',
name='cert_field',
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='Evaluations_cert_field', to='system.Dict', verbose_name='认证领域'),
),
]

View File

@ -62,7 +62,9 @@ class UnitType(CommonAModel):
class EvaluationItem(CommonAModel):
name = models.CharField('评审表名称',null=True, blank=True, max_length=1000)
cert_field = models.CharField('所属认证领域分类',max_length=1000,null=True, blank=True,)
cert_field = models.ForeignKey(Dict, verbose_name='认证领域', related_name='Evaluations_cert_field', on_delete=models.DO_NOTHING)
cccpv_class = models.ForeignKey(Dict, verbose_name='涉及CCC/PV分类', related_name='Evaluations_cccpv_class', on_delete=models.DO_NOTHING, null=True, blank=True)
class Meta:
verbose_name = '评审表项目'
verbose_name_plural = verbose_name

View File

@ -0,0 +1,66 @@
# Generated by Django 3.0.5 on 2020-08-20 06:22
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('system', '0028_auto_20200807_1018'),
('crm', '0011_enterprise_parent'),
('project', '0018_certapp_level'),
]
operations = [
migrations.AddField(
model_name='certapp',
name='Initial_certification',
field=models.FloatField(blank=True, default=0, null=True, verbose_name='初次认证费'),
),
migrations.AddField(
model_name='certapp',
name='annuity',
field=models.FloatField(blank=True, default=0, null=True, verbose_name='年金'),
),
migrations.AddField(
model_name='certapp',
name='certification',
field=models.CharField(blank=True, max_length=1000, null=True, verbose_name='认证范围'),
),
migrations.AddField(
model_name='certapp',
name='initial_people',
field=models.FloatField(blank=True, default=0, null=True, verbose_name='初始人日数'),
),
migrations.AddField(
model_name='certapp',
name='professional_code',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='certappk_factory', to='crm.Enterprise'),
),
migrations.AddField(
model_name='certapp',
name='review_amount',
field=models.FloatField(blank=True, default=0, null=True, verbose_name='复评金额'),
),
migrations.AddField(
model_name='certapp',
name='supervise_amount',
field=models.FloatField(blank=True, default=0, null=True, verbose_name='监督金额'),
),
migrations.AddField(
model_name='certapp',
name='supervision_people',
field=models.FloatField(blank=True, default=0, null=True, verbose_name='监督人日数'),
),
migrations.AddField(
model_name='certapp',
name='system_people',
field=models.FloatField(blank=True, default=0, null=True, verbose_name='体系相关员工数'),
),
migrations.AddField(
model_name='certapp',
name='system_standard',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='certapp_system_standard', to='system.Dict', verbose_name='依据的体系标准'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.0.5 on 2020-08-20 06:54
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('project', '0019_auto_20200820_1422'),
]
operations = [
migrations.AddField(
model_name='certapp',
name='risk',
field=models.CharField(blank=True, choices=[('', ''), ('', ''), ('', '')], max_length=50, null=True, verbose_name='风险系数'),
),
]

View File

@ -0,0 +1,20 @@
# Generated by Django 3.0.5 on 2020-08-21 06:32
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('system', '0031_delete_bscodeset'),
('project', '0020_certapp_risk'),
]
operations = [
migrations.AlterField(
model_name='certapp',
name='professional_code',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='certapp_professional_code', to='system.Dict', verbose_name='专业代码'),
),
]

View File

@ -0,0 +1,23 @@
# Generated by Django 3.0.5 on 2020-08-21 06:35
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('system', '0031_delete_bscodeset'),
('project', '0021_auto_20200821_1432'),
]
operations = [
migrations.RemoveField(
model_name='certapp',
name='professional_code',
),
migrations.AddField(
model_name='certapp',
name='professional_code',
field=models.ManyToManyField(blank=True, null=True, related_name='certapp_professional_code', to='system.Dict', verbose_name='专业代码'),
),
]

View File

@ -87,6 +87,11 @@ class CertApp(CommonBModel):
('ODM', 'ODM'),
('OEM', 'OEM')
)
risk_choices = (
('', ''),
('', ''),
('', '')
)
cert_field = models.ForeignKey(Dict, verbose_name='认证领域', related_name='certapp_cert_field', on_delete=models.DO_NOTHING)
cccpv_class = models.ForeignKey(Dict, verbose_name='涉及CCC/PV分类', related_name='certapp_cccpv_class', on_delete=models.DO_NOTHING, null=True, blank=True)
cnas_scopes = models.ManyToManyField(Dict, verbose_name='涉及cnas分类', related_name='certapp_cnas_sopes', blank=True)
@ -97,8 +102,22 @@ class CertApp(CommonBModel):
manufacture_v = JSONField(verbose_name='制造商', null=True)
factory = models.ForeignKey(Enterprise, on_delete=models.CASCADE, related_name='certapp_factory', null=True, blank=True)
factory_v = JSONField(verbose_name='生产厂', null=True)
<<<<<<< HEAD
scope = models.TextField('认证范围', null=True, blank=True)
=======
system_people = models.FloatField('体系相关员工数',null=True, blank=True, default=0)
initial_people = models.FloatField('初始人日数',null=True, blank=True, default=0)
supervision_people = models.FloatField('监督人日数',null=True, blank=True, default=0)
Initial_certification = models.FloatField('初次认证费',null=True, blank=True, default=0)
annuity = models.FloatField('年金',null=True, blank=True, default=0)
supervise_amount = models.FloatField('监督金额',null=True, blank=True, default=0)
review_amount = models.FloatField('复评金额',null=True, blank=True, default=0)
system_standard = models.ForeignKey(Dict, verbose_name='依据的体系标准',null=True, blank=True, related_name='certapp_system_standard', on_delete=models.DO_NOTHING)
professional_code = models.ManyToManyField(Dict, verbose_name='专业代码',null=True, blank=True, related_name='certapp_professional_code')
certification = models.CharField('认证范围', max_length = 1000, null=True, blank=True)
risk = models.CharField('风险系数', choices=risk_choices, max_length=50, null=True, blank=True)
>>>>>>> cadd1bc4bb33c7e12f4af4ff51565f60fbb6dc85
class Meta:
verbose_name = '认证受理'
verbose_name_plural = verbose_name

View File

@ -0,0 +1,31 @@
# Generated by Django 3.0.5 on 2020-08-20 07:54
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
('system', '0028_auto_20200807_1018'),
]
operations = [
migrations.CreateModel(
name='BsCodeSet',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
('code', models.CharField(max_length=50, verbose_name='专业代码内部用')),
('name', models.CharField(max_length=200, verbose_name='名称')),
('cnab_code', models.CharField(max_length=50, verbose_name='专业代码上报用')),
('cert_field', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='bscodeset_cert_field', to='system.Dict', verbose_name='所属认证领域')),
],
options={
'abstract': False,
},
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.0.5 on 2020-08-20 09:50
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('system', '0029_bscodeset'),
]
operations = [
migrations.RenameField(
model_name='bscodeset',
old_name='cert_field',
new_name='cert_fields',
),
]

View File

@ -0,0 +1,16 @@
# Generated by Django 3.0.5 on 2020-08-21 01:31
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('system', '0030_auto_20200820_1750'),
]
operations = [
migrations.DeleteModel(
name='BsCodeSet',
),
]

View File

@ -216,4 +216,4 @@ class File(CommonAModel):
verbose_name_plural = verbose_name
def __str__(self):
return self.name
return self.name

View File

@ -2,7 +2,6 @@ import re
from django_celery_beat.models import PeriodicTask
from rest_framework import serializers
from .models import (Dict, DictType, File, Organization, Permission, Position,
Role, User)

View File

@ -12,6 +12,7 @@ router.register('position', PositionViewSet, basename="position")
router.register('dicttype', DictTypeViewSet, basename="dicttype")
router.register('dict', DictViewSet, basename="dict")
router.register('task', TaskViewSet, basename="task")
urlpatterns = [
path('', include(router.urls)),
path('test/', TestView.as_view())