diff --git a/src/api/tower/contract/model/index.ts b/src/api/tower/contract/model/index.ts index b818470..42f729f 100644 --- a/src/api/tower/contract/model/index.ts +++ b/src/api/tower/contract/model/index.ts @@ -35,6 +35,9 @@ export interface Contract { // 跨月结算日期 extendMonthDate?: number; userId?: any; + projectName?: any; + customerName?: any; + companyName?: any; } diff --git a/src/api/tower/fall/model/index.ts b/src/api/tower/fall/model/index.ts index 648b841..c18ba4d 100644 --- a/src/api/tower/fall/model/index.ts +++ b/src/api/tower/fall/model/index.ts @@ -4,7 +4,7 @@ export interface TowerFall { id?: number; code?: string; model?: string; - companyId?: number; + // companyId?: number; companyName: string; factory?: string; factoryDate?: string; diff --git a/src/api/tower/historySettle/index.ts b/src/api/tower/historySettle/index.ts new file mode 100644 index 0000000..5e1f0a9 --- /dev/null +++ b/src/api/tower/historySettle/index.ts @@ -0,0 +1,129 @@ +import request from '@/utils/request'; +import type {ApiResult, PageResult} from '@/api'; +import type {HistorySettle, HistorySettleParam} from './model'; + +/** + * 分页查询结算 + */ +export async function pageHistorySettle(params: HistorySettleParam) { + const res = await request.get>>( + '/tower/tower-history-settle/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询合同列表 + */ +export async function listHistorySettle(params?: HistorySettleParam) { + const res = await request.get>( + '/tower/tower-history-settle', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询合同 + */ +export async function getHistorySettle(id: number) { + const res = await request.get>( + '/tower/tower-history-settle/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加合同 + */ +export async function addHistorySettle(data: HistorySettle) { + const res = await request.post>( + '/tower/tower-history-settle', + data + ); + if (res.data.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改合同 + */ +export async function updateHistorySettle(data: HistorySettle) { + const res = await request.put>( + '/tower/tower-history-settle', + data + ); + if (res.data.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量修改合同 + */ +export async function updateBatchHistorySettle(data: HistorySettle[]) { + const res = await request.put>( + '/tower/tower-history-settle/batch', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} +export async function addBatchHistorySettle(data: HistorySettle[]) { + const res = await request.post>( + '/tower/tower-history-settle/batch', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除合同 + */ +export async function removeHistorySettle(id?: number) { + const res = await request.delete>( + '/tower/tower-history-settle/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除合同 + */ +export async function removeBatchHistorySettle(data: (number | undefined)[]) { + const res = await request.delete>( + '/tower/tower-history-settle/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/tower/historySettle/model/index.ts b/src/api/tower/historySettle/model/index.ts new file mode 100644 index 0000000..712ab8d --- /dev/null +++ b/src/api/tower/historySettle/model/index.ts @@ -0,0 +1,36 @@ +import type { PageParam } from '@/api'; + +/** + * 合同 + */ +export interface HistorySettle { + historySettleId?: any; + projectId?: any; + projectName?: any; + equipmentName?: any; + equipmentModel?: any; + factoryNo?: any; + filingNo?: any; + equipmentNo?: any; + contractNo?: any; + equipmentId?: any; + amountWithTax?: any; + taxAmount?: any; + inOutWithTax?: any; + inOutTax?: any; + workerAmountWithTax?: any; + workerTax?: any; + otherAmountWithTax?: string; + otherTax?: string; + startDate?: any; + endDate?: any; + userId?: any; +} + +/** + * 合同搜索条件 + */ +export interface HistorySettleParam extends PageParam { + projectId?: string; + contractNo?: string; +} diff --git a/src/api/tower/rentRecord/index.ts b/src/api/tower/rentRecord/index.ts new file mode 100644 index 0000000..5a37f9d --- /dev/null +++ b/src/api/tower/rentRecord/index.ts @@ -0,0 +1,129 @@ +import request from '@/utils/request'; +import type {ApiResult, PageResult} from '@/api'; +import type {RentRecord, RentRecordParam} from './model'; + +/** + * 分页查询结算 + */ +export async function pageRentRecord(params: RentRecordParam) { + const res = await request.get>>( + '/tower/tower-rent-record/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询合同列表 + */ +export async function listRentRecord(params?: RentRecordParam) { + const res = await request.get>( + '/tower/tower-rent-record', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询合同 + */ +export async function getRentRecord(id: number) { + const res = await request.get>( + '/tower/tower-rent-record/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加合同 + */ +export async function addRentRecord(data: RentRecord) { + const res = await request.post>( + '/tower/tower-rent-record', + data + ); + if (res.data.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改合同 + */ +export async function updateRentRecord(data: RentRecord) { + const res = await request.put>( + '/tower/tower-rent-record', + data + ); + if (res.data.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量修改合同 + */ +export async function updateBatchRentRecord(data: RentRecord[]) { + const res = await request.put>( + '/tower/tower-rent-record/batch', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} +export async function addBatchRentRecord(data: RentRecord[]) { + const res = await request.post>( + '/tower/tower-rent-record/batch', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除合同 + */ +export async function removeRentRecord(id?: number) { + const res = await request.delete>( + '/tower/tower-rent-record/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除合同 + */ +export async function removeBatchRentRecord(data: (number | undefined)[]) { + const res = await request.delete>( + '/tower/tower-rent-record/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/tower/rentRecord/model/index.ts b/src/api/tower/rentRecord/model/index.ts new file mode 100644 index 0000000..e36260f --- /dev/null +++ b/src/api/tower/rentRecord/model/index.ts @@ -0,0 +1,33 @@ +import type { PageParam } from "@/api"; + +export interface RentRecord { + rentRecordId?: any; + projectId?: any; + contractNo?: any; + equipmentId?: any; + startDate?: any; + stopDate?: any; + checkDate?: any; + reportStopDate?: any; + reportStopType?: string; + restoreDate?: string; + reportMonitorNo?: any; + companyId?: any; + status?: any; + userId?: any; + projectName?: any; + companyName?: any; + equipmentName?: any; + equipmentModel?: any; + filingNo?: any; + equipmentNo?: any; + factoryNo?: any; +} + +export interface RentRecordParam extends PageParam { + projectId?: string; + contractNo?: string; + status?: string; +} + +export const rentRecordStatusList = ["未起租", "起租", "中途报停", "报停复工", "拆卸停租"]; diff --git a/src/components/TowerContractSelectModel/components/select-data.vue b/src/components/TowerContractSelectModel/components/select-data.vue index 0816fc8..80ebaf7 100644 --- a/src/components/TowerContractSelectModel/components/select-data.vue +++ b/src/components/TowerContractSelectModel/components/select-data.vue @@ -135,7 +135,7 @@ const customRow = (record: Contract) => { // 行点击事件 onClick: () => { updateVisible(false); - if (!record.settleMethod) { + if (record.settleMethod === null || record.settleMethod === undefined) { message.warning("请先设置合同结算方式"); return; } diff --git a/src/views/search/components/dict-select.vue b/src/views/search/components/dict-select.vue index f6c8d59..341f3a9 100644 --- a/src/views/search/components/dict-select.vue +++ b/src/views/search/components/dict-select.vue @@ -29,7 +29,7 @@ value?: string; placeholder?: string; dictCode?: string; - multiple?: string; + multiple?: any; }>(), { placeholder: '请选择服务器厂商' diff --git a/src/views/tower/contract/components/contract-edit.vue b/src/views/tower/contract/components/contract-edit.vue index 9416fc7..f74aa09 100644 --- a/src/views/tower/contract/components/contract-edit.vue +++ b/src/views/tower/contract/components/contract-edit.vue @@ -280,6 +280,8 @@ import { TowerModel } from "@/api/tower/model/model"; import { listTowerModel } from "@/api/tower/model"; import { addBatchContractFile, listContractFile } from "@/api/tower/contractFile"; import { addBatchContractEquipment, listContractEquipment } from "@/api/tower/contractEquipment"; +import { Company } from "@/api/system/company/model"; +import { Customer } from "@/api/oa/customer/model"; const userStore = useUserStore(); // 当前用户信息 @@ -367,14 +369,14 @@ const chooseProject = (res) => { form.projectId = res.projectId; }; -const companyName = ref(""); -const chooseCompany = (res) => { +const companyName = ref(); +const chooseCompany = (res: Company) => { companyName.value = res.companyName; form.companyId = res.companyId; }; const customerName = ref(""); -const chooseCustomer = (res) => { +const chooseCustomer = (res: Customer) => { customerName.value = res.name; form.customerId = res.customerId; form.customerContact = res.contact; @@ -399,7 +401,7 @@ const delFile = index => { }; const getContractFileList = async () => { - contractFileList.value = await listContractFile({contactId: props.data?.contractId}) + contractFileList.value = await listContractFile({ contactId: props.data?.contractId }); }; const equipmentList = ref([]); @@ -409,7 +411,7 @@ const getEquipmentList = async () => { const contractEquipmentList = ref([]); const getContractEquipmentList = async () => { - contractEquipmentList.value = await listContractEquipment({contactId: props.data?.contractId}) + contractEquipmentList.value = await listContractEquipment({ contactId: props.data?.contractId }); }; const chooseEquipmentName = (res, index) => { @@ -455,7 +457,7 @@ const save = () => { }; for (let i = 0; i < contractEquipmentList.value.length; i++) { if (!contractEquipmentList.value[i].equipmentName) { - console.log(contractEquipmentList.value[i].equipmentName) + console.log(contractEquipmentList.value[i].equipmentName); loading.value = false; message.error("请选择设备"); return; @@ -552,6 +554,7 @@ watch( isUpdate.value = false; } } else { + projectName.value = customerName.value = companyName.value = ""; resetFields(); } } diff --git a/src/views/tower/contract/components/contract-settle.vue b/src/views/tower/contract/components/contract-settle.vue index c9e535d..0fc5dda 100644 --- a/src/views/tower/contract/components/contract-settle.vue +++ b/src/views/tower/contract/components/contract-settle.vue @@ -385,7 +385,7 @@ const getEquipmentList = async () => { /* 保存编辑 */ const save = () => { - if (!contract.settleMethod) { + if (contract.settleMethod === undefined) { message.error("请选择结算方式"); return; } diff --git a/src/views/tower/fall/components/fall-edit.vue b/src/views/tower/fall/components/fall-edit.vue index 5d87658..56ab170 100644 --- a/src/views/tower/fall/components/fall-edit.vue +++ b/src/views/tower/fall/components/fall-edit.vue @@ -47,7 +47,7 @@ @@ -158,6 +158,7 @@ import { User } from "@/api/user/model"; import { Organization } from "@/api/system/organization/model"; import { Customer } from "@/api/oa/customer/model"; import { Company } from "@/api/system/company/model"; +import { DictData } from "@/api/system/dict-data/model"; // 是否是修改 const isUpdate = ref(false); const useForm = Form.useForm; @@ -216,7 +217,7 @@ const token = localStorage.getItem(TOKEN_STORE_NAME); const form = reactive({ id: undefined, code: undefined, - companyId: undefined, + companyName: '', model: undefined, factory: "", factoryDate: "", @@ -334,32 +335,9 @@ const onFile4 = (info: FileInfo) => { form.file4 = JSON.stringify(file4.value); }; -const chooseFallName = (data) => { - form.name = data.name; - form.model = data.model; -}; - -const chooseFallModel = (data) => { - form.name = data.name; - form.model = data.model; -}; - -const chooseWarehouse = (data: Warehouse) => { - console.log(data); - form.warehouse = data.warehouseName; - form.currentLocation = data.address; -}; - -const chooseUsers = (data: User) => { - form.users = data.nickname; -}; - -const chooseOrganization = (data: Organization) => { - form.organization = data.organizationName; -}; - -const chooseCompanyName = (data: Customer) => { - form.company = data.customerName; +const chooseCompanyName = (data: DictData) => { + console.log(data) + // form.companyId = data.customerId; }; /* 保存编辑 */ @@ -409,15 +387,6 @@ watch( if (props.data.file4) { file4.value = JSON.parse(props.data.file4); } - if (props.data.file5) { - file5.value = JSON.parse(props.data.file5); - } - if (props.data.file6) { - file6.value = JSON.parse(props.data.file6); - } - if (props.data.file7) { - file7.value = JSON.parse(props.data.file7); - } isUpdate.value = true; } else { isUpdate.value = false; diff --git a/src/views/tower/fall/index.vue b/src/views/tower/fall/index.vue index 553091b..afc0b23 100644 --- a/src/views/tower/fall/index.vue +++ b/src/views/tower/fall/index.vue @@ -5,7 +5,7 @@ + + + + diff --git a/src/views/tower/historySettle/components/info.vue b/src/views/tower/historySettle/components/info.vue new file mode 100644 index 0000000..b1d0fe1 --- /dev/null +++ b/src/views/tower/historySettle/components/info.vue @@ -0,0 +1,148 @@ + + + + + diff --git a/src/views/tower/historySettle/components/search.vue b/src/views/tower/historySettle/components/search.vue new file mode 100644 index 0000000..bb9c274 --- /dev/null +++ b/src/views/tower/historySettle/components/search.vue @@ -0,0 +1,205 @@ + + + + diff --git a/src/views/tower/historySettle/index.vue b/src/views/tower/historySettle/index.vue new file mode 100644 index 0000000..1346b99 --- /dev/null +++ b/src/views/tower/historySettle/index.vue @@ -0,0 +1,303 @@ + + + + + + + diff --git a/src/views/tower/rentRecord/components/edit.vue b/src/views/tower/rentRecord/components/edit.vue new file mode 100644 index 0000000..da286f2 --- /dev/null +++ b/src/views/tower/rentRecord/components/edit.vue @@ -0,0 +1,294 @@ + + + + + diff --git a/src/views/tower/rentRecord/components/info.vue b/src/views/tower/rentRecord/components/info.vue new file mode 100644 index 0000000..b1d0fe1 --- /dev/null +++ b/src/views/tower/rentRecord/components/info.vue @@ -0,0 +1,148 @@ + + + + + diff --git a/src/views/tower/rentRecord/components/search.vue b/src/views/tower/rentRecord/components/search.vue new file mode 100644 index 0000000..bb9c274 --- /dev/null +++ b/src/views/tower/rentRecord/components/search.vue @@ -0,0 +1,205 @@ + + + + diff --git a/src/views/tower/rentRecord/index.vue b/src/views/tower/rentRecord/index.vue new file mode 100644 index 0000000..01259c7 --- /dev/null +++ b/src/views/tower/rentRecord/index.vue @@ -0,0 +1,306 @@ + + + + + + +