+
您没有任何角色, 请联系管理员!
-
diff --git a/src/components/DetailComponent/SummaryDetail.vue b/src/components/DetailComponent/SummaryDetail.vue
index 0d98534..911f8fa 100644
--- a/src/components/DetailComponent/SummaryDetail.vue
+++ b/src/components/DetailComponent/SummaryDetail.vue
@@ -103,7 +103,7 @@
-
+
{{ localFormData.specialFundAmount }}
diff --git a/src/components/Tinymce.vue b/src/components/Tinymce.vue
index d619231..265f987 100644
--- a/src/components/Tinymce.vue
+++ b/src/components/Tinymce.vue
@@ -74,7 +74,7 @@ const props = defineProps({
},
height:{
type: Number,
- default: 650
+ default: 500
}
})
const content = ref(props.value);
diff --git a/src/views/home/index.vue b/src/views/home/index.vue
index 094467b..6abf334 100644
--- a/src/views/home/index.vue
+++ b/src/views/home/index.vue
@@ -148,7 +148,6 @@ const tableConfig = reactive({
return (
handleView(row)}>查看
- handleEdit(row)}>已读
)
}
@@ -175,7 +174,7 @@ const handleView = (row) => {
source: 'home'
}
})
- } else {
+ } else if (row.targetState == '20'||row.targetState == '40'||row.targetState == '50'){
router.push({
name: 'Implementation/detail',
query: {
@@ -185,6 +184,15 @@ const handleView = (row) => {
source: 'home'
}
})
+ }else if (row.targetState == '70' && row.targetId) {
+ router.push({
+ name: 'Fund/detail',
+ query: {
+ id: row.targetId,
+ state: row.state,
+ source: 'home'
+ }
+ })
}
}
diff --git a/src/views/project-management/filing/conclusion.vue b/src/views/project-management/filing/conclusion.vue
index a48da94..b1210d8 100644
--- a/src/views/project-management/filing/conclusion.vue
+++ b/src/views/project-management/filing/conclusion.vue
@@ -69,19 +69,18 @@ const tableConfig = reactive({
align: 'center',
currentRender: ({row, index}) => (parseInt(row.size / 1024) + 'KB')
},
- // {
- // prop: 'oper',
- // label: '操作',
- // align: 'center',
- // currentRender: ({row, index}) => {
- // return (
- //
- // handleDownload(row)}>下载
- // beforeRemove(row)}>删除
- //
- // )
- // }
- // }
+ {
+ prop: 'oper',
+ label: '操作',
+ align: 'center',
+ currentRender: ({row, index}) => {
+ return (
+
+ handleDownload(row)}>下载
+
+ )
+ }
+ }
]
})
const handleDownload = (row) => {
diff --git a/src/views/project-management/initiation/apply.vue b/src/views/project-management/initiation/apply.vue
index 0964842..285b95c 100644
--- a/src/views/project-management/initiation/apply.vue
+++ b/src/views/project-management/initiation/apply.vue
@@ -27,10 +27,11 @@
-
diff --git a/src/views/special-fund/index.vue b/src/views/special-fund/index.vue
index 71c4119..5dd5219 100644
--- a/src/views/special-fund/index.vue
+++ b/src/views/special-fund/index.vue
@@ -10,6 +10,8 @@
diff --git a/src/views/project-demand/requirement/add.vue b/src/views/project-demand/requirement/add.vue
index 9ae3ca5..2637224 100644
--- a/src/views/project-demand/requirement/add.vue
+++ b/src/views/project-demand/requirement/add.vue
@@ -57,7 +57,7 @@
v-model:value="formData.collectExplain" />
-
@@ -74,7 +74,6 @@
提交
重新提交
- 返回
@@ -367,7 +366,7 @@ onMounted(async () => {
margin-top: 0;
}
:deep(.el-table--fit ){
- height: 600px;
+ height: 300px!important;
}
.add-block {
//display: flex;
diff --git a/src/views/project-demand/requirement/detail.vue b/src/views/project-demand/requirement/detail.vue
index 783f02c..2007e7e 100644
--- a/src/views/project-demand/requirement/detail.vue
+++ b/src/views/project-demand/requirement/detail.vue
@@ -40,7 +40,7 @@
-
handleDownload(row)}>下载
+
+ {
+ btn.map(item => (
+ item.func()}
+ link
+ >
+ {item.label}
+
+ ))
+ }
)
}
}
-
- //
deleteOtherFile(row)}>删除
]
})
const rules = reactive({
@@ -91,19 +105,24 @@ const props = defineProps({
showFileList: {
type: Boolean,
default: false
- }, label: {
+ },
+ label: {
type: String,
default: '项目附件'
- }, showTable: {
+ },
+ showTable: {
type: Boolean,
default: true
- }, preview: {
+ },
+ preview: {
type: Boolean,
default: false
- }, otherFileList: {
+ },
+ otherFileList: {
type: Array,
default: []
- }, formData: {
+ },
+ formData: {
type: Array,
default: []
}
@@ -112,34 +131,34 @@ watch(() => props.showTable, (newVal) => {
props.showTable = newVal
}, {deep: true})
watch(() => props.otherFileList, (newVal) => {
- console.log('newotherFileList',newVal)
+ console.log('newotherFileList', newVal)
if (props.preview) {
- if(props.formData.fileList==null){
- allFileList.value=newVal
- }else {
+ if (props.formData.fileList == null) {
+ allFileList.value = newVal
+ } else {
newVal?.forEach(item => {
allFileList.value.push(item)
})
}
- }else {
- allFileList.value=newVal
+ } else {
+ allFileList.value = newVal
}
}, {deep: true})
watch(() => props.formData.fileList, (newVal) => {
- console.log('newVal-fileList',newVal)
+ console.log('newVal-fileList', newVal)
if (props.preview) {
- newVal?.forEach(item => {
- allFileList.value.push(item)
- })
+ newVal?.forEach(item => {
+ allFileList.value.push(item)
+ })
}
}, {deep: true})
watch(() => props.formData.singleFile, (newVal) => {
- console.log('singleFile',newVal)
+ console.log('singleFile', newVal)
singleFile.value = newVal
}, {deep: true})
const getAttachment = (val) => {
- isSingleFile.value=true
+ isSingleFile.value = true
emit('getAttachment', val)
}
const getOtherFile = (val) => {
@@ -150,10 +169,10 @@ const deleteAttachment = (val) => {
if (res.code === 1000) {
ElNotification({
title: '提示',
- message:"删除成功",
- type:'success'
+ message: "删除成功",
+ type: 'success'
})
- isSingleFile.value=false
+ isSingleFile.value = false
}
});
}
diff --git a/src/components/DetailComponent/SummaryDetail.vue b/src/components/DetailComponent/SummaryDetail.vue
index 0d98534..845b756 100644
--- a/src/components/DetailComponent/SummaryDetail.vue
+++ b/src/components/DetailComponent/SummaryDetail.vue
@@ -124,8 +124,9 @@
-
+
+
@@ -148,7 +149,7 @@
-
+
{
+ let btn = []
+ btn.push({label: '下载', func: () => handleDownload(row), type: 'primary'})
+ if (row.newFile){
+ btn.push({label: '删除', func: () => handleDelete(row), type: 'primary'})
+ }
return (
- handleDownload(row)}>下载
+
+ {
+ btn.map(item => (
+ item.func()}
+ link>
+ {item.label}
+
+ ))
+ }
+
)
}
}
@@ -273,10 +296,33 @@ const handleDownload = (row) => {
a.click()
})
}
+const getOtherFile = (val) => {
+ props.processViewer = false
+ let fileObj = compositeParam(val)
+ localFormData.value.fileList.push(fileObj)
+ nextTick(() => {
+ props.processViewer = true
+ })
+}
+
+
+const compositeParam = (item, type) => {
+ return {
+ fileId: item.id,
+ size: item.size,
+ originalFileName: item.originalFilename,
+ fileType: item.fileType,
+ url: item.url,
+ newFile: true,
+ tag: '需求上报'
+ }
+}
+
watch(() => props.processViewer, (newVal) => {
props.processViewer = newVal
}, {deep: true})
+
watch(() => props.loading, (newVal) => {
props.loading = newVal
}, {deep: true})
@@ -284,6 +330,7 @@ watch(() => props.loading, (newVal) => {
watchEffect(() => {
return Object.keys(props.formData).length && (localFormData.value = props.formData)
})
+
getFundOptions()
diff --git a/src/components/TagAndFileUpload.vue b/src/components/TagAndFileUpload.vue
index d29dac5..56ce3c2 100644
--- a/src/components/TagAndFileUpload.vue
+++ b/src/components/TagAndFileUpload.vue
@@ -93,6 +93,7 @@ const compositeParam = (item) => {
originalFileName: item.originalFilename,
fileType: item.fileType,
url: item.url,
+ newFile: true,
tag: formData.value.tagName,
}
}
diff --git a/src/views/project-demand/requirement/add.vue b/src/views/project-demand/requirement/add.vue
index 9ae3ca5..9457f07 100644
--- a/src/views/project-demand/requirement/add.vue
+++ b/src/views/project-demand/requirement/add.vue
@@ -19,7 +19,7 @@
/>
-
+
+ :isSettingCol="false" :pagination="false" perm="EDIT">
@@ -217,11 +217,11 @@ const compositeParam = (item) => {
url: item.url,
processNodeTag: null,
tag: tag,
+ newFile: true,
userId: authStore.userinfo.userId
}
}
const getFile = (val) => {
- console.log('上传文件', val)
showTable.value = false
let fileObj = compositeParam(val)
formData.value.fileList.push(fileObj)
diff --git a/src/views/project-demand/requirement/detail.vue b/src/views/project-demand/requirement/detail.vue
index 783f02c..e15918c 100644
--- a/src/views/project-demand/requirement/detail.vue
+++ b/src/views/project-demand/requirement/detail.vue
@@ -3,22 +3,22 @@
-
+
{{ formData.requirementName }}
-
+
{{ formData.companyIds }}
-
+
{{ formData.collectType }}
-
+
{{ formData.deadline }}
@@ -29,7 +29,7 @@
-
+
@@ -37,11 +37,13 @@
-
-
+
+
+
+ :data="formData.fileList" :isSettingCol="false"
+ :pagination="false">
@@ -84,13 +86,15 @@
import OperationRender from '@/views/workflow/common/OperationRender.vue'
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue'
import {useProcessStore} from '@/stores/processStore.js';
-import {getInfo, agreeTask, rejectTask, downloadFile} from "@/api/project-demand/index.js";
+import {getInfo, agreeTask, rejectTask,
+ deleteFile,downloadFile} from "@/api/project-demand/index.js";
import {getSubCompOpt} from '@/api/user/user.js'
-import {ElNotification} from "element-plus";
+import {ElMessage, ElMessageBox, ElNotification} from "element-plus";
import {useTagsView} from '@/stores/tagsview.js'
import {matterTree} from '@/utils/matterTree.js';
import {getFundOption} from "@/api/special-fund";
+
const tagsViewStore = useTagsView()
const router = useRouter()
const route = useRoute()
@@ -100,8 +104,8 @@ const demandForm = ref()
const processStore = useProcessStore()
const companyOption = ref([])
const specialFundOption = ref([])
-const formPermMap = ref(new Map());
const processInstanceData = ref({})
+const fileListShow = ref("READ")
const showTable = ref(false)
const processDiagramViewer = ref(false)
const processTree = ref()
@@ -139,29 +143,34 @@ const tableConfig = reactive({
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 (
- handleDownload(row)}>下载
+
+ {
+ btn.map(item => (
+ item.func()}
+ link
+ >
+ {item.label}
+
+ ))
+ }
+
)
}
}
]
})
-const checkFormPrem = (formKey) => {
- if (formPermMap.value.hasOwnProperty(formKey)) {
- let formItem = formPermMap.value[formKey];
- return formItem.perm === 'READ'
- } else {
- return true;
- }
-}
-
-
-const fromPrem = (formKey) => {
- let formItem = formPermMap.value[formKey];
- return formItem.perm
-}
const handleSubmit = () => {
let approve = {
@@ -242,9 +251,9 @@ const init = async () => {
let data = res.data
formData.value = data.formData;
data.formData.companyIds = getCompanyOptionItem(data.formData.companyIds)
- if(data.formData.specialFund){
+ if (data.formData.specialFund) {
specialFundOption.value.forEach(item => {
- if(data.formData.specialFund==item.value){
+ if (data.formData.specialFund == item.value) {
data.formData.specialFund = item.label
}
})
@@ -259,6 +268,9 @@ const init = async () => {
nextTick(() => {
processDiagramViewer.value = true
showTable.value = true
+ if (data.formPermMap["fileList"]) {
+ fileListShow.value = data.formPermMap["fileList"].perm
+ }
})
})
}
@@ -266,15 +278,66 @@ onMounted(async () => {
loading.value = true
await init()
})
+
+
+const getFile = (val) => {
+ showTable.value = false
+ let fileObj = compositeParam(val)
+ formData.value.fileList.push(fileObj)
+ nextTick(() => {
+ showTable.value = true
+ })
+}
+
+
+const compositeParam = (item) => {
+ let tag = ''
+ if (!formData.value.collectType && routerName.value === 'Requirement/add') {
+ tag = '需求征集'
+ }else if(!formData.value.collectType &&routerName.value === 'Requirement/edit'){
+ tag = '需求征集'
+ }if (formData.value.collectType) {
+ tag = formData.value.collectType
+ }
+ return {
+ fileId: item.id,
+ size: item.size,
+ originalFileName: item.originalFilename,
+ fileType: item.fileType,
+ url: item.url,
+ processNodeTag: null,
+ newFile: true,
+ tag: tag,
+ }
+}
+
+const handleDelete = (row) => {
+ ElMessageBox.confirm(`确认删除名称为${row.originalFileName}的表格吗?`, '系统提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning'
+ }).then(() => {
+ deleteFile(row.fileId).then(res => {
+ if (res.code === 1000) {
+ ElMessage.success("删除成功");
+ formData.value.fileList.splice(formData.value.fileList.findIndex((item) => item.id === row.fileId), 1);
+ }
+ });
+ }).catch(() => {
+ ElMessage.warning("用户取消删除! ");
+ })
+}
diff --git a/src/components/DetailComponent/SummaryDetail.vue b/src/components/DetailComponent/SummaryDetail.vue
index dce1ec7..04fd904 100644
--- a/src/components/DetailComponent/SummaryDetail.vue
+++ b/src/components/DetailComponent/SummaryDetail.vue
@@ -54,22 +54,26 @@
- {{ filterDict(cacheStore.getDict('technical_standard'), localFormData.technicalStandard)}}
+ {{ filterDict(cacheStore.getDict('technical_standard'), localFormData.technicalStandard) }}
- {{ filterDict(cacheStore.getDict('industry_university'), localFormData.industryUniversityResearch) }}
+ {{
+ filterDict(cacheStore.getDict('industry_university'), localFormData.industryUniversityResearch)
+ }}
- {{ filterDict(cacheStore.getDict('government_declaration'), localFormData.governmentDeclaration) }}
+ {{
+ filterDict(cacheStore.getDict('government_declaration'), localFormData.governmentDeclaration)
+ }}
- {{ filterDict(cacheStore.getDict('intellectual_property'), localFormData.intellectualProperty)}}
+ {{ filterDict(cacheStore.getDict('intellectual_property'), localFormData.intellectualProperty) }}
@@ -103,7 +107,8 @@
-
+
{{ localFormData.specialFundAmount }}
@@ -124,16 +129,19 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -149,7 +157,7 @@
-
+
diff --git a/src/components/DetailComponent/FileComponent.vue b/src/components/DetailComponent/FileComponent.vue
index 8f7a801..16681cf 100644
--- a/src/components/DetailComponent/FileComponent.vue
+++ b/src/components/DetailComponent/FileComponent.vue
@@ -1,6 +1,6 @@
-
+ {{fileList}}
diff --git a/src/components/DetailComponent/SummaryDetail.vue b/src/components/DetailComponent/SummaryDetail.vue
index 04fd904..01a5b85 100644
--- a/src/components/DetailComponent/SummaryDetail.vue
+++ b/src/components/DetailComponent/SummaryDetail.vue
@@ -3,7 +3,7 @@
-
+
{{ localFormData.projectName }}
@@ -19,7 +19,7 @@
- {{ formData.endTime }}
+ {{ localFormData.endTime }}
@@ -73,7 +73,9 @@
- {{ filterDict(cacheStore.getDict('intellectual_property'), localFormData.intellectualProperty) }}
+ {{
+ filterDict(cacheStore.getDict('intellectual_property'), localFormData.intellectualProperty)
+ }}
@@ -129,33 +131,11 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -252,8 +228,6 @@ const handleDownload = (row) => {
})
}
-
-
watch(() => props.processViewer, (newVal) => {
props.processViewer = newVal
}, {deep: true})
diff --git a/src/components/TagAndFileUpload.vue b/src/components/TagAndFileUpload.vue
index 56ce3c2..47a0a68 100644
--- a/src/components/TagAndFileUpload.vue
+++ b/src/components/TagAndFileUpload.vue
@@ -42,7 +42,7 @@ const props = defineProps({
},
})
const rules = reactive({
- tagName: [{required: true, message: '请输入标签名称', trigger: 'blur'}],
+ tagName: [{required: true, message: '请输入标签名称', trigger: ['blur', 'change']}],
})
const tagForm = ref()
const showTable = ref(true)
diff --git a/src/components/steps/index.vue b/src/components/steps/index.vue
index e372293..d45de70 100644
--- a/src/components/steps/index.vue
+++ b/src/components/steps/index.vue
@@ -45,6 +45,11 @@ const props = defineProps({
stepSuccess: {
type: Array,
default: ['00']
+ },
+ //直接上报/需求征集
+ reportType:{
+ type: String,
+ default: ''
}
})
@@ -238,6 +243,11 @@ getBaseInfo()
watchEffect(() => {
localActive.value = props.active
})
+watchEffect(() => {
+ if(props.reportType==='direct'){
+ localSteps.value=localSteps.value.slice(1)
+ }
+})
diff --git a/src/views/project-demand/summary/add.vue b/src/views/project-demand/summary/add.vue
index ac2ea4d..a025c92 100644
--- a/src/views/project-demand/summary/add.vue
+++ b/src/views/project-demand/summary/add.vue
@@ -8,24 +8,25 @@
-
-
-
-
-
-
-
-
+
+
+
+ 是
+ 否
+
+
+
-
-
-
+
+
+
+
@@ -33,8 +34,9 @@
@@ -46,10 +48,13 @@
@@ -243,7 +248,7 @@
diff --git a/src/views/project-management/filing/attachment56.vue b/src/views/project-management/filing/attachment56.vue
new file mode 100644
index 0000000..6acfb93
--- /dev/null
+++ b/src/views/project-management/filing/attachment56.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From 747b40f9ba3949703f68a789080152999be0616d Mon Sep 17 00:00:00 2001
From: odjbin <1042039504@qq.com>
Date: Sun, 2 Jun 2024 23:17:06 +0800
Subject: [PATCH 13/13] =?UTF-8?q?fix=20:=20=E9=A1=B9=E7=9B=AE=E5=BD=92?=
=?UTF-8?q?=E6=A1=A3=E9=99=84=E4=BB=B6=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?=
=?UTF-8?q?=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/project-manage/index.js | 7 +-
.../DetailComponent/ExpenseDetail.vue | 88 ++++++++++++-------
src/components/SearchFilesByTag.vue | 37 +++-----
src/views/expense-management/share/detail.vue | 5 +-
.../project-management/filing/attachment.vue | 35 ++++----
.../implementation/upload.vue | 2 +-
6 files changed, 89 insertions(+), 85 deletions(-)
diff --git a/src/api/project-manage/index.js b/src/api/project-manage/index.js
index 0189260..6798704 100644
--- a/src/api/project-manage/index.js
+++ b/src/api/project-manage/index.js
@@ -91,11 +91,10 @@ export const addLedger = (data) => {
});
};
-export const getTags = (params) => {
+export const getTags = (projectId) => {
return request({
- url: '/workflow/mosr/project/implementation/option',
- method: "get",
- params:params
+ url: `/workflow/mosr/attachment/option/${projectId}`,
+ method: "get"
});
};
//项目归档
diff --git a/src/components/DetailComponent/ExpenseDetail.vue b/src/components/DetailComponent/ExpenseDetail.vue
index f9b9ee5..ab9039f 100644
--- a/src/components/DetailComponent/ExpenseDetail.vue
+++ b/src/components/DetailComponent/ExpenseDetail.vue
@@ -1,34 +1,15 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+