user.js 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. import { getUserInfo } from "@/api/oauth2/user";
  2. import common from "@/utils/common";
  3. export default {
  4. namespaced: true,
  5. state: {
  6. // 用户信息
  7. info: {},
  8. // 帐号
  9. account: "",
  10. // 切换的账号
  11. switchAccount: "",
  12. // 是否开启注册
  13. regOpen: false
  14. },
  15. actions: {
  16. /**
  17. * @description 设置用户数据
  18. * @param {Object} context
  19. * @param {*} info info
  20. */
  21. set({ state, dispatch }, info) {
  22. return new Promise(async resolve => {
  23. // store 赋值
  24. state.info = info;
  25. // 持久化
  26. await dispatch(
  27. "ibps/db/set",
  28. {
  29. dbName: "sys",
  30. path: "user.info",
  31. value: info,
  32. user: true
  33. },
  34. { root: true }
  35. );
  36. // end
  37. resolve();
  38. });
  39. },
  40. /**
  41. * @description 从数据库取用户数据
  42. * @param {Object} state vuex state
  43. */
  44. get({ state, dispatch }) {
  45. return new Promise(async resolve => {
  46. // store 赋值
  47. state.info = await dispatch(
  48. "ibps/db/get",
  49. {
  50. dbName: "sys",
  51. path: "user.info",
  52. defaultValue: {},
  53. user: true
  54. },
  55. { root: true }
  56. );
  57. // end
  58. resolve();
  59. });
  60. },
  61. /**
  62. * @description 从数据库取用户数据
  63. * @param {Object} context
  64. */
  65. load({ state, dispatch }) {
  66. return new Promise(async (resolve, reject) => {
  67. await dispatch("getAccount");
  68. getUserInfo(state.account)
  69. .then(async response => {
  70. if (!response) {
  71. reject(response);
  72. }
  73. const info = response.data;
  74. // 设置当前
  75. await dispatch("set", info);
  76. let level = {};
  77. if (info.positions && info.positions.length) {
  78. // 当存在第二级为空时,说明具备最高级权限
  79. const hasFirst = info.positions.some(
  80. obj => obj.path.split(".")[1] === ""
  81. );
  82. level = {
  83. first: [
  84. ...new Set(info.positions.map(obj => obj.path.split(".")[0]))
  85. ].join(","),
  86. second: hasFirst
  87. ? ""
  88. : [
  89. ...new Set(
  90. info.positions.map(obj => obj.path.split(".")[1])
  91. )
  92. ].join(",")
  93. };
  94. await dispatch("ibps/param/setLevel", level, {
  95. root: true
  96. });
  97. }
  98. // 获取所有用户信息
  99. await dispatch("getRoleList", level);
  100. // 获取所有用户信息
  101. await dispatch("getUserList", level);
  102. // 获取所有部门信息
  103. await dispatch("getDeptList", level);
  104. // 获取所有流程信息
  105. await dispatch("getFlowList", level);
  106. // // 获取当前子系统
  107. // await dispatch('ibps/system/loadSystem', null, {
  108. // root: true
  109. // })
  110. resolve(info);
  111. })
  112. .catch(error => {
  113. reject(error);
  114. });
  115. });
  116. },
  117. /**
  118. * 获取用户名
  119. * @param {*} param0
  120. */
  121. getAccount({ state, dispatch }) {
  122. return new Promise(async resolve => {
  123. // store 赋值
  124. state.account = await dispatch(
  125. "ibps/db/get",
  126. {
  127. dbName: "sys",
  128. path: "account",
  129. defaultValue: "",
  130. user: true
  131. },
  132. { root: true }
  133. );
  134. // end
  135. resolve();
  136. });
  137. },
  138. setAccount({ state, dispatch }, account) {
  139. return new Promise(async resolve => {
  140. // store 赋值
  141. state.account = account;
  142. // 持久化
  143. await dispatch(
  144. "ibps/db/set",
  145. {
  146. dbName: "sys",
  147. path: "account",
  148. value: account,
  149. user: true
  150. },
  151. { root: true }
  152. );
  153. // end
  154. resolve();
  155. });
  156. },
  157. /**
  158. * 获取所有角色
  159. */
  160. getRoleList({ state, dispatch }, { first, second }) {
  161. const params = second
  162. ? `'%${second}%' or entity.id_ = '${first}'`
  163. : first
  164. ? `'%${first}%'`
  165. : "%%";
  166. const sql = `select * from ibps_party_role`;
  167. common
  168. .request("sql", sql)
  169. .then(res => {
  170. const { data = [] } = res.variables || {};
  171. dispatch("ibps/param/setRoleList", data, {
  172. root: true
  173. });
  174. })
  175. .catch(error => {
  176. console.log(error);
  177. alert("获取所有角色信息失败!");
  178. });
  179. },
  180. /**
  181. * 获取所有系统用户账号
  182. */
  183. getUserList({ state, dispatch }, { first, second }) {
  184. const params = second
  185. ? `'%${second}%' or entity.id_ = '${first}'`
  186. : first
  187. ? `'%${first}%'`
  188. : "%%";
  189. const sql = `select users.id_ as userId, users.name_ as userName, ifnull(users.mobile_, '') as phone, ifnull(group_concat(distinct positions.id_ order by positions.id_ separator ','), '') as positionId, ifnull(group_concat(distinct positions.name_ order by positions.id_ separator ','), '') as positions, ifnull(group_concat(distinct roles.id_ order by roles.role_note_ asc separator ','), '') as roleId, ifnull(group_concat(distinct roles.name_ order by roles.role_note_ asc separator ','), '') as roles, (select ifnull(people.qian_zi_tu_wen_, '') from t_ryjbqk as people where people.parent_id_ = users.id_) as signatureId, (select ifnull(files.file_name_, '') from ibps_file_attachment as files where files.id_ = signatureId) as signatureName from ibps_party_employee as users left join (select ur.user_id_, r.role_note_, group_concat(distinct r.id_ order by r.id_ separator ',') as id_, group_concat(distinct r.name_ order by r.id_ separator ',') as name_ from ibps_party_user_role as ur join ibps_party_role as r on ur.role_id_ = r.id_ group by ur.user_id_) as roles on users.id_ = roles.user_id_ left join ibps_party_entity as positions on find_in_set(positions.id_, users.positions_) where exists (select 1 from ibps_party_entity as entity where find_in_set(entity.id_, users.positions_) and (entity.path_ like ${params})) group by users.id_`;
  190. common
  191. .request("sql", sql)
  192. .then(res => {
  193. const { data = [] } = res.variables || {};
  194. dispatch("ibps/param/setUserList", data, {
  195. root: true
  196. });
  197. })
  198. .catch(error => {
  199. console.log(error);
  200. alert("获取所有用户信息失败!");
  201. });
  202. },
  203. /**
  204. * 获取所有系统部门信息
  205. */
  206. getDeptList({ state, dispatch }, { first, second }) {
  207. const params = second
  208. ? ` and (pe.path_ like '%${second}%' or pe.id_ = '${first}')`
  209. : first
  210. ? ` and pe.path_ like '%${first}%'`
  211. : "";
  212. // const sql = `select id_ as positionId, name_ as positionName, path_ as path, depth_ as depth, sn_ as sn from ibps_party_entity where party_type_ = 'position'${params} order by depth_ asc, sn_ asc`
  213. const sql = `select pe.id_ as positionId, pe.name_ as positionName, pe.path_ as path, pe.depth_ as depth, pe.sn_ as sn, ifnull(r.name_, '') as manager, ifnull(r.id_, '') as managerId from ibps_party_entity as pe left join (select em.id_, em.positions_, em.name_ from ibps_party_employee as em left join ibps_party_user_role as ur on em.id_ = ur.user_id_ left join ibps_party_role as pr on pr.id_ = ur.role_id_ where role_alias_ in ('zhsfzr', 'syszr', 'zhglzzc')) as r on find_in_set(pe.id_, r.positions_) > 0 where pe.party_type_ = 'position'${params} group by pe.id_ order by pe.depth_ asc, pe.sn_ asc,pe.id_ asc`;
  214. common
  215. .request("sql", sql)
  216. .then(res => {
  217. const { data = [] } = res.variables || {};
  218. dispatch("ibps/param/setDeptList", data, {
  219. root: true
  220. });
  221. })
  222. .catch(error => {
  223. console.log(error);
  224. alert("获取所有部门信息失败!");
  225. });
  226. },
  227. /**
  228. * 获取所有可展示流程信息
  229. */
  230. getFlowList({ state, dispatch }, { first, second }) {
  231. const sql = `select * from t_applcgl`;
  232. common
  233. .request("sql", sql)
  234. .then(res => {
  235. const { data = [] } = res.variables || {};
  236. dispatch("ibps/param/setflowList", data, {
  237. root: true
  238. });
  239. })
  240. .catch(error => {
  241. console.log(error);
  242. alert("获取所有流程信息失败!");
  243. });
  244. }
  245. }
  246. };