Browse Source

楼盘修改

develop
王健 4 years ago
parent
commit
96abd58e0b
  1. 3
      src/views/houseList/page/FormatInfo.vue
  2. 651
      src/views/sale/index.vue

3
src/views/houseList/page/FormatInfo.vue

@ -558,8 +558,7 @@ export default {
},
mounted() {
//
api
.houseById(this.$route.query.id)
api.houseById(this.$route.query.id)
.then((res) => {
this.upInfo = res.data.data.housingEstates;
this.land = res.data.data.landListed;

651
src/views/sale/index.vue

@ -5,22 +5,22 @@
<el-form :inline="true" :model="searchForm" class="demo-form-inline">
<el-form-item label="预售证号:">
<el-input
v-model="searchForm.preSaleLicenseNo"
placeholder="请输入"
v-model="searchForm.preSaleLicenseNo"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="楼盘名称:">
<el-input
v-model="searchForm.netName"
placeholder="请输入"
v-model="searchForm.netName"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="日期:" prop="annoDate">
<el-date-picker
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择公告日期"
v-model="searchForm.createDate"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择公告日期"
v-model="searchForm.createDate"
></el-date-picker>
</el-form-item>
<el-form-item>
@ -42,36 +42,35 @@
</div>
<div class="page_content_table">
<el-table
:data="tableData"
border
@selection-change="handleSelectionChange"
style="width: 100%"
max-height="630"
ref="multipleTable"
v-loading="loading"
:data="tableData"
border
style="width: 100%"
max-height="630"
ref="multipleTable"
v-loading="loading"
>
<el-table-column
v-for="(item, index) in cols"
:key="index"
:prop="item.prop"
:label="item.label"
:width="item.width"
:fixed="item.fixed"
show-overflow-tooltip
v-for="(item, index) in cols"
:key="index"
:prop="item.prop"
:label="item.label"
:width="item.width"
:fixed="item.fixed"
show-overflow-tooltip
>
</el-table-column>
<el-table-column label="楼栋" show-overflow-tooltip>
<template slot-scope="scope">
<span style="cursor: pointer;color:blue;" @click="handleBuild(scope.row)">{{
scope.row.buildingNo
}}</span>
scope.row.buildingNo
}}</span>
</template>
</el-table-column>
<el-table-column label="爬取时间" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{
scope.row.createDate ? scope.row.createDate.split(" ")[0] : ""
}}</span>
scope.row.createDate ? scope.row.createDate.split(" ")[0] : ""
}}</span>
</template>
</el-table-column>
<el-table-column label="状态">
@ -82,38 +81,39 @@
<el-table-column fixed="right" label="操作" width="150">
<template slot-scope="scope">
<el-button type="text" size="small" @click="handle(scope.row)"
>立即处理</el-button
>立即处理
</el-button
>
</template>
</el-table-column>
</el-table>
<div class="page_page">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="page.currentPage"
:page-sizes="[10, 20, 30, 40]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="page.currentPage"
:page-sizes="[10, 20, 30, 40]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination>
</div>
</div>
</div>
<el-dialog
title="数据处理"
:visible.sync="dialogFormVisible"
width="70%"
v-loading="dialogLoad"
:modal="false"
title="数据处理"
:visible.sync="dialogFormVisible"
width="70%"
v-loading="dialogLoad"
:modal="false"
>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="180px"
class="demo-ruleForm"
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="180px"
class="demo-ruleForm"
>
<el-row>
<el-col :span="12">
@ -140,42 +140,52 @@
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="楼盘名称:">
<el-col :span="12" v-if="!params.housingEstateName&&params.landListedId.length<=0">
<el-form-item label="关联楼盘:">
<el-select
v-model="ruleForm.name"
filterable
allow-create
placeholder="请选择楼盘"
style="width: 100%"
v-model="params.housingEstateId"
placeholder="请选择楼盘"
clearable
filterable
remote
:remote-method="remote"
style="width: 100%"
>
<el-option
v-for="item in nameList"
:key="item.housingEstateId"
:label="item.name"
:value="item.housingEstateId"
v-for="item in nameList"
:key="item.housingEstateId"
:label="item.name"
:value="item.housingEstateId"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="!params.housingEstateId">
<el-col :span="12">
<el-form-item label="楼盘名称:">
<el-input placeholder="请填写楼盘名称" clearable v-model="params.housingEstateName"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="关联地块:">
<el-select
v-model="ruleForm.landListedId"
placeholder="请选择关联地块"
filterable
multiple
remote
:loading="landLoading"
:remote-method="remoteMethod"
style="width: 100%"
v-model="params.landListedId"
placeholder="请选择关联地块"
filterable
multiple
remote
clearable
:loading="landLoading"
:remote-method="remoteMethod"
style="width: 100%"
>
<el-option
v-for="item in landList"
:key="item.landListedId"
:label="item.landCode"
:value="item.landListedId"
v-for="item in landList"
:key="item.landListedId"
:label="item.landCode"
:value="item.landListedId"
>
</el-option>
</el-select>
@ -186,17 +196,17 @@
<el-col :span="12">
<el-form-item label="物业类型:">
<el-select
v-model="params.propertyType"
placeholder="请选择物业类型"
clearable
@change="getBigye"
style="width: 100%"
v-model="params.propertyType"
placeholder="请选择物业类型"
clearable
@change="getBigye"
style="width: 100%"
>
<el-option
v-for="item in wuyeType"
:key="item"
:label="item"
:value="item"
v-for="item in wuyeType"
:key="item"
:label="item"
:value="item"
>
</el-option>
</el-select>
@ -205,18 +215,18 @@
<el-col :span="12">
<el-form-item label="大业态:">
<el-select
v-model="params.largeFormat"
placeholder="请选择大业态"
:disabled="!params.propertyType"
clearable
@change="getYe"
style="width: 100%"
v-model="params.largeFormat"
placeholder="请选择大业态"
:disabled="!params.propertyType"
clearable
@change="getYe"
style="width: 100%"
>
<el-option
v-for="item in Bigye"
:key="item"
:label="item"
:value="item"
v-for="item in Bigye"
:key="item"
:label="item"
:value="item"
>
</el-option>
</el-select>
@ -227,16 +237,16 @@
<el-col :span="12">
<el-form-item label="业态:">
<el-select
v-model="params.format"
placeholder="请选择业态"
:disabled="!params.largeFormat"
style="width: 100%"
v-model="params.format"
placeholder="请选择业态"
:disabled="!params.largeFormat"
style="width: 100%"
>
<el-option
v-for="item in ye"
:key="item"
:label="item"
:value="item"
v-for="item in ye"
:key="item"
:label="item"
:value="item"
>
</el-option>
</el-select>
@ -247,7 +257,8 @@
<el-col :span="12" style="float: right">
<el-form-item>
<el-button type="primary" @click="submitForm('ruleForm')"
>提交</el-button
>提交
</el-button
>
<el-button @click="dialogFormVisible = false">关闭</el-button>
</el-form-item>
@ -260,11 +271,7 @@
<script>
import {
fetchHandLandList,
saveHandLandList,
delHandLandObj,
exportHandLandToListExcel,
downloadHandLandTemplate,
queryLonLatList,
addLonLat,
delLandLonLat,
@ -274,14 +281,16 @@ import {
updateLonLat,
} from "@/views/land/api/land";
import * as api from "../sale/api/index";
import { uploadFile } from "@/views/api/api";
import { downUrlFile } from "@/util/file";
import {uploadFile} from "@/views/api/api";
import {downUrlFile} from "@/util/file";
import fileDownload from "js-file-download";
export default {
name: "HandLand",
data() {
return {
showHousingEstateName: true,
showHousingEstateId: true,
searchForm: {
//
preSaleLicenseNo: "",
@ -346,11 +355,11 @@ export default {
ruleForm: {},
rules: {
name: [
{ required: true, message: "请输入活动名称", trigger: "blur" },
{ min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" },
{required: true, message: "请输入活动名称", trigger: "blur"},
{min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur"},
],
region: [
{ required: true, message: "请选择活动区域", trigger: "change" },
{required: true, message: "请选择活动区域", trigger: "change"},
],
date1: [
{
@ -377,9 +386,9 @@ export default {
},
],
resource: [
{ required: true, message: "请选择活动资源", trigger: "change" },
{required: true, message: "请选择活动资源", trigger: "change"},
],
desc: [{ required: true, message: "请填写活动形式", trigger: "blur" }],
desc: [{required: true, message: "请填写活动形式", trigger: "blur"}],
},
nameList: [],
landList: [],
@ -410,15 +419,25 @@ export default {
format: "",
largeFormat: "",
propertyType: "",
landListedId: [],
housingEstateId: "",
housingEstateName: ""
},
};
},
created() {
for (var key in this.initData) {
for (let key in this.initData) {
this.wuyeType.push(key);
}
api.getListedLands().then((response) => {
this.landList = response.data.data.records;
if (response.data.data) {
this.landList = response.data.data.records;
}
});
api.getNameList().then((res) => {
if (res.data.data) {
this.nameList = res.data.data.records;
}
});
},
mounted: function () {
@ -426,30 +445,23 @@ export default {
},
computed: {},
watch: {
// page: {
// handler(newVal, oldVal) {
// this.onSubmit();
// },
// deep: true,
// },
selectedData: {
handler(newVal, oldVal) {
this.hasSelectData = newVal.length > 0 ? true : false;
},
},
// dialogFormVisible: {
// handler(newVal, oldVal) {
// if (newVal) {
// this.queryFileList();
// }
// },
// },
params: {
handler(newVal, oldVal) {
console.log(newVal)
},
deep: true
}
},
methods: {
remoteMethod(query) {
if (query !== "") {
this.landLoading = true;
api.getListedLands({ landCode: query }).then((response) => {
api.getListedLands({landCode: query}).then((response) => {
this.landList = response.data.data.records;
this.landLoading = false;
});
@ -457,6 +469,14 @@ export default {
this.landList = [];
}
},
remote(query) {
//
api.getNameList({current: 1, size: 9999, name: query}).then((res) => {
if (res.data.data) {
this.nameList = res.data.data.records;
}
});
},
getBigye() {
if (!this.params.propertyType) {
return false;
@ -473,169 +493,82 @@ export default {
return false;
}
var temp =
this.initData[this.params.propertyType][this.params.largeFormat];
this.initData[this.params.propertyType][this.params.largeFormat];
this.ye = temp;
this.$set(this.params, "format", "");
},
//
submitForm(formName) {
for (let i = 0; i < this.nameList.length; i++) {
if (this.ruleForm.name == this.nameList[i].name) {
this.$set(
this.params,
"housingEstateId",
this.nameList[i].housingEstateId
);
}
}
debugger
// this.$set(this.params, "name", this.ruleForm.name);
this.$set(this.params, "blockId", this.ruleForm.blockId);
this.$set(this.params, "landListedId", this.ruleForm.landListedId);
// this.$set(this.params, "statusCd", "0");
this.dialogLoad = true;
this.$refs[formName].validate((valid) => {
if (valid) {
// console.log(this.params);
api
.changeHouse(this.params)
.then((res) => {
if (res.data.data) {
this.dialogLoad = false;
this.dialogFormVisible = false;
this.params = {};
this.$alert("保存成功");
this.onSubmit();
}
})
.catch((e) => {
api.changeHouse(this.params).then((res) => {
if (res.data.data) {
this.dialogLoad = false;
});
this.dialogFormVisible = false;
this.$alert("保存成功");
this.onSubmit();
}
}).catch((e) => {
this.dialogLoad = false;
});
} else {
console.log("error submit!!");
return false;
}
});
},
resetForm(formName) {
this.$refs[formName].resetFields();
},
handleBuild(data) {
window.open(
"http://www.cq315house.com/HtmlPage/ShowRooms.html?buildingid=" +
"http://www.cq315house.com/HtmlPage/ShowRooms.html?buildingid=" +
data.dataId
);
},
//
handle(item) {
this.ruleForm = {};
this.params = {};
//
api.getNameList({ current: 1, size: 50 }).then((res) => {
if (res.data.data) {
this.nameList = res.data.data.records;
}
});
this.ruleForm = item;
this.params = {
blockId: item.blockId,
format: "",
largeFormat: "",
propertyType: "",
landListedId: [],
housingEstateId: "",
housingEstateName: ""
};
this.dialogFormVisible = true;
this.dialogLoad = true;
api
.getSaleId(item.blockId)
.then((res) => {
this.ruleForm = res.data.data;
this.ruleForm.propertyType
? (this.params.propertyType = this.ruleForm.propertyType)
: false;
this.ruleForm.largeFormat
? (this.params.largeFormat = this.ruleForm.largeFormat)
: false;
if (this.params.largeFormat) {
let name = "";
this.Bigye.map((e) => {
if (e.value === this.params.largeFormat) {
name = e.description;
}
});
api.getDict(name).then((res) => {
this.ye = res.data.data;
this.ruleForm.format
? (this.params.format = this.ruleForm.format)
: false;
});
}
delete this.ruleForm.createDate;
this.dialogLoad = false;
})
.catch((e) => {
this.dialogLoad = false;
});
},
setTagName(val) {
let txt = "";
this.activeNames.some((item) => item == val)
? (txt = "收起")
: (txt = "展开");
return txt;
},
getList(page, params) {
this.tableLoading = true;
console.debug(page);
console.debug(params);
api
.getSaleList(
Object.assign({
current: page.currentPage,
size: page.pageSize,
statusCd: "0",
})
)
.then((response) => {
this.tableData = response.data.data.records;
this.page.total = response.data.data.total;
this.loading = false;
})
.catch(() => {
this.loading = false;
});
},
//
onSubmit() {
this.loading = true;
let param = Object.assign(
{
current: this.page.currentPage,
size: this.page.pageSize,
statusCd: "0",
},
this.searchForm
{
current: this.page.currentPage,
size: this.page.pageSize,
statusCd: "0",
},
this.searchForm
);
api
.getSaleList(param)
.then((response) => {
this.tableData = [];
// this.tableData = response.data.data.records;
for (let i = 0; i < response.data.data.records.length; i++) {
if (response.data.data.records[i].statusCd == "0") {
this.tableData.push(response.data.data.records[i]);
}
api.getSaleList(param).then((response) => {
this.tableData = [];
// this.tableData = response.data.data.records;
for (let i = 0; i < response.data.data.records.length; i++) {
if (response.data.data.records[i].statusCd == "0") {
this.tableData.push(response.data.data.records[i]);
}
this.page.total = response.data.data.total;
this.loading = false;
})
.catch(() => {
this.loading = false;
});
}
this.page.total = response.data.data.total;
this.loading = false;
}).catch(() => {
this.loading = false;
});
},
//
onReset() {
for (let item in this.searchForm) {
this.searchForm[item] = "";
}
},
//
handleSelectionChange(val) {
this.selectedData = val;
this.onSubmit();
},
handleSizeChange(val) {
this.page.pageSize = val;
@ -645,228 +578,27 @@ export default {
handleCurrentChange(val) {
this.page.currentPage = val;
this.onSubmit();
},
//
clearSelection() {
this.$refs.multipleTable.clearSelection();
},
//
queryLonLatList(landListedId) {
queryLonLatList(landListedId).then((response) => {
if (response.data.success) {
let index = 0;
this.landLonLat = response.data.data;
this.landLonLat.forEach((item) => {
item.edit = false;
item.index = index;
index++;
});
} else {
this.landLonLat = [];
}
});
},
//
saveAllData() {
saveHandLandList(JSON.stringify(this.editForm)).then((res) => {
if (res.data.success) {
this.$message({
type: "success",
message: "保存成功",
});
this.dialogFormVisible = false;
this.onSubmit();
} else {
this.$message.error("保存失败");
}
});
},
//
addOneRowForLonLat() {
this.isLonLatEdit = false;
let index = 0;
this.landLonLat.forEach((item) => {
item.edit = false;
item.index = index;
index++;
});
this.landLonLat.push({
annoId: this.editForm.annoId,
landListedId: this.editForm.landListedId,
landCode: "",
landLonLat: "",
lineColor: "#FF0000",
lineWidth: "",
lineOpaqueness: "",
fillColor: "#FF0000",
fillOpaqueness: "",
edit: true,
index: index,
});
},
//
handleLonLatDelClick(row) {
delLandLonLat(row.landListedId, row.landCode).then((res) => {
if (res.data.success) {
this.$message({
type: "success",
message: "删除成功",
});
this.queryLonLatList(row.landListedId);
} else {
this.$message.error("删除失败");
}
});
},
//
handleLonLatOKClick(row) {
row.edit = false;
if (this.isLonLatEdit) {
updateLonLat(row).then((res) => {
if (res.data.success) {
this.$message({
type: "success",
message: "保存成功",
});
this.queryLonLatList(row.landListedId);
} else {
this.$message.error("保存失败");
}
});
} else {
addLonLat(row).then((res) => {
if (res.data.success) {
this.$message({
type: "success",
message: "保存成功",
});
this.queryLonLatList(row.landListedId);
} else {
this.$message.error("保存失败");
}
});
}
},
//
handleLonLatEditClick(row) {
this.isLonLatEdit = true;
row.edit = true;
let bakObj = this.landLonLat.concat();
this.landLonLat = [];
this.landLonLat = bakObj;
},
//
handleLonLatCancelClick(row) {
this.landLonLat = this.landLonLat.splice(
this.landLonLat.findIndex((item) => item.index === row.index),
1
);
},
//
queryFileList() {
let landListedId = this.editForm.landListedId;
if (landListedId == undefined) {
return;
}
let param = {
landListedId: landListedId,
fileType: this.activeType,
};
queryFileList(param).then((res) => {
if (res.data.success) {
let tempData = res.data.data;
for (let obj of tempData) {
obj.uploadProcess = 100;
}
this.uploadFiles = tempData;
} else {
this.uploadFiles = [];
}
});
},
// tab
tabChange() {
//
this.uploadFiles = [];
this.queryFileList();
},
//
uploadFile(file) {
uploadFile(file).then((res) => {
if (res.data.success) {
let tempData = res.data.data;
this.uploadFiles.push({
id: -1,
fileName: tempData.fileName,
filePath: tempData.path,
uploadProcess: 0,
});
}
});
},
//
uploadRes(row) {
let landListedId = this.editForm.landListedId;
saveLandResFile(
row.fileName,
row.filePath,
this.activeType,
landListedId
).then((res) => {
if (res.data.success) {
this.$message({
type: "success",
message: "上传成功",
});
this.queryFileList();
} else {
this.$message("上传失败");
}
});
},
//
delRes(row) {
delLandResFile(row.id).then((res) => {
if (res.data.success) {
this.$message({
type: "success",
message: "删除成功",
});
this.queryFileList();
} else {
this.$message("删除失败");
}
});
},
},
}
}
};
</script>
<style lang="scss" scoped>
//
@import "@/styles/public.scss";
/deep/ .el-dialog {
margin-top: 9vh !important;
}
/deep/ .el-dialog__body {
background-color: #f0f2f5;
}
/deep/ .el-input {
width: 90%;
}
/deep/ .el-collapse-item {
margin-top: 10px;
padding-left: 10px;
@ -876,12 +608,15 @@ export default {
/deep/ .el-collapse-item__wrap {
border-top: 1px solid #e8eaec;
}
/deep/ .upload-demo {
text-align: center;
}
/deep/ .el-upload__tip {
text-align: right;
}
.ti-box {
span {
font-size: 1rem;
@ -898,15 +633,19 @@ export default {
border-top: 1px solid #e8eaec;
padding: 5px;
}
/deep/ .el-select-dropdown__wrap {
margin-bottom: 0 !important;
}
/deep/ .el-form-item {
margin-bottom: 10px;
}
/deep/ .el-col {
margin-bottom: 0;
}
/deep/ .demo-ruleForm {
background-color: white;
padding: 20px;

Loading…
Cancel
Save