+
@@ -282,16 +282,19 @@ const summaryForm = ref()
const deploymentId = ref()
const specialFundOption = ref([])
const showTable = ref(true)
+const showSingleTable = ref(false)
const otherFileList = ref([])
+const singleList = ref([])
const formData = ref({
- isSpecialFund: false,
+ isSpecialFund: true,
industryUniversityResearch: '0',
governmentDeclaration: '0',
+ resultForm:[]
})
const rules = reactive({
projectName: [{required: true, message: '请输入项目名称', trigger: 'blur'}],
- // specialFundId: [{required: true, message: '请选择专项资金', trigger: 'blur'}],
+ specialFundId: [{required: true, message: '请选择专项资金', trigger: 'blur'}],
startTime: [{required: true, message: '请选择开始时间', trigger: ['blur', 'change']}],
endTime: [{required: true, message: '请选择结束时间', trigger: ['blur', 'change']}],
rdSubject: [{required: true, message: '请选择研发主体', trigger: ['blur', 'change']}],
@@ -337,11 +340,11 @@ const getIsFund = async () => {
})
}
const getFundName = (id) => {
- let label=''
+ let label = ''
specialFundOption.value.forEach(item => {
- if(item.value==id){
- label=item.label
- }
+ if (item.value == id) {
+ label = item.label
+ }
})
return label
}
@@ -363,7 +366,12 @@ const compositeParam = (item, type) => {
const getAttachment = (val) => {
// console.log('上传文件getAttachment', val)
+ showSingleTable.value=false
formData.value.singleFile = compositeParam(val)
+ singleList.value.push( compositeParam(val))
+ nextTick(() => {
+ showSingleTable.value = true
+ })
}
const getOtherFile = (val) => {
// console.log('上传文件getOtherFile', val)
@@ -374,6 +382,14 @@ const getOtherFile = (val) => {
showTable.value = true
})
}
+// watch(() => otherFileList.value, (newVal) => {
+// console.log('newVal',newVal)
+// showTable.value = newVal.length !== 0;
+// console.log('showTable.value',showTable.value)
+// }, {deep: true})
+watch(() => singleList.value, (newVal) => {
+ showSingleTable.value = newVal.length !== 0;
+}, {deep: true})
const getFileParam = (item) => {
if (item === undefined) return;
return {
@@ -385,11 +401,12 @@ const handleSubmit = debounce(async (instance) => {
if (!instance) return
instance.validate(async (valid, fields) => {
if (!valid) {
- return ElNotification({
+ ElNotification({
title: '提示',
message: '请完善数据,再提交!',
type: 'error'
})
+ return;
}
let otherFiles = []
otherFileList.value.forEach(item => {
@@ -398,13 +415,14 @@ const handleSubmit = debounce(async (instance) => {
if (formData.value.singleFile !== undefined) {
formData.value.singleFile = getFileParam(formData.value.singleFile)
}
+ formData.value.resultForm=JSON.stringify(formData.value.resultForm)
let params = {
...formData.value,
deploymentId: deploymentId.value,
fileList: otherFiles,
requirementId: route.query.id ? route.query.id : '-1'
}
- // console.log('params', params)
+ console.log('params', params)
if (!attachment.value.isSingleFile) {
attachment.value.validate()
ElNotification({
@@ -448,14 +466,15 @@ const handleResubmit = debounce(() => {
} else {
attachment.value.clearValidate()
}
- if (formData.value.isSpecialFund&&formData.value.specialFund === null) {
- formData.value.specialFund=getFundName(formData.value.specialFundId)
+ if (formData.value.isSpecialFund && formData.value.specialFund === null) {
+ formData.value.specialFund = getFundName(formData.value.specialFundId)
}
+ formData.value.resultForm=JSON.stringify(formData.value.resultForm)
let params = {
...formData.value,
deploymentId: deploymentId.value,
fileList: otherFiles,
- requirementId: route.query.id ? route.query.id : '-1'
+ requirementId: route.query.requirementId ? route.query.requirementId : '-1'
}
// console.log('重新提交params', params, formData.value.specialFund, formData.value.specialFundId)
resubmitReported(params).then(res => {
@@ -482,7 +501,8 @@ const getDetailInfo = async () => {
type: res.code === 1000 ? 'success' : 'error'
})
if (res.code === 1000) {
- res.data.formData.specialFundId= res.data.formData.specialFundId===0?null:res.data.formData.specialFundId
+ res.data.formData.specialFundId = res.data.formData.specialFundId === 0 ? null : res.data.formData.specialFundId
+ res.data.formData.resultForm = JSON.parse(res.data.formData.resultForm)
formData.value = res.data.formData
loading.value = false
}
diff --git a/src/views/project-demand/summary/index.vue b/src/views/project-demand/summary/index.vue
index 6cc316b..b3ef500 100644
--- a/src/views/project-demand/summary/index.vue
+++ b/src/views/project-demand/summary/index.vue
@@ -8,6 +8,35 @@ import fvSelect from '@/fvcomponents/fvSelect/index.vue'
const tableIns = ref()
const router = useRouter()
+const shortcuts = [
+ {
+ text: '上周',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+ return [start, end]
+ },
+ },
+ {
+ text: '上月',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+ return [start, end]
+ },
+ },
+ {
+ text: '三月前',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+ return [start, end]
+ },
+ },
+]
const searchConfig = reactive([
{
label: '征集名称',
@@ -32,6 +61,18 @@ const searchConfig = reactive([
},
colProps: {}
},
+ {
+ label: '项目影响',
+ prop: 'projectImpact',
+ component: shallowRef(fvSelect),
+ props: {
+ cacheKey: 'project_impact',
+ placeholder: '请选择项目影响',
+ clearable: true,
+ filterable: true,
+ },
+ colProps: {}
+ },
{
label: '研发主体',
prop: 'rdSubject',
@@ -40,9 +81,31 @@ const searchConfig = reactive([
placeholder: '请选择研发主体',
cacheKey: 'rd_subject',
clearable: true,
- filterable: true
- },
- colProps: {}
+ filterable: true,
+ }
+ },
+ {
+ label: '起止时间',
+ prop: 'dateValue',
+ component: 'el-date-picker',
+ props: {
+ clearable: true,
+ type: 'daterange',
+ startPlaceholder: '开始日期',
+ endPlaceholder: '结束日期',
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ shortcuts: shortcuts
+ }
+ },
+ {
+ label: '状态',
+ prop: 'state',
+ component: shallowRef(fvSelect),
+ props: {
+ placeholder: '请选择状态',
+ clearable: true,
+ cacheKey: 'project_initiation'
+ }
},
// {
// label: '项目影响',
@@ -220,9 +283,9 @@ const headBtnClick = (key) => {
const search = (val) => {
let obj = {...val}
- if (obj.time) {
- obj.startTime = obj.time[0]
- obj.endTime = obj.time[1]
+ if (obj.dateValue) {
+ obj.startTime = obj.dateValue[0]
+ obj.endTime = obj.dateValue[1]
delete obj.dateValue
}
tableConfig.params = obj
@@ -241,7 +304,7 @@ const handleEdit = (row) => {
router.push({
name: 'Summary/edit',
query: {
- id: row.requirementId,
+ requirementId: row.requirementId,
projectId: row.projectId
}
})
diff --git a/src/views/project-management/filing/attachment.vue b/src/views/project-management/filing/attachment.vue
index 20dde41..73aea25 100644
--- a/src/views/project-management/filing/attachment.vue
+++ b/src/views/project-management/filing/attachment.vue
@@ -39,7 +39,21 @@ const schema = computed(() => {
colProps: {
span: 12
}
- }
+ },
+ {
+ label: '征集描述',
+ prop: 'collectExplain',
+ colProps: {
+ span: 12
+ }
+ },
+ {
+ label: '征集公司',
+ prop: 'affiliatedCompany',
+ colProps: {
+ span: 12
+ }
+ },
]
})
const baseForm = ref()
@@ -81,9 +95,6 @@ const handleClick = (tab) => {
}
const search = async (param) => {
- if (activeName.value === '00') {
- param.requirementId = requirementId.value
- }
param.targetId = projectId.value
param.targetState = activeName.value
searchFileList(param).then(res => {
@@ -119,7 +130,8 @@ const upload = () => {
name: 'Filing/upload',
query: {
id: route.query.id,
- name: activeName.value
+ name: activeName.value,
+ requirementId:requirementId.value
}
})
}
diff --git a/src/views/project-management/filing/conclusion.vue b/src/views/project-management/filing/conclusion.vue
deleted file mode 100644
index f67715f..0000000
--- a/src/views/project-management/filing/conclusion.vue
+++ /dev/null
@@ -1,263 +0,0 @@
-
-
-
-
-
-
- 提交
- 重新提交
- 返回
-
-
-
-
-
-
-
diff --git a/src/views/project-management/filing/index.vue b/src/views/project-management/filing/index.vue
index b8c158d..fad0044 100644
--- a/src/views/project-management/filing/index.vue
+++ b/src/views/project-management/filing/index.vue
@@ -94,7 +94,7 @@ const searchConfig = reactive([
component: 'el-date-picker',
props: {
clearable: true,
- type: 'datetimerange',
+ type: 'daterange',
startPlaceholder: '开始日期',
endPlaceholder: '结束日期',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
@@ -144,7 +144,7 @@ const tableConfig = reactive({
},
{
prop: 'affiliatedCompany',
- label: '所属公司',
+ label: '征集公司',
align: 'center'
},
{
diff --git a/src/views/project-management/filing/upload.vue b/src/views/project-management/filing/upload.vue
index ed3ec34..e9a4163 100644
--- a/src/views/project-management/filing/upload.vue
+++ b/src/views/project-management/filing/upload.vue
@@ -45,7 +45,21 @@ const schema = computed(() => {
colProps: {
span: 12
}
- }
+ },
+ {
+ label: '征集描述',
+ prop: 'collectExplain',
+ colProps: {
+ span: 12
+ }
+ },
+ {
+ label: '征集公司',
+ prop: 'affiliatedCompany',
+ colProps: {
+ span: 12
+ }
+ },
]
})
const baseForm = ref()
@@ -162,7 +176,8 @@ const handleSubmit = async () => {
await router.push({
name: 'Filing/attachment',
query:{
- id: route.query.id
+ id: route.query.id,
+ requirementId:route.query.requirementId
}
})
}
diff --git a/src/views/project-management/implementation/account.vue b/src/views/project-management/implementation/account.vue
index a279d04..3a92081 100644
--- a/src/views/project-management/implementation/account.vue
+++ b/src/views/project-management/implementation/account.vue
@@ -1,12 +1,15 @@
-
- baseForm = e">
-
-
-
-
-
-
+
+
+ baseForm = e">
+
+
+
+
+
+
+
+
diff --git a/src/views/project-management/implementation/attachment.vue b/src/views/project-management/implementation/attachment.vue
index 2c35432..b1b62a0 100644
--- a/src/views/project-management/implementation/attachment.vue
+++ b/src/views/project-management/implementation/attachment.vue
@@ -56,6 +56,20 @@ const schema = computed(() => {
span: 12
}
},
+ {
+ label: '征集描述',
+ prop: 'collectExplain',
+ colProps: {
+ span: 12
+ }
+ },
+ {
+ label: '征集公司',
+ prop: 'affiliatedCompany',
+ colProps: {
+ span: 12
+ }
+ },
]
})
const baseForm = ref()
diff --git a/src/views/project-management/implementation/check.vue b/src/views/project-management/implementation/check.vue
deleted file mode 100644
index 5200207..0000000
--- a/src/views/project-management/implementation/check.vue
+++ /dev/null
@@ -1,225 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 提交
- 重新提交
- 返回
-
-
-
-
-
-
-
diff --git a/src/views/project-management/implementation/components/ToolToShowUserPicker.vue b/src/views/project-management/implementation/components/ToolToShowUserPicker.vue
index 3dde1c2..ba962ed 100644
--- a/src/views/project-management/implementation/components/ToolToShowUserPicker.vue
+++ b/src/views/project-management/implementation/components/ToolToShowUserPicker.vue
@@ -1,8 +1,8 @@
- {{modelValue}}
-
+
{{ modelValue?'更改':'请选择抄送人员' }}
+ {{modelValue}}
diff --git a/src/views/project-management/implementation/updateTable.vue b/src/views/project-management/implementation/updateTable.vue
index d74bf80..8cfdbd6 100644
--- a/src/views/project-management/implementation/updateTable.vue
+++ b/src/views/project-management/implementation/updateTable.vue
@@ -9,9 +9,9 @@
- {{tableForm.projectChargePerson?tableForm.projectChargePerson: currentPerson.name }}
-
- {{ tableForm.projectChargePerson||currentPerson.name ? '更改' : '请选择研发人员' }}
+ {{ tableForm.projectChargePersonName }}
+
+ {{ tableForm.projectChargePersonName ? '更改' : '请选择项目负责人' }}
@@ -55,7 +55,8 @@
-
+
@@ -67,7 +68,7 @@
-
+
提交
返回
@@ -88,24 +89,35 @@ const tagsViewStore = useTagsView()
const baseForm = ref()
const route = useRoute()
const router = useRouter()
-const currentPerson = ref({})
const tableForm = ref({
projectName: '',
completeWork: '',
endTime: '',
projectBudgetDescription: '',
projectChargePerson: '',
+ projectChargePersonName: '',
projectCompletionRate: '',
projectDevelopmentWay: '',
projectId: '',
- startTime: '',
+ startTime: ''
})
const userPicker = ref()
+const userList = ref([])
+
+const showPersonnelPicker = () => {
+ userPicker.value.showUserPicker()
+}
const selected = (select) => {
- for (const selectElement of select) {
- currentPerson.value = selectElement
- tableForm.value.projectChargePerson = selectElement.id
+ if (!select || select.length === 0) {
+ return
}
+ for (const selectElement of select) {
+ tableForm.value.projectChargePerson = selectElement.id
+ tableForm.value.projectChargePersonName = selectElement.name
+ tableForm.value.companyName = selectElement.companyName
+ tableForm.value.accountType = selectElement.accountType
+ }
+ userList.value = select
}
const disabledDate = (time) => {
return time.getTime() < new Date(tableForm.value.startTime).getTime();
@@ -113,9 +125,6 @@ const disabledDate = (time) => {
const handleBack = () => {
history.back()
}
-const showPersonnelPicker = () => {
- userPicker.value.showUserPicker()
-}
const handleSubmit = async () => {
let params = {
...tableForm.value,
@@ -141,12 +150,21 @@ const handleSubmit = async () => {
}
const getBaseInfo = async () => {
const {code, data} = await getBaseInfoApi(route.query.id)
- tableForm.value.projectName = data.projectName
+ tableForm.value.projectName = data?.projectName || ''
}
getBaseInfo()
const init = async () => {
const {code, msg, data} = await searchUpdateLedgerData(route.query.id)
tableForm.value = data
+ if(data.projectChargePersonName){
+ let userObj = {
+ id: data.projectChargePerson,
+ name: data.projectChargePersonName,
+ companyName: data.companyName,
+ accountType: data.accountType,
+ }
+ userList.value.push(userObj)
+ }
if (code !== 1000) {
ElNotification({
title: '提示',
diff --git a/src/views/project-management/implementation/upload.vue b/src/views/project-management/implementation/upload.vue
index fb9d3f0..ba3c132 100644
--- a/src/views/project-management/implementation/upload.vue
+++ b/src/views/project-management/implementation/upload.vue
@@ -38,6 +38,7 @@ import {useTagsView} from '@/stores/tagsview.js'
import {uploadFileList} from "@/api/project-manage/attachment";
import {computed, ref} from "vue";
import {getBaseInfoApi} from "@/components/steps/api";
+import {downloadFile,deleteFile} from "@/api/project-demand";
const tagsViewStore = useTagsView()
const route = useRoute()
@@ -59,7 +60,21 @@ const schema = computed(() => {
colProps: {
span: 12
}
- }
+ },
+ {
+ label: '征集描述',
+ prop: 'collectExplain',
+ colProps: {
+ span: 12
+ }
+ },
+ {
+ label: '征集公司',
+ prop: 'affiliatedCompany',
+ colProps: {
+ span: 12
+ }
+ },
]
})
const baseForm = ref()
@@ -96,10 +111,14 @@ const tableConfig = reactive({
prop: 'oper',
label: '操作',
align: 'center',
+ showOverflowTooltip: false,
currentRender: ({row, index}) => {
return (
handleDownload(row)}>下载
+
handleDelete(row)}/>
)
}
@@ -112,6 +131,28 @@ const name = ref(router.currentRoute.value.name)
const rules = reactive({
tagName: [{required: true, message: '请输入标签名称', trigger: ['blur', 'change']}],
})
+const handleDelete = (row) => {
+ deleteFile(row.fileId).then(res => {
+ ElNotification({
+ title: '提示',
+ message: res.msg,
+ type: res.code === 1000 ? 'success' : 'error'
+ })
+ if (res.code === 1000) {
+ fileList.value.splice(fileList.value.findIndex((item) => item.id === row.fileId), 1);
+ }
+ });
+}
+
+const handleDownload = (row) => {
+ downloadFile(row.fileId).then(res => {
+ const blob = new Blob([res])
+ let a = document.createElement('a')
+ a.href = URL.createObjectURL(blob)
+ a.download = row.originalFileName
+ a.click()
+ })
+}
const getBaseInfo = async () => {
try {
const {code, data} = await getBaseInfoApi(route.query.id)
@@ -168,7 +209,14 @@ const getFile = (val) => {
const handleSubmit = async (instance) => {
if (!instance) return
instance.validate(async (valid) => {
- if (!valid) return
+ if (!valid) {
+ ElNotification({
+ title: '提示',
+ message: '请完善数据,再提交!',
+ type: 'error'
+ })
+ return;
+ }
let params = {
fileList: fileList.value,
projectId: route.query.id,
diff --git a/src/views/project-management/implementation/uploadFee.vue b/src/views/project-management/implementation/uploadFee.vue
index 68027a0..65f766c 100644
--- a/src/views/project-management/implementation/uploadFee.vue
+++ b/src/views/project-management/implementation/uploadFee.vue
@@ -2,22 +2,22 @@
baseForm = e">
-
-
+
+
-
+
@@ -31,9 +31,9 @@
-
+
-
+
-
+
@@ -53,7 +53,7 @@
-
+
@@ -92,7 +92,7 @@ const router = useRouter()
const tagsViewStore = useTagsView()
const formData = ref({})
const form = ref()
-const projectName=ref()
+const projectName = ref()
const schema = computed(() => {
return [
{
@@ -108,14 +108,28 @@ const schema = computed(() => {
colProps: {
span: 12
}
- }
+ },
+ {
+ label: '征集描述',
+ prop: 'collectExplain',
+ colProps: {
+ span: 12
+ }
+ },
+ {
+ label: '征集公司',
+ prop: 'affiliatedCompany',
+ colProps: {
+ span: 12
+ }
+ },
]
})
const baseForm = ref()
const rules = reactive({
time: [{required: true, message: '请选择时间', trigger: 'blur'}],
- projectCost: [{required: true, message: '请输入项目费用', trigger: 'blur'}],
- researchStage: [{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'}]
})
@@ -158,12 +172,19 @@ const handleDelete = (index) => {
const handleSubmit = (instance) => {
if (!instance) return
instance.validate(async (valid) => {
- if (!valid) return
+ if (!valid) {
+ ElNotification({
+ title: '提示',
+ message: '请完善数据,再提交!',
+ type: 'error'
+ })
+ return;
+ }
instance.clearValidate()
- tableForm.tableData.forEach(item=>{
- item.projectName=projectName.value
+ tableForm.tableData.forEach(item => {
+ item.projectName = projectName.value
})
- const res =await addLedger(tableForm.tableData)
+ const res = await addLedger(tableForm.tableData)
ElNotification({
title: '提示',
message: res.msg,
@@ -173,8 +194,8 @@ const handleSubmit = (instance) => {
tagsViewStore.delVisitedViews(router.currentRoute.value.path)
router.push({
name: 'Implementation/account',
- query:{
- id:route.query.id
+ query: {
+ id: route.query.id
}
})
}
diff --git a/src/views/project-management/initiation/apply.vue b/src/views/project-management/initiation/apply.vue
deleted file mode 100644
index 5ffb219..0000000
--- a/src/views/project-management/initiation/apply.vue
+++ /dev/null
@@ -1,270 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 提交
- 重新提交
- 返回
-
-
-
-
-
-
-
diff --git a/src/views/project-management/initiation/index.vue b/src/views/project-management/initiation/index.vue
index 1593ab8..d238277 100644
--- a/src/views/project-management/initiation/index.vue
+++ b/src/views/project-management/initiation/index.vue
@@ -141,7 +141,7 @@ const tableConfig = reactive({
},
{
prop: 'affiliatedCompany',
- label: '所属公司',
+ label: '征集公司',
align: 'center'
},
{
diff --git a/src/views/project-management/mobledetail/AllocationSummaryDetailMobile.vue b/src/views/project-management/mobledetail/AllocationSummaryDetailMobile.vue
index 6cdb330..bdfd210 100644
--- a/src/views/project-management/mobledetail/AllocationSummaryDetailMobile.vue
+++ b/src/views/project-management/mobledetail/AllocationSummaryDetailMobile.vue
@@ -12,11 +12,11 @@
--
-
+
-
+ {{scope.row.researchStage==1?'开发阶段':'研究阶段'}}
--
diff --git a/src/views/project-management/mobledetail/ApprovalDetailMoblie.vue b/src/views/project-management/mobledetail/ApprovalDetailMoblie.vue
index 322fb4b..f36614b 100644
--- a/src/views/project-management/mobledetail/ApprovalDetailMoblie.vue
+++ b/src/views/project-management/mobledetail/ApprovalDetailMoblie.vue
@@ -2,9 +2,14 @@
-
diff --git a/src/views/project-management/mobledetail/CollectionDetailMoblie.vue b/src/views/project-management/mobledetail/CollectionDetailMoblie.vue
index 83b15c6..95cbd3f 100644
--- a/src/views/project-management/mobledetail/CollectionDetailMoblie.vue
+++ b/src/views/project-management/mobledetail/CollectionDetailMoblie.vue
@@ -18,7 +18,7 @@
-
+
{{
getCompanyName(formData.companyIds)
}}
@@ -28,7 +28,7 @@
-
+
{{ formData.specialFund }}
@@ -68,12 +68,12 @@
流程图
-
diff --git a/src/views/project-management/mobledetail/ProjectApplyMoblie.vue b/src/views/project-management/mobledetail/ProjectApplyMoblie.vue
index a1e661d..993eb5e 100644
--- a/src/views/project-management/mobledetail/ProjectApplyMoblie.vue
+++ b/src/views/project-management/mobledetail/ProjectApplyMoblie.vue
@@ -16,8 +16,8 @@
diff --git a/src/views/project-management/mobledetail/ShareDetailMobile.vue b/src/views/project-management/mobledetail/ShareDetailMobile.vue
index d58d183..6c9b5ce 100644
--- a/src/views/project-management/mobledetail/ShareDetailMobile.vue
+++ b/src/views/project-management/mobledetail/ShareDetailMobile.vue
@@ -40,13 +40,13 @@
流程图