Selaa lähdekoodia

Merge branch 'develop' of http://39.106.8.246:3003/web/wanda-bm-guide into develop

zhangyu 4 vuotta sitten
vanhempi
commit
40a611a29e

+ 2 - 2
package.json

@@ -9,9 +9,9 @@
     },
     "dependencies": {
         "@saga-web/base": "2.1.22",
-        "@saga-web/big": "1.0.64",
+        "@saga-web/big": "1.0.66",
         "@saga-web/draw": "2.1.100",
-        "@saga-web/feng-map": "1.0.15",
+        "@saga-web/feng-map": "1.0.17",
         "@saga-web/graph": "2.1.101",
         "ant-design-vue": "^1.4.10",
         "axios": "^0.19.2",

+ 0 - 5
src/api/httputils.js

@@ -22,11 +22,6 @@ axiosservice.interceptors.request.use(
         config.withCredentials = true // 允许携带token ,这个是解决跨域产生的相关问题
         let token = store.getters['ssoToken']
         let isPreview = store.getters["isPreview"]
-        // if (token) {
-        //     config.headers = {
-        //         'sso-token': token,
-        //     }
-        // }
         if (config.url.indexOf('mapapp') < 0) {
             config.headers = {
                 "sso-token": token,

+ 1 - 1
src/components/404.vue

@@ -3,7 +3,7 @@
         <div class='not-img'>
             <img src='@/assets/imgs/dlsb.png' alt />
         </div>
-        <div class='not-text' v-if='!isPermissions'>
+        <div class='not-text' v-if='isPermissions'>
             <span>您的权限不足……</span>
             <span>建议您联系管理员开通管理说明书相关权限</span>
         </div>

+ 1 - 1
src/components/Legend/src/legend.vue

@@ -379,7 +379,7 @@ export default {
                 this.isShow2()
             } else {
                 this.isShow2()
-                this.queryEditNum(this.editSwitch)
+                this.queryEditNum(true)
             }
             this.show2 = true
         },

+ 21 - 20
src/components/floorMap/index.vue

@@ -41,7 +41,7 @@ export default {
             floorid: '', //楼层id
             topologyParser: null, // 解析器数据
             fParser: null, // 底图解析器
-            wellMap: {}, // 电井控制商铺映射
+            wellMap: {} // 电井控制商铺映射
         }
     },
     props: {
@@ -204,14 +204,15 @@ export default {
                 let selectItem1 = ev[0][0],
                     name = selectItem1.data.Name,
                     location = selectItem1.data.AttachObjectIds[0] ? selectItem1.data.AttachObjectIds[0].id : ''
-                if (!location) {
-                    this.$message('未添加位置类型')
-                }
-                if (name.slice(name.length - 2, name.length) == '机房' && location) {
-                    this.$refs.boxRoom.open({ name: name, type: this.type, location: location })
+                if (name.slice(name.length - 2, name.length) == '机房') {
+                    if (location) {
+                        this.$refs.boxRoom.open({ name: name, type: this.type, location: location })
+                    } else {
+                        this.$message('未添加位置类型')
+                    }
                 }
                 // 选中电井设置电井关联的商铺高亮
-                this.setHightLight(ev[0]);
+                this.setHightLight(ev[0])
             } else {
                 this.clearHightLight()
             }
@@ -223,10 +224,10 @@ export default {
                 let location = item.data.AttachObjectIds[0] ? item.data.AttachObjectIds[0].id : ''
                 // 添加了位置类型并且选中的类型为电井类型
                 if (
-                    (item.data.GraphElementId == "100050" ||
-                    item.data.GraphElementId == "100055" ||
-                    item.data.GraphElementId == "100056" ||
-                    item.data.GraphElementId == "100057") &&
+                    (item.data.GraphElementId == '100050' ||
+                        item.data.GraphElementId == '100055' ||
+                        item.data.GraphElementId == '100056' ||
+                        item.data.GraphElementId == '100057') &&
                     location
                 ) {
                     if (this.wellMap.hasOwnProperty(location)) {
@@ -238,17 +239,17 @@ export default {
                         let getParams = {
                             plazaId: this.plazaId,
                             floor: this.floorid,
-                            keyword: `${location}:wellnum;`,
+                            keyword: `${location}:wellnum;`
                         }
-                        queryShops({getParams}).then(res => {
-                            let shopsnumList = [];
-                            let shopsnumItemList = [];
+                        queryShops({ getParams }).then(res => {
+                            let shopsnumList = []
+                            let shopsnumItemList = []
                             if (res.data && res.data.length) {
-                                for(let floor in res.data[0]) {
+                                for (let floor in res.data[0]) {
                                     if (res.data[0][floor].length) {
                                         res.data[0][floor].forEach(v => {
-                                            shopsnumList = shopsnumList.concat(v.shopsnumList.split(","))
-                                        }) 
+                                            shopsnumList = shopsnumList.concat(v.shopsnumList.split(','))
+                                        })
                                     }
                                 }
                             }
@@ -259,7 +260,7 @@ export default {
                                         item.zOrder = 30
                                         shopsnumItemList.push(item)
                                     }
-                                });
+                                })
                                 this.wellMap[location] = shopsnumItemList
                             }
                         })
@@ -269,7 +270,7 @@ export default {
         },
         // 清除电井关联商铺的高亮状态
         clearHightLight() {
-            for(let key in this.wellMap) {
+            for (let key in this.wellMap) {
                 this.wellMap[key].forEach(item => {
                     item.highLightFlag = false
                     item.zOrder = ItemOrder.spaceOrder

+ 1 - 1
src/components/menuList.vue

@@ -5,7 +5,7 @@
             <div class='downright'></div>
             <div class='home-box'>
                 <img src='@/assets/imgs/logo.png' alt />
-                <span>{{plazas.length>0?formatter(plazaId,plazas):'--'}}</span>
+                <span v-if="plazas">{{plazas.length>0?formatter(plazaId,plazas):'--'}}</span>
             </div>
         </div>
         <div>

+ 61 - 50
src/main.js

@@ -1,55 +1,66 @@
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
-    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
-    return new (P || (P = Promise))(function (resolve, reject) {
-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
-        step((generator = generator.apply(thisArg, _arguments || [])).next());
-    });
-};
-import Vue from 'vue';
-import App from './App.vue';
-import router from './router';
-import store from './store';
-Vue.config.productionTip = false;
-import design from 'ant-design-vue';
-import 'ant-design-vue/dist/antd.css';
-Vue.use(design);
-import ElementUI from 'element-ui';
-import 'element-ui/lib/theme-chalk/index.css';
-Vue.use(ElementUI);
-import VueQuillEditor from 'vue-quill-editor';
-import 'quill/dist/quill.core.css';
-import 'quill/dist/quill.snow.css';
-import 'quill/dist/quill.bubble.css';
-Vue.use(VueQuillEditor);
-import WdEditor from '@/components/Editor';
-Vue.use(WdEditor);
-import Rotation from '@/components/Rotation';
-Vue.use(Rotation);
-import PicLarge from '@/components/PicLarge';
-Vue.use(PicLarge);
-import Legend from '@/components/Legend';
-Vue.use(Legend);
-import cookies from 'vue-cookie';
-Vue.use(cookies);
-import Pui from 'meri-design';
-import 'meri-design/dist/index.css';
-Vue.use(Pui);
-//////////模拟传入参数
-const username = 'lengqiang';
-/////////////////
-// 在跳入路由之前要请求获取权限信息
-router.beforeEach((to, from, next) => __awaiter(void 0, void 0, void 0, function* () {
-    if (!store.state.isrequestAuth) {
-        yield store.dispatch('getUserInfo', username);
-        yield store.dispatch('getFloors');
-        yield store.dispatch('getBrand');
+var __awaiter =
+    (this && this.__awaiter) ||
+    function(thisArg, _arguments, P, generator) {
+        function adopt(value) {
+            return value instanceof P
+                ? value
+                : new P(function(resolve) {
+                      resolve(value)
+                  })
+        }
+        return new (P || (P = Promise))(function(resolve, reject) {
+            function fulfilled(value) {
+                try {
+                    step(generator.next(value))
+                } catch (e) {
+                    reject(e)
+                }
+            }
+            function rejected(value) {
+                try {
+                    step(generator['throw'](value))
+                } catch (e) {
+                    reject(e)
+                }
+            }
+            function step(result) {
+                result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected)
+            }
+            step((generator = generator.apply(thisArg, _arguments || [])).next())
+        })
     }
-    next();
-}));
+import Vue from 'vue'
+import App from './App.vue'
+import router from './router'
+import store from './store'
+Vue.config.productionTip = false
+import design from 'ant-design-vue'
+import 'ant-design-vue/dist/antd.css'
+Vue.use(design)
+import ElementUI from 'element-ui'
+import 'element-ui/lib/theme-chalk/index.css'
+Vue.use(ElementUI)
+import VueQuillEditor from 'vue-quill-editor'
+import 'quill/dist/quill.core.css'
+import 'quill/dist/quill.snow.css'
+import 'quill/dist/quill.bubble.css'
+Vue.use(VueQuillEditor)
+import WdEditor from '@/components/Editor'
+Vue.use(WdEditor)
+import Rotation from '@/components/Rotation'
+Vue.use(Rotation)
+import PicLarge from '@/components/PicLarge'
+Vue.use(PicLarge)
+import Legend from '@/components/Legend'
+Vue.use(Legend)
+import cookies from 'vue-cookie'
+Vue.use(cookies)
+import Pui from 'meri-design'
+import 'meri-design/dist/index.css'
+Vue.use(Pui)
+
 new Vue({
     router,
     store,
     render: (h) => h(App),
-}).$mount('#app');
+}).$mount('#app')

+ 58 - 57
src/router/index.js

@@ -1,103 +1,104 @@
-import Vue from 'vue'
-import store from '@/store'
-import VueRouter from 'vue-router'
-import { query } from '@/utils/query'
+import Vue from "vue"
+import store from "@/store"
+import VueRouter from "vue-router"
+import { query } from "@/utils/query"
 Vue.use(VueRouter)
 
 const routes = [
     // 登陆页面
     {
-        path: '/',
-        redirect: '/home/overview',
+        path: "/",
+        redirect: "/home/overview",
     },
     {
-        path: '/404',
-        component: () => import('../components/404'),
+        path: "/404",
+        component: () => import("../components/404"),
     },
     // home
     {
-        path: '/home',
-        name: 'home',
-        component: () => import('../views/index'),
-        redirect: '/home/first',
+        path: "/home",
+        name: "home",
+        component: () => import("../views/index"),
+        redirect: "/home/first",
         children: [
             {
-                path: 'first',
-                component: () => import('../views/first'),
+                path: "first",
+                component: () => import("../views/first"),
             },
             //概览
             {
-                path: 'overview',
-                component: () => import('../views/overview'),
+                path: "overview",
+                component: () => import("../views/overview"),
             },
             // 楼层功能
             {
-                path: 'floorFunc',
-                component: () => import('../views/floorFunc'),
+                path: "floorFunc",
+                component: () => import("../views/floorFunc"),
             },
             // 设备设施
             {
-                path: 'equipment',
-                component: () => import('../views/equipment'),
+                path: "equipment",
+                component: () => import("../views/equipment"),
             },
             // 其他功能
             {
-                path: 'other',
-                component: () => import('../views/other'),
+                path: "other",
+                component: () => import("../views/other"),
             },
             // 分析
             {
-                path: 'analysis',
-                component: () => import('../views/analysis'),
+                path: "analysis",
+                component: () => import("../views/analysis"),
             },
             //图例库管理
             {
-                path: 'legendLibrary',
-                component: () => import('../views/legendLibrary'),
+                path: "legendLibrary",
+                component: () => import("../views/legendLibrary"),
             },
             //图例绘制规则
             {
-                path: 'legendRules',
-                component: () => import('../views/legendRules'),
+                path: "legendRules",
+                component: () => import("../views/legendRules"),
             },
         ],
     },
 ]
 const router = new VueRouter({
-    mode: 'history',
+    mode: "history",
     base: process.env.BASE_URL,
     routes,
 })
+const ignore = ["/404"]
 router.beforeEach(async (to, from, next) => {
-    const token = query().token
-    console.log(token)
-    const ssoToken = store.getters['ssoToken']
-    if (ssoToken) {
-        store.commit('SETSSOTOKEN', ssoToken)
-        await store.dispatch('getUserInfo')
-        await store.dispatch('getFloors')
-        await store.dispatch('getBrand')
-        next()
-    } else if (token) {
-        store.commit('SETSSOTOKEN', token)
-        console.log(store.state.ssoToken)
-        await store.dispatch('getUserInfo')
-        next()
-    } else {
-        let lastRoute = {
-            path: to.path,
-            params: to.params,
-            query: to.query,
+    if (!ignore.includes(to.path)) {
+        const token = query().token
+        const ssoToken = store.getters["ssoToken"]
+        if (ssoToken) {
+            store.commit("SETSSOTOKEN", ssoToken)
+            await store.dispatch("getUserInfo", router)
+            await store.dispatch("getFloors")
+            await store.dispatch("getBrand")
+            next()
+        } else if (token) {
+            store.commit("SETSSOTOKEN", token)
+            await store.dispatch("getUserInfo", router)
+            next()
+        } else {
+            let lastRoute = {
+                path: to.path,
+                params: to.params,
+                query: to.query,
+            }
+            store.commit("SETLASTROUTER", lastRoute)
+            let ssoServer = "http://oauth.wanda-dev.cn"
+            let systemcode = "CAD156",
+                signal = new Date().getTime(),
+                version = "1.0.0"
+            window.location.href = `${ssoServer}/login?systemcode=${systemcode}&signal=${signal}&version=${version}`
         }
-        store.commit('SETLASTROUTER', lastRoute)
-        let ssoServer = 'http://oauth.wanda-dev.cn'
-        let systemcode = 'CAD156',
-            signal = new Date().getTime(),
-            version = '1.0.0',
-            // returnurl = 'http://glsms.wanda-dev.cn/'
-            // returnurl = window.location.protocol + "//" + window.location.host + "/wandaBmGuide"
-            returnurl = 'http://localhost:8090/wandaBmGuide/home/equipment'
-        window.location.href = `${ssoServer}/login?token=${token}&systemcode=${systemcode}&signal=${signal}&version=${version}&returnurl=${returnurl}`
+    } else {
+        next()
+        return
     }
 })
 export default router

+ 40 - 25
src/store/index.js

@@ -1,34 +1,35 @@
-import Vue from 'vue'
-import Vuex from 'vuex'
-import { login, queryFloor, queryfmapID } from '@/api/login.js'
-import { queryBrand } from '@/api/public.js'
-import axios from 'axios'
+import Vue from "vue"
+import Vuex from "vuex"
+import { login, queryFloor, queryfmapID } from "@/api/login.js"
+import { queryBrand } from "@/api/public.js"
+import axios from "axios"
+import router from "../router"
 
 Vue.use(Vuex)
 export default new Vuex.Store({
     state: {
-        ssoToken: 'admin:lengqiang',
-        // ssoToken: null,
+        // ssoToken: 'admin:lengqiang',
+        ssoToken: null,
         isPreview: false,
-        lastRoute: '',
+        lastRoute: "",
         isrequestAuth: true, // 是否请求登录校验接口
         permissions: [], //权限信息 "GLSMS_VIEW":"说明书查看"、"GLSMS_SYMBOL_MANAGE": "图例库管理"、 "GLSMS_PLANARGRAPH_MANAGE":"平面图维护"
         plazas: [], //项目列表
         userInfo: {
-            employeename: '', //用户名称:艾宇;
-            orgCode: '',
-            username: 'lengqiang', //账户名称
+            employeename: "", //用户名称:艾宇;
+            orgCode: "",
+            username: "lengqiang", //账户名称
         },
-        plazaId: '1000423', //项目Id
-        projectName: '', //全局项目名称
+        plazaId: "1000423", //项目Id
+        projectName: "", //全局项目名称
         floorsArr: [], //楼层数组
         floorSelect: [], //楼层下拉框
-        fmapID: '',
+        fmapID: "",
         haveFengMap: false, //是否有蜂鸟地图的数据
         isMessage: true, //是否有发布的图
         scpzTable: [], //土建系统图例展示
         legendTable: [], //除土建系统图例展示
-        remarksText: '', //备注
+        remarksText: "", //备注
         bunkObj: {}, // 铺位名称
         currentFloor: {}, //当前选中的楼层信息
     },
@@ -111,20 +112,34 @@ export default new Vuex.Store({
     actions: {
         // 获取项目列表、userId
         async getUserInfo({ commit }, palyload) {
-            await login({ username: palyload }).then((res) => {
-                if (res.result == 'success') {
-                    commit('SETISREQUESTtAUTH', true)
-                    commit('SETAUTHMSG', res)
+            await login({}).then((res) => {
+                if (res.result == "success") {
+                    // token校验成功 拿到权限
+                    //commit("SETISREQUESTtAUTH", true)
+                    console.log("-----", palyload)
+                    if (res.permissions.length == 0) {
+                        //权限不足
+                        console.log("权限不足!!")
+                        router.push({ path: "/404", query: { result: "权限不足" } })
+                    }
+                    commit("SETAUTHMSG", res)
+                } else if (res.result == "no_auth") {
+                    //登录失败
+                    console.log("登录失败!!")
+                    commit("SETISREQUESTtAUTH", false)
+                    router.push({ path: "/404", query: { result: "登录失败" } })
                 } else {
-                    console.log('接口报错!!')
-                    commit('SETISREQUESTtAUTH', false)
+                    //访问出错 500
+                    console.log("访问出错!!")
+                    commit("SETISREQUESTtAUTH", false)
+                    router.push({ path: "/404", query: { result: "访问出错" } })
                 }
             })
         },
         getFloors(context) {
             queryFloor({ plazaId: context.state.plazaId }).then((res) => {
-                if (res.result == 'success') {
-                    context.commit('SETFLOORS', res.data)
+                if (res.result == "success") {
+                    context.commit("SETFLOORS", res.data)
                 }
             })
         },
@@ -132,7 +147,7 @@ export default new Vuex.Store({
             await queryfmapID({
                 mapId: context.state.plazaId,
             }).then((res) => {
-                context.commit('SETMAPID', `${context.state.plazaId}_${res.mapVersion}`)
+                context.commit("SETMAPID", `${context.state.plazaId}_${res.mapVersion}`)
             })
         },
         async getBrand(context) {
@@ -147,7 +162,7 @@ export default new Vuex.Store({
                         obj[i.bunkdesc] = i
                     })
                 }
-                context.commit('SETBUNKOBJ', obj)
+                context.commit("SETBUNKOBJ", obj)
             })
         },
     },

+ 24 - 2
src/views/equipment/table/wbTable.vue

@@ -62,7 +62,7 @@
             </div>
             <input-dialog :type='2' @confirm='confirm'></input-dialog>
         </div>
-        <el-table :data='tableData' :border='true' style='width: 100%'>
+        <el-table :data='tableData' :border='true' style='width: 100%' @row-click='innerTable'>
             <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
             <el-table-column prop='sbmc' label='设备名称' show-overflow-tooltip resizable width='460'>
                 <template slot-scope='{row}'>{{row.sbmc || '--'}}</template>
@@ -106,7 +106,9 @@
                 <template slot-scope='{row}'>{{row.sjjssj?formatter(row.sjjssj): '--'}}</template>
             </el-table-column>
             <el-table-column prop='wonum' label='任务编号' show-overflow-tooltip resizable width='90'>
-                <template slot-scope='{row}'>{{row.wb_gzglid || '--'}}</template>
+                <template slot-scope='{row}'>
+                    <div @click='ycgd(row)'>{{row.wb_gzglid || '--'}}</div>
+                </template>
             </el-table-column>
         </el-table>
         <div class='foot'>
@@ -168,6 +170,26 @@ export default {
         indexMethod(index) {
             return (this.currentPage - 1) * this.size + index + 1
         },
+        //工单详情
+        innerTable(row) {
+            if (row.apptype == '外委' || row.apptype == '自维') {
+                if (row.wb_gzglid) {
+                    window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=WB_GZGL&uniqueid=${row.wb_gzglid}`, true)
+                }
+            } else if (row.apptype == '安全维保') {
+                window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=AQ_WB_GZGL&uniqueid=${row.wb_gzglid}`, true)
+            }
+        },
+        // 工单
+        ycgd(row) {
+            if (row.apptype == '外委' || row.apptype == '自维') {
+                if (row.wb_gzglid) {
+                    window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=WB_GZGL&uniqueid=${row.wb_gzglid}`, true)
+                }
+            } else if (row.apptype == '安全维保') {
+                window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=WB_GZGL&uniqueid=${row.wb_gzglid}`, true)
+            }
+        },
         //多余输入框监听
         confirm(gzglid) {
             this.gzglid = gzglid

+ 6 - 1
src/views/equipment/table/wxTable.vue

@@ -62,7 +62,7 @@
             </div>
             <input-dialog :type='3' @confirm='confirm'></input-dialog>
         </div>
-        <el-table :data='tableData' :border='true' style='width: 100%'>
+        <el-table :data='tableData' :border='true' style='width: 100%' @row-click='innerTable'>
             <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
             <el-table-column prop='sbmc' label='设备名称' show-overflow-tooltip resizable min-width='460'>
                 <template slot-scope='{row}'>{{row.sbmc || '--'}}</template>
@@ -168,6 +168,11 @@ export default {
         indexMethod(index) {
             return (this.currentPage - 1) * this.size + index + 1
         },
+        innerTable(row) {
+            if (row.workorderid) {
+                window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=JXWO&uniqueid=${row.workorderid}`, true)
+            }
+        },
         //多余输入框监听
         confirm(wonum) {
             this.wonum = wonum

+ 12 - 2
src/views/equipment/table/zwTable.vue

@@ -52,7 +52,7 @@
             <!-- placeholder='选择验收时间' -->
             <input-dialog v-if='statusOption.length>0' :statusOption='statusOption' :type='4' @confirm='confirm'></input-dialog>
         </div>
-        <el-table :data='tableData' :border='true' style='width: 100%'>
+        <el-table :data='tableData' :border='true' style='width: 100%' @row-click='innerTable'>
             <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
             <el-table-column prop='nd' label='年度' show-overflow-tooltip resizable width='80'>
                 <template slot-scope='{row}'>{{row.nd || '--'}}</template>
@@ -70,7 +70,12 @@
                 <template slot-scope='{row}'>{{row.sl>=0?row.sl:'--'}}</template>
             </el-table-column>
             <el-table-column prop='ssfasm' label='实施方案说明' show-overflow-tooltip resizable min-width='320'>
-                <template slot-scope='{row}'>{{row.ssfasm || '--'}}</template>
+                <template slot-scope='{row}'>
+                    <a
+                        :href='`http://10.199.204.167:7001/maximo/ui/?event=loadapp&value=GCZXWXLINE&uniqueid=${row.ssfasm}`'
+                        target='_blank'
+                    >{{row.ssfasm || '--'}}</a>
+                </template>
             </el-table-column>
             <el-table-column prop='sxjd' label='当前阶段' show-overflow-tooltip resizable width='80'>
                 <template slot-scope='{row}'>{{row.sxjd || '--'}}</template>
@@ -155,6 +160,11 @@ export default {
             this.currentPage = page
             this.getList()
         },
+        innerTable(row) {
+            if (row.gczxwx_lineid) {
+                window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=GCZXWXLINE&uniqueid=${row.gczxwx_lineid}`, true)
+            }
+        },
         //下拉框查询
         tabFind() {
             let postParams = [

+ 7 - 0
src/views/other/zhsxOtherTable2.vue

@@ -54,6 +54,7 @@
             :header-cell-style='{background:"rgba(245,246,247,1)",fontFamily:"MicrosoftYaHei",color:"rgba(100,108,115,1)",lineHeight:"16px",fontSize:"12px"}'
             :data='dsfTable'
             style='width: 100%;margin-top:12px'
+            @row-click='innerTable'
         >
             <el-table-column label='序号' type='index' width='60' :index='indexMethod'></el-table-column>
             <el-table-column prop :show-overflow-tooltip='true' sortable label='任务名称' width='540'>
@@ -142,6 +143,12 @@ export default {
             this.page = page
             this.dsfjc()
         },
+        //第三方任务
+        innerTable(row) {
+            if (row.wbgzglid) {
+                window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=DSF_GZGL&uniqueid=${row.wbgzglid}`, true)
+            }
+        },
         changeSelect() {
             this.department = []
             let postParams = [

+ 7 - 7
src/views/room/index.vue

@@ -7,7 +7,7 @@
     <div class='compute-box'>
         <el-dialog :title='`${systemName}`||"机房"' :visible.sync='visible' :fullscreen='true'>
             <div class='compute-span'></div>
-            <el-tooltip class='item' effect='dark' :content='content' placement='top'>
+            <el-tooltip class='item' effect='dark' :content='content' placement='top' v-if='smsxtArr.length>0'>
                 <div class='compute-zf' @click='jumpFloor'></div>
             </el-tooltip>
 
@@ -854,13 +854,13 @@ export default {
         },
         // 机房右上角的跳转 如果是在楼层功能打开的机房则要跳转到设备设施对应的系统\楼层 反之亦然
         jumpFloor() {
-            if (this.smsxtArr.smsxt) {
-                if (location.pathname.split('/')[3] == 'equipment') {
-                    this.$router.push({ path: '/home/floorFunc' })
-                } else {
-                    this.$router.push({ path: '/home/equipment', query: { smsxt: this.smsxtArr.smsxt } })
-                }
+            // if (this.smsxtArr.smsxt) {
+            if (location.pathname.split('/')[3] == 'equipment') {
+                this.$router.push({ path: '/home/floorFunc' })
+            } else {
+                this.$router.push({ path: '/home/equipment', query: { smsxt: this.smsxtArr.smsxt } })
             }
+            // }
         }
     },
     mounted() {}

+ 9 - 1
src/views/room/room4.vue

@@ -6,6 +6,7 @@
                 v-loading='loading'
                 :data='table4'
                 style='width: 100%'
+                @row-click='innerTable'
                 :header-cell-style='{background:"rgba(245,246,247,1)",fontFamily:"MicrosoftYaHei",color:"rgba(100,108,115,1)",lineHeight:"16px",fontSize:"12px"}'
             >
                 <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
@@ -44,7 +45,8 @@
                 </el-table-column>
                 <el-table-column prop label='现场照片' show-overflow-tooltip resizable width='80'>
                     <template slot-scope='{row}'>
-                        <div v-if="row.glsmsImage"
+                        <div
+                            v-if='row.glsmsImage'
                             style='cursor:pointer;color: #0091ff;'
                             @click='clickPic(row.glsmsImage)'
                         >{{row.glsmsImage.length+'张'}}</div>
@@ -102,6 +104,12 @@ export default {
         pageChanged(page) {
             this.page = page
             this.$emit('Index3Emit', page)
+        },
+        //工单详情
+        innerTable(row) {
+            if (row.workorderid) {
+                window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=JXWO&uniqueid=WB_GZGL&uniqueid=${row.wb_gzglid}`, true)
+            }
         }
     }
 }

+ 24 - 1
src/views/room/room5.vue

@@ -6,6 +6,7 @@
                 v-loading='loading'
                 :data='table5'
                 style='width: 100%'
+                @row-click='innerTable'
                 :header-cell-style='{background:"rgba(245,246,247,1)",fontFamily:"MicrosoftYaHei",color:"rgba(100,108,115,1)",lineHeight:"16px",fontSize:"12px"}'
             >
                 <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
@@ -55,7 +56,9 @@
                 </el-table-column>
                 <el-table-column prop label='异常工单' align='center'>
                     <el-table-column prop label='异常工单编号' :show-overflow-tooltip='true' min-width='110'>
-                        <template slot-scope='{row}'>{{row.wonum||'--'}}</template>
+                        <template slot-scope='{row}'>
+                            <div @click='ycgd(row)'>{{row.wonum||'--'}}</div>
+                        </template>
                     </el-table-column>
                     <el-table-column prop label='描述' :show-overflow-tooltip='true' width='900'>
                         <template slot-scope='{row}'>{{row.description||'--'}}</template>
@@ -101,6 +104,26 @@ export default {
     components: { Select },
     mounted() {},
     methods: {
+        //工单详情
+        innerTable(row) {
+            if (row.apptype == '外委' || row.apptype == '自维') {
+                if (row.wb_gzglid) {
+                    window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=WB_GZGL&uniqueid=${row.wb_gzglid}`, true)
+                }
+            } else if (row.apptype == '安全维保') {
+                window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=AQ_WB_GZGL&uniqueid=${row.wb_gzglid}`, true)
+            }
+        },
+        // 工单
+        ycgd(row) {
+            if (row.apptype == '外委' || row.apptype == '自维') {
+                if (row.wb_gzglid) {
+                    window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=WB_GZGL&uniqueid=${row.wb_gzglid}`, true)
+                }
+            } else if (row.apptype == '安全维保') {
+                window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=WB_GZGL&uniqueid=${row.wb_gzglid}`, true)
+            }
+        },
         indexMethod(index) {
             return (this.page - 1) * this.size + index + 1
         },