index.html 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  7. <title>帐号管理</title>
  8. <link rel="stylesheet" href="../../../assets/libs/layui/css/layui.css"/>
  9. <link rel="stylesheet" href="../../../assets/module/admin.css?v=312"/>
  10. <link rel="stylesheet" href="../../../assets/module/zTree/css/metroStyle/metroStyle.css"/>
  11. <link rel="stylesheet" href="../../../assets/module/formSelects/formSelects-v4.css"/>
  12. <body>
  13. <!-- 页面加载loading -->
  14. <div class="page-loading">
  15. <div class="ball-loader">
  16. <span></span><span></span><span></span><span></span>
  17. </div>
  18. </div>
  19. <!-- 正文开始 -->
  20. <div class="layui-fluid">
  21. <div class="layui-row layui-col-space15">
  22. <!-- 左栏 -->
  23. <div class="layui-col-sm12 layui-col-md1 layui-col-lg2">
  24. <div class="layui-card">
  25. <div class="layui-card-body mini-bar zTree" id="treeTbTree" style="height: 733px;overflow: scroll">
  26. <ul id="groupTree" class="ztree"></ul>
  27. <input type="hidden" id="curGroupId" value=""/>
  28. </div>
  29. </div>
  30. </div>
  31. <!-- 右栏 -->
  32. <div class="layui-col-sm12 layui-col-md11 layui-col-lg10">
  33. <div class="layui-card">
  34. <div class="layui-card-body">
  35. <div class="layui-form toolbar">
  36. <div class="layui-form-item text-right">
  37. <div class="layui-inline pull-left" style="margin-top:10px;">
  38. <span><i class="layui-icon layui-icon-group"></i>
  39. </span><span id="curGroupName"></span>
  40. </div>
  41. <div class="layui-inline">
  42. <label class="layui-form-label w-auto">搜索:</label>
  43. <div class="layui-input-inline mr0">
  44. <input name="keyword" class="layui-input" type="text" placeholder="输入关键字"/>
  45. </div>
  46. </div>
  47. <div class="layui-inline">
  48. <button class="layui-btn icon-btn bg-c-add" lay-filter="formSubSearchRole" lay-submit>
  49. <i class="layui-icon">&#xe615;</i>搜索
  50. </button>
  51. </div>
  52. <div class="layui-inline">
  53. <button id="btnAdd" class="layui-btn icon-btn bg-c-add"><i
  54. class="layui-icon">&#xe654;</i>添加
  55. </button>
  56. <a href="javascript:;" id="downXls"
  57. class="layui-btn icon-btn bg-c-add"><i
  58. class="layui-icon">&#xe654;</i>模版下载</a>
  59. <button id="importAccount"
  60. class="layui-btn icon-btn bg-c-add"><i
  61. class="layui-icon">&#xe654;</i>导入
  62. </button>
  63. </div>
  64. </div>
  65. </div>
  66. <table class="layui-table" id="datatable" lay-filter="datatable"></table>
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. </div>
  72. <!-- 状态列 -->
  73. <script type="text/html" id="accountStatusTpl">
  74. <input type="checkbox" lay-filter="accountStatus" value="{{d.accountStatus}}" accountId="{{d.aId}}"
  75. lay-skin="switch"
  76. lay-text="正常|锁定" {{d.accountStatus==0?'checked':''}}/>
  77. </script>
  78. <script type="text/html" id="grantGroupTpl">
  79. {{# if(d.grantGroupId > 0){ }}
  80. <a class="layui-table-link" lay-event="editGrantGroup"><i class="layui-icon layui-icon-friends"></i>{{d.grantGroupName}}</a>
  81. {{# }else{ }}
  82. <a class="layui-btn layui-btn-radius layui-btn-xs" lay-event="addGrantGroup"><i
  83. class="layui-icon layui-icon-add-1"></i>部门</a>
  84. {{# } }}
  85. </script>
  86. <!-- 表格操作列 -->
  87. <script type="text/html" id="optionTpl">
  88. {{# if(d.isA==0){ }}
  89. <a class="layui-btn layui-btn-primary layui-btn-xs bg-c-update" lay-event="edit">修改</a>
  90. <a class="layui-btn layui-btn-danger layui-btn-xs bg-c-submit" lay-event="del">删除</a>
  91. <a class="layui-btn layui-btn-danger layui-btn-xs bg-c-orange" lay-event="resetPwd">重置密码</a>
  92. {{# } }}
  93. </script>
  94. <!-- 表单弹窗 -->
  95. <script type="text/html" id="modelTpl">
  96. <form id="modelForm" lay-filter="modelForm" class="layui-form model-form">
  97. <div class="layui-form-item">
  98. <label class="layui-form-label">所属部门</label>
  99. <!-- <div class="layui-input-block">-->
  100. <!-- <input type="hidden" class="layui-input" id="groupId" name="groupId" value="" lay-verify="required"/>-->
  101. <!-- <input type="text" class="layui-input layui-disabled" id="groupName" name="groupName" value="" disabled/>-->
  102. <!-- </div>-->
  103. <div class="layui-input-block">
  104. <input type="text" id="groupName_" class="layui-input" name="groupName_" placeholder="点击选择"
  105. class="form-control" readonly lay-verify="required" required>
  106. <input type="hidden" id="gId_" name="gId_" readonly>
  107. <div id="menuContent_" class="menuContent">
  108. <ul id="groupTree_" class="ztree" style="margin-top:0;"></ul>
  109. </div>
  110. </div>
  111. </div>
  112. <div class="layui-form-item">
  113. <label class="layui-form-label">帐号</label>
  114. <div class="layui-input-block">
  115. <input type="hidden" class="layui-input" id="accountId" name="accountId" value=""/>
  116. <input type="hidden" class="layui-input" id="oldAccountName" name="oldAccountName" value=""/>
  117. <input type="text" class="layui-input" id="accountName" name="accountName" value=""
  118. autocomplete="off" lay-verify="accountName|required" maxlength="128"/>
  119. </div>
  120. </div>
  121. <div class="layui-form-item pwd">
  122. <label class="layui-form-label">密码</label>
  123. <div class="layui-input-block">
  124. <!--注:初始化密码为 888888-->
  125. <input type="text" disabled class="layui-input" value="注:初始化密码为 888888"
  126. style="border: 0px;color: red;"/>
  127. <input type="password" class="layui-input" id="password" name="password"
  128. value="888888" maxlength="32" style="display: none"/>
  129. </div>
  130. </div>
  131. <div class="layui-form-item">
  132. <label class="layui-form-label">姓名</label>
  133. <div class="layui-input-block">
  134. <input type="text" class="layui-input" id="accountRealName" name="accountRealName"
  135. placeholder="输入姓名" value="" autocomplete="off" lay-verify="required" maxlength="64"/>
  136. </div>
  137. </div>
  138. <div class="layui-form-item">
  139. <label class="layui-form-label">性别</label>
  140. <div class="layui-input-block">
  141. <input type="radio" name="accountSex" value="1" title="男">
  142. <input type="radio" name="accountSex" value="2" title="女">
  143. </div>
  144. </div>
  145. <div class="layui-form-item">
  146. <label class="layui-form-label">手机号码</label>
  147. <div class="layui-input-block">
  148. <input type="hidden" class="layui-input" id="oldAccountTel" name="oldAccountTel" placeholder="手机号码"/>
  149. <input type="text" class="layui-input" id="accountTel" name="accountTel" placeholder="手机号码"
  150. autocomplete="off" lay-verify="phone|accountTel" maxlength="11"/>
  151. </div>
  152. </div>
  153. <div class="layui-form-item">
  154. <label class="layui-form-label">角色</label>
  155. <div class="layui-input-block">
  156. <input type="hidden" name="oldRoleId" id="oldRoleId">
  157. <select id="roleList" name="roleId" lay-filter="roleList" lay-verType="tips"
  158. lay-verify="roleId|required" required
  159. class="layui-input-block">
  160. <option value="">选择角色</option>
  161. </select>
  162. </div>
  163. </div>
  164. <div class="layui-form-item">
  165. <label class="layui-form-label">岗位</label>
  166. <div class="layui-input-block">
  167. <select id="positionId" name="positionId" lay-search=""></select>
  168. <input type="hidden" id="gmpId" name="gmpId" value=""/>
  169. </div>
  170. </div>
  171. <div class="layui-form-item">
  172. <label class="layui-form-label">身份证号</label>
  173. <div class="layui-input-block">
  174. <input type="text" class="layui-input" id="accountIdCard" name="accountIdCard" placeholder="身份证号"
  175. autocomplete="off" maxlength="18"/>
  176. </div>
  177. </div>
  178. <div class="layui-form-item">
  179. <label class="layui-form-label">职称</label>
  180. <div class="layui-input-block">
  181. <input type="text" class="layui-input" id="accountRank" name="accountRank" placeholder="职称"
  182. autocomplete="off" maxlength="64"/>
  183. </div>
  184. </div>
  185. <div class="layui-form-item">
  186. <label class="layui-form-label">工种</label>
  187. <div class="layui-input-block">
  188. <input type="text" class="layui-input" id="accountWorkType" name="accountWorkType" placeholder="工种"
  189. autocomplete="off" maxlength="64"/>
  190. </div>
  191. </div>
  192. <div class="layui-form-item text-right">
  193. <button class="layui-btn layui-btn-primary" type="button" ew-event="closePageDialog">取消</button>
  194. <button class="layui-btn" lay-filter="modelSubmit" lay-submit>保存</button>
  195. </div>
  196. </form>
  197. </script>
  198. <script type="text/html" id="resetPwdModelTpl">
  199. <form id="resetPwdModelForm" lay-filter="resetPwdModelForm" class="layui-form model-form">
  200. <div class="layui-form-item">
  201. <div class="" style="color: red;margin-left: 57px">
  202. 温馨提示:系统默认重置密码为 888888
  203. </div>
  204. <input type="hidden" name="aId" value=""/>
  205. <input type="password" class="layui-input" id="newPassword" name="newPassword" value="888888"
  206. lay-verify="pwd|required" maxlength="32" style="display: none"/>
  207. </div>
  208. <!--<div class="layui-form-item">-->
  209. <!--<label class="layui-form-label">再输一遍</label>-->
  210. <!--<div class="layui-input-block">-->
  211. <!--<input type="password" class="layui-input" id="rePassword" name="rePassword" value=""-->
  212. <!--lay-verify="pwd|required" maxlength="32"/>-->
  213. <!--</div>-->
  214. <!--</div>-->
  215. <div class="layui-form-item text-right">
  216. <button class="layui-btn layui-btn-primary" type="button" ew-event="closePageDialog">取消</button>
  217. <button class="layui-btn" lay-filter="resetPwdModelSubmit" lay-submit>确认</button>
  218. </div>
  219. </form>
  220. </script>
  221. <!-- js部分 -->
  222. <script type="text/javascript" src="../../../assets/libs/layui/layui.js"></script>
  223. <script type="text/javascript" src="../../../assets/js/common.js?v=313"></script>
  224. <script type="text/html" id="xlsTpl">
  225. <form id="xlsForm" lay-filter="xlsForm" enctype="multipart/form-data" class="layui-form model-form">
  226. <div class="layui-form-item">
  227. <label class="layui-form-label">选择文件:</label>
  228. <div class="layui-input-block" style="display: flex;align-items: center;">
  229. <input name="file" id="file" type="file"/>
  230. </div>
  231. </div>
  232. <div class="layui-form-item text-right">
  233. <button class="layui-btn bg-c-back layui-btn-primary" type="button" ew-event="closePageDialog">取消</button>
  234. <button class="layui-btn bg-c-add" id="xlsSubmit" lay-filter="xlsSubmit" lay-submit>开始导入</button>
  235. </div>
  236. </form>
  237. </script>
  238. <script>
  239. layui.use(['iconPicker', 'layer', 'element', 'form', 'table', 'admin', 'uParas', 'util', 'zTree', 'formSelects', '_zTree'], function () {
  240. var $ = layui.jquery;
  241. var layer = layui.layer;
  242. var form = layui.form;
  243. var table = layui.table;
  244. var admin = layui.admin;
  245. var uParas = layui.uParas;
  246. var _zTree = layui._zTree;
  247. var cacheData = layui.data(uParas.tableName);
  248. var changeGroup = {
  249. reload: function (data) {
  250. var groupVal = data.where.gId;
  251. form.render();
  252. }
  253. };
  254. form.verify({
  255. accountName: function (value, item) {
  256. var message;
  257. var checkValue = value.trim();
  258. //用户名正则,4到16位(字母,数字,下划线,减号)
  259. // if (!(/^[[a-zA-Z0-9_]{2,16}$/.test(checkValue))) {
  260. // return "请输入正确的用户名";
  261. // }
  262. var oldAccountName = $("#oldAccountName").val();
  263. if (((oldAccountName != "") && (oldAccountName != checkValue))
  264. || ((oldAccountName == "") && (checkValue != ""))) {
  265. //初始化群组树
  266. var url1 = uParas.baseUrl + '/ent/groupAccount/checkAccountNameExist/' + checkValue;
  267. $.ajax({
  268. type: "GET",
  269. dataType: "json",
  270. async: false,
  271. url: url1,
  272. success: function (resp) {
  273. if (resp.code == 1) {
  274. message = "帐号名称已存在,请重新输入!"
  275. }
  276. }
  277. });
  278. if (message != '') {
  279. return message;
  280. }
  281. }
  282. },
  283. accountTel: function (value, item) {
  284. var message;
  285. var checkValue = value.trim();
  286. if (!(/^1\d{10}$/.test(value))) {
  287. return "请输入正确的手机号码";
  288. }
  289. var oldAccountTel = $("#oldAccountTel").val();
  290. if (((oldAccountTel != "") && (oldAccountTel != checkValue)) || ((oldAccountTel == "") && (checkValue != ""))) {
  291. //初始化群组树
  292. var url1 = uParas.baseUrl + '/ent/groupAccount/checkAccountTelExist/' + checkValue;
  293. $.ajax({
  294. type: "GET",
  295. dataType: "json",
  296. async: false,
  297. url: url1,
  298. success: function (resp) {
  299. if (resp.code == 1) {
  300. message = "手机号已存在,请更换手机号!"
  301. }
  302. }
  303. });
  304. if (message != '') {
  305. return message;
  306. }
  307. }
  308. },
  309. phone: [/^1\d{10}$/, '手机必须11位,只能是数字!'],
  310. email: [/^[a-z0-9._%-]+@([a-z0-9-]+\.)+[a-z]{2,4}$|^1[3|4|5|7|8]\d{9}$/, '邮箱格式不对'],
  311. // pwd: function () {
  312. // var newPwd = $('#newPassword').val();
  313. // var rePwd = $('#rePassword').val();
  314. // ;
  315. // if (newPwd != rePwd) {
  316. // return "两次输入不一致!";
  317. // }
  318. //
  319. // }
  320. });
  321. //左树设置
  322. var leftgroupTreeSetting = {
  323. data: {
  324. simpleData: {
  325. enable: true,
  326. idKey: "gId",
  327. pIdKey: "groupParent",
  328. rootPId: 0,
  329. },
  330. key: {
  331. name: "groupName",
  332. title: "groupName",
  333. }
  334. },
  335. callback: {
  336. onClick: leftNodeClick,
  337. }
  338. };
  339. function leftNodeClick(e, treeId, treeNode) {
  340. var groupId = treeNode.gId;
  341. var groupName = treeNode.groupName;
  342. $("#curGroupId").val(groupId);
  343. $("#curGroupName").html(groupName);
  344. refreshTable();
  345. }
  346. function refreshTable() {
  347. var groupId = $("#curGroupId").val();
  348. insTb.reload({
  349. where: {
  350. gId: groupId,
  351. }
  352. }, 'data');
  353. }
  354. //初始化群组树
  355. var url1 = uParas.baseUrl + '/ent/groupAccount/getGroupTreeList';
  356. admin.req(url1, {}, function (resp) {
  357. if (resp.code == 1) {
  358. var zNodes = resp.data;
  359. var treeObj = $.fn.zTree.init($('#groupTree'), leftgroupTreeSetting, zNodes);
  360. selectNode();
  361. //初始化打开所有节点
  362. treeObj.expandAll(true);
  363. layer.closeAll('loading');
  364. } else {
  365. layer.msg(resp.msg);
  366. }
  367. }, 'GET');
  368. //选择节点
  369. function selectNode() {
  370. var treeObj = $.fn.zTree.getZTreeObj("groupTree");
  371. var nodes = treeObj.getNodes();
  372. if (nodes.length > 0) {
  373. var node = nodes[0];
  374. treeObj.selectNode(node);
  375. treeObj.expandNode(node, true, false, false);
  376. var groupId = node.gId;
  377. var groupName = node.groupName;
  378. $("#curGroupId").val(groupId);
  379. $("#curGroupName").html(groupName);
  380. initDataTable();
  381. }
  382. }
  383. var insTb = null;
  384. function initDataTable() {
  385. console.log($("#curGroupId").val())
  386. // 渲染表格
  387. if (!insTb && typeof (insTb) != "undefined" && insTb != 0) {
  388. insTb = table.render({
  389. elem: '#datatable',
  390. url: uParas.baseUrl + '/ent/groupAccount/queryAccount',
  391. where: {
  392. gId: $("#curGroupId").val(),
  393. },
  394. page: true,
  395. height: 687,
  396. cellMinWidth: 150,
  397. cols: [[
  398. {type: 'numbers', align: 'center', title: '#', width: 60},
  399. {field: 'accountName', align: 'left', sort: false, title: '账号', width: 130},
  400. {
  401. field: 'accountRealName', align: 'left', sort: false, title: '姓名', width: 100
  402. // templet: function(data) {
  403. // return '<dvi lay-event="userInfo" ' +
  404. // 'style="cursor:pointer;">'+ data.accountRealName +'</dvi>';
  405. // }
  406. },
  407. {field: 'accountTel', align: 'center', sort: false, width: 120, title: '联系方式'},
  408. {field: 'groupName', align: 'left', sort: false, title: '所在部门'},
  409. {field: 'positionTitle', align: 'left', sort: false, title: '岗位'},
  410. {
  411. align: 'left', title: '授权部门', width: 120,
  412. templet: function (d) {
  413. return setGrantGroupName(d.grantGroupName);
  414. }
  415. },
  416. {
  417. align: 'center', title: '授权', width: 120,
  418. templet: function (d) {
  419. return setGrantGroup(d.grantGroupId);
  420. }
  421. },
  422. {
  423. field: 'accountStatus',
  424. align: 'center',
  425. width: 100,
  426. sort: false,
  427. title: '状态',
  428. templet: '#accountStatusTpl',
  429. unresize: true
  430. },
  431. {align: 'center', toolbar: '#optionTpl', title: '操作', width: 220},
  432. ]]
  433. });
  434. }
  435. }
  436. /*授权部门*/
  437. function setGrantGroup(grantGroupId) {
  438. var html = '';
  439. if (grantGroupId > 0) {
  440. html += '<a class="layui-btn layui-btn-xs bg-c-update" lay-event="editGrantGroup">编辑</a>';
  441. html += '<a class="layui-btn layui-btn-xs bg-c-submit" lay-event="delGrantGroup">解除</a>';
  442. } else {
  443. html += '<a class="layui-btn layui-btn-xs bg-c-add" style="width: 78px" lay-event="addGrantGroup">添加 授权</a>';
  444. }
  445. return html;
  446. }
  447. /*授权部门*/
  448. function setGrantGroupName(grantGroupName) {
  449. var html = '<span style="color: #cccccc">未授权</span>';
  450. if (grantGroupName != null && grantGroupName != '') {
  451. html = ' ' + grantGroupName;
  452. }
  453. return html;
  454. }
  455. // 添加按钮点击事件
  456. $('#btnAdd').click(function () {
  457. var curGroupId = $("#curGroupId").val();
  458. showAddModel(curGroupId);
  459. });
  460. // 搜索
  461. form.on('submit(formSubSearchRole)', function (data) {
  462. insTb.reload({where: data.field}, 'data');
  463. });
  464. //监听帐号状态操作
  465. form.on('switch(accountStatus)', function (obj) {
  466. console.log(obj);
  467. var accountId = obj.elem.attributes['accountId'].nodeValue;
  468. var accountStatus = obj.elem.checked ? 0 : 1;
  469. layer.load();
  470. var url = uParas.baseUrl + '/ent/groupAccount/updateAccountStatus/' + accountId + "/" + accountStatus;
  471. admin.req(url, {}, function (resp) {
  472. layer.closeAll('loading');
  473. if (resp.code == 1) {
  474. layer.msg(resp.msg);
  475. } else {
  476. layer.msg(resp.msg);
  477. insTb.reload({}, 'data');
  478. }
  479. }, 'POST');
  480. });
  481. // 工具条点击事件
  482. table.on('tool(datatable)', function (obj) {
  483. var data = obj.data;
  484. var layEvent = obj.event;
  485. if (layEvent == 'edit') { // 修改
  486. showEditModel(data);
  487. } else if (layEvent == 'del') { // 删除
  488. doDel(obj);
  489. } else if (layEvent == 'resetPwd') {
  490. resetPwd(data);
  491. } else if (layEvent == 'addGrantGroup') {
  492. addGrantGroup(data);
  493. } else if (layEvent == 'editGrantGroup') {
  494. editGrantGroup(data);
  495. } else if (layEvent == 'delGrantGroup') {
  496. delGrantGroup(data);
  497. }
  498. // else if (layEvent == 'userInfo') {
  499. // window.location.href = './userInfo.html?aId=' + data.aId;
  500. // }
  501. });
  502. function reLoadData() {
  503. insTb.reload({}, 'data');
  504. }
  505. /*添加*/
  506. function addGrantGroup(data) {
  507. admin.open({
  508. type: 2,
  509. title: '授权部门',
  510. content: "./grantGroup.html?aId=" + data.aId,
  511. area: ['600px', '500px'],
  512. success: function (layero, dIndex) {
  513. layer.setTop(layero);
  514. },
  515. end: function () {
  516. reLoadData();
  517. }
  518. });
  519. }
  520. /*编辑授权*/
  521. function editGrantGroup(data) {
  522. admin.open({
  523. type: 2,
  524. title: '授权部门',
  525. content: "./grantGroup.html?aId=" + data.aId + '&gmpgId=' + data.gmpgId + '&grantGroupName=' + data.grantGroupName + '&grantGroupId=' + data.grantGroupId,
  526. area: ['600px', '500px'],
  527. success: function (layero, dIndex) {
  528. layer.setTop(layero);
  529. },
  530. end: function () {
  531. reLoadData();
  532. }
  533. });
  534. }
  535. /*解除授权*/
  536. function delGrantGroup(data) {
  537. layer.confirm('确定给【' + data.accountRealName + '】解除授权?', {
  538. skin: 'layui-layer-admin',
  539. shade: .1
  540. }
  541. , function (i) {
  542. layer.close(i);
  543. layer.load();
  544. var url = uParas.baseUrl + '/ent/groupAccount/delGrantGroup?gmpgId=' + data.gmpgId;
  545. admin.req(url, {}, function (resp) {
  546. layer.closeAll('loading');
  547. if (resp.code == 1) {
  548. layer.msg(resp.msg);
  549. insTb.reload({}, 'data');
  550. } else {
  551. layer.msg(resp.msg);
  552. }
  553. }, 'POST');
  554. });
  555. }
  556. // 显示新增弹窗
  557. function showAddModel(data) {
  558. var curGroupId = $("#curGroupId").val();
  559. var curGroupName = $("#curGroupName").html();
  560. admin.open({
  561. type: 1,
  562. title: '添加帐号',
  563. content: $('#modelTpl').html(),
  564. success: function (layero, dIndex) {
  565. _zTree._init('/admin/common/getGroupLists', 'gId', 'groupParent', 'groupName', 'gId', 0, "groupTree_", changeGroup, "menuContent_", "groupName_", "gId_", curGroupId);
  566. uParas.initSimpleSelect("positionId", 'modelForm', "/ent/position/getList", "positionTitle", "pId");
  567. $.ajax({
  568. url: uParas.baseUrl + '/admin/common/getRoleList',
  569. type: 'get',
  570. dataType: 'json',
  571. success: function (resp) {
  572. let rolePrefix = '企业普通用户';
  573. if (resp.code == 1) {
  574. const {data} = resp;
  575. let roleListDoms = '';
  576. $.each(resp.data, function (index, item) {
  577. if (item.roleName.indexOf(rolePrefix) !== -1) {
  578. roleListDoms += `<option value="${item.roleId}">${item.roleName}</option>`
  579. }
  580. });
  581. $('#roleList').append(roleListDoms);
  582. form.render('select')
  583. } else {
  584. layer.msg(resp.msg);
  585. }
  586. }
  587. })
  588. form.val('modelForm', {
  589. 'groupId': curGroupId,
  590. 'groupName': curGroupName,
  591. 'accountSex': '1',
  592. });
  593. var url = uParas.baseUrl + '/ent/groupAccount/saveAccountGroupPosition';
  594. // 保存处理
  595. form.on('submit(modelSubmit)', function (data) {
  596. layer.load();
  597. console.log(data.field);
  598. data.field.groupId = data.field.gId_;
  599. data.field.roleList = data.field.roleId;
  600. admin.req(url, data.field, function (resp) {
  601. layer.closeAll('loading');
  602. if (resp.code == 1) {
  603. layer.close(dIndex);
  604. layer.msg(resp.msg);
  605. insTb.reload({}, 'data');
  606. } else {
  607. layer.msg(resp.msg);
  608. }
  609. }, 'POST');
  610. return false;
  611. });
  612. }
  613. });
  614. }
  615. // 显示表单弹窗
  616. function showEditModel(data) {
  617. admin.open({
  618. type: 1,
  619. title: '编辑帐号',
  620. content: $('#modelTpl').html(),
  621. success: function (layero, dIndex) {
  622. $(".pwd").hide();
  623. $.ajax({
  624. url: uParas.baseUrl + '/admin/common/getRoleList',
  625. type: 'get',
  626. dataType: 'json',
  627. success: function (resp) {
  628. let rolePrefix = '企业普通用户';
  629. if (resp.code == 1) {
  630. const {data} = resp;
  631. let roleListDoms = '';
  632. $.each(resp.data, function (index, item) {
  633. if (item.roleName.indexOf(rolePrefix) !== -1) {
  634. roleListDoms += `<option value="${item.roleId}">${item.roleName}</option>`
  635. }
  636. });
  637. $('#roleList').append(roleListDoms);
  638. form.render('select')
  639. } else {
  640. layer.msg(resp.msg);
  641. }
  642. }
  643. })
  644. var url1 = uParas.baseUrl + "/ent/groupAccount/getAccount/" + data.gmId;
  645. admin.req(url1, {}, function (resp) {
  646. if (resp.code == 1) {
  647. form.val('modelForm', {
  648. 'groupId': resp.data.gId,
  649. 'gId_': resp.data.gId,
  650. 'groupName': resp.data.groupName,
  651. 'groupName_': resp.data.groupName,
  652. 'accountId': resp.data.aId,
  653. 'accountName': resp.data.accountName,
  654. 'password': resp.data.password,
  655. 'accountSex': "" + resp.data.accountSex + "",
  656. 'oldAccountName': resp.data.accountName,
  657. 'accountRealName': resp.data.accountRealName,
  658. 'accountTel': resp.data.accountTel,
  659. 'oldAccountTel': resp.data.accountTel,
  660. 'accountRank': resp.data.accountRank,
  661. 'accountIdCard': resp.data.accountIdCard,
  662. 'accountWorkType': resp.data.accountWorkType,
  663. 'roleList': resp.data.roleId,
  664. 'oldRoleId': resp.data.roleId,
  665. }); // 回显数据
  666. _zTree._init('/admin/common/getGroupLists', 'gId', 'groupParent', 'groupName', 'gId', 0, "groupTree_", changeGroup, "menuContent_", "groupName_", "gId_");
  667. uParas.initSimpleSelect("positionId", 'modelForm', "/ent/position/getList", "positionTitle", "pId", resp.data.positionId);
  668. $('#roleList').val(resp.data.roleId);
  669. form.render('select')
  670. } else {
  671. layer.msg(resp.msg)
  672. }
  673. }, 'GET');
  674. var url = uParas.baseUrl + '/ent/groupAccount/updateAccountGroupPosition';
  675. // 表单提交事件
  676. form.on('submit(modelSubmit)', function (dataF) {
  677. layer.load();
  678. var out = dataF.field;
  679. out.gmId = data.gmId;
  680. out.gmpId = data.gmpId;
  681. out.groupId = dataF.field.gId_;
  682. out.aId = data.aId;
  683. out.roleList = out.roleId;
  684. admin.req(url, out, function (resp) {
  685. layer.closeAll('loading');
  686. if (resp.code == 1) {
  687. layer.close(dIndex);
  688. layer.msg(resp.msg);
  689. insTb.reload({}, 'data');
  690. } else {
  691. layer.msg(resp.msg);
  692. }
  693. }, 'POST');
  694. return false;
  695. });
  696. }
  697. });
  698. }
  699. // 删除
  700. function doDel(obj) {
  701. layer.confirm('确定要删除“' + obj.data.accountRealName + '”吗?', {
  702. skin: 'layui-layer-admin',
  703. shade: .1
  704. }
  705. , function (i) {
  706. layer.close(i);
  707. layer.load();
  708. var url = uParas.baseUrl + '/ent/groupAccount/deleteAccountGroupPosition/' + obj.data.aId;
  709. admin.req(url, {}, function (resp) {
  710. layer.closeAll('loading');
  711. if (resp.code == 1) {
  712. layer.msg(resp.msg);
  713. insTb.reload({}, 'data');
  714. } else {
  715. layer.msg(resp.msg);
  716. }
  717. }, 'GET');
  718. });
  719. }
  720. //重置密码
  721. function resetPwd(data) {
  722. admin.open({
  723. type: 1,
  724. title: '重置密码',
  725. content: $('#resetPwdModelTpl').html(),
  726. success: function (layero, dIndex) {
  727. form.val('resetPwdModelForm', {
  728. 'aId': data.aId,
  729. }); // 回显数据
  730. var url = uParas.baseUrl + '/ent/groupAccount/resetPassword';
  731. // 表单提交事件
  732. form.on('submit(resetPwdModelSubmit)', function (data) {
  733. layer.load();
  734. admin.req(url, data.field, function (resp) {
  735. layer.closeAll('loading');
  736. if (resp.code == 1) {
  737. layer.close(dIndex);
  738. layer.msg("密码重置成功");
  739. } else {
  740. layer.msg(resp.msg);
  741. }
  742. }, 'POST');
  743. return false;
  744. });
  745. }
  746. });
  747. }
  748. $("#downXls").attr("href", uParas.staticUrl + "/excel/importAccount.xlsx");
  749. //账号导入
  750. $('#importAccount').click(function () {
  751. var lyXls = layer.open({
  752. type: 1,
  753. title: '导入EXCEL文件(参照模板,填写EXCEL数据并导入)',
  754. width: 500,
  755. // time: 10000,
  756. content: $('#xlsTpl').html(),
  757. success: function (layero, dIndex) {
  758. var url = uParas.baseUrl + '/ent/groupAccount/uploadAccount';
  759. url = url + "?cId=" + cacheData.user.cId + "&aId=" + cacheData.user.aId;
  760. form.on('submit(xlsSubmit)', function (data) {
  761. var formData = new FormData($("#xlsForm")[0]);
  762. uploadAll(url, formData, lyXls);
  763. return false;
  764. });
  765. }
  766. });
  767. function uploadAll(url, formData, lyXls) {
  768. $.ajax({
  769. cache: true,
  770. type: "post",
  771. url: url,
  772. async: false,
  773. data: formData,
  774. contentType: false,
  775. processData: false,
  776. error: function (request) {
  777. layer.alert('操作失败', {
  778. icon: 2,
  779. title: "提示"
  780. });
  781. },
  782. success: function (resp) {
  783. if (resp.code == 1) {
  784. admin.btnLoading('#xlsSubmit', '处理中。。。。');
  785. window.setTimeout(function uploadStatus() {
  786. var url = uParas.baseUrl + '/ent/groupAccount/uploadStatus';
  787. admin.req(url, {"index": resp.data}, function (resp) {
  788. if (resp.code === 0) {
  789. layer.close(lyXls);
  790. layer.alert("导入失败,请检查数据是否正确!");
  791. } else {
  792. if (resp.data.data == "1") {
  793. location.href = "./index.html"
  794. }
  795. }
  796. }, 'POST');
  797. }, 3000);
  798. } else {
  799. layer.alert(resp.msg);
  800. }
  801. }
  802. })
  803. }
  804. });
  805. });
  806. </script>
  807. </body>
  808. </html>