sasp-admin 0.2.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/index.js +227 -0
  2. package/package.json +19 -0
  3. package/router.js +83 -0
  4. package/src/assets/font/iconfont.css +1346 -0
  5. package/src/assets/font/iconfont.eot +0 -0
  6. package/src/assets/font/iconfont.js +1 -0
  7. package/src/assets/font/iconfont.svg +827 -0
  8. package/src/assets/font/iconfont.ttf +0 -0
  9. package/src/assets/font/iconfont.woff +0 -0
  10. package/src/assets/images/loading-bar.gif +0 -0
  11. package/src/assets/js/adminInstall.js +36 -0
  12. package/src/assets/js/api/apiAdmin.js +613 -0
  13. package/src/assets/js/global/dataGlobal.js +260 -0
  14. package/src/assets/js/global/logGlobal.js +22 -0
  15. package/src/assets/js/global/paramGlobal.js +67 -0
  16. package/src/assets/js/global/resGlobal.js +91 -0
  17. package/src/assets/js/global/userGlobal.js +283 -0
  18. package/src/components/complexViewRendering.vue +601 -0
  19. package/src/components/ifmLink.vue +71 -0
  20. package/src/components/public/data/plDataCascader.vue +85 -0
  21. package/src/components/public/data/plDataRadio.vue +73 -0
  22. package/src/components/public/data/plDataRadioGroup.vue +70 -0
  23. package/src/components/public/data/plDataSelect.vue +856 -0
  24. package/src/components/public/data/plDatePicker.vue +159 -0
  25. package/src/components/public/org/bg.png +0 -0
  26. package/src/components/public/org/sysOrgPosUserSelect.vue +1237 -0
  27. package/src/components/public/org/sysOrgPosUserSelectDark.vue +1402 -0
  28. package/src/components/public/org/sysOrgPosUserSelectNew.vue +1527 -0
  29. package/src/components/public/upload/images/compress.png +0 -0
  30. package/src/components/public/upload/images/emipty.png +0 -0
  31. package/src/components/public/upload/images/excel.png +0 -0
  32. package/src/components/public/upload/images/file.png +0 -0
  33. package/src/components/public/upload/images/pdf.png +0 -0
  34. package/src/components/public/upload/images/powerpoint.png +0 -0
  35. package/src/components/public/upload/images/project.png +0 -0
  36. package/src/components/public/upload/images/sound.png +0 -0
  37. package/src/components/public/upload/images/txt.png +0 -0
  38. package/src/components/public/upload/images/video.png +0 -0
  39. package/src/components/public/upload/images/visio.png +0 -0
  40. package/src/components/public/upload/images/word.png +0 -0
  41. package/src/components/public/upload/plImage.vue +287 -0
  42. package/src/components/public/upload/plImgUpload.vue +137 -0
  43. package/src/components/public/upload/plUpload.vue +1124 -0
  44. package/src/components/public/upload/uploadImg.js +8 -0
  45. package/src/main.js +0 -0
  46. package/src/views/VueMenuView.vue +143 -0
  47. package/src/views/cloudMenuView.vue +125 -0
  48. package/src/views/complex/config/complex.vue +501 -0
  49. package/src/views/complex/config/complexSetting.vue +1250 -0
  50. package/src/views/complex/rendering/complexShow.vue +16 -0
  51. package/src/views/data/dataManage.vue +560 -0
  52. package/src/views/data/sysData.vue +292 -0
  53. package/src/views/event/eventManager/vueEventDiy.vue +1184 -0
  54. package/src/views/event/eventManager/vueEventMain.vue +108 -0
  55. package/src/views/event/eventManager/vueEventSys.vue +296 -0
  56. package/src/views/event/js/apiEvent.js +22 -0
  57. package/src/views/fileLog/fileDownloadLog.vue +437 -0
  58. package/src/views/initData/initData.vue +4316 -0
  59. package/src/views/log/dblog/logdbDevelop.vue +306 -0
  60. package/src/views/log/dblog/logdbEnt.vue +331 -0
  61. package/src/views/log/dblog/logdbGov.vue +395 -0
  62. package/src/views/log/error/logError.vue +553 -0
  63. package/src/views/log/loginlog/logManageDevOrSup.vue +357 -0
  64. package/src/views/log/loginlog/logManageEnt.vue +343 -0
  65. package/src/views/log/loginlog/logManageGov.vue +328 -0
  66. package/src/views/log/sms/logSms.vue +308 -0
  67. package/src/views/menu/component/menuManageComponent.vue +2402 -0
  68. package/src/views/menu/component/menuModule.vue +449 -0
  69. package/src/views/menu/menuLocal.vue +223 -0
  70. package/src/views/menu/menuManage.vue +1135 -0
  71. package/src/views/menu/tenantMenuManage.vue +1132 -0
  72. package/src/views/menuRouter/cview/cviewShow.vue +18 -0
  73. package/src/views/menuRouter/cviewMenuRouter.vue +183 -0
  74. package/src/views/menuRouter/menuView.vue +132 -0
  75. package/src/views/menuRouter/urlMenuRouter.vue +160 -0
  76. package/src/views/org/entOrgTree.vue +1050 -0
  77. package/src/views/org/ownerMenu/ownerMenuTree.vue +269 -0
  78. package/src/views/org/safeValidate/safeValidate.vue +469 -0
  79. package/src/views/org/sysEntOrgUserDetail.vue +3390 -0
  80. package/src/views/org/sysOrgDimension.vue +832 -0
  81. package/src/views/org/sysOrgPosUserDetail.vue +1648 -0
  82. package/src/views/org/sysOrgPosUserTree.vue +1101 -0
  83. package/src/views/org/sysOrgTree.vue +864 -0
  84. package/src/views/param/sysParam.vue +987 -0
  85. package/src/views/preview/pdfViewer.vue +82 -0
  86. package/src/views/resources/js/resourcesCommon.js +137 -0
  87. package/src/views/resources/resRouter/resView.vue +161 -0
  88. package/src/views/resources/resourcesTabs.vue +82 -0
  89. package/src/views/resources/tabs/comp/pageResPreview.vue +309 -0
  90. package/src/views/resources/tabs/comp/pageResRegister.vue +1120 -0
  91. package/src/views/resources/tabs/dataResources.vue +843 -0
  92. package/src/views/resources/tabs/pageResources.vue +970 -0
  93. package/src/views/role/allowMenu.vue +148 -0
  94. package/src/views/role/authRole/authRole.vue +427 -0
  95. package/src/views/role/authRole/component/allocateSetting.vue +1056 -0
  96. package/src/views/role/authRole/component/authSetting.vue +1196 -0
  97. package/src/views/role/commonRole/commonRole.vue +677 -0
  98. package/src/views/role/commonRole/compoment/allocateRoleMenuSetting.vue +335 -0
  99. package/src/views/role/commonRole/compoment/authLinkMenuTree.vue +55 -0
  100. package/src/views/role/commonRole/compoment/authSettingNew.vue +190 -0
  101. package/src/views/role/commonRole/compoment/commonSetting.vue +1576 -0
  102. package/src/views/role/commonRole/compoment/commonSettingAdjust.vue +584 -0
  103. package/src/views/role/commonRole/compoment/commonSettingNew.vue +572 -0
  104. package/src/views/role/commonRole/compoment/roleMenuPower.vue +226 -0
  105. package/src/views/role/commonRole/compoment/roleMenuPowerSetting.vue +69 -0
  106. package/src/views/role/commonRole/compoment/roleMenuSetting.vue +365 -0
  107. package/src/views/role/commonRole/compoment/roleSourceSetting.vue +229 -0
  108. package/src/views/role/commonRole/tenantCommonRole.vue +768 -0
  109. package/src/views/role/role.vue +135 -0
  110. package/src/views/role/roleMenuOption.vue +898 -0
  111. package/src/views/role/roleSynchroRemind.vue +399 -0
  112. package/src/views/role/sysRole.vue +1525 -0
  113. package/src/views/role/viewMenuOptDetail.vue +182 -0
  114. package/src/views/sms/sendSms.vue +164 -0
  115. package/src/views/station/orgStation.vue +561 -0
  116. package/src/views/tenant/appContentManager.vue +938 -0
  117. package/src/views/tenant/appManager.vue +642 -0
  118. package/src/views/tenant/tenantRoleManager.vue +670 -0
  119. package/src/views/tenant/tenantUserManager.vue +615 -0
  120. package/src/views/threeinone/compoment/safeCascadeSelect.vue +327 -0
  121. package/src/views/threeinone/init/safeInitRegion.vue +203 -0
  122. package/src/views/threeinone/safeManager.vue +927 -0
  123. package/src/views/threeinone/safeMenuManage.vue +565 -0
  124. package/src/views/threeinone/safeOrgSpv.vue +364 -0
  125. package/src/views/threeinone/safeSpv/safeSpvLeftTree.vue +109 -0
  126. package/src/views/threeinone/safeSpv/safeSpvMain.vue +335 -0
  127. package/src/views/threeinone/safeSpvEconView.vue +569 -0
  128. package/src/views/threeinone/safeValidateRegion.vue +328 -0
  129. package/src/views/urlResource/urlResource.vue +856 -0
  130. package/src/views/user/empowerUser/empowerEntUserManage.vue +415 -0
  131. package/src/views/user/empowerUser/empowerOrgTree.vue +167 -0
  132. package/src/views/user/empowerUser/empowerUserList.vue +633 -0
  133. package/src/views/user/empowerUser/empowerUserListMenuDeatil.vue +656 -0
  134. package/src/views/user/empowerUser/empowerUserListViewMenuTree.vue +257 -0
  135. package/src/views/user/empowerUser/empowerUserManage.vue +99 -0
  136. package/src/views/user/stationUserManage.vue +934 -0
  137. package/src/views/user/userManage.vue +737 -0
  138. package/src/views/user/userMangement.vue +938 -0
  139. package/src/views/user/viewMenu/viewMenu.vue +113 -0
  140. package/src/views/versionupdatetool/versionUpdateTool.vue +225 -0
  141. package/src/views/versionupdatetool/versioninfomation/verisonInfomationManagement.vue +68 -0
@@ -0,0 +1,633 @@
1
+ <template>
2
+ <el-container style="padding:1px 10px 8px 5px; box-sizing: border-box;height: 100%;">
3
+ <!--查询框 start-->
4
+ <el-header style="height: auto;padding: 0; box-sizing: border-box;">
5
+ <div class="search-form-parent" style="border: 1px solid #ddd;">
6
+ <el-form :inline="true" :model="crud.searchForm" size="small"
7
+ @keyup.enter.native="crud.doSearch()" onSubmit="return false;"
8
+ class="demo-form-inline">
9
+ <el-form-item label="用户名称">
10
+ <el-input v-model="crud.searchForm.userNamePinYin"
11
+ placeholder="中文、拼音全拼、简拼"></el-input>
12
+ </el-form-item>
13
+ <el-form-item label="用户账号">
14
+ <el-input v-model="crud.searchForm.userAccountLike"></el-input>
15
+ </el-form-item>
16
+ <el-form-item label="用户状态">
17
+ <el-select v-model="crud.searchForm.userStatus" size="small">
18
+ <el-option v-for="item in statusOptions" :key="item.value"
19
+ :label="item.label" :value="item.value"></el-option>
20
+ </el-select>
21
+ </el-form-item>
22
+ <el-form-item>
23
+ <el-button type="primary" icon="el-icon-search"
24
+ @click="crud.doSearch()">查询
25
+ </el-button>
26
+ <el-button icon="el-icon-close" @click="crud.resetSearch()">清空
27
+ </el-button>
28
+ </el-form-item>
29
+ </el-form>
30
+ </div>
31
+ </el-header>
32
+ <!--查询框 end-->
33
+
34
+ <!--列表数据 start-->
35
+ <el-main style="padding: 15px 0 10px 0; box-sizing: border-box;height: 100%;">
36
+ <el-container style="height: 100%">
37
+ <!--操作按钮 start-->
38
+ <el-header style="padding: 0;height: auto; box-sizing: border-box;">
39
+ <el-button type="primary" size="small" icon="el-icon-check" @click="add()">新增</el-button>
40
+ <el-button type="warning" size="small" icon="el-icon-s-cooperation" @click="settingLock('20')">设为锁定</el-button>
41
+ <el-button type="success" size="small" icon="el-icon-paperclip" @click="settingLock('10')">解锁</el-button>
42
+ <el-button type="info" size="small" icon="el-icon-s-promotion" @click="changeUserOrg()">转出</el-button>
43
+ <el-button type="danger" size="small" icon="el-icon-delete" @click="remove()">删除</el-button>
44
+ </el-header>
45
+ <!--操作按钮 end-->
46
+
47
+ <!--数据 start-->
48
+ <el-main style="margin-top:15px;padding: 0;box-sizing: border-box;height: 100%;">
49
+ <el-table :data="crud.dataStore.records" :ref="crud.tableRef" stripe border height="100%"
50
+ style="width: 100%;">
51
+ <el-table-column type="selection" width="40" align="center"></el-table-column>
52
+ <el-table-column type="index" label="序号" align="center" width="60"></el-table-column>
53
+ <el-table-column label="用户名称" prop="userName" align="center"></el-table-column>
54
+ <el-table-column label="用户账号" prop="userAccount" align="center" width="200"></el-table-column>
55
+ <el-table-column label="所属组织" prop="orgName" align="center"></el-table-column>
56
+ <el-table-column label="关联角色权限" prop="roleName" align="center"
57
+ :show-overflow-tooltip="true" width="200"></el-table-column>
58
+ <el-table-column label="当前状态" prop="userStatus" align="center" width="100">
59
+ <template slot-scope="scope">
60
+ <el-tag :type="userStatusColor[scope.row.userStatus]">{{userStatusObj[scope.row.userStatus]}}</el-tag>
61
+ </template>
62
+ </el-table-column>
63
+ <el-table-column label="操作" align="center" width="380">
64
+ <template slot-scope="scope">
65
+ <el-button size="small" icon="el-icon-edit" type="primary" @click="update(scope.row)">
66
+ 修改
67
+ </el-button>
68
+ <el-button size="small" icon="el-icon-zoom-in" :type="scope.row.empowerId?'primary':'info'" @click="viewMenu(scope.row)"
69
+ :disabled="scope.row.empowerId?false:true">
70
+ 查看可分配菜单
71
+ </el-button>
72
+ <!--<el-button size="small" icon="el-icon-edit-outline" type="primary">-->
73
+ <!--修改密码-->
74
+ <!--</el-button>-->
75
+ <el-button size="small" icon="el-icon-setting" type="primary" @click="resetPwd(scope.row)">
76
+ 重置密码
77
+ </el-button>
78
+ </template>
79
+ </el-table-column>
80
+ </el-table>
81
+ </el-main>
82
+ <!--数据 end-->
83
+ </el-container>
84
+ </el-main>
85
+ <!--列表数据 end-->
86
+ <pl-lazy>
87
+ <!--分页 start-->
88
+ <el-footer style="padding:0;height: 30px;box-sizing: border-box;">
89
+ <el-pagination style="padding: 0;box-sizing: border-box;"
90
+ :ref="crud.pageRef"
91
+ :page-sizes="crud.pageSizes"
92
+ :page-size="crud.pageSize"
93
+ :current-page="crud.page"
94
+ :total="crud.dataStore.total"
95
+ @size-change="crud.sizeChange()"
96
+ @current-change="crud.currentPage()"
97
+ layout="total, sizes, prev, pager, next, jumper">
98
+ </el-pagination>
99
+ </el-footer>
100
+ <!--分页 end-->
101
+
102
+ <!--添加修改弹框 start-->
103
+ <el-dialog :close-on-click-modal=false :title="addOrUpdateTitle" top="20vh" :visible.sync="addOrUpdateDialog">
104
+ <el-form :model="formData" ref="formDataRef" :rules="rules">
105
+ <el-row>
106
+ <el-col :span="12">
107
+ <el-form-item label="用户名称" label-width="100px" prop="userName">
108
+ <el-input v-model="formData.userName" size="small"></el-input>
109
+ </el-form-item>
110
+ </el-col>
111
+ <el-col :span="12">
112
+ <el-form-item label="用户账号" label-width="100px" prop="userAccount">
113
+ <el-input v-model="formData.userAccount" size="small"></el-input>
114
+ </el-form-item>
115
+ </el-col>
116
+ </el-row>
117
+ <el-row>
118
+ <el-col :span="12">
119
+ <el-form-item label="用户类型" label-width="100px" prop="userType">
120
+ <el-select v-model="formData.userType" style="width: 100%" disabled size="small">
121
+ <el-option v-for="item in userTypeArr" :key="item.value" :label="item.label" :value="item.value">
122
+ </el-option>
123
+ </el-select>
124
+ </el-form-item>
125
+ </el-col>
126
+ <el-col :span="12">
127
+ <el-form-item label="用户状态" label-width="100px" prop="userStatus">
128
+ <el-select v-model="formData.userStatus" style="width: 100%" size="small">
129
+ <el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value">
130
+ </el-option>
131
+ </el-select>
132
+ </el-form-item>
133
+ </el-col>
134
+ </el-row>
135
+ <el-row>
136
+ <el-col :span="12">
137
+ <el-form-item label="所属组织" label-width="100px" prop="orgId">
138
+ <tree-select v-model="formData.orgId" :options="treeData" placeholder="请选择" :required="true"/>
139
+ </el-form-item>
140
+ </el-col>
141
+ <el-col :span="12">
142
+ <el-form-item label="性别" label-width="100px" prop="userGender">
143
+ <el-select v-model="formData.userGender" style="width: 100%" size="small">
144
+ <el-option v-for="item in sexTypeArr" :key="item.value" :label="item.label" :value="item.value">
145
+
146
+ </el-option>
147
+ </el-select>
148
+ </el-form-item>
149
+ </el-col>
150
+ </el-row>
151
+ <el-row>
152
+ <el-col :span="12">
153
+ <el-form-item label="出生日期" label-width="100px" prop="userAge">
154
+ <el-date-picker v-model="formData.userAge" type="date" placeholder="选择日期"
155
+ :editable="false" style="width: 100%" size="small">
156
+ </el-date-picker>
157
+ </el-form-item>
158
+ </el-col>
159
+ <el-col :span="12">
160
+ <el-form-item label="联系QQ" label-width="100px" prop="userQQ">
161
+ <el-input v-model="formData.userQq" size="small"></el-input>
162
+ </el-form-item>
163
+ </el-col>
164
+ </el-row>
165
+ <el-row>
166
+ <el-col :span="12">
167
+ <el-form-item label="联系电话" label-width="100px" prop="userPhone">
168
+ <el-input v-model="formData.userPhone" size="small"></el-input>
169
+ </el-form-item>
170
+ </el-col>
171
+ <el-col :span="12">
172
+ <el-form-item label="电子邮箱" label-width="100px" prop="userEmail">
173
+ <el-input v-model="formData.userEmail" size="small"></el-input>
174
+ </el-form-item>
175
+ </el-col>
176
+ </el-row>
177
+ </el-form>
178
+ <div slot="footer" class="dialog-footer">
179
+ <el-button type="primary" @click="submitForm()" size="small" icon="el-icon-success">确 定</el-button>
180
+ <el-button @click="addOrUpdateDialog = false" size="small" icon="el-icon-error">取 消</el-button>
181
+ </div>
182
+ </el-dialog>
183
+ <!--添加修改弹框 start-->
184
+
185
+ <!--转出 start-->
186
+ <el-dialog :close-on-click-modal=false title="转出" top="40vh" :visible.sync="changeUserOrgDialog" width="30%">
187
+ <el-form ref="changeOrgRef">
188
+ <el-form-item label="转入组织" label-width="80px">
189
+ <tree-select v-model="changeOrgId" :options="treeData" placeholder="请选择" :required="true"/>
190
+ </el-form-item>
191
+ </el-form>
192
+ <div slot="footer" class="dialog-footer">
193
+ <el-button type="primary" @click="saveChangeOrg()" size="small" icon="el-icon-success">确 定</el-button>
194
+ <el-button @click="changeUserOrgDialog = false" size="small" icon="el-icon-error">取 消</el-button>
195
+ </div>
196
+ </el-dialog>
197
+ <!--转出 end-->
198
+
199
+ <el-dialog :close-on-click-modal=false title="查看菜单" top="5vh" height="90%" width="80%" :visible.sync="viewMenuDialog" class="userViewMenuClass">
200
+ <empower-user-view-menu-tree :role-id="roleId" :menu-model-obj="menuModelObj" :data-dictionary-obj="dataDictionaryObj"
201
+ :menu-opt-all="menuOptAll" :current-role-opt-all="currentRoleOptAll"
202
+ :refresh-boolean-proper="viewMenuDialog" user-type="empower">
203
+ </empower-user-view-menu-tree>
204
+ <div slot="footer" class="dialog-footer">
205
+ <el-button type="primary" @click="viewMenuDialog = false" size="small" icon="el-icon-error">关闭</el-button>
206
+ </div>
207
+ </el-dialog>
208
+ </pl-lazy>
209
+ </el-container>
210
+ </template>
211
+
212
+
213
+ <script>
214
+ import EmpowerUserViewMenuTree from "./empowerUserListViewMenuTree";
215
+ export default {
216
+ name: "empower-user-list",
217
+ components: {EmpowerUserViewMenuTree},
218
+ props:{
219
+ orgDim:{type:String,default:""},//组织维度
220
+ treeData:{type:Array,default:[]},//组织树数据
221
+ menuOptAll:{type:Object,default:function () {return {};}},//当前登录用户拥有的所有操作权限
222
+ loginUser:{type:Object,default:function () {return {};}},
223
+ loginUserId:{type:String,default:""}//当前登录用户id
224
+ },
225
+ data(){
226
+ return{
227
+ crud: new this.CrudUtil({
228
+ vue: this,
229
+ entityName: "sysUser",
230
+ url:this.api.sysUser.url,
231
+ searchUrl: this.api.sysUser.findPageParam,
232
+ searchForm: {empowerUser:"Y",userType:"empower",roleRemind:"Y",empowerOrgDim:this.orgDim,empowerOrgId:"",created:this.loginUserId},
233
+ noClearSearchColumns: ["empowerUser","userType","roleRemind","empowerOrgDim","created","empowerOrgId"],
234
+ initNoSearch: true
235
+ }),
236
+ statusOptions:[
237
+ {value : '10',label : "正常"},
238
+ {value : '20',label : "锁定"}
239
+ ], //用户状态下拉框
240
+ userStatusObj : {
241
+ '10' : "正常",
242
+ '20' : "锁定",
243
+ },
244
+ userStatusColor : {
245
+ '10' : "success",
246
+ '20' : "warning",
247
+ },
248
+ //新增修改弹窗标题
249
+ addOrUpdateTitle:"添加授权用户",
250
+ // formData:{userAccount:"",userName:"",userType:"empower",userStatus:""},//用户信息
251
+ addOrUpdateDialog:false,//新增修改弹窗是否显示
252
+ rules:{
253
+ userAccount:this.plValidate('required'),
254
+ userName:this.plValidate('required'),
255
+ userType:this.plValidate('required'),
256
+ userStatus:this.plValidate('required'),
257
+ userQQ:this.plValidate('qq'),
258
+ userPhone:this.plValidate('phone'),
259
+ userEmail:this.plValidate('email'),
260
+ orgId:this.plValidate('required')
261
+ },//验证
262
+ userTypeArr:[{"label":"授权用户","value":"empower"}],//用户类型
263
+ sexTypeArr:[
264
+ {value : '男',label : "男"},
265
+ {value : '女',label : "女"}
266
+ ],//性别
267
+ formData:{
268
+ userAccount:"",userName:"",userType:"empower",userStatus:"10",orgId:null
269
+ },//表单数据初始化
270
+ currentOrgId:null,//当前选择的组织
271
+ changeOrgId:null,//转出的组织id
272
+
273
+
274
+ changeUserOrgDialog:false,//转出弹窗
275
+ selectIds:"",//表格内勾选的数据id
276
+
277
+ viewMenuDialog:false,//查看菜单弹窗
278
+
279
+ roleId:"",//角色权限id
280
+ menuModelObj:{},//菜单模块
281
+ dataDictionaryObj:{},//数据字典
282
+ currentRoleOptAll:{},// 当前角色设置的所有roleMenuOpt
283
+ }
284
+ },
285
+ created(){
286
+ this.getData();
287
+ // this.initMenuModelObj();
288
+ this.initDataDictionaryObj();
289
+ },
290
+ computed: {
291
+ },
292
+ watch:{
293
+ orgDim(){
294
+ this.crud.searchForm.empowerOrgDim = this.orgDim;
295
+ this.crud.search();
296
+ },
297
+ },
298
+ methods:{
299
+ /**
300
+ * 初始化数据
301
+ * @param
302
+ */
303
+ getData(){
304
+ let vm = this;
305
+ //用户类型
306
+ // vm.axios.post(vm.api.param.getSysParams).then(function (res) {
307
+ // let sysParamObj = res.data;
308
+ // let paramValString = sysParamObj["SysUserType"];
309
+ // let result = JSON.parse(vm.platStringUtil.replaceAll(paramValString,"'","\""));
310
+ // for(let [key,value] of Object.entries(result)){
311
+ // vm.userTypeArr.push({"label":value,"value":key})
312
+ // }
313
+ // });
314
+ },
315
+
316
+
317
+ /**
318
+ * 菜单模块数据
319
+ */
320
+ initMenuModelObj() {
321
+ let vm = this;
322
+ vm.axios.post(vm.api.menuModule.find).then((res) => {
323
+ let data = res.data;
324
+ for (let item of data) {
325
+ vm.menuModelObj[item.id] = item.moduleName || "无";
326
+ }
327
+ });
328
+ },
329
+
330
+ /**
331
+ * 数据字典
332
+ */
333
+ initDataDictionaryObj(){
334
+ let vm = this;
335
+ vm.axios.post(vm.api.dataType.find).then(res => {
336
+ let data = res.data;
337
+ data.forEach(item => {
338
+ vm.dataDictionaryObj[item.id] = item.typeName;
339
+ });
340
+ });
341
+ },
342
+
343
+
344
+
345
+ /**
346
+ * 根据组织查询用户
347
+ * @param orgId
348
+ */
349
+ changeSearchForm(orgId){
350
+ let vm = this;
351
+ vm.currentOrgId = orgId;
352
+ vm.crud.searchForm["empowerOrgId"] = orgId;
353
+ vm.crud.doSearch();
354
+ },
355
+
356
+ /**
357
+ * 新增
358
+ */
359
+ add(){
360
+ let vm = this;
361
+ vm.formData = {};
362
+ vm.formData = {userAccount:"",userName:"",userType:"empower",userStatus:"10",orgId:vm.currentOrgId};
363
+ vm.addOrUpdateDialog = true;
364
+ vm.addOrUpdateTitle = "添加授权用户";
365
+ vm.$nextTick(function () {
366
+ vm.$refs.formDataRef.clearValidate(); // 再次添加清除原先的验证
367
+ });
368
+ },
369
+
370
+ /**
371
+ * 修改
372
+ */
373
+ update(data){
374
+ let vm = this;
375
+ vm.formData = {};
376
+ vm.formData = {
377
+ id:data.id,orgId:data.orgId,userAccount:data.userAccount,
378
+ userName:data.userName,userStatus:data.userStatus,
379
+ userGender:data.userGender,userAge:data.userAge,
380
+ userQq:data.userQq,userPhone:data.userPhone,
381
+ userType:data.userType,userEmail:data.userEmail,
382
+ updated:vm.loginUserId
383
+ }
384
+ vm.addOrUpdateDialog = true;
385
+ vm.addOrUpdateTitle = "修改授权用户";
386
+ },
387
+
388
+ /**
389
+ * 提交数据
390
+ */
391
+ submitForm(){
392
+ let vm = this;
393
+ vm.$refs.formDataRef.validate(function (valid) {
394
+ if(valid){
395
+ let userParentTree = "";
396
+ if("sup" == vm.loginUser.userType){
397
+ userParentTree = "-1";
398
+ }else{
399
+ userParentTree = vm.loginUser.parentUserTree + "," + vm.loginUserId;
400
+ }
401
+ vm.formData.parentUserTree = userParentTree;
402
+ vm.formData.created = vm.loginUserId;
403
+ vm.formData.updated = vm.loginUserId;
404
+ vm.formData.orgDim = vm.orgDim;
405
+ vm.axios.post(vm.api.sysUser.saveEmpowerUser,vm.formData).then(res => {
406
+ if(res.data){
407
+ let type = "error";
408
+ if(res.data.operateSuccess){
409
+ type = "success";
410
+ vm.addOrUpdateDialog = false;
411
+ vm.crud.search();
412
+ }
413
+ vm.$message({
414
+ duration: 1000,
415
+ type: type,
416
+ message: res.data.operateMessage
417
+ });
418
+ }
419
+ });
420
+ }
421
+ });
422
+ },
423
+
424
+ /**
425
+ * 锁定、解锁
426
+ */
427
+ settingLock(userStatus){
428
+ let vm = this;
429
+ let selection = vm.$refs[vm.crud.setting.tableRef].selection || [];
430
+ if(selection.length === 0){
431
+ vm.$message({
432
+ message:"请选择要操作的用户!",
433
+ duration:1500
434
+ });
435
+ return false;
436
+ }
437
+ let msg = "用户锁定时,该用户及其下级授权用户将被锁定,同时该用户及其下级授权用户创建的相关权限也将被锁定,无法使用,确认锁定吗?";
438
+ let message = "锁定";
439
+ if(userStatus == "10"){
440
+ msg = "确定解锁吗?";
441
+ message = "解锁";
442
+ }
443
+ vm.$confirm(msg, '提示', {
444
+ confirmButtonText: '确定',
445
+ cancelButtonText: '取消',
446
+ dangerouslyUseHTMLString: true
447
+ }).then(function () {
448
+ let arrIds = [];
449
+ selection.forEach(function (data) {
450
+ arrIds.push(data.id);
451
+ });
452
+ vm.crud.axios.post(vm.api.sysUser.settingLockedEmpowerUser,
453
+ {"userIds": arrIds.join(","),"userStatus":userStatus}).then(function (res) {
454
+ let type = "error";
455
+ let tip = message + "失败";
456
+ if(res.data.operateSuccess){
457
+ type = "success";
458
+ tip = message + "成功";
459
+ vm.crud.search();
460
+ }
461
+ vm.$message({
462
+ type: type,
463
+ message: tip
464
+ });
465
+ });
466
+ });
467
+ },
468
+
469
+ /**
470
+ * 转出
471
+ */
472
+ changeUserOrg(){
473
+ let vm = this;
474
+ let selection = vm.$refs[vm.crud.setting.tableRef].selection ||[];
475
+ if(selection.length === 0){
476
+ vm.$message({
477
+ message:"请选择要操作的用户!",
478
+ duration:1500
479
+ });
480
+ return false;
481
+ }
482
+ let arrIds = [];
483
+ selection.forEach(function (data) {
484
+ arrIds.push(data.id);
485
+ });
486
+ vm.selectIds = arrIds.join(",");
487
+ vm.changeOrgId = null;
488
+ vm.changeUserOrgDialog = true;
489
+ },
490
+
491
+ /**
492
+ * 转出保存
493
+ */
494
+ saveChangeOrg(){
495
+ let vm = this;
496
+ if(!vm.changeOrgId){
497
+ vm.$message({
498
+ type: "warning",
499
+ message: "转入组织不能为空!"
500
+ });
501
+ return;
502
+ }
503
+ if(vm.selectIds){
504
+ vm.$confirm('确定要转出吗?', '提示', {
505
+ confirmButtonText: '确定',
506
+ cancelButtonText: '取消',
507
+ dangerouslyUseHTMLString: true
508
+ }).then(function () {
509
+ vm.crud.axios.post(vm.api.sysOrgPosUser.batchUpdateOrgIdByUserId,
510
+ {"userIds": vm.selectIds,"orgId":vm.changeOrgId}).then(function (res) {
511
+ let type = "error";
512
+ let msg = "转出失败";
513
+ if(res.data.operateSuccess){
514
+ type = "success";
515
+ msg = "转出成功";
516
+ vm.crud.search();
517
+ vm.changeUserOrgDialog = false;
518
+ }
519
+ vm.$message({
520
+ type: type,
521
+ message: msg
522
+ });
523
+ });
524
+ });
525
+ }
526
+ },
527
+
528
+ /**
529
+ * 删除
530
+ */
531
+ remove(){
532
+ let vm = this;
533
+ let selection = vm.$refs[vm.crud.setting.tableRef].selection ||[];
534
+ if(selection.length === 0){
535
+ vm.$message({
536
+ message:"请选择要删除的数据!",
537
+ duration:1500
538
+ });
539
+ return false;
540
+ }
541
+ vm.$confirm('用户删除时,该用户及其下级授权用户相关权限也将被删除且无法恢复,确认删除吗?', '提示', {
542
+ confirmButtonText: '确定',
543
+ cancelButtonText: '取消',
544
+ dangerouslyUseHTMLString: true
545
+ }).then(function () {
546
+ let arrIds = [];
547
+ selection.forEach(function (data) {
548
+ arrIds.push(data.id);
549
+ });
550
+ vm.axios.post(vm.api.sysUser.deleteEmowerUser,{"userIds": arrIds.join(",")}).then(res => {
551
+ let type = "error";
552
+ let msg = "删除失败!";
553
+ if(res.data.operateSuccess){
554
+ type = "success";
555
+ msg = "删除成功!";
556
+ }
557
+ vm.$message({
558
+ type: type,
559
+ message:msg
560
+ });
561
+ vm.crud.search();
562
+ });
563
+ });
564
+
565
+
566
+ },
567
+
568
+
569
+ resetPwd(row){ // 重置密码
570
+ let [vm,userNameText] = [this,row.userName?row.userName:'用户'];
571
+ this.$confirm('确定要重置'+userNameText+'的密码?', '提示', {
572
+ confirmButtonText: '确定',
573
+ cancelButtonText: '取消',
574
+ type: 'warning',
575
+ beforeClose:function (action, instance, done) {
576
+ if(action == 'confirm'){
577
+ vm.axios.post(vm.api.sysUser.resetPwd,{"id":row.id}).then(function (res) {
578
+ done(); // 完成后提示并关闭窗口
579
+ vm.$message({
580
+ type:'success',
581
+ duration:1500,
582
+ message:res.data.operateMessage
583
+ });
584
+ });
585
+ }else{
586
+ done();
587
+ }
588
+ }
589
+ }).catch(() => {
590
+ this.$message({
591
+ type: 'info',
592
+ message: '已取消'
593
+ });
594
+ });
595
+ },
596
+
597
+
598
+ viewMenu(row){
599
+ let vm = this;
600
+ vm.roleId = row.empowerId;
601
+ // vm.roleId = "dd7ae966e0c24aacbadcf05ae39e239b";
602
+ vm.viewMenuDialog = true;
603
+ vm.getSettingAndInit(row.empowerId);
604
+ },
605
+
606
+ // 获取当前配置并初始化
607
+ getSettingAndInit(roleId){
608
+ let vm = this;
609
+ vm.currentRoleOptAll = {};
610
+ if(roleId){
611
+ vm.axios.post(vm.api.roleMenuOpt.find,{"roleId":roleId}).then(function (res) {
612
+ res.data.forEach(function (each) {
613
+ vm.currentRoleOptAll[each.menuId] = {
614
+ 'id': each.id,
615
+ 'enableOperation': each.enableOperation,
616
+ 'operation': each.operation,
617
+ 'enableData': each.enableData,
618
+ 'dataPower': each.dataPower,
619
+ };
620
+ });
621
+ });
622
+ }
623
+ },
624
+
625
+ }
626
+ }
627
+ </script>
628
+
629
+ <style rel="stylesheet/scss" scoped>
630
+ .userViewMenuClass /deep/ .el-dialog__body{
631
+ padding: 0;
632
+ }
633
+ </style>