diff --git a/src/api/expense-manage/index.js b/src/api/expense-manage/index.js
index 926bfc2..9d3d055 100644
--- a/src/api/expense-manage/index.js
+++ b/src/api/expense-manage/index.js
@@ -19,3 +19,10 @@ export const getAllocationProcess = () => {
method: "get"
});
};
+export const getAllocationDetailList = (params) => {
+ return request({
+ url: '/workflow/mosr/cost/allocation/process',
+ method: "get",
+ params:params
+ });
+};
diff --git a/src/api/project-manage/attachment.js b/src/api/project-manage/attachment.js
new file mode 100644
index 0000000..3e72a02
--- /dev/null
+++ b/src/api/project-manage/attachment.js
@@ -0,0 +1,10 @@
+import request from '@/utils/request.js'
+
+
+export const searchFileList = (params) => {
+ return request({
+ url: `/workflow/mosr/attachment/list`,
+ method: "get",
+ params: params
+ });
+};
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/api/special-fund/index.js b/src/api/special-fund/index.js
index f76b2c4..2f662e1 100644
--- a/src/api/special-fund/index.js
+++ b/src/api/special-fund/index.js
@@ -38,3 +38,9 @@ export const resubmitFund= (data) => {
data
});
};
+export const deleteFund = (id) => {
+ return request({
+ url: `/workflow/mosr/special/fund/${id}`,
+ method: "delete"
+ });
+};
diff --git a/src/assets/svg/account.svg b/src/assets/svg/account.svg
new file mode 100644
index 0000000..1d55bd9
--- /dev/null
+++ b/src/assets/svg/account.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/fee.svg b/src/assets/svg/fee.svg
new file mode 100644
index 0000000..b7150ff
--- /dev/null
+++ b/src/assets/svg/fee.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/fee_share.svg b/src/assets/svg/fee_share.svg
new file mode 100644
index 0000000..e8d6c11
--- /dev/null
+++ b/src/assets/svg/fee_share.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/filing.svg b/src/assets/svg/filing.svg
new file mode 100644
index 0000000..054af3b
--- /dev/null
+++ b/src/assets/svg/filing.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/home.svg b/src/assets/svg/home.svg
new file mode 100644
index 0000000..611af35
--- /dev/null
+++ b/src/assets/svg/home.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/implementation.svg b/src/assets/svg/implementation.svg
new file mode 100644
index 0000000..16d645a
--- /dev/null
+++ b/src/assets/svg/implementation.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/initiation.svg b/src/assets/svg/initiation.svg
new file mode 100644
index 0000000..3dc5a33
--- /dev/null
+++ b/src/assets/svg/initiation.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/project.svg b/src/assets/svg/project.svg
new file mode 100644
index 0000000..666f388
--- /dev/null
+++ b/src/assets/svg/project.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/project_requirement.svg b/src/assets/svg/project_requirement.svg
new file mode 100644
index 0000000..0b597a6
--- /dev/null
+++ b/src/assets/svg/project_requirement.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/requirement.svg b/src/assets/svg/requirement.svg
new file mode 100644
index 0000000..e1d1a11
--- /dev/null
+++ b/src/assets/svg/requirement.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/special_fund.svg b/src/assets/svg/special_fund.svg
new file mode 100644
index 0000000..c9c74b9
--- /dev/null
+++ b/src/assets/svg/special_fund.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/summary.svg b/src/assets/svg/summary.svg
new file mode 100644
index 0000000..cc0ef0a
--- /dev/null
+++ b/src/assets/svg/summary.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/components/AttachmentUpload.vue b/src/components/AttachmentUpload.vue
index fa2cc3c..ce4ea51 100644
--- a/src/components/AttachmentUpload.vue
+++ b/src/components/AttachmentUpload.vue
@@ -10,7 +10,8 @@
删除
-
+
@@ -18,7 +19,7 @@
-
@@ -69,15 +70,28 @@ const tableConfig = reactive({
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}
+
+ ))
+ }
)
}
}
-
- //
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
}
});
}
@@ -207,5 +226,7 @@ defineExpose({
diff --git a/src/components/DetailComponent/ApprovalDetail.vue b/src/components/DetailComponent/ApprovalDetail.vue
index 3407391..06362a5 100644
--- a/src/components/DetailComponent/ApprovalDetail.vue
+++ b/src/components/DetailComponent/ApprovalDetail.vue
@@ -1,20 +1,10 @@
form = e">
-
-
-
-
-
-
-
-
-
- {{ parseInt(row.size / 1024) + 'KB' }}
-
-
-
-
+
+
-
diff --git a/src/components/DetailComponent/FileComponent.vue b/src/components/DetailComponent/FileComponent.vue
new file mode 100644
index 0000000..ae58aef
--- /dev/null
+++ b/src/components/DetailComponent/FileComponent.vue
@@ -0,0 +1,155 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/DetailComponent/Opinion.vue b/src/components/DetailComponent/Opinion.vue
index 4e6738b..dc50ef1 100644
--- a/src/components/DetailComponent/Opinion.vue
+++ b/src/components/DetailComponent/Opinion.vue
@@ -11,6 +11,9 @@
import {ElNotification} from 'element-plus';
import {agreeTask, rejectTask} from "@/api/project-demand/index.js";
+import {useTagsView} from '@/stores/tagsview.js'
+
+const tagsViewStore = useTagsView()
const route = useRoute()
const router = useRouter()
const props = defineProps({
@@ -51,22 +54,42 @@ const back = () => {
router.push({name: 'Filing'})
break;
case 'Implementation/detail':
- if (route.query.step === '20') {
- router.push({name: 'Initiation'})
- } else if (route.query.step === '40') {
- router.push({name: 'Implementation'})
- } else if (route.query.step === '50') {
- router.push({name: 'Filing'})
+ if (route.query.source === 'home') {
+ router.push('/home')
+ } else {
+ if (route.query.step === '10') {
+ router.push({name: 'Summary'})
+ } else if (route.query.step === '20') {
+ router.push({name: 'Initiation'})
+ } else if (route.query.step === '40') {
+ router.push({name: 'Implementation'})
+ } else if (route.query.step === '50') {
+ router.push({name: 'Filing'})
+ } else if (route.query.step === '00') {
+ router.push({name: 'Requirement'})
+ }
}
break;
case 'Summary/detail':
- router.push({name: 'Summary'})
+ if (route.query.source === 'home') {
+ router.push('/home')
+ } else {
+ router.push({name: 'Summary'})
+ }
break;
case 'Requirement/detail':
- router.push({name: 'Requirement'})
+ if (route.query.source === 'home') {
+ router.push('/home')
+ } else {
+ router.push({name: 'Requirement'})
+ }
break;
case 'Fund/detail':
- router.push({name: 'Fund'})
+ if (route.query.source === 'home') {
+ router.push('/home')
+ } else {
+ router.push({name: 'Fund'})
+ }
break;
case 'Share/detail':
router.push({name: 'Expense/share'})
@@ -84,7 +107,6 @@ const handleReject = async () => {
})
return
}
- console.log('values', values)
const params = {
taskId: props.taskId,
...values
@@ -95,6 +117,7 @@ const handleReject = async () => {
message: res.msg,
type: res.code === 1000 ? 'success' : 'error'
})
+ tagsViewStore.delVisitedViews(router.currentRoute.value.path)
back()
}
@@ -111,6 +134,7 @@ const handleAgree = async () => {
message: res.msg,
type: res.code === 1000 ? 'success' : 'error'
})
+ tagsViewStore.delVisitedViews(router.currentRoute.value.path)
back()
}
diff --git a/src/components/DetailComponent/SpecialFundDetail.vue b/src/components/DetailComponent/SpecialFundDetail.vue
index 68ba4fb..140f81f 100644
--- a/src/components/DetailComponent/SpecialFundDetail.vue
+++ b/src/components/DetailComponent/SpecialFundDetail.vue
@@ -30,7 +30,7 @@
-
@@ -41,7 +41,7 @@
-
@@ -201,6 +201,8 @@ watch(() => props.showTable, (newVal) => {
}, {deep: true})
-
diff --git a/src/components/DetailComponent/SummaryDetail.vue b/src/components/DetailComponent/SummaryDetail.vue
index 32a2e35..15cceb3 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 }}
@@ -54,22 +54,28 @@
- {{ 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)
+ }}
@@ -98,12 +104,13 @@
-
+
{{ localFormData.economicEstimate }}
-
+
{{ localFormData.specialFundAmount }}
@@ -125,28 +132,10 @@
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/components/SearchFilesByTag.vue b/src/components/SearchFilesByTag.vue
index 0105888..0588f42 100644
--- a/src/components/SearchFilesByTag.vue
+++ b/src/components/SearchFilesByTag.vue
@@ -1,9 +1,9 @@
-
-
+
+
-
+
搜索
- 上传附件
+ 上传附件
@@ -35,18 +35,20 @@ import {getTags} from "@/api/project-manage";
const route = useRoute()
const router = useRouter()
-const attachment = reactive({
- name: '',
- tag: ''
-})
+const attachment = reactive({})
const emit = defineEmits(['search'])
const props = defineProps({
otherFileList: {
type: Array,
default: []
- }, type: {
+ },
+ type: {
type: String,
- default: '0'
+ default: '00'
+ },
+ uploadState:{
+ type: Boolean,
+ default: true
}
})
const tagsOption = ref([])
@@ -63,12 +65,13 @@ const tableConfig = reactive({
align: 'center'
},
{
- prop: 'processNodeTag',
- label: '内置标签',
- align: 'center'
+ prop: 'size',
+ label: '文件大小',
+ align: 'center',
+ currentRender: ({row, index}) => (parseInt(row.size / 1024) + 'KB')
},
{
- prop: 'size',
+ prop: 'createTime',
label: '上传时间',
align: 'center',
},
@@ -90,11 +93,7 @@ const tableConfig = reactive({
const showTable = ref(true)
const getTagsOption = () => {
if (!route.query.id) return
- let params = {
- projectId: route.query.id
- }
- getTags(params).then(res => {
-
+ getTags(route.query.id).then(res => {
if (res.code === 1000) {
tagsOption.value = res.data
} else {
@@ -122,11 +121,7 @@ const handleDownload = (row) => {
})
}
watch(() => props.type, (val) => {
- console.log('va四川省l',val)
props.type = val
- if (val === '3') {
- getTagsOption()
- }
})
watch(() => props.otherFileList, (val) => {
showTable.value = false
@@ -135,12 +130,9 @@ watch(() => props.otherFileList, (val) => {
})
props.otherFileList = val
})
-if (props.type === '3') {
+if (props.type === '40') {
getTagsOption()
}
-defineExpose({
- tagsOption
-})
diff --git a/src/views/expense-management/share/index.vue b/src/views/expense-management/share/index.vue
index 211f087..37f6bc9 100644
--- a/src/views/expense-management/share/index.vue
+++ b/src/views/expense-management/share/index.vue
@@ -77,7 +77,13 @@ const tableConfig = reactive({
label: '状态',
align: 'center',
showOverflowTooltip: false,
- // currentRender: ({row, index}) => ()
+ currentRender: ({row, index}) => {
+ if (row.state == undefined||row.state == 0) {
+ return '--'
+ } else {
+ return ()
+ }
+ }
},
{
prop: 'oper',
diff --git a/src/views/home/index.vue b/src/views/home/index.vue
index d8fd861..6abf334 100644
--- a/src/views/home/index.vue
+++ b/src/views/home/index.vue
@@ -46,14 +46,14 @@
-
+
您没有任何角色, 请联系管理员!
diff --git a/src/views/project-demand/summary/detail.vue b/src/views/project-demand/summary/detail.vue
index 50f4fcd..fa087af 100644
--- a/src/views/project-demand/summary/detail.vue
+++ b/src/views/project-demand/summary/detail.vue
@@ -1,16 +1,16 @@
-
+
-
+ :processViewer="summaryProcessViewer" :loading="loading" :fileListShow="fileListShow"/>
+
+ :processViewer="summaryProcessViewer" :loading="loading" :fileListShow="fileListShow"/>
-
+ :processViewer="summaryProcessViewer" :loading="loading" :fileListShow="fileListShow"/>
@@ -27,6 +27,7 @@ const route = useRoute()
const summaryData = ref({})
const summaryProcessViewer = ref(true)
const loading = ref(false)
+const fileListShow = ref('READ')
const processStore = useProcessStore()
const active = ref(route.query.state)
const showActive = ref()
@@ -47,6 +48,10 @@ const getInfo = async (state) => {
processStore.passList.value = data.passList;
nextTick(() => {
summaryProcessViewer.value = true
+ console.log('data.formPermMap["fileList"]',data.formPermMap["fileList"])
+ if (data.formPermMap["fileList"]) {
+ fileListShow.value = data.formPermMap["fileList"].perm
+ }
})
}else {
ElNotification({
diff --git a/src/views/project-demand/summary/index.vue b/src/views/project-demand/summary/index.vue
index f81e0e4..6b5d455 100644
--- a/src/views/project-demand/summary/index.vue
+++ b/src/views/project-demand/summary/index.vue
@@ -7,12 +7,11 @@
import {reactive, ref, shallowRef} from 'vue';
import fvSelect from '@/fvcomponents/fvSelect/index.vue'
import {useRouter} from 'vue-router';
+
const localData = reactive({})
const tableIns = ref()
const router = useRouter()
-
-
const searchConfig = reactive([
{
label: '需求名称',
@@ -76,7 +75,6 @@ const searchConfig = reactive([
// colProps: {}
// },
])
-
const tableConfig = reactive({
columns: [
{
@@ -85,7 +83,12 @@ const tableConfig = reactive({
},
{
prop: 'requirementName',
- label: '名称',
+ label: '征集名称',
+ align: 'center'
+ },
+ {
+ prop: 'projectName',
+ label: '项目名称',
align: 'center'
},
{
@@ -99,7 +102,7 @@ const tableConfig = reactive({
align: 'center',
showOverflowTooltip: false,
currentRender: ({row, index}) => {
- if (row.state !== null) {
+ if (row.projectType !== null) {
return ()
} else {
return '--'
@@ -112,7 +115,7 @@ const tableConfig = reactive({
align: 'center',
showOverflowTooltip: false,
currentRender: ({row, index}) => {
- if (row.state !== null) {
+ if (row.rdSubject !== null) {
return ()
} else {
return '--'
@@ -125,7 +128,7 @@ const tableConfig = reactive({
align: 'center',
showOverflowTooltip: false,
currentRender: ({row, index}) => {
- if (row.state !== null) {
+ if (row.projectImpact !== null) {
return ()
} else {
return '--'
@@ -167,9 +170,9 @@ const tableConfig = reactive({
if (buttons.has("edit")) {
btn.push({label: '编辑', prem: ['mosr:collect:resubmit'], func: () => handleEdit(row), type: 'primary'})
}
- if (buttons.has("report")) {
- btn.push({label: '上报', prem: ['mosr:collect:reported'], func: () => handleAdd(row), type: 'primary'})
- }
+ // if (buttons.has("report")) {
+ // btn.push({label: '上报', prem: ['mosr:collect:reported'], func: () => handleAdd(row), type: 'primary'})
+ // }
return (
{
@@ -187,7 +190,7 @@ const tableConfig = reactive({
{
buttons.has("delete") ?
handleDelete(row)}/>
+ perm={['mosr:collect:del']} onDelete={() => handleDelete(row)}/>
: ''
}
@@ -198,10 +201,18 @@ const tableConfig = reactive({
api: '/workflow/mosr/requirement/collect',
params: {},
btns: [
- {name: '年度计划导出', key: '_export', color: '#DED0B2', auth: ''},
- {name: '经费预算生成', key: 'preMonty', color: '#DED0B2', auth: ''},
+ {name: '新增上报', key: 'add', color: '#DED0B2', auth: ''},
+ {name: '年度计划导出', key: '_export', auth: ''},
+ {name: '经费预算生成', key: 'preMonty', auth: ''},
]
})
+const headBtnClick = (key) => {
+ switch (key) {
+ case 'add':
+ handleAdd()
+ break;
+ }
+}
const search = (val) => {
let obj = {...val}
@@ -214,11 +225,11 @@ const search = (val) => {
tableIns.value.refresh()
}
-const handleAdd = (row) => {
+const handleAdd = () => {
router.push({
name: 'Summary/add',
query: {
- id: row.requirementId
+ // id: row.requirementId
}
})
}
@@ -235,7 +246,7 @@ const handleDetail = (row) => {
router.push({
name: 'Summary/detail',
query: {
- id: row.requirementId,
+ id: row.requirementId==null?'-1':row.requirementId,
projectId: row.projectId,
state: row.state
}
diff --git a/src/views/project-demand/summary/upload.vue b/src/views/project-demand/summary/upload.vue
index 82cfdee..c064182 100644
--- a/src/views/project-demand/summary/upload.vue
+++ b/src/views/project-demand/summary/upload.vue
@@ -8,7 +8,7 @@
-
@@ -82,6 +82,7 @@ const compositeParam = (item) => {
originalFileName: item.originalFilename,
fileType: item.fileType,
url: item.url,
+ newFile: true,
tag:'需求上报',
}
}
@@ -128,5 +129,7 @@ const handleSubmit = async () => {
diff --git a/src/views/project-management/filing/attachment.vue b/src/views/project-management/filing/attachment.vue
index 7653e0d..180ba65 100644
--- a/src/views/project-management/filing/attachment.vue
+++ b/src/views/project-management/filing/attachment.vue
@@ -1,123 +1,109 @@
-
+
+ :otherFileList="otherFileList" :uploadState="uploadState"/>
-
+
+ :otherFileList="otherFileList" :uploadState="uploadState"/>
-
+
+ :otherFileList="otherFileList" :uploadState="uploadState"/>
-
-
+
+
-
+
+ :otherFileList="otherFileList" :uploadState="uploadState"/>
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/project-management/filing/conclusion.vue b/src/views/project-management/filing/conclusion.vue
index 2487ef2..2c3b494 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) => {
@@ -104,6 +103,7 @@ const compositeParam = (item) => {
originalFileName: item.originalFilename,
fileType: item.fileType,
url: item.url,
+ newFile: true,
tag: tag
}
}
@@ -128,12 +128,6 @@ const getFileParam = (item) => {
}
}
const handleSubmit = async () => {
- // if (JSON.stringify(file.value) === "{}") {
- // attachment.value.validate()
- // return;
- // } else {
- // attachment.value.clearValidate()
- // }
let files = []
let singleFile = {}
if (file.value.fileId !== undefined) {
@@ -180,12 +174,6 @@ const handleResubmit = () => {
let singleFile = {}
let otherFiles = []
let fileArray
- // 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
diff --git a/src/views/project-management/filing/detail.vue b/src/views/project-management/filing/detail.vue
index b07c02d..f044112 100644
--- a/src/views/project-management/filing/detail.vue
+++ b/src/views/project-management/filing/detail.vue
@@ -9,13 +9,13 @@
:loading="loading"
/>
+ :processViewer="commonProvessViewer" :loading="loading" :fileListShow="fileListShow"/>
+ :processViewer="commonProvessViewer" :loading="loading" :fileListShow="fileListShow"/>
+ :processViewer="commonProvessViewer" :loading="loading" :fileListShow="fileListShow"/>
+ :processViewer="commonProvessViewer" :loading="loading" :fileListShow="fileListShow"/>
@@ -36,6 +36,7 @@ const loading = ref(false)
const processStore = useProcessStore()
const activeName = ref('first')
const commonForm = ref({})
+const fileListShow = ref('READ')
const commonProvessViewer = ref(true)
const getAllInfo = async (state) => {
@@ -43,17 +44,17 @@ const getAllInfo = async (state) => {
try {
commonProvessViewer.value = false
loading.value = true
- const {data, code,msg} = await getMapProjectStateInfo(route.query.projectId, state)
- if(code===1000){
+ const {data, code, msg} = await getMapProjectStateInfo(route.query.projectId, state)
+ if (code === 1000) {
loading.value = false
- }else {
+ } else {
ElNotification({
title: '提示',
message: msg,
- type: 'error'
+ type: 'error'
})
}
- if(data===undefined)return;
+ if (data === undefined) return;
commonForm.value = data
processStore.setDesign(data)
processStore.runningList.value = data.runningList;
@@ -63,6 +64,9 @@ const getAllInfo = async (state) => {
processStore.passList.value = data.passList;
nextTick(() => {
commonProvessViewer.value = true
+ if (data.formPermMap["fileList"]) {
+ fileListShow.value = data.formPermMap["fileList"].perm
+ }
})
loading.close()
} catch {
diff --git a/src/views/project-management/filing/index.vue b/src/views/project-management/filing/index.vue
index 4630052..41f778f 100644
--- a/src/views/project-management/filing/index.vue
+++ b/src/views/project-management/filing/index.vue
@@ -156,7 +156,7 @@ const tableConfig = reactive({
align: 'center',
showOverflowTooltip: false,
currentRender: ({row, index}) => {
- if (row.state !== null) {
+ if (row.projectType !== null) {
return ()
} else {
return '--'
@@ -169,7 +169,7 @@ const tableConfig = reactive({
align: 'center',
showOverflowTooltip: false,
currentRender: ({row, index}) => {
- if (row.state !== null) {
+ if (row.rdSubject !== null) {
return ()
} else {
return '--'
@@ -182,7 +182,7 @@ const tableConfig = reactive({
align: 'center',
showOverflowTooltip: false,
currentRender: ({row, index}) => {
- if (row.state !== null) {
+ if (row.projectImpact !== null) {
return ()
} else {
return '--'
@@ -191,7 +191,7 @@ const tableConfig = reactive({
},
{
prop: 'economicEstimate',
- label: '经济概算(万元)',
+ label: '经济概算(元)',
align: 'center'
},
{
diff --git a/src/views/project-management/filing/upload.vue b/src/views/project-management/filing/upload.vue
index ca6a791..0d18040 100644
--- a/src/views/project-management/filing/upload.vue
+++ b/src/views/project-management/filing/upload.vue
@@ -8,7 +8,7 @@
-
@@ -82,6 +82,7 @@ const compositeParam = (item) => {
originalFileName: item.originalFilename,
fileType: item.fileType,
url: item.url,
+ newFile: true,
tag: '项目归档',
}
}
@@ -127,5 +128,7 @@ const handleSubmit = async () => {
diff --git a/src/views/project-management/implementation/account.vue b/src/views/project-management/implementation/account.vue
index 225a954..e3bca82 100644
--- a/src/views/project-management/implementation/account.vue
+++ b/src/views/project-management/implementation/account.vue
@@ -89,10 +89,6 @@ const tableConfig = reactive({
align: 'center'
},
{
- prop: 'projectName',
- label: '项目名称',
- align: 'center'
- },{
prop: 'time',
label: '时间',
align: 'center'
@@ -100,12 +96,28 @@ const tableConfig = reactive({
{
prop: 'projectCost',
label: '项目费用',
- align: 'center'
+ align: 'center',
+ currentRender: ({row, index}) => {
+ if (row.projectCost !== null) {
+ return ()
+ } else {
+ return '--'
+ }
+ }
},
{
prop: 'researchStage',
label: '研发阶段',
- align: 'center'
+ align: 'center',
+ currentRender: ({row, index}) => {
+ console.log('row.researchStage',row.researchStage)
+ if (row.researchStage&&row.researchStage !== null&&row.researchStage!==undefined) {
+ console.log('ull',row.researchStage)
+ return ()
+ } else {
+ return '--'
+ }
+ }
},
{
prop: 'digest',
diff --git a/src/views/project-management/implementation/check.vue b/src/views/project-management/implementation/check.vue
index 585f157..46cf900 100644
--- a/src/views/project-management/implementation/check.vue
+++ b/src/views/project-management/implementation/check.vue
@@ -56,6 +56,7 @@ const compositeParam = (item) => {
originalFileName: item.originalFilename,
fileType: item.fileType,
url: item.url,
+ newFile: true,
tag: tag
}
}
@@ -82,13 +83,6 @@ const getFileParam = (item) => {
const handleSubmit = (instance) => {
if (!instance) return
instance.validate(async (valid) => {
- if (!valid) return
- if(JSON.stringify(file.value) === "{}"){
- attachment.value.validate()
- return;
- }else {
- attachment.value.clearValidate()
- }
if (!valid) return
let files = []
let singleFile={}
@@ -149,12 +143,6 @@ const handleResubmit = (instance) => {
let singleFile = {}
let otherFiles = []
let fileArray
- // if (JSON.stringify(file.value) === "{}"||attachment.value.singleFile===null) {
- // attachment.value.validate()
- // return;
- // } else {
- // attachment.value.clearValidate()
- // }
if (attachment.value.singleFile!==null&&name.value === 'Implementation/edit') {
singleFile = {
fileId: attachment.value.singleFile.fileId
diff --git a/src/views/project-management/implementation/detail.vue b/src/views/project-management/implementation/detail.vue
index 29333c4..7007252 100644
--- a/src/views/project-management/implementation/detail.vue
+++ b/src/views/project-management/implementation/detail.vue
@@ -1,18 +1,24 @@
-
+
-
-
-
+
+
+
+ :processViewer="commonProvessViewer" :loading="loading" :fileListShow="fileListShow"/>
@@ -24,7 +30,7 @@ import {useProcessStore} from '@/stores/processStore.js';
import CollectionDetail from "@/components/DetailComponent/CollectionDetail.vue";
import SummaryDetail from "@/components/DetailComponent/SummaryDetail.vue";
import ApprovalDetail from "@/components/DetailComponent/ApprovalDetail.vue";
-import { getMapProjectStateInfo } from '@/components/steps/api';
+import {getMapProjectStateInfo} from '@/components/steps/api';
import {ElLoading, ElNotification} from "element-plus";
import Opinion from "@/components/DetailComponent/Opinion.vue";
@@ -32,11 +38,12 @@ const route = useRoute()
const activeName = ref('first')
const loading = ref(false)
const processStore = useProcessStore()
-const cuurentStep = ref()
-route.query.step == '10' && (cuurentStep.value = 1)
-route.query.step == '20' && (cuurentStep.value = 2)
-route.query.step == '40' && (cuurentStep.value = 3)
-route.query.step == '50' && (cuurentStep.value = 4)
+const fileListShow = ref('READ')
+const currentStep = ref()
+route.query.step == '10' && (currentStep.value = 1)
+route.query.step == '20' && (currentStep.value = 2)
+route.query.step == '40' && (currentStep.value = 3)
+route.query.step == '50' && (currentStep.value = 4)
const showActive = ref()
const commonForm = ref({})
const commonProvessViewer = ref(true)
@@ -46,18 +53,18 @@ const getAllInfo = async (state) => {
try {
commonProvessViewer.value = false
loading.value = true
- const { data, code ,msg} = await getMapProjectStateInfo(route.query.projectId, state)
- if(code===1000){
+ const {data, code, msg} = await getMapProjectStateInfo(route.query.projectId, state)
+ if (code === 1000) {
loading.value = false
- }else {
+ } else {
ElNotification({
title: '提示',
message: msg,
- type: 'error'
+ type: 'error'
})
loading.close()
}
- if(data===undefined)return;
+ if (data === undefined) return;
commonForm.value = data
processStore.setDesign(data)
processStore.runningList.value = data.runningList;
@@ -67,6 +74,9 @@ const getAllInfo = async (state) => {
processStore.passList.value = data.passList;
nextTick(() => {
commonProvessViewer.value = true
+ if (data.formPermMap["fileList"]) {
+ fileListShow.value = data.formPermMap["fileList"].perm
+ }
})
loading.close()
} catch {
@@ -87,19 +97,23 @@ const stepChange = (data) => {
diff --git a/src/views/project-management/implementation/uploadFee.vue b/src/views/project-management/implementation/uploadFee.vue
index 22acfec..3d65ea2 100644
--- a/src/views/project-management/implementation/uploadFee.vue
+++ b/src/views/project-management/implementation/uploadFee.vue
@@ -2,14 +2,6 @@
-
-
-
-
-
-
-
-
@@ -93,33 +85,21 @@ import {useCacheStore} from '@/stores/cache.js'
const cacheStore = useCacheStore()
const route = useRoute()
+const router = useRouter()
const tagsViewStore = useTagsView()
const formData = ref({})
const form = ref()
const rules = reactive({
- projectName: [{required: true, message: '请输入项目名称', trigger:"blur"}],
time: [{required: true, message: '请选择时间', trigger: 'blur'}],
projectCost: [{required: true, message: '请输入项目费用', trigger: 'blur'}],
researchStage: [{required: true, message: '请输入研发阶段', trigger: 'blur'}],
digest: [{required: true, message: '请输入摘要', trigger: 'blur'}],
afterTax: [{required: true, message: '请输入税后余额', trigger: 'blur'}]
})
-const tableData=ref([
- {
- projectId: route.query.id,
- projectName: '',
- time: '',
- projectCost: '',
- researchStage: '',
- digest: '',
- afterTax: ''
- }
-])
const tableForm = reactive({
tableData: [
{
projectId: route.query.id,
- projectName: '',
time: '',
projectCost: '',
researchStage: '',
@@ -131,36 +111,38 @@ const tableForm = reactive({
const handleAdd = () => {
let row = {
projectId: route.query.id,
- projectName: '',
time: '',
projectCost: '',
researchStage: '',
digest: '',
afterTax: ''
}
- tableData.value.push(row)
+ tableForm.tableData.push(row)
}
const handleDelete = (index) => {
- tableData.value.splice(index, 1)
+ tableForm.tableData.splice(index, 1)
}
const handleSubmit = (instance) => {
if (!instance) return
instance.validate(async (valid) => {
if (!valid) return
instance.clearValidate()
- console.log('params', tableData.value)
- // const res = addLedger(tableData.value)
- // ElNotification({
- // title: '提示',
- // message: res.msg,
- // type: res.code === 1000 ? 'success' : 'error'
- // })
- // if (res.code === 1000) {
- // tagsViewStore.delVisitedViews(router.currentRoute.value.path)
- // router.push({
- // name: 'Implementation'
- // })
- // }
+ console.log('params', tableForm.tableData)
+ const res =await addLedger(tableForm.tableData)
+ ElNotification({
+ title: '提示',
+ message: res.msg,
+ type: res.code === 1000 ? 'success' : 'error'
+ })
+ if (res.code === 1000) {
+ tagsViewStore.delVisitedViews(router.currentRoute.value.path)
+ router.push({
+ name: 'Implementation/account',
+ query:{
+ id:route.query.id
+ }
+ })
+ }
})
}
const handleBack = () => {
diff --git a/src/views/project-management/initiation/apply.vue b/src/views/project-management/initiation/apply.vue
index 0634023..080caec 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/add.vue b/src/views/special-fund/add.vue
index 259c35b..ed83649 100644
--- a/src/views/special-fund/add.vue
+++ b/src/views/special-fund/add.vue
@@ -5,8 +5,8 @@
-
-
+
+
@@ -14,7 +14,7 @@
v-model:value="formData.introduce"/>
-
@@ -115,6 +115,7 @@ const compositeParam = (item) => {
originalFileName: item.originalFilename,
fileType: item.fileType,
url: item.url,
+ newFile: true,
tag: tag
}
}
@@ -169,7 +170,7 @@ const handleSubmit = async (instance) => {
const handleResubmit = () => {
if (!route.query.id) return
let params = {
- id: route.query.id,
+ specialFundId: route.query.id,
...submitParam(formData.value)
}
resubmitFund(params).then(res => {
@@ -189,11 +190,6 @@ const handleResubmit = () => {
const init = async () => {
processDiagramViewer.value = false
getFundProcess().then(res => {
- ElNotification({
- title: '提示',
- message: res.msg,
- type: res.code === 1000 ? 'success' : 'error'
- })
if (res.code === 1000) {
let data = res.data
processInstanceData.value = data
@@ -206,6 +202,12 @@ const init = async () => {
nextTick(() => {
processDiagramViewer.value = true
})
+ }else {
+ ElNotification({
+ title: '提示',
+ message: msg,
+ type:'error'
+ })
}
})
}
@@ -237,6 +239,8 @@ onMounted(async () => {
})
-
diff --git a/src/views/special-fund/index.vue b/src/views/special-fund/index.vue
index 1387703..5dd5219 100644
--- a/src/views/special-fund/index.vue
+++ b/src/views/special-fund/index.vue
@@ -10,6 +10,8 @@