index.html 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890
  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. console.log(cacheData);
  249. var changeGroup = {
  250. reload: function (data) {
  251. var groupVal = data.where.gId;
  252. form.render();
  253. }
  254. };
  255. form.verify({
  256. accountName: function (value, item) {
  257. var message;
  258. var checkValue = value.trim();
  259. //用户名正则,4到16位(字母,数字,下划线,减号)
  260. // if (!(/^[[a-zA-Z0-9_]{2,16}$/.test(checkValue))) {
  261. // return "请输入正确的用户名";
  262. // }
  263. var oldAccountName = $("#oldAccountName").val();
  264. if (((oldAccountName != "") && (oldAccountName != checkValue))
  265. || ((oldAccountName == "") && (checkValue != ""))) {
  266. //初始化群组树
  267. var url1 = uParas.baseUrl + '/ent/groupAccount/checkAccountNameExist/' + checkValue;
  268. $.ajax({
  269. type: "GET",
  270. dataType: "json",
  271. async: false,
  272. url: url1,
  273. success: function (resp) {
  274. if (resp.code == 1) {
  275. message = "帐号名称已存在,请重新输入!"
  276. }
  277. }
  278. });
  279. if (message != '') {
  280. return message;
  281. }
  282. }
  283. },
  284. accountTel: function (value, item) {
  285. var message;
  286. var checkValue = value.trim();
  287. if (!(/^1\d{10}$/.test(value))) {
  288. return "请输入正确的手机号码";
  289. }
  290. var oldAccountTel = $("#oldAccountTel").val();
  291. if (((oldAccountTel != "") && (oldAccountTel != checkValue)) || ((oldAccountTel == "") && (checkValue != ""))) {
  292. //初始化群组树
  293. var url1 = uParas.baseUrl + '/ent/groupAccount/checkAccountTelExist/' + checkValue;
  294. $.ajax({
  295. type: "GET",
  296. dataType: "json",
  297. async: false,
  298. url: url1,
  299. success: function (resp) {
  300. if (resp.code == 1) {
  301. message = "手机号已存在,请更换手机号!"
  302. }
  303. }
  304. });
  305. if (message != '') {
  306. return message;
  307. }
  308. }
  309. },
  310. phone: [/^1\d{10}$/, '手机必须11位,只能是数字!'],
  311. email: [/^[a-z0-9._%-]+@([a-z0-9-]+\.)+[a-z]{2,4}$|^1[3|4|5|7|8]\d{9}$/, '邮箱格式不对'],
  312. // pwd: function () {
  313. // var newPwd = $('#newPassword').val();
  314. // var rePwd = $('#rePassword').val();
  315. // ;
  316. // if (newPwd != rePwd) {
  317. // return "两次输入不一致!";
  318. // }
  319. //
  320. // }
  321. });
  322. //左树设置
  323. var leftgroupTreeSetting = {
  324. data: {
  325. simpleData: {
  326. enable: true,
  327. idKey: "gId",
  328. pIdKey: "groupParent",
  329. rootPId: 0,
  330. },
  331. key: {
  332. name: "groupName",
  333. title: "groupName",
  334. }
  335. },
  336. callback: {
  337. onClick: leftNodeClick,
  338. }
  339. };
  340. function leftNodeClick(e, treeId, treeNode) {
  341. var groupId = treeNode.gId;
  342. var groupName = treeNode.groupName;
  343. $("#curGroupId").val(groupId);
  344. $("#curGroupName").html(groupName);
  345. refreshTable();
  346. }
  347. function refreshTable() {
  348. var groupId = $("#curGroupId").val();
  349. insTb.reload({
  350. where: {
  351. gId: groupId,
  352. }
  353. }, 'data');
  354. }
  355. //初始化群组树
  356. var url1 = uParas.baseUrl + '/ent/groupAccount/getGroupTreeList';
  357. admin.req(url1, {}, function (resp) {
  358. if (resp.code == 1) {
  359. var zNodes = resp.data;
  360. var treeObj = $.fn.zTree.init($('#groupTree'), leftgroupTreeSetting, zNodes);
  361. selectNode();
  362. //初始化打开所有节点
  363. treeObj.expandAll(true);
  364. layer.closeAll('loading');
  365. } else {
  366. layer.msg(resp.msg);
  367. }
  368. }, 'GET');
  369. //选择节点
  370. function selectNode() {
  371. var treeObj = $.fn.zTree.getZTreeObj("groupTree");
  372. var nodes = treeObj.getNodes();
  373. if (nodes.length > 0) {
  374. var node = nodes[0];
  375. treeObj.selectNode(node);
  376. treeObj.expandNode(node, true, false, false);
  377. var groupId = node.gId;
  378. var groupName = node.groupName;
  379. $("#curGroupId").val(groupId);
  380. $("#curGroupName").html(groupName);
  381. initDataTable();
  382. }
  383. }
  384. var insTb = null;
  385. function initDataTable() {
  386. console.log($("#curGroupId").val())
  387. // 渲染表格
  388. if (!insTb && typeof (insTb) != "undefined" && insTb != 0) {
  389. insTb = table.render({
  390. elem: '#datatable',
  391. url: uParas.baseUrl + '/ent/groupAccount/queryAccount',
  392. where: {
  393. gId: $("#curGroupId").val(),
  394. },
  395. page: true,
  396. height: 687,
  397. cellMinWidth: 150,
  398. cols: [[
  399. {type: 'numbers', align: 'center', title: '#', width: 60},
  400. {field: 'accountName', align: 'left', sort: false, title: '账号', width: 130},
  401. {
  402. field: 'accountRealName', align: 'left', sort: false, title: '姓名', width: 100
  403. // templet: function(data) {
  404. // return '<dvi lay-event="userInfo" ' +
  405. // 'style="cursor:pointer;">'+ data.accountRealName +'</dvi>';
  406. // }
  407. },
  408. {field: 'accountTel', align: 'center', sort: false, width: 120, title: '联系方式'},
  409. {field: 'groupName', align: 'left', sort: false, title: '所在部门'},
  410. {field: 'positionTitle', align: 'left', sort: false, title: '岗位'},
  411. {
  412. align: 'left', title: '授权部门', width: 120,
  413. templet: function (d) {
  414. return setGrantGroupName(d.grantGroupName);
  415. }
  416. },
  417. {
  418. align: 'center', title: '授权', width: 120,
  419. templet: function (d) {
  420. return setGrantGroup(d.grantGroupId);
  421. }
  422. },
  423. {
  424. field: 'accountStatus',
  425. align: 'center',
  426. width: 100,
  427. sort: false,
  428. title: '状态',
  429. templet: '#accountStatusTpl',
  430. unresize: true
  431. },
  432. {align: 'center', toolbar: '#optionTpl', title: '操作', width: 220},
  433. ]], done: function (res, curr, count) {
  434. console.log(res);
  435. console.log(curr);
  436. console.log(count);
  437. $.getJSON(uParas.baseUrl + "/admin/common/accountNumber", {cId: cacheData.user.cId}, function (result) {
  438. console.log(result);
  439. if (res.count >= result.data) {
  440. $('#btnAdd').addClass("layui-btn-disabled").attr("disabled", true);
  441. $('#importAccount').addClass("layui-btn-disabled").attr("disabled", true);
  442. }
  443. });
  444. }
  445. });
  446. }
  447. }
  448. /*授权部门*/
  449. function setGrantGroup(grantGroupId) {
  450. var html = '';
  451. if (grantGroupId > 0) {
  452. html += '<a class="layui-btn layui-btn-xs bg-c-update" lay-event="editGrantGroup">编辑</a>';
  453. html += '<a class="layui-btn layui-btn-xs bg-c-submit" lay-event="delGrantGroup">解除</a>';
  454. } else {
  455. html += '<a class="layui-btn layui-btn-xs bg-c-add" style="width: 78px" lay-event="addGrantGroup">添加 授权</a>';
  456. }
  457. return html;
  458. }
  459. /*授权部门*/
  460. function setGrantGroupName(grantGroupName) {
  461. var html = '<span style="color: #cccccc">未授权</span>';
  462. if (grantGroupName != null && grantGroupName != '') {
  463. html = ' ' + grantGroupName;
  464. }
  465. return html;
  466. }
  467. // 添加按钮点击事件
  468. $('#btnAdd').click(function () {
  469. var curGroupId = $("#curGroupId").val();
  470. showAddModel(curGroupId);
  471. });
  472. // 搜索
  473. form.on('submit(formSubSearchRole)', function (data) {
  474. insTb.reload({where: data.field}, 'data');
  475. });
  476. //监听帐号状态操作
  477. form.on('switch(accountStatus)', function (obj) {
  478. console.log(obj);
  479. var accountId = obj.elem.attributes['accountId'].nodeValue;
  480. var accountStatus = obj.elem.checked ? 0 : 1;
  481. layer.load();
  482. var url = uParas.baseUrl + '/ent/groupAccount/updateAccountStatus/' + accountId + "/" + accountStatus;
  483. admin.req(url, {}, function (resp) {
  484. layer.closeAll('loading');
  485. if (resp.code == 1) {
  486. layer.msg(resp.msg);
  487. } else {
  488. layer.msg(resp.msg);
  489. insTb.reload({}, 'data');
  490. }
  491. }, 'POST');
  492. });
  493. // 工具条点击事件
  494. table.on('tool(datatable)', function (obj) {
  495. var data = obj.data;
  496. var layEvent = obj.event;
  497. if (layEvent == 'edit') { // 修改
  498. showEditModel(data);
  499. } else if (layEvent == 'del') { // 删除
  500. doDel(obj);
  501. } else if (layEvent == 'resetPwd') {
  502. resetPwd(data);
  503. } else if (layEvent == 'addGrantGroup') {
  504. addGrantGroup(data);
  505. } else if (layEvent == 'editGrantGroup') {
  506. editGrantGroup(data);
  507. } else if (layEvent == 'delGrantGroup') {
  508. delGrantGroup(data);
  509. }
  510. // else if (layEvent == 'userInfo') {
  511. // window.location.href = './userInfo.html?aId=' + data.aId;
  512. // }
  513. });
  514. function reLoadData() {
  515. insTb.reload({}, 'data');
  516. }
  517. /*添加*/
  518. function addGrantGroup(data) {
  519. admin.open({
  520. type: 2,
  521. title: '授权部门',
  522. content: "./grantGroup.html?aId=" + data.aId,
  523. area: ['600px', '500px'],
  524. success: function (layero, dIndex) {
  525. layer.setTop(layero);
  526. },
  527. end: function () {
  528. reLoadData();
  529. }
  530. });
  531. }
  532. /*编辑授权*/
  533. function editGrantGroup(data) {
  534. admin.open({
  535. type: 2,
  536. title: '授权部门',
  537. content: "./grantGroup.html?aId=" + data.aId + '&gmpgId=' + data.gmpgId + '&grantGroupName=' + data.grantGroupName + '&grantGroupId=' + data.grantGroupId,
  538. area: ['600px', '500px'],
  539. success: function (layero, dIndex) {
  540. layer.setTop(layero);
  541. },
  542. end: function () {
  543. reLoadData();
  544. }
  545. });
  546. }
  547. /*解除授权*/
  548. function delGrantGroup(data) {
  549. layer.confirm('确定给【' + data.accountRealName + '】解除授权?', {
  550. skin: 'layui-layer-admin',
  551. shade: .1
  552. }
  553. , function (i) {
  554. layer.close(i);
  555. layer.load();
  556. var url = uParas.baseUrl + '/ent/groupAccount/delGrantGroup?gmpgId=' + data.gmpgId;
  557. admin.req(url, {}, function (resp) {
  558. layer.closeAll('loading');
  559. if (resp.code == 1) {
  560. layer.msg(resp.msg);
  561. insTb.reload({}, 'data');
  562. } else {
  563. layer.msg(resp.msg);
  564. }
  565. }, 'POST');
  566. });
  567. }
  568. // 显示新增弹窗
  569. function showAddModel(data) {
  570. var curGroupId = $("#curGroupId").val();
  571. var curGroupName = $("#curGroupName").html();
  572. admin.open({
  573. type: 1,
  574. title: '添加帐号',
  575. content: $('#modelTpl').html(),
  576. success: function (layero, dIndex) {
  577. _zTree._init('/admin/common/getGroupLists', 'gId', 'groupParent', 'groupName', 'gId', 0, "groupTree_", changeGroup, "menuContent_", "groupName_", "gId_", curGroupId);
  578. uParas.initSimpleSelect("positionId", 'modelForm', "/ent/position/getList", "positionTitle", "pId");
  579. $.ajax({
  580. url: uParas.baseUrl + '/admin/common/getRoleList',
  581. type: 'get',
  582. dataType: 'json',
  583. success: function (resp) {
  584. let rolePrefix = '企业普通用户';
  585. if (resp.code == 1) {
  586. const {data} = resp;
  587. let roleListDoms = '';
  588. $.each(resp.data, function (index, item) {
  589. if (item.roleName.indexOf(rolePrefix) !== -1) {
  590. roleListDoms += `<option value="${item.roleId}">${item.roleName}</option>`
  591. }
  592. });
  593. $('#roleList').append(roleListDoms);
  594. form.render('select')
  595. } else {
  596. layer.msg(resp.msg);
  597. }
  598. }
  599. })
  600. form.val('modelForm', {
  601. 'groupId': curGroupId,
  602. 'groupName': curGroupName,
  603. 'accountSex': '1',
  604. });
  605. var url = uParas.baseUrl + '/ent/groupAccount/saveAccountGroupPosition';
  606. // 保存处理
  607. form.on('submit(modelSubmit)', function (data) {
  608. layer.load();
  609. console.log(data.field);
  610. data.field.groupId = data.field.gId_;
  611. data.field.roleList = data.field.roleId;
  612. admin.req(url, data.field, function (resp) {
  613. layer.closeAll('loading');
  614. if (resp.code == 1) {
  615. layer.close(dIndex);
  616. layer.msg(resp.msg);
  617. insTb.reload({}, 'data');
  618. } else {
  619. layer.msg(resp.msg);
  620. }
  621. }, 'POST');
  622. return false;
  623. });
  624. }
  625. });
  626. }
  627. // 显示表单弹窗
  628. function showEditModel(data) {
  629. admin.open({
  630. type: 1,
  631. title: '编辑帐号',
  632. content: $('#modelTpl').html(),
  633. success: function (layero, dIndex) {
  634. $(".pwd").hide();
  635. $.ajax({
  636. url: uParas.baseUrl + '/admin/common/getRoleList',
  637. type: 'get',
  638. dataType: 'json',
  639. success: function (resp) {
  640. let rolePrefix = '企业普通用户';
  641. if (resp.code == 1) {
  642. const {data} = resp;
  643. let roleListDoms = '';
  644. $.each(resp.data, function (index, item) {
  645. if (item.roleName.indexOf(rolePrefix) !== -1) {
  646. roleListDoms += `<option value="${item.roleId}">${item.roleName}</option>`
  647. }
  648. });
  649. $('#roleList').append(roleListDoms);
  650. form.render('select')
  651. } else {
  652. layer.msg(resp.msg);
  653. }
  654. }
  655. })
  656. var url1 = uParas.baseUrl + "/ent/groupAccount/getAccount/" + data.gmId;
  657. admin.req(url1, {}, function (resp) {
  658. if (resp.code == 1) {
  659. form.val('modelForm', {
  660. 'groupId': resp.data.gId,
  661. 'gId_': resp.data.gId,
  662. 'groupName': resp.data.groupName,
  663. 'groupName_': resp.data.groupName,
  664. 'accountId': resp.data.aId,
  665. 'accountName': resp.data.accountName,
  666. 'password': resp.data.password,
  667. 'accountSex': "" + resp.data.accountSex + "",
  668. 'oldAccountName': resp.data.accountName,
  669. 'accountRealName': resp.data.accountRealName,
  670. 'accountTel': resp.data.accountTel,
  671. 'oldAccountTel': resp.data.accountTel,
  672. 'accountRank': resp.data.accountRank,
  673. 'accountIdCard': resp.data.accountIdCard,
  674. 'accountWorkType': resp.data.accountWorkType,
  675. 'roleList': resp.data.roleId,
  676. 'oldRoleId': resp.data.roleId,
  677. }); // 回显数据
  678. _zTree._init('/admin/common/getGroupLists', 'gId', 'groupParent', 'groupName', 'gId', 0, "groupTree_", changeGroup, "menuContent_", "groupName_", "gId_");
  679. uParas.initSimpleSelect("positionId", 'modelForm', "/ent/position/getList", "positionTitle", "pId", resp.data.positionId);
  680. $('#roleList').val(resp.data.roleId);
  681. form.render('select')
  682. } else {
  683. layer.msg(resp.msg)
  684. }
  685. }, 'GET');
  686. var url = uParas.baseUrl + '/ent/groupAccount/updateAccountGroupPosition';
  687. // 表单提交事件
  688. form.on('submit(modelSubmit)', function (dataF) {
  689. layer.load();
  690. var out = dataF.field;
  691. out.gmId = data.gmId;
  692. out.gmpId = data.gmpId;
  693. out.groupId = dataF.field.gId_;
  694. out.aId = data.aId;
  695. out.roleList = out.roleId;
  696. admin.req(url, out, function (resp) {
  697. layer.closeAll('loading');
  698. if (resp.code == 1) {
  699. layer.close(dIndex);
  700. layer.msg(resp.msg);
  701. insTb.reload({}, 'data');
  702. } else {
  703. layer.msg(resp.msg);
  704. }
  705. }, 'POST');
  706. return false;
  707. });
  708. }
  709. });
  710. }
  711. // 删除
  712. function doDel(obj) {
  713. layer.confirm('确定要删除“' + obj.data.accountRealName + '”吗?', {
  714. skin: 'layui-layer-admin',
  715. shade: .1
  716. }
  717. , function (i) {
  718. layer.close(i);
  719. layer.load();
  720. var url = uParas.baseUrl + '/ent/groupAccount/deleteAccountGroupPosition/' + obj.data.aId;
  721. admin.req(url, {}, function (resp) {
  722. layer.closeAll('loading');
  723. if (resp.code == 1) {
  724. layer.msg(resp.msg);
  725. insTb.reload({}, 'data');
  726. } else {
  727. layer.msg(resp.msg);
  728. }
  729. }, 'GET');
  730. });
  731. }
  732. //重置密码
  733. function resetPwd(data) {
  734. admin.open({
  735. type: 1,
  736. title: '重置密码',
  737. content: $('#resetPwdModelTpl').html(),
  738. success: function (layero, dIndex) {
  739. form.val('resetPwdModelForm', {
  740. 'aId': data.aId,
  741. }); // 回显数据
  742. var url = uParas.baseUrl + '/ent/groupAccount/resetPassword';
  743. // 表单提交事件
  744. form.on('submit(resetPwdModelSubmit)', function (data) {
  745. layer.load();
  746. admin.req(url, data.field, function (resp) {
  747. layer.closeAll('loading');
  748. if (resp.code == 1) {
  749. layer.close(dIndex);
  750. layer.msg("密码重置成功");
  751. } else {
  752. layer.msg(resp.msg);
  753. }
  754. }, 'POST');
  755. return false;
  756. });
  757. }
  758. });
  759. }
  760. $("#downXls").attr("href", uParas.staticUrl + "/excel/importAccount.xlsx");
  761. //账号导入
  762. $('#importAccount').click(function () {
  763. var lyXls = layer.open({
  764. type: 1,
  765. title: '导入EXCEL文件(参照模板,填写EXCEL数据并导入)',
  766. width: 500,
  767. // time: 10000,
  768. content: $('#xlsTpl').html(),
  769. success: function (layero, dIndex) {
  770. var url = uParas.baseUrl + '/ent/groupAccount/uploadAccount';
  771. url = url + "?cId=" + cacheData.user.cId + "&aId=" + cacheData.user.aId;
  772. form.on('submit(xlsSubmit)', function (data) {
  773. var formData = new FormData($("#xlsForm")[0]);
  774. uploadAll(url, formData, lyXls);
  775. return false;
  776. });
  777. }
  778. });
  779. function uploadAll(url, formData, lyXls) {
  780. $.ajax({
  781. cache: true,
  782. type: "post",
  783. url: url,
  784. async: false,
  785. data: formData,
  786. contentType: false,
  787. processData: false,
  788. error: function (request) {
  789. layer.alert('操作失败', {
  790. icon: 2,
  791. title: "提示"
  792. });
  793. },
  794. success: function (resp) {
  795. if (resp.code == 1) {
  796. admin.btnLoading('#xlsSubmit', '处理中。。。。');
  797. window.setTimeout(function uploadStatus() {
  798. var url = uParas.baseUrl + '/ent/groupAccount/uploadStatus';
  799. admin.req(url, {"index": resp.data}, function (resp) {
  800. if (resp.code === 0) {
  801. layer.close(lyXls);
  802. layer.alert("导入失败,请检查数据是否正确!");
  803. } else {
  804. if (resp.data.data == "1") {
  805. location.href = "./index.html"
  806. }
  807. }
  808. }, 'POST');
  809. }, 3000);
  810. } else {
  811. layer.alert(resp.msg);
  812. }
  813. }
  814. })
  815. }
  816. });
  817. });
  818. </script>
  819. </body>
  820. </html>