|
@@ -3,38 +3,40 @@
|
|
|
<el-breadcrumb separator=">">
|
|
<el-breadcrumb separator=">">
|
|
|
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
|
|
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
|
|
|
<el-breadcrumb-item>
|
|
<el-breadcrumb-item>
|
|
|
- <a href="#">车辆道闸管理</a>
|
|
|
|
|
|
|
+ <a href="#">物业管理</a>
|
|
|
</el-breadcrumb-item>
|
|
</el-breadcrumb-item>
|
|
|
<el-breadcrumb-item>
|
|
<el-breadcrumb-item>
|
|
|
- <a href="/parkingInfo">车位管理</a>
|
|
|
|
|
|
|
+ <a href="#">车位收费管理</a>
|
|
|
|
|
+ </el-breadcrumb-item>
|
|
|
|
|
+ <el-breadcrumb-item>
|
|
|
|
|
+ <a href="/base/parkingInfo">车位管理</a>
|
|
|
</el-breadcrumb-item>
|
|
</el-breadcrumb-item>
|
|
|
</el-breadcrumb>
|
|
</el-breadcrumb>
|
|
|
<el-divider></el-divider>
|
|
<el-divider></el-divider>
|
|
|
<!--
|
|
<!--
|
|
|
要resetFields起作用,必须配置:model和prop
|
|
要resetFields起作用,必须配置:model和prop
|
|
|
-->
|
|
-->
|
|
|
- <el-form ref="queryForm" :model="queryModel" inline class="demo-form-inline">
|
|
|
|
|
- <el-form-item label="业主名称" prop="name">
|
|
|
|
|
- <el-input type="text" size="mini" v-model="queryModel.name"></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="手机号码" prop="tel">
|
|
|
|
|
- <el-input type="text" size="mini" v-model="queryModel.tel"></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="车位编号" prop="parkingNumber">
|
|
|
|
|
- <el-input type="text" size="mini" v-model="queryModel.parkingNumber"></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="合约类型" prop="contractType">
|
|
|
|
|
- <el-input type="text" size="mini" v-model="queryModel.contractType"></el-input>
|
|
|
|
|
|
|
+ <el-form
|
|
|
|
|
+ ref="queryForm"
|
|
|
|
|
+ :model="queryModel"
|
|
|
|
|
+ inline
|
|
|
|
|
+ class="demo-form-inline"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-form-item label="名称" prop="parkingName">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ type="text"
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ v-model="queryModel.parkingName"
|
|
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <pre></pre>
|
|
|
|
|
- <el-form-item label="生效日期" prop="checkinTime">
|
|
|
|
|
- <el-date-picker
|
|
|
|
|
- v-model="queryModel.effectiveTime"
|
|
|
|
|
- type="daterange"
|
|
|
|
|
- range-separator="至"
|
|
|
|
|
- start-placeholder="开始日期"
|
|
|
|
|
- end-placeholder="结束日期"
|
|
|
|
|
- ></el-date-picker>
|
|
|
|
|
|
|
+ <el-form-item label="上级" prop="parentId">
|
|
|
|
|
+ <el-select-tree
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ :props="parentProps"
|
|
|
|
|
+ :options="parentResult"
|
|
|
|
|
+ v-model="queryModel.parentId"
|
|
|
|
|
+ height="200"
|
|
|
|
|
+ ></el-select-tree>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
<el-button
|
|
<el-button
|
|
@@ -43,37 +45,62 @@
|
|
|
icon="ios-search"
|
|
icon="ios-search"
|
|
|
@click="changePage(1)"
|
|
@click="changePage(1)"
|
|
|
:loading="loading"
|
|
:loading="loading"
|
|
|
- >查询</el-button>
|
|
|
|
|
|
|
+ >查询</el-button
|
|
|
|
|
+ >
|
|
|
<el-button
|
|
<el-button
|
|
|
type="info"
|
|
type="info"
|
|
|
size="mini"
|
|
size="mini"
|
|
|
style="margin-left: 8px"
|
|
style="margin-left: 8px"
|
|
|
@click="handleReset('queryForm')"
|
|
@click="handleReset('queryForm')"
|
|
|
- >重置</el-button>
|
|
|
|
|
|
|
+ >重置</el-button
|
|
|
|
|
+ >
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<el-divider></el-divider>
|
|
<el-divider></el-divider>
|
|
|
- <el-row class="button-group"></el-row>
|
|
|
|
|
|
|
+ <el-row class="button-group">
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ plain
|
|
|
|
|
+ icon="el-icon-circle-plus"
|
|
|
|
|
+ @click="handleAdd"
|
|
|
|
|
+ >新增</el-button
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ plain
|
|
|
|
|
+ icon="el-icon-circle-plus"
|
|
|
|
|
+ :disabled="multipleSelection.length == 0"
|
|
|
|
|
+ @click="handleBatchDelete"
|
|
|
|
|
+ >删除选中项</el-button
|
|
|
|
|
+ >
|
|
|
|
|
+ </el-row>
|
|
|
<el-table
|
|
<el-table
|
|
|
:data="tableData"
|
|
:data="tableData"
|
|
|
- style="min-height:400px;"
|
|
|
|
|
|
|
+ style="min-height: 400px"
|
|
|
v-loading="loading"
|
|
v-loading="loading"
|
|
|
stripe
|
|
stripe
|
|
|
@sort-change="sortChange"
|
|
@sort-change="sortChange"
|
|
|
@selection-change="handleSelectionChange"
|
|
@selection-change="handleSelectionChange"
|
|
|
>
|
|
>
|
|
|
- <el-table-column prop="parkingNumber" sort-by="parking_number" label="车位编号" width="120"></el-table-column>
|
|
|
|
|
- <el-table-column prop="parkingPrice" sort-by="parking_price" label="车位售价" width="120"></el-table-column>
|
|
|
|
|
- <el-table-column prop="rentPrice" sort-by="rent_price" label="租赁价格(月)" width="120"></el-table-column>
|
|
|
|
|
- <el-table-column prop="contractType" sort-by="contract_type" label="合约类型" width="120"></el-table-column>
|
|
|
|
|
- <el-table-column prop="owner.carNo" sort-by="car_no" label="车牌" width="120"></el-table-column>
|
|
|
|
|
- <el-table-column prop="owner.name" sort-by="name_" label="业主名称" width="120"></el-table-column>
|
|
|
|
|
- <el-table-column prop="owner.tel" sort-by="tel_" label="手机号码" width="130"></el-table-column>
|
|
|
|
|
- <el-table-column prop="effectiveTime" sort-by="effective_time" label="生效日期" width="180"></el-table-column>
|
|
|
|
|
- <el-table-column prop="expirationTime" sort-by="expiration_time" label="有效期" width="180"></el-table-column>
|
|
|
|
|
- <el-table-column label="操作" width="180">
|
|
|
|
|
- <template slot-scope="{row}">
|
|
|
|
|
- <el-button size="mini" type="warning" @click="handleEdit(row)" disabled>编辑</el-button>
|
|
|
|
|
|
|
+ <el-table-column type="selection" width="55"></el-table-column>
|
|
|
|
|
+ <el-table-column
|
|
|
|
|
+ prop="parkingName"
|
|
|
|
|
+ label="名称"
|
|
|
|
|
+ width="180"
|
|
|
|
|
+ ></el-table-column>
|
|
|
|
|
+ <el-table-column prop="parentName" label="上级" width="180"></el-table-column>
|
|
|
|
|
+ <el-table-column prop="createTime" label="创建时间" width="180"></el-table-column>
|
|
|
|
|
+ <el-table-column prop="updateTime" label="更新时间" width="180"></el-table-column>
|
|
|
|
|
+ <el-table-column label="操作">
|
|
|
|
|
+ <template slot-scope="{ row }">
|
|
|
|
|
+ <el-button size="mini" type="warning" @click="handleEdit(row)"
|
|
|
|
|
+ >编辑</el-button
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-button size="mini" type="danger" @click="handleDelete(row)"
|
|
|
|
|
+ >删除</el-button
|
|
|
|
|
+ >
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
@@ -99,27 +126,29 @@ import ParkingInfoDetail from "./parkingInfo-detail";
|
|
|
import parkingInfoApi from "@/api/base/parkingInfo";
|
|
import parkingInfoApi from "@/api/base/parkingInfo";
|
|
|
import NProgress from "nprogress"; // progress bar
|
|
import NProgress from "nprogress"; // progress bar
|
|
|
import "nprogress/nprogress.css"; // progress bar style
|
|
import "nprogress/nprogress.css"; // progress bar style
|
|
|
|
|
+import SelectTree from "@/components/SelectTree";
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
- name: "BaseParkingInfoList",
|
|
|
|
|
data() {
|
|
data() {
|
|
|
var self = this;
|
|
var self = this;
|
|
|
|
|
|
|
|
return {
|
|
return {
|
|
|
queryModel: {
|
|
queryModel: {
|
|
|
id: "",
|
|
id: "",
|
|
|
- createBy: "",
|
|
|
|
|
- createTime: "",
|
|
|
|
|
- updateBy: "",
|
|
|
|
|
- updateTime: "",
|
|
|
|
|
- delFlag: "",
|
|
|
|
|
- parkingNumber: "",
|
|
|
|
|
|
|
+ companyId: "",
|
|
|
|
|
+ parkingName: "",
|
|
|
|
|
+ parentId: "",
|
|
|
|
|
+ ownerId: "",
|
|
|
parkingPrice: "",
|
|
parkingPrice: "",
|
|
|
rentPrice: "",
|
|
rentPrice: "",
|
|
|
contractType: "",
|
|
contractType: "",
|
|
|
- ownerId: "",
|
|
|
|
|
effectiveTime: "",
|
|
effectiveTime: "",
|
|
|
- expirationTime: ""
|
|
|
|
|
|
|
+ expirationTime: "",
|
|
|
|
|
+ delFlag: "",
|
|
|
|
|
+ createBy: "",
|
|
|
|
|
+ createTime: "",
|
|
|
|
|
+ updateBy: "",
|
|
|
|
|
+ updateTime: "",
|
|
|
},
|
|
},
|
|
|
loading: false,
|
|
loading: false,
|
|
|
tableData: [],
|
|
tableData: [],
|
|
@@ -133,9 +162,24 @@ export default {
|
|
|
multipleSelection: [],
|
|
multipleSelection: [],
|
|
|
showModal: false,
|
|
showModal: false,
|
|
|
modalTitle: "",
|
|
modalTitle: "",
|
|
|
- businessKey: ""
|
|
|
|
|
|
|
+ businessKey: "",
|
|
|
|
|
+ parentResult: [],
|
|
|
|
|
+ parentProps: {
|
|
|
|
|
+ value: "id",
|
|
|
|
|
+ label: "parkingName"
|
|
|
|
|
+ },
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
|
|
+ created() {
|
|
|
|
|
+ var self = this;
|
|
|
|
|
+
|
|
|
|
|
+ parkingInfoApi.query().then(function(response) {
|
|
|
|
|
+ var jsonData = response.data;
|
|
|
|
|
+ if (jsonData.result) {
|
|
|
|
|
+ self.parentResult = jsonData.data;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
methods: {
|
|
methods: {
|
|
|
changePage(pageIndex) {
|
|
changePage(pageIndex) {
|
|
|
var self = this;
|
|
var self = this;
|
|
@@ -148,19 +192,8 @@ export default {
|
|
|
formData.append("pageIndex", self.pageIndex);
|
|
formData.append("pageIndex", self.pageIndex);
|
|
|
formData.append("pageSize", self.pageSize);
|
|
formData.append("pageSize", self.pageSize);
|
|
|
|
|
|
|
|
- formData.append("id", self.queryModel.id);
|
|
|
|
|
- formData.append("createBy", self.queryModel.createBy);
|
|
|
|
|
- formData.append("createTime", self.queryModel.createTime);
|
|
|
|
|
- formData.append("updateBy", self.queryModel.updateBy);
|
|
|
|
|
- formData.append("updateTime", self.queryModel.updateTime);
|
|
|
|
|
- formData.append("delFlag", self.queryModel.delFlag);
|
|
|
|
|
- formData.append("parkingNumber", self.queryModel.parkingNumber);
|
|
|
|
|
- formData.append("parkingPrice", self.queryModel.parkingPrice);
|
|
|
|
|
- formData.append("rentPrice", self.queryModel.rentPrice);
|
|
|
|
|
- formData.append("contractType", self.queryModel.contractType);
|
|
|
|
|
- formData.append("ownerId", self.queryModel.ownerId);
|
|
|
|
|
- formData.append("effectiveTime", self.queryModel.effectiveTime);
|
|
|
|
|
- formData.append("expirationTime", self.queryModel.expirationTime);
|
|
|
|
|
|
|
+ formData.append("parkingName", self.queryModel.parkingName);
|
|
|
|
|
+ formData.append("parentId", self.queryModel.parentId);
|
|
|
|
|
|
|
|
if (this.field != null) {
|
|
if (this.field != null) {
|
|
|
formData.append("field", this.field);
|
|
formData.append("field", this.field);
|
|
@@ -172,7 +205,7 @@ export default {
|
|
|
|
|
|
|
|
parkingInfoApi
|
|
parkingInfoApi
|
|
|
.pageList(formData)
|
|
.pageList(formData)
|
|
|
- .then(function(response) {
|
|
|
|
|
|
|
+ .then(function (response) {
|
|
|
self.loading = false;
|
|
self.loading = false;
|
|
|
|
|
|
|
|
var jsonData = response.data.data;
|
|
var jsonData = response.data.data;
|
|
@@ -181,13 +214,17 @@ export default {
|
|
|
self.totalPages = jsonData.totalPages;
|
|
self.totalPages = jsonData.totalPages;
|
|
|
self.totalElements = jsonData.recordsTotal;
|
|
self.totalElements = jsonData.recordsTotal;
|
|
|
})
|
|
})
|
|
|
- .catch(error => {
|
|
|
|
|
|
|
+ .catch((error) => {
|
|
|
self.loading = false;
|
|
self.loading = false;
|
|
|
// self.$message.error(error + "");
|
|
// self.$message.error(error + "");
|
|
|
});
|
|
});
|
|
|
},
|
|
},
|
|
|
pageSizeChange(pageSize) {
|
|
pageSizeChange(pageSize) {
|
|
|
this.pageSize = pageSize;
|
|
this.pageSize = pageSize;
|
|
|
|
|
+
|
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
|
+ this.changePage(this.pageIndex);
|
|
|
|
|
+ });
|
|
|
},
|
|
},
|
|
|
sortChange(data) {
|
|
sortChange(data) {
|
|
|
this.field = data.column.field;
|
|
this.field = data.column.field;
|
|
@@ -218,10 +255,10 @@ export default {
|
|
|
.$confirm("是否确认删除?", "提示", {
|
|
.$confirm("是否确认删除?", "提示", {
|
|
|
confirmButtonText: "确定",
|
|
confirmButtonText: "确定",
|
|
|
cancelButtonText: "取消",
|
|
cancelButtonText: "取消",
|
|
|
- type: "warning"
|
|
|
|
|
|
|
+ type: "warning",
|
|
|
})
|
|
})
|
|
|
.then(() => {
|
|
.then(() => {
|
|
|
- parkingInfoApi.remove(record.id).then(function(response) {
|
|
|
|
|
|
|
+ parkingInfoApi.remove(record.id).then(function (response) {
|
|
|
var jsonData = response.data;
|
|
var jsonData = response.data;
|
|
|
|
|
|
|
|
if (jsonData.result) {
|
|
if (jsonData.result) {
|
|
@@ -231,7 +268,7 @@ export default {
|
|
|
|
|
|
|
|
self.$message({
|
|
self.$message({
|
|
|
type: "success",
|
|
type: "success",
|
|
|
- message: "删除成功!"
|
|
|
|
|
|
|
+ message: "删除成功!",
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
@@ -240,16 +277,16 @@ export default {
|
|
|
handleBatchDelete() {
|
|
handleBatchDelete() {
|
|
|
var self = this;
|
|
var self = this;
|
|
|
|
|
|
|
|
- var idList = this.multipleSelection.map(record => {
|
|
|
|
|
|
|
+ var idList = this.multipleSelection.map((record) => {
|
|
|
return record.id;
|
|
return record.id;
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
this.$confirm("是否确认删除选中项?", "提示", {
|
|
this.$confirm("是否确认删除选中项?", "提示", {
|
|
|
confirmButtonText: "确定",
|
|
confirmButtonText: "确定",
|
|
|
cancelButtonText: "取消",
|
|
cancelButtonText: "取消",
|
|
|
- type: "warning"
|
|
|
|
|
|
|
+ type: "warning",
|
|
|
}).then(() => {
|
|
}).then(() => {
|
|
|
- parkingInfoApi.batchRemove(idList).then(function(response) {
|
|
|
|
|
|
|
+ parkingInfoApi.batchRemove(idList).then(function (response) {
|
|
|
var jsonData = response.data;
|
|
var jsonData = response.data;
|
|
|
|
|
|
|
|
if (jsonData.result) {
|
|
if (jsonData.result) {
|
|
@@ -257,7 +294,7 @@ export default {
|
|
|
|
|
|
|
|
self.$message({
|
|
self.$message({
|
|
|
type: "success",
|
|
type: "success",
|
|
|
- message: "删除成功!"
|
|
|
|
|
|
|
+ message: "删除成功!",
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
@@ -270,14 +307,15 @@ export default {
|
|
|
if (refreshed) {
|
|
if (refreshed) {
|
|
|
this.changePage(this.pageIndex);
|
|
this.changePage(this.pageIndex);
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
+ },
|
|
|
},
|
|
},
|
|
|
- mounted: function() {
|
|
|
|
|
|
|
+ mounted: function () {
|
|
|
this.changePage(1);
|
|
this.changePage(1);
|
|
|
},
|
|
},
|
|
|
components: {
|
|
components: {
|
|
|
- "parkingInfo-detail": ParkingInfoDetail
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ "parkingInfo-detail": ParkingInfoDetail,
|
|
|
|
|
+ "el-select-tree": SelectTree
|
|
|
|
|
+ },
|
|
|
};
|
|
};
|
|
|
</script>
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|