yangshi
This commit is contained in:
parent
8f08df1eb5
commit
2f317bd32c
|
@ -3,7 +3,16 @@
|
||||||
<router-view />
|
<router-view />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
.el-table--medium td, .el-table--medium th {
|
||||||
|
padding: 0px 0;
|
||||||
|
}
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: 'App'
|
name: 'App'
|
||||||
|
|
|
@ -315,6 +315,7 @@ export const asyncRoutes = [
|
||||||
component: () => import('@/views/system/dict'),
|
component: () => import('@/views/system/dict'),
|
||||||
meta: { title: '数据字典', icon: 'example', perms: ['dict_manage'] }
|
meta: { title: '数据字典', icon: 'example', perms: ['dict_manage'] }
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
path: 'file',
|
path: 'file',
|
||||||
name: 'File',
|
name: 'File',
|
||||||
|
|
|
@ -399,24 +399,7 @@ export default {
|
||||||
chooseComplete(val) {
|
chooseComplete(val) {
|
||||||
this.dgVisiable = false;
|
this.dgVisiable = false;
|
||||||
if (val) {
|
if (val) {
|
||||||
if (this.dgType == 1) {
|
if (this.dgType == 0) {
|
||||||
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 = val.id;
|
||||||
this.formData.applicant_v = {
|
this.formData.applicant_v = {
|
||||||
name: val.name,
|
name: val.name,
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
<el-tabs type="border-card" >
|
<el-tabs type="border-card" >
|
||||||
<el-tab-pane label="申请信息" style="height:700px;overflow-y:auto;overflow-x:hidden;">
|
<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>
|
<CCCform :action="action" @handleCommit="save" :certapp="certapp" v-if="kind=='CCC'"></CCCform>
|
||||||
|
<QMSform :action="action" @handleCommit="save" :certapp="certapp" v-if="kind=='QMS'"></QMSform>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="产品单元" style="height:700px;overflow-y:auto;overflow-x:hidden;" v-if="certapp">
|
<el-tab-pane label="产品单元" style="height:700px;overflow-y:auto;overflow-x:hidden;" v-if="certapp">
|
||||||
|
|
||||||
|
@ -23,9 +24,9 @@
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import CCCform from "@/views/certapp/cccform"
|
import CCCform from "@/views/certapp/cccform"
|
||||||
|
import QMSform from "@/views/certapp/qmsform"
|
||||||
export default {
|
export default {
|
||||||
components: { CCCform },
|
components: { CCCform,QMSform },
|
||||||
props: [],
|
props: [],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -0,0 +1,386 @@
|
||||||
|
<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="认可情况">
|
||||||
|
<el-input v-model="formData.is_approve"></el-input>
|
||||||
|
</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="依据的体系标准">
|
||||||
|
<el-input v-model="formData.system_standard"></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-col :xs="24" :md="8">
|
||||||
|
<el-form-item label="专业代码">
|
||||||
|
<el-input v-model="formData.professional_code"></el-input>
|
||||||
|
</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: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
watch: {
|
||||||
|
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
if(this.action!='create'){
|
||||||
|
this.formData.id = this.certapp
|
||||||
|
this.getCertapp_()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {},
|
||||||
|
methods: {
|
||||||
|
handleChange(val) {
|
||||||
|
console.log(val);
|
||||||
|
},
|
||||||
|
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>
|
|
@ -77,6 +77,7 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getTrainList,deleteTrain,createTrain } from "@/api/train"
|
import { getTrainList,deleteTrain,createTrain } from "@/api/train"
|
||||||
import { getDictList } from "@/api/dict"
|
import { getDictList } from "@/api/dict"
|
||||||
|
|
|
@ -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='依据的体系标准'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -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='风险系数'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -50,6 +50,11 @@ class CertApp(CommonBModel):
|
||||||
('ODM', 'ODM'),
|
('ODM', 'ODM'),
|
||||||
('OEM', 'OEM')
|
('OEM', 'OEM')
|
||||||
)
|
)
|
||||||
|
risk_choices = (
|
||||||
|
('高', '高'),
|
||||||
|
('中', '中'),
|
||||||
|
('低', '低')
|
||||||
|
)
|
||||||
cert_field = models.ForeignKey(Dict, verbose_name='认证领域', related_name='certapp_cert_field', on_delete=models.DO_NOTHING)
|
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)
|
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)
|
cnas_scopes = models.ManyToManyField(Dict, verbose_name='涉及cnas分类', related_name='certapp_cnas_sopes', blank=True)
|
||||||
|
@ -60,7 +65,17 @@ class CertApp(CommonBModel):
|
||||||
manufacture_v = JSONField(verbose_name='制造商', null=True)
|
manufacture_v = JSONField(verbose_name='制造商', null=True)
|
||||||
factory = models.ForeignKey(Enterprise, on_delete=models.CASCADE, related_name='certapp_factory', null=True, blank=True)
|
factory = models.ForeignKey(Enterprise, on_delete=models.CASCADE, related_name='certapp_factory', null=True, blank=True)
|
||||||
factory_v = JSONField(verbose_name='生产厂', null=True)
|
factory_v = JSONField(verbose_name='生产厂', null=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.ForeignKey(Enterprise, on_delete=models.CASCADE, related_name='certappk_factory', null=True, blank=True)
|
||||||
|
certification = models.CharField('认证范围', max_length = 1000, null=True, blank=True)
|
||||||
|
risk = models.CharField('风险系数', choices=risk_choices, max_length=50, null=True, blank=True)
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = '认证受理'
|
verbose_name = '认证受理'
|
||||||
verbose_name_plural = verbose_name
|
verbose_name_plural = verbose_name
|
||||||
|
|
|
@ -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,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
|
@ -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',
|
||||||
|
),
|
||||||
|
]
|
|
@ -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',
|
||||||
|
),
|
||||||
|
]
|
|
@ -2,7 +2,6 @@ import re
|
||||||
|
|
||||||
from django_celery_beat.models import PeriodicTask
|
from django_celery_beat.models import PeriodicTask
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from .models import (Dict, DictType, File, Organization, Permission, Position,
|
from .models import (Dict, DictType, File, Organization, Permission, Position,
|
||||||
Role, User)
|
Role, User)
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ router.register('position', PositionViewSet, basename="position")
|
||||||
router.register('dicttype', DictTypeViewSet, basename="dicttype")
|
router.register('dicttype', DictTypeViewSet, basename="dicttype")
|
||||||
router.register('dict', DictViewSet, basename="dict")
|
router.register('dict', DictViewSet, basename="dict")
|
||||||
router.register('task', TaskViewSet, basename="task")
|
router.register('task', TaskViewSet, basename="task")
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', include(router.urls)),
|
path('', include(router.urls)),
|
||||||
path('test/', TestView.as_view())
|
path('test/', TestView.as_view())
|
||||||
|
|
Loading…
Reference in New Issue