From 9e90f6e2e7958310906ccb88489015bbd2bc02b8 Mon Sep 17 00:00:00 2001
From: liubp <1535785116@qq.com>
Date: 星期三, 24 十二月 2025 09:50:05 +0800
Subject: [PATCH] 权限页面完善,我的小区页面权限对接,费用明细详情页面,公共收益金编辑模态框
---
public/pages/frame/role/role-a/role-a.js | 86 +++++++++++++++++++++++++++++++++++++++++--
1 files changed, 82 insertions(+), 4 deletions(-)
diff --git a/public/pages/frame/role/role-a/role-a.js b/public/pages/frame/role/role-a/role-a.js
index 2eaffbf..f0122a4 100644
--- a/public/pages/frame/role/role-a/role-a.js
+++ b/public/pages/frame/role/role-a/role-a.js
@@ -7,7 +7,11 @@
header: false
},
pgId: '', // 淇濆瓨瑙掕壊缂栫爜
- privilegeData: [] // 淇濆瓨鏉冮檺鏁版嵁
+ privilegeData: [], // 淇濆瓨鏉冮檺鏁版嵁
+ pName: '鍏ㄩ儴', // 淇濆瓨鏉冮檺鍚嶇О锛岄粯璁や负"鍏ㄩ儴"
+ buttonPrivileges: [], // 淇濆瓨鎸夐挳鏉冮檺
+ labelPrivileges: [], // 淇濆瓨鏍囩鏉冮檺
+ dataPrivileges: [], // 淇濆瓨鏁版嵁鏉冮檺
},
_initMethod: function () {
// 鑾峰彇URL鍙傛暟
@@ -15,6 +19,7 @@
let pgId = '';
let communityId = '';
let type = '';
+ let pName = '鍏ㄩ儴'; // 榛樿鍊间负"鍏ㄩ儴"
// 浼樺厛浠� hash 涓幏鍙栧弬鏁帮紙鍗曢〉搴旂敤浣跨敤 hash 璺敱锛�
const hash = location.hash;
@@ -36,6 +41,8 @@
communityId = value;
} else if (key === 'type') {
type = value;
+ } else if (key === 'pName') {
+ pName = value;
}
}
}
@@ -53,14 +60,25 @@
if (!type) {
type = vc.getParam('type') || '';
}
+ if (pName === '鍏ㄩ儴') {
+ pName = vc.getParam('pName') || '鍏ㄩ儴';
+ }
// 濡傛灉缂哄皯蹇呰鍙傛暟锛屼娇鐢ㄩ粯璁ゅ�兼垨浠庡綋鍓嶇ぞ鍖鸿幏鍙�
if (!communityId) {
communityId = vc.getCurrentCommunity().communityId;
}
- // 淇濆瓨 pgId 鍒� data 涓�
+ // 淇濆瓨 pgId銆乸Id 鍜� pName 鍒� data 涓�
vc.component.pgId = pgId;
+ vc.component.pId = pId;
+ vc.component.pName = pName;
+
+ // 鏇存柊椤甸潰鏍囬
+ const titleElement = document.querySelector('.role-a-container h3');
+ if (titleElement) {
+ titleElement.textContent = pName;
+ }
// 璋冪敤鎺ュ彛
if (pgId && communityId) {
@@ -81,6 +99,9 @@
// 鍒ゆ柇 json 鐨勭被鍨嬶紝濡傛灉宸茬粡鏄璞″垯鐩存帴浣跨敤锛屽惁鍒欒繘琛岃В鏋�
let data = typeof json === 'string' ? JSON.parse(json) : json;
vc.component.privilegeData = data;
+ vc.component.buttonPrivileges = data.filter(item => item.type === '鎸夐挳');
+ vc.component.labelPrivileges = data.filter(item => item.type === '鏍囩');
+ vc.component.dataPrivileges = data.filter(item => item.type === '鏁版嵁');
vc.component.renderPrivileges(data);
vc.component.initCheckboxEvents();
} catch (e) {
@@ -106,10 +127,12 @@
// 娓叉煋鏉冮檺澶嶉�夋
renderPrivileges: function (data) {
const buttonContainer = document.getElementById('button-container');
+ const labelContainer = document.getElementById('label-container');
const dataContainer = document.getElementById('data-container');
// 娓呯┖瀹瑰櫒
if (buttonContainer) buttonContainer.innerHTML = '';
+ if (labelContainer) labelContainer.innerHTML = '';
if (dataContainer) dataContainer.innerHTML = '';
// 閬嶅巻鏁版嵁锛屾牴鎹� type 鍒涘缓瀵瑰簲鐨勫閫夋
@@ -122,6 +145,7 @@
const label = document.createElement('label');
label.textContent = item.pName;
+ label.style.paddingTop = '8px';
const checkbox = document.createElement('input');
checkbox.type = 'checkbox';
@@ -129,14 +153,19 @@
checkbox.value = item.pId;
checkbox.setAttribute('data-pid', item.pId);
checkbox.setAttribute('data-type', item.type);
+ checkbox.checked = true;
- checkboxDiv.appendChild(label);
checkboxDiv.appendChild(checkbox);
+ checkboxDiv.appendChild(label);
// 鏍规嵁 type 娣诲姞鍒板搴斿鍣�
if (item.type === '鎸夐挳') {
if (buttonContainer) {
buttonContainer.appendChild(checkboxDiv);
+ }
+ } else if (item.type === '鏍囩') {
+ if (labelContainer) {
+ labelContainer.appendChild(checkboxDiv);
}
} else if (item.type === '鏁版嵁') {
if (dataContainer) {
@@ -161,8 +190,10 @@
});
// 鍚屾椂鏇存柊鎸夐挳鍜屾暟鎹尯鍩熺殑"鍏ㄩ儴"澶嶉�夋
const buttonAll = document.getElementById('button-all');
+ const labelAll = document.getElementById('label-all');
const dataAll = document.getElementById('data-all');
if (buttonAll) buttonAll.checked = isChecked;
+ if (labelAll) labelAll.checked = isChecked;
if (dataAll) dataAll.checked = isChecked;
});
}
@@ -181,7 +212,22 @@
self.updateAllCheckbox();
});
}
-
+
+ // 鏍囩鍖哄煙鍏ㄩ儴澶嶉�夋
+ const labelAllCheckbox = document.getElementById('label-all');
+ if (labelAllCheckbox) {
+ labelAllCheckbox.addEventListener('change', function () {
+ const isChecked = this.checked;
+ // 閫変腑鏍囩鍖哄煙鎵�鏈夊閫夋
+ const labelCheckboxes = document.querySelectorAll('#label-container input[type="checkbox"][name="privilege"]');
+ labelCheckboxes.forEach(function (cb) {
+ cb.checked = isChecked;
+ });
+ // 妫�鏌ユ槸鍚﹂渶瑕佹洿鏂�"鍏ㄩ儴"澶嶉�夋
+ self.updateAllCheckbox();
+ });
+ }
+
// 鏁版嵁鍖哄煙鍏ㄩ儴澶嶉�夋
const dataAllCheckbox = document.getElementById('data-all');
if (dataAllCheckbox) {
@@ -213,6 +259,27 @@
self.savePrivileges();
});
}
+
+ // 閲嶇疆鎸夐挳浜嬩欢
+ const resetButton = document.getElementById('reset');
+ if (resetButton) {
+ resetButton.addEventListener('click', function () {
+ // 閫変腑鎵�鏈夋潈闄愬閫夋
+ const allCheckboxes = document.querySelectorAll('input[type="checkbox"][name="privilege"]');
+ allCheckboxes.forEach(function (cb) {
+ cb.checked = true;
+ });
+ // 閫変腑鎵�鏈�"鍏ㄩ儴"澶嶉�夋
+ const allCheckbox = document.getElementById('all');
+ const buttonAll = document.getElementById('button-all');
+ const labelAll = document.getElementById('label-all');
+ const dataAll = document.getElementById('data-all');
+ if (allCheckbox) allCheckbox.checked = true;
+ if (buttonAll) buttonAll.checked = true;
+ if (labelAll) labelAll.checked = true;
+ if (dataAll) dataAll.checked = true;
+ });
+ }
},
// 鏇存柊"鍏ㄩ儴"澶嶉�夋鐘舵��
updateAllCheckbox: function () {
@@ -237,6 +304,16 @@
buttonAll.checked = buttonAllChecked;
}
+ // 鏇存柊鏍囩鍖哄煙
+ const labelCheckboxes = document.querySelectorAll('#label-container input[type="checkbox"][name="privilege"]');
+ const labelAllChecked = labelCheckboxes.length > 0 && Array.from(labelCheckboxes).every(function (cb) {
+ return cb.checked;
+ });
+ const labelAll = document.getElementById('label-all');
+ if (labelAll) {
+ labelAll.checked = labelAllChecked;
+ }
+
// 鏇存柊鏁版嵁鍖哄煙
const dataCheckboxes = document.querySelectorAll('#data-container input[type="checkbox"][name="privilege"]');
const dataAllChecked = dataCheckboxes.length > 0 && Array.from(dataCheckboxes).every(function (cb) {
@@ -263,6 +340,7 @@
const requestData = {
pgId: vc.component.pgId,
+ parentId: vc.component.pId,
pIds: pIds
};
--
Gitblit v1.8.0