瀏覽代碼

Merge branch 'master' of http://39.106.8.246:3003/web/wanda-adm

haojianlong 4 年之前
父節點
當前提交
304566edb8

+ 10 - 5
src/api/datacenter.ts

@@ -6,17 +6,17 @@ const baseApi = "/datacenter";
 
 // 查询建筑信息
 export function buildingQuery(postParams: any): any {
-    return httputils.postJson(`${baseApi}/object/building/query`, postParams);
+    return httputils.postJson(`${ baseApi }/object/building/query`, postParams);
 }
 
 // 查询建筑信息
 export function floorQuery(postParams: any): any {
-    return httputils.postJson(`${baseApi}/object/floor/query`, postParams);
+    return httputils.postJson(`${ baseApi }/object/floor/query`, postParams);
 }
 
 // 字典查询
 export function dictCategoryQuery(postParams: any): any {
-    return httputils.postJson(`${baseApi}/dict/category`, postParams);
+    return httputils.postJson(`${ baseApi }/dict/category`, postParams);
 }
 
 // 查询项目下类型的信息点-->编辑器 空间功能类型 列表-->自己转成树
@@ -25,7 +25,7 @@ export function dictQuery(postParams: any): any {
     // "filters": "code='roomFuncType'",
     // "type": "GeneralZone"
     // }
-    return httputils.postJson(`${baseApi}/dict/query`, postParams);
+    return httputils.postJson(`${ baseApi }/dict/query`, postParams);
 }
 
 // 查询空间实例
@@ -34,5 +34,10 @@ export function PartiInstancQuery(postParams: any): any {
     // "filters": "code='roomFuncType'",
     // "type": "GeneralZone"
     // }
-    return httputils.postJson(`${baseApi}/object/zone/query`, postParams);
+    return httputils.postJson(`${ baseApi }/object/zone/query`, postParams);
+}
+
+// 查询设备信息
+export function queryEquip(postParams: any): any {
+    return httputils.postJson(`${ baseApi }/object/equip/query`, postParams)
 }

+ 12 - 0
src/api/equipComponent.ts

@@ -0,0 +1,12 @@
+import httputils from "@/api/httputils";
+const baseUrl = '/equip-component'
+
+//类型下信息点
+export function dictInfo(params: any): any {
+    return httputils.getJson(`${ baseUrl }/dict/equip/info?category=${ params.category }`, {})
+}
+
+//所有设备类型
+export function dictType(params: any): any {
+    return httputils.getJson(`${ baseUrl }/dict/equip/type`, {})
+}

+ 5 - 3
src/api/httputils.ts

@@ -23,6 +23,7 @@ axiosservice.interceptors.request.use(
         config.withCredentials = true; // 允许携带token ,这个是解决跨域产生的相关问题
         config.headers = {
             projectId: UserModule.projectId, // 'Pj1101050029',//项目id
+            groupCode: 'WD', // 集团编码
             // "X-Access-Token": UserModule.token, // token
         };
         return config;
@@ -33,7 +34,7 @@ axiosservice.interceptors.request.use(
 );
 
 axiosservice.interceptors.response.use(
-    function(res) {
+    function (res) {
         //在这里对返回的数据进行处理
         //console.log('axios interceptors res = ', res.status, res)
         const resp = res.data;
@@ -58,7 +59,7 @@ axiosservice.interceptors.response.use(
         //console.log('axios interceptors resp2 = ', resp.success, resp.errorCode, resp.errorMessage, res)
         return res;
     },
-    function(err) {
+    function (err) {
         //Do something with response error
         console.log("axios interceptors err = ", err);
         return Promise.reject(err);
@@ -90,6 +91,7 @@ export default {
                 url,
                 params,
                 method: "get",
+
             });
             return response.data;
         } catch (err) {
@@ -161,7 +163,7 @@ export default {
                     downFile(blob, fileName);
                 }
             })
-            .catch(function(error) {
+            .catch(function (error) {
                 console.log(error);
             });
     },

+ 50 - 0
src/components/business/dataForm.vue

@@ -0,0 +1,50 @@
+<template>
+    <el-row :gutter="20" class="data-form">
+        <el-form label-position="top" label-width="80px">
+            <!-- template v-for-->
+            <template>
+                <p class="title">xxxxxx</p>
+                <el-col :span="8">
+                    <el-form-item label="名称">
+                        <el-input/>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="名称">
+                        <el-input/>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="名称">
+                        <el-input/>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="名称">
+                        <el-input/>
+                    </el-form-item>
+                </el-col>
+            </template>
+
+
+        </el-form>
+
+
+    </el-row>
+</template>
+
+<script>
+export default {
+    name: 'dataForm'
+}
+</script>
+
+<style scoped lang="scss">
+.data-form{
+    .title{
+        border-left: 7px solid;
+        text-indent: 10px;
+        color:#646C73;
+    }
+}
+</style>

+ 0 - 23
src/components/public/adm-btn.vue

@@ -1,23 +0,0 @@
-<template>
-    <el-button :type="btnMsg.type" class="adm-btn">{{ btnMsg.title }}</el-button>
-</template>
-
-<script lang="ts">
-import { Component, Vue, Prop } from "vue-property-decorator";
-
-interface Btn {
-    type: string
-    title: string
-}
-
-@Component({
-    name: 'adm-btn'
-})
-export default class extends Vue {
-    @Prop({ type: Object }) btnMsg: Btn
-}
-</script>
-
-<style scoped>
-
-</style>

+ 46 - 89
src/components/public/adm-multi-table.vue

@@ -3,15 +3,17 @@
         :data="tableData"
         style="width: 100%"
         class="adm-multi-table"
-        size="mini"
+        :row-style="{ height: '10px' }"
+        border
     >
         <el-table-column
             prop="date"
             label="编辑"
             width="80"
             align="center"
+            fixed
 
-           >
+        >
             <template slot-scope="scope">
                 <span
                     class="el-icon-edit el-input__icon"
@@ -20,106 +22,61 @@
                 </span>
             </template>
         </el-table-column>
-        <el-table-column label="配送信息" >
+        <el-table-column label="基础信息台账">
             <el-table-column
-                prop="province"
-                label="省份"
-                width="120">
-            </el-table-column>
-            <el-table-column
-                prop="city"
-                label="市区"
-                width="120">
-            </el-table-column>
-            <el-table-column
-                prop="zip"
-                label="邮编"
-                width="120">
+                v-for="item in headersStage.basicInfos"
+                show-overflow-tooltip
+                :prop="item.infos"
+                :label="item.name"
+                :key="item.name"
+                fixed
+            >
             </el-table-column>
 
+
         </el-table-column>
-        <el-table-column label="地址信息">
+        <el-table-column :label="currentHeader">
             <el-table-column
-                prop="province"
-                label="省份"
-                width="120">
+                v-for="item in headersStage.dictStages"
+                :prop="item.infos"
+                :label="item.name"
+                :key="item.name"
+                show-overflow-tooltip
+            >
             </el-table-column>
-            <el-table-column
-                prop="city"
-                label="市区"
-                width="120">
-            </el-table-column>
-            <el-table-column
-                prop="zip"
-                label="邮编"
-                width="120">
-            </el-table-column>
-
         </el-table-column>
-
     </el-table>
 </template>
 
-<script>
-export default {
-    name: 'adm-multi-table',
-    data() {
-        return {
-            tableData: [{
-                date: '2016-05-03',
-                name: '王小虎',
-                province: '上海',
-                city: '普陀区',
-                address: '上海市普陀区金沙江路 1518 弄',
-                zip: 200333
-            }, {
-                date: '2016-05-02',
-                name: '王小虎',
-                province: '上海',
-                city: '普陀区',
-                address: '上海市普陀区金沙江路 1518 弄',
-                zip: 200333
-            }, {
-                date: '2016-05-04',
-                name: '王小虎',
-                province: '上海',
-                city: '普陀区',
-                address: '上海市普陀区金沙江路 1518 弄',
-                zip: 200333
-            }, {
-                date: '2016-05-01',
-                name: '王小虎',
-                province: '上海',
-                city: '普陀区',
-                address: '上海市普陀区金沙江路 1518 弄',
-                zip: 200333
-            }, {
-                date: '2016-05-08',
-                name: '王小虎',
-                province: '上海',
-                city: '普陀区',
-                address: '上海市普陀区金沙江路 1518 弄',
-                zip: 200333
-            }, {
-                date: '2016-05-06',
-                name: '王小虎',
-                province: '上海',
-                city: '普陀区',
-                address: '上海市普陀区金沙江路 1518 弄',
-                zip: 200333
-            }, {
-                date: '2016-05-07',
-                name: '王小虎',
-                province: '上海',
-                city: '普陀区',
-                address: '上海市普陀区金沙江路 1518 弄',
-                zip: 200333
-            }]
-        }
+<script lang="ts">
+import { Vue, Component, Prop, Emit } from "vue-property-decorator";
+@Component({
+    name: 'adm-multi-table'
+})
+export default class extends Vue {
+    // 表格数据
+    @Prop({ default: Array }) tableData ?: []
+    // 表头数据
+    @Prop({ default: Object }) headersStage ?: {}
+    // 当前页头文字
+    @Prop({ default: '' }) currentHeader ?: string
+
+    handleEdit(index, row) {
+        console.log(index, row)
     }
+
 }
+
 </script>
 
-<style scoped lang="scss">
+<style lang="scss">
+.adm-multi-table {
+    .el-table__row {
+        td {
+            padding: 0;
+        }
+    }
 
+}
 </style>
+

+ 16 - 9
src/components/public/adm-pagination.vue

@@ -1,17 +1,20 @@
 <template>
     <el-pagination
-        :current-page="currentPage"
-        :page-sizes=""
-        :page-size=""
+        class="adm-pagination"
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :page-sizes="paginationList.sizes"
+        :page-size="paginationList.size"
+        :current-page.sync="paginationList.page"
         layout="total,sizes,prev,pager,next,jumper"
-        :total=""
+        :total="paginationList.total"
     />
-
-
 </template>
 
 <script lang="ts">
+// 当前页,总数,范围
 interface Pagination {
+    page:number,
     size: number
     total: number
     sizes: []
@@ -22,12 +25,16 @@ import { Vue, Component, Emit, Prop } from "vue-property-decorator";
     name: 'adm-pagination'
 })
 export default class extends Vue {
-    @Prop({ type: Object }) paginationList: Pagination
+    @Prop({ type: Object, default: {} }) paginationList ?: Pagination
 
-    @Emit('currentPage')
-    currentPage(val: number) {
+    @Emit('handleCurrentChange')
+    handleCurrentChange(val: number) {
         return val
     }
+    @Emit('handleSizeChange')
+    handleSizeChange(val:number) {
+        console.log(val)
+    }
 }
 </script>
 

+ 1 - 0
src/components/public/adm-search.vue

@@ -15,6 +15,7 @@ import { Vue, Component, Emit } from "vue-property-decorator";
     name: 'adm-search'
 })
 export default class extends Vue {
+    // 搜索内容
     private input = ''
 
     @Emit('SearchValue')

+ 0 - 53
src/components/public/adm-select.vue

@@ -1,53 +0,0 @@
-<template>
-    <el-select
-        v-model="value"
-        placeholder="请选择"
-        @change="handleFilter"
-        clearable
-        filterable
-        class="adm-select"
-    >
-        <el-option
-            v-for="item in sortOptions"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-
-        />
-    </el-select>
-</template>
-
-<script lang="ts">
-import { Vue, Component, Emit } from "vue-property-decorator";
-@Component({
-    name: 'adm-select'
-})
-export default class extends Vue {
-    private value = ''
-    private sortOptions = [{
-        value: '选项1',
-        label: '黄金糕'
-    }, {
-        value: '选项2',
-        label: '双皮奶'
-    }, {
-        value: '选项3',
-        label: '蚵仔煎'
-    }, {
-        value: '选项4',
-        label: '龙须面'
-    }, {
-        value: '选项5',
-        label: '北京烤鸭'
-    }]
-
-    @Emit('selectValue')
-    private handleFilter() {
-        return this.value
-    }
-}
-</script>
-
-<style scoped>
-
-</style>

+ 2 - 1
src/components/public/adm-statistics.vue

@@ -16,7 +16,8 @@ import { Vue, Component, Prop } from "vue-property-decorator";
     name: "adm-statistics"
 })
 export default class extends Vue {
-    @Prop({ type: Object }) statisticsMsg: Statistics;
+    // 统计文字,总数
+    @Prop({ type: Object, default: {} }) statisticsMsg ?: Statistics;
 }
 </script>
 

+ 0 - 28
src/components/public/adm-tabs.vue

@@ -1,28 +0,0 @@
-<template>
-    <el-tabs class="adm-tabs" v-model="activeName" type="card" @tab-click="handleClick">
-        <el-tab-pane v-for="(item,index) in paneMsg" :key="index" :label="item" :name="index.toString()"></el-tab-pane>
-    </el-tabs>
-</template>
-<script lang="ts">
-interface Pane {
-    [index: number]: number
-}
-
-import { Vue, Component, Prop, Emit } from "vue-property-decorator";
-@Component({
-    name: 'adm-tabs'
-})
-export default class extends Vue {
-    private activeName = '0'
-    @Prop({ type: Array }) paneMsg?: Pane
-
-    @Emit('paneValue')
-    private handleClick(tab:any) {
-        return tab.index
-    }
-}
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 8
src/icons/README.md

@@ -1,13 +1,5 @@
 # vue-svgicon
 
-## English
-
-* All svg components were generated by `vue-svgicon` using svg files
-* After you adding new svg files into `icons/svg` folder, run `yarn svg` to regerenrate all svg components (before this, you should have `vue-svgicon` installed globally or use `npx`)
-* See details at: [https://github.com/MMF-FE/vue-svgicon](https://github.com/MMF-FE/vue-svgicon)
-
-## 中文
-
 * 所有的 svg 组件都是由 `vue-svgicon` 生成的
 * 每当在 `icons/svg` 文件夹内添加 icon 之后,可以通过执行 `yarn svg` 来重新生成所有组件 (在此之前需要全局安装 `vue-svgicon` 或使用 `npx`)
 * 详细文档请见:[https://github.com/MMF-FE/vue-svgicon](https://github.com/MMF-FE/vue-svgicon)

+ 1 - 0
src/icons/components/index.ts

@@ -11,3 +11,4 @@ import './password'
 import './table'
 import './tree'
 import './user'
+import './void'

文件差異過大導致無法顯示
+ 112 - 0
src/icons/components/void.ts


文件差異過大導致無法顯示
+ 104 - 0
src/icons/svg/void.svg


+ 2 - 3
src/views/maintain/components/index.ts

@@ -1,7 +1,6 @@
-export { default as AdmSelect } from "@/components/public/adm-select.vue"
 export { default as AdmSearch } from "@/components/public/adm-search.vue"
-export { default as AdmBtn } from "@/components/public/adm-btn.vue"
-export { default as AdmTabs } from "@/components/public/adm-tabs.vue"
 export { default as AdmMultiTable } from "@/components/public/adm-multi-table.vue"
 export { default as Statistics } from "@/components/public/adm-statistics.vue"
+export { default as Pagination } from "@/components/public/adm-pagination.vue"
+export { default as dataForm } from "@/components/business/dataForm.vue"
 

+ 355 - 76
src/views/maintain/device/index.vue

@@ -2,114 +2,393 @@
     <div class="adm-device">
         <statistics :statistics-msg="statisticsMsg"/>
         <div class="operation">
-            <admSelect @selectValue="selectValue"/>
+            <el-select
+                v-model="deviceType"
+                placeholder="请选择"
+                @change="handleFilter"
+                clearable
+                filterable
+                class="adm-select"
+            >
+                <el-option
+                    v-for="item in list"
+                    :key="item.code"
+                    :label="item.name"
+                    :value="item.code"
+
+                />
+            </el-select>
             <admSearch @SearchValue="SearchValue"/>
-            <admBtn :btnMsg="btnMsg"/>
+            <el-button type="default" @click="addDevice" class="adm-btn">添加设备</el-button>
         </div>
         <div class="hr"></div>
         <div class="content">
-            <admTabs :paneMsg="paneMsg" @paneValue="paneValue"/>
+            <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
+                <el-tab-pane v-for="(item,index) in paneMsg" :key="index" :label="item" :name="index.toString()"/>
+            </el-tabs>
             <div class="table">
-                <admMultiTable/>
+                <template v-if="deviceType">
+                    <admMultiTable :currentHeader="currentHeader" :tableData="tableData" :headersStage="headersStage"/>
+                    <Pagination :paginationList="paginationList" @currentPage="currentPage"
+                                @handleSizeChange="handleSizeChange"/>
+                </template>
+                <div v-else class="void align">
+                    <svg-icon name="void" :width="String(120)" :height="String(123)"/>
+                    <p class="void-title">暂无内容</p>
+                    <p class="void-tips">可点击左上角选择设备类型</p>
+                </div>
             </div>
         </div>
+        <!--        添加/编辑 设备-->
+        <el-dialog
+            :title="deviceMsg"
+            :visible.sync="dialogVisible"
+            @close="close"
+        >
+            <template v-if="next">
+                <div class="align" style="height: 400px">
+                    <span class="text ">设备类别</span>
+                    <el-select
+                        v-model="deviceVal"
+                        placeholder="请选择"
+                        clearable
+                        filterable
+                    >
+                        <el-option
+                            v-for="item in list"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value"
+
+                        />
+                    </el-select>
+                </div>
+                <el-button type="primary" class="fr" @click="handleNext">下一步</el-button>
+            </template>
+            <template v-else-if="displayLocation && deviceVal">
+                <el-button type="primary" class="fr ml-10">保存</el-button>
+                <el-button type="default" class="fr ml-10">取消</el-button>
+                <el-button type="default" class="fr ml-10">重置</el-button>
+            </template>
+            <template v-else>
+                <dataForm/>
+                <el-button type="primary" class="fr ml-10">确定</el-button>
+                <el-button type="default" class="fr" @click="handlePosition">维护位置</el-button>
+            </template>
+        </el-dialog>
     </div>
 </template>
 <script lang="ts">
-import { Vue, Component } from "vue-property-decorator";
-import { Statistics, AdmSelect, AdmSearch, AdmBtn, AdmTabs, AdmMultiTable } from '../components/index'
-
-@Component({
-    name: 'adm-device',
-    components: { Statistics, AdmSelect, AdmSearch, AdmBtn, AdmTabs, AdmMultiTable }
-})
-export default class extends Vue {
-    private statisticsMsg = {
-        title: '全部设备',
-        total: 234
+    import {Vue, Component} from "vue-property-decorator";
+    import {Statistics, AdmSearch, AdmMultiTable, Pagination, dataForm} from '../components/index'
+    import {dictType, dictInfo} from "@/api/equipComponent";
+    import {queryEquip} from "@/api/datacenter";
+    import {UserModule} from "@/store/modules/user";
+    import it from "element-ui/src/locale/lang/it";
+    import th from "element-ui/src/locale/lang/th";
+
+    @Component({
+        name: 'adm-device',
+        components: {Statistics, AdmSearch, AdmMultiTable, Pagination, dataForm}
+    })
+    export default class extends Vue {
+        private statisticsMsg = {
+            title: '全部设备',
+            total: 234
 
-    }
-    private btnMsg = {
-        type: 'default',
-        title: '添加设备'
-    }
-    private paneMsg = ['设计阶段维护', '施工阶段维护', '运维阶段维护']
-
-// 维护阶段 tabs
-    paneValue(val: number) {
-        console.log(val)
-        switch (val) {
-            case 0:
-                break;
-            case 1:
-                break;
-            case 2:
-                break;
-            default:
         }
-    }
+        // 设备类值
+        deviceType = ''
+        deviceVal = ''
+        // 维护位置
+        displayLocation = false
+        // 表头信息集合
+        headerInformation = {}
+        // 表头阶段信息结合
+        headersStage = {}
+        all = []
+        // 设备信息
+        private deviceInformation = []
+        // 下拉数据
+        list = []
+        private dialogVisible = false
+        private paneMsg = ['设计阶段维护', '施工阶段维护', '运维阶段维护']
+        private activeName = ""
+        private paginationList = {
+            page: 1,
+            size: 50,
+            sizes: [10, 30, 50, 100, 150, 200],
+            total: 0
+        }
+        // 下一步
+        private next = true
+        private deviceMsg = '添加设备'
+        private currentHeader = this.paneMsg[0]
+        private tableData = [
+            {
+                date: '2016-05-03',
+                name: '王小虎',
+                province: '上海',
+                city: '普陀区',
+                address: '上海市普陀区金沙江路 1518 弄',
+                zip: 200333
+            }]
 
-    //设备类筛选
-    selectValue(val: string) {
-        console.log(val)
+        private get projectId(): string {
+            return UserModule.projectId
+        }
 
-    }
+        created() {
+            this.deviceList()
+        }
 
-// 搜索
-    SearchValue(val: string) {
-        console.log(val)
-    }
-}
-</script>
-<style lang="scss" scoped>
-$margin: 12px;
-.adm-device {
-    background: #fff;
-    padding: 12px;
-    height: 100%;
+// 设备类数据
+        deviceList() {
+            let param2 = {
+                distinct: true,
+                pageNumber: 1,
+                pageSize: 1000,
+                // projection: ["classCode"],
+                projectId: this.projectId
+            }
+            let promise = new Promise(resolve => {
+                dictType({}).then(res => {
+                    resolve(res)
+                })
+            })
+            let promise2 = new Promise(resolve => {
+                queryEquip(param2).then(res => {
+                    resolve(res)
+                })
+            })
+            Promise.all([promise, promise2]).then((res) => {
+                let allData = res[0].content;
+                this.deviceInformation = res[1].content
+                allData.filter(item => (this.deviceInformation.indexOf(item.code) > -1))
+                this.list = allData
+            })
+        }
+
+        private handleFilter(val) {
+            if (val) {
+                let param = {
+                    category: val
+                }
+                let param2 = {
+                    filters: val ? `classCode='${val}'` : undefined,
+                    pageNumber: this.paginationList.page,
+                    pageSize: this.paginationList.size,
+                    orders: "createTime desc, id asc",
+                }
+                let promise = new Promise(resolve => {
+                    dictInfo(param).then(res => {
+                        resolve(res)
+                    })
+                })
+                let promise2 = new Promise(resolve => {
+                    queryEquip(param2).then(res => {
+                        resolve(res)
+                    })
+                })
+                Promise.all([promise, promise2]).then(res => {
+                    // 类型下信息点,默认设计阶段
+                    this.headerInformation = res[0] // 获取表头
+                    this.headerStage()
+                    this.paginationList.total = res[1].total
+                    this.tableData = res[1].content.map(item => {
+                    // todo 列表信息展示
+                    })
+                })
+            } else {
+                this.headerInformation = {}
+            }
+        }
 
-    .operation {
-        margin: 12px 0;
+        headerStage() {
+            let header = []
+            if (Object.keys(this.headerInformation).length > 1) {
+                this.headerInformation.dictStages.forEach(item => {
+                    if (this.currentHeader == item.name) {
+                        item.infos && item.infos.forEach(val => header.push(val))
+                    }
+                })
+            }
+            this.headersStage = {
+                basicInfos: this.headerInformation.basicInfos,
+                dictStages: header
+            }
+            this.all = [...this.headersStage.basicInfos, ...this.headersStage.dictStages]
 
-        .adm-select {
-            margin-right: $margin;
         }
 
-        .adm-btn {
-            float: right;
+        // 维护阶段 tabs
+        handleClick(val: any) {
+            console.log(val)
+            this.currentHeader = val.label
+            this.headerStage()
         }
 
-    }
+        //设备类筛选
+        selectValue(val: string) {
+            console.log(val, 3)
 
-    .hr {
-        background: #E1E7EA;
-        color: #E1E7EA;
-        width: 100%;
-        height: 1px;
-        margin-bottom: 16px;
+        }
+
+        // 搜索
+        SearchValue(val: string) {
+            console.log(val)
+        }
+
+        // 当前分页
+        currentPage(val: number) {
+            console.log(val)
+            this.paginationList.page = val
+            this.handleFilter(this.deviceType)
+        }
+
+        handleSizeChange(val: number) {
+            this.paginationList.size = val
+            console.log(val)
+            this.handleFilter(this.deviceType)
+        }
+
+        // 添加设备
+        addDevice() {
+            this.dialogVisible = true
+        }
+
+        //下一步事件
+        handleNext() {
+            if (this.deviceVal) {
+                this.next = false
+            }
+        }
+
+        // 维护位置
+        handlePosition() {
+            this.displayLocation = true
+        }
+
+        // close
+        close() {
+            this.next = true
+            this.displayLocation = false
+        }
+    }
+</script>
+<style lang="scss" scoped>
+    $margin: 12px;
+    $border: 1px solid #E1E7EA;
+    .align {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        flex-direction: column;
+        flex-wrap: wrap;
     }
 
-    .content {
+    .adm-device {
+        background: #fff;
+        padding: 12px;
         height: 100%;
 
-        .table {
-            border-left: 1px solid #E1E7EA;
-            border-right: 1px solid #E1E7EA;
-            border-bottom: 1px solid #E1E7EA;
-            height: calc(100% - 180px);
-            padding: 12px;
-        }
+        .operation {
+            margin: 12px 0;
+
+            .adm-select {
+                margin-right: $margin;
 
-        .adm-multi-table {
+            }
+
+            .adm-btn {
+                float: right;
+            }
 
         }
 
+        .hr {
+            background: #E1E7EA;
+            color: #E1E7EA;
+            width: 100%;
+            height: 1px;
+            margin-bottom: 16px;
+        }
+
+        .content {
+            height: 100%;
+
+            .table {
+                border-left: $border;
+                border-right: $border;
+                border-bottom: $border;
+                height: calc(100% - 180px);
+                padding: 12px;
+
+                .void {
+
+                    margin-top: 200px;
+                }
 
+                .void-title {
+                    color: #333333;
+                    line-height: 21px;
+                    font-size: 16px;
+                }
+
+                .void-tips {
+                    color: #9CA1A9;
+                    line-height: 22px;
+                    font-size: 14px;
+                }
+            }
+
+            .adm-multi-table {
+
+            }
+
+
+        }
+
+        .adm-pagination {
+            right: 40px;
+            position: absolute;
+            bottom: 30px;
+        }
     }
-}
+
 </style>
 <style>
-.el-tabs__header {
-    margin: 0;
-}
+    .data-form {
+        height: 430px;
+    }
+
+    .text {
+        color: #000000;
+        margin-bottom: 10px;
+
+    }
+
+    .el-tabs__header {
+        margin: 0;
+    }
+
+    .el-dialog__header {
+        border-bottom: 1px solid #D8D8D8;
+    }
+
+    .fl {
+        float: left;
+    }
+
+    .fr {
+        float: right;
+    }
+
+    .el-dialog__body {
+        overflow: hidden;
+    }
+
+    .ml-10 {
+        margin-left: 10px;
+    }
 </style>

+ 2 - 2
src/views/maintain/space/components/spaceGraph.vue

@@ -59,7 +59,7 @@
 import { Vue, Component, Watch } from "vue-property-decorator";
 import { FloorView } from "@/utils/graph/FloorView";
 import { FloorScene } from "@/utils/graph/FloorScene";
-import canvasFun from "./canvasFun";
+import canvasFun from "./canvasFun.vue";
 
 @Component({
     components: { canvasFun },
@@ -349,4 +349,4 @@ export default class spaceGraph extends Vue {
         }
     }
 }
-</style>
+</style>

+ 1 - 1
src/views/maintain/space/index.vue

@@ -29,7 +29,7 @@
 import { Vue, Component, Watch } from "vue-property-decorator";
 import Bus from "@/utils/bus";
 import { Statistics, AdmSearch, AdmMultiTable } from "../components/index";
-import spaceGraph from "./components/spaceGraph";
+import spaceGraph from "./components/spaceGraph.vue";
 @Component({
     name: "space-index",
     components: { Statistics, AdmSearch, AdmMultiTable, spaceGraph },

+ 0 - 8
src/views/project/index.vue

@@ -26,14 +26,6 @@ export default class extends Vue {
     get roles() {
         return UserModule.roles;
     }
-
-    selectValue(val: string) {
-        console.log(val)
-    }
-
-    SearchValue(val: string) {
-        console.log(val)
-    }
 }
 </script>