user.js 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. $(function () {
  2. $("#jqGrid").Grid({
  3. url: '../sys/user/list',
  4. rownumWidth:60,
  5. colModel: [
  6. {label: '用户ID', name: 'userId', index: "user_id", key: true, hidden: true},
  7. {label: '用户名', name: 'username', width: 75},
  8. {label: '所属部门', name: 'deptName', width: 75},
  9. {label: '邮箱', name: 'email', width: 90},
  10. {label: '手机号', name: 'mobile', width: 100},
  11. {
  12. label: '状态', name: 'status', width: 80, formatter: function (value) {
  13. return value === 0 ?
  14. '<span class="label label-danger">禁用</span>' :
  15. '<span class="label label-success">正常</span>';
  16. }
  17. },
  18. {
  19. label: '创建时间', name: 'createTime', index: "create_time", width: 80, formatter: function (value) {
  20. return transDate(value);
  21. }
  22. }]
  23. });
  24. });
  25. var setting = {
  26. data: {
  27. simpleData: {
  28. enable: true,
  29. idKey: "deptId",
  30. pIdKey: "parentId",
  31. rootPId: -1
  32. },
  33. key: {
  34. url: "nourl"
  35. }
  36. }
  37. };
  38. var ztree;
  39. var vm = new Vue({
  40. el: '#rrapp',
  41. data: {
  42. modal1:false,
  43. q: {
  44. username: null
  45. },
  46. showList: true,
  47. title: null,
  48. roleList: {},
  49. user: {
  50. status: 1,
  51. deptName: '',
  52. roleIdList: [],
  53. brandIdList: [],
  54. brandList: []
  55. },
  56. ruleValidate: {
  57. username: [
  58. {required: true, message: '姓名不能为空', trigger: 'blur'}
  59. ],
  60. email: [
  61. {required: true, message: '邮箱不能为空', trigger: 'blur'},
  62. {type: 'email', message: '邮箱格式不正确', trigger: 'blur'}
  63. ],
  64. mobile: [
  65. {required: true, message: '手机号不能为空', trigger: 'blur'}
  66. ]
  67. },
  68. brandsList:[],
  69. brandPage:1,
  70. brandPerPage:10,
  71. brandTotal:0,
  72. brandSeleced:[],
  73. social:[],
  74. cacheData:{}
  75. },
  76. watch:{
  77. brandPage(newVal){
  78. this.getBrandList()
  79. }
  80. },
  81. methods: {
  82. clickCheck(item,idx){
  83. item['checked'] = !item['checked']
  84. this.$set(this.brandsList,idx,item)
  85. },
  86. ok () {
  87. let temp = []
  88. let tempid = []
  89. Object.keys(this.cacheData).forEach(item=>{
  90. this.cacheData[item].page.list.forEach(sub=>{
  91. if (sub['checked']) {
  92. temp.push(sub)
  93. tempid.push(sub.id)
  94. }
  95. })
  96. })
  97. this.user.brandList = temp
  98. this.user.brandIdList = tempid
  99. },
  100. cancel () {
  101. this.$Message.info('Clicked cancel');
  102. },
  103. query: function () {
  104. vm.reload();
  105. },
  106. add: function () {
  107. vm.showList = false;
  108. vm.title = "新增(默认密码:888888)";
  109. vm.roleList = {};
  110. vm.user = {status: 1, roleIdList: [], brandIdList:[], deptId: '', deptName: ''};
  111. //获取角色信息
  112. this.getRoleList();
  113. vm.getDept();
  114. },
  115. getDept: function () {
  116. //加载部门树
  117. Ajax.request({
  118. url: '../sys/dept/list',
  119. async: true,
  120. successCallback: function (r) {
  121. ztree = $.fn.zTree.init($("#deptTree"), setting, r.list);
  122. var node = ztree.getNodeByParam("deptId", vm.user.deptId);
  123. if (node != null) {
  124. ztree.selectNode(node);
  125. vm.user.deptName = node.name;
  126. }
  127. }
  128. });
  129. },
  130. pageChange(page){
  131. this.brandPage = page
  132. },
  133. getBrandList: function () {
  134. this.modal1 = true
  135. if (this.cacheData[this.brandPage]) {
  136. let temp = this.cacheData[this.brandPage]
  137. this.brandsList = temp.page.list
  138. this.brandPage = temp.page.currPage
  139. this.brandTotal = temp.page.totalCount
  140. return
  141. }
  142. Ajax.request({
  143. url: `../brand/list?_search=false&limit=${this.brandPerPage}&page=${this.brandPage}&sidx=&order=asc`,
  144. async: true,
  145. successCallback: res => {
  146. res.page.list.forEach((item,index)=>{
  147. item['checked'] = false
  148. })
  149. this.cacheData[res.page.currPage] = res
  150. this.brandsList = res.page.list
  151. this.brandPage = res.page.currPage
  152. this.brandTotal = res.page.totalCount
  153. }
  154. });
  155. },
  156. update: function () {
  157. var userId = getSelectedRow("#jqGrid");
  158. if (userId == null) {
  159. return;
  160. }
  161. vm.showList = false;
  162. vm.title = "修改";
  163. Ajax.request({
  164. url: "../sys/user/info/" + userId,
  165. async: true,
  166. successCallback: function (r) {
  167. vm.user = r.user;
  168. //获取角色信息
  169. vm.getRoleList();
  170. vm.getDept();
  171. }
  172. });
  173. },
  174. del: function () {
  175. var userIds = getSelectedRows("#jqGrid");
  176. if (userIds == null) {
  177. return;
  178. }
  179. confirm('确定要删除选中的记录?', function () {
  180. Ajax.request({
  181. url: "../sys/user/delete",
  182. params: JSON.stringify(userIds),
  183. contentType: "application/json",
  184. type: 'POST',
  185. successCallback: function () {
  186. alert('操作成功', function (index) {
  187. vm.reload();
  188. });
  189. }
  190. });
  191. });
  192. },
  193. saveOrUpdate: function (event) {
  194. var url = vm.user.userId == null ? "../sys/user/save" : "../sys/user/update";
  195. Ajax.request({
  196. url: url,
  197. params: JSON.stringify(vm.user),
  198. contentType: "application/json",
  199. type: 'POST',
  200. successCallback: function () {
  201. alert('操作成功', function (index) {
  202. vm.reload();
  203. });
  204. }
  205. });
  206. },
  207. getRoleList: function () {
  208. Ajax.request({
  209. url: '../sys/role/select',
  210. async: true,
  211. successCallback: function (r) {
  212. vm.roleList = r.list;
  213. }
  214. });
  215. },
  216. reload: function (event) {
  217. vm.showList = true;
  218. var page = $("#jqGrid").jqGrid('getGridParam', 'page');
  219. $("#jqGrid").jqGrid('setGridParam', {
  220. postData: {'username': vm.q.username},
  221. page: page
  222. }).trigger("reloadGrid");
  223. vm.handleReset('formValidate');
  224. },
  225. deptTree: function () {
  226. openWindow({
  227. title: "选择部门",
  228. area: ['300px', '450px'],
  229. content: jQuery("#deptLayer"),
  230. btn: ['确定', '取消'],
  231. btn1: function (index) {
  232. var node = ztree.getSelectedNodes();
  233. //选择上级部门
  234. vm.user.deptId = node[0].deptId;
  235. vm.user.deptName = node[0].name;
  236. layer.close(index);
  237. }
  238. });
  239. },
  240. handleSubmit: function (name) {
  241. handleSubmitValidate(this, name, function () {
  242. vm.saveOrUpdate()
  243. });
  244. },
  245. handleReset: function (name) {
  246. handleResetForm(this, name);
  247. }
  248. }
  249. });