Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
web-project
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
紫光云
web-project
Commits
eb199ef9
Commit
eb199ef9
authored
Jun 07, 2024
by
mengzixuan
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop' into develop
parents
fd2463fd
580604c8
Changes
29
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
1688 additions
and
305 deletions
+1688
-305
changeSignatrue.ts
src/api/changeSignatrue/changeSignatrue.ts
+8
-0
contract.ts
src/api/contract/contract.ts
+8
-0
biddingManagement.ts
src/api/project/biddingManagement.ts
+4
-0
biddingPlan.ts
src/api/project/biddingPlan.ts
+6
-8
settlementManageModel.ts
src/api/project/model/settlementManageModel.ts
+85
-0
settlementManage.ts
src/api/project/settlementManage.ts
+77
-2
Contract.vue
src/components/ContractModel/Contract.vue
+71
-0
data.tsx
src/components/ContractModel/data.tsx
+73
-0
ImageUpload.vue
src/components/Upload/src/components/ImageUpload.vue
+4
-0
changeSignature.ts
src/router/routes/modules/changeSignature.ts
+10
-0
biddingManagement.data.ts
src/views/biddingManagement/biddingManagement.data.ts
+1
-1
biddingManagementEdit.vue
src/views/biddingManagement/biddingManagementEdit.vue
+31
-8
index.vue
src/views/biddingManagement/index.vue
+7
-4
biddingPlan.data.ts
src/views/biddingPlan/biddingPlan.data.ts
+1
-1
biddingPlanEdit.vue
src/views/biddingPlan/biddingPlanEdit.vue
+33
-10
index.vue
src/views/biddingPlan/index.vue
+8
-5
addChangeSignature.vue
src/views/changeSignature/addChangeSignature.vue
+11
-0
changeSignatrue.data.ts
src/views/changeSignature/changeSignatrue.data.ts
+8
-8
index.vue
src/views/changeSignature/index.vue
+9
-2
index.vue
src/views/demo/page/account/center/index.vue
+1
-0
detail.vue
src/views/project/detail.vue
+139
-119
project.data.ts
src/views/project/project.data.ts
+154
-16
projectDrawer.vue
src/views/project/projectDrawer.vue
+8
-5
Article.vue
src/views/project/tabs/Article.vue
+214
-0
InvestmentPlan.vue
src/views/project/tabs/InvestmentPlan.vue
+47
-0
data.ts
src/views/project/tabs/data.ts
+137
-0
data.tsx
src/views/settlementManagement/data.tsx
+269
-36
index.vue
src/views/settlementManagement/index.vue
+56
-20
settlementManageEdit.vue
src/views/settlementManagement/settlementManageEdit.vue
+208
-60
No files found.
src/api/changeSignatrue/changeSignatrue.ts
0 → 100644
View file @
eb199ef9
import
{
ProjectParams
,
ProjectListGetResultModel
,
ProjectModel
}
from
'@/api/project/model/projectModel'
;
import
{
defHttp
}
from
'@/utils/http/axios'
;
enum
Api
{
//分页查询变更记录
GetList
=
'/pro/change-visa/page'
,
}
export
const
getSettlementManageList
=
(
params
?:
ProjectParams
)
=>
defHttp
.
post
<
ProjectModel
>
({
url
:
Api
.
GetList
,
data
:
params
});
src/api/contract/contract.ts
0 → 100644
View file @
eb199ef9
import
{
ProjectParams
,
ProjectListGetResultModel
,
ProjectModel
}
from
'@/api/project/model/projectModel'
;
import
{
defHttp
}
from
'@/utils/http/axios'
;
enum
Api
{
//分页查询合同集合
GetList
=
'/pro/settlement/select-contract'
,
}
export
const
getContractListPage
=
(
params
?:
ProjectParams
)
=>
defHttp
.
post
<
ProjectModel
>
({
url
:
Api
.
GetList
,
data
:
params
});
src/api/project/biddingManagement.ts
View file @
eb199ef9
...
...
@@ -12,6 +12,7 @@ enum Api {
UpdateProject
=
'/pro/tenderManager/update'
,
DeleteProject
=
'/pro/tenderManager/del'
,
ProjectDetail
=
'/pro/tenderManager/details'
,
Itemdelete
=
'/pro/tenderManager/details/del'
,
}
export
const
getListByPage
=
(
params
?:
ProjectPageParams
)
=>
defHttp
.
post
<
ListGetResultModel
>
({
url
:
Api
.
GetList
,
data
:
params
});
...
...
@@ -36,5 +37,8 @@ export const updateItem = (params?: any) =>
export
const
deleteItem
=
(
params
?:
any
)
=>
defHttp
.
delete
<
ProjectModel
>
({
url
:
Api
.
DeleteProject
,
params
});
export
const
Itemdelete
=
(
params
?:
any
)
=>
defHttp
.
delete
<
ProjectModel
>
({
url
:
Api
.
Itemdelete
,
params
});
export
const
getItem
=
(
params
?:
any
)
=>
defHttp
.
get
<
ListItem
[]
>
({
url
:
Api
.
ProjectDetail
,
params
});
src/api/project/biddingPlan.ts
View file @
eb199ef9
import
{
ProjectPageParams
,
ListGetResultModel
,
ProjectModel
,
ListItem
,
}
from
'./model/biddingPlanModel'
;
import
{
ProjectPageParams
,
ListGetResultModel
,
ProjectModel
}
from
'./model/biddingPlanModel'
;
import
{
defHttp
}
from
'@/utils/http/axios'
;
enum
Api
{
...
...
@@ -12,6 +7,7 @@ enum Api {
UpdateProject
=
'/pro/tenderPlan/update'
,
DeleteProject
=
'/pro/tenderPlan/del'
,
ProjectDetail
=
'/pro/tenderPlan/details'
,
Itemdelete
=
'/pro/tenderPlan/details/del'
,
}
export
const
getListByPage
=
(
params
?:
ProjectPageParams
)
=>
defHttp
.
post
<
ListGetResultModel
>
({
url
:
Api
.
GetList
,
data
:
params
});
...
...
@@ -37,5 +33,7 @@ export const updateItem = (params?: any) =>
export
const
deleteItem
=
(
params
?:
any
)
=>
defHttp
.
delete
<
ProjectModel
>
({
url
:
Api
.
DeleteProject
,
params
});
export
const
getItem
=
(
params
?:
any
)
=>
defHttp
.
get
<
ListItem
[]
>
({
url
:
Api
.
ProjectDetail
,
params
});
export
const
Itemdelete
=
(
params
?:
any
)
=>
defHttp
.
delete
<
ProjectModel
>
({
url
:
Api
.
Itemdelete
,
params
});
export
const
getItem
=
(
params
?:
any
)
=>
defHttp
.
get
<
planModel
>
({
url
:
Api
.
ProjectDetail
,
params
});
src/api/project/model/settlementManageModel.ts
0 → 100644
View file @
eb199ef9
import
{
BasicPageParams
,
BasicFetchResult
}
from
'@/api/model/baseModel'
;
export
type
ProjectParams
=
{
//年份
givenYear
?:
string
;
//companyName
companyName
?:
string
;
//季度
quarter
:
string
};
export
type
ProjectPageParams
=
BasicPageParams
&
ProjectParams
;
export
interface
ProjectListItem
{
id
:
string
;
//合同id
contractId
:
string
;
projectInvestment
:
string
;
biddingMethod
:
string
;
firstPartyName
:
string
;
secondPartyName
:
string
;
formOfContract
:
string
;
contractSigningTime
:
string
;
closingTime
:
string
;
contractAmount
:
string
;
superContractScale
:
string
;
submittedForSettlement
:
string
;
meetingMinutes
:
string
;
remark
:
string
;
fundingSource
:
string
;
projectName
:
string
;
proportionContractAmount
:
string
;
createTime
:
null
;
createBy
:
string
;
updateTime
:
null
;
updateBy
:
string
;
}
export
interface
ChangModel
{
id
?:
string
|
number
;
constructionMode
:
string
;
isReserveProject
:
string
;
projectType
:
string
;
projectOverview
:
string
;
constructionPurpose
:
string
;
}
export
interface
ProjectModel
<
P
,
C
>
{
management
:
P
[];
proClosingQuarter
:
C
;
}
export
interface
ContentModel
{
id
?:
string
|
number
;
quarter
:
string
|
number
;
companyName
:
string
;
givenYear
:
string
;
yearQuarter
:
string
;
status
:
string
;
}
export
interface
PlanModel
{
id
:
string
|
number
;
contractId
:
string
|
number
;
projectId
:
string
|
number
;
projectInvestment
:
string
|
number
;
biddingMethod
:
string
|
number
;
contracYpe
:
string
|
number
;
contractName
:
string
|
number
;
firstPartyName
:
string
|
number
;
secondPartyName
:
string
|
number
;
formOfContract
:
string
|
number
;
closingTime
:
string
|
number
;
closingTimeDatetime
:
string
|
number
;
contractAmount
:
string
|
number
;
submittedForSettlement
:
string
|
number
;
superContractScale
:
string
|
number
;
sumOfMoney
:
string
|
number
;
proportionContractAmount
:
string
|
number
;
meetingMinutes
:
string
|
number
;
proClosingQuarterId
:
string
|
number
;
remark
:
string
|
number
;
}
export
type
ProjectListGetResultModel
=
BasicFetchResult
<
ProjectListItem
>
;
export
type
EditModel
=
ProjectModel
<
PlanModel
[],
ContentModel
>
src/api/project/settlementManage.ts
View file @
eb199ef9
import
{
ProjectParams
,
ProjectListGetResultModel
,
ProjectModel
}
from
'./model/projectModel'
;
// import { ProjectParams, ProjectListGetResultModel, ProjectModel } from './model/projectModel';
import
{
ProjectParams
,
ProjectModel
}
from
'./model/settlementManageModel'
import
{
defHttp
}
from
'@/utils/http/axios'
;
enum
Api
{
//查询list
GetList
=
'/pro/settlement/page'
,
//新增接口
Add
=
'/pro/settlement/add'
,
//根据id查询详情
GetItem
=
'/pro/settlement/findById'
,
//修改接口
update
=
'/pro/settlement/update-settlement'
,
//根据id删除
deleteItem
=
'/pro/settlement/byid-del'
,
//审核接口
audit
=
'/pro/settlement/byId-examine'
,
//删除列表接口
deleteList
=
'/pro/settlement/del'
,
}
export
const
getSettlementManageList
=
(
params
?:
ProjectParams
)
=>
defHttp
.
post
<
ProjectModel
>
({
url
:
Api
.
GetList
,
data
:
params
});
defHttp
.
post
<
ProjectParams
>
({
url
:
Api
.
GetList
,
data
:
params
});
export
const
addItem
=
(
params
?:
any
)
=>
defHttp
.
post
<
ProjectModel
>
({
url
:
Api
.
Add
,
data
:
params
,
headers
:
{
'Content-Type'
:
'application/json;charset=UTF-8'
,
},
});
//根据id查询详情
export
const
getItem
=
(
params
?:
any
)
=>
defHttp
.
get
<
ProjectModel
>
({
url
:
Api
.
GetItem
,
params
,
});
/**
* 修改
*/
export
const
updateItem
=
(
params
?:
any
)
=>
defHttp
.
put
<
ProjectModel
>
({
url
:
Api
.
update
,
data
:
params
.
management
,
headers
:
{
'Content-Type'
:
'application/json;charset=UTF-8'
,
},
});
/**
* 根据id删除
*/
export
const
deleteOne
=
(
params
?:
any
)
=>
defHttp
.
delete
<
ProjectModel
>
({
url
:
Api
.
deleteItem
,
params
,
});
/**
* 审核接口
*/
export
const
auditItem
=
(
params
?:
any
)
=>
defHttp
.
get
<
ProjectModel
>
({
url
:
Api
.
audit
,
params
,
});
/**
* deleteList
*/
export
const
deleteList
=
(
params
?:
any
)
=>
defHttp
.
delete
<
ProjectModel
>
({
url
:
Api
.
deleteList
,
params
,
});
src/components/ContractModel/Contract.vue
0 → 100644
View file @
eb199ef9
<
template
>
<BasicModal
width=
"70%"
v-bind=
"$attrs"
@
register=
"register"
title=
"选择项目导入"
:minHeight=
"30"
okText=
"导入"
@
ok=
"handleSubmit"
@
visible-change=
"handleVisibleChange"
>
<BasicTable
@
register=
"registerTable"
>
<template
#
bodyCell=
"
{ column, text, record, index }">
<!-- 当前列是序号列时,显示序号 -->
<span
v-if=
"column.dataIndex === 'serialNumber'"
>
{{
index
+
1
}}
</span>
<!-- 其他列正常显示 -->
<span
v-else
>
{{
text
}}
</span>
</
template
>
</BasicTable>
<!-- <button @click="getSelectRowList">获取数据</button>-->
</BasicModal>
</template>
<
script
lang=
"ts"
setup
>
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
getContractListPage
}
from
'@/api/contract/contract'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
columns
,
searchFormSchema
}
from
'./data'
;
const
[
registerTable
,
{
reload
,
getSelectRows
}]
=
useTable
({
api
:
getContractListPage
,
title
:
'123'
,
columns
,
formConfig
:
{
labelWidth
:
120
,
schemas
:
searchFormSchema
,
},
useSearchForm
:
true
,
showTableSetting
:
false
,
bordered
:
true
,
showIndexColumn
:
false
,
rowSelection
:
{
type
:
'checkbox'
,
},
// actionColumn: {
// width: 80,
// title: '操作',
// dataIndex: 'action',
// // slots: { customRender: 'action' },
// fixed: undefined,
// },
});
const
{
createMessage
}
=
useMessage
();
function
getSelectRowList
()
{
// createMessage.info('请在控制台查看!');
// console.log(getSelectRows());
emit
(
'close'
,
getSelectRows
());
}
const
emit
=
defineEmits
([
'close'
]);
function
handleVisibleChange
(
v
)
{}
const
[
register
,
{
closeModal
}]
=
useModalInner
((
data
)
=>
{
data
;
});
function
handleSubmit
()
{
getSelectRowList
();
closeModal
();
}
</
script
>
src/components/ContractModel/data.tsx
0 → 100644
View file @
eb199ef9
import
{
BasicColumn
,
FormSchema
}
from
'@/components/Table'
;
import
{
h
}
from
'vue'
;
import
{
Switch
}
from
'ant-design-vue'
;
import
{
setRoleStatus
}
from
'@/api/demo/system'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
type
CheckedType
=
boolean
|
string
|
number
;
export
const
columns
:
(
|
{
dataIndex
:
string
;
width
:
number
;
title
:
string
}
|
{
dataIndex
:
string
;
width
:
number
;
title
:
string
}
|
{
dataIndex
:
string
;
width
:
number
;
title
:
string
}
|
{
dataIndex
:
string
;
width
:
number
;
title
:
string
}
|
{
dataIndex
:
string
;
width
:
number
;
title
:
string
}
|
{
dataIndex
:
string
;
width
:
number
;
title
:
string
}
|
{
dataIndex
:
string
;
width
:
number
;
title
:
string
}
)[]
=
[
{
title
:
'合同名称'
,
dataIndex
:
'contrcatName'
,
width
:
180
,
},
{
title
:
'项目名称'
,
dataIndex
:
'projectName'
,
width
:
180
,
},
{
title
:
'收款单位'
,
dataIndex
:
'collectingUnit'
,
width
:
200
,
},
{
title
:
'投资金额'
,
dataIndex
:
'investmentAount'
,
width
:
180
,
},
{
title
:
'合同额'
,
dataIndex
:
'contractAmount'
,
width
:
180
,
}
];
export
const
searchFormSchema
:
FormSchema
[]
=
[
{
field
:
'projectName'
,
label
:
''
,
component
:
'Input'
,
componentProps
:
{
placeholder
:
'搜索关键字'
,
},
colProps
:
{
span
:
4
},
},
];
export
const
formSchema
:
FormSchema
[]
=
[
{
field
:
'projectName'
,
label
:
'项目名称'
,
component
:
'Input'
,
required
:
true
,
componentProps
:
{
placeholder
:
'XXXX项目'
,
disabled
:
true
,
style
:
{
background
:
'none'
,
border
:
'none'
,
},
},
colProps
:
{
span
:
8
},
},
];
src/components/Upload/src/components/ImageUpload.vue
View file @
eb199ef9
...
...
@@ -174,7 +174,11 @@
filename
:
filename
,
});
if
(
props
.
resultField
)
{
console
.
log
(
res
);
let
result
=
get
(
res
,
resultField
);
console
.
log
(
result
);
info
.
onSuccess
!
(
result
);
}
else
{
// 不传入 resultField 的情况
...
...
src/router/routes/modules/changeSignature.ts
View file @
eb199ef9
...
...
@@ -24,6 +24,16 @@ const changeSignature: AppRouteModule = {
orderNo
:
5
,
},
},
{
path
:
'edit'
,
name
:
'settlementManageEdit'
,
component
:
()
=>
import
(
'@/views/changeSignature/addChangeSignature.vue'
),
meta
:
{
// affix: true,
title
:
'新建变更管理'
,
orderNo
:
8
,
},
},
],
};
...
...
src/views/biddingManagement/biddingManagement.data.ts
View file @
eb199ef9
...
...
@@ -7,7 +7,7 @@ import { useMessage } from '@/hooks/web/useMessage';
export
const
columns
:
BasicColumn
[]
=
[
{
title
:
'序号'
,
dataIndex
:
'
projectName
'
,
dataIndex
:
'
serialNumber
'
,
width
:
100
,
},
{
...
...
src/views/biddingManagement/biddingManagementEdit.vue
View file @
eb199ef9
<
template
>
<PageWrapper
:title=
"getTitle"
:contentBackground=
"false"
headerSticky
>
<PageWrapper
v-loading=
"loadingRef"
loading-tip=
"加载中..."
:title=
"getTitle"
:contentBackground=
"false"
headerSticky
>
<template
#
extra
>
<a-button
type=
"primary"
danger
>
删除
</a-button>
<a-button
type=
"primary"
v-if=
"!disabled"
@
click=
"handleSubmit"
>
提交
</a-button>
...
...
@@ -41,7 +47,7 @@
import
{
deepMerge
}
from
'@/utils'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
useDrawer
}
from
'@/components/Drawer'
;
import
{
addItem
,
updateItem
,
getItem
}
from
'@/api/project/biddingManagement'
;
import
{
addItem
,
updateItem
,
getItem
,
Itemdelete
}
from
'@/api/project/biddingManagement'
;
import
{
editModel
}
from
'@/api/project/model/biddingManagementModel'
;
import
{
nextTick
}
from
'vue'
;
const
[
registerDrawer
,
{
openDrawer
}]
=
useDrawer
();
...
...
@@ -50,6 +56,7 @@
import
{
useRoute
}
from
'vue-router'
;
const
[
register
,
{
openModal
:
openModal
}]
=
useModal
();
const
{
createMessage
}
=
useMessage
();
const
loadingRef
=
ref
(
false
);
const
getTitle
=
ref
(
''
);
const
isUpdate
=
ref
(
false
);
const
loading
=
ref
(
false
);
...
...
@@ -57,6 +64,7 @@
const
tenderId
=
ref
<
any
>
(
''
);
const
disabled
=
ref
(
false
);
onMounted
(
async
()
=>
{
loadingRef
.
value
=
true
;
const
route
=
useRoute
();
const
id
=
route
.
query
.
id
;
// 获取名为id的参数
if
(
!
id
)
{
...
...
@@ -69,7 +77,7 @@
}
else
{
isUpdate
.
value
=
true
;
tenderId
.
value
=
id
;
disabled
.
value
=
Boolean
(
route
.
query
.
disabled
)
;
disabled
.
value
=
route
.
query
.
disabled
==
'0'
?
false
:
true
;
if
(
disabled
.
value
)
{
getTitle
.
value
=
'查看招标管理'
;
}
else
{
...
...
@@ -100,6 +108,7 @@
});
}
}
loadingRef
.
value
=
false
;
});
type
TabsFormType
=
{
name
:
string
;
...
...
@@ -149,9 +158,22 @@
});
}
async
function
deleteItem
(
index
:
any
)
{
tabsFormSchema
.
splice
(
index
,
1
);
formData
.
value
.
tenderPlanPro
.
splice
(
index
,
1
);
loadingRef
.
value
=
true
;
const
id
=
formData
.
value
.
tenderPlanPro
[
index
].
id
;
if
(
id
)
{
await
Itemdelete
({
id
,
});
formData
.
value
.
tenderPlanPro
.
splice
(
index
,
1
);
tabsFormSchema
.
splice
(
index
,
1
);
loadingRef
.
value
=
false
;
}
else
{
formData
.
value
.
tenderPlanPro
.
splice
(
index
,
1
);
tabsFormSchema
.
splice
(
index
,
1
);
loadingRef
.
value
=
false
;
}
}
async
function
handleAdd
()
{
openDrawer
(
true
,
{
isUpdate
:
false
,
...
...
@@ -162,7 +184,7 @@
handleNew
(
params
);
}
async
function
handleSubmit
()
{
loading
.
value
=
true
;
loading
Ref
.
value
=
true
;
try
{
for
(
let
i
=
0
;
i
<
tabsFormSchema
.
length
;
i
++
)
{
let
item
=
tabsFormSchema
[
i
];
...
...
@@ -177,14 +199,15 @@
let
res
=
isUpdate
.
value
?
await
updateItem
(
unref
(
formData
.
value
.
tenderPlanPro
))
:
await
addItem
(
unref
(
formData
));
loading
.
value
=
false
;
loading
Ref
.
value
=
false
;
console
.
log
(
res
);
createMessage
.
success
(
'提交成功!'
);
router
.
back
();
}
catch
(
e
)
{
// 验证失败或出错,切换到对应标签页
console
.
log
(
e
);
}
finally
{
loading
.
value
=
false
;
loading
Ref
.
value
=
false
;
}
}
</
script
>
src/views/biddingManagement/index.vue
View file @
eb199ef9
...
...
@@ -4,7 +4,10 @@
<template
#
toolbar
>
<a-button
type=
"primary"
preIcon=
"mdi:plus"
@
click=
"handleCreate"
>
新增招标管理
</a-button>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
<
template
#
bodyCell=
"{ column, record, index }"
>
<template
v-if=
"column.key === 'serialNumber'"
>
{{
index
+
1
}}
</
template
>
<
template
v-if=
"column.key === 'tenderYear'"
>
{{
record
.
tenderYear
+
'年'
+
record
.
biddingQuarter
+
'季度'
}}
</
template
>
...
...
@@ -13,11 +16,11 @@
:actions=
"[
{
label: '详情',
onClick: handleEdit.bind(null, record,
true
),
onClick: handleEdit.bind(null, record,
1
),
},
{
label: '修改',
onClick: handleEdit.bind(null, record,
false
),
onClick: handleEdit.bind(null, record,
0
),
},
{
label: '删除',
...
...
@@ -72,7 +75,7 @@
});
}
function
handleEdit
(
record
:
Recordable
,
disabled
:
boolean
)
{
function
handleEdit
(
record
:
Recordable
,
disabled
:
number
)
{
push
({
path
:
'/biddingManagement/edit'
,
query
:
{
...
...
src/views/biddingPlan/biddingPlan.data.ts
View file @
eb199ef9
...
...
@@ -7,7 +7,7 @@ import { useMessage } from '@/hooks/web/useMessage';
export
const
columns
:
BasicColumn
[]
=
[
{
title
:
'序号'
,
dataIndex
:
'
projectName
'
,
dataIndex
:
'
serialNumber
'
,
width
:
100
,
},
{
...
...
src/views/biddingPlan/biddingPlanEdit.vue
View file @
eb199ef9
<
template
>
<PageWrapper
:title=
"getTitle"
:contentBackground=
"false"
headerSticky
>
<PageWrapper
:title=
"getTitle"
v-loading=
"loadingRef"
loading-tip=
"加载中..."
:contentBackground=
"false"
headerSticky
>
<template
#
extra
>
<a-button
type=
"primary"
danger
>
删除
</a-button>
<a-button
type=
"primary"
v-if=
"!disabled"
@
click=
"handleSubmit"
>
提交
</a-button>
...
...
@@ -37,11 +43,12 @@
import
{
deepMerge
}
from
'@/utils'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
useDrawer
}
from
'@/components/Drawer'
;
import
{
addItem
,
updateItem
,
getItem
}
from
'@/api/project/biddingPlan'
;
import
{
addItem
,
updateItem
,
getItem
,
Itemdelete
}
from
'@/api/project/biddingPlan'
;
import
{
editModel
}
from
'@/api/project/model/biddingPlanModel'
;
import
{
useModal
}
from
'@/components/Modal'
;
import
{
router
}
from
'@/router'
;
import
{
useRoute
}
from
'vue-router'
;
const
loadingRef
=
ref
(
false
);
const
[
registerDrawer
,
{
openDrawer
}]
=
useDrawer
();
const
[
register
,
{
openModal
:
openModal
}]
=
useModal
();
const
{
createMessage
}
=
useMessage
();
...
...
@@ -52,6 +59,7 @@
const
disabled
=
ref
(
false
);
const
getTitle
=
ref
(
''
);
onMounted
(
async
()
=>
{
loadingRef
.
value
=
true
;
const
route
=
useRoute
();
const
id
=
route
.
query
.
id
;
// 获取名为id的参数
if
(
!
id
)
{
...
...
@@ -64,7 +72,7 @@
}
else
{
isUpdate
.
value
=
true
;
tenderId
.
value
=
id
;
disabled
.
value
=
Boolean
(
route
.
query
.
disabled
)
;
disabled
.
value
=
route
.
query
.
disabled
==
'0'
?
false
:
true
;
if
(
disabled
.
value
)
{
getTitle
.
value
=
'查看招标计划'
;
}
else
{
...
...
@@ -79,8 +87,8 @@
forceRender
:
true
,
Form
:
useForm
(
Object
.
assign
({
schemas
:
formSchema
},
baseFormConfig
)
as
FormProps
),
};
console
.
log
(
source
);
source
.
biddingPeriod
=
source
.
biddingPeriod
.
split
(
','
);
source
.
plannedPeriod
=
source
.
plannedPeriod
.
split
(
','
);
const
{
setFieldsValue
}
=
item
.
Form
[
1
];
tabsFormSchema
.
push
(
item
);
formData
.
value
.
tenderPlanPro
.
push
({
...
...
@@ -95,6 +103,7 @@
});
}
}
loadingRef
.
value
=
false
;
});
type
TabsFormType
=
{
name
:
string
;
...
...
@@ -143,9 +152,22 @@
});
}
async
function
deleteItem
(
index
:
any
)
{
tabsFormSchema
.
splice
(
index
,
1
);
formData
.
value
.
tenderPlanPro
.
splice
(
index
,
1
);
loadingRef
.
value
=
true
;
const
id
=
formData
.
value
.
tenderPlanPro
[
index
].
id
;
if
(
id
)
{
await
Itemdelete
({
id
,
});
formData
.
value
.
tenderPlanPro
.
splice
(
index
,
1
);
tabsFormSchema
.
splice
(
index
,
1
);
loadingRef
.
value
=
false
;
}
else
{
formData
.
value
.
tenderPlanPro
.
splice
(
index
,
1
);
tabsFormSchema
.
splice
(
index
,
1
);
loadingRef
.
value
=
false
;
}
}
async
function
handleAdd
()
{
openDrawer
(
true
,
{
isUpdate
:
false
,
...
...
@@ -156,7 +178,7 @@
handleNew
(
params
);
}
async
function
handleSubmit
()
{
loading
.
value
=
true
;
loading
Ref
.
value
=
true
;
try
{
for
(
let
i
=
0
;
i
<
tabsFormSchema
.
length
;
i
++
)
{
let
item
=
tabsFormSchema
[
i
];
...
...
@@ -171,14 +193,15 @@
formData
.
value
.
proNumber
=
formData
.
value
.
tenderPlanPro
.
Length
;
let
res
=
isUpdate
.
value
?
await
updateItem
(
unref
(
formData
))
:
await
addItem
(
unref
(
formData
));
loading
.
value
=
fals
e
;
loading
Ref
.
value
=
tru
e
;
console
.
log
(
res
);
createMessage
.
success
(
'提交成功!'
);
router
.
back
();
}
catch
(
e
)
{
// 验证失败或出错,切换到对应标签页
console
.
log
(
e
);
}
finally
{
loading
.
value
=
false
;
loading
Ref
.
value
=
false
;
}
}
</
script
>
src/views/biddingPlan/index.vue
View file @
eb199ef9
...
...
@@ -4,7 +4,10 @@
<template
#
toolbar
>
<a-button
type=
"primary"
preIcon=
"mdi:plus"
@
click=
"handleCreate"
>
新增招标计划
</a-button>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
<
template
#
bodyCell=
"{ column, record, index }"
>
<template
v-if=
"column.key === 'serialNumber'"
>
{{
index
+
1
}}
</
template
>
<
template
v-if=
"column.key === 'tenderYear'"
>
{{
record
.
tenderYear
+
'年'
+
record
.
biddingQuarter
+
'季度'
}}
</
template
>
...
...
@@ -13,11 +16,11 @@
:actions=
"[
{
label: '详情',
onClick: handleEdit.bind(null, record,
true
),
onClick: handleEdit.bind(null, record,
1
),
},
{
label: '修改',
onClick: handleEdit.bind(null, record,
false
),
onClick: handleEdit.bind(null, record,
0
),
},
{
label: '删除',
...
...
@@ -71,9 +74,9 @@
});
}
function
handleEdit
(
record
:
Recordable
,
disabled
:
boolean
)
{
function
handleEdit
(
record
:
Recordable
,
disabled
:
number
)
{
push
({
path
:
'/bidding
Management
/edit'
,
path
:
'/bidding
Plan
/edit'
,
query
:
{
id
:
record
.
id
,
disabled
:
String
(
disabled
),
...
...
src/views/changeSignature/addChangeSignature.vue
0 → 100644
View file @
eb199ef9
<
script
setup
lang=
"ts"
>
</
script
>
<
template
>
</
template
>
<
style
scoped
lang=
"less"
>
</
style
>
\ No newline at end of file
src/views/changeSignature/changeSignatrue.data.ts
View file @
eb199ef9
...
...
@@ -3,42 +3,42 @@ import { BasicColumn, FormSchema } from '@/components/Table';
export
const
columns
:
BasicColumn
[]
=
[
{
title
:
'填报周期'
,
dataIndex
:
'
projectName
'
,
dataIndex
:
'
yearQuarter
'
,
width
:
200
,
},
{
title
:
'项目数量'
,
dataIndex
:
'
implementingEntity
'
,
dataIndex
:
'
uniqueProjectCount
'
,
width
:
180
,
},
{
title
:
'公司名称'
,
dataIndex
:
'co
nstructionMod
e'
,
dataIndex
:
'co
mpanyNam
e'
,
width
:
180
,
},
{
title
:
'最新更新人'
,
dataIndex
:
'
projectType
'
,
dataIndex
:
'
updateBy
'
,
width
:
180
,
},
{
title
:
'最新更新时间'
,
dataIndex
:
'
fundingSourc
e'
,
dataIndex
:
'
updateTim
e'
,
width
:
180
,
},
{
title
:
'审核状态'
,
dataIndex
:
'
constructionPurpose
'
,
dataIndex
:
'
status
'
,
width
:
180
,
},
{
title
:
'审核人'
,
dataIndex
:
'
国constructionScale
'
,
dataIndex
:
'
auditor
'
,
width
:
180
,
},
{
title
:
'审核时间'
,
dataIndex
:
'
国constructionScal
e'
,
dataIndex
:
'
auditTim
e'
,
width
:
180
,
},
];
...
...
src/views/changeSignature/index.vue
View file @
eb199ef9
...
...
@@ -5,6 +5,12 @@
<a-button
type=
"primary"
icon=
""
>
新建变更签证管理
</a-button>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
<template
v-if=
"column.key === 'status'"
>
<Tag
color=
"warning"
v-if=
"record.status == '0'"
>
未审核
</Tag>
</
template
>
<
template
v-if=
"column.key === 'status'"
>
<Tag
color=
"warning"
v-if=
"record.status == '1'"
>
已审核
</Tag>
</
template
>
<
template
v-if=
"column.key === 'action'"
>
<TableAction
:actions=
"[
...
...
@@ -30,14 +36,15 @@
</template>
<
script
setup
lang=
"ts"
>
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
get
ListByPage
}
from
'@/api/project/biddingPlan
'
;
import
{
get
SettlementManageList
}
from
'@/api/changeSignatrue/changeSignatrue
'
;
import
{
columns
,
searchFormSchema
,
}
from
'@/views/changeSignature/changeSignatrue.data'
;
import
{
Tag
}
from
"ant-design-vue"
;
const
[
registerTable
,
{
reload
}]
=
useTable
({
api
:
get
ListByPage
,
api
:
get
SettlementManageList
,
columns
,
formConfig
:
{
labelWidth
:
120
,
...
...
src/views/demo/page/account/center/index.vue
View file @
eb199ef9
...
...
@@ -47,6 +47,7 @@
<component
:is=
"tabs[item.component]"
/>
</TabPane>
</
template
>
</Tabs>
</div>
</div>
...
...
src/views/project/detail.vue
View file @
eb199ef9
This diff is collapsed.
Click to expand it.
src/views/project/project.data.ts
View file @
eb199ef9
...
...
@@ -10,9 +10,10 @@ export const formSchema: FormSchema[] = [
// required: true,
componentProps
:
{
api
:
uploadApi
,
resultField
:
'data.data.fullPath'
,
accept
:
[
'png'
,
'jpeg'
,
'jpg'
],
m
axSize
:
1
,
maxNumber
:
1
,
m
ultiple
:
false
,
name
:
'multipartFile'
,
},
},
{
...
...
@@ -24,12 +25,15 @@ export const formSchema: FormSchema[] = [
},
{
field
:
'isReserveProject'
,
component
:
'Switch'
,
label
:
'储备项目'
,
component
:
'RadioButtonGroup'
,
defaultValue
:
'false'
,
componentProps
:
{
checkedValue
:
'true'
,
unCheckedValue
:
'false'
,
options
:
[
{
label
:
'是'
,
value
:
'true'
},
{
label
:
'否'
,
value
:
'false'
},
],
},
label
:
'储备项目'
,
labelWidth
:
'140px'
,
},
{
...
...
@@ -211,19 +215,139 @@ export const formSchema: FormSchema[] = [
];
export
const
searchFormSchema
:
FormSchema
[]
=
[
{
field
:
'
year
'
,
field
:
'
projecName
'
,
label
:
''
,
component
:
'DatePicker'
,
required
:
true
,
component
:
'Input'
,
componentProps
:
{
placeholder
:
'选择填报周期'
,
valueFormat
:
'YYYY-MM-dd'
,
format
:
'YYYY-MM-dd'
,
style
:
{
width
:
'100%'
,
},
placeholder
:
'输入搜索关键词'
,
},
colProps
:
{
span
:
4
},
},
{
field
:
'constructionMode'
,
component
:
'RadioButtonGroup'
,
colProps
:
{
span
:
6
,
},
componentProps
:
{
options
:
[
{
label
:
'全部项目'
,
value
:
undefined
,
},
{
label
:
'自建'
,
value
:
'1自建'
,
},
{
label
:
'委托建设'
,
value
:
'委托建设'
,
},
{
label
:
'代理'
,
value
:
'代理'
,
},
{
label
:
'承建'
,
value
:
'承建'
,
},
],
},
},
{
field
:
'isReserveProject'
,
component
:
'Checkbox'
,
colProps
:
{
span
:
2
,
},
renderComponentContent
:
'储备项目'
,
},
{
field
:
'ImplementingEntity'
,
label
:
''
,
component
:
'Select'
,
componentProps
:
{
placeholder
:
'实施主体'
,
options
:
[
{
label
:
'了解产品'
,
value
:
'了解产品'
,
key
:
'了解产品'
,
},
{
label
:
'正在跟进'
,
value
:
'正在跟进'
,
key
:
'正在跟进'
,
},
{
label
:
'正在试用'
,
value
:
'正在试用'
,
key
:
'正在试用'
,
},
{
label
:
'准备购买'
,
value
:
'准备购买'
,
key
:
'准备购买'
,
},
{
label
:
'准备付款'
,
value
:
'准备付款'
,
key
:
'准备付款'
,
},
{
label
:
'已经购买'
,
value
:
'已经购买'
,
key
:
'已经购买'
,
},
{
label
:
'暂时闲置'
,
value
:
'暂时闲置'
,
key
:
'暂时闲置'
,
},
],
},
colProps
:
{
span
:
3
},
},
{
field
:
'projectType'
,
label
:
''
,
component
:
'Select'
,
componentProps
:
{
placeholder
:
'项目类型'
,
options
:
[
{
label
:
'公共设施配套类'
,
value
:
'公共设施配套类'
,
key
:
'公共设施配套类'
,
},
{
label
:
'基础设施类'
,
value
:
'基础设施类'
,
key
:
'基础设施类'
,
},
{
label
:
'产业载体类'
,
value
:
'产业载体类'
,
key
:
'产业载体类'
,
},
{
label
:
'房地产类'
,
value
:
'房地产类'
,
key
:
'房地产类'
,
},
{
label
:
'存量盘活类'
,
value
:
'存量盘活类'
,
key
:
'存量盘活类'
,
},
{
label
:
'其他类(零星工程)'
,
value
:
'其他类(零星工程)'
,
key
:
'其他类(零星工程)'
,
},
],
},
colProps
:
{
span
:
5
},
colProps
:
{
span
:
3
},
},
];
...
...
@@ -273,57 +397,71 @@ export const tabList = [
{
key
:
'1'
,
tab
:
'投资计划'
,
component
:
'InvestmentPlan'
,
},
{
key
:
'2'
,
tab
:
'计划完成情况'
,
component
:
'InvestmentPlan'
,
},
{
key
:
'3'
,
tab
:
'年度资金计划'
,
component
:
'InvestmentPlan'
,
},
{
key
:
'4'
,
tab
:
'月度资金计划'
,
component
:
'InvestmentPlan'
,
},
{
key
:
'5'
,
tab
:
'已竣工验收项目陈欠资金计划'
,
component
:
'InvestmentPlan'
,
},
{
key
:
'6'
,
tab
:
'招标计划'
,
component
:
'InvestmentPlan'
,
},
{
key
:
'7'
,
tab
:
'招标管理'
,
component
:
'InvestmentPlan'
,
},
{
key
:
'8'
,
tab
:
'结算管理'
,
component
:
'InvestmentPlan'
,
},
{
key
:
'9'
,
tab
:
'变更签证管理'
,
component
:
'InvestmentPlan'
,
},
{
key
:
'10'
,
tab
:
'安全隐患管理'
,
component
:
'InvestmentPlan'
,
},
{
key
:
'11'
,
tab
:
'安全教育培训'
,
component
:
'InvestmentPlan'
,
},
{
key
:
'12'
,
tab
:
'合同管理'
,
component
:
'InvestmentPlan'
,
},
{
key
:
'13'
,
tab
:
'附件记录'
,
component
:
'InvestmentPlan'
,
},
{
key
:
'14'
,
tab
:
'更新记录'
,
component
:
'InvestmentPlan'
,
},
];
src/views/project/projectDrawer.vue
View file @
eb199ef9
...
...
@@ -7,9 +7,7 @@
width=
"700px"
@
ok=
"handleSubmit"
>
<BasicForm
ref=
"formElRef"
@
register=
"registerForm"
>
<!--
<template
#
menu=
"
{ model, field }">
</
template
>
-->
</BasicForm>
<BasicForm
ref=
"formElRef"
@
register=
"registerForm"
>
</BasicForm>
</BasicDrawer>
</
template
>
<
script
lang=
"ts"
setup
>
...
...
@@ -18,6 +16,7 @@
import
{
formSchema
}
from
'./project.data'
;
import
{
BasicDrawer
,
useDrawerInner
}
from
'@/components/Drawer'
;
import
{
addItem
,
updateItem
}
from
'@/api/project/project'
;
import
{
isArray
}
from
'@/utils/is'
;
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
isUpdate
=
ref
(
true
);
const
detailId
=
ref
(
0
);
...
...
@@ -49,6 +48,7 @@
}
if
(
unref
(
isUpdate
))
{
data
.
record
.
logo
=
[
data
.
record
.
logo
];
setFieldsValue
({
...
data
.
record
,
});
...
...
@@ -63,8 +63,11 @@
if
(
isUpdate
.
value
)
{
values
.
id
=
detailId
.
value
;
}
// TODO custom api
console
.
log
(
values
);
let
logo
=
unref
(
values
.
logo
);
if
(
isArray
(
logo
))
{
let
img
:
string
=
logo
[
0
];
values
.
logo
=
img
;
}
let
res
=
isUpdate
.
value
?
await
updateItem
(
values
)
:
await
addItem
(
values
);
console
.
log
(
res
);
...
...
src/views/project/tabs/Article.vue
0 → 100644
View file @
eb199ef9
<
template
>
<BasicTable
@
register=
"registerTable"
>
<template
#
toolbar
>
<a-button
type=
"primary"
preIcon=
"mdi:plus"
@
click=
"handleCreate"
>
新增项目
</a-button>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
<template
v-if=
"column.key === 'projectName'"
>
<Tag
color=
"warning"
v-if=
"record.isReserveProject == 'true'"
>
储备
</Tag>
{{
record
.
projectName
}}
</
template
>
<
template
v-if=
"column.key === 'constructionMode'"
>
<Tag
color=
"processing"
>
{{
record
.
constructionMode
}}
</Tag>
</
template
>
<
template
v-if=
"column.key === 'action'"
>
<TableAction
:actions=
"[
{
label: '详情',
onClick: handleDetail.bind(null, record),
},
{
label: '编辑',
onClick: handleEdit.bind(null, record, false),
},
{
label: '删除',
color: 'error',
popConfirm: {
title: '是否确认删除',
placement: 'left',
confirm: handleDelete.bind(null, record),
},
},
]"
/>
</
template
>
</template>
</BasicTable>
<projectDrawer
@
register=
"registerDrawer"
@
success=
"handleSuccess"
/>
</template>
<
script
lang=
"ts"
setup
>
import
{
Tag
}
from
'ant-design-vue'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
getListByPage
,
deleteItem
,
getItem
}
from
'@/api/project/project'
;
import
{
columns
,
searchFormSchema
}
from
'../project.data'
;
import
{
Row
,
Col
}
from
'ant-design-vue'
;
import
projectDrawer
from
'../projectDrawer.vue'
;
import
{
useDrawer
}
from
'@/components/Drawer'
;
import
{
useRouter
}
from
'vue-router'
;
const
{
push
}
=
useRouter
();
const
[
registerDrawer
,
{
openDrawer
}]
=
useDrawer
();
const
prefixCls
=
'list-basic'
;
const
[
registerTable
,
{
reload
}]
=
useTable
({
api
:
getListByPage
,
columns
,
formConfig
:
{
labelWidth
:
120
,
schemas
:
searchFormSchema
,
},
useSearchForm
:
true
,
showTableSetting
:
false
,
bordered
:
true
,
showIndexColumn
:
false
,
actionColumn
:
{
width
:
200
,
title
:
'操作'
,
dataIndex
:
'action'
,
// slots: { customRender: 'action' },
fixed
:
undefined
,
},
});
function
handleCreate
()
{
openDrawer
(
true
,
{
isUpdate
:
false
,
});
}
function
handleDetail
(
record
:
any
)
{
push
({
path
:
'/project/detail'
,
query
:
{
id
:
record
.
id
,
},
});
}
async
function
handleEdit
(
record
:
Recordable
,
disabled
:
boolean
)
{
// let res = await getItem({ id: record.id });
// console.log(res);
// res[0]
openDrawer
(
true
,
{
record
,
isUpdate
:
true
,
disabled
,
});
}
function
handleDelete
(
record
:
Recordable
)
{
deleteItem
({
id
:
record
.
id
});
reload
();
}
function
handleSuccess
()
{
reload
();
}
</
script
>
<
style
lang=
"less"
scoped
>
.list-basic {
&__top {
height: 150px;
padding: 35px;
background-color: @component-background;
text-align: center;
position: relative;
margin: 16px;
margin-bottom: 0;
&-img {
width: 58px;
height: 54px;
position: absolute;
left: 10%;
}
&-col {
// &:not(:last-child) {
// border-right: 1px dashed @border-color-base;
// }
.title {
margin-bottom: 12px;
color: #5d5d5d;
font-size: 18px;
text-align: center;
line-height: 22px;
}
.content {
display: flex;
align-items: flex-end;
width: 100%;
justify-content: center;
}
p {
margin: 0;
color: @text-color-base;
font-size: 40px;
color: #225bde;
font-family: DINAlternate;
font-weight: 700;
margin-bottom: -7px;
}
span {
text-align: center;
display: flex;
align-items: flex-end;
justify-content: center;
color: #878787;
}
}
}
&__list {
&-header {
color: #333;
font-weight: bold;
}
}
&__content {
background-color: @component-background;
.list {
position: relative;
}
.icon {
font-size: 40px !important;
}
.extra {
position: absolute;
top: 20px;
right: 15px;
color: @primary-color;
font-weight: normal;
cursor: pointer;
}
.description {
display: inline-block;
width: 40%;
}
.info {
display: inline-block;
width: 30%;
text-align: center;
div {
display: inline-block;
padding: 0 20px;
span {
display: block;
}
}
}
.progress {
display: inline-block;
width: 15%;
vertical-align: top;
}
}
}
</
style
>
src/views/project/tabs/InvestmentPlan.vue
0 → 100644
View file @
eb199ef9
<
template
>
<BasicTable
@
register=
"registerTable"
>
<template
#
bodyCell=
"
{ column, record, index }">
<template
v-if=
"column.key === 'serialNumber'"
>
{{
index
+
1
}}
</
template
>
<
template
v-if=
"column.key === 'action'"
>
<TableAction
:actions=
"[
{
label: '查看详情',
onClick: handleDetail.bind(null, record),
},
]"
/>
</
template
>
</template>
</BasicTable>
</template>
<
script
lang=
"ts"
setup
>
import
{
columns
,
searchFormSchema
}
from
'./data'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
inject
}
from
'vue'
;
import
{
getListByPage
}
from
'@/api/project/project'
;
let
detailId
=
inject
(
'detailId'
);
console
.
log
(
'detailId'
,
detailId
);
const
[
registerTable
,
{
reload
}]
=
useTable
({
api
:
getListByPage
,
columns
,
formConfig
:
{
labelWidth
:
120
,
schemas
:
searchFormSchema
,
},
searchInfo
:
{},
useSearchForm
:
true
,
showTableSetting
:
false
,
bordered
:
true
,
showIndexColumn
:
false
,
actionColumn
:
{
width
:
200
,
title
:
'操作'
,
dataIndex
:
'action'
,
// slots: { customRender: 'action' },
fixed
:
undefined
,
},
});
</
script
>
src/views/project/tabs/data.ts
0 → 100644
View file @
eb199ef9
import
{
FormSchema
,
BasicColumn
}
from
'@/components/Table'
;
export
const
searchFormSchema
:
FormSchema
[]
=
[
{
field
:
'year'
,
label
:
''
,
component
:
'DatePicker'
,
componentProps
:
{
placeholder
:
'选择填报周期'
,
valueFormat
:
'YYYY-MM-dd'
,
format
:
'YYYY-MM-dd'
,
style
:
{
width
:
'100%'
,
},
},
colProps
:
{
span
:
5
},
},
];
export
const
columns
:
BasicColumn
[]
=
[
{
title
:
''
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'填报周期'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'项目名称'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'建设地点'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'项目概况'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'建设规模'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'建设目的及项目功能'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'建设模式'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'资金来源'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'项目类型'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'总投资'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'该年之前总投资额(不含该年)'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'该年计划投资额'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'该年实际完成投资额'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'该年计划资金'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'该年实付资金'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'该年计建设性质划资金'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'开工竣工时间'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'该年底形象进度'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'实施主体'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'项目主管部门'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
{
title
:
'备注'
,
dataIndex
:
'serialNumber'
,
width
:
180
,
},
];
src/views/settlementManagement/data.tsx
View file @
eb199ef9
...
...
@@ -8,32 +8,32 @@ export const columns: BasicColumn[] = [
{
title
:
'填报周期'
,
dataIndex
:
'yearQuarter'
,
width
:
20
0
,
width
:
14
0
,
},
{
title
:
'项目数量'
,
dataIndex
:
'uniqueProjectCount'
,
width
:
1
8
0
,
width
:
1
4
0
,
},
{
title
:
'公司名称'
,
dataIndex
:
'companyName'
,
width
:
1
8
0
,
width
:
1
4
0
,
},
{
title
:
'最新更新人'
,
dataIndex
:
'updateBy'
,
width
:
1
8
0
,
width
:
1
4
0
,
},
{
title
:
'最新更新时间'
,
dataIndex
:
'updateTime'
,
width
:
1
8
0
,
width
:
1
4
0
,
},
{
title
:
'审核状态'
,
dataIndex
:
'status'
,
width
:
1
8
0
,
dataIndex
:
'status
Result
'
,
width
:
1
4
0
,
},
{
title
:
'审核人'
,
...
...
@@ -43,7 +43,7 @@ export const columns: BasicColumn[] = [
{
title
:
'审核时间'
,
dataIndex
:
'auditTime'
,
width
:
1
8
0
,
width
:
1
4
0
,
},
];
...
...
@@ -94,52 +94,285 @@ export const formSchema: FormSchema[] = [
label
:
'项目名称'
,
required
:
true
,
component
:
'Input'
,
componentProps
:
{
readonly
:
true
,
},
colProps
:
{
span
:
7
,
offset
:
1
},
},
{
field
:
'fundingSource'
,
label
:
'资金来源'
,
required
:
true
,
component
:
'Input'
,
colProps
:
{
span
:
7
,
offset
:
1
},
},
{
// //project_investment
field
:
'projectInvestment'
,
label
:
'立即投资额'
,
required
:
true
,
component
:
'InputNumber'
,
componentProps
:
{
addonAfter
:
'万元'
,
},
colProps
:
{
span
:
7
,
offset
:
1
},
},
{
field
:
'isReserveProject'
,
label
:
'是否为储备项目'
,
component
:
'RadioButtonGroup'
,
defaultValue
:
'0'
,
//bidding_method
field
:
'biddingMethod'
,
label
:
'招标方式'
,
required
:
true
,
component
:
'Select'
,
componentProps
:
{
options
:
[
{
label
:
'是'
,
value
:
'1'
},
{
label
:
'否'
,
value
:
'0'
},
{
label
:
'建委招标'
,
value
:
'1'
,
},
{
label
:
'平台招标'
,
value
:
'2'
,
},
{
label
:
'邀标比选'
,
value
:
'3'
,
},
{
label
:
'直接委托'
,
value
:
'4'
,
},
{
label
:
'评分定离'
,
value
:
'5'
,
}
],
},
colProps
:
{
span
:
7
,
offset
:
1
},
},
// {
// field: 'status',
// label: '状态',
// component: 'RadioButtonGroup',
// defaultValue: '0',
// componentProps: {
// options: [
// { label: '启用', value: '1' },
// { label: '停用', value: '0' },
// ],
// },
// },
{
label
:
'建设模式'
,
field
:
'constructionMode'
,
component
:
'InputTextArea'
,
{
//contrac_ype
field
:
'contracYpe'
,
label
:
'合同类型'
,
required
:
true
,
component
:
'Select'
,
componentProps
:
{
options
:
[
{
label
:
'施工'
,
value
:
'1'
,
},
{
label
:
'监理'
,
value
:
'2'
,
},
{
label
:
'设计'
,
value
:
'3'
,
},
{
label
:
'图审'
,
value
:
'4'
,
},
],
},
colProps
:
{
span
:
7
,
offset
:
1
},
},
{
//contract_name
field
:
'contractName'
,
label
:
' 合同名称'
,
required
:
true
,
component
:
'Input'
,
// componentProps: {
// readonly: true,
// },
colProps
:
{
span
:
7
,
offset
:
1
},
},
{
label
:
'项目类型'
,
field
:
'projectType'
,
//first_party_name
field
:
'firstPartyName'
,
label
:
'甲方单位名称'
,
required
:
true
,
component
:
'Input'
,
colProps
:
{
span
:
7
,
offset
:
1
},
},
{
label
:
'项目概况'
,
field
:
'projectOverview'
,
field
:
'secondPartyName'
,
//second_party_name
label
:
'乙方单位名称'
,
required
:
true
,
component
:
'Input'
,
colProps
:
{
span
:
7
,
offset
:
1
},
},
{
//form_of_contract
field
:
'formOfContract'
,
label
:
'合同形式'
,
required
:
true
,
component
:
'Select'
,
componentProps
:
{
options
:
[
{
label
:
'固定总价'
,
value
:
'1'
,
},
{
label
:
'固定单价'
,
value
:
'2'
,
},
{
label
:
'费率'
,
value
:
'3'
,
},
{
label
:
'其他'
,
value
:
'4'
,
},
],
},
colProps
:
{
span
:
7
,
offset
:
1
},
},
{
//contract_signing_time
field
:
'contractSigningTime'
,
label
:
'合同签订日期'
,
required
:
true
,
component
:
'DatePicker'
,
colProps
:
{
span
:
7
,
offset
:
1
},
componentProps
:
{
valueFormat
:
'YYYY-MM-DD'
,
style
:{
width
:
"100%"
}
},
},
{
field
:
'closingTime'
,
//closing_time
label
:
'竣工时间'
,
required
:
true
,
component
:
'DatePicker'
,
colProps
:
{
span
:
7
,
offset
:
1
},
componentProps
:
{
valueFormat
:
'YYYY-MM-DD'
,
style
:{
width
:
"100%"
}
},
},
{
//closing_time_datetime
field
:
'closingTimeDatetime'
,
label
:
'结算完成时间'
,
required
:
true
,
component
:
'DatePicker'
,
colProps
:
{
span
:
7
,
offset
:
1
},
componentProps
:
{
valueFormat
:
'YYYY-MM-DD'
,
style
:{
width
:
"100%"
}
},
},
{
//contract_amount
field
:
'contractAmount'
,
label
:
'合同金额'
,
required
:
true
,
component
:
'InputNumber'
,
componentProps
:
{
addonAfter
:
'元'
,
},
colProps
:
{
span
:
7
,
offset
:
1
},
},
{
//submitted_for_settlement
field
:
'submittedForSettlement'
,
label
:
'签证变更金额:'
,
required
:
true
,
component
:
'InputNumber'
,
componentProps
:
{
addonAfter
:
'元'
,
},
colProps
:
{
span
:
7
,
offset
:
1
},
},
{
//super_contract_scale
field
:
'superContractScale'
,
label
:
'结算报送金额'
,
required
:
true
,
component
:
'InputNumber'
,
componentProps
:
{
addonAfter
:
'元'
,
},
colProps
:
{
span
:
7
,
offset
:
1
},
},
{
//sum_of_money
field
:
'sumOfMoney'
,
label
:
'结算审定金额'
,
required
:
true
,
component
:
'InputNumber'
,
componentProps
:
{
addonAfter
:
'元'
,
},
colProps
:
{
span
:
7
,
offset
:
1
},
},
{
//proportion_contract_amount
field
:
'proportionContractAmount'
,
label
:
'结算审核金额超合同额比例'
,
labelWidth
:
"300px"
,
required
:
true
,
component
:
'Input'
,
componentProps
:
{
addonAfter
:
'元'
,
},
colProps
:
{
span
:
7
,
offset
:
1
},
},
{
field
:
'investmentAmount'
,
label
:
'结算审核金额超合同额比例'
,
labelWidth
:
"300px"
,
required
:
true
,
show
:
false
,
component
:
'Input'
,
componentProps
:
{
addonAfter
:
'元'
,
},
colProps
:
{
span
:
7
,
offset
:
1
},
},
{
//meeting_minutes
label
:
'会议纪要'
,
field
:
'meetingMinutes'
,
required
:
true
,
component
:
'InputTextArea'
,
componentProps
:
{
maxlength
:
100
,
showCount
:
true
,
},
colProps
:
{
span
:
7
,
offset
:
1
},
},
{
label
:
'建设目的及项目功能'
,
field
:
'constructionPurpose'
,
//remark
label
:
'备注'
,
field
:
'remark'
,
required
:
true
,
component
:
'InputTextArea'
,
componentProps
:
{
maxlength
:
100
,
showCount
:
true
,
},
colProps
:
{
span
:
7
,
offset
:
1
},
},
];
src/views/settlementManagement/index.vue
View file @
eb199ef9
...
...
@@ -5,23 +5,36 @@
<a-button
type=
"primary"
@
click=
"addSettlement"
>
新建结算管理
</a-button>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
<template
v-if=
"column.key === 'status'"
>
<Tag
color=
"warning"
v-if=
"record.status
== '0'"
>
未审核
</Tag>
<template
v-if=
"column.key === 'status
Result
'"
>
<Tag
color=
"warning"
v-if=
"record.status
Result == '0'"
>
未审核
</Tag>
</
template
>
<
template
v-if=
"column.key === 'status'"
>
<Tag
color=
"
warning"
v-if=
"record.status == '1'"
>
已审核
</Tag>
<
template
v-if=
"column.key === 'status
Result
'"
>
<Tag
color=
"
success"
v-if=
"record.statusResult == '1'"
>
已审核
</Tag>
</
template
>
<
template
v-if=
"column.key === 'action'"
>
<TableAction
<TableAction
v-if=
"record.statusResult == '0'"
:actions=
"[
{
icon: 'clarity:note-edit-line',
onClick: handleEdit.bind(null, record),
{
label: '详情',
onClick: handleEdit.bind(null, record,false),
},
{
label: '审核',
color: 'success',
popConfirm: {
title: '是否确认审核',
placement: 'left',
confirm: examine.bind(null, record,true),
}
},
{
label: '修改',
onClick: handleEdit.bind(null, record,true),
},
{
icon: 'ant-design:delete-outlined
',
label: '删除
',
color: 'error',
popConfirm: {
popConfirm: {
title: '是否确认删除',
placement: 'left',
confirm: handleDelete.bind(null, record),
...
...
@@ -29,6 +42,14 @@
},
]"
/>
<TableAction
v-else
:actions=
"[
{
label: '查看详情',
onClick: handleEdit.bind(null, record,false),
}
]"
/>
</
template
>
</template>
</BasicTable>
...
...
@@ -40,13 +61,11 @@ import { BasicTable, useTable, TableAction } from '@/components/Table';
import
yearModal
from
'@/components/yearModal.vue'
;
import
{
useModal
}
from
'@/components/Modal'
;
const
[
register
,
{
openModal
:
openModal
}]
=
useModal
();
import
{
getSettlementManageList
}
from
'@/api/project/settlementManage'
;
// import { getList } from '@/api/project/statement';
import
{
getSettlementManageList
,
auditItem
,
deleteList
}
from
'@/api/project/settlementManage'
;
import
{
columns
,
searchFormSchema
}
from
'./data'
;
import
{
useDrawer
}
from
'@/components/Drawer'
;
import
{
router
}
from
"@/router"
;
import
{
Tag
}
from
"ant-design-vue"
;
defineOptions
({
name
:
'SettlementManagement'
});
const
[
registerDrawer
,
{
openDrawer
}]
=
useDrawer
();
const
[
registerTable
,
{
reload
}]
=
useTable
({
...
...
@@ -61,7 +80,7 @@ const [registerTable, { reload }] = useTable({
bordered
:
true
,
showIndexColumn
:
false
,
actionColumn
:
{
width
:
80
,
width
:
1
80
,
title
:
'操作'
,
dataIndex
:
'action'
,
// slots: { customRender: 'action' },
...
...
@@ -70,21 +89,38 @@ const [registerTable, { reload }] = useTable({
});
function
handleEdit
(
record
:
Recordable
)
{
openDrawer
(
true
,
{
record
,
isUpdate
:
true
,
function
handleEdit
(
record
:
Recordable
,
disabled
:
boolean
)
{
router
.
push
({
path
:
'/settlementManagement/edit'
,
query
:
{
id
:
record
.
id
,
isUpdate
:
disabled
,
}
});
}
const
addSettlement
=
()
=>
{
openModal
(
true
,
{
data
:
[
'year'
,
'quarter'
],
});
};
function
handleDelete
(
record
:
Recordable
)
{
//删除操作
async
function
handleDelete
(
record
:
Recordable
)
{
console
.
log
(
record
);
let
id
=
record
.
id
await
deleteList
({
id
})
reload
();
}
//examine 审核
async
function
examine
(
record
:
Recordable
,
disabled
:
boolean
)
{
const
id
=
record
.
id
const
res
=
await
auditItem
({
id
})
console
.
log
(
res
)
reload
();
}
function
handleSuccess
()
{
reload
();
}
...
...
@@ -94,6 +130,6 @@ const handleNew = (e) => {
router
.
push
({
path
:
'/settlementManagement/edit'
,
query
:
e
,
});
;
});
};
</
script
>
src/views/settlementManagement/settlementManageEdit.vue
View file @
eb199ef9
<
template
>
<div
class=
"m-4"
>
<PageCard
>
<BasicForm
:labelWidth=
"100"
:schemas=
"schemas"
:actionColOptions=
"
{ span: 24 }"
@submit="handleSubmit"
/>
</PageCard>
<div
class=
"create-title"
>
<AButton>
<template>
<Icon
icon=
"total-sales"
></Icon>
</
template
>
添加合同
</AButton>
<PageWrapper
:title=
"getTitle"
:contentBackground=
"false"
headerSticky
>
<template
#
extra
>
<a-button
type=
"primary"
danger
>
删除
</a-button>
<a-button
type=
"primary"
@
click=
"handleSubmit"
>
提交
</a-button>
</
template
>
</div>
</div>
<PageCard
v-for=
"(item, index) in tabsFormSchema"
:key=
"index"
:title=
"item.name"
>
<
template
#
right
>
<a-button
type=
"text"
preIcon=
"ant-design:delete-outlined"
danger
@
click=
"deleteItem(index)"
>
</a-button>
</
template
>
<BasicForm
:loading=
"loading"
@
register=
"item.Form[0]"
/>
</PageCard>
<a-button
type=
"dashed"
@
click=
"add"
preIcon=
"ei:plus"
>
从合同中导入
</a-button>
<a-button
type=
"dashed"
@
click=
"handleAdd"
class=
"ml-2"
preIcon=
"ei:plus"
>
新建项目
</a-button>
<projectDrawer
@
register=
"registerDrawer"
@
success=
"handleSuccess"
/>
<projectlibraryModel
@
register=
"register"
@
close=
"handleNewData"
/>
</PageWrapper>
</template>
<
script
lang=
"ts"
>
import
{
defineComponent
}
from
'vue'
;
import
{
BasicForm
,
FormSchema
}
from
'/@/components/Form'
;
import
{
CollapseContainer
}
from
'/@/components/Container'
;
import
{
useMessage
}
from
'/@/hooks/web/useMessage'
;
import
PageCard
from
"@/components/Page/src/PageCard.vue"
;
import
CardList
from
"@/components/CardList/src/CardList.vue"
;
import
Icon
from
"@/components/Icon/Icon.vue"
;
const
schemas
:
FormSchema
[]
=
[
{
field
:
'field'
,
component
:
'Input'
,
label
:
'字段1'
,
colProps
:
{
span
:
10
,
},
defaultValue
:
'1'
,
componentProps
:
{
placeholder
:
'自定义placeholder'
,
onChange
:
(
e
)
=>
{
console
.
log
(
e
);
},
},
},
];
<
script
lang=
"ts"
setup
>
//标题
import
{
router
}
from
"@/router"
;
const
getTitle
=
ref
(
''
);
import
{
unref
,
computed
,
onMounted
,
ref
,
reactive
}
from
'vue'
;
import
projectlibraryModel
from
'@/components/ContractModel/Contract.vue'
;
import
{
useRoute
}
from
'vue-router'
;
import
{
PageWrapper
}
from
'@/components/Page'
;
import
PageCard
from
'@/components/Page/src/PageCard.vue'
;
import
projectDrawer
from
'@/views/project/projectDrawer.vue'
;
import
{
BasicForm
,
useForm
,
FormProps
,
UseFormReturnType
}
from
'@/components/Form'
;
import
{
formSchema
}
from
'./data'
;
import
{
deepMerge
}
from
'@/utils'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
useDrawer
}
from
'@/components/Drawer'
;
import
{
addItem
,
getItem
,
updateItem
,
deleteOne
}
from
"@/api/project/settlementManage"
import
{
EditModel
}
from
'@/api/project/model/settlementManageModel'
;
import
{
nextTick
}
from
'vue'
;
const
[
registerDrawer
,
{
openDrawer
}]
=
useDrawer
();
import
{
useModal
}
from
'@/components/Modal'
;
const
[
register
,
{
openModal
:
openModal
}]
=
useModal
();
const
{
createMessage
}
=
useMessage
();
// const getTitle = computed(() => (!unref(isUpdate) ? '新增招标管理' : '编辑招标管理'));
const
isUpdate
=
ref
(
false
);
const
loading
=
ref
(
false
);
const
formData
=
ref
<
EditModel
>
({
management
:
[],
proClosingQuarter
:
undefined
});
export
default
defineComponent
({
components
:
{
Icon
,
CardList
,
PageCard
,
BasicForm
,
CollapseContainer
},
setup
()
{
const
{
createMessage
}
=
useMessage
();
return
{
schemas
,
handleSubmit
:
(
values
:
any
)
=>
{
createMessage
.
success
(
'click search,values:'
+
JSON
.
stringify
(
values
));
},
};
},
//页面传递过来了的id
const
routeId
=
ref
(
null
);
onMounted
(
async
()
=>
{
const
route
=
useRoute
();
const
id
=
route
.
query
.
id
;
// 获取名为id的参数
routeId
.
value
=
id
if
(
!
id
)
{
formData
.
value
.
management
=
[]
formData
.
value
.
proClosingQuarter
=
{}
formData
.
value
.
proClosingQuarter
.
companyName
=
"sdfh"
formData
.
value
.
proClosingQuarter
.
status
=
"0"
formData
.
value
.
proClosingQuarter
.
quarter
=
route
.
query
.
quarter
formData
.
value
.
proClosingQuarter
.
givenYear
=
route
.
query
.
year
formData
.
value
.
proClosingQuarter
.
yearQuarter
=
route
.
query
.
year
+
"年第"
+
route
.
query
.
quarter
+
"季度"
isUpdate
.
value
=
false
;
getTitle
.
value
=
'新增招标管理'
;
console
.
log
(
formData
,
'formData'
);
}
else
{
//判断是查看还是编辑
isUpdate
.
value
=
route
.
query
.
isUpdate
if
(
isUpdate
){
getTitle
.
value
=
"修改结算管理"
}
else
{
getTitle
.
value
=
"查看结算管理"
}
//根据id查询详情
let
res
=
await
getItem
({
id
})
console
.
log
(
res
)
//构建数据
formData
.
value
.
management
=
[];
for
(
let
i
=
0
;
i
<
res
.
length
;
i
++
)
{
const
source
=
res
[
i
];
const
item
=
{
name
:
'序号'
+
(
i
+
1
),
forceRender
:
true
,
Form
:
useForm
(
Object
.
assign
({
schemas
:
formSchema
},
baseFormConfig
)
as
FormProps
),
};
const
{
setFieldsValue
}
=
item
.
Form
[
1
];
tabsFormSchema
.
push
(
item
);
formData
.
value
.
management
.
push
({
//合同id
id
:
source
.
id
,
//合同id
// contractId: source.id,
//项目id
// projectId: source.projectId,
// proClosingQuarterId:source.proClosingQuarterId
});
console
.
log
(
formData
.
value
.
management
,
"eeee"
)
nextTick
(()
=>
{
setFieldsValue
({
...
source
,
});
});
}
// console.log(res);
}
});
</
script
>
<
style
scoped
>
.create-title
{
width
:
100%
;
height
:
20%
;
background-color
:
#00feff
;
type
TabsFormType
=
{
name
:
string
;
forceRender
?:
boolean
;
Form
:
UseFormReturnType
;
};
const
baseFormConfig
:
Partial
<
FormProps
>
=
{
showActionButtonGroup
:
false
,
labelWidth
:
100
,
layout
:
'vertical'
,
};
const
tabsFormSchema
=
reactive
<
TabsFormType
[]
>
([]);
async
function
add
()
{
openModal
();
}
async
function
handleNewData
(
info
:
any
)
{
if
(
info
)
{
info
.
map
((
i
)
=>
{
handleNew
(
i
);
});
}
}
/***
*
*/
async
function
handleNew
(
info
:
any
)
{
const
item
=
{
name
:
'序号'
+
(
tabsFormSchema
.
length
+
1
),
forceRender
:
true
,
Form
:
useForm
(
Object
.
assign
({
schemas
:
formSchema
},
baseFormConfig
)
as
FormProps
),
};
const
{
setFieldsValue
}
=
item
.
Form
[
1
];
tabsFormSchema
.
push
(
item
);
formData
.
value
.
management
.
push
({
//合同id
contractId
:
info
.
id
,
//项目id
projectId
:
info
.
projectId
,
proClosingQuarterId
:
routeId
.
value
});
nextTick
(()
=>
{
setFieldsValue
({
projectName
:
info
.
projectName
,
fundingSource
:
info
.
fundingSource
,
});
});
}
function
deleteItem
(
index
:
any
)
{
tabsFormSchema
.
splice
(
index
,
1
);
if
(
formData
.
value
&&
formData
.
value
.
management
&&
formData
.
value
.
management
[
index
])
{
console
.
log
(
formData
.
value
.
management
[
index
].
id
);
deleteOne
(
formData
.
value
.
management
[
index
].
id
);
}
else
{
console
.
log
(
'Invalid index or data not found'
);
}
// await deleteItem(formData.value.management[index].id)
formData
.
value
.
management
.
splice
(
index
,
1
);
}
async
function
handleAdd
()
{
openDrawer
(
true
,
{
isUpdate
:
false
,
});
}
async
function
handleSuccess
(
params
:
any
)
{
console
.
log
(
params
);
handleNew
(
params
);
}
async
function
handleSubmit
()
{
loading
.
value
=
true
;
try
{
for
(
let
i
=
0
;
i
<
tabsFormSchema
.
length
;
i
++
)
{
let
item
=
tabsFormSchema
[
i
];
const
{
validate
,
getFieldsValue
}
=
item
.
Form
[
1
];
// await validate();
let
res
=
getFieldsValue
();
formData
.
value
.
management
[
i
]
=
deepMerge
(
formData
.
value
.
management
[
i
],
res
);
}
let
res
;
if
(
isUpdate
.
value
){
console
.
log
(
formData
.
value
,
"数据查看"
)
res
=
await
updateItem
(
unref
(
formData
))
}
else
{
res
=
await
addItem
(
unref
(
formData
));
}
// loading.value = false;
console
.
log
(
res
);
createMessage
.
success
(
'提交成功!'
);
//返回上一页
router
.
go
(
-
1
)
</
style
>
\ No newline at end of file
}
catch
(
e
)
{
// 验证失败或出错,切换到对应标签页
console
.
log
(
e
);
}
finally
{
loading
.
value
=
false
;
}
}
</
script
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment