index.js 10 KB

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