edit.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>员工信息</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport"
  9. content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  10. <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
  11. <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
  12. <link rel="stylesheet" type="text/css" href="../../layuiadmin/style/formSelects-v4.css"/>
  13. <style>
  14. #group_selecter dl {
  15. max-height: 200px;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <div class="layui-fluid">
  21. <div class="layui-row layui-col-space15">
  22. <div class="layui-col-md6">
  23. <div class="layui-card">
  24. <div class="layui-card-body">
  25. <form class="layui-form" action="" lay-filter="component-form-element">
  26. <div class="layui-row layui-col-space10 layui-form-item">
  27. <div class="layui-col-lg6">
  28. <label class="layui-form-label"><font color='red' size="4">*</font>姓名:</label>
  29. <div class="layui-input-block">
  30. <input type="text" name="name" lay-verify="required" placeholder="请输入姓名"
  31. autocomplete="off" class="layui-input">
  32. </div>
  33. </div>
  34. <div class="layui-col-lg6">
  35. <label class="layui-form-label"><font color='red' size="4">*</font>电话:</label>
  36. <div class="layui-input-block">
  37. <input type="text" name="tel" placeholder="请输入电话" lay-verify="required"
  38. autocomplete="off" class="layui-input">
  39. </div>
  40. </div>
  41. <div class="layui-col-lg6">
  42. <label class="layui-form-label"><font color='red' size="4">*</font>账号:</label>
  43. <div class="layui-input-block">
  44. <input type="text" name="username" lay-verify="required" placeholder="请输入账号"
  45. autocomplete="off" class="layui-input">
  46. </div>
  47. </div>
  48. <div class="layui-col-lg6">
  49. <label class="layui-form-label">密码:</label>
  50. <div class="layui-input-block">
  51. <input type="password" name="password" placeholder="请输入密码" autocomplete="off"
  52. class="layui-input">
  53. <div class="layui-word-aux">默认密码:1111</div>
  54. </div>
  55. </div>
  56. <div class="layui-col-lg6">
  57. <label class="layui-form-label"><font color='red' size="4">*</font>性别:</label>
  58. <div class="layui-input-block">
  59. <input type="radio" name="gender" value="2" title="男" checked>
  60. <input type="radio" name="gender" value="1" title="女">
  61. </div>
  62. </div>
  63. <div class="layui-col-lg6">
  64. <label class="layui-form-label">在职状态:</label>
  65. <div class="layui-input-block">
  66. <select name="status" style="width: 40px;">
  67. <option value="2" selected>在职</option>
  68. <option value="3">离职</option>
  69. </select>
  70. </div>
  71. </div>
  72. <div class="layui-col-lg6">
  73. <label class="layui-form-label"><font color='red' size="4">*</font>总代理:</label>
  74. <div class="layui-input-block">
  75. <select id="id_general" name="general_agent" lay-verify="required" lay-filter="onGeneralAgentChange">
  76. <option value="">请选择总代理</option>
  77. </select>
  78. </div>
  79. </div>
  80. <div class="layui-col-lg6">
  81. <label class="layui-form-label">代理商:</label>
  82. <div class="layui-input-block">
  83. <select id="id_agents" name="agent"
  84. lay-filter="onAgentChange">
  85. <option value="">请选择代理商</option>
  86. </select>
  87. </div>
  88. </div>
  89. <div class="layui-col-lg6">
  90. <label class="layui-form-label">门店:</label>
  91. <div class="layui-input-block">
  92. <select id="id_stores" name="store" lay-search="">
  93. <option value="">请选择门店</option>
  94. </select>
  95. </div>
  96. </div>
  97. <div class="layui-col-lg6">
  98. <label class="layui-form-label">是否在用:</label>
  99. <div class="layui-input-block">
  100. <input type="checkbox" name="is_active" lay-skin="switch" lay-text="是|否" checked=""
  101. value="1">
  102. </div>
  103. </div>
  104. <div class="layui-col-lg6">
  105. <label class="layui-form-label">权限组:</label>
  106. <div class="layui-input-block">
  107. <select name="groups" xm-select="selectGroup"></select>
  108. </div>
  109. </div>
  110. <button class="layui-btn" id="id_user_save" lay-submit lay-filter="component-form-element"
  111. style="display: none">保存
  112. </button>
  113. </div>
  114. </form>
  115. </div>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. <script src="../../layuiadmin/layui/layui.js"></script>
  121. <script>
  122. layui.config({
  123. base: '../../../layuiadmin/' //静态资源所在路径
  124. }).extend({
  125. index: 'lib/index',
  126. formSelects: 'formSelects-v4'
  127. }).use(['index', 'form', 'utils', 'formSelects',], function () {
  128. var $ = layui.$
  129. , admin = layui.admin
  130. , form = layui.form
  131. , formSelects = layui.formSelects
  132. var id = layui.view.getParameterByName('id');
  133. form.val("component-form-element", {
  134. 'password': '1111'
  135. });
  136. var loadData = function (agents, stores) {
  137. if (id) {
  138. var editdata = JSON.parse(JSON.stringify(parent.layui.table.editdata)); // 框架有Bug所以这么转换
  139. //渲染select
  140. renderSelect(agents, stores, editdata.general_agent, editdata.agent);
  141. form.val("component-form-element", {
  142. 'password': ''
  143. });
  144. form.val("component-form-element", editdata);
  145. }
  146. }
  147. form.render(null, 'component-form-element');
  148. //获取字典
  149. function getDict(val){
  150. return new Promise((resolve, reject)=>{
  151. admin.req({
  152. url: '/agent/dict/',
  153. done: function (res) {
  154. var general_agents = res.data.general_agents;
  155. var agents = res.data.agents;
  156. var stores = res.data.stores;
  157. if(val === 'firstRender'){
  158. //总代理下拉框更新
  159. var general_node = $('#id_general');
  160. for (var i in general_agents) {
  161. var pid = general_agents[i].id;
  162. var general_agents_value = general_agents[i].name;
  163. general_node.append("<option value='" + pid + "'>" + general_agents_value + "</option>");
  164. }
  165. form.render();
  166. loadData(agents, stores);
  167. }
  168. var tempObj = {};
  169. tempObj['agents'] = agents;
  170. tempObj['stores'] = stores;
  171. //async函数调用成功的回调
  172. resolve(tempObj);
  173. }
  174. });
  175. })
  176. }
  177. //渲染选择框(修改的时候执行)
  178. function renderSelect(agents, stores, general_id, agent_id){
  179. var agents_node = $('#id_agents');
  180. var optionsHtml = "<option value=\"\">请选择代理商</option>";
  181. if(agents && agents.length > 0){
  182. agents.forEach(item=>{
  183. if(parseInt(general_id) === item['general_agent_id']){
  184. var pid = item.id;
  185. var agents_value = item.name;
  186. optionsHtml += "<option value='" + pid + "'>" + agents_value + "</option>\n";
  187. }
  188. });
  189. agents_node.html(optionsHtml);
  190. }
  191. var stores_node = $('#id_stores');
  192. var optionsStoresHtml = "<option value=\"\">请选择门店</option>";
  193. if(stores && stores.length > 0){
  194. stores.forEach(item=>{
  195. if(parseInt(agent_id) === item['agent_id']){
  196. var pid = item.id;
  197. var agents_value = item.name;
  198. optionsStoresHtml += "<option value='" + pid + "'>" + agents_value + "</option>\n";
  199. }
  200. });
  201. stores_node.html(optionsStoresHtml);
  202. }
  203. form.render();
  204. };
  205. //页面初次加载渲染页面
  206. getDict('firstRender');
  207. // 选择总代理
  208. form.on('select(onGeneralAgentChange)', async function (data) {
  209. //清空门店选择
  210. var stores_node = $('#id_stores');
  211. var optionsStoreHtml = "<option value=\"\">请选择门店</option>";
  212. stores_node.html(optionsStoreHtml);
  213. let general_id = data.value;
  214. let obj = await getDict();
  215. let agentList = obj['agents'];
  216. var agents_node = $('#id_agents');
  217. var optionsHtml = "<option value=\"\">请选择代理商</option>";
  218. if(agentList && agentList.length > 0){
  219. agentList.forEach(item=>{
  220. if(parseInt(general_id) === item['general_agent_id']){
  221. var pid = item.id;
  222. var agents_value = item.name;
  223. optionsHtml += "<option value='" + pid + "'>" + agents_value + "</option>\n";
  224. }
  225. });
  226. agents_node.html(optionsHtml);
  227. form.render();
  228. };
  229. });
  230. //选择代理商
  231. form.on('select(onAgentChange)', async function (data) {
  232. let agent_id = data.value;
  233. let obj = await getDict();
  234. let storesList = obj['stores'];
  235. var stores_node = $('#id_stores');
  236. if(storesList && storesList.length > 0){
  237. var optionsHtml = "<option value=\"\">请选择门店</option>";
  238. storesList.forEach(item=>{
  239. if(parseInt(agent_id) === item['agent_id']){
  240. var pid = item.id;
  241. var agents_value = item.name;
  242. optionsHtml += "<option value='" + pid + "'>" + agents_value + "</option>\n";
  243. }
  244. });
  245. stores_node.html(optionsHtml);
  246. form.render();
  247. }
  248. });
  249. formSelects.config('selectGroup', {
  250. beforeSuccess: function (eid, url, searchVal, result) {
  251. if (id) {
  252. var groupIds = parent.layui.table.editdata.group_ids;
  253. for (var n in result.data) {
  254. var item = result.data[n];
  255. if (groupIds.indexOf(parseInt(item.value)) > -1)
  256. item.selected = 'selected';
  257. }
  258. }
  259. return result;
  260. }
  261. });
  262. formSelects.data('selectGroup', 'server', {
  263. url: '/account/permission/dict/'
  264. });
  265. form.on('submit(component-form-element)', function (data) {
  266. //layer.msg(JSON.stringify(data.field));
  267. var submitData = data.field;
  268. var groups = formSelects.value('selectGroup', 'val');
  269. submitData.groups = JSON.stringify(groups);
  270. if (id) {
  271. var url = '/account/employee/' + id + '/';
  272. var type = 'put';
  273. } else {
  274. url = '/account/employee/';
  275. type = 'post';
  276. }
  277. admin.req({
  278. url: url
  279. , data: data.field
  280. , type: type
  281. , done: function (res) {
  282. parent.layui.onSubmitChild(res);
  283. }
  284. });
  285. return false;
  286. });
  287. parent.layui.submitChild = function () {
  288. $("#id_user_save").click();
  289. };
  290. });
  291. </script>
  292. </body>
  293. </html>