index.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  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:liulin34',
  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. floorObj: {},
  50. },
  51. getters: {
  52. plazaName: (state) => state.plazaName,
  53. accessLevel: (state) => state.accessLevel,
  54. isPreview: (state) => state.isPreview,
  55. ssoToken: (state) => state.ssoToken,
  56. lastRoute: (state) => state.lastRoute,
  57. floorsArr: (state) => state.floorsArr,
  58. floorSelect: (state) => state.floorSelect,
  59. plazaId: (state) => state.plazaId,
  60. plazas: (state) => state.plazas,
  61. fmapID: (state) => state.fmapID,
  62. haveFengMap: (state) => state.haveFengMap,
  63. isMessage: (state) => state.isMessage,
  64. scpzTable: (state) => state.scpzTable,
  65. legendTable: (state) => state.legendTable,
  66. remarksText: (state) => state.remarksText,
  67. bunkObj: (state) => state.bunkObj,
  68. showView: (state) => state.showView,
  69. isGetmap: (state) => state.isGetmap,
  70. planNum: (state) => state.planNum,
  71. typeNum: (state) => state.typeNum,
  72. isrequestAuth: (state) => state.isrequestAuth,
  73. permissions: (state) => state.permissions,
  74. floorObj: (state) => state.floorObj,
  75. },
  76. mutations: {
  77. SETPLAZENAME(state, data) {
  78. state.plazaName = data
  79. },
  80. SETSHOWVIEW(state, data) {
  81. state.showView = data
  82. },
  83. SETISPREVIEW(state, data) {
  84. state.isPreview = data
  85. },
  86. SETSSOTOKEN(state, data) {
  87. state.ssoToken = data
  88. },
  89. // 设置是否登陆校验
  90. SETISREQUESTtAUTH(state, palyload) {
  91. state.isrequestAuth = palyload
  92. },
  93. SETLASTROUTER(state, data) {
  94. state.lastRoute = data
  95. },
  96. // 设置相关权限信息
  97. SETAUTHMSG(state, palyload) {
  98. state.permissions = palyload.permissions
  99. // state.plazas = palyload.plazas
  100. // state.userInfo.employeename = palyload.employeename
  101. // state.userInfo.orgCode = palyload.orgCode
  102. // state.userInfo.username = palyload.username
  103. },
  104. SETISMESSAGE(state, data) {
  105. state.isMessage = data
  106. },
  107. SETFLOORS(state, data) {
  108. console.log(data)
  109. let numArr = [],
  110. minNum = '',
  111. floor = {}
  112. state.floorSelect = []
  113. state.floorsArr = data
  114. if (data.length > 0) {
  115. data.forEach((e) => {
  116. let obj = {
  117. id: e.gname,
  118. name: e.code,
  119. }
  120. // 下拉框的楼层数组
  121. state.floorSelect.push(obj)
  122. // 获取默认展示楼层
  123. if (e.seq > 0) {
  124. numArr.push(e.seq)
  125. }
  126. })
  127. if (Math.min.apply(Math, numArr)) {
  128. state.floorObj = data.find((item) => {
  129. return item.seq == Math.min.apply(Math, numArr)
  130. })
  131. }
  132. }
  133. },
  134. SETMAPID(state, data) {
  135. state.fmapID = data
  136. },
  137. SETHAVEFENGMAP(state, data) {
  138. state.haveFengMap = data
  139. },
  140. // 土建的图例
  141. SETSCPZTABLE(state, data) {
  142. state.scpzTable = data
  143. },
  144. SETLEGENDTABLE(state, data) {
  145. state.legendTable = data
  146. },
  147. SETREMARKSTEXT(state, data) {
  148. state.remarksText = data
  149. },
  150. SETBUNKOBJ(state, data) {
  151. state.bunkObj = data
  152. },
  153. SETCURRENTFLOOR(state, data) {
  154. state.currentFloor = data
  155. },
  156. STOREACCESSLEVEL(state, data) {
  157. state.accessLevel = data
  158. },
  159. STOREPLAZAID(state, id) {
  160. state.plazaId = id
  161. if (id) {
  162. state.isGetmap = true
  163. } else {
  164. state.isGetmap = false
  165. }
  166. },
  167. /**
  168. * 修改 categoryId
  169. */
  170. SETCATEGORYID(state, data) {
  171. state.categoryId = data
  172. },
  173. SETISGETMAP(state, data) {
  174. state.isGetmap = data
  175. },
  176. SETPLANNUM(state, data) {
  177. state.planNum = data
  178. },
  179. SETTYPENUM(state, data) {
  180. state.typeNum = data
  181. },
  182. },
  183. actions: {
  184. // 获取项目列表、userId
  185. async getUserInfo({
  186. commit
  187. }, palyload) {
  188. await login({
  189. returnTree: true,
  190. })
  191. .then((res) => {
  192. // 获取用户当前权限
  193. console.log(res.result)
  194. if (res.result === 'success') {
  195. commit('STOREACCESSLEVEL', res.level)
  196. commit('SETAUTHMSG', res)
  197. let level = res.level
  198. console.log('window.opener', window.opener)
  199. if (window.opener && window.opener.__fromGroupPage) {
  200. console.log('window.openerxxx', window.opener)
  201. commit('SETAUTHMSG', level)
  202. let data = window.opener.__fromGroupPage
  203. level = data.level
  204. commit('SETPLAZENAME', data.plazaName)
  205. localStorage.setItem('PLAZAID', data.plazaId)
  206. commit('STOREPLAZAID', data.plazaId)
  207. router.push({
  208. path: './home/homepage',
  209. })
  210. } else {
  211. console.log('window.openerxxx', window.opener, level)
  212. if (level == 0) {
  213. if (res.treeData[0].ccode) {
  214. localStorage.setItem('PLAZAID', res.treeData[0].ccode)
  215. commit('STOREPLAZAID', res.treeData[0].ccode)
  216. commit('SETPLAZENAME', res.treeData[0].cname)
  217. }
  218. router.push({
  219. path: './home/overview',
  220. query: {
  221. plazaId: res.treeData[0].ccode,
  222. },
  223. })
  224. } else {
  225. router.push({
  226. path: './group',
  227. })
  228. }
  229. }
  230. // 给oA头添加名称
  231. // 指定条问题
  232. window.wd_fm_info = {
  233. profile: {
  234. username: encodeURIComponent(res.username),
  235. },
  236. }
  237. }
  238. })
  239. .catch((err) => {
  240. console.log('getuserfo catch', this.getters.accessLevel);
  241. // 由于跨域做的判断
  242. if (this.getters.accessLevel == 0) {
  243. router.push({
  244. path: './home/homepage',
  245. })
  246. }
  247. })
  248. },
  249. async getUserInfoNoPath({
  250. commit
  251. }, palyload) {
  252. await login({
  253. returnTree: true,
  254. })
  255. .then((res) => {
  256. if (res.result === 'success') {
  257. // commit('STOREACCESSLEVEL', res.level)
  258. commit('SETAUTHMSG', res)
  259. window.wd_fm_info = {
  260. profile: {
  261. username: encodeURIComponent(res.username),
  262. },
  263. }
  264. }
  265. })
  266. .catch((err) => {
  267. console.log('getuserfo catch', err)
  268. // router.push({
  269. // path: '/404',
  270. // })
  271. // commit('SETISREQUESTtAUTH', err)
  272. })
  273. },
  274. async getFloors(context) {
  275. await queryFloor({
  276. plazaId: localStorage.getItem('PLAZAID') || context.state.plazaId,
  277. }).then((res) => {
  278. if (res.result == 'success') {
  279. context.commit('SETFLOORS', res.data)
  280. }
  281. })
  282. },
  283. async getfmapID(context) {
  284. await queryfmapID({
  285. mapId: localStorage.getItem('PLAZAID') || context.state.plazaId,
  286. }).then((res) => {
  287. context.commit('SETMAPID', `${localStorage.getItem('PLAZAID') || context.state.plazaId}_${res.mapVersion}`)
  288. })
  289. },
  290. async getBrand(context) {
  291. let data = {
  292. plazaId: `${localStorage.getItem('PLAZAID') || context.state.plazaId}`,
  293. }
  294. await queryBrand({
  295. data,
  296. }).then((res) => {
  297. let obj = {}
  298. if (res.data.data) {
  299. let Data = res.data.data
  300. Data.forEach((i) => {
  301. obj[i.bunkdesc] = i
  302. })
  303. }
  304. context.commit('SETBUNKOBJ', obj)
  305. })
  306. },
  307. },
  308. modules: {},
  309. })