项目列表
This commit is contained in:
parent
1afe45fbce
commit
1c8479b198
26
src/api/project_total_budget.ts
Normal file
26
src/api/project_total_budget.ts
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 项目WBS表列表
|
||||||
|
export function apiProjectbudgetLists(params: any) {
|
||||||
|
return request.get({ url: '/project.project_total_budget/lists', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加项目WBS
|
||||||
|
export function apiProjectbudgetAdd(params: any) {
|
||||||
|
return request.post({ url: '/project.project_total_budget/add', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 编辑项目WBS
|
||||||
|
export function apiProjectbudgetEdit(params: any) {
|
||||||
|
return request.post({ url: '/project.project_total_budget/edit', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除项目WBS
|
||||||
|
export function apiProjectbudgetDelete(params: any) {
|
||||||
|
return request.post({ url: '/project.project_total_budget/delete', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 项目WBS详情
|
||||||
|
export function apiProjectbudgetDetail(params: any) {
|
||||||
|
return request.get({ url: '/project.project_total_budget/detail', params })
|
||||||
|
}
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -202,9 +202,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -177,9 +177,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -176,9 +176,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -189,9 +189,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
<div v-if="formData.annex && formData.annex.length > 0">
|
<div v-if="formData.annex && formData.annex.length > 0">
|
||||||
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
||||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">文件{{ index + 1 }}查看</a>
|
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -42,7 +42,7 @@
|
|||||||
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
<div v-if="formData.technical_review_annex && formData.technical_review_annex.length > 0">
|
<div v-if="formData.technical_review_annex && formData.technical_review_annex.length > 0">
|
||||||
<div v-for="(item, index) in formData.technical_review_annex" style="margin-left: 5px;display: block;">
|
<div v-for="(item, index) in formData.technical_review_annex" style="margin-left: 5px;display: block;">
|
||||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">文件{{ index + 1 }}查看</a>
|
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -61,7 +61,7 @@
|
|||||||
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
<div v-if="formData.business_contract_deviation_annex && formData.business_contract_deviation_annex.length > 0">
|
<div v-if="formData.business_contract_deviation_annex && formData.business_contract_deviation_annex.length > 0">
|
||||||
<div v-for="(item, index) in formData.business_contract_deviation_annex" style="margin-left: 5px;display: block;">
|
<div v-for="(item, index) in formData.business_contract_deviation_annex" style="margin-left: 5px;display: block;">
|
||||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">文件{{ index + 1 }}查看</a>
|
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -153,9 +153,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -128,9 +128,13 @@ defineExpose({
|
|||||||
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -295,9 +295,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -142,9 +142,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -143,9 +143,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -3,95 +3,68 @@
|
|||||||
<div class="detail-popup">
|
<div class="detail-popup">
|
||||||
<popup ref="popupRef" title="竞争对手详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
<popup ref="popupRef" title="竞争对手详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
||||||
<el-form ref="formRef" :model="formData" label-width="120px">
|
<el-form ref="formRef" :model="formData" label-width="120px">
|
||||||
<el-card class="mb-2">
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="组织">
|
|
||||||
|
|
||||||
{{ formData.org_name }}
|
<el-descriptions :column="2" border>
|
||||||
</el-form-item>
|
<el-descriptions-item label="组织名称" label-align="left" align="left" label-class-name="my-label">{{ formData.org_name }}</el-descriptions-item>
|
||||||
</el-col>
|
<el-descriptions-item label="部门名称" label-align="left" align="left" label-class-name="my-label">{{ formData.dept_name }}</el-descriptions-item>
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="客户名称" label-align="left" align="left" label-class-name="my-label">{{ formData.custom_name }}</el-descriptions-item>
|
||||||
<el-form-item label="部门">
|
<el-descriptions-item label="项目名称" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_name }}</el-descriptions-item>
|
||||||
{{ formData.dept_name }}
|
<el-descriptions-item label="项目编码" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_code }}</el-descriptions-item>
|
||||||
|
|
||||||
</el-form-item>
|
<el-descriptions-item label="需求名称" label-align="left" align="left" label-class-name="my-label">
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="项目名称">
|
|
||||||
{{ formData.project_name }}
|
|
||||||
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="客户名称">
|
|
||||||
{{ formData.custom_name }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="项目编码">
|
|
||||||
|
|
||||||
{{ formData.project_code }}
|
|
||||||
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="需求名称">
|
|
||||||
{{ formData.customer_demand_name }}
|
{{ formData.customer_demand_name }}
|
||||||
</el-form-item>
|
</el-descriptions-item>
|
||||||
</el-col>
|
<el-descriptions-item label="竞争对手名称" label-align="left" align="left" label-class-name="my-label"> {{ formData.competitor_name
|
||||||
<el-col :span="12">
|
}}</el-descriptions-item>
|
||||||
<el-form-item label="竞争对手名称">
|
<el-descriptions-item label="竞争对手联系人" label-align="left" align="left" label-class-name="my-label"> {{ formData.competitor_contacts
|
||||||
{{ formData.competitor_name }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="竞争对手联系人">
|
|
||||||
{{ formData.competitor_contacts }}
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
</el-col>
|
}}</el-descriptions-item>
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="联系人电话" label-align="left" align="left" label-class-name="my-label"> {{ formData.competitor_contacts_phone
|
||||||
<el-form-item label="联系人电话">
|
|
||||||
{{ formData.competitor_contacts_phone }}
|
}}</el-descriptions-item>
|
||||||
</el-form-item>
|
<el-descriptions-item label="竞争能力" label-align="left" align="left" label-class-name="my-label"> {{ formData.competitive_power
|
||||||
</el-col>
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="竞争对手优势" label-align="left" align="left" label-class-name="my-label"> {{ formData.competitor_advantages
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="竞争对手劣势" label-align="left" align="left" label-class-name="my-label"> {{ formData.competitor_disadvantages
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item label="备注" label-align="left" align="left" label-class-name="my-label"> {{ formData.remark
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
|
||||||
|
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="添加人" label-align="left" align="left" label-class-name="my-label"> {{ formData.add_user_name
|
||||||
<el-form-item label="竞争能力">
|
|
||||||
{{ formData.competitive_power }}
|
}}</el-descriptions-item>
|
||||||
</el-form-item>
|
<el-descriptions-item label="创建日期" label-align="left" align="left" label-class-name="my-label"> {{ formData.create_time
|
||||||
</el-col>
|
}}</el-descriptions-item>
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="更新人" label-align="left" align="left" label-class-name="my-label"> {{ formData.update_user_name
|
||||||
<el-form-item label="竞争对手优势">
|
|
||||||
{{ formData.competitor_advantages }}
|
|
||||||
</el-form-item>
|
}}</el-descriptions-item>
|
||||||
</el-col>
|
<el-descriptions-item label="更新日期" label-align="left" align="left" label-class-name="my-label"> {{ formData.update_time
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="竞争对手劣势">
|
|
||||||
{{ formData.competitor_disadvantages }}
|
|
||||||
</el-form-item>
|
}}</el-descriptions-item>
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="备注">
|
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
{{ formData.remark }}
|
<div v-if="formData.annex.length > 0">
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="附件">
|
|
||||||
<div v-if="formData.annex && formData.annex.length > 0">
|
|
||||||
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
||||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">文件{{ index + 1 }}查看</a>
|
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>暂无附件</div>
|
<div v-else>
|
||||||
</el-form-item>
|
暂无附件
|
||||||
</el-col>
|
</div>
|
||||||
</el-row>
|
</el-descriptions-item>
|
||||||
</el-card>
|
</el-descriptions>
|
||||||
</el-form>
|
</el-form>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
@ -174,9 +147,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -3,119 +3,240 @@
|
|||||||
<div class="detail-popup">
|
<div class="detail-popup">
|
||||||
<popup ref="popupRef" title="项目合同详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
<popup ref="popupRef" title="项目合同详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
||||||
<el-form ref="formRef" :model="formData" label-width="120px">
|
<el-form ref="formRef" :model="formData" label-width="120px">
|
||||||
<el-card class="mb-2">
|
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
|
||||||
<el-row>
|
<el-tab-pane label="合同信息" name="demo-tabs-1">
|
||||||
<el-col :span="12">
|
<el-descriptions :column="2" border>
|
||||||
<el-form-item label="合同名称">
|
|
||||||
{{ formData.contract_name }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="合同编号">
|
|
||||||
{{ formData.contract_code }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col> <el-col :span="12">
|
|
||||||
<el-form-item label="合同类型">
|
|
||||||
<dict-value :options="dictData.contract_type" :value="formData.contract_type" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col> <el-col :span="12">
|
|
||||||
<el-form-item label="合同计价方式">
|
|
||||||
<dict-value :options="dictData.contract_pricing_method" :value="formData.contract_pricing_method" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col> <el-col :span="12">
|
|
||||||
<el-form-item label="甲方">
|
|
||||||
{{ formData.party_a }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col> <el-col :span="12">
|
|
||||||
<el-form-item label="甲方主要负责人">
|
|
||||||
{{ formData.party_a_diretor }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col> <el-col :span="12">
|
|
||||||
<el-form-item label="甲方电话">
|
|
||||||
{{ formData.party_a_phone }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col> <el-col :span="12">
|
|
||||||
<el-form-item label="甲方手机">
|
|
||||||
{{ formData.party_a_mobile }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col> <el-col :span="12">
|
|
||||||
<el-form-item label="甲方邮箱">
|
|
||||||
{{ formData.party_a_email }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col> <el-col :span="12">
|
|
||||||
<el-form-item label="合同名称">
|
|
||||||
{{ formData.contract_name }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="乙方">
|
|
||||||
{{ formData.party_b }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col> <el-col :span="12">
|
|
||||||
<el-form-item label="乙方主要负责人">
|
|
||||||
{{ formData.party_b_diretor }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col> <el-col :span="12">
|
|
||||||
<el-form-item label="乙方电话">
|
|
||||||
{{ formData.party_a_phone }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col> <el-col :span="12">
|
|
||||||
<el-form-item label="乙方手机">
|
|
||||||
{{ formData.party_b_mobile }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col> <el-col :span="12">
|
|
||||||
<el-form-item label="乙方邮箱">
|
|
||||||
{{ formData.party_b_email }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col> <el-col :span="12">
|
|
||||||
<el-form-item label="金额">
|
|
||||||
{{ formData.amount }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="客户名称" label-align="left" align="left" label-class-name="my-label">{{ formData.custom_name }}</el-descriptions-item>
|
||||||
<el-form-item label="金额大写">
|
<el-descriptions-item label="投标编号" label-align="left" align="left" label-class-name="my-label">{{ formData.bid_document_no }}</el-descriptions-item>
|
||||||
{{ formData.amount_daxie }}
|
<el-descriptions-item label="项目名称" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_name }}</el-descriptions-item>
|
||||||
</el-form-item>
|
<el-descriptions-item label="项目编码" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_code }}</el-descriptions-item>
|
||||||
</el-col> <el-col :span="12">
|
<el-descriptions-item label="合同名称" label-align="left" align="left" label-class-name="my-label">{{ formData.contract_code }}</el-descriptions-item>
|
||||||
<el-form-item label="业务负责人">
|
<el-descriptions-item label="合同编号" label-align="left" align="left" label-class-name="my-label">{{ formData.custom_name }}</el-descriptions-item>
|
||||||
{{ formData.business_director }}
|
<el-descriptions-item label="合同类型" label-align="left" align="left" label-class-name="my-label">
|
||||||
</el-form-item>
|
{{ formData.contract_type_text }}
|
||||||
</el-col>
|
</el-descriptions-item>
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="合同计价方式" label-align="left" align="left" label-class-name="my-label"> {{ formData.contract_pricing_method_text
|
||||||
<el-form-item label="合同有效期">
|
}}</el-descriptions-item>
|
||||||
{{ formData.expire }}
|
<el-descriptions-item label="甲方" label-align="left" align="left" label-class-name="my-label"> {{ formData.party_a
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
}}</el-descriptions-item>
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="签约日期">
|
<el-descriptions-item label="乙方" label-align="left" align="left" label-class-name="my-label"> {{ formData.party_b }}</el-descriptions-item>
|
||||||
{{ formData.contract_date }}
|
|
||||||
</el-form-item>
|
<el-descriptions-item label="通讯地址" label-align="left" align="left" label-class-name="my-label"> {{ formData.party_a_contact_address
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
}}</el-descriptions-item>
|
||||||
<el-form-item label="主要条款">
|
<el-descriptions-item label="通讯地址" label-align="left" align="left" label-class-name="my-label"> {{ formData.party_b_contact_address
|
||||||
{{ formData.main_content }}
|
|
||||||
</el-form-item>
|
}}</el-descriptions-item>
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="主要负责人" label-align="left" align="left" label-class-name="my-label"> {{ formData.party_a_diretor
|
||||||
<el-form-item label="备注">
|
|
||||||
{{ formData.remark }}
|
}}</el-descriptions-item>
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
<el-descriptions-item label="主要负责人" label-align="left" align="left" label-class-name="my-label"> {{ formData.party_b_diretor
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="附件" prop="field127">
|
}}</el-descriptions-item>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<el-descriptions-item label="电话" label-align="left" align="left" label-class-name="my-label"> {{ formData.party_a_phone
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="电话" label-align="left" align="left" label-class-name="my-label"> {{ formData.party_b_phone
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="手机" label-align="left" align="left" label-class-name="my-label"> {{ formData.party_a_mobile
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="手机" label-align="left" align="left" label-class-name="my-label"> {{ formData.party_b_mobile
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="邮箱" label-align="left" align="left" label-class-name="my-label"> {{ formData.party_a_email
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="邮箱" label-align="left" align="left" label-class-name="my-label"> {{ formData.party_b_email
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="金额" label-align="left" align="left" label-class-name="my-label"> {{ formData.amount
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<!-- <el-descriptions-item label="金额大写" label-align="left" align="left" label-class-name="my-label"> {{ formData.amount
|
||||||
|
|
||||||
|
}}</el-descriptions-item> -->
|
||||||
|
<el-descriptions-item label="业务负责人" label-align="left" align="left" label-class-name="my-label"> {{ formData.business_director_name
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="状态" label-align="left" align="left" label-class-name="my-label"> {{ formData.contract_status_text
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item label="合同有效期" label-align="left" align="left" label-class-name="my-label"> {{ formData.expire
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="签约日期" label-align="left" align="left" label-class-name="my-label"> {{ formData.contract_date
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="主要条款" label-align="left" align="left" label-class-name="my-label"> {{ formData.main_content
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="备注" label-align="left" align="left" label-class-name="my-label"> {{ formData.remark
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
|
||||||
|
|
||||||
|
<el-descriptions-item label="合同附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
|
<div v-if="formData.annex.length > 0">
|
||||||
|
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
||||||
|
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
|
||||||
|
|
||||||
<div v-if="formDataannex.length > 0">
|
|
||||||
<div v-for="(item, index) in formDataannex" :key="index" style="margin-left: 5px;display: block;">
|
|
||||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
|
|
||||||
<!-- <span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span> -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>暂无文件</div>
|
<div v-else>
|
||||||
</el-form-item>
|
暂无附件
|
||||||
</el-col>
|
</div>
|
||||||
</el-row>
|
</el-descriptions-item>
|
||||||
</el-card>
|
</el-descriptions>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="洽商" name="demo-tabs-2">
|
||||||
|
<div>
|
||||||
|
<el-table :data="tableData" stripe style="width: 100%">
|
||||||
|
<el-table-column label="解决方案主题" prop='customer_demand_name' width="180" />
|
||||||
|
<el-table-column label="提交时间" prop='submission_time' width="180" />
|
||||||
|
<el-table-column label="方案内容" prop='solution_content' />
|
||||||
|
<el-table-column label="客户反馈" prop='customer_feedback' />
|
||||||
|
<el-table-column label="附件" prop="annex" show-overflow-tooltip>
|
||||||
|
<template #default="{ row }">
|
||||||
|
<div v-if="row.annex && row.annex.length > 0">
|
||||||
|
<div v-for="(item, i) in row.annex " :key='i'>
|
||||||
|
<el-link :href="item" target="_blank">文件{{ i + 1 }}查看</el-link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
暂无文件
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<div style="margin: 10px 0;">
|
||||||
|
<el-pagination v-model:current-page="pager1.page_no" v-model:page-size="pager1.page_size" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange1" @current-change="handleCurrentChange1" />
|
||||||
|
</div>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="发票" name="demo-tabs-3">
|
||||||
|
<div>
|
||||||
|
<el-table :data="tableData1" stripe style="width: 100%">
|
||||||
|
<el-table-column label="概算来源" prop='estimate_source_text' width="180" />
|
||||||
|
<el-table-column label="制单人" prop='create_user' width="180" />
|
||||||
|
<el-table-column label="报价日期" prop='quotation_date' />
|
||||||
|
<el-table-column label="技术人员" prop='technician_name' width="180" />
|
||||||
|
<el-table-column label="概算金额(万元)" prop='estimate_amount' width="180" />
|
||||||
|
<el-table-column label="要求" prop='ask' />
|
||||||
|
<el-table-column label="附件" prop="annex" show-overflow-tooltip>
|
||||||
|
<template #default="{ row }">
|
||||||
|
<div v-if="row.annex && row.annex.length > 0">
|
||||||
|
<div v-for="(item, i) in row.annex " :key='i'>
|
||||||
|
<el-link :href="item" target="_blank">文件{{ i + 1 }}查看</el-link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
暂无文件
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<div style="margin: 10px 0;">
|
||||||
|
<el-pagination v-model:current-page="pager2.page_no" v-model:page-size="pager2.page_size" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total1" @size-change="handleSizeChange2" @current-change="handleCurrentChange2" />
|
||||||
|
</div>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="回款" name="demo-tabs-4">
|
||||||
|
<div>
|
||||||
|
<el-table :data="tableData2" stripe style="width: 100%">
|
||||||
|
<el-table-column label="竞争对手名称" prop='competitor_name' width="180" />
|
||||||
|
<el-table-column label="竞争对手联系人" prop='competitor_contacts' width="180" />
|
||||||
|
<el-table-column label="联系人电话" prop='competitor_contacts_phone' />
|
||||||
|
<el-table-column label="竞争能力" prop='competitive_power' />
|
||||||
|
<el-table-column label="竞争对手优势" prop='competitor_advantages' />
|
||||||
|
<el-table-column label="竞争对手劣势" prop='competitor_disadvantages' />
|
||||||
|
<el-table-column label="备注" prop='remark' />
|
||||||
|
<el-table-column label="附件" prop="annex" show-overflow-tooltip>
|
||||||
|
<template #default="{ row }">
|
||||||
|
<div v-if="row.annex && row.annex.length > 0">
|
||||||
|
<div v-for="(item, i) in row.annex " :key='i'>
|
||||||
|
<el-link :href="item" target="_blank">文件{{ i + 1 }}查看</el-link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
暂无文件
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<div style="margin: 10px 0;">
|
||||||
|
<el-pagination v-model:current-page="pager3.page_no" v-model:page-size="pager3.page_size" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total2" @size-change="handleSizeChange3" @current-change="handleCurrentChange3" />
|
||||||
|
</div>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="退款" name="demo-tabs-5">
|
||||||
|
<div>
|
||||||
|
<el-table :data="tableData2" stripe style="width: 100%">
|
||||||
|
<el-table-column label="竞争对手名称" prop='competitor_name' width="180" />
|
||||||
|
<el-table-column label="竞争对手联系人" prop='competitor_contacts' width="180" />
|
||||||
|
<el-table-column label="联系人电话" prop='competitor_contacts_phone' />
|
||||||
|
<el-table-column label="竞争能力" prop='competitive_power' />
|
||||||
|
<el-table-column label="竞争对手优势" prop='competitor_advantages' />
|
||||||
|
<el-table-column label="竞争对手劣势" prop='competitor_disadvantages' />
|
||||||
|
<el-table-column label="备注" prop='remark' />
|
||||||
|
<el-table-column label="附件" prop="annex" show-overflow-tooltip>
|
||||||
|
<template #default="{ row }">
|
||||||
|
<div v-if="row.annex && row.annex.length > 0">
|
||||||
|
<div v-for="(item, i) in row.annex " :key='i'>
|
||||||
|
<el-link :href="item" target="_blank">文件{{ i + 1 }}查看</el-link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
暂无文件
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<div style="margin: 10px 0;">
|
||||||
|
<el-pagination v-model:current-page="pager3.page_no" v-model:page-size="pager3.page_size" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total2" @size-change="handleSizeChange3" @current-change="handleCurrentChange3" />
|
||||||
|
</div>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="结算" name="demo-tabs-6">
|
||||||
|
<div>
|
||||||
|
<el-table :data="tableData2" stripe style="width: 100%">
|
||||||
|
<el-table-column label="竞争对手名称" prop='competitor_name' width="180" />
|
||||||
|
<el-table-column label="竞争对手联系人" prop='competitor_contacts' width="180" />
|
||||||
|
<el-table-column label="联系人电话" prop='competitor_contacts_phone' />
|
||||||
|
<el-table-column label="竞争能力" prop='competitive_power' />
|
||||||
|
<el-table-column label="竞争对手优势" prop='competitor_advantages' />
|
||||||
|
<el-table-column label="竞争对手劣势" prop='competitor_disadvantages' />
|
||||||
|
<el-table-column label="备注" prop='remark' />
|
||||||
|
<el-table-column label="附件" prop="annex" show-overflow-tooltip>
|
||||||
|
<template #default="{ row }">
|
||||||
|
<div v-if="row.annex && row.annex.length > 0">
|
||||||
|
<div v-for="(item, i) in row.annex " :key='i'>
|
||||||
|
<el-link :href="item" target="_blank">文件{{ i + 1 }}查看</el-link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
暂无文件
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<div style="margin: 10px 0;">
|
||||||
|
<el-pagination v-model:current-page="pager3.page_no" v-model:page-size="pager3.page_size" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total2" @size-change="handleSizeChange3" @current-change="handleCurrentChange3" />
|
||||||
|
</div>
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
</el-form>
|
</el-form>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
@ -126,7 +247,14 @@
|
|||||||
import type { FormInstance } from 'element-plus'
|
import type { FormInstance } from 'element-plus'
|
||||||
import Popup from '@/components/popup/index.vue'
|
import Popup from '@/components/popup/index.vue'
|
||||||
import { apiCustomDetail } from '@/api/custom'
|
import { apiCustomDetail } from '@/api/custom'
|
||||||
|
import { apiCustomerDemandSolutionLists } from '@/api/customer_demand_solution'
|
||||||
|
import { apiProjectEstimateLists } from '@/api/project_estimate'
|
||||||
|
import { apiCompetitorLists } from '@/api/competitor'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
|
import type { TabsPaneContext } from 'element-plus'
|
||||||
|
|
||||||
|
const activeName = ref('demo-tabs-1')
|
||||||
|
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
@ -134,6 +262,26 @@ defineProps({
|
|||||||
default: () => ({})
|
default: () => ({})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const pager1 = reactive({
|
||||||
|
page_size: 10,
|
||||||
|
page_no: 1,
|
||||||
|
customer_demand_id: ""
|
||||||
|
})
|
||||||
|
const pager2 = reactive({
|
||||||
|
page_size: 10,
|
||||||
|
page_no: 1,
|
||||||
|
customer_demand_id: ""
|
||||||
|
})
|
||||||
|
const pager3 = reactive({
|
||||||
|
page_size: 10,
|
||||||
|
page_no: 1,
|
||||||
|
customer_demand_id: ""
|
||||||
|
})
|
||||||
|
|
||||||
|
const total = ref(0)
|
||||||
|
const total1 = ref(0)
|
||||||
|
const total2 = ref(0)
|
||||||
const emit = defineEmits(['success', 'close'])
|
const emit = defineEmits(['success', 'close'])
|
||||||
const formRef = shallowRef<FormInstance>()
|
const formRef = shallowRef<FormInstance>()
|
||||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||||
@ -143,19 +291,85 @@ const datas = reactive({
|
|||||||
cityOptions: [],
|
cityOptions: [],
|
||||||
areaOptions: [],
|
areaOptions: [],
|
||||||
});
|
});
|
||||||
|
const tableData = ref([])
|
||||||
|
const tableData1 = ref([])
|
||||||
|
const tableData2 = ref([])
|
||||||
|
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
||||||
|
console.log(tab, event)
|
||||||
|
}
|
||||||
// 表单数据
|
// 表单数据
|
||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
//条数
|
||||||
|
const handleSizeChange1 = (val: number) => {
|
||||||
|
|
||||||
|
pager1.page_size = val
|
||||||
|
solutionLists()
|
||||||
|
}
|
||||||
|
const handleSizeChange2 = (val: number) => {
|
||||||
|
|
||||||
|
pager2.page_size = val
|
||||||
|
estimateLists()
|
||||||
|
}
|
||||||
|
const handleSizeChange3 = (val: number) => {
|
||||||
|
|
||||||
|
pager3.page_size = val
|
||||||
|
competitorLists()
|
||||||
|
}
|
||||||
|
//分页
|
||||||
|
const handleCurrentChange1 = (val: number) => {
|
||||||
|
console.log(`current page: ${val}`)
|
||||||
|
pager1.page_no = val
|
||||||
|
solutionLists()
|
||||||
|
}
|
||||||
|
const handleCurrentChange2 = (val: number) => {
|
||||||
|
console.log(`current page: ${val}`)
|
||||||
|
pager2.page_no = val
|
||||||
|
estimateLists()
|
||||||
|
}
|
||||||
|
const handleCurrentChange3 = (val: number) => {
|
||||||
|
pager3.page_no = val
|
||||||
|
console.log(`current page: ${val}`)
|
||||||
|
competitorLists()
|
||||||
|
}
|
||||||
|
// 解决方案列表
|
||||||
|
const solutionLists = () => {
|
||||||
|
apiCustomerDemandSolutionLists(pager1).then((res) => {
|
||||||
|
tableData.value = res.lists
|
||||||
|
|
||||||
|
total.value = res.count
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取项目概算列表
|
||||||
|
const estimateLists = () => {
|
||||||
|
apiProjectEstimateLists(pager2).then((res) => {
|
||||||
|
tableData1.value = res.lists
|
||||||
|
total1.value = res.count
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取竞争对手列表
|
||||||
|
const competitorLists = () => {
|
||||||
|
apiCompetitorLists(pager3).then((res) => {
|
||||||
|
tableData2.value = res.lists
|
||||||
|
total2.value = res.count
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 获取详情
|
// 获取详情
|
||||||
const setFormData = async (data: Record<any, any>) => {
|
const setFormData = async (data: Record<any, any>) => {
|
||||||
Object.assign(formData, data)
|
Object.assign(formData, data)
|
||||||
|
pager1.customer_demand_id = data.id
|
||||||
|
pager2.customer_demand_id = data.id
|
||||||
|
pager3.customer_demand_id = data.id
|
||||||
if (data.annex && data.annex.length > 0) {
|
if (data.annex && data.annex.length > 0) {
|
||||||
const arry1 = data.annex.map((item: any, index: any) => {
|
const arry1 = data.annex.map((item: any, index: any) => {
|
||||||
return {
|
return {
|
||||||
@ -165,8 +379,9 @@ const setFormData = async (data: Record<any, any>) => {
|
|||||||
});
|
});
|
||||||
Object.assign(formDataannex, arry1)
|
Object.assign(formDataannex, arry1)
|
||||||
}
|
}
|
||||||
|
competitorLists()
|
||||||
|
solutionLists()
|
||||||
|
estimateLists()
|
||||||
}
|
}
|
||||||
|
|
||||||
const getDetail = async (row: Record<string, any>) => {
|
const getDetail = async (row: Record<string, any>) => {
|
||||||
@ -207,9 +422,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -22,11 +22,11 @@
|
|||||||
</el-form-item></el-col>
|
</el-form-item></el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="项目名称" prop="buy_bidding_document_id" @click="tanchuan" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
<el-form-item label="项目名称" prop="buy_bidding_document_id" @click="tanchuan" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||||
<el-input v-model="document_name" readonly clearable placeholder="请选择项目" />
|
<el-input v-model="project_name" readonly clearable placeholder="请选择项目" />
|
||||||
</el-form-item></el-col>
|
</el-form-item></el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="项目编码" prop="buy_bidding_document_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
<el-form-item label="项目编码" prop="buy_bidding_document_id" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||||
<el-input v-model="document_code" clearable disabled placeholder="系统自动填写" />
|
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
|
||||||
</el-form-item></el-col>
|
</el-form-item></el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合同名称" prop="contract_name" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
<el-form-item label="合同名称" prop="contract_name" :rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||||
@ -87,10 +87,10 @@
|
|||||||
<el-input v-model="formData.amount" clearable placeholder="请输入金额" @input="amountinput" />
|
<el-input v-model="formData.amount" clearable placeholder="请输入金额" @input="amountinput" />
|
||||||
</el-form-item></el-col><el-col :span="8">
|
</el-form-item></el-col><el-col :span="8">
|
||||||
<el-form-item label="金额大写" prop="amount_daxie">
|
<el-form-item label="金额大写" prop="amount_daxie">
|
||||||
<el-input v-model="formData.amount_daxie" readonly clearable placeholder="请输入金额大写" />
|
<el-input v-model="amount_daxie" readonly clearable placeholder="请输入金额大写" />
|
||||||
</el-form-item></el-col><el-col :span="8">
|
</el-form-item></el-col><el-col :span="8">
|
||||||
<el-form-item label="业务负责人" prop="business_director">
|
<el-form-item label="业务负责人" prop="business_director" @click="userclick">
|
||||||
<el-input v-model="formData.business_director" clearable placeholder="请输入业务负责人" />
|
<el-input v-model="business_director_name" readonly clearable placeholder="请输入业务负责人" />
|
||||||
</el-form-item></el-col>
|
</el-form-item></el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
|
|
||||||
@ -149,6 +149,7 @@
|
|||||||
<el-dialog v-model="showDialog2" title="选择项目" width="70%">
|
<el-dialog v-model="showDialog2" title="选择项目" width="70%">
|
||||||
<projectTable @customEvent="customEvent2" :customer_id="formData.customer_id"></projectTable>
|
<projectTable @customEvent="customEvent2" :customer_id="formData.customer_id"></projectTable>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<personnelselector ref="personnel" @confirm="submituser" type="1"></personnelselector>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -158,6 +159,7 @@ import Popup from '@/components/popup/index.vue'
|
|||||||
import biddocumentTable from "@/components/biddocument/index.vue"
|
import biddocumentTable from "@/components/biddocument/index.vue"
|
||||||
import reviewprocess from '@/components/reviewprocess/index.vue'
|
import reviewprocess from '@/components/reviewprocess/index.vue'
|
||||||
import projectTable from "@/components/project/index.vue"
|
import projectTable from "@/components/project/index.vue"
|
||||||
|
import personnelselector from '@/components/personnelselector/index.vue'
|
||||||
import { apiContractAdd, apiContractEdit, apiContractDetail } from '@/api/contract'
|
import { apiContractAdd, apiContractEdit, apiContractDetail } from '@/api/contract'
|
||||||
import { timeFormat } from '@/utils/util'
|
import { timeFormat } from '@/utils/util'
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
@ -180,11 +182,14 @@ const showDialog = ref(false)
|
|||||||
const showDialog1 = ref(false)
|
const showDialog1 = ref(false)
|
||||||
const showDialog2 = ref(false)
|
const showDialog2 = ref(false)
|
||||||
const custom_name = ref('')
|
const custom_name = ref('')
|
||||||
const document_name = ref('')
|
const project_name = ref('')
|
||||||
const document_code = ref('')
|
const project_code = ref('')
|
||||||
const bidding_code = ref('')
|
const bidding_code = ref('')
|
||||||
|
const amount_daxie = ref('')
|
||||||
|
const business_director_name = ref('')
|
||||||
const list1 = reactive([])
|
const list1 = reactive([])
|
||||||
const list2 = reactive([])
|
const list2 = reactive([])
|
||||||
|
const personnel = ref<any>()
|
||||||
import { deptAll } from '@/api/org/department'
|
import { deptAll } from '@/api/org/department'
|
||||||
import { getAll } from '@/api/org/organization'
|
import { getAll } from '@/api/org/organization'
|
||||||
import feedback from '@/utils/feedback'
|
import feedback from '@/utils/feedback'
|
||||||
@ -232,7 +237,18 @@ const handleAvatarSuccess_four = (
|
|||||||
const delFileFn = (index: number) => {
|
const delFileFn = (index: number) => {
|
||||||
formDataannex.splice(index, 1)
|
formDataannex.splice(index, 1)
|
||||||
}
|
}
|
||||||
|
//打开弹窗
|
||||||
|
|
||||||
|
const userclick = () => {
|
||||||
|
// console.log(personnel.value, '1111111')
|
||||||
|
personnel.value.open()
|
||||||
|
|
||||||
|
}
|
||||||
|
//确认
|
||||||
|
const submituser = (e: any) => {
|
||||||
|
formData.business_director = e.id;
|
||||||
|
business_director_name.value = e.name;
|
||||||
|
}
|
||||||
//获取值打开弹窗
|
//获取值打开弹窗
|
||||||
const tanchuan = () => {
|
const tanchuan = () => {
|
||||||
if (formData.customer_id) {
|
if (formData.customer_id) {
|
||||||
@ -251,14 +267,14 @@ const customEvent = (e: any) => {
|
|||||||
};
|
};
|
||||||
const customEvent1 = (e: any) => {
|
const customEvent1 = (e: any) => {
|
||||||
formData.buy_bidding_document_id = e.id;
|
formData.buy_bidding_document_id = e.id;
|
||||||
document_name.value = e.project_name;
|
project_name.value = e.project_name;
|
||||||
document_code.value = e.project_code
|
project_code.value = e.project_code
|
||||||
bidding_code.value = e.bid_document_no
|
bidding_code.value = e.bid_document_no
|
||||||
showDialog1.value = false;
|
showDialog1.value = false;
|
||||||
};
|
};
|
||||||
const customEvent2 = (e: any) => {
|
const customEvent2 = (e: any) => {
|
||||||
document_name.value = e.name;
|
project_name.value = e.name;
|
||||||
document_code.value = e.project_code
|
project_code.value = e.project_code
|
||||||
showDialog2.value = false;
|
showDialog2.value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -266,7 +282,7 @@ const customEvent2 = (e: any) => {
|
|||||||
const amountinput = (e) => {
|
const amountinput = (e) => {
|
||||||
// console.log(e)
|
// console.log(e)
|
||||||
if (e && e > 0) {
|
if (e && e > 0) {
|
||||||
formData.amount_daxie = toChinesNum(e)
|
amount_daxie.value = toChinesNum(e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//获取所有组织
|
//获取所有组织
|
||||||
@ -327,7 +343,7 @@ const formData = reactive({
|
|||||||
party_b_mobile: '',
|
party_b_mobile: '',
|
||||||
party_b_email: '',
|
party_b_email: '',
|
||||||
amount: '',
|
amount: '',
|
||||||
amount_daxie: '',
|
|
||||||
business_director: '',
|
business_director: '',
|
||||||
contract_status: '',
|
contract_status: '',
|
||||||
expire: '',
|
expire: '',
|
||||||
@ -362,17 +378,21 @@ const setFormData = async (data: Record<any, any>) => {
|
|||||||
if (data.dept_id) {
|
if (data.dept_id) {
|
||||||
getlist1(data.org_id)
|
getlist1(data.org_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const key in formData) {
|
for (const key in formData) {
|
||||||
if (data[key] != null && data[key] != undefined) {
|
if (data[key] != null && data[key] != undefined) {
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
formData[key] = data[key]
|
formData[key] = data[key]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
custom_name.value = data.custom.name
|
if (data.amount) {
|
||||||
document_name.value = data.document.bid_company_name
|
amountinput(data.amount)
|
||||||
document_code.value = data.document.bid_document_no
|
}
|
||||||
bidding_code.value = data.document.bid_document_no
|
custom_name.value = data.custom_name
|
||||||
|
project_name.value = data.project_name
|
||||||
|
project_code.value = data.project_code
|
||||||
|
bidding_code.value = data.bid_document_no
|
||||||
|
business_director_name.value = data.business_director_name
|
||||||
}
|
}
|
||||||
|
|
||||||
const getDetail = async (row: Record<string, any>) => {
|
const getDetail = async (row: Record<string, any>) => {
|
||||||
|
@ -31,11 +31,12 @@
|
|||||||
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="55" />
|
<el-table-column type="selection" width="55" />
|
||||||
<el-table-column label="序号" type="index" width="55" />
|
<el-table-column label="序号" type="index" width="55" />
|
||||||
<el-table-column label="客户名称" prop="customer_name" show-overflow-tooltip />
|
<el-table-column label="流程编号" prop="code" show-overflow-tooltip />
|
||||||
<el-table-column label="审批id" prop="approve_id" show-overflow-tooltip />
|
<el-table-column label="合同编号" prop="bid_document_no" show-overflow-tooltip />
|
||||||
|
<el-table-column label="客户名称" prop="custom_name" show-overflow-tooltip />
|
||||||
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
|
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
|
||||||
<el-table-column label="项目编码" prop="project_code" show-overflow-tooltip />
|
<el-table-column label="项目编码" prop="project_code" show-overflow-tooltip />
|
||||||
<el-table-column label="合同编号" prop="contract_code" show-overflow-tooltip />
|
|
||||||
<el-table-column label="合同类型" prop="contract_type">
|
<el-table-column label="合同类型" prop="contract_type">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<dict-value :options="dictData.contract_type" :value="row.contract_type" />
|
<dict-value :options="dictData.contract_type" :value="row.contract_type" />
|
||||||
|
@ -163,9 +163,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -471,11 +471,15 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
@ -476,11 +476,15 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
@ -476,11 +476,15 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
@ -343,9 +343,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -568,9 +568,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -17,7 +17,8 @@
|
|||||||
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
<div v-if="formData.annex && formData.annex.length > 0">
|
<div v-if="formData.annex && formData.annex.length > 0">
|
||||||
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
||||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">文件{{ index + 1 }} 查看</a>
|
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
|
@ -19,7 +19,8 @@
|
|||||||
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
<div v-if="formData.annex && formData.annex.length > 0">
|
<div v-if="formData.annex && formData.annex.length > 0">
|
||||||
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
||||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">文件{{ index + 1 }} 查看</a>
|
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
|
@ -34,8 +34,8 @@
|
|||||||
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
<div v-if="formData.annex && formData.annex.length > 0">
|
<div v-if="formData.annex && formData.annex.length > 0">
|
||||||
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
||||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">文件{{ index + 1 }} 查看</a>
|
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
暂无文件
|
暂无文件
|
||||||
|
@ -120,7 +120,7 @@
|
|||||||
<el-form-item label="附件" prop="field87">
|
<el-form-item label="附件" prop="field87">
|
||||||
<div v-if="formData.annex && formData.annex.length > 0">
|
<div v-if="formData.annex && formData.annex.length > 0">
|
||||||
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
||||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">文件{{ index + 1 }}查看</a>
|
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -5,84 +5,58 @@
|
|||||||
<el-form ref="formRef" :model="formData" label-width="120px">
|
<el-form ref="formRef" :model="formData" label-width="120px">
|
||||||
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
|
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
|
||||||
<el-tab-pane label="需求详情" name="first">
|
<el-tab-pane label="需求详情" name="first">
|
||||||
<el-card class="mb-2">
|
<el-descriptions :column="2" border>
|
||||||
<el-row>
|
<el-descriptions-item label="组织名称" label-align="left" align="left" label-class-name="my-label">{{ formData.org_name }}</el-descriptions-item>
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="部门名称" label-align="left" align="left" label-class-name="my-label">{{ formData.dept_name }}</el-descriptions-item>
|
||||||
<el-form-item label="组织">
|
<el-descriptions-item label="客户名称" label-align="left" align="left" label-class-name="my-label">{{ formData.custom_name }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="项目名称" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_name }}</el-descriptions-item>
|
||||||
{{ formData.org_name }}
|
<el-descriptions-item label="项目编码" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_code }}</el-descriptions-item>
|
||||||
</el-form-item>
|
<el-descriptions-item label="需求主题" label-align="left" align="left" label-class-name="my-label">
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="部门">
|
|
||||||
{{ formData.dept_name }}
|
|
||||||
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="项目名称">
|
|
||||||
{{ formData.project_name }}
|
|
||||||
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="客户名称">
|
|
||||||
{{ formData.custom_name }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="项目编码">
|
|
||||||
|
|
||||||
{{ formData.project_code }}
|
|
||||||
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="需求主题">
|
|
||||||
{{ formData.theme }}
|
{{ formData.theme }}
|
||||||
</el-form-item>
|
</el-descriptions-item>
|
||||||
</el-col>
|
<el-descriptions-item label="客户需求提供人" label-align="left" align="left" label-class-name="my-label"> {{ formData.supplier
|
||||||
<el-col :span="12">
|
}}</el-descriptions-item>
|
||||||
<el-form-item label="需求提供人">
|
<el-descriptions-item label="提供人联系方式" label-align="left" align="left" label-class-name="my-label"> {{ formData.supplier_contacts
|
||||||
{{ formData.supplier }}
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
</el-col>
|
}}</el-descriptions-item>
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="提供人联系方式">
|
|
||||||
{{ formData.supplier_contacts }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-descriptions-item label="重要程度" label-align="left" align="left" label-class-name="my-label"> {{ formData.importance_text }}</el-descriptions-item>
|
||||||
<el-form-item label="重要程度">
|
|
||||||
<dict-value :options="dictData.importance" :value="formData.importance" />
|
<el-descriptions-item label="记录时间" label-align="left" align="left" label-class-name="my-label"> {{ formData.recording_time
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
}}</el-descriptions-item>
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="需求内容" label-align="left" align="left" label-class-name="my-label"> {{ formData.demand_content
|
||||||
<el-form-item label="记录时间">
|
|
||||||
{{ formData.recording_time }}
|
}}</el-descriptions-item>
|
||||||
</el-form-item>
|
|
||||||
</el-col> <el-col :span="12">
|
<el-descriptions-item label="添加人" label-align="left" align="left" label-class-name="my-label"> {{ formData.add_user_name
|
||||||
<el-form-item label="需求内容">
|
|
||||||
{{ formData.demand_content }}
|
}}</el-descriptions-item>
|
||||||
</el-form-item>
|
<el-descriptions-item label="创建日期" label-align="left" align="left" label-class-name="my-label"> {{ formData.create_time
|
||||||
</el-col>
|
}}</el-descriptions-item>
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="更新人" label-align="left" align="left" label-class-name="my-label"> {{ formData.update_user_name
|
||||||
<el-form-item label="附件">
|
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="更新日期" label-align="left" align="left" label-class-name="my-label"> {{ formData.update_time
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
|
||||||
|
|
||||||
|
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
<div v-if="formDataannex.length > 0">
|
<div v-if="formDataannex.length > 0">
|
||||||
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
|
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
|
||||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
|
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">文件{{ index + 1 }}查看</el-link>
|
||||||
<span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
暂无附件
|
暂无附件
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-descriptions-item>
|
||||||
</el-col>
|
</el-descriptions>
|
||||||
</el-row>
|
|
||||||
</el-card>
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="解决方案" name="second">
|
<el-tab-pane label="解决方案" name="second">
|
||||||
<div>
|
<div>
|
||||||
@ -350,9 +324,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -2,82 +2,57 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="detail-popup">
|
<div class="detail-popup">
|
||||||
<popup ref="popupRef" title="解决方案详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
<popup ref="popupRef" title="解决方案详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
||||||
<el-form ref="formRef" :model="formData" label-width="120px">
|
|
||||||
<el-card class="mb-2">
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="组织">
|
|
||||||
|
|
||||||
{{ formData.org_name }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="部门">
|
|
||||||
{{ formData.dept_name }}
|
|
||||||
|
|
||||||
</el-form-item>
|
<el-descriptions :column="2" border>
|
||||||
</el-col>
|
<el-descriptions-item label="组织名称" label-align="left" align="left" label-class-name="my-label">{{ formData.org_name }}</el-descriptions-item>
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="部门名称" label-align="left" align="left" label-class-name="my-label">{{ formData.dept_name }}</el-descriptions-item>
|
||||||
<el-form-item label="项目名称">
|
<el-descriptions-item label="客户名称" label-align="left" align="left" label-class-name="my-label">{{ formData.custom_name }}</el-descriptions-item>
|
||||||
{{ formData.project_name }}
|
<el-descriptions-item label="项目名称" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_name }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="项目编码" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_code }}</el-descriptions-item>
|
||||||
</el-form-item>
|
<el-descriptions-item label="需求名称" label-align="left" align="left" label-class-name="my-label">
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="客户名称">
|
|
||||||
{{ formData.custom_name }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="项目编码">
|
|
||||||
|
|
||||||
{{ formData.project_code }}
|
|
||||||
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="需求名称">
|
|
||||||
{{ formData.customer_demand_name }}
|
{{ formData.customer_demand_name }}
|
||||||
</el-form-item>
|
</el-descriptions-item>
|
||||||
</el-col>
|
<el-descriptions-item label="解决方案主题" label-align="left" align="left" label-class-name="my-label">
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="解决方案主题">
|
|
||||||
{{ formData.theme }}
|
{{ formData.theme }}
|
||||||
</el-form-item>
|
</el-descriptions-item>
|
||||||
</el-col>
|
<el-descriptions-item label="提交时间" label-align="left" align="left" label-class-name="my-label"> {{ formData.submission_time
|
||||||
<el-col :span="12">
|
}}</el-descriptions-item>
|
||||||
<el-form-item label="方案内容">
|
<el-descriptions-item label="方案内容" label-align="left" align="left" label-class-name="my-label"> {{ formData.solution_content
|
||||||
{{ formData.solution_content }}
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
</el-col>
|
}}</el-descriptions-item>
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="客户反馈">
|
|
||||||
{{ formData.customer_feedback }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="提交时间">
|
<el-descriptions-item label="添加人" label-align="left" align="left" label-class-name="my-label"> {{ formData.add_user_name
|
||||||
{{ formData.submission_time }}
|
|
||||||
</el-form-item>
|
}}</el-descriptions-item>
|
||||||
</el-col>
|
<el-descriptions-item label="创建日期" label-align="left" align="left" label-class-name="my-label"> {{ formData.create_time
|
||||||
<el-col :span="24">
|
}}</el-descriptions-item>
|
||||||
<el-form-item label="附件">
|
<el-descriptions-item label="更新人" label-align="left" align="left" label-class-name="my-label"> {{ formData.update_user_name
|
||||||
<div v-if="formData.annex && formData.annex.length > 0">
|
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="更新日期" label-align="left" align="left" label-class-name="my-label"> {{ formData.update_time
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
|
||||||
|
|
||||||
|
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
|
<div v-if="formData.annex.length > 0">
|
||||||
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
||||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">文件{{ index + 1 }}查看</a>
|
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>暂无附件</div>
|
<div v-else>
|
||||||
</el-form-item>
|
暂无附件
|
||||||
</el-col>
|
</div>
|
||||||
</el-row>
|
</el-descriptions-item>
|
||||||
</el-card>
|
</el-descriptions>
|
||||||
</el-form>
|
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -159,9 +134,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -176,9 +176,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -186,9 +186,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -168,9 +168,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -183,9 +183,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -167,9 +167,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -471,11 +471,15 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
@ -476,11 +476,15 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
@ -177,9 +177,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -177,9 +177,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -177,9 +177,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -176,9 +176,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -172,9 +172,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -174,9 +174,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -186,9 +186,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -275,9 +275,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -197,9 +197,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -181,9 +181,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -153,9 +153,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -51,7 +51,8 @@
|
|||||||
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
<div v-if="formData.annex && formData.annex.length > 0">
|
<div v-if="formData.annex && formData.annex.length > 0">
|
||||||
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
||||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">文件{{ index + 1 }} 查看</a>
|
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
@ -73,7 +74,7 @@
|
|||||||
<el-tab-pane label="分包" name="demo-9">Config</el-tab-pane>
|
<el-tab-pane label="分包" name="demo-9">Config</el-tab-pane>
|
||||||
<el-tab-pane label="进度" name="demo-10">Role</el-tab-pane>
|
<el-tab-pane label="进度" name="demo-10">Role</el-tab-pane>
|
||||||
<el-tab-pane label="任务" name="demo-11">Task</el-tab-pane>
|
<el-tab-pane label="任务" name="demo-11">Task</el-tab-pane>
|
||||||
<el-tab-pane label="人力" name="demo-8">Task</el-tab-pane>
|
<el-tab-pane label="人力" name="demo-12">Task</el-tab-pane>
|
||||||
<el-tab-pane label="机具" name="demo-13">Task</el-tab-pane>
|
<el-tab-pane label="机具" name="demo-13">Task</el-tab-pane>
|
||||||
<el-tab-pane label="收款" name="demo-14">Task</el-tab-pane>
|
<el-tab-pane label="收款" name="demo-14">Task</el-tab-pane>
|
||||||
<el-tab-pane label="付款" name="demo-15">Task</el-tab-pane>
|
<el-tab-pane label="付款" name="demo-15">Task</el-tab-pane>
|
||||||
|
@ -178,9 +178,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -178,9 +178,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -178,9 +178,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -126,9 +126,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -191,9 +191,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -118,9 +118,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
<el-table-column label="项目编码" prop="project_code" show-overflow-tooltip />
|
<el-table-column label="项目编码" prop="project_code" show-overflow-tooltip />
|
||||||
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
|
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
|
||||||
<el-table-column label="日期" prop="attendance_date" show-overflow-tooltip />
|
<el-table-column label="日期" prop="attendance_date" show-overflow-tooltip />
|
||||||
<el-table-column label="出勤人数" prop="due_date" show-overflow-tooltip />
|
<el-table-column label="出勤人数" prop=" " show-overflow-tooltip />
|
||||||
<el-table-column label="记工数量" prop="work_record_num_total" show-overflow-tooltip />
|
<el-table-column label="记工数量" prop="work_record_num_total" show-overflow-tooltip />
|
||||||
<el-table-column label="日工资合计" prop="daily_salary_total" show-overflow-tooltip />
|
<el-table-column label="日工资合计" prop="daily_salary_total" show-overflow-tooltip />
|
||||||
<el-table-column label="日生活费合计" prop="daily_living_total" show-overflow-tooltip />
|
<el-table-column label="日生活费合计" prop="daily_living_total" show-overflow-tooltip />
|
||||||
|
@ -130,9 +130,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -130,9 +130,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -150,9 +150,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -132,9 +132,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -2,91 +2,75 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="detail-popup">
|
<div class="detail-popup">
|
||||||
<popup ref="popupRef" title="项目概算详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
<popup ref="popupRef" title="项目概算详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
||||||
<el-form ref="formRef" :model="formData" label-width="120px">
|
<el-descriptions :column="2" border>
|
||||||
<el-card class="mb-2">
|
<el-descriptions-item label="组织名称" label-align="left" align="left" label-class-name="my-label">{{ formData.org_name }}</el-descriptions-item>
|
||||||
<el-row>
|
<el-descriptions-item label="部门名称" label-align="left" align="left" label-class-name="my-label">{{ formData.dept_name }}</el-descriptions-item>
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="客户名称" label-align="left" align="left" label-class-name="my-label">{{ formData.custom_name }}</el-descriptions-item>
|
||||||
<el-form-item label="组织">
|
<el-descriptions-item label="项目名称" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_name }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="项目编码" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_code }}</el-descriptions-item>
|
||||||
{{ formData.org_name }}
|
<el-descriptions-item label="概算来源" label-align="left" align="left" label-class-name="my-label">
|
||||||
</el-form-item>
|
{{ formData.estimate_source_text
|
||||||
</el-col>
|
}}
|
||||||
<el-col :span="12">
|
</el-descriptions-item>
|
||||||
<el-form-item label="部门">
|
<el-descriptions-item label="需求名称" label-align="left" align="left" label-class-name="my-label">
|
||||||
{{ formData.dept_name }}
|
|
||||||
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="项目名称">
|
|
||||||
{{ formData.project_name }}
|
|
||||||
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="客户名称">
|
|
||||||
{{ formData.custom_name }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="需求名称">
|
|
||||||
|
|
||||||
{{ formData.customer_demand_name }}
|
{{ formData.customer_demand_name }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="联系人" label-align="left" align="left" label-class-name="my-label"> {{ formData.contact_name
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="联系电话" label-align="left" align="left" label-class-name="my-label"> {{ formData.contact_phone
|
||||||
|
|
||||||
</el-form-item>
|
}}</el-descriptions-item>
|
||||||
</el-col>
|
<el-descriptions-item label="制单人" label-align="left" align="left" label-class-name="my-label"> {{ formData.create_user
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="概算来源">
|
|
||||||
<dict-value :options="dictData.estimate_source" :value="formData.estimate_source" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="制单人">
|
|
||||||
{{ formData.create_user }}
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
</el-col>
|
}}</el-descriptions-item>
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="技术人员">
|
<el-descriptions-item label="报价日期" label-align="left" align="left" label-class-name="my-label"> {{ formData.quotation_date
|
||||||
{{ formData.technician_name }}
|
|
||||||
</el-form-item>
|
}}</el-descriptions-item>
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="发票类型" label-align="left" align="left" label-class-name="my-label"> {{ formData.invoice_type_text
|
||||||
<el-form-item label="报价日期">
|
|
||||||
{{ formData.quotation_date }}
|
}}</el-descriptions-item>
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
<el-descriptions-item label="概算金额(万元)" label-align="left" align="left" label-class-name="my-label"> {{ formData.estimate_amount
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="发票类型">
|
}}</el-descriptions-item>
|
||||||
<dict-value :options="dictData.invoice_type" :value="formData.invoice_type" />
|
|
||||||
</el-form-item>
|
<el-descriptions-item label="要求" label-align="left" align="left" label-class-name="my-label"> {{ formData.ask
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
}}</el-descriptions-item>
|
||||||
<el-form-item label="概算金额">
|
|
||||||
{{ formData.estimate_amount }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col> <el-col :span="12">
|
|
||||||
<el-form-item label="要求">
|
<el-descriptions-item label="添加人" label-align="left" align="left" label-class-name="my-label"> {{ formData.add_user_name
|
||||||
{{ formData.ask }}
|
|
||||||
</el-form-item>
|
}}</el-descriptions-item>
|
||||||
</el-col>
|
<el-descriptions-item label="创建日期" label-align="left" align="left" label-class-name="my-label"> {{ formData.create_time
|
||||||
<el-col :span="24">
|
}}</el-descriptions-item>
|
||||||
<el-form-item label="附件" prop="field127">
|
<el-descriptions-item label="更新人" label-align="left" align="left" label-class-name="my-label"> {{ formData.update_user_name
|
||||||
|
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="更新日期" label-align="left" align="left" label-class-name="my-label"> {{ formData.update_time
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
|
||||||
|
|
||||||
|
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
|
<div v-if="formData.annex.length > 0">
|
||||||
|
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
||||||
|
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
|
||||||
|
|
||||||
<div v-if="formDataannex.length > 0">
|
|
||||||
<div v-for="(item, index) in formDataannex" style="margin-left: 5px;display: block;">
|
|
||||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">{{ item.name }}</a>
|
|
||||||
<!-- <span style="cursor: pointer;margin-left: 5px;" @click="delFileFn(index)">x</span> -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>暂无附件</div>
|
<div v-else>
|
||||||
|
暂无附件
|
||||||
|
</div>
|
||||||
|
</el-descriptions-item>
|
||||||
</el-form-item></el-col>
|
</el-descriptions>
|
||||||
</el-row>
|
|
||||||
</el-card>
|
|
||||||
</el-form>
|
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -125,15 +109,7 @@ const formData = reactive({
|
|||||||
// 获取详情
|
// 获取详情
|
||||||
const setFormData = async (data: Record<any, any>) => {
|
const setFormData = async (data: Record<any, any>) => {
|
||||||
Object.assign(formData, data)
|
Object.assign(formData, data)
|
||||||
if (data.annex && data.annex.length > 0) {
|
|
||||||
const arry1 = data.annex.map((item: any, index: any) => {
|
|
||||||
return {
|
|
||||||
name: `文件${index + 1}`,
|
|
||||||
uri: item
|
|
||||||
};
|
|
||||||
});
|
|
||||||
Object.assign(formDataannex, arry1)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -177,9 +153,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -178,9 +178,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -178,9 +178,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -178,9 +178,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -178,9 +178,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -178,9 +178,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -2,108 +2,69 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="detail-popup">
|
<div class="detail-popup">
|
||||||
<popup ref="popupRef" title="项目更近记录详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
<popup ref="popupRef" title="项目更近记录详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
||||||
<el-form ref="formRef" :model="formData" label-width="120px">
|
|
||||||
<el-card class="mb-2">
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="项目名称">
|
|
||||||
{{ formData.project_name }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="项目编码">
|
|
||||||
{{ formData.project_code }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="客户名称">
|
|
||||||
{{ formData.custom_name
|
|
||||||
}}
|
|
||||||
|
|
||||||
</el-form-item>
|
<el-descriptions :column="2" border>
|
||||||
</el-col>
|
<el-descriptions-item label="客户名称" label-align="left" align="left" label-class-name="my-label">{{ formData.custom_name }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="项目名称" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_name }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="项目编码" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_code }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="执行人" label-align="left" align="left" label-class-name="my-label">
|
||||||
|
{{ formData.executor }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="联系人" label-align="left" align="left" label-class-name="my-label"> {{ formData.contacts
|
||||||
|
}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="联系方式" label-align="left" align="left" label-class-name="my-label"> {{ formData.contact_information
|
||||||
|
|
||||||
<el-col :span="12">
|
}}</el-descriptions-item>
|
||||||
<el-form-item label="执行人">
|
|
||||||
{{ formData.executor
|
|
||||||
}}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="联系人">
|
|
||||||
{{ formData.contacts }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="联系方式">
|
|
||||||
{{ formData.contact_information }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="项目角色">
|
|
||||||
{{ formData.project_role }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="项目角色" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_role
|
||||||
<el-form-item label="跟进类型">
|
|
||||||
<dict-value :options="dictData.follow_type" :value="formData.follow_type" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="跟进日期">
|
|
||||||
{{ formData.follow_date }}
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
}}</el-descriptions-item>
|
||||||
<el-form-item label="主题">
|
|
||||||
{{ formData.theme }}
|
<el-descriptions-item label="职位" label-align="left" align="left" label-class-name="my-label"> {{ formData.position
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
}}</el-descriptions-item>
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="日期" label-align="left" align="left" label-class-name="my-label"> {{ formData.follow_date
|
||||||
<el-form-item label="行动描述">
|
|
||||||
{{ formData.action_description }}
|
}}</el-descriptions-item>
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
<el-descriptions-item label="主题" label-align="left" align="left" label-class-name="my-label"> {{ formData.theme
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="项目把握度">
|
}}</el-descriptions-item>
|
||||||
<dict-value :options="dictData.project_assurance" :value="formData.project_assurance" />
|
<el-descriptions-item label="行动描述" label-align="left" align="left" label-class-name="my-label"> {{ formData.action_description
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
}}</el-descriptions-item>
|
||||||
<el-form-item label="跟进状态">
|
<el-descriptions-item label="项目把握度" label-align="left" align="left" label-class-name="my-label"> {{ formData.project_assurance_text
|
||||||
<dict-value :options="dictData.follow_status" :value="formData.follow_status" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
}}</el-descriptions-item>
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="状态" label-align="left" align="left" label-class-name="my-label"> {{ formData.follow_status_text
|
||||||
<el-form-item label="跟进阶段">
|
|
||||||
<dict-value :options="dictData.follow_stage" :value="formData.follow_stage" />
|
|
||||||
</el-form-item>
|
}}</el-descriptions-item>
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
<el-descriptions-item label="阶段" label-align="left" align="left" label-class-name="my-label"> {{ formData.follow_stage_text
|
||||||
<el-form-item label="备注">
|
|
||||||
{{ formData.notes }}
|
|
||||||
</el-form-item>
|
}}</el-descriptions-item>
|
||||||
</el-col> <el-col :span="12">
|
<el-descriptions-item label="备注" label-align="left" align="left" label-class-name="my-label"> {{ formData.notes
|
||||||
<el-form-item label="下次回访日期">
|
|
||||||
{{ formData.next_follow_up_date }}
|
}}</el-descriptions-item><el-descriptions-item label="下次回访日期" label-align="left" align="left" label-class-name="my-label"> {{ formData.next_follow_up_date
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
}}</el-descriptions-item>
|
||||||
<el-col :span="24">
|
<el-descriptions-item label="附件" label-align="left" align="left" label-class-name="my-label">
|
||||||
<el-form-item label="附件">
|
|
||||||
<div v-if="formData.annex && formData.annex.length > 0">
|
<div v-if="formData.annex && formData.annex.length > 0">
|
||||||
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
<div v-for="(item, index) in formData.annex" style="margin-left: 5px;display: block;">
|
||||||
<a style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item.uri" target="_blank">文件{{ index + 1 }}查看</a>
|
<el-link style="margin-left: 10px; color: #4a5dff; align-self: flex-start" :href="item" target="_blank">文件{{ index + 1 }}查看</el-link>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>暂无附件</div>
|
<div v-else>暂无附件</div>
|
||||||
</el-form-item>
|
</el-descriptions-item>
|
||||||
</el-col>
|
</el-descriptions>
|
||||||
</el-row>
|
|
||||||
</el-card>
|
|
||||||
</el-form>
|
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -185,9 +146,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -178,9 +178,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -136,9 +136,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -185,9 +185,13 @@ defineExpose({
|
|||||||
getDetail
|
getDetail
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
1078
src/views/project_list/detail.vue
Normal file
1078
src/views/project_list/detail.vue
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user