diff --git a/src/api/expense-manage/index.js b/src/api/expense-manage/index.js index 8126b9c..926bfc2 100644 --- a/src/api/expense-manage/index.js +++ b/src/api/expense-manage/index.js @@ -13,3 +13,9 @@ export const getAllocationDetail = (allocationId) => { method: "get" }); }; +export const getAllocationProcess = () => { + return request({ + url: '/workflow/mosr/cost/allocation/process', + method: "get" + }); +}; diff --git a/src/api/project-demand/index.js b/src/api/project-demand/index.js index 928514b..9a5a163 100644 --- a/src/api/project-demand/index.js +++ b/src/api/project-demand/index.js @@ -82,3 +82,18 @@ export const deleteDemand = (id) => { method: "delete" }); }; +//需求征集附件列表(归档) +export const getRequirementAttachment = (params) => { + return request({ + url: '/workflow/mosr/requirement/attachments', + method: "get", + params:params + }); +}; +export const uploadRequirementAttachment= (data) => { + return request({ + url: '/workflow/mosr/requirement/upload', + method: "post", + data: data + }); +}; diff --git a/src/api/project-manage/index.js b/src/api/project-manage/index.js index eb54d16..0189260 100644 --- a/src/api/project-manage/index.js +++ b/src/api/project-manage/index.js @@ -27,6 +27,20 @@ export const resubmitApply = (data) => { data: data }); }; +export const getInitiationAttachment = (params) => { + return request({ + url: '/workflow/mosr/project/approval/attachments', + method: "get", + params:params + }); +}; +export const uploadInitiationAttachment= (data) => { + return request({ + url: '/workflow/mosr/project/approval/upload', + method: "post", + data: data + }); +}; //项目实施 export const getCheckDetail = (projectId) => { return request({ @@ -77,13 +91,11 @@ export const addLedger = (data) => { }); }; -export const getTags = (projectId) => { +export const getTags = (params) => { return request({ - url: '/workflow/mosr/project/implementation/tags', + url: '/workflow/mosr/project/implementation/option', method: "get", - params:{ - projectId:projectId - } + params:params }); }; //项目归档 @@ -114,3 +126,17 @@ export const getProjectConclusionProcess = () => { method: "get" }); }; +export const getFilingAttachment = (params) => { + return request({ + url: '/workflow/mosr/project/filing/attachments', + method: "get", + params:params + }); +}; +export const uploadFilingAttachment= (data) => { + return request({ + url: '/workflow/mosr/project/filing/upload', + method: "post", + data: data + }); +}; diff --git a/src/api/special-fund/index.js b/src/api/special-fund/index.js index 2b82339..f76b2c4 100644 --- a/src/api/special-fund/index.js +++ b/src/api/special-fund/index.js @@ -1,11 +1,29 @@ import request from '@/utils/request.js' export const getFundDetail = (specialFundId) => { + return request({ + url: `/workflow/mosr/special/fund/from/${specialFundId}`, + method: "get" + }); +}; +export const getFundDetailProcess = (specialFundId) => { return request({ url: `/workflow/mosr/special/fund/info/${specialFundId}`, method: "get" }); }; +export const getFundOption = () => { + return request({ + url: '/workflow/mosr/special/fund/option', + method: "get" + }); +}; +export const getFundProcess = (specialFundId) => { + return request({ + url: '/workflow/mosr/special/fund/process', + method: "get" + }); +}; export const addFund= (data) => { return request({ url: '/workflow/mosr/special/fund', diff --git a/src/components/AttachmentUpload.vue b/src/components/AttachmentUpload.vue index 0b74133..fa2cc3c 100644 --- a/src/components/AttachmentUpload.vue +++ b/src/components/AttachmentUpload.vue @@ -10,7 +10,7 @@ 删除 @@ -33,7 +33,7 @@ diff --git a/src/components/TagAndFileUpload.vue b/src/components/TagAndFileUpload.vue new file mode 100644 index 0000000..d29dac5 --- /dev/null +++ b/src/components/TagAndFileUpload.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/src/components/Tinymce.vue b/src/components/Tinymce.vue index 0295cdb..d619231 100644 --- a/src/components/Tinymce.vue +++ b/src/components/Tinymce.vue @@ -74,7 +74,7 @@ const props = defineProps({ }, height:{ type: Number, - default: 450 + default: 650 } }) const content = ref(props.value); diff --git a/src/fvcomponents/fvTable/index.vue b/src/fvcomponents/fvTable/index.vue index ed4a388..2ca8d2f 100644 --- a/src/fvcomponents/fvTable/index.vue +++ b/src/fvcomponents/fvTable/index.vue @@ -4,12 +4,12 @@
{{ btn.name }} @@ -19,7 +19,9 @@
- + + +
- +
@@ -49,19 +52,19 @@
diff --git a/src/stores/tagsview.js b/src/stores/tagsview.js index b278540..268d088 100644 --- a/src/stores/tagsview.js +++ b/src/stores/tagsview.js @@ -56,11 +56,16 @@ export const useTagsView = defineStore('tagsView',()=>{ router.push(lastTagView.path) } + const removeAllTagView = () => { + visitedViews.value.length = 0 + } + return { visitedViews, addVisitedViews, delVisitedViews, delOtherVisitedViews, - delViewAndGoView + delViewAndGoView, + removeAllTagView } }) diff --git a/src/views/expense-management/share/add.vue b/src/views/expense-management/share/add.vue index a1c26d1..b237412 100644 --- a/src/views/expense-management/share/add.vue +++ b/src/views/expense-management/share/add.vue @@ -97,12 +97,12 @@ - - - + + + + + + + + diff --git a/src/views/project-demand/summary/add.vue b/src/views/project-demand/summary/add.vue index 1a6b071..b6929a5 100644 --- a/src/views/project-demand/summary/add.vue +++ b/src/views/project-demand/summary/add.vue @@ -8,11 +8,19 @@ - - + + + + + + + + + + - - - - - - @@ -139,18 +141,20 @@ - {{item.label}} + {{ item.label }} + - {{item.label}} + {{ item.label }} + @@ -230,13 +234,14 @@
存为草稿 - 发布 - 重新发布 + 发布 + 重新发布
diff --git a/src/views/project-management/filing/attachment.vue b/src/views/project-management/filing/attachment.vue index 1ed9890..7653e0d 100644 --- a/src/views/project-management/filing/attachment.vue +++ b/src/views/project-management/filing/attachment.vue @@ -1,83 +1,214 @@ - diff --git a/src/views/project-management/filing/conclusion.vue b/src/views/project-management/filing/conclusion.vue index 390e722..2487ef2 100644 --- a/src/views/project-management/filing/conclusion.vue +++ b/src/views/project-management/filing/conclusion.vue @@ -128,11 +128,12 @@ const getFileParam = (item) => { } } const handleSubmit = async () => { - if (JSON.stringify(file.value) === "{}") { - attachment.value.validate() - } else { - attachment.value.clearValidate() - } + // if (JSON.stringify(file.value) === "{}") { + // attachment.value.validate() + // return; + // } else { + // attachment.value.clearValidate() + // } let files = [] let singleFile = {} if (file.value.fileId !== undefined) { @@ -150,6 +151,17 @@ const handleSubmit = async () => { singleFile: singleFile, projectId: route.query.projectId, } + if (JSON.stringify(singleFile) === "{}") { + attachment.value.validate() + ElNotification({ + title: '提示', + message: '请上传附件', + type: 'error' + }) + return; + }else { + attachment.value.clearValidate() + } console.log('params', params) let res = await projectConclusion(params) ElNotification({ @@ -168,11 +180,12 @@ const handleResubmit = () => { let singleFile = {} let otherFiles = [] let fileArray - if (JSON.stringify(file.value) === "{}" || attachment.value.singleFile === null) { - attachment.value.validate() - } else { - attachment.value.clearValidate() - } + // if (JSON.stringify(file.value) === "{}" || attachment.value.singleFile === null) { + // attachment.value.validate() + // return; + // } else { + // attachment.value.clearValidate() + // } if (attachment.value.singleFile !== null && name.value === 'Filing/edit') { singleFile = { fileId: attachment.value.singleFile.fileId @@ -197,6 +210,17 @@ const handleResubmit = () => { singleFile: singleFile, projectId: route.query.projectId, } + if (JSON.stringify(singleFile) === "{}") { + attachment.value.validate() + ElNotification({ + title: '提示', + message: '请上传附件', + type: 'error' + }) + return; + }else { + attachment.value.clearValidate() + } console.log('重新提交params', params) resubmitConclusion(params).then(res => { ElNotification({ @@ -227,11 +251,6 @@ const getDetailInfo = async () => { } const init = () => { getProjectConclusionProcess().then(res => { - ElNotification({ - title: '提示', - message: res.msg, - type: res.code === 1000 ? 'success' : 'error' - }) processDiagramViewer.value = false if (res.code === 1000) { let data = res.data @@ -246,6 +265,12 @@ const init = () => { nextTick(() => { processDiagramViewer.value = true }) + }else { + ElNotification({ + title: '提示', + message: res.msg, + type: 'error' + }) } }) } diff --git a/src/views/project-management/filing/detail.vue b/src/views/project-management/filing/detail.vue index b7f1460..b07c02d 100644 --- a/src/views/project-management/filing/detail.vue +++ b/src/views/project-management/filing/detail.vue @@ -5,7 +5,6 @@ :formData="commonForm.formData" :data="commonForm" :processViewer="commonProvessViewer" - :companyOption="companyOption" v-show="showActive == '00'" :loading="loading" /> @@ -24,52 +23,35 @@ + + diff --git a/src/views/project-management/implementation/attachment.vue b/src/views/project-management/implementation/attachment.vue index b7a5732..88e2215 100644 --- a/src/views/project-management/implementation/attachment.vue +++ b/src/views/project-management/implementation/attachment.vue @@ -1,12 +1,12 @@ diff --git a/src/views/special-fund/add.vue b/src/views/special-fund/add.vue index d0d431d..259c35b 100644 --- a/src/views/special-fund/add.vue +++ b/src/views/special-fund/add.vue @@ -5,16 +5,16 @@ - + + v-model:value="formData.introduce"/> - + + \ No newline at end of file diff --git a/src/views/system/department/edit.vue b/src/views/system/department/edit.vue new file mode 100644 index 0000000..3d3bccd --- /dev/null +++ b/src/views/system/department/edit.vue @@ -0,0 +1,148 @@ + + + + + \ No newline at end of file diff --git a/src/views/system/department/index.vue b/src/views/system/department/index.vue index 8db2d41..b063ea9 100644 --- a/src/views/system/department/index.vue +++ b/src/views/system/department/index.vue @@ -33,18 +33,25 @@ + + + diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index bdf3eee..c4c2eca 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -135,18 +135,18 @@ const tableConfig = reactive({ showOverflowTooltip: false, currentRender: ({row, index}) => { let btn = [{label: '修改', auth: auths.edit, func: ()=>handleEdit(row) , type: 'primary'}] - btn.push( - { - label: '分配用户', - auth: auths.edit, - func: ()=>handleAssign(row), - type: 'primary' - } - ) + // btn.push( + // { + // label: '分配用户', + // auth: auths.edit, + // func: ()=>handleAssign(row), + // type: 'primary' + // } + // ) if(authStore.roles.includes('superAdmin')) { - btn.push({label: '删除', auth: auths.edit, func: ()=>handleDel(row) , type: 'danger'}) + btn.push({label: '删除', auth: auths.del, func: ()=>handleDel(row) , type: 'danger'}) } else if(!row.template) { - btn.push({label: '删除', auth: auths.edit, func: ()=>handleDel(row) , type: 'danger'}) + btn.push({label: '删除', auth: auths.del, func: ()=>handleDel(row) , type: 'danger'}) } return (
@@ -200,7 +200,7 @@ const formatDataScope = (dataScope) => { const handleAdd = () => { router.push({ - path: '/system/roleadd', + name: 'Roleadd', query: { isAdd: 1 } @@ -209,7 +209,7 @@ const handleAdd = () => { const handleEdit = (row) => { router.push({ - path: '/system/roleedit', + name: 'Roleedit', query: { id: row.roleId } @@ -221,14 +221,14 @@ const handleAssign = (row) => { } const handleDel = (row) => { - if (!(row.template && authStore.roles.includes('superAdmin'))) { - ElNotification({ - title: '提示', - message: '模版角色只能由超级管理员删除!', - type: 'warning' - }) - return - } + // if (!(row.template && authStore.roles.includes('superAdmin'))) { + // ElNotification({ + // title: '提示', + // message: '模版角色只能由超级管理员删除!', + // type: 'warning' + // }) + // return + // } ElMessageBox.confirm('确定删除该条数据吗?', '确定删除', { type: 'warning', diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 9ed57b2..45b2763 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -119,10 +119,10 @@ const tableConfig = reactive({ currentRender: ({row, index}) => { return (
- handleEdit(row)}>编辑 + handleEdit(row)} v-perm={['admin:user:edit']}>编辑 { row.userType != 0 ? - handleDel(row)}>删除 : + handleDel(row)} v-perm={['admin:user:del']}>删除 : null } diff --git a/src/views/workflow/process/ProcessEdit.vue b/src/views/workflow/process/ProcessEdit.vue index e86c471..77e5700 100644 --- a/src/views/workflow/process/ProcessEdit.vue +++ b/src/views/workflow/process/ProcessEdit.vue @@ -15,8 +15,6 @@
- -
@@ -89,7 +87,10 @@ const validOptions = ref([ {title: '审批流程', description: '', icon: '', status: ''}, // {title: '扩展设置', description: '', icon: '', status: ''} ]) - +onActivated(()=>{ + activeSelect.value = 'processDesign' + init() +}) const errTitle = computed(() => { if (validResult.finished && !validResult.success) { diff --git a/src/views/workflow/process/ProcessSetting.vue b/src/views/workflow/process/ProcessSetting.vue index 2b53d68..ef8ac82 100644 --- a/src/views/workflow/process/ProcessSetting.vue +++ b/src/views/workflow/process/ProcessSetting.vue @@ -28,7 +28,6 @@ const processData = computed(() => { return processStore.getDesign() }) - const validate = () => { return [] } diff --git a/src/views/workflow/process/common/InsertButton.vue b/src/views/workflow/process/common/InsertButton.vue index c9344e9..02e3dce 100644 --- a/src/views/workflow/process/common/InsertButton.vue +++ b/src/views/workflow/process/common/InsertButton.vue @@ -63,27 +63,27 @@ const nullBlockClick = (e) => { disVisible() } } -const addApprovalNode = debounce(() => { +const addApprovalNode = () => { emit('insertNode', "APPROVAL") disVisible() -}) +} -const addCcNode = debounce(() => { +const addCcNode = () => { emit('insertNode', "CC") disVisible() -}) -const addDelayNode = debounce(() => { +} +const addDelayNode =() => { emit('insertNode', "DELAY") disVisible() -}) -const addConditionsNode = debounce(() => { +} +const addConditionsNode = () => { emit('insertNode', "CONDITIONS") disVisible() -}) -const addConcurrentsNode = debounce(() => { +} +const addConcurrentsNode = () => { emit('insertNode', "CONCURRENTS") disVisible() -}) +} const addTriggerNode = () => { emit('insertNode', "TRIGGER") disVisible() diff --git a/src/views/workflow/process/config/FormAuthorityConfig.vue b/src/views/workflow/process/config/FormAuthorityConfig.vue index ea23042..97dd8f2 100644 --- a/src/views/workflow/process/config/FormAuthorityConfig.vue +++ b/src/views/workflow/process/config/FormAuthorityConfig.vue @@ -91,7 +91,6 @@ const formPermsLoadMosr = (oldPermMap, perms) => { old.required = perm.required; formPerms.value.push(old); } else { - console.log(perm) if (perm.id === 'fileList'){ formPerms.value.push({ id: perm.id, //todo ,id 就是字段名称 diff --git a/src/views/workflow/process/index.vue b/src/views/workflow/process/index.vue index ae68949..085238f 100644 --- a/src/views/workflow/process/index.vue +++ b/src/views/workflow/process/index.vue @@ -16,9 +16,9 @@ 搜索 - 新增 + 新增 重置 - 导出 + 导出 diff --git a/vite.config.js b/vite.config.js index 608feaa..fc3db23 100644 --- a/vite.config.js +++ b/vite.config.js @@ -69,8 +69,8 @@ export default defineConfig({ open: true, proxy: { // '/api/workflow': { - // target: 'http://frp.feashow.cn:31800/', - // // target: 'http://clay.frp.feashow.cn/', + // // target: 'http://frp.feashow.cn:31800/', + // target: 'http://clay.frp.feashow.cn/', // // target: 'http://192.168.31.175:8000', // changeOrigin: true, // rewrite: (path) => path.replace(/^\/api/, '')