index.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import { login, queryFloor, queryfmapID } from '@/api/login.js'
  4. import { queryBrand } from '@/api/public.js'
  5. import axios from 'axios'
  6. import router from '../router'
  7. Vue.use(Vuex)
  8. export default new Vuex.Store({
  9. state: {
  10. ssoToken: 'admin:liujiandong',
  11. // ssoToken: '',
  12. // ssoToken: null,
  13. plazaName: "",
  14. isPreview: false,
  15. lastRoute: '',
  16. isrequestAuth: null, // 是否请求登录校验接口
  17. permissions: [], //权限信息 "GLSMS_VIEW":"说明书查看"、"GLSMS_SYMBOL_MANAGE": "图例库管理"、 "GLSMS_PLANARGRAPH_MANAGE":"平面图维护"
  18. plazas: [], //项目列表
  19. userInfo: {
  20. employeename: '', //用户名称:艾宇;
  21. orgCode: '',
  22. username: 'lengqiang', //账户名称
  23. },
  24. plazaId: '', //项目Id
  25. projectName: '', //全局项目名称
  26. floorsArr: [], //楼层数组
  27. floorSelect: [], //楼层下拉框
  28. floorSelect2: [], //分布图楼层下拉框
  29. fmapID: '',
  30. haveFengMap: -1, //是否有蜂鸟地图的数据 -1为等待 0 为失败 1 为成功
  31. isMessage: true, //是否有发布的图
  32. scpzTable: [], //土建装饰图例展示
  33. legendTable: [], //除土建装饰图例展示
  34. remarksText: '', //备注
  35. // defaultComment: '',
  36. bunkObj: {}, // 铺位名称
  37. currentFloor: {}, //当前选中的楼层信息
  38. accessLevel: -1, // 权限级别
  39. showView: 1,
  40. categoryId: 'GDXT', //当前选中的系统
  41. isGetmap: false, //是否可以请求底图(在项目中方可请求)
  42. planNum: '', //主要设备房 展示备注需要
  43. typeNum: '', //图例数量 展示备注需要
  44. floorObj: {},
  45. },
  46. getters: {
  47. plazaName: (state) => state.plazaName,
  48. accessLevel: (state) => state.accessLevel,
  49. isPreview: (state) => state.isPreview,
  50. ssoToken: (state) => state.ssoToken,
  51. lastRoute: (state) => state.lastRoute,
  52. floorsArr: (state) => state.floorsArr,
  53. floorSelect: (state) => state.floorSelect,
  54. floorSelect2: (state) => state.floorSelect2,
  55. plazaId: (state) => state.plazaId,
  56. plazas: (state) => state.plazas,
  57. fmapID: (state) => state.fmapID,
  58. haveFengMap: (state) => state.haveFengMap,
  59. isMessage: (state) => state.isMessage,
  60. scpzTable: (state) => state.scpzTable,
  61. legendTable: (state) => state.legendTable,
  62. remarksText: (state) => state.remarksText,
  63. bunkObj: (state) => state.bunkObj,
  64. showView: (state) => state.showView,
  65. isGetmap: (state) => state.isGetmap,
  66. planNum: (state) => state.planNum,
  67. typeNum: (state) => state.typeNum,
  68. isrequestAuth: (state) => state.isrequestAuth,
  69. permissions: (state) => state.permissions,
  70. floorObj: (state) => state.floorObj,
  71. },
  72. mutations: {
  73. SETPLAZENAME(state, data) {
  74. state.plazaName = data
  75. },
  76. SETSHOWVIEW(state, data) {
  77. state.showView = data
  78. },
  79. SETISPREVIEW(state, data) {
  80. state.isPreview = data
  81. },
  82. SETSSOTOKEN(state, data) {
  83. state.ssoToken = data
  84. },
  85. // 设置是否登陆校验
  86. SETISREQUESTtAUTH(state, palyload) {
  87. state.isrequestAuth = palyload
  88. },
  89. SETLASTROUTER(state, data) {
  90. state.lastRoute = data
  91. },
  92. // 设置相关权限信息
  93. SETAUTHMSG(state, palyload) {
  94. state.permissions = palyload.permissions
  95. // state.plazas = palyload.plazas
  96. // state.userInfo.employeename = palyload.employeename
  97. // state.userInfo.orgCode = palyload.orgCode
  98. // state.userInfo.username = palyload.username
  99. // TODO: 设置用户名
  100. if (palyload.username){
  101. state.userInfo.username = palyload.username
  102. }
  103. },
  104. SETISMESSAGE(state, data) {
  105. state.isMessage = data
  106. },
  107. SETFLOORS(state, data) {
  108. let numArr = []
  109. state.floorSelect = []
  110. state.floorSelect2 = []
  111. state.floorsArr = data
  112. if (data.length > 0) {
  113. data.forEach((e) => {
  114. let obj = {
  115. id: e.gcname,
  116. name: e.code,
  117. }
  118. let obj2 = {
  119. id: e.gname,
  120. name: e.code,
  121. }
  122. // 下拉框的楼层数组
  123. state.floorSelect.push(obj)
  124. state.floorSelect2.push(obj2)
  125. // 获取默认展示楼层
  126. if (e.seq > 0) {
  127. numArr.push(e.seq)
  128. }
  129. })
  130. if (Math.min.apply(Math, numArr)) {
  131. state.floorObj = data.find((item) => {
  132. return item.seq == Math.min.apply(Math, numArr)
  133. })
  134. }
  135. }
  136. },
  137. SETMAPID(state, data) {
  138. state.fmapID = data
  139. },
  140. SETHAVEFENGMAP(state, data) {
  141. state.haveFengMap = data
  142. },
  143. // 土建的图例
  144. SETSCPZTABLE(state, data) {
  145. state.scpzTable = data
  146. },
  147. SETLEGENDTABLE(state, data) {
  148. state.legendTable = data
  149. },
  150. SETREMARKSTEXT(state, data) {
  151. state.remarksText = data
  152. },
  153. SETBUNKOBJ(state, data) {
  154. state.bunkObj = data
  155. },
  156. SETCURRENTFLOOR(state, data) {
  157. state.currentFloor = data
  158. },
  159. STOREACCESSLEVEL(state, data) {
  160. state.accessLevel = data
  161. },
  162. STOREPLAZAID(state, id) {
  163. state.plazaId = id
  164. if (id) {
  165. state.isGetmap = true
  166. } else {
  167. state.isGetmap = false
  168. }
  169. },
  170. /**
  171. * 修改 categoryId
  172. */
  173. SETCATEGORYID(state, data) {
  174. state.categoryId = data
  175. },
  176. SETISGETMAP(state, data) {
  177. state.isGetmap = data
  178. },
  179. SETPLANNUM(state, data) {
  180. state.planNum = data
  181. },
  182. SETTYPENUM(state, data) {
  183. state.typeNum = data
  184. },
  185. },
  186. actions: {
  187. // 获取项目列表、userId
  188. async getUserInfo({ commit }, palyload) {
  189. await login({
  190. returnTree: true,
  191. })
  192. .then((res) => {
  193. // 获取用户当前权限
  194. if (res.result === 'success') {
  195. // 如果用户没有权限则跳入404
  196. if (!res.permissions || !res.permissions.includes('GLSMS_VIEW')) {
  197. router.push({
  198. path: '/404',
  199. })
  200. }
  201. commit('STOREACCESSLEVEL', res.level)
  202. commit('SETAUTHMSG', res)
  203. let level = res.level
  204. if (window.opener && window.opener.__fromGroupPage) {
  205. commit('SETAUTHMSG', level)
  206. let data = window.opener.__fromGroupPage
  207. level = data.level
  208. commit('SETPLAZENAME', data.plazaName)
  209. localStorage.setItem('PLAZAID', data.plazaId)
  210. commit('STOREPLAZAID', data.plazaId)
  211. router.push({
  212. path: './home/homepage',
  213. })
  214. } else {
  215. if (level == 0) {
  216. if (res.treeData[0].ccode) {
  217. localStorage.setItem('PLAZAID', res.treeData[0].ccode)
  218. commit('STOREPLAZAID', res.treeData[0].ccode)
  219. commit('SETPLAZENAME', res.treeData[0].cname)
  220. }
  221. router.push({
  222. path: './home/overview',
  223. query: {
  224. plazaId: res.treeData[0].ccode,
  225. },
  226. })
  227. } else {
  228. router.push({
  229. path: './group',
  230. })
  231. }
  232. }
  233. // 给oA头添加名称
  234. // 指定条问题
  235. document.getElementById('wd-fm-id-fm-switch-profile').style.display = 'inline-block'
  236. document.getElementById('wd-fm-id-fm-switch-profile').innerText = '您好,' + res.username
  237. }
  238. })
  239. .catch((err) => {
  240. // 由于跨域做的判断
  241. if (this.getters.accessLevel == 0) {
  242. router.push({
  243. path: './home/homepage',
  244. })
  245. }
  246. })
  247. },
  248. async getUserInfoNoPath({ commit }, palyload) {
  249. await login({
  250. returnTree: true,
  251. })
  252. .then((res) => {
  253. if (res.result === 'success') {
  254. // commit('STOREACCESSLEVEL', res.level)
  255. commit('SETAUTHMSG', res)
  256. document.getElementById('wd-fm-id-fm-switch-profile').style.display = 'inline-block'
  257. document.getElementById('wd-fm-id-fm-switch-profile').innerText = '您好,' + res.username
  258. }
  259. })
  260. .catch((err) => {
  261. console.log('getuserfo catch', err)
  262. })
  263. },
  264. async getFloors(context) {
  265. await queryFloor({
  266. plazaId: localStorage.getItem('PLAZAID') || context.state.plazaId,
  267. }).then((res) => {
  268. if (res.result == 'success') {
  269. context.commit('SETFLOORS', res.data)
  270. }
  271. })
  272. },
  273. async getfmapID(context) {
  274. await queryfmapID({
  275. mapId: localStorage.getItem('PLAZAID') || context.state.plazaId,
  276. }).then((res) => {
  277. context.commit('SETMAPID', `${localStorage.getItem('PLAZAID') || context.state.plazaId}_${res.mapVersion}`)
  278. })
  279. },
  280. async getBrand(context) {
  281. let data = {
  282. plazaId: `${localStorage.getItem('PLAZAID') || context.state.plazaId}`,
  283. }
  284. await queryBrand({
  285. data,
  286. }).then((res) => {
  287. let obj = {}
  288. if (res.data.data) {
  289. let Data = res.data.data
  290. Data.forEach((i) => {
  291. obj[i.bunkdesc] = i
  292. })
  293. }
  294. context.commit('SETBUNKOBJ', obj)
  295. })
  296. },
  297. },
  298. modules: {},
  299. })