index.js 10 KB

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