system.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. /**
  2. * @created by helin3 2017-11-30
  3. * @updated by helin3 2018-01-17 代码按规范调整
  4. * @description 系统相关功能请求模拟
  5. */
  6. (function (require, model) {
  7. model = model || {};
  8. var exports = {};
  9. /* eslint camelcase: 1 */
  10. /**
  11. * GET请求URL参数转换
  12. * @param url
  13. * @returns {{}}
  14. */
  15. var paramUrl2Obj = function (url) {
  16. var search = url.split('?')[1];
  17. if (!search) {
  18. return {};
  19. }
  20. return JSON.parse('{"' + decodeURIComponent(search).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"').replace(/\n/g, '\\n') + '"}');
  21. };
  22. /**
  23. * POST请求BODY参数转换
  24. * @param body
  25. * @returns {{}}
  26. */
  27. var paramBody2Obj = function (body) {
  28. if (!body) {
  29. return {};
  30. }
  31. return JSON.parse('{"' + decodeURIComponent(body).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"').replace(/\n/g, '\\n') + '"}');
  32. };
  33. var frameConfig = {
  34. menuModel: 'left',
  35. fontSize: 'large',
  36. themes: 'default'
  37. };
  38. /**
  39. * oauth认证获取/刷新token
  40. * @param config
  41. * @returns {{code: string}}
  42. */
  43. exports.loginFn = function (config) {
  44. var returnObj = {};
  45. var suffix = new Date().getTime();
  46. // 获取Token、刷新Token请求成功返回相关token信息
  47. var tempReturnObj = {
  48. access_token: 'Basicd2ViX2FwcDo=' + suffix,
  49. expires_in: 600, // 单位:秒
  50. refresh_token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9' + suffix
  51. };
  52. try {
  53. var data = paramBody2Obj(config.body);
  54. if (data.grant_type == 'refresh_token') {
  55. // 刷新token请求认证成功,返回相关token信息
  56. returnObj = tempReturnObj;
  57. // 此处未模拟refresh_token失效情况,真实情况,请根据真实后端情况判断
  58. } else {
  59. if (data.username != 'admin' || data.password != 'admin') {
  60. // 获取token请求认证失败,返回错误信息
  61. returnObj = {
  62. code: '9001',
  63. message: '用户名或密码错误,请重新输入!'
  64. };
  65. } else {
  66. // 获取token请求认证成功,返回相关token信息
  67. returnObj = tempReturnObj;
  68. }
  69. }
  70. } catch (e) {
  71. // 获取token认证请求、刷新token认证请求失败
  72. returnObj.code = '-1';
  73. returnObj.message = '系统错误,请联系系统管理员!';
  74. }
  75. return returnObj;
  76. };
  77. /**
  78. * 注销模拟
  79. * @param config
  80. */
  81. exports.logoutFn = function (config) {
  82. return {
  83. code: 0,
  84. message: 'logout success!'
  85. };
  86. };
  87. /**
  88. * 模拟会话信息
  89. * @param config
  90. * @returns
  91. */
  92. exports.sessionInfoFn = function (config) {
  93. // var data = paramUrl2Obj(config.url);
  94. return {
  95. 'userId': '40',
  96. 'userName': 'YUFP',
  97. 'userAvatar': null,
  98. 'loginCode': 'admin',
  99. 'loginTime': null,
  100. 'roles': [
  101. { 'id': '7001', 'code': 'ADMIN', 'name': '系统管理员' }
  102. ],
  103. 'dpt': { 'id': '133', 'code': '1001', 'name': '首席运营官' },
  104. 'org': { 'id': '500', 'code': '500', 'name': '宇信金融集团' },
  105. 'logicSys': { 'id': '203', 'code': '', 'name': '客户关系管理系统' },
  106. 'instu': null,
  107. 'upOrg': null,
  108. 'upDpt': null,
  109. 'dataContr': []
  110. };
  111. };
  112. /**
  113. * 数据权限数据
  114. */
  115. exports.dataContrFn = function () {
  116. return window.demoDataContr;
  117. };
  118. /**
  119. * 密码加密
  120. */
  121. exports.passwordFn = function () {
  122. };
  123. /**
  124. * 查询全部控制点信息
  125. */
  126. exports.contrUrlFn = function () {
  127. return {};
  128. };
  129. /**
  130. * 模拟后台数据字典库
  131. * @type
  132. * @private
  133. */
  134. var allLookup = {
  135. USER_STATUS: [
  136. {key: '01', value: '正常'},
  137. {key: '02', value: '冻结'},
  138. {key: '03', value: '销户'}
  139. ],
  140. CUST_TYPE: [
  141. {key: '1', value: '零售'},
  142. {key: '2', value: '公司'}
  143. ],
  144. IDENT_TYPE: [
  145. {key: '1', value: '居民身份证'},
  146. {key: '2', value: '居民户口薄'},
  147. {key: '3', value: '组织机构代码'},
  148. {key: '4', value: '营业执照代码'}
  149. ],
  150. NATIONALITY: [
  151. { key: 'CN', value: '中国' },
  152. { key: 'US', value: '美国' },
  153. { key: 'JP', value: '日本' },
  154. { key: 'EU', value: '欧元区' }
  155. ],
  156. PUBLISH_STATUS: [
  157. { key: 'published', value: '草稿' },
  158. { key: 'draft', value: '已发布' },
  159. { key: 'deleted', value: '已删除' }
  160. ],
  161. BRANCH: [
  162. { key: 'c1001', value: '成都支行' }
  163. ],
  164. SUBRANCH: [
  165. { key: 'c100101', value: '高新支行' },
  166. { key: 'c100102', value: '天府三街支行' },
  167. { key: 'c100103', value: '天府五街支行' }
  168. ],
  169. EDUCATION_TYPE: [
  170. { key: '0', value: '博士' },
  171. { key: '1', value: '硕士' },
  172. { key: '2', value: '本科' },
  173. { key: '3', value: '大专' },
  174. { key: '4', value: '高中及以下' }
  175. ]
  176. };
  177. /**
  178. * 模拟后台数据字典
  179. * @param config
  180. * @returns {{data: {}}}
  181. */
  182. exports.lookupFn = function (config) {
  183. var param = paramUrl2Obj(config.url);
  184. var code = param.lookupCodes;
  185. if (!code) {
  186. throw new Error('请求参数错误');
  187. }
  188. var codeArr = code.split(',');
  189. var returnObj = {};
  190. for (var i = 0, len = codeArr.length; i < len; i++) {
  191. var codeType = codeArr[i];
  192. returnObj[codeType] = allLookup[codeType] || [];
  193. }
  194. return {
  195. data: returnObj
  196. };
  197. };
  198. /**
  199. *模拟框架的配置保存
  200. */
  201. exports.saveFn = function (config) {
  202. var param = JSON.parse(config.body);
  203. return yufp.extend(true, frameConfig, param);
  204. };
  205. /**
  206. *模拟框架的配置查询
  207. */
  208. exports.queryFn = function () {
  209. return frameConfig;
  210. };
  211. model['system'] = exports;
  212. })(window, yufp.mock);