From f14fa890210bee97ba5ffe307a38ab554acb9838 Mon Sep 17 00:00:00 2001 From: Administrator <450292408@qq.com> Date: Thu, 21 Oct 2021 10:26:22 +0000 Subject: [PATCH] docs: update wg-basic/page-unit --- wg-basic/page-unit.md | 255 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 239 insertions(+), 16 deletions(-) diff --git a/wg-basic/page-unit.md b/wg-basic/page-unit.md index 2069ecc..4283370 100644 --- a/wg-basic/page-unit.md +++ b/wg-basic/page-unit.md @@ -2,7 +2,7 @@ title: 页面组件 description: 页面上使用的组件 published: true -date: 2021-10-21T10:05:20.437Z +date: 2021-10-21T10:26:21.262Z tags: wg-basic editor: markdown dateCreated: 2021-09-08T06:41:19.351Z @@ -204,21 +204,7 @@ table.on('tool(dataTable)', function(obj) { # 8. 选择人员(表格) ```javascript -top.dialog.dialogData.oldSelectedUserList = [{userId:''}]; -top.dialog.open({ - url: 'route/common/listselectuser?selectType=checkbox(radio)', - title: '选择用户', - width: '1000px', - height: '500px', - onClose: function() { - var newSelectedUserList = top.dialog.dialogData.newSelectedUserList; - if(newSelectedUserList.length != 0) { - // newSelectedUserList[0].userId; - // newSelectedUserList[0].userName; - } - top.dialog.dialogData.oldSelectedUserList = [];    - } -}); + ``` # 9. 文件上传(图片示例) 依赖 @@ -471,4 +457,241 @@ form.on('select(typeFilter)', function(data) { ```javascript var params = top.restAjax.params(window.location.href); var xxx = params.xxx; +``` + +# 14.列表选择 +html:列表页面 +```html +
+
+
+
+ +
+ + +
+
+
+
+``` +```javascript +layui.config({ + base: 'assets/layuiadmin/' +}).extend({ + index: 'lib/index' +}).use(['index', 'table', 'laydate', 'common'], function() { + var $ = layui.$; + var $win = $(window); + var table = layui.table; + var admin = layui.admin; + var common = layui.common; + var selectType = top.restAjax.params(window.location.href).selectType; + selectType = selectType ? selectType : 'radio' + var tableUrl = 'api/user/listpageusersimple'; + var oldSelectedUserList = top.dialog.dialogData.oldSelectedUserList; + // 清空上次选择 + top.dialog.dialogData.newSelectedUserList = []; + var newSelectedUserList = []; + var tableData = []; + + // 初始化选择列表 + function initNewSelectedUserList() { + for(var i = 0, item; item = oldSelectedUserList[i++];) { + newSelectedUserList.push(item); + } + } + initNewSelectedUserList(); + + // 初始化表格 + function initTable() { + $.extend(table, {config: {checkName: 'checked'}}); + table.render({ + elem: '#dataTable', + id: 'dataTable', + url: top.restAjax.path(tableUrl, []), + width: admin.screen() > 1 ? '100%' : '', + height: $win.height() - 50, + limit: 20, + limits: [20, 40, 60, 80, 100, 200], + request: { + pageName: 'page', + limitName: 'rows' + }, + cols: [ + [ + {type: selectType, fixed: 'left'}, + {field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '{{d.LAY_INDEX}}'}, + {field: 'userUsername', width: 150, title: '用户名', align:'center', + templet: function(row) { + var rowData = row[this.field]; + if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') { + return '-'; + } + return rowData; + } + }, + {field: 'userName', width: 150, title: '昵称', align:'center', + templet: function(row) { + var rowData = row[this.field]; + if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') { + return '-'; + } + return rowData; + } + }, + {field: 'userPhone', width: 220, title: '用户手机', align:'center', + templet: function(row) { + var rowData = row[this.field]; + if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') { + return '-'; + } + return rowData; + } + }, + {field: 'userEmail', width: 220, title: '用户邮箱', align:'center', + templet: function(row) { + var rowData = row[this.field]; + if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') { + return '-'; + } + return rowData; + } + } + ] + ], + page: true, + parseData: function(data) { + for(var i = 0, item; item = data.rows[i++];) { + if(!newSelectedUserList) { + item.checked = false; + continue; + } + var isSelected = false; + for(var j = 0, jItem; jItem = newSelectedUserList[j++];) { + if(item.userId === jItem.userId) { + isSelected = true; + break; + } + } + if(isSelected) { + item.checked = true; + } else { + item.checked = false; + } + } + tableData = data.rows; + + return { + 'code': 0, + 'msg': '', + 'count': data.total, + 'data': data.rows + }; + } + }); + } + + // 重载表格 + function reloadTable(currentPage) { + table.reload('dataTable', { + url: top.restAjax.path(tableUrl, []), + where: { + keywords: $('#keywords').val(), + }, + page: { + curr: currentPage + }, + height: $win.height() - 50, + }); + } + initTable(); + + function isUserSelected(userId) { + for(var i = 0, item; item = newSelectedUserList[i++];) { + if(userId == item.userId) { + return true; + } + } + return false; + } + + function addUserSelected(userItem) { + if(isUserSelected(userItem.userId)) { + return; + } + newSelectedUserList.push({ + userId: userItem.userId, + userUsername: userItem.userUsername, + userName: userItem.userName, + userPhone: userItem.userPhone, + userEmail: userItem.userEmail + }) + } + + function removeUserSelected(userItem) { + for(var i = 0, item; item = newSelectedUserList[i++];) { + if(userItem.userId == item.userId) { + newSelectedUserList.splice(--i, 1); + i--; + return; + } + } + } + + table.on('checkbox(dataTable)', function(obj) { + if(obj.type === 'all') { + if(obj.checked) { + // 添加全部 + for(var i = 0, item; item = tableData[i++];) { + addUserSelected(item); + } + } else { + // 删除全部 + for(var i = 0, item; item = tableData[i++];) { + removeUserSelected(item); + } + } + } else { + if(obj.checked) { + addUserSelected(obj.data); + } else { + removeUserSelected(obj.data); + } + } + }); + + table.on('radio(dataTable)', function(obj) { + newSelectedUserList.splice(0, newSelectedUserList.length); + addUserSelected(obj.data); + }); + $(document).on('click', '#search', function() { + reloadTable(1); + }); + $(document).on('click', '#confirm', function() { + top.dialog.dialogData.newSelectedUserList = newSelectedUserList; + top.dialog.closeBox(); + }); +}); +``` +调用方式:其他页面 +```javascript +// 这里的列表数据格式根据实际情况变化 +top.dialog.dialogData.oldSelectedUserList = [{userId:''}]; +top.dialog.open({ + url: 'route/common/listselectuser?selectType=checkbox(radio)', + title: '选择用户', + width: '1000px', + height: '500px', + onClose: function() { + var newSelectedUserList = top.dialog.dialogData.newSelectedUserList; + if(newSelectedUserList.length != 0) { + // newSelectedUserList[0].userId; + // newSelectedUserList[0].userName; + } + top.dialog.dialogData.oldSelectedUserList = [];    + } +}); ``` \ No newline at end of file