From f3eb3f2eadf474990dc703612544a9ac0d1ed3ca Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 14 Sep 2020 09:59:25 +0800 Subject: [PATCH] audit certapp --- client/src/api/audit.js | 17 + client/src/api/member.js | 8 + client/src/api/project.js | 11 +- client/src/router/index.js | 73 +- client/src/store/getters.js | 1 + client/src/store/modules/user.js | 7 +- client/src/styles/index.scss | 6 + client/src/views/audit/conclusion.vue | 24 + client/src/views/audit/fee.vue | 220 ++++++ client/src/views/audit/member.vue | 293 ++++++++ client/src/views/audit/task.vue | 259 +++++++ client/src/views/certapp/cccform.vue | 11 +- client/src/views/certapp/certapp.vue | 4 +- client/src/views/certapp/certappcreate.vue | 49 ++ client/src/views/certapp/certappform.vue | 79 -- client/src/views/certapp/certapphandle.vue | 89 +++ client/src/views/certapp/productunit.vue | 6 +- client/src/views/plan/handle.vue | 7 +- client/src/views/plan/paichai.vue | 2 +- client/src/views/plan/plan.vue | 285 +++++--- client/src/views/project/handle.vue | 690 ++++++++++++++++++ client/src/views/project/project.vue | 20 +- server/apps/audit/__init__.py | 0 server/apps/audit/admin.py | 3 + server/apps/audit/apps.py | 5 + server/apps/audit/migrations/__init__.py | 0 server/apps/audit/models.py | 17 + server/apps/audit/serializers.py | 61 ++ server/apps/audit/tests.py | 3 + server/apps/audit/urls.py | 11 + server/apps/audit/views.py | 49 ++ .../migrations/0004_member_is_accepted.py | 18 + .../migrations/0005_auto_20200910_1431.py | 50 ++ .../migrations/0006_auto_20200911_0944.py | 22 + .../migrations/0007_auto_20200911_0954.py | 23 + server/apps/plan/models.py | 15 +- server/apps/plan/views.py | 24 +- server/apps/project/filters.py | 2 +- .../migrations/0028_auto_20200903_1119.py | 26 + .../migrations/0029_auto_20200904_1553.py | 41 ++ server/apps/project/models.py | 21 +- server/apps/project/serializers.py | 3 +- server/apps/project/views.py | 43 +- server/apps/system/views.py | 6 + server/server/settings.py | 3 +- server/server/urls.py | 1 + 46 files changed, 2336 insertions(+), 272 deletions(-) create mode 100644 client/src/api/audit.js create mode 100644 client/src/views/audit/conclusion.vue create mode 100644 client/src/views/audit/fee.vue create mode 100644 client/src/views/audit/member.vue create mode 100644 client/src/views/audit/task.vue create mode 100644 client/src/views/certapp/certappcreate.vue delete mode 100644 client/src/views/certapp/certappform.vue create mode 100644 client/src/views/certapp/certapphandle.vue create mode 100644 client/src/views/project/handle.vue create mode 100644 server/apps/audit/__init__.py create mode 100644 server/apps/audit/admin.py create mode 100644 server/apps/audit/apps.py create mode 100644 server/apps/audit/migrations/__init__.py create mode 100644 server/apps/audit/models.py create mode 100644 server/apps/audit/serializers.py create mode 100644 server/apps/audit/tests.py create mode 100644 server/apps/audit/urls.py create mode 100644 server/apps/audit/views.py create mode 100644 server/apps/plan/migrations/0004_member_is_accepted.py create mode 100644 server/apps/plan/migrations/0005_auto_20200910_1431.py create mode 100644 server/apps/plan/migrations/0006_auto_20200911_0944.py create mode 100644 server/apps/plan/migrations/0007_auto_20200911_0954.py create mode 100644 server/apps/project/migrations/0028_auto_20200903_1119.py create mode 100644 server/apps/project/migrations/0029_auto_20200904_1553.py diff --git a/client/src/api/audit.js b/client/src/api/audit.js new file mode 100644 index 0000000..600c04e --- /dev/null +++ b/client/src/api/audit.js @@ -0,0 +1,17 @@ +import request from '@/utils/request' + +export function getAuditTaskList(query) { + return request({ + url: '/audit/mytask/', + method: 'get', + params: query + }) +} + +export function getAuditCertappList(query) { + return request({ + url: '/audit/myauditcertapp/', + method: 'get', + params: query + }) +} \ No newline at end of file diff --git a/client/src/api/member.js b/client/src/api/member.js index 108b63e..6ed5474 100644 --- a/client/src/api/member.js +++ b/client/src/api/member.js @@ -31,3 +31,11 @@ export function updateMember(id, data) { data }) } + +export function daysMember(id, data) { + return request({ + url: `/plan/member/${id}/days/`, + method: 'put', + data + }) +} diff --git a/client/src/api/project.js b/client/src/api/project.js index bdf1722..9fe4131 100644 --- a/client/src/api/project.js +++ b/client/src/api/project.js @@ -39,9 +39,16 @@ export function getProject(id) { }) } -export function assginProject(id, data) { +export function nextProject(id) { return request({ - url: `/project/project/${id}/assgin/`, + url: `/project/project/${id}/next/`, + method: 'put' + }) +} + +export function edateProject(id, data) { + return request({ + url: `/project/project/${id}/edate/`, method: 'put', data }) diff --git a/client/src/router/index.js b/client/src/router/index.js index b3d8f0f..39f48dc 100644 --- a/client/src/router/index.js +++ b/client/src/router/index.js @@ -100,10 +100,24 @@ export const asyncRoutes = [ hidden: true }, { - path: 'certapp/:action/:kind/', - name: 'CertappForm', - component: () => import('@/views/certapp/certappform'), - meta: { title: '申请受理单', icon: 'example', perms: ['certapp_create', 'certapp_update'] }, + path: 'certapp/create/:id/', + name: 'Certappcreate', + component: () => import('@/views/certapp/certappcreate'), + meta: { title: '申请受理单创建', icon: 'example', perms: ['certapp_create'] }, + hidden: true + }, + { + path: 'certapp/:id/update/', + name: 'Certappupdate', + component: () => import('@/views/certapp/certapphandle'), + meta: { title: '申请受理单修改', icon: 'example', perms: ['certapp_update'] }, + hidden: true + }, + { + path: 'certapp/:id/detail/', + name: 'Certappdetail', + component: () => import('@/views/certapp/certapphandle'), + meta: { title: '业务详情', icon: 'example', perms: ['certapp_detail'] }, hidden: true }, ] @@ -119,7 +133,7 @@ export const asyncRoutes = [ path: 'plan', name: 'Plan', component: () => import('@/views/plan/plan'), - meta: { title: '计划', icon: 'example', perms: ['plan_view'] } + meta: { title: '策划', icon: 'example', perms: ['plan_view'] } }, { path: 'paichai', @@ -128,26 +142,53 @@ export const asyncRoutes = [ meta: { title: '派差', icon: 'example', perms: ['plan_view'] } }, { - path: 'project', - name: 'HandleProject', - component: () => import('@/views/plan/handle'), - meta: { title: '联系企业', icon: 'example', perms: ['project_view'] }, + path: 'project/:id/', + name: 'PlanProject', + component: () => import('@/views/project/handle'), + meta: { title: '项目', icon: 'example', perms: ['project_view'] }, + hidden: true + }, + { + path: 'certapp/:id/:action/', + name: 'Certappmember', + component: () => import('@/views/certapp/certapphandle'), + meta: { title: '派人', icon: 'example', perms: ['plan_view'] }, hidden: true }, ] }, { - path: '/spot', + path: '/audit', component: Layout, - redirect: '/spot/spot', - name: 'SpotM', + redirect: '/audit/task', + name: 'Audit', meta: { title: '现场审核', icon: 'example'}, children: [ { - path: 'spot', - name: 'Spot', - component: () => import('@/views/plan/plan'), - meta: { title: '现场审核', icon: 'example', perms: ['plan_view'] } + path: 'task', + name: 'AuditTask', + component: () => import('@/views/audit/task'), + meta: { title: '我的任务', icon: 'example', perms: ['audittask_view'] } + }, + { + path: 'fee', + name: 'Fee', + component: () => import('@/views/audit/fee'), + meta: { title: '劳务费', icon: 'example', perms: ['taskfee_view'] } + }, + { + path: 'project/:id/', + name: 'AuditProject', + component: () => import('@/views/project/handle'), + meta: { title: '项目', icon: 'example', perms: ['project_view'] }, + hidden: true + }, + { + path: 'certapp/:id/:action/', + name: 'Certappfeedback', + component: () => import('@/views/certapp/certapphandle'), + meta: { title: '业务审核反馈', icon: 'example', perms: ['certapp_feedback'] }, + hidden: true }, ] }, diff --git a/client/src/store/getters.js b/client/src/store/getters.js index 1854b88..6fb48b8 100644 --- a/client/src/store/getters.js +++ b/client/src/store/getters.js @@ -4,6 +4,7 @@ const getters = { token: state => state.user.token, avatar: state => state.user.avatar, name: state => state.user.name, + username: state => state.user.username, perms: state => state.user.perms, permission_routes: state => state.permission.routes } diff --git a/client/src/store/modules/user.js b/client/src/store/modules/user.js index d75d478..51af0ca 100644 --- a/client/src/store/modules/user.js +++ b/client/src/store/modules/user.js @@ -5,6 +5,7 @@ import { resetRouter } from '@/router' const getDefaultState = () => { return { token: getToken(), + username: '', name: '', avatar: '', perms: [] @@ -23,6 +24,9 @@ const mutations = { SET_NAME: (state, name) => { state.name = name }, + SET_USERNAME: (state, username) => { + state.username = username + }, SET_AVATAR: (state, avatar) => { state.avatar = avatar }, @@ -57,7 +61,7 @@ const actions = { reject('验证失败,重新登陆.') } - const { perms, name, avatar } = data + const { perms, name, avatar, username } = data // perms must be a non-empty array if (!perms || perms.length <= 0) { @@ -66,6 +70,7 @@ const actions = { commit('SET_PERMS', perms) commit('SET_NAME', name) + commit('SET_USERNAME', username) commit('SET_AVATAR', avatar) resolve(data) }).catch(error => { diff --git a/client/src/styles/index.scss b/client/src/styles/index.scss index 0662b49..f6533a1 100644 --- a/client/src/styles/index.scss +++ b/client/src/styles/index.scss @@ -85,4 +85,10 @@ div:focus { } .el-dialog__body { padding: 8px 12px; +} +// .el-form-item--medium .el-form-item__label { +// line-height: 16px; +// } +.el-form--label-top .el-form-item__label { + line-height: 16px; } \ No newline at end of file diff --git a/client/src/views/audit/conclusion.vue b/client/src/views/audit/conclusion.vue new file mode 100644 index 0000000..41aaa70 --- /dev/null +++ b/client/src/views/audit/conclusion.vue @@ -0,0 +1,24 @@ + + diff --git a/client/src/views/audit/fee.vue b/client/src/views/audit/fee.vue new file mode 100644 index 0000000..16d3e25 --- /dev/null +++ b/client/src/views/audit/fee.vue @@ -0,0 +1,220 @@ + + diff --git a/client/src/views/audit/member.vue b/client/src/views/audit/member.vue new file mode 100644 index 0000000..71ddea9 --- /dev/null +++ b/client/src/views/audit/member.vue @@ -0,0 +1,293 @@ + + \ No newline at end of file diff --git a/client/src/views/audit/task.vue b/client/src/views/audit/task.vue new file mode 100644 index 0000000..0bce9c8 --- /dev/null +++ b/client/src/views/audit/task.vue @@ -0,0 +1,259 @@ + + diff --git a/client/src/views/certapp/cccform.vue b/client/src/views/certapp/cccform.vue index 185be40..1b3dd51 100644 --- a/client/src/views/certapp/cccform.vue +++ b/client/src/views/certapp/cccform.vue @@ -269,10 +269,9 @@ export default { name: "CCCform", inheritAttrs: false, components: { Enterprisechose, Treeselect }, - props: ["action", "certapp"], + props: ["certapp"], data() { return { - // act:this.action, formData: { field_code: 'CCC', applicant: null, @@ -372,10 +371,10 @@ export default { }, created() { - console.log(this.certapp) - if(this.action!='create'){ - this.formData = this.certapp + if(this.certapp!=null){ +this.formData = this.certapp } + this.getCCCOptions(); this.getlevelOptions(); @@ -397,7 +396,7 @@ export default { }else{ createCertapp(this.formData).then((res) => { this.$message.success('成功') - this.$router.replace({name:"CertappForm", params:{action:'update', kind:'CCC'}, query:{id:res.data.id}}) + this.$router.replace({name:"Certappupdate", params:{id:res.data.id}}) }); } diff --git a/client/src/views/certapp/certapp.vue b/client/src/views/certapp/certapp.vue index 57228cb..b80d1d2 100644 --- a/client/src/views/certapp/certapp.vue +++ b/client/src/views/certapp/certapp.vue @@ -184,10 +184,10 @@ export default { this.getList() }, handleCreate(item, index) { - this.$router.push({name:"CertappForm", params:{kind:item.code, action:'create'}}) + this.$router.push({name:"Certappcreate", params:{kind:item.code}}) }, handleUpdate(scope) { - this.$router.push({name:"CertappForm", params:{action:'update', kind:scope.row.cert_field_.code}, query:{id:scope.row.id}}) + this.$router.push({name:"Certappupdate", params:{ id:scope.row.id}}) }, handleDelete(scope) { deleteCertapp(scope.row.id).then(res=>{ diff --git a/client/src/views/certapp/certappcreate.vue b/client/src/views/certapp/certappcreate.vue new file mode 100644 index 0000000..f250f0b --- /dev/null +++ b/client/src/views/certapp/certappcreate.vue @@ -0,0 +1,49 @@ + + diff --git a/client/src/views/certapp/certappform.vue b/client/src/views/certapp/certappform.vue deleted file mode 100644 index 0d088a5..0000000 --- a/client/src/views/certapp/certappform.vue +++ /dev/null @@ -1,79 +0,0 @@ - - diff --git a/client/src/views/certapp/certapphandle.vue b/client/src/views/certapp/certapphandle.vue new file mode 100644 index 0000000..2318858 --- /dev/null +++ b/client/src/views/certapp/certapphandle.vue @@ -0,0 +1,89 @@ + + diff --git a/client/src/views/certapp/productunit.vue b/client/src/views/certapp/productunit.vue index c5e8d96..4014b09 100644 --- a/client/src/views/certapp/productunit.vue +++ b/client/src/views/certapp/productunit.vue @@ -3,7 +3,7 @@ { + this.$refs["elForm2"].validate((valid) => { + if (!valid) return; + // TODO 提交表单 + createMember(this.formDataMember).then(res=>{ this.$message.success('成功') this.getMemberList_() }) + }); + }, updateNowM(){ if(this.formDataMember.id){ diff --git a/client/src/views/plan/paichai.vue b/client/src/views/plan/paichai.vue index f8cb32d..16d3e25 100644 --- a/client/src/views/plan/paichai.vue +++ b/client/src/views/plan/paichai.vue @@ -170,7 +170,7 @@ export default { listQuery_project: { page: 1, page_size: 20, - status:"待派差" + status:"待策划" }, projectData: { count: 0, results: [] }, }; diff --git a/client/src/views/plan/plan.vue b/client/src/views/plan/plan.vue index 0fb054d..b328887 100644 --- a/client/src/views/plan/plan.vue +++ b/client/src/views/plan/plan.vue @@ -6,9 +6,8 @@
月计划 (当前选择: - - {{nowPlan.name}} - ) + {{nowPlan.name}} + )
@@ -62,7 +61,7 @@
- 待处理项目 + 待策划项目
@@ -98,27 +97,22 @@ - - - - - + + - +
月计划项目 + (当前选择: + {{nowPlan.name}} + )
- - + + - + diff --git a/client/src/views/project/handle.vue b/client/src/views/project/handle.vue new file mode 100644 index 0000000..a6e3fdd --- /dev/null +++ b/client/src/views/project/handle.vue @@ -0,0 +1,690 @@ + + + \ No newline at end of file diff --git a/client/src/views/project/project.vue b/client/src/views/project/project.vue index 22df5f8..761c364 100644 --- a/client/src/views/project/project.vue +++ b/client/src/views/project/project.vue @@ -44,12 +44,12 @@