Browse Source

修改显示项目id的bug

zhangyu 5 years ago
parent
commit
fe2d77ce36

+ 2 - 2
config/prod.env.js

@@ -2,6 +2,6 @@
 module.exports = {
     NODE_ENV: '"production"',
     BASE_URL: '"http://172.16.0.239"', //线上iframe地址
-    // SSO_SERVER: '"http://192.168.20.101:8004"' //测试环境
-    SSO_SERVER: '"http://sso.sagacloud.cn"'  //正式环境
+    SSO_SERVER: '"http://192.168.20.101:8004"' //测试环境
+    // SSO_SERVER: '"http://sso.sagacloud.cn"'  //正式环境
 }

+ 0 - 1
src/framework/layout/PageHeader.vue

@@ -66,7 +66,6 @@ export default {
         }
     },
     created() {
-        // console.log('--------------------- PageHeader created')
         this.selectedProjectId = this.projectId
     },
     mounted() {},

+ 5 - 2
src/framework/layout/layout-store.js

@@ -14,8 +14,8 @@ export default {
         sidebarSelected: '', // sidebar选中的选项
         userInfo: null, //{ username: 'admin' },
         permissions: { "system:role:delete": true, "system:role:create": true, "system:role:query": true, "system:role:setOpts": true },
-        projectId: 'Pj4201050001',
-        projects: [{ name: '风雅园', id: 'Pj1101010001' }, { name: '亚心医院', id: 'Pj4201050001' }],
+        projectId: '',
+        projects: [],
         breadcrumb: [],
         secret: "saga123456", //密码
         userId: "test", //用户id
@@ -82,6 +82,9 @@ export default {
                         }
                         state.projects = []
                         if (resp.projects) {
+                            if(resp.projects[0] && resp.projects[0].projId) {
+                                state.projectId = resp.projects[0].projId
+                            }
                             resp.projects.forEach(proj =>
                                 state.projects.push({
                                     id: proj.projId,

+ 17 - 1
src/utils/authutils.js

@@ -1,6 +1,8 @@
 import httputils from '@/utils/httputils'
 import store from '@/store'
 import menus from '@/data/menus'
+import session from "@/framework/utils/storage"
+import { MessageBox } from 'element-ui'
 
 function toLogin() {
     let ssoServer = process.env.SSO_SERVER
@@ -52,7 +54,21 @@ export default {
                 if (to.meta.breadcrumbs) {
                     store.dispatch('setBreadcrumb', to.meta.breadcrumbs)
                 }
-                next()
+                // if((from = "/rent/rentadd" && session.get("isRentSave") == false)) { //判断新增信息是否保存
+                //     console.log(MessageBox)
+                //     debugger;
+                //     MessageBox.$confirm("新增信息未保存,离开将丢失新增信息,是否继续?", "提示", {
+                //         confirmButtonText: '确定',
+                //         cancelButtonText: '取消',
+                //         type: 'warning'
+                //     }).then(() => {
+                //         next()
+                //     }).catch(() => {
+                //         next(false)
+                //     })
+                // } else {
+                    next()
+                // }
             }
             return true
         }

+ 5 - 2
src/utils/handsontable/notShow.js

@@ -1,6 +1,7 @@
 // 不显示的信息点数组
 import text from "@/utils/handsontable/mainText"
 import tools from "@/utils/scan/tools"
+//在编辑模式下并且勾选隐藏自动填充的信息点不显示的字段
 let noShowArr = [
     "Brand",
     "Specification",
@@ -28,7 +29,7 @@ let noShowArr = [
     "EquipID",
     "EquipName",
 ]
-
+//在编辑模式下不显示的字段
 let cantShow = [
     "EquipQRCode",
     "EquipID",
@@ -60,7 +61,9 @@ let cantShow = [
     "EquipID",
     "EquipName",
     "SpaceCount",
-    "SpaceList"
+    "SpaceList",
+    "TenantID",
+    "ShaftID"
 ]
 
 let cutArr = [{

+ 3 - 2
src/views/ledger/cenotelist/index.vue

@@ -93,7 +93,7 @@ export default {
       allMess: true,
       tableHeader: [],
       page: {
-        pageSize: 20,
+        pageSize: 50,
         pageSizes: [10, 20, 50, 100],
         pageNumber: 1,
         total: 0
@@ -354,7 +354,8 @@ export default {
       let data = showTools.showHeaderTypes(arr, this.onlyRead, false, this.allMess)
       data.unshift({
         data: "SpaceCount",
-        readOnly: this.onlyRead
+        renderer: tools.num,
+        readOnly: true
       })
       return data;
     },

+ 18 - 11
src/views/rent/rentlist/index.vue

@@ -39,7 +39,7 @@
             :autosize="{ minRows: 6, maxRows: 10}"
             :disabled="onlyRead"
             placeholder="请输入元空间id,以“,”分割"
-            v-model="relationids">
+            v-model="roomId">
           </el-input>
           <el-row class="right" v-show="!onlyRead">
             <el-button @click="handleCloseRight">取消</el-button>
@@ -80,10 +80,9 @@ export default {
     return {
       buildId: null,//建筑id
       floorId: null,//楼层id
-      cenoteId: "",//租户类型id
-      shaftId: "",//要操作的租户id
+      tenantID: "",//要操作的租户id
       isTableRightShow: false,
-      relationids: "",
+      roomId: "",//关联的空间id
       options: [{
         value: true,
         label: '只读模式'
@@ -95,7 +94,7 @@ export default {
       allMess: true,
       tableHeader: [],
       page: {
-        pageSize: 20,
+        pageSize: 50,
         pageSizes: [10, 20, 50, 100],
         pageNumber: 1,
         total: 0
@@ -195,14 +194,14 @@ export default {
     //保存元空间关联
     async saveSpaceList() {
       let data = {
-        
+        TenantID: this.tenantID,
+        RoomID: this.roomId
       }
       const params = {
         ProjId: this.projectId,
         secret: this.secret,
         data: data
       }
-      this.$message.error("后台未返回租赁空间信息,请设置参数!")
       await saveRentRelateSpace(params, (res) => {
         this.$message.success("关联成功!")
         this.getTableHeader()
@@ -233,7 +232,7 @@ export default {
         }
       }
       params.map(item => {
-        param.data.idList.push(item.ShaftID)
+        param.data.idList.push(item.TenantID)
       })
       this.$confirm("此操作将删除租户,是否继续?", "提示", {
         confirmButtonText: '确定',
@@ -308,7 +307,7 @@ export default {
         readArr.push("Own")
       }
       let data = showTools.changeHeader(arr, readArr, this.onlyRead, false, this.allMess)
-      data.unshift("操作");
+      data.unshift("操作","所属楼层","租赁空间");
       return data;
     },
     formatHeaderType(list) {//格式化表头头映射的数据
@@ -321,6 +320,13 @@ export default {
         data: "caozuo",
         renderer: tools.lookDetails,
         readOnly: true
+      }, {
+        data: "FloorId",
+        readOnly: true
+      }, {
+        data: "RoomCount",
+        renderer: tools.num,
+        readOnly: true
       })
       return data;
     },
@@ -355,14 +361,15 @@ export default {
       let val = this.tableExample.colToProp(row.col);
       this.row = row.row //要操作的列号
       this.messKey = val //要操作的列类型
-      this.shaftId = infos.ShaftID //要操作的数据id
+      this.tenantID = infos.TenantID //要操作的数据id
       //点击操作跳转详情
       if (val === "caozuo") {
         this.$message("请设置要跳转的详情页地址")
         // window.open(`http://47.94.89.44:8058/spread?id=${infos.id}&pid=${this.projectId}&secret=${this.secret}`,"_blank")
       }
       //点击关联的元空间
-      if (val === "租赁空间") {
+      if (val === "RoomCount") {
+        this.roomId = infos.RoomID
         this.isTableRightShow = true;
       }
     },

+ 303 - 0
src/views/rent/rentlist/rentadd/index_1.vue

@@ -0,0 +1,303 @@
+<template>
+  <div id="deviceList">
+    <el-row class="right">
+      <!-- <span style="float:left;">当前选择的部件类型:{{page.total || '--'}}</span> -->
+      <span>增加</span>
+      <el-input v-model="addNum" style="width:40px;" size="small"></el-input>
+      <span>个租户</span>
+      <el-button @click="handleAddTableRow">增加</el-button>
+    </el-row>
+    <div class="tableBox">
+      <div class="center middle_sty" style="flex:2;" v-show="tableData && !tableData.length">
+        <p>
+          <i class="iconwushuju iconfont"></i>
+          暂无数据
+        </p>
+      </div>
+      <div class="tableLeft" v-show="tableData && tableData.length">
+        <handson-table ref="table"></handson-table>
+      </div>
+    </div>
+    <el-row class="center">
+      <el-button type="primary" size="medium" @click="handleCreateTableData">创建租户</el-button>
+    </el-row>
+  </div>
+</template>
+<script>
+import tools from "@/utils/scan/tools"
+import handsonUtils from "@/utils/hasontableUtils"
+import showTools from "@/utils/handsontable/notShow"
+import text from "@/utils/handsontable/mainText"
+import session from "@/framework/utils/storage"
+
+import handsonTable from "@/components/common/handsontable"
+import { getRentTableHeader, createRentTableData } from "@/api/scan/request"
+import { mapGetters, mapActions } from "vuex";
+export default {
+  components: {
+    handsonTable
+  },
+  data() {
+    return {
+      buildId: null,//建筑id
+      floorId: null,//楼层id
+      addNum: 1,
+      cenoteId: "",//租户类型id
+      shaftId: "",//要操作的租户id
+      isTableRightShow: false,
+      relationids: "",
+      onlyRead: false,
+      allMess: true,
+      isRentSave: false,//新增信息是否保存
+      tableHeader: [],
+      tableData: [{}],
+      copyTableData: [],
+      assetGroupList: [],
+      graphyId: null
+    };
+  },
+  computed: {
+    ...mapGetters("layout", [
+        "projectId",
+        "secret",
+        "userId"
+    ])
+  },
+  created() {
+    session.set("isRentSave", this.isRentSave)
+    this.getTableHeader()
+  },
+  // watch: {
+
+  // },
+  methods: {
+    // 获取表头数据(初始化表格)
+    async getTableHeader() {
+      let param = {
+        ProjId: this.projectId,
+        secret: this.secret,
+        data: {
+          "CollectFlag": this.allMess
+        }
+      }
+      await getRentTableHeader(param, res => {
+        this.tableHeader = res.Content
+        this.initTable()
+      })
+    },
+    // 创建租户数据
+    async handleCreateTableData() {
+      const params = {
+        ProjId: this.projectId,
+        secret: this.secret,
+        data: this.tableData
+      }
+      await createRentTableData(params, (res) => {
+        this.$message.success("添加成功!")
+        this.isRentSave = true
+        session.set("isRentSave", this.isRentSave)
+        this.$router.push({ name: 'rentlist'})
+      })
+    },
+    // 删除表格行
+    handleDeleteTableRow() {
+      this.$message.success("删除成功")
+    },
+    // 添加行
+    handleAddTableRow() {
+      let addRowLength = this.addNum
+      for(let i = 0; i < addRowLength; i++){
+        this.tableData.push({})
+      }
+      this.initTable()
+    },
+    //修改
+    handleUpdataTable(changeData, source) {
+      if (!this.onlyRead) {
+        if (changeData) {
+          let trimmedArr = this.trimmedRows();
+          let param = handsonUtils.getParam(changeData, source, this.tableExample, trimmedArr);
+          let data = [];
+          for (let i = 0; i < param.length; i++) {
+            data.push(param[i]);
+          }
+
+          // 存在data进行修改请求
+          if (data && data.length) {
+            data.map((item, index) => {
+              let key = changeData[index][1]
+              item[key] = item[key] != ""? item[key]: null
+            });
+          }
+        }
+      }
+    },
+    //关闭右侧关联元空间输入按钮
+    handleCloseRight() {
+      this.isTableRightShow = false
+    },
+    formatHeaderData(list) {//格式化表头显示的数据
+      let arr = tools.copyArr(list)
+      arr.map((item) => {
+        item.Visible = true
+      })
+      let readArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "F1", "F2", "L", "L1", "L2", "N2", "X"]
+      if (!this.onlyRead) {
+        readArr.push("Own")
+      }
+      let data = showTools.changeHeader(arr, readArr, this.onlyRead, false, this.allMess)
+      // data.unshift("关联的元空间");
+      return data;
+    },
+    formatHeaderType(list) {//格式化表头头映射的数据
+      let arr = tools.copyArr(list);
+      arr.map((item) => { //缺少信息点
+        item.Visible = true
+      })
+      let data = showTools.showHeaderTypes(arr, this.onlyRead, false, this.allMess)
+      // data.unshift({
+      //   data: "SpaceCount",
+      //   readOnly: this.onlyRead
+      // })
+      return data;
+    },
+    initTable() {//实例化表格
+      let settings = {
+        data: this.tableData,
+        colHeaders: this.formatHeaderData(this.tableHeader),
+        columns: this.formatHeaderType(this.tableHeader),
+        rowHeights: 30,
+        maxRows: this.tableData.length,
+        contextMenu: {
+          items: {
+            remove_row: {
+              name: "删除租户"
+            }
+          }
+        },
+        // 事件
+        afterChange: this.handleUpdataTable, //修改后
+        afterFilter: this.trimmedRows, //排序前
+        afterRemoveRow: this.handleDeleteTableRow, //右键删除
+        afterOnCellMouseDown: this.handleTdClick //鼠标点击
+      };
+      this.$nextTick(() => {
+        console.log(this.$refs.table);
+        this.tableExample = this.$refs.table.init(settings);
+      });
+    },
+    //获取到了正确的信息
+    getInfors(infos, row) {
+      //其他的开始判断
+      let val = this.tableExample.colToProp(row.col);
+      this.row = row.row //要操作的列号
+      this.messKey = val //要操作的列类型
+      this.shaftId = infos.ShaftID //要操作的数据id
+      //点击关联的元空间
+      // if (val === "SpaceCount") {
+      //   this.isTableRightShow = true;
+      // }
+    },
+    //表格点击事件
+    handleTdClick(el, rowArr) {
+      //点击的是表头
+      if (rowArr.row < 0) {
+        return;
+      }
+      //被筛选过后的数组
+      let trimmedArr = this.trimmedRows();
+      //是否启用了排序
+      let isSort = this.tableExample.getPlugin("columnSorting").isSorted();
+      if (trimmedArr.length && isSort) {
+        let sortArr = this.myHotArr.getPlugin("columnSorting").rowsMapper
+          .__arrayMap;
+        let infos = this.tableData[trimmedArr[sortArr[rowArr.row]]];
+        this.getInfors(infos, { row: sortArr[rowArr.row], col: rowArr.col });
+      } else if (isSort) {
+        //排序后的数组
+        let sortArr = this.tableExample.getPlugin("columnSorting").rowsMapper.__arrayMap;
+        let infos = this.tableData[sortArr[rowArr.row]];
+        this.getInfors(infos, { row: sortArr[rowArr.row], col: rowArr.col });
+      } else if (trimmedArr.length) {
+        let infos = this.tableData[trimmedArr[rowArr.row]];
+        this.getInfors(infos, { row: trimmedArr[rowArr.row], col: rowArr.col });
+      } else {
+        let infos = this.tableData[rowArr.row];
+        this.getInfors(infos, rowArr);
+      }
+    },
+    //获取被筛选掉的行号
+    trimmedRows() {
+      // var plugin = hot.getPlugin('trimRows').trimmedRows;//获取被筛选掉的行号
+      var plugin = this.tableExample.getPlugin("trimRows").trimmedRows;
+      let dataLength = this.tableData.length;
+      let dataArr = new Array();
+      for (let i = 0; i < dataLength; i++) {
+        dataArr.push(i);
+      }
+      if (plugin.length <= 0) {
+        dataArr = undefined;
+      } else {
+        dataArr = this.array_diff(dataArr, plugin);
+      }
+      return dataArr || [];
+      // var DataArray = new Array();
+
+      // for (var i = 0; i < plugin.length; i++) {
+      //     // 通过行号获取数据
+      //     DataArray.push(this.tableExample.getSourceDataAtRow(plugin[i]));
+      // }
+    },
+    //去除数组中相同的元素
+    array_diff(a, b) {
+      for (var i = 0; i < b.length; i++) {
+        for (var j = 0; j < a.length; j++) {
+          if (a[j] == b[i]) {
+            a.splice(j, 1);
+            j = j - 1;
+          }
+        }
+      }
+      return a;
+    }
+  }
+};
+</script>
+<style lang="less" scoped>
+#deviceList {
+  overflow: hidden;
+  height: 100%;
+  background-color: #f6f6f6;
+  position: relative;
+  .search-header {
+    overflow: hidden;
+    padding:0 10px 10px 10px;
+    border-bottom: 1px solid #bcbcbc;
+  }
+  .tableBox {
+    display: flex;
+    height: calc(100% - 100px);
+    margin-top: 10px;
+    .tableLeft {
+      flex: 2;
+    }
+    .tableRight {
+      flex: 1;
+      // display: none;
+      border-left: 1px solid #dadada;
+      padding: 5px 15px;
+      margin-right: 5px;
+      box-shadow: 0px 1px 5px 0px rgba(59, 66, 84, 0.15);
+      .table_right_box::after{
+        display: block;
+        content: "";
+        clear: both;
+      }
+      .close_right {
+        float: right;
+        cursor: pointer;
+      }
+    }
+  }
+}
+</style>