linan 5 роки тому
батько
коміт
04cc7bdc65

src/API接口设计稿.docx → API接口设计稿.docx


+ 9 - 1
src/router/routes.js

@@ -6,6 +6,9 @@ import DeviceType from '../views/deviceManagement/DeviceType.vue'
 import DeviceInfo from '../views/deviceManagement/DeviceInfo.vue'
 import SubDeviceAdmin from '../views/deviceManagement/SubDeviceAdmin.vue'
 import Ad from '../views/deviceManagement/Ad.vue'
+
+import AreaInfo from '../views/areaManagement/AreaInfo.vue'
+
 export default [
   {
     path: '/about',
@@ -36,7 +39,12 @@ export default [
 				path: '/home1_4',
 				name: 'home1_4',
 				component: Ad
-			}
+			},
+			{
+				path: '/areaInfo',
+				name: 'areaInfo',
+				component: AreaInfo
+			},
 		]
 	},
 ]

+ 2 - 1
src/sdk/index.js

@@ -207,9 +207,10 @@ class SDK {
 		if (!params.api) throw new Error("api没有设置")
 	}
 	completeSDK(e, params) {
-		console.log('completeSDK-------')
+		console.log('----------------------------completeSDK----------------------------')
 		console.log(e)
 		console.log(params)
+		console.log('----------------------------completeSDK end----------------------------')
 		// setTimeout(()=>{
 		//   Loading.service().close()
 		// },500)

+ 2 - 0
src/views/Home/Home.vue

@@ -61,6 +61,7 @@
                                 <template slot="title">
                                     <i :class="item.iconClassName"></i>
                                     <span slot="title">{{ !menuCollapse? item.oneMenuName : '' }}</span>
+                                    <!-- <span slot="title">{{ item.oneMenuName }}</span> -->
                                 </template>
                                 <el-menu-item
                                     v-for="(item1) in item.childList"
@@ -79,6 +80,7 @@
                             >
                                 <i :class="item.iconClassName"></i>
                                 <span slot="title">{{ !menuCollapse? item.oneMenuName : '' }}</span>
+                                <!-- <span slot="title">{{ item.oneMenuName}}</span> -->
                             </el-menu-item>
                         </div>
                     </el-menu>

+ 17 - 5
src/views/Home/mencCofig.js

@@ -3,7 +3,7 @@ export const menuData = [
     // 有子菜单 字菜单不分组的
     {
         oneMenuName: "设备管理",
-        iconClassName: "el-icon-menu",
+        iconClassName: "el-icon-monitor",
         index: '1',
         disabled: false, // 是否禁用
         childList: [ // 不分组的
@@ -29,13 +29,25 @@ export const menuData = [
             }
         ]
     },
-    // 无子菜单的
     {
-        oneMenuName: "导航二",
-        iconClassName: "el-icon-document",
+        oneMenuName: "区域管理",
+        iconClassName: "el-icon-s-flag",
         routerName: "home2",
         index: '2',
-        disabled: false
+        disabled: false,
+        childList: [ // 不分组的
+            {
+                optionName: '区域信息',
+                index: '2-1',
+                routerName: "areaInfo"
+            },
+            
+            {
+                optionName: '选项2',
+                index: '2-2',
+                routerName: "home1_4"
+            }
+        ]
     },
     // 无子菜单的
     {

+ 199 - 0
src/views/areaManagement/AreaInfo.vue

@@ -0,0 +1,199 @@
+
+
+<template>
+    <div class="AreaInfo">
+        <el-button size="mini" type="primary" @click="isShowDialog=true">添加区域信息</el-button>
+
+        <el-tree
+            class="filter-tree"
+            :data="areaInfoTree"
+            :props="defaultProps"
+            @node-contextmenu="mouseRightCilck"
+            ref="tree"
+            slot="reference"
+        ></el-tree>
+
+        <el-dialog title="添加区域信息" :visible.sync="isShowDialog" append-to-body>
+            <el-form :model="formData" label-width="100px">
+                <el-form-item label="所属区域:" >
+                    <el-cascader
+                        :options="areaInfoTree"
+                        :props="{ children: 'children', label: 'name' ,value:'id'}"
+                        @expand-change="handleChange"
+                        @change="change"
+                        placeholder="请选择/不选择默认根级"
+                    ></el-cascader>
+
+                    <!-- <el-select v-model="formData.area" placeholder="请选择所属区域">
+                        <el-option label="区域一" value="1"></el-option>
+                    </el-select>-->
+                    <el-popconfirm
+                        title="删除此区域信息?"
+                        @onConfirm="onConfirmDelAll"
+                        @onCancel="onConfirmDel"
+                        confirmButtonText="全部删除"
+                        cancelButtonText="不删除所属区域"
+                    >
+                        <el-button type="primary" slot="reference">删除此区域</el-button>
+                    </el-popconfirm>
+                </el-form-item>
+
+                <el-form-item label="区域名字:">
+                    <el-input v-model="formData.name" placeholder="请填写区域名字"></el-input>
+                </el-form-item>
+                <el-form-item label="组织id:">
+                    <el-select v-model="formData.orgId" placeholder="请选择所属组织" disabled>
+                        <el-option label="组织一" value="1"></el-option>
+                    </el-select>
+                </el-form-item>
+
+                <el-form-item>
+                    <el-button @click="isShowDialog=false">取 消</el-button>
+                    <el-button type="primary" @click="addAreaInfo">添 加</el-button>
+                </el-form-item>
+            </el-form>
+        </el-dialog>
+    </div>
+</template>
+<script>
+import { mapActions } from "vuex";
+
+export default {
+    name: "AreaInfo",
+    data() {
+        return {
+            isShowDialog: false,
+            selectArr: [],
+            selectList: [],
+            formData: {
+                parentId: "-1",
+                name: "",
+                orgId: "1"
+            },
+            areaInfoTree: [], // tree 数据
+            selectedItem: null,
+            // tree配置选项
+            defaultProps: { children: "children", label: "name" }
+        };
+    },
+    mounted() {
+        this.loadTypes();
+    },
+    watch: {},
+    methods: {
+        ...mapActions(["fetch"]),
+        // 加载所有场地信息列表
+        loadTypes() {
+            this.fetch({
+                api: "/core/organize-structure/list",
+                method: "GET",
+                data: { orgId: 1 },
+                success: res => {
+                    this.areaInfoTree = this.findTypesByid(res, -1);
+                },
+                fail: err => {
+                    console.log(err);
+                    if (err.errMsg) this.$message.error(err.errMsg);
+                    else this.$message.error("服务器发生异常");
+                }
+            });
+        },
+        // loadTypes 函数的工具函数
+        findTypesByid(resArr, pid) {
+            let temArr = [];
+            resArr.forEach(item => {
+                if (item.parentId == pid) {
+                    temArr.push(item);
+                    item.children = this.findTypesByid(resArr, item.id);
+                }
+            });
+            if (temArr.length > 0) return temArr;
+        },
+
+        // 树形节点 鼠标右键点击事件
+        mouseRightCilck(event, data, Node, me) {
+            console.log(data);
+        },
+
+        // 级联选择器点击事件
+        handleChange(value) {
+            console.log(value);
+            this.formData.parentId = value[value.length - 1];
+            console.log("a==>>" + this.formData.parentId);
+        },
+        change(value) {
+            console.log("aa");
+            console.log(value);
+            this.formData.parentId = value[value.length - 1];
+            console.log("a==>>" + this.formData.parentId);
+        },
+
+        // 保存区域信息
+        addAreaInfo(e) {
+            console.log(this.formData);
+            this.fetch({
+                api: "/core/organize-structure/add",
+                method: "POST",
+                data: this.formData,
+                success: res => {
+                    console.log(res);
+                    this.$message.success("保存成功");
+                    // 加载所有场地信息列表
+                    loadTypes();
+                },
+                fail: err => {
+                    console.log(err);
+                    if (err.errMsg) this.$message.error(err.errMsg);
+                    else this.$message.error("服务器发生异常");
+                }
+            });
+        },
+        // 删除区域信息(删除子节点)
+        onConfirmDelAll() {
+            console.log("删除区域信息(删除子节点)");
+            const url = "/core/organize-structure/delete-refer";
+            const id = this.formData.parentId;
+            if (id) {
+                this.doDel(url, id);
+            } else {
+                this.$message.fail("没有选择对应要删除的区域");
+            }
+        },
+        // 删除区域信息(不删除子节点)
+        onConfirmDel() {
+            console.log("删除区域信息(不删除子节点)");
+            const url = "/core/organize-structure/delete";
+            const id = this.formData.parentId;
+            if (id) {
+                this.doDel(url, id);
+            } else {
+                this.$message.fail("没有选择对应要删除的区域");
+            }
+        },
+        // 删除区域信息 总函数
+        doDel(url, id) {
+            console.log("ID===>>>" + id);
+            this.fetch({
+                api: url,
+                method: "POST",
+                data: { id },
+                success: res => {
+                    console.log(res);
+                    this.$message.success("删除区域信息成功!");
+                    // 加载所有场地信息列表
+                    this.loadTypes();
+                },
+                fail: err => {
+                    console.log(err);
+                    if (err.errMsg) this.$message.error(err.errMsg);
+                    else this.$message.error("服务器发生异常");
+                }
+            });
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+</style>
+

+ 27 - 5
src/views/deviceManagement/Ad.vue

@@ -1,11 +1,33 @@
 <template>
-  <div class="Ad">
-    <h1>Ad dddddddddddddddddddd</h1>
-  </div>
+    <div class="Ad">
+        <h1>Ad dddddddddddddddddddd</h1>
+    </div>
 </template>
 <script>
+import { mapActions } from "vuex";
+
 export default {
-  name: 'Ad'
-}
+    name: "Ad",
+    data() {
+        return {};
+    },
+    created() {},
+    methods: {
+		...mapActions(["fetch"]),
+		doAreaInfo() {
+            this.fetch({
+                api: "/organize-structure/list",
+                method: "GET",
+                data: {
+                    
+                },
+                success: res => {
+                    console.log(res)
+                    // this.subDeviceList = res;
+                }
+            });
+        }
+    }
+};
 </script>
 

+ 10 - 0
src/views/deviceManagement/DeviceInfo.vue

@@ -177,6 +177,16 @@ export default {
                 success: res => {
                     console.log(res);
                     this.deviceList = res;
+                },
+                fail: err => {
+                    console.log("555");
+                    if (err.errCode == "request_not_authorize") {
+                        this.$message({
+                            message: "请重新登录",
+                            type: "warning"
+                        });
+                    }
+                    console.log(err);
                 }
             });
         },

+ 35 - 19
src/views/deviceManagement/SubDeviceAdmin.vue

@@ -9,7 +9,7 @@
 
         <el-table :data="subDeviceList" style="width: 100%">
             <el-table-column prop="id" label="序号"></el-table-column>
-            <el-table-column prop="communicationId" label="通讯序号"></el-table-column>
+            <el-table-column prop="communicationId" label="通讯ID"></el-table-column>
             <el-table-column prop="deviceNo" label="型号"></el-table-column>
             <el-table-column prop="channelNo" label="通道"></el-table-column>
             <el-table-column label="最后一次">
@@ -30,33 +30,33 @@
 
         <!-- 添加子设备信息 -->
         <el-dialog title="添加/编辑子设备信息" :visible.sync="showAddSubDevice">
-            <el-form ref="form" :model="form" label-width="80px">
-                <el-form-item label="设备型号">
+            <el-form ref="form" :model="form" label-width="100px">
+                <el-form-item label="设备型号:">
                     <el-input v-model="form.deviceNo"></el-input>
                 </el-form-item>
-                <el-form-item label="通讯序号">
+                <el-form-item label="通讯ID:">
                     <el-input v-model="form.communicationId"></el-input>
                 </el-form-item>
-                <el-form-item label="通道">
+                <el-form-item label="通道:">
                     <el-input v-model="form.channelNo"></el-input>
                 </el-form-item>
                 <!-- <el-form-item label="硬件型号">
                     <el-input v-model="form.hardTypeId"></el-input>
-                </el-form-item> -->
-                <el-form-item label="硬件型号">
-                    <el-select v-model="form.hardTypeId" placeholder="请选择活动区域">
-                        <el-option label="区域一" value="shanghai"></el-option>
-                        <el-option label="区域二" value="beijing"></el-option>
-                    </el-select>
+                </el-form-item>-->
+                <el-form-item label="硬件型号:">
+					<el-input v-model="form.hardTypeId"></el-input>
                 </el-form-item>
-                
-                <el-form-item label="设备是否可用">
-                    <el-input v-model="form.enable"></el-input>
+
+                <el-form-item label="设备是否可用:">
+                    <el-radio-group v-model="form.enable">
+                        <el-radio :label="1">可用</el-radio>
+                        <el-radio :label="0">不可用</el-radio>
+                    </el-radio-group>
                 </el-form-item>
 
                 <el-form-item>
                     <el-button type="primary" @click="addSubDevice">立即创建</el-button>
-                    <el-button>取消</el-button>
+                    <el-button @click="onCancel">取消</el-button>
                 </el-form-item>
             </el-form>
         </el-dialog>
@@ -74,10 +74,10 @@ export default {
             showAddSubDevice: false,
             form: {
                 deviceNo: "",
-				communicationId: null,
-				channelNo: "",
-				hardTypeId: null,
-				enable: 0
+                communicationId: null,
+                channelNo: "",
+                hardTypeId: null,
+                enable: 1
             }
         };
     },
@@ -116,6 +116,22 @@ export default {
         // 保存 添加子设备信息
         addSubDevice() {
             console.log("保存 添加子设备信息", this.form);
+            console.log(this.form);
+            this.fetch({
+                api: "/device/device-slave/add",
+                method: "Post",
+                data: this.form,
+                success: res => {
+                    console.log(res);
+                    this.$message({
+                        message: "添加子设备信息成功",
+                        type: "success"
+                    });
+                }
+            });
+        },
+        onCancel() {
+            this.showAddSubDevice = false;
         },
 
         goBack() {

+ 15 - 0
vue.config.js

@@ -12,5 +12,20 @@ module.exports = {
         './src/assets/css/reset.scss'
       ]
     }
+  },
+  devServer: {
+    proxy: {
+      '/api': {                //这里最好有一个 /
+        target: 'http://115.238.57.190:8010',         // 服务器端接口地址
+        ws: true,            //如果要代理 websockets,配置这个参数
+        // 如果是https接口,需要配置这个参数
+        changeOrigin: true,  //是否跨域
+        pathRewrite: {
+          '^/api': ''
+        }
+
+      }
+    }
+
   }
 }

BIN
~$I接口设计稿.docx