明树Git Lab

Commit 96eee885 authored by zhanghan's avatar zhanghan

页面开发完成

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