From 9ddbaf715dccb4cf9db57ffec29fe9b20c2d506c Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期三, 04 十二月 2024 17:55:40 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue | 26 + Source/plt-web/plt-web-ui/src/views/system/role/index.vue | 4 Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/model/BaseModel.java | 267 ++++++++++++------------ Source/plt-web/plt-web-ui/src/views/system/user/index.vue | 9 Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/dataView.vue | 257 +++++++++++++++++++--- Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue | 42 ++- 6 files changed, 405 insertions(+), 200 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/model/BaseModel.java b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/model/BaseModel.java index 54713a2..2571ef3 100644 --- a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/model/BaseModel.java +++ b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/model/BaseModel.java @@ -18,120 +18,87 @@ */ public class BaseModel implements java.io.Serializable{ - /** * 涓婚敭锛屽鏋滆嚜宸辩殑瀵硅薄锛屼笉鏄痮id浣滀负涓婚敭鐨勮瘽锛岄渶瑕佺敤id杩欎釜娉ㄨВ */ @Column(nullable = false) private String oid; - - /** - * 浠e彿锛涘彲浠ヨ缃睘鎬х殑鏄犲皠锛宯ame琛ㄧず鍦ㄥ钩鍙扮殑涓氬姟绫诲瀷涓殑灞炴�у悕绉帮紝蹇呴』涓哄皬鍐欙紱 - */ - @Column() - private String id; - - /** - * 鍚嶇О锛涗篃鍙互涓嶈缃睘鎬ф槧灏勶紝榛樿鏄瓧娈靛悕鐨勫皬鍐� - */ - @Column() - private String name; - - /** - * 鎻忚堪 - */ - @Column() - private String description; - + /** * 鐗堟湰鐨勪富閿� */ @Column() private String revisionOid; - + /** * 瀵硅薄鐨勪富閿� */ @Column() private String nameOid; - + /** * 涓氬姟绫诲瀷鐨勫悕绉� */ @Column() private String btmName; - + /** - * 鏄惁鏈�鍚庣増鏈� + * 鏄惁鏈�鍚庣増鏈��1锛氭槸锛�0锛氬惁 */ @Column(length=1) private String lastR; - - + + /** - * 鏄惁鏈�鍒濈増鏈� + * 鏄惁鏈�鍒濈増鏈��1锛氭槸锛�0锛氬惁 */ @Column(length=1) private String firstR; - - + + /** - * 鏄惁鏈�鏂扮増娆� + * 鏄惁鏈�鏂扮増娆°��1锛氭槸锛�0锛氬惁 */ @Column(length=1) private String lastV; - - + + /** - * 鏄惁鏈�鏃╃増娆� + * 鏄惁鏈�鏃╃増娆°��1锛氭槸锛�0锛氬惁 */ @Column(length=1) private String firstV; - + /** * 鍒涘缓浜� */ @Column(nullable = false) private String creator; - + /** * 鍒涘缓鏃堕棿 */ @Column(nullable = false) @VciFieldType(VciFieldTypeEnum.VTDateTime) private Date createTime; - + /** * 鏈�鍚庝慨鏀逛汉 */ @Column(nullable = false) private String lastModifier; - + /** * 鏈�鍚庝慨鏀规椂闂达紝鏍煎紡鏄痽yyy-MM-dd HH:mm:ss.SSS */ @VciFieldType(VciFieldTypeEnum.VTDateTime) private Date lastModifyTime; - + /** * 鐗堟湰瑙勫垯 */ @Column() private String revisionRule; - - - /** - * 鐗堟湰搴忓彿 - */ - @VciFieldType(VciFieldTypeEnum.VTInteger) - private int revisionSeq; - - /** - * 鐗堟湰鍊� - */ - @Column() - private String revisionValue; - /** * 鐗堟瑙勫垯 @@ -140,11 +107,23 @@ private String versionRule; /** + * 鐗堟湰搴忓彿 + */ + @VciFieldType(VciFieldTypeEnum.VTInteger) + private int revisionSeq; + + /** + * 鐗堟湰鍊� + */ + @Column() + private String revisionValue; + + /** * 鐗堟鎺掑簭 */ @VciFieldType(VciFieldTypeEnum.VTInteger) private int versionSeq; - + /** * 鐗堟鍊� */ @@ -162,54 +141,72 @@ */ @Column() private String lcStatus; + + /** + * 鏃堕棿鎴筹紝鏍煎紡鏄痽yyy-MM-dd HH:mm:ss.SSS + */ + @JsonFormat(pattern = VciDateUtil.DateTimeMillFormat) + private Date ts; + + /** + * 浠e彿锛涘彲浠ヨ缃睘鎬х殑鏄犲皠锛宯ame琛ㄧず鍦ㄥ钩鍙扮殑涓氬姟绫诲瀷涓殑灞炴�у悕绉帮紝蹇呴』涓哄皬鍐欙紱 + */ + @Column() + private String id; + + /** + * 鍚嶇О锛涗篃鍙互涓嶈缃睘鎬ф槧灏勶紝榛樿鏄瓧娈靛悕鐨勫皬鍐� + */ + @Column() + private String name; + + /** + * 鎻忚堪 + */ + @Column() + private String description; + + /** + * 鎷ユ湁鑰咃紝涓庡垱寤鸿�呮湁鍖哄埆锛屽父鐢ㄤ簬鎺у埗鏁版嵁鏉冮檺 + */ + @Column(length = 50) + private String owner; + + /** + * 绛惧叆浜�--绛惧叆鍜岀鍑烘暟鎹槸浜掓枼 + */ + @Column(length = 50) + private String checkInBy; + + /** + * 绛惧叆鏃堕棿 + */ + @VciFieldType(VciFieldTypeEnum.VTDateTime) + private Date checkInTime; + + /** + * 绛惧嚭浜� + */ + @Column(length = 50) + private String checkOutBy; + + /** + * 绛惧嚭鏃堕棿 + */ + @VciFieldType(VciFieldTypeEnum.VTDateTime) + private Date checkOutTime; + + /** + * 浠庡摢涓増鏈嫹璐� + */ + @Column(length = 50) + private String copyFromVersion; /** * 鐢熷懡鍛ㄦ湡鏄剧ず鏂囨湰 */ @Transient(referColumn="lcStatus_text") private String lcStatusText; - - /** - * 鏃堕棿鎴筹紝鏍煎紡鏄痽yyy-MM-dd HH:mm:ss.SSS - */ - @JsonFormat(pattern = VciDateUtil.DateTimeMillFormat) - private Date ts; - - /** - * 鎷ユ湁鑰咃紝涓庡垱寤鸿�呮湁鍖哄埆锛屽父鐢ㄤ簬鎺у埗鏁版嵁鏉冮檺 - */ - @Column(length = 50) - private String owner; - - /** - * 绛惧叆浜�--绛惧叆鍜岀鍑烘暟鎹槸浜掓枼 - */ - @Column(length = 50) - private String checkInBy; - - /** - * 绛惧叆鏃堕棿 - */ - @VciFieldType(VciFieldTypeEnum.VTDateTime) - private Date checkInTime; - - /** - * 绛惧嚭浜� - */ - @Column(length = 50) - private String checkOutBy; - - /** - * 绛惧嚭鏃堕棿 - */ - @VciFieldType(VciFieldTypeEnum.VTDateTime) - private Date checkOutTime; - - /** - * 浠庡摢涓増鏈嫹璐� - */ - @Column(length = 50) - private String copyFromVersion; /** * 瀵嗙骇 @@ -235,30 +232,6 @@ public void setOid(String oid) { this.oid = oid; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; } public String getRevisionOid() { @@ -357,6 +330,14 @@ this.revisionRule = revisionRule; } + public String getVersionRule() { + return versionRule; + } + + public void setVersionRule(String versionRule) { + this.versionRule = versionRule; + } + public int getRevisionSeq() { return revisionSeq; } @@ -371,14 +352,6 @@ public void setRevisionValue(String revisionValue) { this.revisionValue = revisionValue; - } - - public String getVersionRule() { - return versionRule; - } - - public void setVersionRule(String versionRule) { - this.versionRule = versionRule; } public int getVersionSeq() { @@ -413,20 +386,36 @@ this.lcStatus = lcStatus; } - public String getLcStatusText() { - return lcStatusText; - } - - public void setLcStatusText(String lcStatusText) { - this.lcStatusText = lcStatusText; - } - public Date getTs() { return ts; } public void setTs(Date ts) { this.ts = ts; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; } public String getOwner() { @@ -477,6 +466,14 @@ this.copyFromVersion = copyFromVersion; } + public String getLcStatusText() { + return lcStatusText; + } + + public void setLcStatusText(String lcStatusText) { + this.lcStatusText = lcStatusText; + } + public Integer getSecretGrade() { return secretGrade; } diff --git a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue index 65e61c2..da12fef 100644 --- a/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue +++ b/Source/plt-web/plt-web-ui/src/components/PLT-basic-component/transfer.vue @@ -6,7 +6,7 @@ :visible.sync="visible" append-to-body="true" class="avue-dialog" - width="830px" + width="800px" @close="dialogClose"> <div style="height: 42px;line-height: 30px;margin-top: -5px;" v-if="topMethodsObj !== {} && topMethodsObj"> <div> @@ -27,6 +27,7 @@ :data="data" :filter-method="filterMethod" :render-content="renderFunc" + @change="handleChange" :titles="transferTitle" filter-placeholder="鍏抽敭璇嶆悳绱�" filterable @@ -82,8 +83,9 @@ this.data = []; newval.forEach((item) => { this.data.push({ + ...item, label: item.name, - key: item.oid, + key: item.oid }); }); this.loading = false; @@ -97,8 +99,8 @@ methods: { dialogClose() { this.visible = false; - this.data = []; - this.leftRoleData = []; + //this.data = []; + //this.rightRoleData = []; }, sendHandler() { if (func.isEmptyObject(this.topMethodsObj)) { @@ -117,6 +119,8 @@ this.visible = false; }, + handleChange(value, direction, movedKeys) { + } } } </script> @@ -124,13 +128,23 @@ <style lang="scss" scoped> /deep/ .el-transfer-panel { height: 450px; /* 宸﹀彸涓や釜绌挎妗嗙殑楂樺害鍜屽搴� */ - width: 300px; + width: 322px; } /deep/ .el-transfer-panel__list.is-filterable { height: 323px; /* 绌挎妗嗗垪琛ㄩ珮搴� */ } - +/deep/ .el-transfer__buttons .el-button{ + display: block; + margin: 30px 0; + padding: 8px 15px; +} +/deep/ .el-transfer__button:first-child{ + transform: translateY(200%); +} +/deep/ .el-transfer__button:nth-child(2){ + transform: translateY(-200%); +} .valueInfo { float: left; border: 1px solid #E9E7E7; diff --git a/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/dataView.vue b/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/dataView.vue index fe69008..49865da 100644 --- a/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/dataView.vue +++ b/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/dataView.vue @@ -12,23 +12,26 @@ <fieldset style="width: 48%"> <legend> 涓讳綋 </legend> <div> - <avue-crud ref="mainCrud" :data="mainData" :option="mainOption"> + <avue-crud ref="mainCrud" :data="mainData" :option="mainOption" + @current-row-change="mainCurrentRowHandler" + > <template #type="{ row }"> <el-tag v-if="row.type=='鐢ㄦ埛'" :key="row.oid" effect="dark">{{ row.type }}</el-tag> <el-tag v-else-if="row.type=='瑙掕壊'" type="info" :key="row.oid" effect="dark">{{ row.type }}</el-tag> - <el-tag v-else="row.type=='閮ㄩ棬'" type="warning" :key="row.oid" effect="dark">{{ row.type }}</el-tag> + <el-tag v-else="row.type=='鐢ㄦ埛缁�'" type="warning" :key="row.oid" effect="dark">{{ row.type }}</el-tag> </template> </avue-crud> </div> </fieldset> <div style="text-align: center;"> - <el-button icon="el-icon-arrow-right" size="mini" @click="rightHandler" style="margin-bottom: 50px;"></el-button><br/> - <el-button icon="el-icon-arrow-left" size="mini" @click="leftHandler"></el-button> + <el-button icon="el-icon-arrow-right" type="primary" size="small" @click="rightHandler" style="margin-bottom: 50px;"></el-button><br/> + <el-button icon="el-icon-arrow-left" type="primary" size="small" @click="leftHandler"></el-button> </div> <fieldset style="width: 42%"> <legend> 鎺堟潈涓讳綋 </legend> <div> - <avue-crud ref="authCrud" :data="authData" :option="authOption" :table-loading="tableLoading"> + <avue-crud ref="authCrud" :data="authData" :option="authOption" :table-loading="tableLoading" + @current-row-change="authCurrentRowHandler"> </avue-crud> </div> </fieldset> @@ -112,9 +115,32 @@ </transfer> <!-- 閫夋嫨鐢ㄦ埛绌挎妗� --> <transfer ref="roletransfer" :left-role-data="leftRoleData" :right-role-data="rightRoleData" - :transferTitle="['鐜版湁瑙掕壊','鎷ユ湁瑙掕壊']" title="娣诲姞瑙掕壊" + :transferTitle="['鐜版湁瑙掕壊','鎷ユ湁瑙掕壊']" title="鍒嗛厤瑙掕壊" @transferSend="roleSendHandler"> </transfer> + <!-- 閫夋嫨閮ㄩ棬瀵硅瘽妗� --> + <el-dialog + v-dialogDrag + v-loading="departLoading" + :visible.sync="departVisible" + append-to-body="true" + class="avue-dialog" + title="閫夋嫨閮ㄩ棬" + width="50%" + > + <avue-crud + ref="departCrud" + :data="departData" + :option="departOption" + @selection-change="selectDepartChange" + @row-click="rowClickDeptHandler" + > + </avue-crud> + <div slot="footer" class="dialog-footer"> + <el-button size="small" type="primary" @click="saveDepartHandler">纭� 瀹�</el-button> + <el-button size="small" @click="departVisible = false">鍙� 娑�</el-button> + </div> + </el-dialog> </div> </template> @@ -123,8 +149,8 @@ import formQueryDialog from "@/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue"; import {queryTemplateListByAttr} from "@/api/queryTemplate/queryDefine"; import {getCriteria} from "@/api/queryTemplate/linkTypeQuery"; -import {listUserByUserType} from "@/api/system/user/api"; -import {listUserByRoleOid, listUserUnInRoleOid, saveRight} from "@/api/system/role/api"; +import {listUserByUserType, gridRoles, departmentQueryController} from "@/api/system/user/api"; +import func from "@/util/func"; export default { name: "dataView", @@ -159,7 +185,40 @@ rightUserData: [], // 閫夋嫨鎴愬憳绌挎妗嗗彸渚у垵濮嬫暟鎹� leftRoleData: [], // 閫夋嫨瑙掕壊绌挎妗嗗乏渚у垵濮嬫暟鎹� rightRoleData: [], // 閫夋嫨瑙掕壊绌挎妗嗗彸渚у垵濮嬫暟鎹� + departCurrenRows: [], + departOption: { + ...basicOption, + addBtn: false, + rowKey: 'oid', + rowParentKey: 'parentId', + selection: true, + highlightCurrentRow: true, + stripe: false, + menu: false, + refreshBtn: false, + gridBtn: false, + header: false, + column: [ + { + label: '鍚嶇О', + prop: 'name', + align: 'left' + }, + { + label: '缂栧彿', + prop: 'id', + }, + { + label: '鎻忚堪', + prop: 'description', + }, + ] + }, + departData: [],//閫夋嫨閮ㄩ棬鏁版嵁 + departLoading: false, + departVisible: false, mainData:[], + mainCurrentRow:{}, tableLoading: false, mainOption: { ...basicOption, @@ -178,7 +237,7 @@ label: ' 鍒嗙被', prop: 'type', sortable: true, - width:110 + width:90 },{ label: '缂栫爜', prop: 'id' @@ -188,6 +247,7 @@ }] }, authData:[], + authCurrentRow:{}, authOption:{ ...basicOption, header:false, @@ -242,7 +302,14 @@ value: '3', disabled:true }], - value: '0' + value: '0', + change:function (column,value){ + if(value=='1' || value=='3'){ + this.form.btmName=this.btmNode.attributes.name; + this.form.levelFlag=0; + this.form.queryTemplate={}; + } + } }], form:{ btmName:'', @@ -254,14 +321,14 @@ "userGroups": "",//鏄剧ず鍒版巿鏉冧富浣撶晫闈紝閮ㄩ棬鍚嶇О锛屽涓娇鐢ㄩ�楀彿鍒嗛殧 "users": "",//鏄剧ず鍒版巿鏉冧富浣撶晫闈紝鐢ㄦ埛鍚嶇О锛屽涓娇鐢ㄩ�楀彿鍒嗛殧 "expToSQL": "",//姝ゅ涓哄厑璁告潈闄愭垨鎷掔粷鏉冮檺闇�濉厖鐨勬暟鎹紝鏆傛椂涓嶅仛澶勭悊锛屼负绌哄瓧绗︿覆鍗冲彲 - "identifier": "terminology_query",//涓氬姟绫诲瀷锛坱erminology锛�+涓嬪垝绾匡紙_锛�+鎿嶄綔鍖虹殑涓�鑸搷浣滅殑鎸夐挳鑻辨枃鍚嶇О锛坬uery锛�,澶氫釜鎸夐挳鐨勮瘽鏄鏉℃暟鎹笉鏄娇鐢ㄩ�楀彿鍒嗛殧 + "identifier": "",//涓氬姟绫诲瀷锛坱erminology锛�+涓嬪垝绾匡紙_锛�+鎿嶄綔鍖虹殑涓�鑸搷浣滅殑鎸夐挳鑻辨枃鍚嶇О锛坬uery锛�,澶氫釜鎸夐挳鐨勮瘽鏄鏉℃暟鎹笉鏄娇鐢ㄩ�楀彿鍒嗛殧 "isGrand": 49, //姝ゅ涓烘搷浣滃尯鐨勪竴鑸搷浣滅殑鎸夐挳鏄惁涓洪�夋嫨鎯呭喌锛屾湭閫変腑鍊间负48锛岄�変腑涓�49锛岃繖閲屾槸灏�0鍜�1杞负浜哹yte鍊硷紝鎵�浠ヤ负48锛�49 "lexpToSQL": "",//姝ゅ涓哄厑璁告潈闄愭垨鎷掔粷鏉冮檺闇�濉厖鐨勬暟鎹紝鏆傛椂涓嶅仛澶勭悊锛屼负绌哄瓧绗︿覆鍗冲彲 "lruleText": "",//姝ゅ涓哄厑璁告潈闄愭垨鎷掔粷鏉冮檺闇�濉厖鐨勬暟鎹紝鏆傛椂涓嶅仛澶勭悊锛屼负绌哄瓧绗︿覆鍗冲彲 "lseniorRuleText": "",//姝ゅ涓哄厑璁告潈闄愭垨鎷掔粷鏉冮檺闇�濉厖鐨勬暟鎹紝鏆傛椂涓嶅仛澶勭悊锛屼负绌哄瓧绗︿覆鍗冲彲 - "ruleName": "assssss",//瑙勫垯鍚嶇О + "ruleName": "",//瑙勫垯鍚嶇О "ruleText": "",//姝ゅ涓哄厑璁告潈闄愭垨鎷掔粷鏉冮檺闇�濉厖鐨勬暟鎹紝鏆傛椂涓嶅仛澶勭悊锛屼负绌哄瓧绗︿覆鍗冲彲 - "ruleType": "2",//0鍏ㄩ儴鍏佽锛�1鍏佽鏉冮檺锛�2鍏ㄩ儴鎷掔粷锛�3鎷掔粷鏉冮檺锛岀敱浜庢殏鏃跺彧鍋氬叏閮ㄥ厑璁镐笌鍏ㄩ儴鎷掔粷锛屾墍浠ユ殏鏃跺彲浠ヤ笉鐢ㄧ + "ruleType": "",//0鍏ㄩ儴鍏佽锛�1鍏佽鏉冮檺锛�2鍏ㄩ儴鎷掔粷锛�3鎷掔粷鏉冮檺锛岀敱浜庢殏鏃跺彧鍋氬叏閮ㄥ厑璁镐笌鍏ㄩ儴鎷掔粷锛屾墍浠ユ殏鏃跺彲浠ヤ笉鐢ㄧ "seniorRuleText": "",//姝ゅ涓哄厑璁告潈闄愭垨鎷掔粷鏉冮檺闇�濉厖鐨勬暟鎹紝鏆傛椂涓嶅仛澶勭悊锛屼负绌哄瓧绗︿覆鍗冲彲 }, radioForm:0, @@ -314,24 +381,40 @@ }, created() { listUserByUserType().then(res => { - if(typeof res.data == 'string'){ - res.data=eval('('+res.data +')') - } // 缁勮濂界┛姊鍙敤鏁版嵁 this.leftUserData = res.data.data.map(item => { return { + ...item, name: item.name + `(${item.id})`, oid: item.oid } }) this.rightUserData = []; }) + gridRoles(1,-1).then(res => { + // 缁勮濂界┛姊鍙敤鏁版嵁 + this.leftRoleData = res.data.data.map(item => { + return { + ...item, + name: item.name , + oid: item.oid + } + }) + this.rightRoleData = []; + }) + departmentQueryController({queryAllLevel: true}).then(res => { + const data = res.data.treeData; + this.departData = this.departDtaFormAtter(data); + }).catch(err => { + this.$message.error(err); + }) }, watch: { selectRow:{ - handler(val) { + handler(val,oldval) { this.authData=[]; if(val && val.rules){ + this.form=JSON.parse(JSON.stringify(val.rules)); //this.getTemp(true); //this.getTemp(false) //鏋勫缓鎺堟潈涓讳綋鏁版嵁 @@ -362,6 +445,8 @@ } }) } + }else { + this.form={}; } }, immediate: true, @@ -391,45 +476,135 @@ // 閫変腑鐢ㄦ埛绌挎妗嗗洖濉� userSendHandler(row) { + this.mainData=this.mainData.filter(item=>{ + return item.type!='鐢ㄦ埛' + }) row.forEach((item,index)=>{ - this.authData.push({ - type:'user', - ...item + var addItem=this.leftUserData.find(leftitem=>leftitem.oid==item); + this.mainData.push({ + type:'鐢ㄦ埛', + id:addItem.id, + name:addItem.name.split('(')[0], + oid:addItem.oid }) }) + this.rightUserData=row; + this.$refs.usertransfer.visible = false; }, //閫夋嫨瑙掕壊 roleHandler(){ - Promise.all([ - listUserUnInRoleOid({pkRole: this.selectList.oid}), - listUserByRoleOid({pkRole: this.selectList.oid}) - ]).then(([unInRoleRes, byRoleRes]) => { - if (unInRoleRes.data.code === 200 && byRoleRes.data.code === 200) { - const leftData = [...unInRoleRes.data.data, ...byRoleRes.data.data]; - // 缁勮濂界┛姊鍙敤鏁版嵁 - this.leftRoleData = leftData.map(item => { - return { - name: item.name + `(${item.id})`, - oid: item.oid - } - }) - this.rightRoleData = byRoleRes.data.data.map(item => item.oid); - this.$refs.transfer.visible = true; - } - }); + this.$refs.roletransfer.visible = true; }, // 閫夋嫨瑙掕壊绌挎妗嗗洖濉� roleSendHandler(row) { + this.mainData=this.mainData.filter(item=>{ + return item.type!='瑙掕壊' + }) row.forEach((item,index)=>{ - this.authData.push({ - type:'role', - ...item + var addItem=this.leftRoleData.find(leftitem=>leftitem.oid==item); + this.mainData.push({ + type:'瑙掕壊', + id:addItem.name, + name:addItem.name, + oid:addItem.oid }) }) + this.rightRoleData=row; + this.$refs.roletransfer.visible = false; }, //閫夋嫨鐢ㄦ埛缁� deptHandler(){ - + this.departVisible=true; + }, + // 閫夋嫨閮ㄩ棬鏁版嵁杞崲 + departDtaFormAtter(items) { + return items.map(item => { + // 杞崲褰撳墠鑺傜偣鐨勫睘鎬� + const formList = { + oid: item.oid, + id: item.attributes.id, + name: item.attributes.name, + description: item.attributes.description, + parentId: item.parentId, + parentName: item.parentName, + parentBtmName: item.parentBtmName, + // 濡傛灉children瀛樺湪涓斾笉涓虹┖锛屽垯閫掑綊杞崲children + children: item.children && item.children.length > 0 ? this.departDtaFormAtter(item.children) : undefined + }; + return formList; + }); + }, + // 閫夋嫨閮ㄩ棬 + selectDepartChange(row) { + this.departCurrenRows = row; + }, + // 閫夋嫨閮ㄩ棬 琛屽崟閫� + rowClickDeptHandler(row) { + func.rowClickHandler( + row, + this.$refs.departCrud, + this.lastIndex, + (newIndex) => { this.lastIndex = newIndex; }, + () => { this.departCurrenRows = [row]; } + ); + }, + // 閫夋嫨閮ㄩ棬 纭畾 + saveDepartHandler() { + if (this.departCurrenRows.length==0) { + this.$message.warning('璇烽�夋嫨閮ㄩ棬鑺傜偣锛�') + return; + } + this.mainData=this.mainData.filter(item=>{ + return item.type!='鐢ㄦ埛缁�' + }) + this.departCurrenRows.forEach((addItem,index)=>{ + this.mainData.push({ + type:'鐢ㄦ埛缁�', + id:addItem.id, + name:addItem.name, + oid:addItem.oid + }) + }) + this.departVisible = false; + }, + //涓讳綋鍒楄〃琛岀偣鍑� + mainCurrentRowHandler(row){ + this.mainCurrentRow=row; + }, + //鎺堟潈涓讳綋鍒楄〃琛岀偣鍑� + authCurrentRowHandler(row){ + this.authCurrentRow=row; + }, + rightHandler() { + if(func.isEmptyObject(this.mainCurrentRow)){ + this.$message.warning('璇烽�夋嫨鐢ㄦ埛銆佺敤鎴风粍銆佽鑹蹭俊鎭紒') + return; + } + let name='{' + this.mainCurrentRow.id + ', ' + this.mainCurrentRow.name + ', '; + if (this.mainCurrentRow.type == '鐢ㄦ埛') { + name+='user}'; + } else if (this.mainCurrentRow.type == '瑙掕壊') { + name+='role}'; + } else if (this.mainCurrentRow.type == '鐢ㄦ埛缁�') { + name+='userGroup}'; + } + let canAdd = !this.authData.some(item => { + return item.name == name + }) + if(canAdd) { + this.authData.push({ + name: name + }) + this.$refs.mainCrud.setCurrentRow(); + this.mainCurrentRow={} + }else { + this.$message.warning('鎺堟潈涓讳綋淇℃伅閫夋嫨閲嶅锛�') + } + }, + leftHandler() { + this.authData = this.authData.filter(item => { + return item.name != this.authCurrentRow.name + }) }, initFormData() { let formData = { diff --git a/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue b/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue index f8c8799..2b0c6fa 100644 --- a/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/authority/ui/dataAuthorization/index.vue @@ -47,10 +47,10 @@ width="70%" @close="addDialogClose"> <div> - <data-view ref="editView" key="editView" :btmNode="nodeRow" :selectRow="selectRow" :actionMap="actionMap" :readOnly="false" :height="clientHeight-340"></data-view> + <data-view ref="editView" key="editView" :btmNode="nodeRow" :selectRow="title === 'add'?{}:selectRow" :actionMap="actionMap" :readOnly="false" :height="clientHeight-260"></data-view> </div> <span slot="footer" class="dialog-footer"> - <el-button size="small" type="primary" @click="addDialogSavaHandler">纭� 瀹�</el-button> + <el-button size="small" type="primary" @click="addDialogSavaHandler">淇� 瀛�</el-button> <el-button size="small" @click="addDialogClose">鍙� 娑�</el-button> </span> </el-dialog> @@ -170,9 +170,9 @@ }, getTableList() { getData(this.nodeRow.attributes.name).then(res => { - /*if(typeof res.data == 'string'){ + if(typeof res.data == 'string'){ res.data=eval('('+res.data +')') - }*/ + } if(res.data.obj.tableHeader){ this.option.column=[ { label: '瑙勫垯鍚嶇О', @@ -255,8 +255,8 @@ }, //淇敼 editHandler(){ - if (func.isEmptyObject(this.nodeRow)) { - this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); + if (func.isEmptyObject(this.selectRow)) { + this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�'); return; } this.title = 'edit'; @@ -264,13 +264,31 @@ }, // 鏂板缂栬緫淇濆瓨 addDialogSavaHandler() { - saveGrand(this.viewData).then(res => { - if (res.data.code === 200) { - this.$message.success(res.data.obj); + let form=this.$refs.editView.form; + form.users='' + form.userGroups=''; + form.roles='' + this.$refs.editView.authData.forEach(item=>{ + let infos=item.name.split(', '); + infos[0]=infos[0].replace('{','') + if(infos[2]=='user}'){ + form.users+=infos[0]+',' + } + if(infos[2]=='userGroup}'){ + form.userGroups+=infos[0]+',' + } + if(infos[2]=='role}'){ + form.roles+=infos[0]+',' + } + }); + console.log(form) + //saveGrand(this.viewData).then(res => { + //if (res.data.code === 200) { + //this.$message.success(res.data.obj); this.getTableList(); this.addDialogClose(); - } - }) + //} + //}) }, // 鏂板缂栬緫瀵硅瘽妗嗗彇娑� addDialogClose() { @@ -278,7 +296,7 @@ }, //鍒犻櫎 delHandler(){ - if (func.isEmptyObject(this.nodeRow)) { + if (func.isEmptyObject(this.selectRow)) { this.$message.error('璇烽�夋嫨鏁版嵁'); return; } diff --git a/Source/plt-web/plt-web-ui/src/views/system/role/index.vue b/Source/plt-web/plt-web-ui/src/views/system/role/index.vue index 64d260f..9858341 100644 --- a/Source/plt-web/plt-web-ui/src/views/system/role/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/system/role/index.vue @@ -182,7 +182,7 @@ this.$refs.roleCrud, this.lastIndex, (newIndex) => { this.lastIndex = newIndex; }, - () => { this.selectList = []; } + () => { this.selectList = [row]; } ); }, @@ -283,6 +283,8 @@ listUserUnInRoleOid({pkRole: this.selectList[0].oid}), listUserByRoleOid({pkRole: this.selectList[0].oid}) ]).then(([unInRoleRes, byRoleRes]) => { + this.leftRoleData=[]; + this.rightRoleData=[]; if (unInRoleRes.data.code === 200 && byRoleRes.data.code === 200) { const leftData = [...unInRoleRes.data.data, ...byRoleRes.data.data]; // 缁勮濂界┛姊鍙敤鏁版嵁 diff --git a/Source/plt-web/plt-web-ui/src/views/system/user/index.vue b/Source/plt-web/plt-web-ui/src/views/system/user/index.vue index 3751399..971b60b 100644 --- a/Source/plt-web/plt-web-ui/src/views/system/user/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/system/user/index.vue @@ -61,12 +61,11 @@ class="avue-dialog" style="margin-top: -15vh !important;" title="璁剧疆瀵嗙爜绛栫暐" - width="30%" + width="500px" > - <div class="password-strategy-container"> - <div><i class="el-icon-setting"/>璁剧疆瀵嗙爜绛栫暐锛�</div> - <el-select v-model="pwdValue" placeholder="璇烽�夋嫨瀵嗙爜绛栫暐"> + <div style="width:115px;"><i class="el-icon-setting"/>璁剧疆瀵嗙爜绛栫暐锛�</div> + <el-select v-model="pwdValue" placeholder="璇烽�夋嫨瀵嗙爜绛栫暐" style="width: 330px;"> <el-option v-for="(item,index) in pwdList" :key="index" :label="item.name" :value="item.id"></el-option> </el-select> </div> @@ -549,7 +548,7 @@ <style lang="scss" scoped> .password-strategy-container { - padding-left: 20px; + margin-bottom: 20px; display: flex; //justify-content: center; align-items: center; -- Gitblit v1.9.3