diff --git a/package.json b/package.json index cae7f0f..b193f9e 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "@tinymce/tinymce-vue": "^4.0.7", "axios": "^1.4.0", "d3": "^7.8.5", + "docx-preview": "^0.3.2", "echarts": "^5.4.2", "element-plus": "^2.6.0", "file-saver": "^2.0.5", @@ -31,6 +32,7 @@ "vue-codemirror": "^6.1.1", "vue-json-viewer": "^3.0.4", "vue-router": "^4.1.6", + "vue3-pdf-app": "^1.0.3", "vuedraggable": "^4.1.0", "xlsx": "^0.18.5", "xlsx-style-vite": "^0.0.2" diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index 47666a8..985579c 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -60,7 +60,7 @@ html, body, #app, .el-container, .el-aside, .el-main { top: 0; bottom: 0; left: 0; - z-index: 1001; + //z-index: 1001; } .el-dialog { @@ -374,6 +374,9 @@ html, body, #app, .el-container, .el-aside, .el-main { left: 200px; } +//.el-overlay-dialog { +// left: 200px !important; +//} //放大缩小按钮上外边距 .scale { margin-top: 10px; @@ -382,12 +385,10 @@ html, body, #app, .el-container, .el-aside, .el-main { //top: -20px; } -.el-overlay-dialog { - left: 200px !important; -} .el-overlay-dialog::-webkit-scrollbar, .scrollbar-dict::-webkit-scrollbar { width: 6px; + height: 6px; } // 滚动条轨道 diff --git a/src/components/AttachmentUpload.vue b/src/components/AttachmentUpload.vue index be06345..0f22d01 100644 --- a/src/components/AttachmentUpload.vue +++ b/src/components/AttachmentUpload.vue @@ -6,13 +6,14 @@ diff --git a/src/components/DetailComponent/ProjectApply.vue b/src/components/DetailComponent/ProjectApply.vue index 8241058..e21d2f6 100644 --- a/src/components/DetailComponent/ProjectApply.vue +++ b/src/components/DetailComponent/ProjectApply.vue @@ -59,7 +59,7 @@ v-model:value="projectPersonUserList" @ok="projectPersonUserPickerOk"/> - + {{ @@ -198,6 +198,7 @@ const tableConfig = reactive({ prop: 'originalFileName', label: '文件名', align: 'center', + // currentRender: ({row, index}) => (
clickToPreview(row)}>{row.originalFileName}
) }, { prop: 'tag', @@ -250,6 +251,10 @@ const props = defineProps({ step: { type: String, default: "20" + }, + preProcessShow: { + type: String, + default: "READ" } }) const preProcessList = ref([]) @@ -296,44 +301,8 @@ const selectRows = ref([]) const projectId = ref(route.query.projectId) const sessionParams = ref({}) -if (localStorage.getItem('preProcess')) { - let param = JSON.parse(localStorage.getItem('preProcess')) - localFormData.value.preProcess = param - sessionParams.value.preProcess = param - localStorage.setItem('preProcess', JSON.stringify(param)) -} -if (localStorage.getItem('singleFile')) { - let param = JSON.parse(localStorage.getItem('singleFile')) - localFormData.value.singleFile = param - singleList.value = [param] - localStorage.setItem('singleFile', JSON.stringify(param)) - showSingleTable.value = false - nextTick(() => { - showSingleTable.value = true - }) -} -if (localStorage.getItem('otherFileList')) { - let param = JSON.parse(localStorage.getItem('otherFileList')) - localFormData.value.otherFileList = param - otherFileList.value = param - localStorage.setItem('otherFileList', JSON.stringify(param)) - showTable.value = false - nextTick(() => { - showTable.value = true - }) -} -if (localStorage.getItem('projectChargePersonUserList')) { - let param = JSON.parse(localStorage.getItem('projectChargePersonUserList')) - projectChargePersonUserList.value = param - localStorage.setItem('projectChargePersonUserList', JSON.stringify(param)) -} -if (localStorage.getItem('projectPersonUserList')) { - let param = JSON.parse(localStorage.getItem('projectPersonUserList')) - projectPersonUserList.value = param - localProjectPerson.value = param - localStorage.setItem('projectPersonUserList', JSON.stringify(param)) -} + const getProjectPerson = (list) => { if (!list || list && list.length === 0) { if (localStorage.getItem('projectPersonUserList')) { @@ -527,7 +496,7 @@ const compositeParam = (item) => { } } const getAttachment = (val) => { - // console.log('上传文件getAttachment', val) + console.log('上传文件getAttachment', val) showSingleTable.value = false localFormData.value.singleFile = compositeParam(val) singleList.value.push(compositeParam(val)) @@ -570,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 => { @@ -734,16 +687,46 @@ watchEffect(() => { if (props.formData.projectChargePerson != null) { localFormData.value.projectChargePerson = props.formData.projectChargePerson.id } - // if(props.formData.fileList&&props.formData.fileList.length>0){ - // otherFileList.value=props.formData.fileList - // } - // localFormData.value.projectPersonIds = [] - // if (projectPersonUserList.value){ - // projectPersonUserList.value.forEach(item => { - // localFormData.value.projectPersonIds.push(item.id) - // }) - // } - // console.log('projectPersonUserList.value',projectPersonUserList.value) + + if (localStorage.getItem('preProcess')) { + let param = JSON.parse(localStorage.getItem('preProcess')) + localFormData.value.preProcess = param + sessionParams.value.preProcess = param + localStorage.setItem('preProcess', JSON.stringify(param)) + } + if (localStorage.getItem('singleFile')) { + let param = JSON.parse(localStorage.getItem('singleFile')) + localFormData.value.singleFile = param + singleList.value = [param] + localStorage.setItem('singleFile', JSON.stringify(param)) + showSingleTable.value = false + nextTick(() => { + showSingleTable.value = true + }) + } + if (localStorage.getItem('otherFileList')) { + let param = JSON.parse(localStorage.getItem('otherFileList')) + localFormData.value.otherFileList = param + otherFileList.value = param + localStorage.setItem('otherFileList', JSON.stringify(param)) + showTable.value = false + nextTick(() => { + showTable.value = true + }) + } + + if (localStorage.getItem('projectChargePersonUserList')) { + let param = JSON.parse(localStorage.getItem('projectChargePersonUserList')) + projectChargePersonUserList.value = param + localStorage.setItem('projectChargePersonUserList', JSON.stringify(param)) + } + if (localStorage.getItem('projectPersonUserList')) { + let param = JSON.parse(localStorage.getItem('projectPersonUserList')) + projectPersonUserList.value = param + localProjectPerson.value = param + localStorage.setItem('projectPersonUserList', JSON.stringify(param)) + } + return flag }) onActivated(() => { 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 47a0340..f712a38 100644 --- a/src/components/DetailComponent/SummaryDetail.vue +++ b/src/components/DetailComponent/SummaryDetail.vue @@ -33,11 +33,11 @@ {{ filterDict(cacheStore.getDict('invest_type'), localFormData.investmentType) }}
- - - - - + + + + + {{ filterDict(cacheStore.getDict('business_segment'), localFormData.businessSegment) }} @@ -62,7 +62,7 @@ }} - + {{ localFormData.specialFundId === 0 ? localFormData.specialFund : changeName(fundOption, localFormData.specialFundId) @@ -135,14 +135,14 @@ - - - - - - + v-model:value="localFormData.singleFile" :processViewer="processViewer" + :file-list-show="fileListShow"/> + + + + + + @@ -153,7 +153,31 @@ :file-list-show="fileListShow"/> -
+
+ + + + +
+
+ + +
+
+ + { return } const params = { - auditOpinion:_value.value, - projectId:parseInt(route.query.projectId), - state:false + auditOpinion: _value.value, + projectId: parseInt(route.query.projectId), + state: false } // console.log('params', params) const res = await approvePlan(params) @@ -285,11 +310,13 @@ const handleRejectPlan = async () => { } const handleAgreePlan = async () => { const params = { - auditOpinion:_value.value, - projectId:parseInt(route.query.projectId), - state:true + 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: '提示', @@ -359,7 +386,7 @@ watch(() => props.loading, (newVal) => { }, {deep: true}) watchEffect(() => { - props.formData.singleFile=[props.formData.singleFile] + props.formData.singleFile = [props.formData.singleFile] return Object.keys(props.formData).length && (localFormData.value = props.formData) }) @@ -370,6 +397,6 @@ getFundOptions() .detail-block { overflow-x: hidden; overflow-y: auto; - padding-bottom: 0!important; + padding-bottom: 0 !important; } diff --git a/src/components/DetailComponent/singleFileComponent.vue b/src/components/DetailComponent/singleFileComponent.vue index 85697ee..ce2d644 100644 --- a/src/components/DetailComponent/singleFileComponent.vue +++ b/src/components/DetailComponent/singleFileComponent.vue @@ -10,6 +10,8 @@ + + + diff --git a/src/components/filePreview/DocxPreview.vue b/src/components/filePreview/DocxPreview.vue new file mode 100644 index 0000000..19b5393 --- /dev/null +++ b/src/components/filePreview/DocxPreview.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/src/components/filePreview/ImagePreview.vue b/src/components/filePreview/ImagePreview.vue new file mode 100644 index 0000000..62e7db5 --- /dev/null +++ b/src/components/filePreview/ImagePreview.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/src/components/filePreview/PdfPreview.vue b/src/components/filePreview/PdfPreview.vue new file mode 100644 index 0000000..8858b87 --- /dev/null +++ b/src/components/filePreview/PdfPreview.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/src/components/filePreview/index.vue b/src/components/filePreview/index.vue new file mode 100644 index 0000000..09ed3fe --- /dev/null +++ b/src/components/filePreview/index.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/src/views/project-demand/requirement/add.vue b/src/views/project-demand/requirement/add.vue index 4f4d09c..6abddfa 100644 --- a/src/views/project-demand/requirement/add.vue +++ b/src/views/project-demand/requirement/add.vue @@ -110,6 +110,8 @@ +
@@ -134,7 +136,12 @@ import {getFundOption} from "@/api/special-fund"; import CompanyPicker from "@/components/DetailComponent/CompanyPicker.vue"; import {useCacheStore} from '@/stores/cache.js' - +const filePreviewParam = ref({ + fileUrl: '', + fileName: '', + fileType: 'pdf' +}) +const filePreviewShow = ref(false) const cacheStore = useCacheStore() const companyRef = ref() const showExpendText = ref('') @@ -190,6 +197,9 @@ const tableConfig = reactive({ prop: 'originalFileName', label: '文件名', align: 'center', + showOverflowTooltip: false, + currentRender: ({row, index}) => ( +
clickToPreview(row)}>{row.originalFileName}
) }, { prop: 'tag', @@ -220,6 +230,18 @@ const tableConfig = reactive({ } ] }) +const clickToPreview = (row) => { + filePreviewShow.value = false + filePreviewParam.value = { + fileUrl: row.url, + fileName: row.originalFileName, + fileType: row.fileType + } + nextTick(()=>{ + filePreviewShow.value = true + }) + // filePreviewRef.value.show() +} const disabledDate = (time) => { return time.getTime() < Date.now() - 8.64e7//不能选择之后的数据 } diff --git a/src/views/project-demand/requirement/moblieDetail/CollectionDetailMoblie.vue b/src/views/project-demand/requirement/moblieDetail/CollectionDetailMoblie.vue deleted file mode 100644 index 2f68bef..0000000 --- a/src/views/project-demand/requirement/moblieDetail/CollectionDetailMoblie.vue +++ /dev/null @@ -1,193 +0,0 @@ - - - - - diff --git a/src/views/project-demand/requirement/moblieDetail/index.vue b/src/views/project-demand/requirement/moblieDetail/index.vue index dc4e1f5..2a3e45f 100644 --- a/src/views/project-demand/requirement/moblieDetail/index.vue +++ b/src/views/project-demand/requirement/moblieDetail/index.vue @@ -16,7 +16,7 @@ import {useTagsView} from '@/stores/tagsview.js' import {getFundOption} from "@/api/special-fund"; import {getSubCompOpt} from "@/api/user/user"; import {matterTree} from "@/utils/matterTree"; -import CollectionDetailMoblie from './CollectionDetailMoblie.vue' +import CollectionDetailMoblie from '@/views/project-management/mobledetail/CollectionDetailMoblie.vue' import OpinionMoblie from '@/views/project-management/mobledetail/OpinionMoblie.vue' const tagsViewStore = useTagsView() diff --git a/src/views/project-management/implementation/detail.vue b/src/views/project-management/implementation/detail.vue index 1e5965e..ce570b1 100644 --- a/src/views/project-management/implementation/detail.vue +++ b/src/views/project-management/implementation/detail.vue @@ -21,6 +21,7 @@ :data="detailData" :processViewer="commonProvessViewer" :fileListShow="fileListShow" + :preProcessShow="preProcessShow" v-model:value="auditOpinion"/> @@ -64,6 +68,7 @@ const applyTitle = ref('filing') const loading = ref(false) const processStore = useProcessStore() const fileListShow = ref('READ') +const preProcessShow = ref('READ') const mode = ref('') const currentStep = ref() const auditOpinion = ref('') @@ -89,6 +94,7 @@ const getAllInfo = async (state) => { try { detailShow.value = false fileListShow.value = 'READ' + preProcessShow.value = 'READ' commonProvessViewer.value = false const {data, code, msg} = await getMapProjectStateInfo(route.query.projectId, state) if (code === 1000) { @@ -108,6 +114,9 @@ const getAllInfo = async (state) => { if (data.formPermMap && data.formPermMap["fileList"]) { fileListShow.value = data.formPermMap["fileList"].perm } + if (data.formPermMap && data.formPermMap["preProcess"]) { + preProcessShow.value = data.formPermMap["preProcess"].perm + } }) changeModel(state, mode.value) loading.close() diff --git a/src/views/project-management/mobledetail/ApprovalDetailMoblie.vue b/src/views/project-management/mobledetail/ApprovalDetailMoblie.vue index 9ccd76d..80dec1d 100644 --- a/src/views/project-management/mobledetail/ApprovalDetailMoblie.vue +++ b/src/views/project-management/mobledetail/ApprovalDetailMoblie.vue @@ -121,6 +121,12 @@ const tableConfig = reactive({ } ] }) +const filePreviewParam = ref({ + fileUrl: '', + fileName: '', + fileType: 'pdf' +}) +const filePreviewShow = ref(false) const attachmentParam = reactive({ tag: '' }) @@ -169,6 +175,69 @@ const props = defineProps({ }) const form = ref() const otherAttachmentList = ref([]) +const editSingleTableConfig = reactive({ + columns: [ + { + prop: 'index', + type: 'index', + label: '序号', + align: 'center', + width: 85, + }, + { + prop: 'originalFileName', + label: '文件名', + align: 'center', + width: 400, + currentRender: ({row, index}) => (
clickToPreview(row)}>{row.originalFileName}
) + }, + { + prop: 'tag', + label: '标签', + align: 'center' + }, + { + prop: 'size', + label: '文件大小', + align: 'center', + width: 150, + currentRender: ({row, index}) => (parseInt(row.size / 1024) + 'KB') + }, + { + prop: 'oper', + label: '操作', + align: 'center', + showOverflowTooltip: false, + currentRender: ({row, index}) => { + let btn = [] + btn.push({label: '下载', func: () => handleDownload(row), type: 'primary'}) + // if (row.newFile) { + // btn.push({label: '删除', func: () => handleDelete(row), type: 'primary'}) + // } + return ( +
+ { + btn.map(item => ( + item.func()} + link> + {item.label} + + )) + } + { + row.newFile ? handleDelete(row)}/> + : '' + } +
+ ) + } + } + ] +}) const schema = computed(() => { let arr if (props.type == 'approval') { @@ -232,21 +301,13 @@ const schema = computed(() => { span: 24 }, labelWidth:'left', - component: () => ( -
- { - props.formData.singleFile?.originalFileName ? - handleDownload(props.formData.singleFile)} - > - {props.formData.singleFile?.originalFileName} - : - {'--'} - } -
- - ) + component: () => { + let singleFileArray = [props.formData.singleFile] + return + + } }, ] } else if (props.type == 'execute') { @@ -276,21 +337,13 @@ const schema = computed(() => { span: 24 }, labelWidth:'left', - component: () => ( -
- { - props.formData.singleFile?.originalFileName ? - handleDownload(props.formData.singleFile)} - > - {props.formData.singleFile?.originalFileName} - : - {'--'} - } -
- - ) + component: () => { + let singleFileArray = [props.formData.singleFile] + return + + } }, ] } else if (props.type == 'archivist') { @@ -302,21 +355,13 @@ const schema = computed(() => { span: 24 }, labelWidth:'left', - component: () => ( -
- { - props.formData.singleFile?.originalFileName ? - handleDownload(props.formData.singleFile)} - > - {props.formData.singleFile?.originalFileName} - : - {'--'} - } -
- - ) + component: () => { + let singleFileArray = [props.formData.singleFile] + return + + } }, ] } else if (props.type == 'phase') { @@ -328,21 +373,13 @@ const schema = computed(() => { span: 24 }, labelWidth:'left', - component: () => ( -
- { - props.formData.singleFile?.originalFileName ? - handleDownload(props.formData.singleFile)} - > - {props.formData.singleFile?.originalFileName} - : - {'--'} - } -
- - ) + component: () => { + let singleFileArray = [props.formData.singleFile] + return + + } }, ] } @@ -359,6 +396,17 @@ const _value = computed({ emit("update:value", val); } }) +const clickToPreview=(row)=>{ + filePreviewShow.value = false + filePreviewParam.value = { + fileUrl: row.url, + fileName: row.originalFileName, + fileType: row.fileType + } + nextTick(()=>{ + filePreviewShow.value = true + }) +} const getTagsOption = () => { if (!route.query.projectId) return getTags(route.query.projectId).then(res => { diff --git a/src/views/project-management/mobledetail/CollectionDetailMoblie.vue b/src/views/project-management/mobledetail/CollectionDetailMoblie.vue index ae996f7..3bcd7a0 100644 --- a/src/views/project-management/mobledetail/CollectionDetailMoblie.vue +++ b/src/views/project-management/mobledetail/CollectionDetailMoblie.vue @@ -44,7 +44,7 @@ - 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', diff --git a/src/views/project-management/mobledetail/SummaryDetailMoblie.vue b/src/views/project-management/mobledetail/SummaryDetailMoblie.vue index 8a4d384..af2349f 100644 --- a/src/views/project-management/mobledetail/SummaryDetailMoblie.vue +++ b/src/views/project-management/mobledetail/SummaryDetailMoblie.vue @@ -135,7 +135,7 @@
- @@ -151,7 +151,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/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]) 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', }, { diff --git a/src/views/workflow/form/ComponentsConfigExport.js b/src/views/workflow/form/ComponentsConfigExport.js index 1d7b019..fcab7bc 100644 --- a/src/views/workflow/form/ComponentsConfigExport.js +++ b/src/views/workflow/form/ComponentsConfigExport.js @@ -9,6 +9,7 @@ export const ValueType = { date: 'Date', user: 'User', dept: 'Dept', + company: 'Company', star: 'star', dateRange: 'DateRange' } diff --git a/src/views/workflow/process/DefaultNodeProps.js b/src/views/workflow/process/DefaultNodeProps.js index 7ab000e..0afbc80 100644 --- a/src/views/workflow/process/DefaultNodeProps.js +++ b/src/views/workflow/process/DefaultNodeProps.js @@ -10,6 +10,9 @@ export const APPROVAL_PROPS = { }, matrixApproval: true, dstiMatrix: false, + generalManager: true, + president: true, + duplicateApproval: false, skipSelf: true, timeLimit: { //边界事件 timeout: { //超时提醒时间 diff --git a/src/views/workflow/process/config/ApprovalNodeConfig.vue b/src/views/workflow/process/config/ApprovalNodeConfig.vue index 475e30c..bcbb5ec 100644 --- a/src/views/workflow/process/config/ApprovalNodeConfig.vue +++ b/src/views/workflow/process/config/ApprovalNodeConfig.vue @@ -102,17 +102,31 @@ - + + - - - - + + + + + + + + + + + + + + + + @@ -254,6 +268,8 @@ const approvalTypes = reactive([ // {name: "主管", type: "LEADER"}, // {name: "角色", type: "ROLE"}, {name: "发起人自己", type: "SELF"}, + {name: "下属企业领导", type: "SUB_LEADER"}, + {name: "下属企业科创部对接人", type: "DSTI_CONTACT_PERSON"}, // {name: "表单内联系人", type: "FORM_USER"}, // {name: "矩阵审批", type: "MATRIX_APPROVAL"}, ]) diff --git a/src/views/workflow/process/config/ConditionGroupItemConfig.vue b/src/views/workflow/process/config/ConditionGroupItemConfig.vue index 12860d0..cd2bcdc 100644 --- a/src/views/workflow/process/config/ConditionGroupItemConfig.vue +++ b/src/views/workflow/process/config/ConditionGroupItemConfig.vue @@ -1,12 +1,13 @@