admin.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422
  1. <link rel="stylesheet" href="http://cdn.amazeui.org//amazeui/2.5.0/css/amazeui.min.css">
  2. <link rel="stylesheet" href="<?php echo Yii::app()->request->baseUrl; ?>/css/datetimepicker.css">
  3. <style type="text/css">
  4. body {margin: 8px;}
  5. </style>
  6. <div id="main">
  7. <div region="west" border="false" style="width: 550px;">
  8. <table id="dg_content"></table>
  9. <div id="tb_content">
  10. <div class="tb_line">
  11. <input id="ss" />
  12. <span class="tb_label">状态:</span>
  13. <input id="filter_status" />
  14. <a href="#" class='easyui-linkbutton' iconCls="icon-search" plain="true" onclick="search_content()">查询</a>
  15. </div>
  16. <div class="tb_box">
  17. <a href="#" class="easyui-menubutton" data-options="menu:'#mm1',iconCls:'icon-edit'">更多操作</a>
  18. <div id="mm1" style="width:150px;">
  19. <div data-options="iconCls:'icon-undo'" onclick="multiple_set_status(-1);return false;">批量删除</div>
  20. <div data-options="iconCls:'icon-redo'" onclick="multiple_set_status(1);return false;">批量审核</div>
  21. </div>
  22. </div>
  23. </div>
  24. </div>
  25. <div class="easyui-accordion" region="center">
  26. <div region="center" title="信息">
  27. <div class="easyui-layout detail_layout">
  28. <div data-options="region:'center'" class="detail_center">
  29. <div class="detail_main">
  30. <form id="content_form" method="post">
  31. <ul>
  32. <li class="f_item">
  33. <div class="box">
  34. <div class="f_label">
  35. <span>用户名: </span>
  36. </div>
  37. <div class="box_flex f_content">
  38. <input type="hidden" name="_id" id="content_id" value=0 />
  39. <input type="text" class="easyui-validatebox" name="name" style="width: 200px;" />
  40. </div>
  41. </div>
  42. </li>
  43. <li class="f_item">
  44. <div class="box">
  45. <div class="f_label">
  46. <span>邮箱: </span>
  47. </div>
  48. <div class="box_flex f_content">
  49. <input type="text" name="email" style="width: 200px;" />
  50. </div>
  51. </div>
  52. </li>
  53. <li class="f_item">
  54. <div class="box">
  55. <div class="f_label">
  56. <span>注册时间: </span>
  57. </div>
  58. <div class="box_flex f_content">
  59. <input type="text" name="reg_time" disabled="disabled" style="width: 200px;" />
  60. </div>
  61. </div>
  62. </li>
  63. <li class="f_item">
  64. <div class="box">
  65. <div class="f_label">
  66. <span>上一次登录: </span>
  67. </div>
  68. <div class="box_flex f_content">
  69. <input type="text" name="last_login" disabled="disabled" style="width: 200px;" />
  70. </div>
  71. </div>
  72. </li>
  73. <li class="f_item">
  74. <div class="box">
  75. <div class="f_label">
  76. <span>登录次数: </span>
  77. </div>
  78. <div class="box_flex f_content">
  79. <input type="text" name="login_times" disabled="disabled" style="width: 200px;" />
  80. </div>
  81. </div>
  82. </li>
  83. <li class="f_item">
  84. <div class="box">
  85. <div class="f_label">
  86. <span>状态: </span>
  87. </div>
  88. <div class="box_flex f_content">
  89. <input id="new_status" name="status" />
  90. </div>
  91. </div>
  92. </li>
  93. <li class="f_item">
  94. <div class="box">
  95. <div class="f_label">
  96. <span>角色: </span>
  97. </div>
  98. <div class="box_flex f_content">
  99. <input id="role" class="easyui-combobox" name="role" data-options="editable: false,data: roles,multiple: true" style="width: 200px;">
  100. </div>
  101. </div>
  102. </li>
  103. <li class="f_item">
  104. <div class="box">
  105. <div class="f_label">
  106. <span>修改密码: </span>
  107. </div>
  108. <div class="box_flex f_content">
  109. <input type="checkbox" id="modify_password" name="modify_password" />
  110. </div>
  111. </div>
  112. </li>
  113. <li id="modify_password_box" style="display:none;">
  114. <ul>
  115. <li class="f_item">
  116. <div class="box">
  117. <div class="f_label">
  118. <span>新密码: </span>
  119. </div>
  120. <div class="box_flex f_content">
  121. <input type="password" id="new_password" name="new_password" class="easyui-validatebox" />
  122. </div>
  123. </div>
  124. </li>
  125. <li class="f_item">
  126. <div class="box">
  127. <div class="f_label">
  128. <span>确认密码: </span>
  129. </div>
  130. <div class="box_flex f_content">
  131. <input type="password" id="confirm_new_password" name="confirm_new_password" class="easyui-validatebox" validType="equals['#new_password']"/>
  132. </div>
  133. </div>
  134. </li>
  135. </ul>
  136. </li>
  137. <li class="f_item">
  138. <div class="box">
  139. <div class="f_label">
  140. </div>
  141. <div class="box_flex f_content">
  142. <span id="action_info" style="color:green;"></span>
  143. </div>
  144. </div>
  145. </li>
  146. </ul>
  147. </form>
  148. </div>
  149. </div>
  150. <div data-options="region:'south'" class="detail_south">
  151. <div class="detail_toolbar">
  152. <a href="#" class="easyui-linkbutton set_button" iconCls="icon-save" onclick="save_content();return false;">保存</a>
  153. </div>
  154. </div>
  155. </div>
  156. </div>
  157. </div>
  158. </div>
  159. <style type="text/css">
  160. .regionTip {
  161. display: inline-block;
  162. margin-left: 6px;
  163. color: red;
  164. }
  165. .father_dpm {
  166. color: green;
  167. }
  168. .type_list {
  169. display: inline-block;
  170. width: 110px;
  171. }
  172. </style>
  173. <script type="text/javascript">
  174. var jq_dg_content = $('#dg_content');
  175. var temp = new Date();
  176. var today = temp.getFullYear() + '-' + (temp.getMonth() + 1) + '-' + temp.getDate();
  177. var w_width = $(window).width();
  178. var w_height = $(window).height();
  179. var roles = <?php echo json_encode($role); ?>;
  180. var jq_content_form = $('#content_form');
  181. var jq_content_id = $('#content_id');
  182. var jq_role = $('#role');
  183. var jq_new_status = $('#new_status');
  184. var jq_set_button = $('.set_button');
  185. var jq_action_info = $('#action_info');
  186. //var jq_mcs = $('#mcs');
  187. //var jq_mcs = $('#mcs');
  188. var jq_ss = $('#ss');
  189. var status_data = <?php echo json_encode($status); ?>;
  190. var jq_filter_status = $('#filter_status');
  191. var jq_modify_password = $('#modify_password');
  192. var jq_modify_password_box = $('#modify_password_box');
  193. var jq_new_password = $('#new_password');
  194. var jq_confirm_new_password = $('#confirm_new_password');
  195. var module_router = site_root + '/index.php?r=user';
  196. $(function(){
  197. $('#main').css({width: w_width - 25, height: w_height - 18}).layout();
  198. jq_ss.searchbox({
  199. width: 150,
  200. searcher:function(value){
  201. search_content();
  202. },
  203. prompt: '请输入关键字'
  204. });
  205. jq_filter_status.combobox({
  206. width: 100,
  207. editable: false,
  208. data: status_data,
  209. onSelect: function(){
  210. search_content();
  211. }
  212. });
  213. var new_status_data = $.extend(true, [], status_data);
  214. new_status_data.shift();
  215. jq_new_status.combobox({
  216. width: 100,
  217. editable: false,
  218. data: new_status_data
  219. });
  220. jq_dg_content.datagrid({
  221. url: module_router + '/getUser',
  222. title: '管理员列表',
  223. width: 540,
  224. height: w_height - 18,
  225. fitColumns: true,
  226. autoRowHeight: true,
  227. striped: true,
  228. multiSort: true,
  229. toolbar: '#tb_content',
  230. singleSelect: true,
  231. pagination: true,
  232. pageList: [20, 30, 50],
  233. pageSize: 20,
  234. nowrap: false,
  235. idField: '_id',
  236. sortName: '_id',
  237. sortOrder: 'asc',
  238. checkOnSelect: false,
  239. selectOnCheck: false,
  240. queryParams: {},
  241. columns:[[
  242. {field:'ck', checkbox: true},
  243. {field:'_id', title:'ID', width:15},
  244. {field:'name', title:'用户名', width:25},
  245. {field:'email', title:'邮箱', width:80},
  246. {field:'reg_time', title:'注册时间', width:60},
  247. {field:'status', title:'状态', width:25,
  248. formatter: function(value, row){
  249. return get_filed_text(value, new_status_data);
  250. }
  251. }
  252. ]],
  253. onSelect: function(index, row){
  254. var data = $.extend(true, {}, row);
  255. data.role = data.role.split(',');
  256. jq_content_form.form('load', data);
  257. jq_set_button.linkbutton('enable');
  258. //jq_mcs.multiple_city_selector('refresh', data.admin_area_arr);
  259. init_reset_password();
  260. if (data['action_user'] != ''){
  261. jq_action_info.html('信息已被编辑: ' + data['action_user'] + ' ' + data['action_time']);
  262. } else {
  263. jq_action_info.html('');
  264. }
  265. },
  266. onLoadSuccess: function(){
  267. $(this).datagrid('clearChecked');
  268. jq_content_form.form('clear');
  269. jq_set_button.linkbutton('disable');
  270. init_reset_password();
  271. //jq_mcs.multiple_city_selector('refresh', []);
  272. jq_action_info.html('');
  273. }
  274. });
  275. jq_content_form.form({
  276. url: module_router + '/updateUser',
  277. onSubmit: function(param){
  278. if (jq_content_id.val() <= 0){
  279. return false;
  280. }
  281. param.new_role = jq_role.combobox('getValues').join(',');
  282. var isValid = $(this).form('validate');
  283. if (!isValid){
  284. return isValid;
  285. }
  286. if (jq_modify_password.is(':checked')){
  287. param.modify_password = 1;
  288. var new_password = jq_new_password.val();
  289. var confirm_new_password = jq_confirm_new_password.val();
  290. if (new_password == ''){
  291. $.messager.show({
  292. title: '提示',
  293. msg: '请输入新的密码',
  294. timeout: 5000,
  295. showType: 'slide'
  296. });
  297. jq_new_password.focus();
  298. return false;
  299. } else if (confirm_new_password == ''){
  300. $.messager.show({
  301. title: '提示',
  302. msg: '请确认新的密码',
  303. timeout: 5000,
  304. showType: 'slide'
  305. });
  306. jq_confirm_new_password.focus();
  307. return false;
  308. }
  309. } else {
  310. param.modify_password = 0;
  311. }
  312. $.messager.progress();
  313. return isValid;
  314. },
  315. success: function(res){
  316. $.messager.progress('close');
  317. var res = JSON.parse(res);
  318. if (res.success){
  319. jq_dg_content.datagrid('reload');
  320. }
  321. $.messager.show({
  322. title: '提示',
  323. msg: res.message,
  324. timeout: 3500,
  325. showType: 'slide'
  326. });
  327. }
  328. });
  329. jq_modify_password.on('click', function(){
  330. switch_reset_password();
  331. });
  332. })
  333. function save_content(){
  334. var a_id = jq_content_id.val();
  335. if (!a_id){
  336. return false;
  337. }
  338. jq_content_form.submit();
  339. }
  340. function search_content(){
  341. var search = jq_ss.searchbox('getValue');
  342. var filter_status = jq_filter_status.combobox('getValue');
  343. var param = {
  344. search: search,
  345. filter_status: filter_status
  346. };
  347. jq_dg_content.datagrid({
  348. pageNum: 1,
  349. queryParams: param
  350. });
  351. }
  352. function init_reset_password(){
  353. jq_modify_password.attr('checked', false);
  354. switch_reset_password();
  355. }
  356. function switch_reset_password(){
  357. if (jq_modify_password.is(':checked')){
  358. jq_modify_password_box.show();
  359. } else {
  360. jq_modify_password_box.hide();
  361. }
  362. jq_new_password.val('');
  363. jq_confirm_new_password.val('');
  364. }
  365. //批量修改状态
  366. function multiple_set_status(status){
  367. var rows = jq_dg_content.datagrid('getChecked');
  368. var status_text = '激活';
  369. if (status == -2){
  370. status_text = '删除';
  371. }
  372. if (rows.length == 0){
  373. $.messager.show({
  374. title: '提示',
  375. msg: '请选择需要批量' + status_text + '的用户~',
  376. timeout: 3500,
  377. showType: 'slide'
  378. });
  379. return false;
  380. }
  381. var ids = [];
  382. for (i = 0;i < rows.length;i ++){
  383. ids.push(rows[i]['_id']);
  384. }
  385. $.messager.progress({
  386. title: '操作中,请稍后!'
  387. });
  388. $.ajax({
  389. url: module_router + '/multipleSetStatus',
  390. type: 'post',
  391. data: {status : status,ids : ids.join(',')},
  392. dataType: 'json',
  393. success: function(res){
  394. $.messager.progress('close');
  395. $.messager.show({
  396. title: '提示',
  397. msg: res.message,
  398. timeout: 3500,
  399. showType: 'slide'
  400. });
  401. if (res.success){
  402. jq_dg_content.datagrid('reload');
  403. }
  404. }
  405. });
  406. }
  407. </script>