瀏覽代碼

车位管理

jz.kai 5 年之前
父節點
當前提交
3585bfcd00
共有 4 個文件被更改,包括 201 次插入192 次删除
  1. 5 1
      src/api/base/parkingInfo.js
  2. 78 114
      src/views/base/parkingInfo-detail.vue
  3. 113 75
      src/views/base/parkingInfo-list.vue
  4. 5 2
      src/views/base/parkingWay-list.vue

+ 5 - 1
src/api/base/parkingInfo.js

@@ -41,6 +41,10 @@ function batchRemove(idList){
   });
 }
 
+function query(){
+  return request.post(constant.serverUrl + "/base/parkingInfo/query");
+}
+
 export default {
-  pageList,create,edit,add,update,remove,batchRemove
+  pageList,create,edit,add,update,remove,batchRemove,query
 }

+ 78 - 114
src/views/base/parkingInfo-detail.vue

@@ -14,51 +14,22 @@
     :close-on-click-modal="false"
   >
     <div class="user-panel" v-loading="loading">
-      <el-form ref="form" :model="formModel" :rules="ruleValidate" :label-width="'100px'">
-        <el-form-item label prop="id">
-          <el-input v-model="formModel.id" placeholder="请输入" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label prop="createBy">
-          <el-input v-model="formModel.createBy" placeholder="请输入" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label prop="createTime">
-          <el-input v-model="formModel.createTime" placeholder="请输入" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label prop="updateBy">
-          <el-input v-model="formModel.updateBy" placeholder="请输入" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label prop="updateTime">
-          <el-input v-model="formModel.updateTime" placeholder="请输入" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="是否删除" prop="delFlag">
-          <el-input v-model="formModel.delFlag" placeholder="请输入是否删除" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="
-车位编号" prop="parkingNumber">
-          <el-input v-model="formModel.parkingNumber" placeholder="请输入
-车位编号" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="车位售价" prop="parkingPrice">
-          <el-input v-model="formModel.parkingPrice" placeholder="请输入车位售价" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="租赁价格(月)" prop="rentPrice">
-          <el-input v-model="formModel.rentPrice" placeholder="请输入租赁价格(月)" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="合约类型" prop="contractType">
-          <el-input v-model="formModel.contractType" placeholder="请输入合约类型" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="申请人ID" prop="ownerId">
-          <el-input v-model="formModel.ownerId" placeholder="请输入申请人ID" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="生效日期" prop="effectiveTime">
-          <el-input v-model="formModel.effectiveTime" placeholder="请输入生效日期" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="有效期" prop="expirationTime">
-          <el-input v-model="formModel.expirationTime" placeholder="请输入有效期" style="width:300px"></el-input>
-        </el-form-item>
-      </el-form>
-    </div>
-    <span slot="footer" class="dialog-footer">
+    <el-form ref="form" :model="formModel" :rules="ruleValidate" :label-width="'100px'">
+      <el-form-item label="名称" prop="parkingName">
+        <el-input v-model="formModel.parkingName" placeholder="请输入名称" style="width:300px"></el-input>
+      </el-form-item>
+      <el-form-item label="上级" prop="parentId">
+        <el-select-tree
+          size="mini"
+          :props="parentProps"
+          :options="parentResult"
+          v-model="formModel.parentId"
+          height="200"
+        ></el-select-tree>
+      </el-form-item>
+	  </el-form>
+  </div>
+      <span slot="footer" class="dialog-footer">
       <el-button @click="closeDialog">取 消</el-button>
       <el-button type="primary" @click="handleSubmit" :loading="submitting">确 定</el-button>
     </span>
@@ -67,84 +38,75 @@
 <script>
 import Constant from "@/constant";
 import parkingInfoApi from "@/api/base/parkingInfo";
+import SelectTree from "@/components/SelectTree";
 
 export default {
-  props: ["businessKey", "title"],
+  props: ["businessKey","title"],
   data() {
     return {
+      formModel: {},
       ruleValidate: {
-        id: [{ required: true, message: "不能为空", trigger: "blur" }],
-        createBy: [{ required: true, message: "不能为空", trigger: "blur" }],
-        createTime: [{ required: true, message: "不能为空", trigger: "blur" }],
-        updateBy: [{ required: true, message: "不能为空", trigger: "blur" }],
-        updateTime: [{ required: true, message: "不能为空", trigger: "blur" }],
-        delFlag: [
-          { required: true, message: "是否删除不能为空", trigger: "blur" }
-        ],
-        parkingNumber: [
-          { required: true, message: "车位编号不能为空", trigger: "blur" }
-        ],
-        parkingPrice: [
-          { required: true, message: "车位售价不能为空", trigger: "blur" }
-        ],
-        rentPrice: [
-          { required: true, message: "租赁价格(月)不能为空", trigger: "blur" }
-        ],
-        contractType: [
-          { required: true, message: "合约类型不能为空", trigger: "blur" }
-        ],
-        ownerId: [
-          { required: true, message: "申请人ID不能为空", trigger: "blur" }
-        ],
-        effectiveTime: [
-          { required: true, message: "生效日期不能为空", trigger: "blur" }
-        ],
-        expirationTime: [
-          { required: true, message: "有效期不能为空", trigger: "blur" }
-        ]
-      },
+            parkingName: [
+                { required: true, message: '名称不能为空', trigger: 'blur' }
+            ]
+          },
       showDialog: true,
       loading: false,
       submitting: false,
-      formModel: {}
+      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: {
     closeDialog() {
-      this.$emit("close", false);
+	this.$emit("close",false);
     },
     handleSubmit() {
       var self = this;
 
       this.$refs["form"].validate(valid => {
         if (valid) {
-          (function() {
+          (function(){
             var id = self.formModel.id;
 
             if (id == null || id.length == 0) {
               return parkingInfoApi.add(self.formModel);
-            } else {
+            }
+            else{
               return parkingInfoApi.update(self.formModel);
             }
           })().then(function(response) {
-            var jsonData = response.data;
+              var jsonData = response.data;
 
-            if (jsonData.result) {
-              self.$message({
-                message: "保存成功!",
-                type: "success"
-              });
+              if (jsonData.result) {
+                self.$message({
+                  message: "保存成功!",
+                  type: "success"
+                });
 
-              this.$emit("close", true);
-            } else {
-              self.$message({
-                message: jsonData.message + "",
-                type: "warning"
-              });
+                self.$emit("close",true);
+              } else {
+                self.$message({
+                  message: jsonData.message + "",
+                  type: "warning"
+                });
 
-              this.$emit("close", false);
-            }
-          });
+                self.$emit("close",false);
+              }
+            });
         }
       });
     }
@@ -152,26 +114,28 @@ export default {
   mounted: function() {
     var self = this;
 
-    (function() {
-      if (self.businessKey.length == 0) {
-        return parkingInfoApi.create();
-      } else {
-        return parkingInfoApi.edit(self.menuId);
+    (function(){
+      if(self.businessKey.length==0){
+        return parkingInfoApi.create()
+      }
+      else{
+        return parkingInfoApi.edit(self.businessKey)
       }
-    })()
-      .then(response => {
-        var jsonData = response.data;
-        self.loading = false;
+    })().then(response => {
+      var jsonData = response.data;
+      self.loading = false;
 
-        if (jsonData.result) {
-          self.formModel = jsonData.data;
-        } else {
-          self.$message.error(jsonData.message + "");
-        }
-      })
-      .catch(error => {
-        self.$message.error(error + "");
-      });
-  }
+      if (jsonData.result) {
+        self.formModel = jsonData.data;
+      } else {
+        self.$message.error(jsonData.message + "");
+      }
+    }).catch(error => {
+      self.$message.error(error + "");
+    });
+  },
+  components: {
+    "el-select-tree": SelectTree
+  },
 };
 </script>

+ 113 - 75
src/views/base/parkingInfo-list.vue

@@ -3,38 +3,40 @@
     <el-breadcrumb separator=">">
       <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
       <el-breadcrumb-item>
-        <a href="#">车辆道闸管理</a>
+        <a href="#">物业管理</a>
       </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>
     <el-divider></el-divider>
     <!--
       要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>
-      <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-button
@@ -43,37 +45,62 @@
           icon="ios-search"
           @click="changePage(1)"
           :loading="loading"
-        >查询</el-button>&nbsp;
+          >查询</el-button
+        >&nbsp;
         <el-button
           type="info"
           size="mini"
           style="margin-left: 8px"
           @click="handleReset('queryForm')"
-        >重置</el-button>&nbsp;
+          >重置</el-button
+        >&nbsp;
       </el-form-item>
     </el-form>
     <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
       :data="tableData"
-      style="min-height:400px;"
+      style="min-height: 400px"
       v-loading="loading"
       stripe
       @sort-change="sortChange"
       @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>
       </el-table-column>
     </el-table>
@@ -99,27 +126,29 @@ import ParkingInfoDetail from "./parkingInfo-detail";
 import parkingInfoApi from "@/api/base/parkingInfo";
 import NProgress from "nprogress"; // progress bar
 import "nprogress/nprogress.css"; // progress bar style
+import SelectTree from "@/components/SelectTree";
 
 export default {
-  name: "BaseParkingInfoList",
   data() {
     var self = this;
 
     return {
       queryModel: {
         id: "",
-        createBy: "",
-        createTime: "",
-        updateBy: "",
-        updateTime: "",
-        delFlag: "",
-        parkingNumber: "",
+        companyId: "",
+        parkingName: "",
+        parentId: "",
+        ownerId: "",
         parkingPrice: "",
         rentPrice: "",
         contractType: "",
-        ownerId: "",
         effectiveTime: "",
-        expirationTime: ""
+        expirationTime: "",
+        delFlag: "",
+        createBy: "",
+        createTime: "",
+        updateBy: "",
+        updateTime: "",
       },
       loading: false,
       tableData: [],
@@ -133,9 +162,24 @@ export default {
       multipleSelection: [],
       showModal: false,
       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: {
     changePage(pageIndex) {
       var self = this;
@@ -148,19 +192,8 @@ export default {
       formData.append("pageIndex", self.pageIndex);
       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) {
         formData.append("field", this.field);
@@ -172,7 +205,7 @@ export default {
 
       parkingInfoApi
         .pageList(formData)
-        .then(function(response) {
+        .then(function (response) {
           self.loading = false;
 
           var jsonData = response.data.data;
@@ -181,13 +214,17 @@ export default {
           self.totalPages = jsonData.totalPages;
           self.totalElements = jsonData.recordsTotal;
         })
-        .catch(error => {
+        .catch((error) => {
           self.loading = false;
           // self.$message.error(error + "");
         });
     },
     pageSizeChange(pageSize) {
       this.pageSize = pageSize;
+
+      this.$nextTick(() => {
+        this.changePage(this.pageIndex);
+      });
     },
     sortChange(data) {
       this.field = data.column.field;
@@ -218,10 +255,10 @@ export default {
         .$confirm("是否确认删除?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
-          type: "warning"
+          type: "warning",
         })
         .then(() => {
-          parkingInfoApi.remove(record.id).then(function(response) {
+          parkingInfoApi.remove(record.id).then(function (response) {
             var jsonData = response.data;
 
             if (jsonData.result) {
@@ -231,7 +268,7 @@ export default {
 
               self.$message({
                 type: "success",
-                message: "删除成功!"
+                message: "删除成功!",
               });
             }
           });
@@ -240,16 +277,16 @@ export default {
     handleBatchDelete() {
       var self = this;
 
-      var idList = this.multipleSelection.map(record => {
+      var idList = this.multipleSelection.map((record) => {
         return record.id;
       });
 
       this.$confirm("是否确认删除选中项?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning"
+        type: "warning",
       }).then(() => {
-        parkingInfoApi.batchRemove(idList).then(function(response) {
+        parkingInfoApi.batchRemove(idList).then(function (response) {
           var jsonData = response.data;
 
           if (jsonData.result) {
@@ -257,7 +294,7 @@ export default {
 
             self.$message({
               type: "success",
-              message: "删除成功!"
+              message: "删除成功!",
             });
           }
         });
@@ -270,14 +307,15 @@ export default {
       if (refreshed) {
         this.changePage(this.pageIndex);
       }
-    }
+    },
   },
-  mounted: function() {
+  mounted: function () {
     this.changePage(1);
   },
   components: {
-    "parkingInfo-detail": ParkingInfoDetail
-  }
+    "parkingInfo-detail": ParkingInfoDetail,
+    "el-select-tree": SelectTree
+  },
 };
 </script>
 <style lang="scss" scoped>

+ 5 - 2
src/views/base/parkingWay-list.vue

@@ -3,10 +3,13 @@
     <el-breadcrumb separator=">">
       <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
       <el-breadcrumb-item>
-        <a href="#">系统管理</a>
+        <a href="#">物业管理</a>
       </el-breadcrumb-item>
       <el-breadcrumb-item>
-        <a href="/base/parkingWay">车位管理</a>
+        <a href="#">车位收费管理</a>
+      </el-breadcrumb-item>
+      <el-breadcrumb-item>
+        <a href="/base/parkingWay">车位租赁方式管理</a>
       </el-breadcrumb-item>
     </el-breadcrumb>
     <el-divider></el-divider>