明树Git Lab

Commit 96eee885 authored by zhanghan's avatar zhanghan

页面开发完成

parent 326cd196
......@@ -24,7 +24,7 @@
@size-change="handleSizeChange"
@current-page-change="handleCurrentPageChange"
>
<template #operations="{ row, index }">
<template #operations="{ row }">
<el-button
link
type="primary"
......@@ -32,11 +32,7 @@
@click="previewRecord(row)"
>查看</el-button
>
<el-button
link
type="primary"
size="small"
@click="editRecord(row)"
<el-button link type="primary" size="small" @click="editRecord(row)"
>编辑</el-button
>
<el-button
......@@ -72,37 +68,32 @@ const { proxy } = getCurrentInstance();
let tableData = ref([]);
let tableColumns = ref([
{
prop: "djbh",
prop: "registrationNo",
label: "登记编号",
showOverflowTooltip: true,
},
{
prop: "xmmc",
prop: "projectName",
label: "项目名称",
showOverflowTooltip: true,
},
{
prop: "htbh",
prop: "contractNo",
label: "合同编号",
showOverflowTooltip: true,
},
{
prop: "kklx",
label: "抵扣类型",
width: 100,
},
{
prop: "htje",
prop: "contractAmount",
label: "合同金额",
width: 120,
},
{
prop: "djrq",
prop: "registrationDate",
label: "登记日期",
width: 120,
},
{
prop: "jbr",
prop: "handlerName",
label: "经办人",
width: 100,
},
......@@ -124,48 +115,19 @@ let pageSize = ref(10);
// 获取列表数据
const getProjectData = (params = {}) => {
loading.value = true;
// TODO: 替换为实际的后端接口
// proxy.$post({
// url: "/api/workForHousing/getList",
// data: {
// page: currentPage.value,
// pagesize: pageSize.value,
// ...params,
// },
// callback: (data) => {
// tableData.value = data.rows;
// total.value = data.count;
// loading.value = false;
// },
// });
// 临时模拟数据
setTimeout(() => {
tableData.value = [
{
id: 1,
djbh: "DJ202403001",
xmmc: "某某工程项目",
htbh: "HT202403001",
kklx: "工程款",
htje: "1000000",
djrq: "2024-03-15",
jbr: "张三",
proxy.$post({
url: "/api/project/getGdfList",
data: {
page: currentPage.value,
pagesize: pageSize.value,
...params,
},
{
id: 2,
djbh: "DJ202403002",
xmmc: "另一个工程项目",
htbh: "HT202403002",
kklx: "材料款",
htje: "500000",
djrq: "2024-03-16",
jbr: "李四",
},
];
total.value = 2;
callback: (data) => {
tableData.value = data.rows;
total.value = data.count;
loading.value = false;
}, 500);
},
});
};
// 分页
......@@ -214,21 +176,16 @@ const deleteRecord = (item) => {
type: "warning",
})
.then(() => {
// TODO: 替换为实际的后端接口
// proxy.$post({
// url: "/api/workForHousing/delete",
// data: {
// id: item.id,
// },
// callback: (data) => {
// ElMessage.success("删除成功");
// getProjectData();
// },
// });
// 临时模拟删除
proxy.$post({
url: "/api/project/deleteGdf",
data: {
id: item.id,
},
callback: () => {
ElMessage.success("删除成功");
getProjectData();
},
});
})
.catch(() => {});
};
......
......@@ -14,7 +14,7 @@
<el-col :span="12">
<el-form-item label="登记编号">
<el-input
v-model="formData.djbh"
v-model="formData.registrationNo"
placeholder="输入登记编号"
/>
</el-form-item>
......@@ -22,7 +22,7 @@
<el-col :span="12">
<el-form-item label="登记日期">
<el-date-picker
v-model="formData.djrq"
v-model="formData.registrationDate"
type="date"
placeholder="选择登记日期"
format="YYYY-MM-DD"
......@@ -30,36 +30,38 @@
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="项目名称">
<el-input
v-model="formData.xmmc"
placeholder="输入项目名称"
/>
<el-col :span="8">
<el-form-item label="项目信息" required>
<el-select
v-model="formData.projectId"
placeholder="请选择项目信息"
no-data-text="暂无数据"
@change="changeProject"
>
<el-option
v-for="item in projectList"
:key="item.id"
:label="item.projectName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-col :span="8">
<el-form-item label="抵扣类型">
<el-radio-group v-model="formData.kklx">
<el-radio-group v-model="formData.deductionType">
<el-radio label="工程款">工程款</el-radio>
<el-radio label="材料款">材料款</el-radio>
<el-radio label="其他">其他</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="合同金额">
<el-input
v-model="formData.htje"
v-model="formData.contractAmount"
placeholder="输入合同金额"
/>
</el-form-item>
......@@ -67,7 +69,7 @@
<el-col :span="8">
<el-form-item label="抵扣比例">
<el-input
v-model="formData.dkbl"
v-model="formData.deductionRate"
placeholder="输入抵扣比例"
/>
</el-form-item>
......@@ -75,18 +77,15 @@
<el-col :span="8">
<el-form-item label="抵扣金额">
<el-input
v-model="formData.dkje"
v-model="formData.deductionAmount"
placeholder="输入抵扣金额"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-col :span="8">
<el-form-item label="合同编号">
<el-input
v-model="formData.htbh"
v-model="formData.contractNo"
placeholder="输入合同编号"
/>
</el-form-item>
......@@ -97,7 +96,7 @@
<el-col :span="24">
<el-form-item label="合同扫描件">
<FileUploader
v-model="formData.htsmj"
v-model="formData.contractScanFiles"
:disabled="isPreview"
/>
</el-form-item>
......@@ -108,7 +107,7 @@
<el-col :span="12">
<el-form-item label="工抵签订时间">
<el-date-picker
v-model="formData.gdqdsj"
v-model="formData.offsetSigningDate"
type="date"
placeholder="选择工抵签订时间"
format="YYYY-MM-DD"
......@@ -119,7 +118,7 @@
<el-col :span="12">
<el-form-item label="经办人">
<el-input
v-model="formData.jbr"
v-model="formData.handlerName"
placeholder="输入经办人"
/>
</el-form-item>
......@@ -133,7 +132,7 @@
<el-col :span="8">
<el-form-item label="甲方名称">
<el-input
v-model="formData.jfmc"
v-model="formData.partyAName"
placeholder="输入甲方名称"
/>
</el-form-item>
......@@ -141,7 +140,7 @@
<el-col :span="8">
<el-form-item label="甲方联系人">
<el-input
v-model="formData.jflxr"
v-model="formData.partyAContact"
placeholder="输入甲方联系人"
/>
</el-form-item>
......@@ -149,7 +148,7 @@
<el-col :span="8">
<el-form-item label="甲方联系方式">
<el-input
v-model="formData.jflxfs"
v-model="formData.partyAPhone"
placeholder="输入甲方联系方式"
/>
</el-form-item>
......@@ -160,7 +159,7 @@
<el-col :span="8">
<el-form-item label="乙方名称">
<el-input
v-model="formData.yfmc"
v-model="formData.partyBName"
placeholder="输入乙方名称"
/>
</el-form-item>
......@@ -168,7 +167,7 @@
<el-col :span="8">
<el-form-item label="乙方联系人">
<el-input
v-model="formData.yflxr"
v-model="formData.partyBContact"
placeholder="输入乙方联系人"
/>
</el-form-item>
......@@ -176,7 +175,7 @@
<el-col :span="8">
<el-form-item label="乙方联系方式">
<el-input
v-model="formData.yflxfs"
v-model="formData.partyBPhone"
placeholder="输入乙方联系方式"
/>
</el-form-item>
......@@ -187,7 +186,7 @@
<el-col :span="8">
<el-form-item label="丙方名称">
<el-input
v-model="formData.bfmc"
v-model="formData.partyCName"
placeholder="输入丙方名称"
/>
</el-form-item>
......@@ -195,15 +194,15 @@
<el-col :span="8">
<el-form-item label="丙方联系人">
<el-input
v-model="formData.bflxr"
placeholder="输入丙联系人"
v-model="formData.partyCContact"
placeholder="输入丙联系人"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="丙方联系方式">
<el-input
v-model="formData.bflxfs"
v-model="formData.partyCPhone"
placeholder="输入丙方联系方式"
/>
</el-form-item>
......@@ -214,26 +213,18 @@
<!-- 步骤3:房源信息 -->
<el-collapse-item title="房源信息" name="房源信息">
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="项目名称">
<el-input
v-model="formData.fy_xmmc"
placeholder="输入项目名称"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="12">
<el-form-item label="项目地址">
<el-input
v-model="formData.xmdz"
v-model="formData.projectAddress"
placeholder="输入项目地址"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="12">
<el-form-item label="项目公司">
<el-input
v-model="formData.xmgs"
v-model="formData.projectCompany"
placeholder="输入项目公司"
/>
</el-form-item>
......@@ -243,7 +234,7 @@
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="项目状态">
<el-radio-group v-model="formData.xmzt">
<el-radio-group v-model="formData.projectStatus">
<el-radio label="在建">在建</el-radio>
<el-radio label="已竣工">已竣工</el-radio>
</el-radio-group>
......@@ -255,7 +246,7 @@
<el-col :span="24">
<el-form-item label="楼栋信息">
<el-input
v-model="formData.ldxx"
v-model="formData.buildingInfo"
placeholder="输入楼栋信息"
/>
</el-form-item>
......@@ -265,7 +256,7 @@
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="房源类型">
<el-radio-group v-model="formData.fylx">
<el-radio-group v-model="formData.propertyType">
<el-radio label="住宅">住宅</el-radio>
<el-radio label="公寓">公寓</el-radio>
<el-radio label="商铺">商铺</el-radio>
......@@ -279,7 +270,7 @@
<el-col :span="8">
<el-form-item label="建筑面积(㎡)">
<el-input
v-model="formData.jzmj"
v-model="formData.buildingArea"
placeholder="输入建筑面积(㎡)"
/>
</el-form-item>
......@@ -287,7 +278,7 @@
<el-col :span="8">
<el-form-item label="单价(元/㎡)">
<el-input
v-model="formData.dj"
v-model="formData.unitPrice"
placeholder="输入单价(元/㎡)"
/>
</el-form-item>
......@@ -295,7 +286,7 @@
<el-col :span="8">
<el-form-item label="总金额(元)">
<el-input
v-model="formData.zje"
v-model="formData.totalAmount"
placeholder="输入总金额(元)"
/>
</el-form-item>
......@@ -309,7 +300,7 @@
<el-col :span="24">
<el-form-item label="附件上传">
<FileUploader
v-model="formData.fjsc"
v-model="formData.attachments"
:disabled="isPreview"
/>
</el-form-item>
......@@ -347,6 +338,7 @@ const { proxy } = getCurrentInstance();
// 折叠面板默认展开项
const activeCollapse = ref([
"项目信息",
"合同基本信息",
"合同主体信息",
"房源信息",
......@@ -354,7 +346,36 @@ const activeCollapse = ref([
]);
// 表单数据
const formData = reactive({});
const formData = reactive({
projectId: "",
projectName: "",
});
// 项目列表
const projectList = ref([]);
// 获取项目列表数据
const getProjectData = (params = {}) => {
proxy.$post({
url: "/api/project/listProject",
data: {
page: 1,
pagesize: 1000,
attributes: [],
menuType: "xmjc",
...params,
},
callback: (data) => {
projectList.value = data.rows || [];
},
});
};
// 选择项目同步名称
const changeProject = (val) => {
const selectItem = projectList.value.find((item) => item.id === val);
if (selectItem) formData.projectName = selectItem.projectName;
};
// 加载状态
const loading = ref(false);
......@@ -368,21 +389,14 @@ const getRecordDetail = () => {
if (!recordId.value) return;
loading.value = true;
// TODO: 替换为实际的后端接口
// proxy.$post({
// url: "/api/workForHousing/getDetail",
// data: { id: recordId.value },
// callback: (data) => {
// loading.value = false;
// Object.assign(formData, data);
// },
// });
// 临时模拟数据
setTimeout(() => {
proxy.$post({
url: "/api/project/getGdf",
data: { id: recordId.value },
callback: (data) => {
loading.value = false;
// 编辑时回显数据
}, 500);
Object.assign(formData, data);
},
});
};
// 返回按钮
......@@ -392,36 +406,32 @@ const backClick = () => {
// 保存/提交表单
const saveClick = () => {
// TODO: 添加表单验证
if (!formData.projectId) {
ElMessage.warning("请选择项目信息");
return;
}
loading.value = true;
// 区分新增/编辑
// TODO: 替换为实际的后端接口
// const url = recordId.value
// ? "/api/workForHousing/update"
// : "/api/workForHousing/create";
// TODO: 替换为实际的后端接口调用
// proxy.$post({
// url: url,
// data: formData,
// callback: (res) => {
// loading.value = false;
// ElMessage.success(recordId.value ? "编辑成功" : "新增成功");
// router.back(-1);
// },
// });
const url = recordId.value
? "/api/project/updateGdf"
: "/api/project/createGdf";
// 临时模拟保存
setTimeout(() => {
proxy.$post({
url: url,
data: formData,
callback: () => {
loading.value = false;
ElMessage.success(recordId.value ? "编辑成功" : "新增成功");
router.back(-1);
}, 500);
},
});
};
// 页面初始化
onMounted(() => {
// 获取项目列表
getProjectData();
// 如果有ID则加载详情
if (recordId.value) {
getRecordDetail();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment