浏览代码

Merge branch 'V2' of http://47.92.161.104:10080/zq/jp-housekeeper-portal into V2

zhengqiang 5 年之前
父节点
当前提交
0d4d53bd69

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

@@ -45,6 +45,10 @@ function list() {
   return request.post(constant.serverUrl + "/messageNotice/list");
 }
 
+function sendWechat(formData) {
+  return request.post(constant.serverUrl + "/messageNotice/sendWechat", formData);
+}
+
 export default {
-  create, edit, add, update, remove, batchRemove, pageList, list
+  create, edit, add, update, remove, batchRemove, pageList, list, sendWechat
 }

+ 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
 }

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

@@ -45,6 +45,10 @@ function listByCompanyId(formData){
   return request.post(constant.serverUrl + "/base/personRoleInfo/listByCompanyId", formData);
 }
 
+function findBySceneId(formData){
+  return request.post(constant.serverUrl + "/base/personRoleInfo/findBySceneId", formData);
+}
+
 function findAll(){
   return request.post(constant.serverUrl + "/base/personRoleInfo/findAll");
 }
@@ -69,5 +73,5 @@ function saveRelatedIcon(personRoleId,mode,idList){
 
 export default {
   pageList,create,edit,add,update,remove,batchRemove,listByCompanyId,findAll,
-  findAllIcon,findRelatedIcon,saveRelatedIcon
+  findAllIcon,findRelatedIcon,saveRelatedIcon,findBySceneId
 }

+ 57 - 41
src/views/base/companyInfo-detail.vue

@@ -58,20 +58,6 @@
               ></el-select-tree>
             </el-form-item>
           </el-col>
-          <!-- <el-col :span="12">
-            <el-form-item label="单位性质" prop="type">
-              <el-select v-model="formModel.type" filterable placeholder="请选择" style="width:50%">
-                <el-option
-                  v-for="result in typeData"
-                  :key="result.id"
-                  :label="result.name"
-                  :value="result.value"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col> -->
-        </el-row>
-        <el-row>
           <el-col :span="12">
             <el-form-item label="地区" prop="regionId">
               <!-- <el-select v-model="formModel.regionId" filterable placeholder="请选择" style="width:50%">
@@ -90,6 +76,8 @@
               ></el-select-tree>
             </el-form-item>
           </el-col>
+        </el-row>
+        <el-row>
           <el-col :span="12">
             <el-form-item label="场景值" prop="sceneId">
               <el-select v-model="formModel.sceneId" filterable placeholder="请选择" style="width:50%">
@@ -103,6 +91,30 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row  v-if="formModel.sceneId == '2'">
+          <el-col :span="12">
+            <el-form-item label="关联单位" prop="relationCompanyId">
+              <el-select-tree
+                :props="props"
+                :options="companyResult"
+                v-model="formModel.relationCompanyId"
+                height="200"
+              ></el-select-tree>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="关联场景" prop="type">
+              <el-select v-model="formModel.type" filterable placeholder="请选择" style="width:50%">
+                <el-option
+                  v-for="result in sceneData"
+                  :key="result.id"
+                  :label="result.sceneName"
+                  :value="result.id"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
         <el-row>
           <el-col :span="24">
             <el-form-item label="备注" prop="remark">
@@ -256,38 +268,38 @@ export default {
     });
     
 
-    this.loadTree();
+    //this.loadTree();
   },
   methods: {
-    getSelectedValue(value) {
-      this.formModel.parentId = value;
-    },
-    loadTree() {
-      var formData = new FormData();
-      companyInfoApi.loadChildren(formData).then(resp => {
-        var jsonData = resp.data;
+    // getSelectedValue(value) {
+    //   this.formModel.parentId = value;
+    // },
+    // loadTree() {
+    //   var formData = new FormData();
+    //   companyInfoApi.loadChildren(formData).then(resp => {
+    //     var jsonData = resp.data;
 
-        if (jsonData.result) {
-          this.treeData = jsonData.data;
-        } else {
-          this.$message.error(jsonData.message + "");
-        }
-      });
-    },
-    loadChildren(tree, treeNode, resolve) {
-      var formData = new FormData();
-      formData.append("parentId", tree.id);
+    //     if (jsonData.result) {
+    //       this.treeData = jsonData.data;
+    //     } else {
+    //       this.$message.error(jsonData.message + "");
+    //     }
+    //   });
+    // },
+    // loadChildren(tree, treeNode, resolve) {
+    //   var formData = new FormData();
+    //   formData.append("parentId", tree.id);
 
-      companyInfoApi.loadChildren(formData).then(resp => {
-        var jsonData = resp.data;
+    //   companyInfoApi.loadChildren(formData).then(resp => {
+    //     var jsonData = resp.data;
 
-        if (jsonData.result) {
-          resolve(jsonData.data);
-        } else {
-          this.$message.error(jsonData.message + "");
-        }
-      });
-    },
+    //     if (jsonData.result) {
+    //       resolve(jsonData.data);
+    //     } else {
+    //       this.$message.error(jsonData.message + "");
+    //     }
+    //   });
+    // },
     closeDialog() {
       this.$emit("close", false);
     },
@@ -303,6 +315,10 @@ export default {
               self.formModel.parentId = "";
             }
 
+            if(self.formModel.relationCompanyId == null){
+              self.formModel.relationCompanyId = "";
+            }
+
             if (id == null || id.length == 0) {
               return companyInfoApi.add(self.formModel);
             } else {

+ 61 - 8
src/views/base/messageNotice-detail.vue

@@ -9,15 +9,34 @@
     :visible.sync="showDialog"
     :title="title"
     :modal-append-to-body="false"
-    style="text-align:left;"
+    style="text-align: left"
     :width="'800px'"
     @close="closeDialog"
     :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
+        ref="form"
+        :model="formModel"
+        :rules="ruleValidate"
+        :label-width="'100px'"
+      >
+        <el-form-item label="类型" prop="title">
+          <el-select
+            v-model="formModel.type"
+            placeholder="请选择"
+            height="200"
+          >
+            <el-option label="站内消息" value="1"></el-option>
+            <el-option label="微信消息" value="2"></el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="标题" prop="title">
-          <el-input v-model="formModel.title" placeholder="请输入" style="width:100%"></el-input>
+          <el-input
+            v-model="formModel.title"
+            placeholder="请输入"
+            style="width: 100%"
+          ></el-input>
         </el-form-item>
         <el-form-item label="发送单位" prop="noticeCompany">
           <el-select-tree
@@ -28,7 +47,12 @@
           ></el-select-tree>
         </el-form-item>
         <el-form-item label="接受者类型" prop="noticeType">
-          <el-select v-model="formModel.noticeType" multiple placeholder="请选择" style="width:90%">
+          <el-select
+            v-model="formModel.noticeType"
+            multiple
+            placeholder="请选择"
+            style="width: 90%"
+          >
             <el-option
               v-for="result in popedomData"
               :key="result.id"
@@ -37,6 +61,20 @@
             ></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="微信模板ID" prop="wechatCode" v-if="formModel.type == '2'">
+          <el-input
+            v-model="formModel.wechatCode"
+            placeholder="请输入"
+            style="width: 100%"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="链接地址" prop="noticeLink" v-if="formModel.type == '2'">
+          <el-input
+            v-model="formModel.noticeLink"
+            placeholder="请输入"
+            style="width: 100%"
+          ></el-input>
+        </el-form-item>
         <el-form-item label="内容" prop="content">
           <mce-editor
             ref="editor"
@@ -59,7 +97,11 @@
           </el-radio-group>
         </el-form-item>
         <el-form-item label="积分" prop="point">
-          <el-input v-model="formModel.point" placeholder="请输入" style="width:100%"></el-input>
+          <el-input
+            v-model="formModel.point"
+            placeholder="请输入"
+            style="width: 100%"
+          ></el-input>
         </el-form-item>
         <el-form-item label="审核状态" prop="status">
           <el-radio-group v-model="formModel.status">
@@ -67,11 +109,19 @@
             <el-radio :label="false">未审核</el-radio>
           </el-radio-group>
         </el-form-item>
+        <el-form-item label="微信消息推送" prop="sendWechat" v-if="formModel.type == '2'">
+          <el-radio-group v-model="formModel.sendWechat">
+            <el-radio :label="true">已发送</el-radio>
+            <el-radio :label="false">未发送</el-radio>
+          </el-radio-group>
+        </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>
+      <el-button type="primary" @click="handleSubmit" :loading="submitting"
+        >确 定</el-button
+      >
     </span>
   </el-dialog>
 </template>
@@ -89,10 +139,13 @@ export default {
   data() {
     return {
       ruleValidate: {
+        type:[{ required: true, message: "请选择消息类型", trigger: "blur" }],
         title: [{ required: true, message: "标题不能为空", trigger: "blur" }],
         noticeCompany: [
           { required: true, message: "发送单位不能为空", trigger: "blur" },
         ],
+        wechatCode:[{ required: true, message: "模板ID不能为空", trigger: "blur" }],
+        noticeLink:[{ required: true, message: "链接不能为空", trigger: "blur" }],
         noticeType: [{ required: true, message: "不能为空", trigger: "blur" }],
       },
       showDialog: true,
@@ -113,8 +166,8 @@ export default {
         // 配置项(必选)
         value: "id",
         label: "name",
-        children: "children"
-      }
+        children: "children",
+      },
     };
   },
   created() {

+ 100 - 13
src/views/base/messageNotice-list.vue

@@ -13,10 +13,26 @@
     <!--
       要resetFields起作用,必须配置:model和prop
     -->
-    <el-form ref="queryForm" :model="queryModel" inline class="demo-form-inline">
+    <el-form
+      ref="queryForm"
+      :model="queryModel"
+      inline
+      class="demo-form-inline"
+    >
       <el-form-item label="标题" prop="title">
         <el-input type="text" size="mini" v-model="queryModel.title"></el-input>
       </el-form-item>
+      <el-form-item label="类型" prop="title">
+        <el-select
+          v-model="queryModel.type"
+          placeholder="请选择"
+          style="width: 90%"
+        >
+          <el-option label="全部" value=""></el-option>
+          <el-option label="站内消息" value="1"></el-option>
+          <el-option label="微信消息" value="2"></el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button
           type="primary"
@@ -24,26 +40,36 @@
           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-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"
+        @click="handleAdd"
+        >新增</el-button
+      >
       <el-button
         type="primary"
         size="small"
         plain
         icon="el-icon-remove"
-        :disabled="multipleSelection.length==0"
+        :disabled="multipleSelection.length == 0"
         @click="handleBatchDelete"
-      >删除选中项</el-button>
+        >删除选中项</el-button
+      >
     </el-row>
     <el-table
       ref="formTable"
@@ -55,17 +81,51 @@
       @selection-change="handleSelectionChange"
     >
       <el-table-column type="selection" width="55"></el-table-column>
-      <el-table-column prop="title" label="发送单位" width="300"></el-table-column>
-      <el-table-column prop="noticeCompany" label="标题" width="300"></el-table-column>
+      <el-table-column prop="type" label="发送类型" width="100">
+        <template slot-scope="{ row }">
+          <span v-if="row.type == 1" style="color: green">站内消息</span>
+          <span v-else-if="row.type == 2" style="color: red">微信</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="title" label="标题" width="300"></el-table-column>
+      <el-table-column
+        prop="noticeCompany"
+        label="接收单位"
+        width="300"
+      ></el-table-column>
       <el-table-column prop="point" label="积分" width="80"></el-table-column>
       <el-table-column prop="status" label="审核" width="120">
-        <template slot-scope="{row}">{{row.status? "已审核" : "未审核"}}</template>
+        <template slot-scope="{ row }">{{
+          row.status ? "已审核" : "未审核"
+        }}</template>
       </el-table-column>
-      <el-table-column prop="createTime" label="发送时间" width="280"></el-table-column>
+      <el-table-column prop="sendWechat" label="发送状态" width="120">
+        <template slot-scope="{ row }">
+          <span v-if="row.type == 2">
+            {{ row.sendWechat ? "已发送微信消息" : "未发送" }}
+          </span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="createTime"
+        label="发送时间"
+        width="280"
+      ></el-table-column>
       <el-table-column label="操作" width="480">
-        <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 slot-scope="{ row }">
+          <el-button
+            size="mini"
+            type="primary"
+            @click="sendWechat(row)"
+            v-if="row.type == '2' && row.sendWechat == 0"
+            >发送消息</el-button
+          >
+          <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>
@@ -101,6 +161,7 @@ export default {
     return {
       queryModel: {
         title: "",
+        type: "",
       },
       loading: false,
       tableData: [],
@@ -134,6 +195,7 @@ export default {
       formData.append("pageSize", self.pageSize);
 
       formData.append("title", self.queryModel.title);
+      formData.append("type", self.queryModel.type);
 
       if (this.field != null) {
         formData.append("field", this.field);
@@ -250,6 +312,31 @@ export default {
         this.changePage(this.pageIndex);
       }
     },
+    sendWechat(record) {
+      var self = this;
+      var formData = new FormData();
+
+      formData.append("id", record.id);
+      this.$confirm("确认发送微信通知?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        self.loading = true;
+        messageNoticeApi.sendWechat(formData).then(function (response) {
+          var jsonData = response.data;
+
+          if (jsonData.result) {
+            self.changePage(self.pageIndex);
+
+            self.$message({
+              type: "success",
+              message: "发送成功!",
+            });
+          }
+        });
+      });
+    },
   },
   mounted: function () {
     var self = this;

+ 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>

+ 42 - 0
src/views/base/personPopedom-detail.vue

@@ -36,6 +36,16 @@
             height="200"
           ></el-select-tree>
         </el-form-item>
+        <el-form-item label="关联场景" prop="sceneId">
+          <el-select v-model="sceneId" filterable placeholder="请选择">
+            <el-option
+              v-for="result in sceneData"
+              :key="result.id"
+              :label="result.sceneName"
+              :value="result.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="身份" prop="personRoleId">
           <el-select
             v-model="formModel.personRoleId"
@@ -92,6 +102,7 @@ import companyInfoApi from "@/api/base/companyInfo";
 import deviceInfoApi from "@/api/base/deviceInfo";
 import companyStructureInfoApi from "@/api/base/companyStructureInfo";
 import iconInfoApi from "@/api/base/iconInfo";
+import sceneInfoApi from "@/api/base/sceneInfo";
 import SelectTree from "@/components/SelectTree";
 import { Breadcrumb } from "element-ui";
 
@@ -131,6 +142,8 @@ export default {
         label: "structureName",
         children: "children",
       },
+      sceneData: [],
+      sceneId: "",
     };
   },
   created() {
@@ -144,6 +157,11 @@ export default {
       }
     });
 
+    sceneInfoApi.list().then((response) => {
+      var jsonData = response.data;
+      this.sceneData = jsonData.data;
+    });
+
     // var formData = new FormData();
     // formData.append("companyId", "c52b03cb-7526-4e8b-8b90-4f7a6a37b586");
     // personRoleInfoApi.listByCompanyId(formData).then(function (response) {
@@ -179,6 +197,30 @@ export default {
             }
           }
         });
+
+        companyInfoApi.edit(val).then((response) => {
+          var jsonData = response.data;
+          if (jsonData.result) {
+            self.sceneId = jsonData.data.sceneId;
+          }
+        });
+      }
+    },
+    "sceneId": function (val, oldval) {
+      if (val != null && val != "") {
+        var self = this;
+        var formData = new FormData();
+        formData.append("sceneId", val);
+      
+        personRoleInfoApi.findBySceneId(formData).then(function (response) {
+          var jsonData = response.data;
+          if (jsonData.result) {
+            if (jsonData.data != null && jsonData.data != "") {
+              self.formModel.personRoleId = "";
+              self.personRoleResult = jsonData.data;
+            }
+          }
+        });
       }
     },
     // "formModel.personRoleId": function (val, oldval) {