|
@@ -18,8 +18,25 @@
|
|
|
var validateForm;
|
|
|
function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
|
|
|
if(validateForm.form()){
|
|
|
- $("#inputForm").submit();
|
|
|
- return true;
|
|
|
+ let allSelected = true;
|
|
|
+ //获取表格中的数据
|
|
|
+ var tableRows = document.querySelectorAll('table.details tbody tr');
|
|
|
+ tableRows.forEach(function(row) {
|
|
|
+ var selectElement = row.querySelector('select[name="isTemplate"]'); // 下拉框的name属性是"isTemplate"
|
|
|
+ var userNameElement = row.querySelector('td[data-id="userName"]');
|
|
|
+ var userName = userNameElement ? userNameElement.innerText.trim() : null;
|
|
|
+
|
|
|
+ if (!selectElement || !selectElement.value) {
|
|
|
+ top.layer.alert(userName+':未选择长期还是临时', {icon: 0});
|
|
|
+ allSelected = false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if(allSelected){
|
|
|
+ $("#inputForm").submit();
|
|
|
+ $('#assignRoleForm').submit();
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return false;
|
|
@@ -131,6 +148,7 @@
|
|
|
<input type="hidden" name="id" value="${areaStaffInfo.id}"/>
|
|
|
<input type="hidden" name="office.id" value="${areaStaffInfo.office.id}"/>
|
|
|
<input id="idsArr" type="hidden" name="idsArr" value=""/>
|
|
|
+ <input id="usersArr" type="hidden" name="usersArr" value=""/>
|
|
|
</form>
|
|
|
<div class="layui-item nav-btns">
|
|
|
<a href="javascript:void(0);" id="assignButton" class="nav-btn nav-btn-add" title="添加人员"><i class="fa fa-plus"></i> 新增</a>
|
|
@@ -139,25 +157,34 @@
|
|
|
<table id="contentTable" class="table table-bordered table-condensed details">
|
|
|
<thead>
|
|
|
<tr>
|
|
|
+ <th style="display: none;">人员id</th>
|
|
|
<th>归属公司</th>
|
|
|
<th>归属部门</th>
|
|
|
<th>姓名</th>
|
|
|
<th>电话</th>
|
|
|
<th>手机</th>
|
|
|
+ <th><span class="require-item">*</span>长期/临时</th>
|
|
|
<shiro:hasPermission name="sys:user:edit"><th width="80">操作</th></shiro:hasPermission>
|
|
|
</tr>
|
|
|
</thead>
|
|
|
<tbody>
|
|
|
<c:forEach items="${userList}" var="user">
|
|
|
<tr>
|
|
|
+ <td style="display: none;" data-id="userId">${user.id}</td>
|
|
|
<td>${user.company.name}</td>
|
|
|
<td>${user.office.name}</td>
|
|
|
- <td>${user.name}</td>
|
|
|
+ <td data-id="userName">${user.name}</td>
|
|
|
<td>${user.phone}</td>
|
|
|
<td>${user.mobile}</td>
|
|
|
+ <td data-id="selectedOption">
|
|
|
+ <select style="width: 100%" id="isTemplateSelect" name="isTemplate" lay-filter="table" lay-verify = '' class="form-control simple-select">
|
|
|
+ <option value="">请选择</option>
|
|
|
+ <option value="0" <c:if test="${user.isTemplate=='0'}">selected</c:if>>临时</option>
|
|
|
+ <option value="1" <c:if test="${user.isTemplate=='1'}">selected</c:if>>长期</option>
|
|
|
+ </select>
|
|
|
+ </td>
|
|
|
<shiro:hasPermission name="sys:role:edit"><td class="op-td">
|
|
|
- <a href="${ctx}/areaStaff/areaStaff/outUser?userId=${user.id}&id=${areaStaffInfo.id}&areaStaffUserInfoId=${user.auditUserId}"
|
|
|
- onclick="return confirmx('确认要将用户<b>[${user.name}]</b>移除吗?', this.href)" class="op-btn op-btn-add"><i class="glyphicon glyphicon-remove"></i> 移除</a>
|
|
|
+ <button class="btn btn-danger delete-btn">删除</button>
|
|
|
</td></shiro:hasPermission>
|
|
|
</tr>
|
|
|
</c:forEach>
|
|
@@ -169,6 +196,7 @@
|
|
|
</div>
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
+ var preIds
|
|
|
$("#assignButton").click(function(){
|
|
|
|
|
|
top.layer.open({
|
|
@@ -181,6 +209,7 @@
|
|
|
btn: ['确定', '关闭'],
|
|
|
yes: function(index, layero){
|
|
|
var pre_ids = layero.find("iframe")[0].contentWindow.pre_ids;
|
|
|
+ preIds = pre_ids
|
|
|
var ids = layero.find("iframe")[0].contentWindow.ids;
|
|
|
if(ids[0]==''){
|
|
|
ids.shift();
|
|
@@ -197,13 +226,168 @@
|
|
|
idsArr = (idsArr + ids[i]) + (((i + 1)== ids.length) ? '':',');
|
|
|
}
|
|
|
$('#idsArr').val(idsArr);
|
|
|
- $('#assignRoleForm').submit();
|
|
|
+ getUser(idsArr)
|
|
|
+ console.log(idsArr)
|
|
|
+ // $('#assignRoleForm').submit();
|
|
|
top.layer.close(index);
|
|
|
},
|
|
|
cancel: function(index){
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
+
|
|
|
+ function getUser(ids) {
|
|
|
+ var areaId = $("#id").val()
|
|
|
+ $.ajax({
|
|
|
+ async:false,
|
|
|
+ type:'post',
|
|
|
+ url:'${ctx}/areaStaff/areaStaff/getUser',
|
|
|
+ data:{
|
|
|
+ "ids":ids,
|
|
|
+ "areaId":areaId,
|
|
|
+ },
|
|
|
+ success:function(data){
|
|
|
+ console.log('pre_ids',preIds)
|
|
|
+ // 获取当前表格中所有行的userId
|
|
|
+ var existingIds = $('#contentTable tbody tr td[data-id="userId"]').map(function() {
|
|
|
+ return $(this).text();
|
|
|
+ }).get();
|
|
|
+ var tbody = $('#contentTable tbody'); // 获取表格的 tbody 元素
|
|
|
+ //tbody.empty(); // 清空现有的 tbody 内容
|
|
|
+ $.each(data, function(index, user) {
|
|
|
+ if (existingIds.indexOf(user.id.toString()) === -1) {
|
|
|
+ var row = $('<tr></tr>'); // 创建一个新的行元素
|
|
|
+ // 添加归属公司、归属部门等列
|
|
|
+ row.append($('<td style="display: none;" data-id="userId"></td>').text(user.id));
|
|
|
+ row.append($('<td></td>').text(user.company.name));
|
|
|
+ row.append($('<td></td>').text(user.office.name));
|
|
|
+ row.append($('<td data-id="userName"></td>').text(user.name));
|
|
|
+ row.append($('<td></td>').text(user.phone));
|
|
|
+ row.append($('<td></td>').text(user.mobile));
|
|
|
+ // 添加长期/临时选择框
|
|
|
+ var select = $('<select style="width: 100%" name="isTemplate" lay-filter="table" lay-verify = \'\' class="form-control simple-select"></select>');
|
|
|
+ select.append($('<option value="">请选择</option>'));
|
|
|
+ select.append($('<option value="0"' + (user.isTemplate === '0' ? ' selected' : '') + '>临时</option>'));
|
|
|
+ select.append($('<option value="1"' + (user.isTemplate === '1' ? ' selected' : '') + '>长期</option>'));
|
|
|
+ row.append($('<td data-id="selectedOption"></td>').append(select));
|
|
|
+ // 如果用户有权限编辑,添加操作列
|
|
|
+ if ($('#contentTable').find('th:last-child').text().trim() === '操作') {
|
|
|
+ var deleteButton = $('<button class="btn btn-danger delete-btn">删除</button>');
|
|
|
+ row.append($('<td class="op-td"></td>').append(deleteButton));
|
|
|
+ }
|
|
|
+ console.log('tow',row)
|
|
|
+ // 将行添加到 tbody
|
|
|
+ tbody.append(row);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ $('#contentTable').on('click', '.delete-btn', function() {
|
|
|
+ var $row = $(this).closest('tr');
|
|
|
+ // 删除行
|
|
|
+ $row.remove();
|
|
|
+ var usersArray = []; // 用于存储每行的userId和下拉框选中的值
|
|
|
+ var tableRows = document.querySelectorAll('table.details tbody tr'); // 只遍历tbody中的行
|
|
|
+
|
|
|
+ tableRows.forEach(function(row) {
|
|
|
+ var userIdElement = row.querySelector('td[data-id="userId"]');
|
|
|
+ var userId = userIdElement ? userIdElement.innerText.trim() : null; // 确保userId存在
|
|
|
+
|
|
|
+ if (userId) {
|
|
|
+ if (idsArr.length > 0) {
|
|
|
+ idsArr += ',';
|
|
|
+ }
|
|
|
+ // 将userId添加到idsArr中
|
|
|
+ idsArr += userId;
|
|
|
+
|
|
|
+ var hiddenInput = document.getElementById('idsArr'); // 注意:使用实际的ID
|
|
|
+ if (hiddenInput) {
|
|
|
+ hiddenInput.value = idsArr;
|
|
|
+ }
|
|
|
+ console.log('hiddenInput',hiddenInput);
|
|
|
+
|
|
|
+ var selectElement = row.querySelector('select[name="isTemplate"]'); // 假设下拉框的name属性是"isTemplate"
|
|
|
+ var selectedOptionValue = selectElement ? selectElement.value : null; // 获取下拉框选中的值
|
|
|
+
|
|
|
+ if (selectedOptionValue) {
|
|
|
+ // 将userId和selectedOptionValue作为键值对存储到对象中
|
|
|
+ var userData = userId+":"+selectedOptionValue
|
|
|
+ usersArray.push(userData); // 将对象添加到数组中
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ var users = "";
|
|
|
+ for (var i = 0; i<usersArray.length; i++) {
|
|
|
+ users = (users + usersArray[i]) + (((i + 1)== usersArray.length) ? '':';');
|
|
|
+ }
|
|
|
+ // 设置到hidden input中
|
|
|
+ var usersArr = document.getElementById('usersArr');
|
|
|
+ if (usersArr) {
|
|
|
+ $("#usersArr").val(users)
|
|
|
+ //usersArr.value = JSON.stringify(usersArray);
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log('usersArr',usersArr);
|
|
|
+ });
|
|
|
+ document.querySelectorAll('table tr').forEach(function(row) {
|
|
|
+ row.addEventListener('click', function() {
|
|
|
+
|
|
|
+ const allRows = document.querySelectorAll('table tr');
|
|
|
+ allRows.forEach(r => r.classList.remove('selected'));
|
|
|
+ this.classList.add('selected');
|
|
|
+ console.log('allRows',allRows)
|
|
|
+ });
|
|
|
+ });
|
|
|
+ $('#contentTable').on('change', 'select[name="isTemplate"]', function() {
|
|
|
+ var idsArr = '';
|
|
|
+ var usersArray = []; // 用于存储每行的userId和下拉框选中的值
|
|
|
+ var tableRows = document.querySelectorAll('table.details tbody tr'); // 只遍历tbody中的行
|
|
|
+
|
|
|
+ tableRows.forEach(function(row) {
|
|
|
+ var userIdElement = row.querySelector('td[data-id="userId"]');
|
|
|
+ var userId = userIdElement ? userIdElement.innerText.trim() : null; // 确保userId存在
|
|
|
+
|
|
|
+ if (userId) {
|
|
|
+ if (idsArr.length > 0) {
|
|
|
+ idsArr += ',';
|
|
|
+ }
|
|
|
+ // 将userId添加到idsArr中
|
|
|
+ idsArr += userId;
|
|
|
+
|
|
|
+ var hiddenInput = document.getElementById('idsArr'); // 注意:使用实际的ID
|
|
|
+ if (hiddenInput) {
|
|
|
+ hiddenInput.value = idsArr;
|
|
|
+ }
|
|
|
+ console.log('hiddenInput',hiddenInput);
|
|
|
+
|
|
|
+ var selectElement = row.querySelector('select[name="isTemplate"]'); // 假设下拉框的name属性是"isTemplate"
|
|
|
+ var selectedOptionValue = selectElement ? selectElement.value : null; // 获取下拉框选中的值
|
|
|
+
|
|
|
+ if (selectedOptionValue) {
|
|
|
+ // 将userId和selectedOptionValue作为键值对存储到对象中
|
|
|
+ var userData = userId+":"+selectedOptionValue
|
|
|
+
|
|
|
+ usersArray.push(userData); // 将对象添加到数组中
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ var users = "";
|
|
|
+ for (var i = 0; i<usersArray.length; i++) {
|
|
|
+ users = (users + usersArray[i]) + (((i + 1)== usersArray.length) ? '':';');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置到usersArr中
|
|
|
+ var usersArr = document.getElementById('usersArr');
|
|
|
+ if (usersArr) {
|
|
|
+ // $("#usersArr").val(usersArray)
|
|
|
+ usersArr.value = users;
|
|
|
+ }
|
|
|
+ console.log('usersArr',usersArr);
|
|
|
+ });
|
|
|
</script>
|
|
|
</body>
|
|
|
+<style>
|
|
|
+
|
|
|
+</style>
|
|
|
</html>
|