From e576000267d6e8a62ff72ee4f4dd0dbb3617b491 Mon Sep 17 00:00:00 2001 From: clay <20932067@zju.edu.cn> Date: Fri, 19 Jul 2024 14:51:07 +0800 Subject: [PATCH 01/10] =?UTF-8?q?feat=20:=20=E7=A7=91=E5=88=9B=E9=83=A8?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E8=B7=B3=E8=BF=87=E5=AE=A1=E6=89=B9=E8=8A=82?= =?UTF-8?q?=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/workflow/process-user.js | 20 +++++-- .../system/organizationalStructure/index.vue | 59 +++++++++++-------- 2 files changed, 50 insertions(+), 29 deletions(-) diff --git a/src/api/workflow/process-user.js b/src/api/workflow/process-user.js index 71604be..7907033 100644 --- a/src/api/workflow/process-user.js +++ b/src/api/workflow/process-user.js @@ -1,10 +1,10 @@ import request from '@/utils/request.js' //根据角色或者部门获取到对应的数据 -export function getUserTree(type,chooseId){ +export function getUserTree(type, chooseId) { return request({ - url:`/admin/user/choose/${type}/${chooseId}`, - method:'get' + url: `/admin/user/choose/${type}/${chooseId}`, + method: 'get' }) } @@ -15,6 +15,7 @@ export function getRole() { method: 'get' }) } + //获取采取树形控件的部门option export function getDepartmentTree() { return request({ @@ -22,11 +23,12 @@ export function getDepartmentTree() { method: 'get' }) } + export function getMosrUser(params) { return request({ url: '/admin/mosr/user/choose', method: 'get', - params:params + params: params }) } @@ -34,6 +36,14 @@ export function getOrganizationStructure(params) { return request({ url: '/admin/organizational/structure/choose', method: 'get', - params:params + params: params + }) +} + +export function getOrganizationStructureTree(params) { + return request({ + url: '/admin/organizational/structure/tree', + method: 'get', + params: params }) } diff --git a/src/views/system/organizationalStructure/index.vue b/src/views/system/organizationalStructure/index.vue index f69b554..73cabc1 100644 --- a/src/views/system/organizationalStructure/index.vue +++ b/src/views/system/organizationalStructure/index.vue @@ -4,7 +4,7 @@
- - - - - diff --git a/src/views/project-management/phaseDetailMoblie/index.vue b/src/views/project-management/phaseDetailMoblie/index.vue index 724d4ee..3ba0c77 100644 --- a/src/views/project-management/phaseDetailMoblie/index.vue +++ b/src/views/project-management/phaseDetailMoblie/index.vue @@ -17,8 +17,8 @@ import {useProcessStore} from '@/stores/processStore.js'; import {getPhaseDetail} from "@/api/project-manage"; import {computed, ref} from "vue"; import {getBaseInfoApi} from "@/components/steps/api"; -import ApprovalDetailMoblie from './ApprovalDetailMoblie.vue' -import OpinionMoblie from "../mobledetail/OpinionMoblie.vue"; +import ApprovalDetailMoblie from '../mobledetail/ApprovalDetailMoblie.vue' +import OpinionMoblie from '@/views/project-management/mobledetail/OpinionMoblie.vue' const route = useRoute() const summaryData = ref({}) diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index 84f417d..1b055f4 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -46,7 +46,7 @@ const shortcuts = [ const searchConfig = ref([ { - label: '子公司名称', + label: '公司名称', prop: 'subCompanyId', component: 'el-tree-select', props: { diff --git a/src/views/system/user/add.vue b/src/views/system/user/add.vue index a545133..6825f82 100644 --- a/src/views/system/user/add.vue +++ b/src/views/system/user/add.vue @@ -36,7 +36,7 @@ const localData = reactive({ const schame = computed(()=>{ let arr = [ { - label: '子公司', + label: '公司', prop: 'subCompanyId', component: 'el-tree-select', props: { diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index d12a2ab..41e4949 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -17,7 +17,7 @@ const router = useRouter() const searchConfig = ref([ { - label: '子公司名称', + label: '公司名称', prop: 'subCompanyId', component: 'el-tree-select', props: { @@ -101,7 +101,7 @@ const tableConfig = reactive({ }, { prop: 'subCompanyName', - label: '子公司名称', + label: '公司名称', align: 'center', }, { From b9de0118716ae673d8b7dc1ae640e3e305375ad1 Mon Sep 17 00:00:00 2001 From: odjbin <1042039504@qq.com> Date: Wed, 24 Jul 2024 19:42:20 +0800 Subject: [PATCH 08/10] =?UTF-8?q?feat=20:=20=E5=89=8D=E7=BD=AE=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DetailComponent/SpecialFundDetail.vue | 23 +++ .../DetailComponent/SummaryDetail.vue | 29 +-- src/components/SelectPreProcess.vue | 165 ++++++++++++++++++ src/views/special-fund/add.vue | 22 +++ 4 files changed, 226 insertions(+), 13 deletions(-) create mode 100644 src/components/SelectPreProcess.vue diff --git a/src/components/DetailComponent/SpecialFundDetail.vue b/src/components/DetailComponent/SpecialFundDetail.vue index 549549b..71e670e 100644 --- a/src/components/DetailComponent/SpecialFundDetail.vue +++ b/src/components/DetailComponent/SpecialFundDetail.vue @@ -84,6 +84,8 @@ +
@@ -132,6 +134,7 @@ const projectTable = reactive({ prop: 'projectName', label: '项目名称', align: 'center', + width: 400 }, { prop: 'specialFundAmount', @@ -171,6 +174,9 @@ const fileTable = reactive({ prop: 'originalFileName', label: '文件名', align: 'center', + width: 400, + showOverflowTooltip: false, + currentRender: ({row, index}) => (
clickToPreview(row)}>{row.originalFileName}
) }, { prop: 'tag', @@ -195,6 +201,23 @@ const fileTable = reactive({ } ] }) +const filePreviewParam = ref({ + fileUrl: '', + fileName: '', + fileType: 'pdf' +}) +const filePreviewShow = ref(false) +const clickToPreview=(row)=>{ + filePreviewShow.value = false + filePreviewParam.value = { + fileUrl: row.url, + fileName: row.originalFileName, + fileType: row.fileType + } + nextTick(()=>{ + filePreviewShow.value = true + }) +} const handleView=(row)=>{ router.push({ name: 'Implementation/detail', diff --git a/src/components/DetailComponent/SummaryDetail.vue b/src/components/DetailComponent/SummaryDetail.vue index 9358d2a..5ed0906 100644 --- a/src/components/DetailComponent/SummaryDetail.vue +++ b/src/components/DetailComponent/SummaryDetail.vue @@ -164,20 +164,20 @@ /> +
+ +
+
+ {{ item.requestName }} + +
+
+
-
- - 选择 - - - - - - - - -
+ { const params = { auditOpinion: _value.value, projectId: parseInt(route.query.projectId), + preProcess: JSON.stringify(localFormData.value.preProcess), state: true } - // console.log('params', params) + + console.log('params', params) const res = await approvePlan(params) ElNotification({ title: '提示', diff --git a/src/components/SelectPreProcess.vue b/src/components/SelectPreProcess.vue new file mode 100644 index 0000000..93cf6c1 --- /dev/null +++ b/src/components/SelectPreProcess.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/views/special-fund/add.vue b/src/views/special-fund/add.vue index 4ca5da7..07d9d2e 100644 --- a/src/views/special-fund/add.vue +++ b/src/views/special-fund/add.vue @@ -43,6 +43,8 @@ 重新提交 返回
+ @@ -84,6 +86,8 @@ const tableConfig = reactive({ prop: 'originalFileName', label: '文件名', align: 'center', + showOverflowTooltip: false, + currentRender: ({row, index}) => (
clickToPreview(row)}>{row.originalFileName}
) }, { prop: 'tag', @@ -120,6 +124,24 @@ const rules = reactive({ fundAmount: [{required: true, message: '请输入金额', trigger: 'blur'}], introduce: [{required: true, message: '请输入介绍', trigger: 'blur'}], }) + +const filePreviewParam = ref({ + fileUrl: '', + fileName: '', + fileType: 'pdf' +}) +const filePreviewShow = ref(false) +const clickToPreview=(row)=>{ + filePreviewShow.value = false + filePreviewParam.value = { + fileUrl: row.url, + fileName: row.originalFileName, + fileType: row.fileType + } + nextTick(()=>{ + filePreviewShow.value = true + }) +} const handleDownload = (row) => { downloadFile(row.fileId).then(res => { const blob = new Blob([res]) From 5664faccfef0e74f5964b8612c4c6df69fee06a8 Mon Sep 17 00:00:00 2001 From: odjbin <1042039504@qq.com> Date: Wed, 24 Jul 2024 20:05:29 +0800 Subject: [PATCH 09/10] =?UTF-8?q?fix=20:=20=E4=BF=AE=E5=A4=8D=E4=B8=93?= =?UTF-8?q?=E9=A1=B9=E8=B5=84=E9=87=91=E6=96=87=E4=BB=B6=E9=A2=84=E8=A7=88?= =?UTF-8?q?,=E4=BC=98=E5=8C=96=E4=B8=8A=E6=8A=A5=E5=89=8D=E7=BD=AE?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DetailComponent/SummaryDetail.vue | 2 +- src/components/SelectPreProcess.vue | 2 +- .../mobledetail/SpecialFundDetailMobile.vue | 23 ++++++++++++++++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/components/DetailComponent/SummaryDetail.vue b/src/components/DetailComponent/SummaryDetail.vue index 5ed0906..f712a38 100644 --- a/src/components/DetailComponent/SummaryDetail.vue +++ b/src/components/DetailComponent/SummaryDetail.vue @@ -166,7 +166,7 @@
-
+
{{ item.requestName }} -
+
{{ localFormData.preProcess && localFormData.preProcess.length > 0 ? '更改' : '请选择前置流程' diff --git a/src/views/project-management/mobledetail/SpecialFundDetailMobile.vue b/src/views/project-management/mobledetail/SpecialFundDetailMobile.vue index 093bd65..02c9371 100644 --- a/src/views/project-management/mobledetail/SpecialFundDetailMobile.vue +++ b/src/views/project-management/mobledetail/SpecialFundDetailMobile.vue @@ -87,6 +87,8 @@ +
@@ -162,7 +164,9 @@ const fileTable = reactive({ prop: 'originalFileName', label: '文件名', align: 'center', - width: 160, + width: 200, + showOverflowTooltip: false, + currentRender: ({row, index}) => (
clickToPreview(row)}>{row.originalFileName}
) }, { prop: 'tag', @@ -188,6 +192,23 @@ const fileTable = reactive({ } ] }) +const filePreviewParam = ref({ + fileUrl: '', + fileName: '', + fileType: 'pdf' +}) +const filePreviewShow = ref(false) +const clickToPreview=(row)=>{ + filePreviewShow.value = false + filePreviewParam.value = { + fileUrl: row.url, + fileName: row.originalFileName, + fileType: row.fileType + } + nextTick(()=>{ + filePreviewShow.value = true + }) +} const handleView=(row)=>{ router.push({ name: 'Implementation/detail', From fc0451ca32fe830d6654dbea6920f9477850c389 Mon Sep 17 00:00:00 2001 From: clay <20932067@zju.edu.cn> Date: Wed, 24 Jul 2024 21:21:36 +0800 Subject: [PATCH 10/10] =?UTF-8?q?feat=20:=20=E5=8A=A8=E6=80=81=E5=89=8D?= =?UTF-8?q?=E7=BD=AE=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DetailComponent/ApprovalDetail.vue | 115 ++++++++++-------- src/components/DetailComponent/Opinion.vue | 12 +- .../DetailComponent/ProjectApply.vue | 16 --- .../process/config/FormAuthorityConfig.vue | 2 +- 4 files changed, 76 insertions(+), 69 deletions(-) diff --git a/src/components/DetailComponent/ApprovalDetail.vue b/src/components/DetailComponent/ApprovalDetail.vue index 205e5e9..3d7c8db 100644 --- a/src/components/DetailComponent/ApprovalDetail.vue +++ b/src/components/DetailComponent/ApprovalDetail.vue @@ -63,7 +63,8 @@
-
@@ -184,7 +185,8 @@ const editSingleTableConfig = reactive({ label: '文件名', align: 'center', width: 400, - currentRender: ({row, index}) => (
clickToPreview(row)}>{row.originalFileName}
) + currentRender: ({row, index}) => ( +
clickToPreview(row)}>{row.originalFileName}
) }, { prop: 'tag', @@ -233,6 +235,24 @@ const editSingleTableConfig = reactive({ } ] }) +let preProcess = { + label: '前置流程', + prop: 'preProcess', + colProps: { + span: 24 + }, + labelWidth: 'left', + component: () => ( +
+ { + props.formData.preProcess ? props.formData.preProcess.map(item => { + return {item.requestName} + }) : {'--'} + } +
+ ) +} const schema = computed(() => { let arr if (props.type == 'approval') { @@ -271,7 +291,9 @@ const schema = computed(() => {
) }, - { + ] + if (props.preProcessShow == 'EDIT') { + preProcess = { label: '前置流程', prop: 'preProcess', colProps: { @@ -281,33 +303,32 @@ const schema = computed(() => { component: () => (
{ - props.formData.preProcess ? props.formData.preProcess.map(item => { - return {item.requestName} - }) : {'--'} + }
) + } + } + arr.push(preProcess) + arr.push({ + label: '项目立项附件', + prop: 'singleFile', + colProps: { + span: 24 }, - { - label: '项目立项附件', - prop: 'singleFile', - colProps: { - span: 24 - }, - labelWidth: 'left', - component: () => { - let singleFileArray = [props.formData.singleFile] - return - - } - }, - ] + labelWidth: 'left', + component: () => { + let singleFileArray = [props.formData.singleFile] + return + + } + }) } else if (props.type == 'execute') { - arr = [ - { + arr = [] + if (props.preProcessShow == 'EDIT') { + preProcess = { label: '前置流程', prop: 'preProcess', colProps: { @@ -317,30 +338,28 @@ const schema = computed(() => { component: () => (
{ - props.formData.preProcess ? props.formData.preProcess.map(item => { - return {item.requestName} - }) : {'--'} + }
) + } + } + arr.push(preProcess) + arr.push({ + label: '项目验收附件', + prop: 'singleFile', + colProps: { + span: 24 }, - { - label: '项目验收附件', - prop: 'singleFile', - colProps: { - span: 24 - }, - labelWidth: 'left', - component: () => { - let singleFileArray = [props.formData.singleFile] - return - - } - }, - ] + labelWidth: 'left', + component: () => { + let singleFileArray = [props.formData.singleFile] + return + + } + }) } else if (props.type == 'archivist') { arr = [ { @@ -384,7 +403,7 @@ const schema = computed(() => { const filePreviewParam = ref({ fileUrl: '', fileName: '', - fileType: 'pdf' + fileType: '' }) const filePreviewShow = ref(false) const route = useRoute() @@ -397,14 +416,14 @@ const _value = computed({ emit("update:value", val); } }) -const clickToPreview=(row)=>{ +const clickToPreview = (row) => { filePreviewShow.value = false filePreviewParam.value = { fileUrl: row.url, fileName: row.originalFileName, fileType: row.fileType } - nextTick(()=>{ + nextTick(() => { filePreviewShow.value = true }) } diff --git a/src/components/DetailComponent/Opinion.vue b/src/components/DetailComponent/Opinion.vue index 9b775e6..ca96e5d 100644 --- a/src/components/DetailComponent/Opinion.vue +++ b/src/components/DetailComponent/Opinion.vue @@ -141,8 +141,10 @@ const handleReject = async () => { message: res.msg, type: res.code === 1000 ? 'success' : 'error' }) - tagsViewStore.delVisitedViews(router.currentRoute.value.path) - back() + if (res.code === 1000){ + tagsViewStore.delVisitedViews(router.currentRoute.value.path) + back() + } } const handleAgree = async () => { @@ -158,8 +160,10 @@ const handleAgree = async () => { message: res.msg, type: res.code === 1000 ? 'success' : 'error' }) - tagsViewStore.delVisitedViews(router.currentRoute.value.path) - back() + if (res.code === 1000){ + tagsViewStore.delVisitedViews(router.currentRoute.value.path) + back() + } } diff --git a/src/components/DetailComponent/ProjectApply.vue b/src/components/DetailComponent/ProjectApply.vue index 03f2f25..e21d2f6 100644 --- a/src/components/DetailComponent/ProjectApply.vue +++ b/src/components/DetailComponent/ProjectApply.vue @@ -539,22 +539,6 @@ const getFileParam = (item) => { } } const handleSubmit = async () => { - if (deploymentData.value.deploymentName === '重大项目立项' || deploymentData.value.deploymentName === '重大项目验收') { - if (localFormData.value.preProcess == undefined) { - if (JSON.parse(localStorage.getItem('preProcess'))?.length > 0) { - - } else { - ElNotification({ - title: '提示', - message: '请选择前置流程!', - type: 'error' - }) - return; - } - - } - } - let files = [] if (props.mode === 'resubmit') { attachment.value.allFileList.forEach(item => { diff --git a/src/views/workflow/process/config/FormAuthorityConfig.vue b/src/views/workflow/process/config/FormAuthorityConfig.vue index a29044b..9115596 100644 --- a/src/views/workflow/process/config/FormAuthorityConfig.vue +++ b/src/views/workflow/process/config/FormAuthorityConfig.vue @@ -104,7 +104,7 @@ const formPermsLoadMosr = (oldPermMap, perms) => { id: perm.id, //todo ,id 就是字段名称 title: perm.title, required: perm.required, - perm: 'H' + perm: 'R' }); }