From 3ab301a98d1fe4cb6998bced857f13461a9863db Mon Sep 17 00:00:00 2001
From: Qiancheng Zhao <15226586396@163.com>
Date: Thu, 25 Jul 2024 14:08:51 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9F=BA=E7=A1=80=E6=A8=A1?=
=?UTF-8?q?=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/cms/contract/index.ts | 69 +++
src/api/cms/contractouts/index.ts | 47 ++
src/api/cms/extcontract/index.ts | 67 +++
src/api/cms/outscontract/index.ts | 49 ++
src/api/cms/outscontracthistory/index.ts | 53 ++
src/api/pms/budget/index.ts | 50 ++
src/api/pms/budgethistory/index.ts | 54 ++
src/api/pms/receivables/index.ts | 43 ++
src/api/pms/receivableshistory/index.ts | 47 ++
src/views/cms/contract/ContractForm.vue | 290 ++++++++++
src/views/cms/contract/index.vue | 541 ++++++++++++++++++
.../cms/contractouts/ContractOutsForm.vue | 144 +++++
src/views/cms/contractouts/index.vue | 262 +++++++++
src/views/cms/extcontract/ExtContractForm.vue | 260 +++++++++
src/views/cms/extcontract/index.vue | 520 +++++++++++++++++
.../cms/outscontract/OutsContractForm.vue | 157 +++++
src/views/cms/outscontract/index.vue | 306 ++++++++++
.../OutsContractHistoryForm.vue | 172 ++++++
src/views/cms/outscontracthistory/index.vue | 345 +++++++++++
src/views/pms/budget/BudgetForm.vue | 143 +++++
src/views/pms/budget/index.vue | 288 ++++++++++
.../pms/budgethistory/BudgetHistoryForm.vue | 165 ++++++
src/views/pms/budgethistory/index.vue | 333 +++++++++++
src/views/pms/receivables/ReceivablesForm.vue | 65 +++
src/views/pms/receivables/index.vue | 85 +++
src/views/pms/receivables/receivables.data.ts | 85 +++
.../ReceivablesHistoryForm.vue | 65 +++
src/views/pms/receivableshistory/index.vue | 85 +++
.../receivablesHistory.data.ts | 112 ++++
29 files changed, 4902 insertions(+)
create mode 100644 src/api/cms/contract/index.ts
create mode 100644 src/api/cms/contractouts/index.ts
create mode 100644 src/api/cms/extcontract/index.ts
create mode 100644 src/api/cms/outscontract/index.ts
create mode 100644 src/api/cms/outscontracthistory/index.ts
create mode 100644 src/api/pms/budget/index.ts
create mode 100644 src/api/pms/budgethistory/index.ts
create mode 100644 src/api/pms/receivables/index.ts
create mode 100644 src/api/pms/receivableshistory/index.ts
create mode 100644 src/views/cms/contract/ContractForm.vue
create mode 100644 src/views/cms/contract/index.vue
create mode 100644 src/views/cms/contractouts/ContractOutsForm.vue
create mode 100644 src/views/cms/contractouts/index.vue
create mode 100644 src/views/cms/extcontract/ExtContractForm.vue
create mode 100644 src/views/cms/extcontract/index.vue
create mode 100644 src/views/cms/outscontract/OutsContractForm.vue
create mode 100644 src/views/cms/outscontract/index.vue
create mode 100644 src/views/cms/outscontracthistory/OutsContractHistoryForm.vue
create mode 100644 src/views/cms/outscontracthistory/index.vue
create mode 100644 src/views/pms/budget/BudgetForm.vue
create mode 100644 src/views/pms/budget/index.vue
create mode 100644 src/views/pms/budgethistory/BudgetHistoryForm.vue
create mode 100644 src/views/pms/budgethistory/index.vue
create mode 100644 src/views/pms/receivables/ReceivablesForm.vue
create mode 100644 src/views/pms/receivables/index.vue
create mode 100644 src/views/pms/receivables/receivables.data.ts
create mode 100644 src/views/pms/receivableshistory/ReceivablesHistoryForm.vue
create mode 100644 src/views/pms/receivableshistory/index.vue
create mode 100644 src/views/pms/receivableshistory/receivablesHistory.data.ts
diff --git a/src/api/cms/contract/index.ts b/src/api/cms/contract/index.ts
new file mode 100644
index 00000000..52592ee9
--- /dev/null
+++ b/src/api/cms/contract/index.ts
@@ -0,0 +1,69 @@
+import request from '@/config/axios'
+
+// 合同 VO
+export interface ContractVO {
+ name: string // 合同名称
+ type: string // 合同类型
+ progress: string // 合同进展
+ expectedTime: Date // 合同拟定时间
+ printingTime: Date // 合同用印时间
+ signingTime: Date // 签订时间
+ archiveTime: Date // 归档时间
+ status: string // 合同状态
+ countType: string // 计费方式
+ remark: string // 备注
+ contractFileUrl: string // 合同url
+ constructionCost: number // 建安费
+ source: string // 资金来源
+ discount: string // 优惠
+ consortium: boolean // 是否联合体
+ consortiumCompany: string // 联合体单位
+ extProportion: string // 占主合同比例
+ approvedAmount: number // 审定金额
+ reviewFileUrl: string // 审核文件url
+ creator: string // 创建者
+ createTime: Date // 创建时间
+ updater: string // 更新者
+ updateTime: Date // 更新时间
+ deleted: boolean // 是否删除
+ tenantId: number // 租户编号
+ amount: number // 签订合同总额
+ preAmount: number // 前期费
+ designAmount: number // 设计费
+ surveyFees: number // 勘测费
+ measurementFee: number // 测量费
+ otherFee: number // 其他费
+}
+
+// 合同 API
+export const ContractApi = {
+ // 查询合同分页
+ getContractPage: async (params: any) => {
+ return await request.get({ url: `/cms/contract/page`, params })
+ },
+
+ // 查询合同详情
+ getContract: async (id: number) => {
+ return await request.get({ url: `/cms/contract/get?id=` + id })
+ },
+
+ // 新增合同
+ createContract: async (data: ContractVO) => {
+ return await request.post({ url: `/cms/contract/create`, data })
+ },
+
+ // 修改合同
+ updateContract: async (data: ContractVO) => {
+ return await request.put({ url: `/cms/contract/update`, data })
+ },
+
+ // 删除合同
+ deleteContract: async (id: number) => {
+ return await request.delete({ url: `/cms/contract/delete?id=` + id })
+ },
+
+ // 导出合同 Excel
+ exportContract: async (params) => {
+ return await request.download({ url: `/cms/contract/export-excel`, params })
+ },
+}
\ No newline at end of file
diff --git a/src/api/cms/contractouts/index.ts b/src/api/cms/contractouts/index.ts
new file mode 100644
index 00000000..2a2ead77
--- /dev/null
+++ b/src/api/cms/contractouts/index.ts
@@ -0,0 +1,47 @@
+import request from '@/config/axios'
+
+// 外包合同关联 VO
+export interface ContractOutsVO {
+ id: number // 主键
+ contractId: number // 合同id
+ outsContractId: number // 外包合同id
+ creator: string // 创建人
+ cteateTime: Date // 创建时间
+ updator: string // 更新人
+ updateTime: Date // 更新时间
+ delete: boolean // 是否删除
+ tenantId: number // 租户id
+}
+
+// 外包合同关联 API
+export const ContractOutsApi = {
+ // 查询外包合同关联分页
+ getContractOutsPage: async (params: any) => {
+ return await request.get({ url: `/cms/contract-outs/page`, params })
+ },
+
+ // 查询外包合同关联详情
+ getContractOuts: async (id: number) => {
+ return await request.get({ url: `/cms/contract-outs/get?id=` + id })
+ },
+
+ // 新增外包合同关联
+ createContractOuts: async (data: ContractOutsVO) => {
+ return await request.post({ url: `/cms/contract-outs/create`, data })
+ },
+
+ // 修改外包合同关联
+ updateContractOuts: async (data: ContractOutsVO) => {
+ return await request.put({ url: `/cms/contract-outs/update`, data })
+ },
+
+ // 删除外包合同关联
+ deleteContractOuts: async (id: number) => {
+ return await request.delete({ url: `/cms/contract-outs/delete?id=` + id })
+ },
+
+ // 导出外包合同关联 Excel
+ exportContractOuts: async (params) => {
+ return await request.download({ url: `/cms/contract-outs/export-excel`, params })
+ },
+}
\ No newline at end of file
diff --git a/src/api/cms/extcontract/index.ts b/src/api/cms/extcontract/index.ts
new file mode 100644
index 00000000..440cc673
--- /dev/null
+++ b/src/api/cms/extcontract/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+// 外部合同 VO
+export interface ExtContractVO {
+ id: number // 主键
+ projectId: number // 项目id
+ name: string // 合同名称
+ type: string // 合同类型
+ customerCompanyId: number // 客户公司id
+ progress: string // 合同进展
+ expectedTime: Date // 预计签订时间
+ signingTime: Date // 签订时间
+ archiveTime: Date // 归档时间
+ status: string // 状态
+ amount: number // 合同金额
+ preAmount: number // 前期费用
+ designFee: number // 设计费
+ surveyFees: number // 勘测费
+ testingFee: number // 检测费
+ otherFee: string // 其他费
+ countType: string // 计费方式
+ remark: string // 备注
+ contractFileUrl: string // 合同附件url
+ constructionCost: number // 建安费
+ source: string // 资金来源
+ chargingStandard: string // 收费标准
+ discount: string // 优惠
+ consortium: boolean // 是否联合体
+ consortiumCompany: string // 联合体单位
+ reminderTime: Date // 合同提示时间
+ approvedAmount: number // 审定金额
+ reviewFileUrl: string // 审核文件url
+ contractId: number // 合同id
+}
+
+// 外部合同 API
+export const ExtContractApi = {
+ // 查询外部合同分页
+ getExtContractPage: async (params: any) => {
+ return await request.get({ url: `/cms-ext/ext-contract/page`, params })
+ },
+
+ // 查询外部合同详情
+ getExtContract: async (id: number) => {
+ return await request.get({ url: `/cms-ext/ext-contract/get?id=` + id })
+ },
+
+ // 新增外部合同
+ createExtContract: async (data: ExtContractVO) => {
+ return await request.post({ url: `/cms-ext/ext-contract/create`, data })
+ },
+
+ // 修改外部合同
+ updateExtContract: async (data: ExtContractVO) => {
+ return await request.put({ url: `/cms-ext/ext-contract/update`, data })
+ },
+
+ // 删除外部合同
+ deleteExtContract: async (id: number) => {
+ return await request.delete({ url: `/cms-ext/ext-contract/delete?id=` + id })
+ },
+
+ // 导出外部合同 Excel
+ exportExtContract: async (params) => {
+ return await request.download({ url: `/cms-ext/ext-contract/export-excel`, params })
+ },
+}
\ No newline at end of file
diff --git a/src/api/cms/outscontract/index.ts b/src/api/cms/outscontract/index.ts
new file mode 100644
index 00000000..348be86d
--- /dev/null
+++ b/src/api/cms/outscontract/index.ts
@@ -0,0 +1,49 @@
+import request from '@/config/axios'
+
+// 外包合同 VO
+export interface OutsContractVO {
+ id: number // 主键
+ projectId: number // 项目id
+ name: string // 合同名称
+ contractId: number // 主合同id
+ countType: string // 类型
+ amount: number // 合同金额
+ code: string // 编号
+ major: string // 专业
+ signingTime: Date // 签订时间
+ settlementAmount: number // 结算数
+ contractFileUrl: string // 合同文件url
+}
+
+// 外包合同 API
+export const OutsContractApi = {
+ // 查询外包合同分页
+ getOutsContractPage: async (params: any) => {
+ return await request.get({ url: `/cms/outs-contract/page`, params })
+ },
+
+ // 查询外包合同详情
+ getOutsContract: async (id: number) => {
+ return await request.get({ url: `/cms/outs-contract/get?id=` + id })
+ },
+
+ // 新增外包合同
+ createOutsContract: async (data: OutsContractVO) => {
+ return await request.post({ url: `/cms/outs-contract/create`, data })
+ },
+
+ // 修改外包合同
+ updateOutsContract: async (data: OutsContractVO) => {
+ return await request.put({ url: `/cms/outs-contract/update`, data })
+ },
+
+ // 删除外包合同
+ deleteOutsContract: async (id: number) => {
+ return await request.delete({ url: `/cms/outs-contract/delete?id=` + id })
+ },
+
+ // 导出外包合同 Excel
+ exportOutsContract: async (params) => {
+ return await request.download({ url: `/cms/outs-contract/export-excel`, params })
+ },
+}
\ No newline at end of file
diff --git a/src/api/cms/outscontracthistory/index.ts b/src/api/cms/outscontracthistory/index.ts
new file mode 100644
index 00000000..244f4956
--- /dev/null
+++ b/src/api/cms/outscontracthistory/index.ts
@@ -0,0 +1,53 @@
+import request from '@/config/axios'
+
+// 外包合同历史 VO
+export interface OutsContractHistoryVO {
+ id: number // 主键
+ projectId: number // 项目id
+ name: string // 合同名称
+ contractId: number // 主合同id
+ countType: string // 类型
+ amount: number // 合同金额
+ code: string // 编号
+ major: string // 专业
+ processInstanceId: string // 流程实体id
+ signingTime: Date // 签订时间
+ settlementAmount: number // 结算数
+ contractFileUrl: string // 合同文件url
+ processStatus: string // 流程状态
+ outsContractId: number // 外包合同id
+ version: string // 版本
+}
+
+// 外包合同历史 API
+export const OutsContractHistoryApi = {
+ // 查询外包合同历史分页
+ getOutsContractHistoryPage: async (params: any) => {
+ return await request.get({ url: `/cms/outs-contract-history/page`, params })
+ },
+
+ // 查询外包合同历史详情
+ getOutsContractHistory: async (id: number) => {
+ return await request.get({ url: `/cms/outs-contract-history/get?id=` + id })
+ },
+
+ // 新增外包合同历史
+ createOutsContractHistory: async (data: OutsContractHistoryVO) => {
+ return await request.post({ url: `/cms/outs-contract-history/create`, data })
+ },
+
+ // 修改外包合同历史
+ updateOutsContractHistory: async (data: OutsContractHistoryVO) => {
+ return await request.put({ url: `/cms/outs-contract-history/update`, data })
+ },
+
+ // 删除外包合同历史
+ deleteOutsContractHistory: async (id: number) => {
+ return await request.delete({ url: `/cms/outs-contract-history/delete?id=` + id })
+ },
+
+ // 导出外包合同历史 Excel
+ exportOutsContractHistory: async (params) => {
+ return await request.download({ url: `/cms/outs-contract-history/export-excel`, params })
+ },
+}
\ No newline at end of file
diff --git a/src/api/pms/budget/index.ts b/src/api/pms/budget/index.ts
new file mode 100644
index 00000000..f58fe440
--- /dev/null
+++ b/src/api/pms/budget/index.ts
@@ -0,0 +1,50 @@
+import request from '@/config/axios'
+
+// 预算管理 VO
+export interface BudgetVO {
+ id: number // 主键
+ projectId: number // 项目id
+ contractId: number // 合同管理
+ budgetFileUrl: string // 预算文件url
+ outsourcingCosts: number // 预算外包成本
+ laborCosts: number // 人力成本
+ accumulatedLaborCosts: number // 累计人力成本
+ productCosts: number // 生产成本
+ accumulatedProductCosts: number // 累计生产成本
+ financialCosts: number // 财务成本
+ accumulatedFinancialCosts: number // 累计财务成本
+ collectionSituation: string // 回款情况
+}
+
+// 预算管理 API
+export const BudgetApi = {
+ // 查询预算管理分页
+ getBudgetPage: async (params: any) => {
+ return await request.get({ url: `/pms/budget/page`, params })
+ },
+
+ // 查询预算管理详情
+ getBudget: async (id: number) => {
+ return await request.get({ url: `/pms/budget/get?id=` + id })
+ },
+
+ // 新增预算管理
+ createBudget: async (data: BudgetVO) => {
+ return await request.post({ url: `/pms/budget/create`, data })
+ },
+
+ // 修改预算管理
+ updateBudget: async (data: BudgetVO) => {
+ return await request.put({ url: `/pms/budget/update`, data })
+ },
+
+ // 删除预算管理
+ deleteBudget: async (id: number) => {
+ return await request.delete({ url: `/pms/budget/delete?id=` + id })
+ },
+
+ // 导出预算管理 Excel
+ exportBudget: async (params) => {
+ return await request.download({ url: `/pms/budget/export-excel`, params })
+ },
+}
\ No newline at end of file
diff --git a/src/api/pms/budgethistory/index.ts b/src/api/pms/budgethistory/index.ts
new file mode 100644
index 00000000..8c69be6d
--- /dev/null
+++ b/src/api/pms/budgethistory/index.ts
@@ -0,0 +1,54 @@
+import request from '@/config/axios'
+
+// 预算管理 VO
+export interface BudgetHistoryVO {
+ id: number // 主键
+ projectId: number // 项目id
+ contractId: number // 合同管理
+ budgetFileUrl: string // 预算文件url
+ outsourcingCosts: number // 预算外包成本
+ laborCosts: number // 人力成本
+ accumulatedLaborCosts: number // 累计人力成本
+ productCosts: number // 生产成本
+ accumulatedProductCosts: number // 累计生产成本
+ financialCosts: number // 财务成本
+ accumulatedFinancialCosts: number // 累计财务成本
+ collectionSituation: string // 回款情况
+ processInstanceId: string // 流程实体id
+ processStatus: string // 流程状态
+ budgetId: number // 预算id
+ version: string // 版本
+}
+
+// 预算管理 API
+export const BudgetHistoryApi = {
+ // 查询预算管理分页
+ getBudgetHistoryPage: async (params: any) => {
+ return await request.get({ url: `/pms/budget-history/page`, params })
+ },
+
+ // 查询预算管理详情
+ getBudgetHistory: async (id: number) => {
+ return await request.get({ url: `/pms/budget-history/get?id=` + id })
+ },
+
+ // 新增预算管理
+ createBudgetHistory: async (data: BudgetHistoryVO) => {
+ return await request.post({ url: `/pms/budget-history/create`, data })
+ },
+
+ // 修改预算管理
+ updateBudgetHistory: async (data: BudgetHistoryVO) => {
+ return await request.put({ url: `/pms/budget-history/update`, data })
+ },
+
+ // 删除预算管理
+ deleteBudgetHistory: async (id: number) => {
+ return await request.delete({ url: `/pms/budget-history/delete?id=` + id })
+ },
+
+ // 导出预算管理 Excel
+ exportBudgetHistory: async (params) => {
+ return await request.download({ url: `/pms/budget-history/export-excel`, params })
+ },
+}
\ No newline at end of file
diff --git a/src/api/pms/receivables/index.ts b/src/api/pms/receivables/index.ts
new file mode 100644
index 00000000..1e6a5bab
--- /dev/null
+++ b/src/api/pms/receivables/index.ts
@@ -0,0 +1,43 @@
+import request from '@/config/axios'
+
+export interface ReceivablesVO {
+ id: number
+ projectId: number
+ contractId: number
+ planStage: string
+ initialDesignStage: string
+ constructionDrawingStage: string
+ constructionStage: string
+ approveStage: string
+ collectionSituation: string
+}
+
+// 查询应收款管理列表
+export const getReceivablesPage = async (params) => {
+ return await request.get({ url: '/pms/receivables/page', params })
+}
+
+// 查询应收款管理详情
+export const getReceivables = async (id: number) => {
+ return await request.get({ url: '/pms/receivables/get?id=' + id })
+}
+
+// 新增应收款管理
+export const createReceivables = async (data: ReceivablesVO) => {
+ return await request.post({ url: '/pms/receivables/create', data })
+}
+
+// 修改应收款管理
+export const updateReceivables = async (data: ReceivablesVO) => {
+ return await request.put({ url: '/pms/receivables/update', data })
+}
+
+// 删除应收款管理
+export const deleteReceivables = async (id: number) => {
+ return await request.delete({ url: '/pms/receivables/delete?id=' + id })
+}
+
+// 导出应收款管理 Excel
+export const exportReceivablesApi = async (params) => {
+ return await request.download({ url: '/pms/receivables/export-excel', params })
+}
\ No newline at end of file
diff --git a/src/api/pms/receivableshistory/index.ts b/src/api/pms/receivableshistory/index.ts
new file mode 100644
index 00000000..6509a411
--- /dev/null
+++ b/src/api/pms/receivableshistory/index.ts
@@ -0,0 +1,47 @@
+import request from '@/config/axios'
+
+export interface ReceivablesHistoryVO {
+ id: number
+ projectId: number
+ contractId: number
+ planStage: string
+ initialDesignStage: string
+ constructionDrawingStage: string
+ constructionStage: string
+ approveStage: string
+ collectionSituation: string
+ processInstanceId: string
+ processStatus: string
+ receivableId: number
+ version: string
+}
+
+// 查询应收款管理历史记录列表
+export const getReceivablesHistoryPage = async (params) => {
+ return await request.get({ url: '/pms/receivables-history/page', params })
+}
+
+// 查询应收款管理历史记录详情
+export const getReceivablesHistory = async (id: number) => {
+ return await request.get({ url: '/pms/receivables-history/get?id=' + id })
+}
+
+// 新增应收款管理历史记录
+export const createReceivablesHistory = async (data: ReceivablesHistoryVO) => {
+ return await request.post({ url: '/pms/receivables-history/create', data })
+}
+
+// 修改应收款管理历史记录
+export const updateReceivablesHistory = async (data: ReceivablesHistoryVO) => {
+ return await request.put({ url: '/pms/receivables-history/update', data })
+}
+
+// 删除应收款管理历史记录
+export const deleteReceivablesHistory = async (id: number) => {
+ return await request.delete({ url: '/pms/receivables-history/delete?id=' + id })
+}
+
+// 导出应收款管理历史记录 Excel
+export const exportReceivablesHistoryApi = async (params) => {
+ return await request.download({ url: '/pms/receivables-history/export-excel', params })
+}
\ No newline at end of file
diff --git a/src/views/cms/contract/ContractForm.vue b/src/views/cms/contract/ContractForm.vue
new file mode 100644
index 00000000..ad947705
--- /dev/null
+++ b/src/views/cms/contract/ContractForm.vue
@@ -0,0 +1,290 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cms/contract/index.vue b/src/views/cms/contract/index.vue
new file mode 100644
index 00000000..a07459d5
--- /dev/null
+++ b/src/views/cms/contract/index.vue
@@ -0,0 +1,541 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+ 新增
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cms/contractouts/ContractOutsForm.vue b/src/views/cms/contractouts/ContractOutsForm.vue
new file mode 100644
index 00000000..828a0b74
--- /dev/null
+++ b/src/views/cms/contractouts/ContractOutsForm.vue
@@ -0,0 +1,144 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cms/contractouts/index.vue b/src/views/cms/contractouts/index.vue
new file mode 100644
index 00000000..33613e9a
--- /dev/null
+++ b/src/views/cms/contractouts/index.vue
@@ -0,0 +1,262 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+ 新增
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cms/extcontract/ExtContractForm.vue b/src/views/cms/extcontract/ExtContractForm.vue
new file mode 100644
index 00000000..7632f7d5
--- /dev/null
+++ b/src/views/cms/extcontract/ExtContractForm.vue
@@ -0,0 +1,260 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cms/extcontract/index.vue b/src/views/cms/extcontract/index.vue
new file mode 100644
index 00000000..b4a868ed
--- /dev/null
+++ b/src/views/cms/extcontract/index.vue
@@ -0,0 +1,520 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+ 新增
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cms/outscontract/OutsContractForm.vue b/src/views/cms/outscontract/OutsContractForm.vue
new file mode 100644
index 00000000..76422ec0
--- /dev/null
+++ b/src/views/cms/outscontract/OutsContractForm.vue
@@ -0,0 +1,157 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cms/outscontract/index.vue b/src/views/cms/outscontract/index.vue
new file mode 100644
index 00000000..d957912a
--- /dev/null
+++ b/src/views/cms/outscontract/index.vue
@@ -0,0 +1,306 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+ 新增
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cms/outscontracthistory/OutsContractHistoryForm.vue b/src/views/cms/outscontracthistory/OutsContractHistoryForm.vue
new file mode 100644
index 00000000..7c9746fd
--- /dev/null
+++ b/src/views/cms/outscontracthistory/OutsContractHistoryForm.vue
@@ -0,0 +1,172 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/views/cms/outscontracthistory/index.vue b/src/views/cms/outscontracthistory/index.vue
new file mode 100644
index 00000000..25270f3b
--- /dev/null
+++ b/src/views/cms/outscontracthistory/index.vue
@@ -0,0 +1,345 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+ 新增
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/pms/budget/BudgetForm.vue b/src/views/pms/budget/BudgetForm.vue
new file mode 100644
index 00000000..ba2abb0e
--- /dev/null
+++ b/src/views/pms/budget/BudgetForm.vue
@@ -0,0 +1,143 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/views/pms/budget/index.vue b/src/views/pms/budget/index.vue
new file mode 100644
index 00000000..4c3a033e
--- /dev/null
+++ b/src/views/pms/budget/index.vue
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+ 新增
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/pms/budgethistory/BudgetHistoryForm.vue b/src/views/pms/budgethistory/BudgetHistoryForm.vue
new file mode 100644
index 00000000..60af88b4
--- /dev/null
+++ b/src/views/pms/budgethistory/BudgetHistoryForm.vue
@@ -0,0 +1,165 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/views/pms/budgethistory/index.vue b/src/views/pms/budgethistory/index.vue
new file mode 100644
index 00000000..5540d498
--- /dev/null
+++ b/src/views/pms/budgethistory/index.vue
@@ -0,0 +1,333 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+ 新增
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/pms/receivables/ReceivablesForm.vue b/src/views/pms/receivables/ReceivablesForm.vue
new file mode 100644
index 00000000..9446cfb6
--- /dev/null
+++ b/src/views/pms/receivables/ReceivablesForm.vue
@@ -0,0 +1,65 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/views/pms/receivables/index.vue b/src/views/pms/receivables/index.vue
new file mode 100644
index 00000000..1a1ab5d0
--- /dev/null
+++ b/src/views/pms/receivables/index.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/pms/receivables/receivables.data.ts b/src/views/pms/receivables/receivables.data.ts
new file mode 100644
index 00000000..4316f342
--- /dev/null
+++ b/src/views/pms/receivables/receivables.data.ts
@@ -0,0 +1,85 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const rules = reactive({
+ projectId: [required],
+})
+
+// CrudSchema https://doc.iocoder.cn/vue3/crud-schema/
+const crudSchemas = reactive([
+ {
+ label: '主键',
+ field: 'id',
+ isForm: false,
+ },
+ {
+ label: '项目id',
+ field: 'projectId',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '主合同id ',
+ field: 'contractId',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '方案阶段比例',
+ field: 'planStage',
+ isSearch: true,
+ },
+ {
+ label: '初设阶段比例',
+ field: 'initialDesignStage',
+ isSearch: true,
+ },
+ {
+ label: '施工图阶段比例',
+ field: 'constructionDrawingStage',
+ isSearch: true,
+ },
+ {
+ label: '施工配合阶段',
+ field: 'constructionStage',
+ isSearch: true,
+ },
+ {
+ label: '审定阶段',
+ field: 'approveStage',
+ isSearch: true,
+ },
+ {
+ label: '回款情况',
+ field: 'collectionSituation',
+ isSearch: true,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false
+ }
+])
+export const { allSchemas } = useCrudSchemas(crudSchemas)
\ No newline at end of file
diff --git a/src/views/pms/receivableshistory/ReceivablesHistoryForm.vue b/src/views/pms/receivableshistory/ReceivablesHistoryForm.vue
new file mode 100644
index 00000000..34982cc5
--- /dev/null
+++ b/src/views/pms/receivableshistory/ReceivablesHistoryForm.vue
@@ -0,0 +1,65 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/views/pms/receivableshistory/index.vue b/src/views/pms/receivableshistory/index.vue
new file mode 100644
index 00000000..c36cf0f1
--- /dev/null
+++ b/src/views/pms/receivableshistory/index.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/pms/receivableshistory/receivablesHistory.data.ts b/src/views/pms/receivableshistory/receivablesHistory.data.ts
new file mode 100644
index 00000000..24677a9c
--- /dev/null
+++ b/src/views/pms/receivableshistory/receivablesHistory.data.ts
@@ -0,0 +1,112 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const rules = reactive({
+ projectId: [required],
+})
+
+// CrudSchema https://doc.iocoder.cn/vue3/crud-schema/
+const crudSchemas = reactive([
+ {
+ label: '主键',
+ field: 'id',
+ isForm: false,
+ },
+ {
+ label: '项目id',
+ field: 'projectId',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '主合同id ',
+ field: 'contractId',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '方案阶段比例',
+ field: 'planStage',
+ isSearch: true,
+ },
+ {
+ label: '初设阶段比例',
+ field: 'initialDesignStage',
+ isSearch: true,
+ },
+ {
+ label: '施工图阶段比例',
+ field: 'constructionDrawingStage',
+ isSearch: true,
+ },
+ {
+ label: '施工配合阶段',
+ field: 'constructionStage',
+ isSearch: true,
+ },
+ {
+ label: '审定阶段',
+ field: 'approveStage',
+ isSearch: true,
+ },
+ {
+ label: '回款情况',
+ field: 'collectionSituation',
+ isSearch: true,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '流程实体id',
+ field: 'processInstanceId',
+ isSearch: true,
+ },
+ {
+ label: '流程状态',
+ field: 'processStatus',
+ isSearch: true,
+ form: {
+ component: 'Radio'
+ },
+ },
+ {
+ label: '应收款id',
+ field: 'receivableId',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '版本',
+ field: 'version',
+ isSearch: true,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false
+ }
+])
+export const { allSchemas } = useCrudSchemas(crudSchemas)
\ No newline at end of file