feature (住宅销售基价作价): 完成住宅销售基价作价迁移

1. 住宅销售成交案例下载
2. 住宅销售成交案例清洗
3. 住宅销售挂牌案例下载
4. 住宅销售挂牌案例清洗
5. 初步价格计算
6. 人工修改导入、导出
7. 同步到基价库
8. 基价信息和挂牌案例推送到CALC
This commit is contained in:
purple
2020-07-02 16:14:24 +08:00
parent d2a91d9b31
commit 0ace1f040f
30 changed files with 1606 additions and 527 deletions

View File

@ -3,33 +3,33 @@ import request from '@/utils/request'
// 查询住宅销售基价修正列表
export function list(query) {
return request({
url: '/data/price/residence/sale/artificial/list',
url: '/data/sale-price/residence/ultimate/list',
method: 'get',
params: query
})
}
// 查询住宅销售基价修正详细
export function get(id) {
return request({
url: '/data/price/residence/sale/artificial/' + id,
method: 'get'
})
}
// export function get(id) {
// return request({
// url: '/data/sale-price/residence/ultimate/' + id,
// method: 'get'
// })
// }
// 修改住宅销售基价修正
export function update(data) {
return request({
url: '/data/price/residence/sale/artificial',
method: 'put',
data: data
})
}
// // 修改住宅销售基价修正
// export function update(data) {
// return request({
// url: '/data/sale-price/residence/ultimate',
// method: 'put',
// data: data
// })
// }
// 导出住宅销售基价修正
export function export2File(query) {
return request({
url: '/data/price/residence/sale/artificial/export',
url: '/data/sale-price/residence/ultimate/export',
method: 'get',
params: query
})
@ -37,7 +37,7 @@ export function export2File(query) {
export function getYearMonthList() {
return request({
url: '/data/price/residence/sale/artificial/yearmonth',
url: '/data/sale-price/residence/ultimate/yearmonth',
method: 'get'
})
}

View File

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询住宅销售基价列表
export function list(query) {
return request({
url: '/data/price/residence/sale/compute/list',
url: '/data/sale-price/residence/compute/list',
method: 'get',
params: query
})
@ -12,7 +12,7 @@ export function list(query) {
// 查询住宅销售基价详细
export function get(id) {
return request({
url: '/data/price/residence/sale/compute/' + id,
url: '/data/sale-price/residence/compute/' + id,
method: 'get'
})
}
@ -20,7 +20,7 @@ export function get(id) {
// 修改住宅销售基价
export function update(data) {
return request({
url: '/data/price/residence/sale/compute',
url: '/data/sale-price/residence/compute',
method: 'put',
data: data
})
@ -29,7 +29,7 @@ export function update(data) {
// 导出住宅销售基价
export function export2File(query) {
return request({
url: '/data/price/residence/sale/compute/export',
url: '/data/sale-price/residence/compute/export',
method: 'get',
params: query
})
@ -37,7 +37,7 @@ export function export2File(query) {
export function getYearMonthList() {
return request({
url: '/data/price/residence/sale/compute/yearmonth',
url: '/data/sale-price/residence/compute/yearmonth',
method: 'get'
})
}

View File

@ -0,0 +1,43 @@
import request from '@/utils/request'
// 查询住宅销售基价修正列表
export function list(query) {
return request({
url: '/data/sale-price/residence/ultimate/list',
method: 'get',
params: query
})
}
// 查询住宅销售基价修正详细
export function get(id) {
return request({
url: '/data/sale-price/residence/ultimate/' + id,
method: 'get'
})
}
// 修改住宅销售基价修正
export function update(data) {
return request({
url: '/data/sale-price/residence/ultimate',
method: 'put',
data: data
})
}
// 导出住宅销售基价修正
export function export2File(query) {
return request({
url: '/data/sale-price/residence/ultimate/export',
method: 'get',
params: query
})
}
export function getYearMonthList() {
return request({
url: '/data/sale-price/residence/ultimate/yearmonth',
method: 'get'
})
}

View File

@ -2,7 +2,11 @@
<div class="app-container">
<el-form :model="queryParams" :rules="rules" ref="queryForm" :inline="true" label-width="100px">
<el-form-item label="年月" prop="yearMonth">
<el-select v-model="queryParams.yearMonth" placeholder="请选择年月">
<el-select
v-model="queryParams.yearMonth"
placeholder="请选择年月"
@change="yearMonthChange(queryParams.yearMonth)"
>
<el-option
v-for="item in yearMonthList"
:value="item.value"
@ -36,7 +40,7 @@
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="success"
icon="el-icon-edit"
@ -45,7 +49,7 @@
@click="handleUpdate"
v-hasPermi="['system:user:edit']"
>修改</el-button>
</el-col>
</el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
@ -62,15 +66,15 @@
size="mini"
@click="handleImport"
v-hasPermi="['system:user:import']"
>导入</el-button>
>文件导入</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="年月" align="center" prop="yearMonth" />
<el-table-column label="小区ID" align="center" prop="communityId" />
<el-table-column label="小区名称" align="center" prop="communityName" />
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<!-- <el-table-column label="年月" align="center" prop="yearMonth" /> -->
<el-table-column label="小区ID" align="center" prop="communityId" fixed />
<el-table-column label="小区名称" align="center" width="200" prop="communityName" fixed />
<el-table-column label="小区地址" align="center" prop="communityAddress" />
<el-table-column label="区域" align="center" prop="countyName" />
@ -89,7 +93,12 @@
prop="isPstCalc"
:formatter="yesOrNotFormatter"
/>
<el-table-column label="运行状态" align="center" prop="status" />
<el-table-column
label="运行状态"
align="center"
prop="status"
:formatter="runningStateFormatter"
/>
<el-table-column label="特殊小区标签" align="center" prop="label" />
<el-table-column label="物业类型" align="center" prop="propertyType" />
<el-table-column label="小区类型" align="center" prop="projectType" />
@ -139,7 +148,7 @@
<el-table-column label="绑定板块+小区类型的涨跌幅" align="center" prop="bindBlockProjectTypePst" />
<el-table-column label="绑定区县+小区类型" align="center" prop="bindCountyProjectType" />
<el-table-column label="绑定区县+小区类型的涨跌幅" align="center" prop="bindCountyProjectTypePst" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
@ -156,7 +165,7 @@
v-hasPermi="['system:user:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table-column>-->
</el-table>
<pagination
@ -167,7 +176,7 @@
@pagination="getList"
/>
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload
ref="upload"
:limit="1"
@ -265,7 +274,7 @@ export default {
// 上传的地址
url:
process.env.VUE_APP_BASE_API +
"/data/price/residence/sale/artificial/importData/"
"/data/sale-price/residence/artificial/importData/"
},
// 表单参数
form: {},
@ -285,6 +294,10 @@ export default {
});
},
methods: {
yearMonthChange: function(yearMonth) {
// this.upload.url += "/" + yearMonth;
// console.log(this.upload.url);
},
yesOrNotFormatter: function(row, column, cellValue, index) {
if (cellValue) return "是";
return "否";
@ -293,6 +306,15 @@ export default {
if (cellValue) return "正常";
return "失效";
},
runningStateFormatter: function(row, column, cellValue, index) {
if (1 === cellValue) return "正常状态";
else if (2 === cellValue) return "建设中";
else if (3 === cellValue) return "建设中";
else if (4 === cellValue) return "已撤销";
else if (5 === cellValue) return "合并";
else if (8 === cellValue) return "分拆";
return "未知状态";
},
dateFormatter: function(row, column, cellValue, index) {
if (cellValue) {
return cellValue.substring(0, 10);

View File

@ -0,0 +1,244 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :rules="rules" :inline="true" label-width="100px">
<el-form-item label="年月" prop="yearMonth">
<el-select v-model="queryParams.yearMonth" placeholder="请选择年月">
<el-option
v-for="item in yearMonthList"
:value="item.value"
:label="item.label"
:key="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="小区ID" prop="communityId" clearable>
<el-input
v-model="queryParams.communityId"
placeholder="请输入案例小区名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="名称或地址" prop="nameOrAddress" clearable>
<el-input
v-model="queryParams.nameOrAddress"
placeholder="请输入小区名称或地址"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<el-form-item label="状态">
<el-select v-model="queryParams.status" clearable>
<el-option label="正常" value="1"></el-option>
<el-option label="失效" value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:user:export']"
>导出</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<el-table-column label="年月" align="center" prop="yearMonth" />
<el-table-column label="小区ID" align="center" prop="communityId" />
<el-table-column label="标准基价" align="center" prop="basePrice" />
<el-table-column label="主力面积基价" align="center" prop="mainPrice" />
<el-table-column label="主力面积系数" align="center" prop="areaCoefficient" />
<el-table-column label="竣工年份系数" align="center" prop="yearCoefficient" />
<el-table-column label="涨跌幅" align="center" prop="voppa" />
<el-table-column label="涨跌幅类型" align="center" prop="voppat" />
<el-table-column label="价值时点" align="center" prop="priceDate" :formatter="dateFormatter" />
<el-table-column label="价格说明" align="center" prop="comment" />
<el-table-column label="更新日期" align="center" prop="updateDate" :formatter="dateFormatter" />
<el-table-column label="状态" align="center" prop="status" :formatter="statusFormatter" />
<el-table-column label="变化字段" align="center" prop="adjustPriceComment" />
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageIndex"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import { getToken } from "@/utils/auth";
import {
list,
export2File,
getYearMonthList
} from "@/api/data/ultimateResidenceSalePrice";
export default {
name: "ultimateResidenceSalePrice",
data() {
// 年月
var yearMonthValidator = (rule, value, callback) => {
if (!value) {
callback(new Error("请输入年月"));
} else if (value === "" || isNaN(parseInt(value))) {
callback(new Error("请输入年月"));
} else {
callback();
}
};
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 总条数
total: 0,
// 办公基价表格数据
dataList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
yearMonth: undefined,
communityId: undefined,
nameOrAddress: undefined,
status: undefined,
pageIndex: 1,
pageSize: 10
},
yearMonthList: [],
statusOptions: [
{ value: 1, text: "正常" },
{ value: 1, text: "失效" }
],
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API +
"/data/rentprice/residence/ultimate/importData"
},
// 表单参数
form: {},
// 表单校验
rules: {
yearMonth: [
{ validator: yearMonthValidator, trigger: "blur" },
{ validator: yearMonthValidator, trigger: "change" }
]
}
};
},
created() {
this.loading = false;
getYearMonthList().then(response => {
this.yearMonthList = response.data;
});
},
methods: {
yesOrNotFormatter: function(row, column, cellValue, index) {
if (cellValue) return "是";
return "否";
},
dateFormatter:function(row, column, cellValue, index){
if(cellValue) return cellValue.substring(0,10);
return '';
},
statusFormatter: function(row, column, cellValue, index) {
if (cellValue) return "正常";
return "失效";
},
dateFormatter: function(row, column, cellValue, index) {
if (cellValue) {
return cellValue.substring(0, 10);
}
return "";
},
/** 查询办公基价列表 */
getList() {
this.$refs["queryForm"].validate(valid => {
if (valid) {
this.loading = true;
list(this.queryParams).then(response => {
this.dataList = response.rows;
this.total = response.total;
this.loading = false;
});
}
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: undefined
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageIndex = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id);
this.single = selection.length != 1;
this.multiple = !selection.length;
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm("是否确认导出所有住宅销售基价数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(function() {
return export2File(queryParams);
})
.then(response => {
this.download(response.msg);
})
.catch(function() {});
}
}
};
</script>