hd-idevvue3 3.0.0 → 3.0.2

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 (230) hide show
  1. package/.env.development +5 -0
  2. package/.env.production +5 -0
  3. package/README.md +22 -191
  4. package/dist/assets/index.774ef40e.css +1 -0
  5. package/dist/hd-idevvue3.mjs +45697 -0
  6. package/dist/hd-idevvue3.umd.js +153 -0
  7. package/index.html +1 -0
  8. package/npminstall-debug.log +10 -2
  9. package/package.json +35 -40
  10. package/pnpm-lock.yaml +2631 -0
  11. package/src/App.vue +15 -0
  12. package/src/assets/sound/notify.wav +0 -0
  13. package/src/demo/demo.vue +43 -0
  14. package/src/demo/dropdemo.vue +43 -0
  15. package/src/demo/extsets.vue +107 -0
  16. package/src/demo/formedit.vue +145 -0
  17. package/src/demo/hightquery.vue +169 -0
  18. package/src/demo/inlineedit.vue +88 -0
  19. package/src/demo/selfdrop.vue +41 -0
  20. package/src/demo//350/241/214/345/206/205/347/272/247/350/201/224.txt +2 -0
  21. package/src/directive/el-dragDialog/drag.js +124 -0
  22. package/src/directive/el-dragDialog/index.js +13 -0
  23. package/src/errorLog.js +16 -0
  24. package/src/hdcom/BigGrid.js +173 -0
  25. package/src/hdcom/BillShow.vue +90 -0
  26. package/src/hdcom/BillUpload.vue +253 -0
  27. package/src/hdcom/BtnRight.vue +98 -0
  28. package/src/hdcom/ErrHint.vue +30 -0
  29. package/src/hdcom/ExtendColumn.vue +108 -0
  30. package/src/hdcom/ExtendCommon.js +29 -0
  31. package/src/hdcom/ExtendForm.vue +114 -0
  32. package/src/hdcom/FacePicUpload.vue +71 -0
  33. package/src/hdcom/FaceRecTest.vue +104 -0
  34. package/src/hdcom/GridChart.vue +194 -0
  35. package/src/hdcom/GridExField.vue +281 -0
  36. package/src/hdcom/GridShow.vue +238 -0
  37. package/src/hdcom/HdAside.vue +178 -0
  38. package/src/hdcom/HdBtn.vue +113 -0
  39. package/src/hdcom/HdButton.vue +137 -0
  40. package/src/hdcom/HdComFaceRec.vue +58 -0
  41. package/src/hdcom/HdComGrid.vue +776 -0
  42. package/src/hdcom/HdComQuery.vue +273 -0
  43. package/src/hdcom/HdComQueryDetail.vue +161 -0
  44. package/src/hdcom/HdComSortDetail.vue +155 -0
  45. package/src/hdcom/HdDatePicker.vue +78 -0
  46. package/src/hdcom/HdDialog.vue +63 -0
  47. package/src/hdcom/HdDrop.vue +163 -0
  48. package/src/hdcom/HdFileUpload.vue +148 -0
  49. package/src/hdcom/HdFilterBox.vue +90 -0
  50. package/src/hdcom/HdFooter.vue +149 -0
  51. package/src/hdcom/HdForm.vue +278 -0
  52. package/src/hdcom/HdFormBtn.vue +89 -0
  53. package/src/hdcom/HdFormItem.vue +35 -0
  54. package/src/hdcom/HdGctosGrid +0 -0
  55. package/src/hdcom/HdGrid.vue +825 -0
  56. package/src/hdcom/HdGridEditBtn.vue +44 -0
  57. package/src/hdcom/HdGridExt.js +219 -0
  58. package/src/hdcom/HdGridSel.vue +223 -0
  59. package/src/hdcom/HdHeader.vue +148 -0
  60. package/src/hdcom/HdHotKey.vue +81 -0
  61. package/src/hdcom/HdInputHint.vue +49 -0
  62. package/src/hdcom/HdMain.vue +43 -0
  63. package/src/hdcom/HdMessage.vue +192 -0
  64. package/src/hdcom/HdNum.vue +69 -0
  65. package/src/hdcom/HdPopSel.vue +58 -0
  66. package/src/hdcom/HdRightMenu.vue +61 -0
  67. package/src/hdcom/HdSel/SelGridFieldcod.vue +36 -0
  68. package/src/hdcom/HdTableColumn.vue +334 -0
  69. package/src/hdcom/HdTempSave.vue +140 -0
  70. package/src/hdcom/HdTree.vue +86 -0
  71. package/src/hdcom/HdTreeTable/eval.js +34 -0
  72. package/src/hdcom/HdTreeTable/index.vue +174 -0
  73. package/src/hdcom/ImportExcel.vue +143 -0
  74. package/src/hdcom/index.js +80 -0
  75. package/src/idev.common.js +72 -0
  76. package/src/index.js +14 -0
  77. package/src/utils/HdQuery.js +54 -0
  78. package/src/utils/comutils.js +98 -0
  79. package/src/utils/utils.js +105 -0
  80. package/src/vendor/Blob.js +179 -0
  81. package/src/vendor/Export2Excel.js +220 -0
  82. package/src/vendor/Export2Zip.js +22 -0
  83. package/src/views/layout/AppMain.vue +32 -0
  84. package/src/views/layout/HdLayout.vue +78 -0
  85. package/src/views/layout/header/ElasticSearch.vue +225 -0
  86. package/src/views/layout/header/HZRecorder.js +231 -0
  87. package/src/views/layout/header/HeaderSearch.vue +198 -0
  88. package/src/views/layout/header/Levelbar.vue +49 -0
  89. package/src/views/layout/header/MainHeader.vue +271 -0
  90. package/src/views/layout/header/Navbar.vue +105 -0
  91. package/src/views/layout/header/ScrollPane.vue +81 -0
  92. package/src/views/layout/header/TagsView.vue +210 -0
  93. package/src/views/layout/header/VocRec.vue +97 -0
  94. package/src/views/layout/header/changepswform.vue +96 -0
  95. package/src/views/layout/index.js +12 -0
  96. package/src/views/layout/menu/Hamburger.vue +45 -0
  97. package/src/views/layout/menu/HdMenu.vue +167 -0
  98. package/src/views/layout/menu/css/menu.css +288 -0
  99. package/src/views/layout/menu/index.vue +25 -0
  100. package/src/views/privilege/commsg/commsg.vue +78 -0
  101. package/src/views/privilege/commsg/commsgOrgn.vue +42 -0
  102. package/src/views/privilege/commsg/commsgRole.vue +149 -0
  103. package/src/views/privilege/commsg/commsgform.vue +160 -0
  104. package/src/views/privilege/commsg/commsgiframe.vue +33 -0
  105. package/src/views/privilege/commsg/commsgto.vue +120 -0
  106. package/src/views/privilege/commsg/commsgtoform.vue +108 -0
  107. package/src/views/privilege/commsg/commsgtrans.vue +155 -0
  108. package/src/views/privilege/exfield/comexcolumn.vue +71 -0
  109. package/src/views/privilege/exfield/comexcolumnform.vue +101 -0
  110. package/src/views/privilege/exfield/comexfield.vue +31 -0
  111. package/src/views/privilege/exfield/comexfieldform.vue +94 -0
  112. package/src/views/privilege/exfield/comexfieldsub.vue +72 -0
  113. package/src/views/privilege/index.js +42 -0
  114. package/src/views/privilege/menu/comMenu.vue +41 -0
  115. package/src/views/privilege/menu/menu.vue +133 -0
  116. package/src/views/privilege/menu/menuinfo.vue +56 -0
  117. package/src/views/privilege/menu/rolelist.vue +47 -0
  118. package/src/views/privilege/menu/userlist.vue +49 -0
  119. package/src/views/privilege/mobile/authmobileupdate.vue +69 -0
  120. package/src/views/privilege/mobile/authmobileupdateform.vue +90 -0
  121. package/src/views/privilege/orgDept/authOrgn.vue +96 -0
  122. package/src/views/privilege/orgDept/authorgnform.vue +145 -0
  123. package/src/views/privilege/orgDept/orgDept.vue +37 -0
  124. package/src/views/privilege/orgDept/orgTree.vue +88 -0
  125. package/src/views/privilege/orgDept/orgnselect.vue +134 -0
  126. package/src/views/privilege/personDept/authuser.vue +123 -0
  127. package/src/views/privilege/personDept/authuserform.vue +154 -0
  128. package/src/views/privilege/personDept/facerec.vue +117 -0
  129. package/src/views/privilege/personDept/orgncascader.vue +125 -0
  130. package/src/views/privilege/personDept/personDept.vue +31 -0
  131. package/src/views/privilege/quartz/comquartzjob.vue +65 -0
  132. package/src/views/privilege/quartz/comquartzjobform.vue +99 -0
  133. package/src/views/privilege/quartz/comquartzlog.vue +59 -0
  134. package/src/views/privilege/role/btnRole.vue +117 -0
  135. package/src/views/privilege/role/menuRole.vue +64 -0
  136. package/src/views/privilege/role/orgnRole.vue +56 -0
  137. package/src/views/privilege/role/role.vue +67 -0
  138. package/src/views/privilege/role/rolelist.vue +67 -0
  139. package/src/views/privilege/role/roleselect.vue +57 -0
  140. package/src/views/privilege/search/comsearch.vue +105 -0
  141. package/src/views/privilege/search/menu.vue +52 -0
  142. package/src/views/privilege/syscode/syscode.vue +103 -0
  143. package/src/views/privilege/syscode/sysfield.vue +66 -0
  144. package/src/views/privilege/syscode/sysfieldframe.vue +30 -0
  145. package/src/views/privilege/syslog/menulog.vue +52 -0
  146. package/src/views/privilege/syslog/syslog.vue +115 -0
  147. package/src/views/privilege/syslog/syslogconfig.vue +61 -0
  148. package/src/views/privilege/syslog/syslogform.vue +83 -0
  149. package/src/views/privilege/syslog/syslogframe.vue +26 -0
  150. package/src/views/privilege/userRole/userRole.vue +122 -0
  151. package/src/views/privilege.zip +0 -0
  152. package/vite.config.js +93 -0
  153. package/.babelrc +0 -17
  154. package/.editorconfig +0 -14
  155. package/.eslintignore +0 -3
  156. package/.npminstall.done +0 -1
  157. package/.postcssrc.js +0 -8
  158. package/LICENSE +0 -21
  159. package/Listening +0 -28
  160. package/build/build.js +0 -70
  161. package/build/check-versions.js +0 -45
  162. package/build/config.js +0 -81
  163. package/build/dev-client.js +0 -9
  164. package/build/dev-server.js +0 -93
  165. package/build/utils.js +0 -78
  166. package/build/vue-loader.conf.js +0 -12
  167. package/build/webpack.common.js +0 -37
  168. package/build/webpack.component.js +0 -36
  169. package/build/webpack.prod.conf.js +0 -38
  170. package/components.json +0 -8
  171. package/conf.js +0 -42
  172. package/config/dev.env.js +0 -6
  173. package/config/index.js +0 -43
  174. package/config/prod.env.js +0 -6
  175. package/config/sit.env.js +0 -6
  176. package/favicon.ico +0 -0
  177. package/jsdoc-vue.js +0 -12
  178. package/lib/0.index.js +0 -12573
  179. package/lib/1.index.js +0 -6
  180. package/lib/2.index.js +0 -2
  181. package/lib/idev.common.js +0 -1
  182. package/lib/idv8.common.js +0 -1
  183. package/lib/index.js +0 -49170
  184. package/lib/js/ErrHint.js +0 -1
  185. package/lib/js/HdAside.js +0 -1
  186. package/lib/js/HdBtn.js +0 -1
  187. package/lib/js/HdButton.js +0 -1
  188. package/lib/js/HdComFaceRec.js +0 -1
  189. package/lib/js/HdComGrid.js +0 -1
  190. package/lib/js/HdDatePicker.js +0 -1
  191. package/lib/js/HdDialog.js +0 -1
  192. package/lib/js/HdDrop.js +0 -1
  193. package/lib/js/HdFileUpload.js +0 -1
  194. package/lib/js/HdFooter.js +0 -1
  195. package/lib/js/HdForm.js +0 -1
  196. package/lib/js/HdFormBtn.js +0 -1
  197. package/lib/js/HdFormItem.js +0 -1
  198. package/lib/js/HdGrid.js +0 -1
  199. package/lib/js/HdGridEditBtn.js +0 -1
  200. package/lib/js/HdGridSel.js +0 -1
  201. package/lib/js/HdHeader.js +0 -1
  202. package/lib/js/HdHotkey.js +0 -1
  203. package/lib/js/HdLayout.js +0 -1
  204. package/lib/js/HdMain.js +0 -1
  205. package/lib/js/HdMessage.js +0 -1
  206. package/lib/js/HdNum.js +0 -1
  207. package/lib/js/HdPopSel.js +0 -1
  208. package/lib/js/HdSearch.js +0 -1
  209. package/lib/js/HdTableColumn.js +0 -1
  210. package/lib/js/HdTempSave.js +0 -1
  211. package/lib/js/HdTree.js +0 -1
  212. package/lib/js/HdTreeTable.js +0 -1
  213. package/lib/js/authmobileupdate.js +0 -1
  214. package/lib/js/comexfield.js +0 -1
  215. package/lib/js/commsg.js +0 -1
  216. package/lib/js/commsgto.js +0 -1
  217. package/lib/js/comquartzjob.js +0 -1
  218. package/lib/js/comquartzlog.js +0 -1
  219. package/lib/js/comsearch.js +0 -1
  220. package/lib/js/menu.js +0 -1
  221. package/lib/js/menuinfo.js +0 -1
  222. package/lib/js/orgDept.js +0 -1
  223. package/lib/js/orgTree.js +0 -1
  224. package/lib/js/personDept.js +0 -1
  225. package/lib/js/role.js +0 -1
  226. package/lib/js/sysfieldframe.js +0 -1
  227. package/lib/js/syslog.js +0 -1
  228. package/lib/js/syslogframe.js +0 -1
  229. package/lib/js/userRole.js +0 -1
  230. package/ytgvue.rar +0 -0
@@ -0,0 +1,145 @@
1
+ <template>
2
+ <el-dialog title="编辑" :visible.sync="visible" width='65%' top="10vh">
3
+ <!--:hdform.sync 对应的form对象 formRef对应的是el-form的 ref="hdform"-->
4
+ <hd-form saveoneUrl="webresources/login/privilege/AuthOrgn/save"
5
+ removeUrl="webresources/login/privilege/AuthOrgn/entity/remove"
6
+ :findoneUrl="findoneUrl"
7
+ noCopy="orgnId" @saveCall="saveCall" @delCall="delCall"
8
+ label-width="100px" :model.sync="hdform" ref="hdform">
9
+ <el-row>
10
+ <el-col :span="8" :xs="16">
11
+ <el-form-item label="组织名称" prop="name"
12
+ :rules="$r(1,0,200)">
13
+ <el-input type="text" v-model="hdform.name"></el-input>
14
+ </el-form-item>
15
+ </el-col>
16
+ <el-col :span="8" :xs="16">
17
+ <el-form-item label="组织编码" prop="orgnCod"
18
+ :rules="$r(0,0,300)">
19
+ <el-input type="text" v-model="hdform.orgnCod"></el-input>
20
+ </el-form-item>
21
+ </el-col>
22
+ <el-col :span="8" :xs="16">
23
+ <el-form-item label="英文名" prop="enName"
24
+ :rules="$r(0,0,200)">
25
+ <el-input type="text" v-model="hdform.enName"></el-input>
26
+ </el-form-item>
27
+ </el-col>
28
+ <el-col :span="8" :xs="16">
29
+ <el-form-item label="组织简称" prop="shortNam"
30
+ :rules="$r(0,0,100)">
31
+ <el-input type="text" v-model="hdform.shortNam"></el-input>
32
+ </el-form-item>
33
+ </el-col>
34
+ <el-col :span="8" :xs="16">
35
+ <el-form-item label="组织类型" prop="orgnTyp"
36
+ :rules="$r(1)">
37
+ <hd-drop field="ORGN_TYP" v-model="hdform.orgnTyp"></hd-drop>
38
+ </el-form-item>
39
+ </el-col>
40
+ <el-col :span="8" :xs="16">
41
+ <el-form-item label="上级部门" prop="parentId"
42
+ :rules="$r(1)">
43
+ <orgnselect style="width: 100%" :txtVal.sync="hdform.parentName"
44
+ :idVal.sync="hdform.parentId"></orgnselect>
45
+ </el-form-item>
46
+ </el-col>
47
+ <el-col :span="8" :xs="16">
48
+ <el-form-item label="描述" prop="description"
49
+ :rules="$r(0,0,255)">
50
+ <el-input type="text" v-model="hdform.description"></el-input>
51
+ </el-form-item>
52
+ </el-col>
53
+
54
+ <el-col :span="8" :xs="16">
55
+ <el-form-item label="排序" prop="sorter" :rules="$r(0,0,99999,'number',0)">
56
+ <hd-num v-model="hdform.sorter"></hd-num>
57
+ </el-form-item>
58
+ </el-col>
59
+ <el-col :span="8" :xs="16">
60
+ <el-form-item label="创建人" prop="recNam">
61
+ <el-input type="text" v-model="hdform.recNam" disabled></el-input>
62
+ </el-form-item>
63
+ </el-col>
64
+ <el-col :span="8" :xs="16">
65
+ <el-form-item label="创建时间" prop="recTim">
66
+ <el-input type="text" v-model="hdform.recTim" disabled></el-input>
67
+ </el-form-item>
68
+ </el-col>
69
+ <el-col :span="8" :xs="16">
70
+ <el-form-item label="更新人" prop="updNam">
71
+ <el-input type="text" v-model="hdform.updNam" disabled></el-input>
72
+ </el-form-item>
73
+ </el-col>
74
+ <el-col :span="8" :xs="16">
75
+ <el-form-item label="更新时间" prop="updTim">
76
+ <el-input type="text" v-model="hdform.updTim" disabled></el-input>
77
+ </el-form-item>
78
+ </el-col>
79
+ </el-row>
80
+ </hd-form>
81
+ <div slot="footer" class="dialog-footer">
82
+ <hd-form-btn ref="hdformbtn" style="float: left"></hd-form-btn>
83
+ <el-button @click="visible = false">{{$t('取 消')}}</el-button>
84
+ </div>
85
+ </el-dialog>
86
+ </template>
87
+
88
+ <script>
89
+ import orgnselect from './orgnselect'
90
+ import orgTree from '../orgDept/orgTree'
91
+ import HdFormBtn from '../../../hdcom/HdFormBtn.vue'
92
+
93
+ export default {
94
+ name: 'authorgnform',
95
+ components: {
96
+ HdFormBtn,
97
+ orgnselect, orgTree
98
+ },
99
+ data: function() {
100
+ return {
101
+ hdform: {},
102
+ parentId: '',
103
+ findoneUrl: '',
104
+ visible: false
105
+ }
106
+ },
107
+ props: {
108
+ hdQuery: Object
109
+ },
110
+ methods: {
111
+ show(row, parentId) { // 换为本表主键
112
+ this.parentId = parentId
113
+ this.hdform.parentId = parentId
114
+ this.visible = true
115
+ this.findoneUrl = 'webresources/login/privilege/AuthOrgn/findone?parentId=' + parentId
116
+ this.$nextTick(() => {
117
+ this.$refs.hdform.show(row, this.$vnode.context.$refs.grid)// form
118
+ this.$refs.hdformbtn.show(this.$vnode.context.$refs.grid, this.$refs.hdform)// 按钮
119
+ })
120
+ },
121
+ saveCall(row, isAdd) {
122
+ this.$emit('change', {
123
+ type: isAdd ? 'add' : 'edit',
124
+ parentId: row.parentId,
125
+ data: { id: row.orgnId, text: row.name }
126
+ })
127
+ },
128
+ delCall(row) {
129
+ if (!row.orgnId) { // 新增就删除
130
+ return false
131
+ }
132
+ this.$emit('change', {
133
+ type: 'remove',
134
+ parentId: this.parentId,
135
+ data: { id: row.orgnId }
136
+ })
137
+ },
138
+ handleNodeClick(data) {
139
+ // this.$emit('org-node-click', data)
140
+ // this.currentNodeData = data
141
+ }
142
+ }
143
+ }
144
+ </script>
145
+
@@ -0,0 +1,37 @@
1
+
2
+ <template>
3
+ <el-container>
4
+ <el-aside>
5
+ <orgTree ref='orgTree' @org-node-click='query'></orgTree>
6
+ </el-aside>
7
+ <el-main>
8
+ <authOrgn ref='authOrgn' @change="change"></authOrgn>
9
+ </el-main>
10
+ </el-container>
11
+ </template>
12
+ <script>
13
+ import orgTree from './orgTree'
14
+ import authOrgn from './authOrgn'
15
+
16
+ export default {
17
+ name: 'orgDept',
18
+ components: {
19
+ orgTree, authOrgn
20
+ },
21
+ data() {
22
+ return {
23
+ parentId: '0'
24
+ }
25
+ },
26
+ methods: {
27
+ query: function(data) {
28
+ this.$refs['authOrgn'].queryOrg(data.id)
29
+ this.parentId = data.id
30
+ },
31
+ change: function(data) {
32
+ // console.log('change', data)
33
+ this.$refs['orgTree'].refresh(data)
34
+ }
35
+ }
36
+ }
37
+ </script>
@@ -0,0 +1,88 @@
1
+ <template>
2
+ <hd-tree ref="tree" :show-checkbox="false" :highlight-current="true" :expand-on-click-node="false" :data="hdResult"
3
+ :props="opts" @node-click="handleNodeClick" node-key="id" :filter-node-method="filterNode"
4
+ :default-expanded-keys="defaultExpandedKeys"></hd-tree>
5
+ </template>
6
+
7
+ <script>
8
+
9
+ export default {
10
+ name: 'orgTree',
11
+ data() {
12
+ return {
13
+ hdQuery: new HdQuery(this),
14
+ hdResult: [],
15
+ listLoading: true,
16
+ visible: false,
17
+ opts: {
18
+ label: 'text'
19
+ },
20
+ currentNodeData: {}
21
+ }
22
+ },
23
+ props: { idVal: String }, // 设置value为props属性-必须
24
+ mounted() {
25
+ this.doQuery()
26
+ },
27
+ methods: {
28
+ doQuery() {
29
+ // 显示loading框
30
+ this.listLoading = true
31
+ this.$http.post('/webresources/login/privilege/AuthOrgn/gentree', this.hdQuery).then(response => {
32
+ const data = response.data
33
+ this.hdResult = data
34
+ this.listLoading = false
35
+ })
36
+ },
37
+ handleNodeClick(data) {
38
+ this.$emit('org-node-click', data)
39
+ this.currentNodeData = data
40
+ },
41
+ refresh: function(data) {
42
+ const tree = this.$refs.tree.$refs.eltree
43
+ if (data.type === 'add') {
44
+ this.currentNodeData.children.push(data.data)
45
+ } else if (data.type === 'edit') {
46
+ const array = this.currentNodeData.children
47
+ for (let i = 0; i < array.length; i++) {
48
+ const obj = array[i]
49
+ if (obj.id === data.data.id) {
50
+ Object.assign(array[i], data.data)
51
+ break
52
+ }
53
+ }
54
+ } else if (data.type === 'remove') {
55
+ const array = this.currentNodeData.children
56
+ for (let i = 0; i < array.length; i++) {
57
+ const obj = array[i]
58
+ if (obj.id === data.data.id) {
59
+ array.splice(i, 1)
60
+ break
61
+ }
62
+ }
63
+ }
64
+ },
65
+ filterNode(value, data) {
66
+ if (!value) return true
67
+ return data.text.indexOf(value) !== -1
68
+ },
69
+ filter(val) {
70
+ this.$refs.tree.$refs.eltree.filter(val)
71
+ }
72
+ },
73
+ watch: {
74
+ // 都有值才适合查询
75
+ idVal: function(newVal) {
76
+ this.$refs.tree.$refs.eltree.setCurrentKey(this.idVal)
77
+ }
78
+ },
79
+ computed: {// 给外层v-model赋值
80
+ defaultExpandedKeys() {
81
+ if (this.idVal) {
82
+ return [this.idVal]
83
+ }
84
+ return []
85
+ }
86
+ }
87
+ }
88
+ </script>
@@ -0,0 +1,134 @@
1
+ <template>
2
+ <div>
3
+ <el-popover :disabled="disabled" placement="bottom-start" ref="popSel" v-model="visible">
4
+ <div :style="{height: height}">
5
+ <orgTree :idVal="idVal" @org-node-click='doSel' ref='orgTree'></orgTree>
6
+ </div>
7
+ </el-popover>
8
+ <div>
9
+ <!--readonly 在选择区隐藏时,不能输入-->
10
+ <el-input :clearable="false" :disabled="disabled"
11
+ :placeholder="placeholder?this.$t(placeholder):this.$t('请选择')" :readonly="!visible"
12
+ @focus="focus" @mouseenter.native="doMouseEnter"
13
+ @mouseleave.native="doMouseLeave" ref="sel" v-model="searchVal" v-popover:popSel>
14
+ <i @click.stop="doClear" class="el-input__icon el-icon-circle-close" slot="suffix" style="cursor:pointer "
15
+ v-if="!threePointShow"></i>
16
+ <i @click="$emit('pop')" class="el-input__icon el-icon-more" slot="suffix" style="cursor:pointer"
17
+ v-if="threePointShow"></i>
18
+ </el-input>
19
+ </div>
20
+ </div>
21
+ </template>
22
+ <style>
23
+ .lucencyInput .el-input__inner {
24
+ border: 0px;
25
+ }
26
+ </style>
27
+ <script>
28
+ import orgTree from './orgTree'
29
+
30
+ /**
31
+ * 自定义列表下拉
32
+ * @module orgnselect
33
+ */
34
+ export default {
35
+ name: 'orgnselect',
36
+ components: {
37
+ orgTree
38
+ },
39
+ data() {
40
+ return {
41
+ threePointShow: true,
42
+ searchVal: this.txtVal,
43
+ // isFocus: false,
44
+ visible: false,
45
+ isFirst: true, // 是否第一次打开
46
+ searchHandler: Object,
47
+ isSoftFocus: false // 点击弹窗内容时,input重新获得焦点,但是不能触发focus
48
+ // focusTime: 0
49
+ }
50
+ },
51
+ inheritAttrs: false,
52
+ /**
53
+ * Props 继承hd-com-grid的属性和事件
54
+ * @prop {String} txtVal 双向绑定 这里是为了clear清空用
55
+ * @prop {String} idVal 双向绑定 这里是为了clear清空用
56
+ * @prop {String} placeholder
57
+ * @prop {String} disabled 只读
58
+ * @prop {Object} hdQuery 查询封装类
59
+ * @prop {String} height 默认为40vh
60
+ * @prop {Function} beforeQuery 查询前的事件,通常需要绑定anyQuery
61
+ */
62
+ props: {
63
+ txtVal: String,
64
+ idVal: String,
65
+ placeholder: String,
66
+ disabled: Boolean,
67
+ hdQuery: Object,
68
+ url: String, // 全路径
69
+ height: {// 高度
70
+ type: String,
71
+ default: '40vh'
72
+ },
73
+ beforeQuery: Function
74
+ }, // 设置value为props属性-必须
75
+ mounted() {
76
+ $(this.$parent.$el).find('.el-popover__reference').removeAttr('tabIndex')// 焦点用
77
+ },
78
+ methods: {
79
+ focus() {
80
+ // this.focusTime = new Date().getTime()
81
+ this.$emit('focus')
82
+ if (this.isSoftFocus) { // click时
83
+ this.isSoftFocus = false // 点击时,防止焦点触发
84
+ return false
85
+ }
86
+ setTimeout(() => { // 否则会和默认的冲突
87
+ this.visible = true
88
+ }, 150)
89
+ // this.isFocus = true
90
+ },
91
+ doClear() {
92
+ this.$emit('update:txtVal', '')
93
+ this.$emit('update:idVal', '')
94
+ this.$emit('clear')
95
+ },
96
+ doMouseEnter() {
97
+ if (this.disabled) {
98
+ return false
99
+ }
100
+ if (this.idVal) {
101
+ this.threePointShow = false
102
+ }
103
+ },
104
+ doMouseLeave() {
105
+ this.threePointShow = true
106
+ },
107
+ doSel(data) {
108
+ this.$emit('update:txtVal', data.text)
109
+ this.$emit('update:idVal', data.id)
110
+ this.visible = false
111
+ }
112
+ },
113
+
114
+ watch: {
115
+ // searchVal: function(newVal) {
116
+ // this.$refs.orgTree.filter(newVal)
117
+ // // this.visible = true
118
+ // },
119
+ txtVal: function (newVal) {
120
+ this.searchVal = this.txtVal
121
+ },
122
+ visible: function (newVal) {
123
+ console.log('newVal', newVal)
124
+ console.log(this.$refs.orgTree)
125
+ if (newVal) {
126
+ this.$refs.orgTree.filter('')
127
+ } else {
128
+ this.searchVal = this.txtVal
129
+ }
130
+ }
131
+ }
132
+ }
133
+
134
+ </script>
@@ -0,0 +1,123 @@
1
+ <template>
2
+ <el-container>
3
+ <el-main>
4
+ <hd-com-grid :hdQuery="hdQuery" :removeUrl="removeUrl" imExcel notInit
5
+ ref="grid" url="/webresources/login/privilege/AuthUser" visualScroll :exField="exField"
6
+ :excelFormatter="doExcelFormatter">
7
+ <div class="filter-container" slot="query">
8
+ <el-input @keyup.enter.native="$refs.grid.doQuery()" class="filter-item" :placeholder="$t('姓名、账号')"
9
+ style="width: 200px;"
10
+ v-model="hdQuery.query.name">
11
+ </el-input>
12
+ <el-button @click="$refs.grid.doQuery()" class="filter-item" keyType="query">
13
+ {{$t('搜索')}}
14
+ </el-button>
15
+ <el-button @click="doEdit('')" class="filter-item" keyType="add" type="primary" vid="add">{{$t('新增')}}
16
+ </el-button>
17
+ <el-button @click="$refs.grid.doRemoveAll()" class="filter-item" keyType="remove" type="danger">{{$t('删除')}}
18
+ </el-button>
19
+ </div>
20
+ <el-table-column align="center" fixed="right" label="操作" width="110px">
21
+ <template slot-scope="scope">
22
+ <hd-btn @click.stop="doResetPsw(scope.row)" class="fa fa-asterisk" hint="重置密码" vid="resetpassword"></hd-btn>
23
+ <hd-btn @click.stop="doEdit(scope.row.userId)" hint="编辑" icon="el-icon-edit"></hd-btn>
24
+ <hd-btn @click.stop="doRemove(scope.row)" hint="删除" icon="el-icon-delete"></hd-btn>
25
+ <hd-btn @click.stop="doFaceRec(scope.row)" class="fa fa-vcard-o" hint="人脸识别">
26
+ </hd-btn>
27
+ </template>
28
+ </el-table-column>
29
+ <el-table-column align="left" header-align="center" label="姓名" prop="name" sortable width="100px">
30
+ </el-table-column>
31
+ <el-table-column align="left" header-align="center" label="账号" prop="account" sortable width="100px">
32
+ </el-table-column>
33
+ <el-table-column :input="require('../orgDept/orgnselect').default" :inputFormat="(result, row)=>row.orgnName"
34
+ align="left" header-align="center" label="部门" prop="orgnId"
35
+ sortable width="180px">
36
+ </el-table-column>
37
+ <el-table-column align="center" label="账号过期日期" prop="accountPassDate" sortable width="auto">
38
+ </el-table-column>
39
+ <el-table-column align="center" label="密码修改时间" prop="pwModifyTim" sortable width="auto">
40
+ </el-table-column>
41
+ </hd-com-grid>
42
+ </el-main>
43
+ <authuserform @save-ok="$refs.grid.doQuery()" ref="authuserform" :exFieldCode="exField.gridCode"></authuserform>
44
+ <facerec ref="facerec"></facerec>
45
+ </el-container>
46
+ </template>
47
+ <script>
48
+ import authuserform from './authuserform'
49
+ import facerec from './facerec'
50
+
51
+ export default {
52
+ name: 'authuser',
53
+ components: {authuserform, facerec},
54
+ data() {
55
+ return {
56
+ removeUrl: '',
57
+ hdQuery: new HdQuery(this),
58
+ orgnName: '',
59
+ orgnId: '',
60
+ exField: {
61
+ open: true,
62
+ table: 'AUTH_USER',
63
+ columnList: ['EX_FIELD1', 'EX_FIELD2', 'EX_FIELD3', 'EX_FIELD4', 'EX_FIELD5'],
64
+ gridCode: 'authUserGrid'
65
+ },
66
+ }
67
+ },
68
+ mounted() {
69
+ if (this.$route.query.q) {
70
+ this.$set(this.hdQuery.query, 'name', this.$route.query.q);
71
+ }
72
+ },
73
+ methods: {
74
+ queryUser(orgnId, orgnName) {
75
+ this.orgnId = orgnId
76
+ this.hdQuery.query.orgnId = orgnId
77
+ this.orgnName = orgnName
78
+ this.$refs.grid.doQuery()
79
+ },
80
+ doResetPsw(row) { // 增加或编辑
81
+ this.$confirm(this.$t('此操作将重置密码为888888, 是否继续?'), this.$t('提示'), {
82
+ confirmButtonText: this.$t('确定'),
83
+ cancelButtonText: this.$t('取消'),
84
+ type: 'warning'
85
+ }).then(() => {
86
+ this.$http.post('/webresources/login/privilege/AuthUser/resetPassword?userId=' + row.userId).then(response => {
87
+ const data = response.data
88
+ this.$message({
89
+ type: data.code === '-1' ? 'error' : 'success',
90
+ message: data.message
91
+ })
92
+ if (data.code === '-1') {
93
+ return
94
+ }
95
+ this.$refs.grid.doQuery()
96
+ })
97
+ }).catch(() => {
98
+ })
99
+ },
100
+ doEdit(userId) { // 增加或编辑
101
+ this.$refs['authuserform'].show(userId, this.orgnId, this.orgnName)
102
+ },
103
+ doRemove(row) {
104
+ this.removeUrl = '/webresources/login/privilege/AuthUser/remove?userId=' + row.userId
105
+ this.$refs.grid.doRemove(row)
106
+ },
107
+ doFaceRec(row) {
108
+ this.$refs.facerec.show(row)
109
+ },
110
+ doExcelFormatter(excelData) {
111
+ let r = {
112
+ multiHeader : [['用户管理', '', '', '', '', '', '', '', '']],
113
+ header : excelData.merdata[0],
114
+ data : excelData.merdata.slice(1),
115
+ filename : excelData.title,
116
+ merges : ['A1:I1']
117
+ }
118
+ console.log(r)
119
+ return r;
120
+ }
121
+ }
122
+ }
123
+ </script>
@@ -0,0 +1,154 @@
1
+ <template>
2
+ <el-dialog :visible.sync="visible" title="编辑" width='90%'>
3
+
4
+ <hd-form :model="hdform" label-width="100px" ref="hdform" :exFieldCode="exFieldCode">
5
+ <el-row>
6
+ <el-col :span="24">
7
+ <HdTempSave :auto="true" :saveFun="saveFunTemp" @reload="loadFromTemp" ref="hdTempSave"
8
+ style="float: right" v-if="visible"></HdTempSave>
9
+ </el-col>
10
+ <el-col :span="24" :xs="16">
11
+ <el-form-item :rules="$r(1,2,20)" label="姓名" prop="name">
12
+ <el-input type="text" v-model="hdform.name"></el-input>
13
+ </el-form-item>
14
+ </el-col>
15
+ <el-col :span="12" :xs="16">
16
+ <el-form-item :rules="$r(1,3,20)" label="账户" prop="account">
17
+ <el-input type="text" v-model="hdform.account"></el-input>
18
+ </el-form-item>
19
+ </el-col>
20
+ <el-col :span="24" :xs="16">
21
+ <el-form-item :rules="$r(1)" label="部门" prop="orgnName">
22
+ <!--<el-input type="text" v-model="hdform.orgnId" ></el-input>-->
23
+ <orgncascader :idVal.sync="hdform.orgnId" :txtVal.sync="hdform.orgnName"
24
+ style="width: 100%"></orgncascader>
25
+ </el-form-item>
26
+ </el-col>
27
+ <el-col :span="12" :xs="16">
28
+ <el-form-item label="账号过期日期" prop="accountPassDate">
29
+ <el-date-picker v-bind="$date" v-model="hdform.accountPassDate"></el-date-picker>
30
+ </el-form-item>
31
+ </el-col>
32
+ <el-col :span="12" :xs="16">
33
+ <el-form-item :rules="$r(0,0,255)" label="描述" prop="description">
34
+ <el-input type="text" v-model="hdform.description"></el-input>
35
+ </el-form-item>
36
+ </el-col>
37
+ </el-row>
38
+ <el-row>
39
+ <el-col :span="8" :xs="16">
40
+ <el-form-item label="账户锁定标志">
41
+ <el-switch active-value="1" inactive-value="0" v-model="hdform.lockId"></el-switch>
42
+ </el-form-item>
43
+ </el-col>
44
+ <el-col :span="8" :xs="16">
45
+ <el-form-item label="账户停用标志">
46
+ <el-switch active-value="1" inactive-value="0" v-model="hdform.stopId"></el-switch>
47
+ </el-form-item>
48
+ </el-col>
49
+
50
+ <el-col :span="8" :xs="16">
51
+ <el-form-item label="密码永不过期">
52
+ <el-switch active-value="1" inactive-value="0" v-model="hdform.pwNeverPassId"></el-switch>
53
+ </el-form-item>
54
+ </el-col>
55
+
56
+ <el-col :span="8" :xs="16">
57
+ <el-form-item label="个人不可改密">
58
+ <el-switch active-value="1" inactive-value="0" v-model="hdform.donotChgId"></el-switch>
59
+ </el-form-item>
60
+ </el-col>
61
+ <el-col :span="8" :xs="16">
62
+ <el-form-item label="登录先改密">
63
+ <el-switch active-value="1" inactive-value="0" v-model="hdform.nextChgId"></el-switch>
64
+ </el-form-item>
65
+ </el-col>
66
+ </el-row>
67
+ </hd-form>
68
+ <div class="dialog-footer" slot="footer">
69
+ <el-button @click="visible = false">{{$t('取 消')}}</el-button>
70
+ <el-button :hotKeyRange="$options.name" :loading="loading" @click="submit" keyType="save" type="primary">
71
+ {{$t('确 定')}}
72
+ </el-button>
73
+ </div>
74
+ </el-dialog>
75
+
76
+ </template>
77
+
78
+ <script>
79
+ import orgncascader from './orgncascader'
80
+ import ExtendForm from "../../../hdcom/ExtendForm";
81
+
82
+ export default {
83
+ name: 'authuserform',
84
+ components: {
85
+ ExtendForm,
86
+ orgncascader
87
+ },
88
+ data() {
89
+ return {
90
+ hdform: {},
91
+ visible: false,
92
+ tsLoading: false,
93
+ loading: false
94
+ }
95
+ },
96
+ props: {
97
+ orgnId: String,
98
+ orgnName: String,
99
+ exFieldCode: String,
100
+ },
101
+ methods: {
102
+ show(userId, orgnId, orgnName) { // 换为本表主键
103
+
104
+ this.visible = true
105
+ this.$http.post('/webresources/login/privilege/AuthUser/findone?userId=' + userId + '&orgnId=' + orgnId).then(response => {
106
+ const data = response.data
107
+ this.hdform = data
108
+ if (!userId) {//这块代码已经没用,后端已经赋值,而且推荐后端写
109
+ this.hdform.orgnId = orgnId
110
+ this.hdform.orgnName = orgnName
111
+ }
112
+ // 弹窗重复使用时,清除校验项目
113
+ if (this.$refs['hdform']) {
114
+ this.$refs['hdform'].$refs.hdform.resetFields()
115
+ }
116
+ })
117
+
118
+ },
119
+
120
+ submit() {
121
+ // console.debug(this.hdform)
122
+ this.$refs['hdform'].$refs.hdform.validate((valid) => {
123
+ if (!valid) {
124
+ return false
125
+ }
126
+ this.loading = true
127
+ // this.hdform.orgnId = this.parentId
128
+ this.$http.post('/webresources/login/privilege/AuthUser/save', this.hdform).then(response => {
129
+ this.loading = false
130
+ const data = response.data
131
+ this.$message({
132
+ type: data.code === '-1' ? 'error' : 'success',
133
+ message: data.message
134
+ })
135
+ if (data.code === '-1') {
136
+ return
137
+ }
138
+ this.$emit('save-ok') // 主页面调用弹窗时添加
139
+ this.visible = false
140
+ }).catch(() => {//数据同步的校验,时,会从这里触发
141
+ this.loading = false
142
+ })
143
+ })
144
+ },
145
+ saveFunTemp() {
146
+ return this.hdform
147
+ },
148
+ loadFromTemp(storeFrom) {
149
+ Object.assign(this.hdform, storeFrom)
150
+ },
151
+ }
152
+ }
153
+ </script>
154
+