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,117 @@
1
+ <template>
2
+ <el-dialog title="人脸设置" :visible.sync="visible" append-to-body width="900px" top="2vh">
3
+ <el-container style="height:500px">
4
+ <el-aside width="410px">
5
+ <div>{{$t('摄像头')}}</div>
6
+ <video ref="video" width="400px" height="225px" autoplay style="border: solid"></video>
7
+ </el-aside>
8
+ <el-main>
9
+ <div>{{$t('拍照')}}</div>
10
+ <canvas ref='canvas' width="400px" height="225px" style="border: solid"></canvas>
11
+ </el-main>
12
+ </el-container>
13
+ <div slot="footer" class="dialog-footer">
14
+ <el-button @click="faceRemove">{{$t('删除特征')}}</el-button>
15
+ <el-button @click="faceTest">{{$t('人脸测试')}}</el-button>
16
+ <el-button type="primary" @click="capAndSave" keyType="save">
17
+ {{$t('拍照并上传')}}
18
+ </el-button>
19
+ <el-upload style="display: inline"
20
+ :action="'/webresources/login/com/ComFaceRec/uploadFace?userId='+userId"
21
+ :show-file-list="false"
22
+ :on-success="uploadSuccess">
23
+ <el-button>{{$t('上传图片')}}</el-button>
24
+ </el-upload>
25
+ </div>
26
+ </el-dialog>
27
+ </template>
28
+ <script>
29
+ export default {
30
+ components: {},
31
+ data() {
32
+ return {
33
+ visible: false,
34
+ userId: null,
35
+ account: null
36
+ }
37
+ },
38
+
39
+ mounted() {
40
+
41
+ },
42
+ methods: {
43
+ show(row) {
44
+ this.userId = row.userId
45
+ this.account = row.account
46
+ this.visible = true
47
+ },
48
+ init() {
49
+ navigator.webkitGetUserMedia({
50
+ video: {width: 1280, height: 720}
51
+ }, this.success, this.error);
52
+ },
53
+ success(stream) {
54
+ this.$refs.video.src = window.URL.createObjectURL(stream);
55
+ this.$refs.video.play();
56
+ },
57
+ error(err) {
58
+ alert('video error: ' + err)
59
+ },
60
+ faceTest() {
61
+ this.$refs.canvas.getContext('2d').drawImage(this.$refs.video, 0, 0, 400, 225);
62
+ let pic = this.$refs.canvas.toDataURL("image/jpg");
63
+ //对其进行base64编 之后的字符串
64
+ pic = pic.replace(/^data:image\/(png|jpg);base64,/, "")
65
+ this.$http.post('/webresources/login/com/ComFaceRec/faceUserTest?account=' + this.account, {
66
+ "imageData": pic
67
+ }).then(response => {
68
+ const data = response.data
69
+ this.$message({
70
+ type: data.code === '-1' ? 'error' : 'success',
71
+ message: data.message
72
+ })
73
+ })
74
+ },
75
+ capAndSave() {
76
+ this.$refs.canvas.getContext('2d').drawImage(this.$refs.video, 0, 0, 400, 225);
77
+ let pic = this.$refs.canvas.toDataURL("image/jpg");
78
+ //对其进行base64编 之后的字符串
79
+ pic = pic.replace(/^data:image\/(png|jpg);base64,/, "")
80
+ this.$http.post('/webresources/login/com/ComFaceRec/faceUserSave?userId=' + this.userId, {
81
+ "imageData": pic
82
+ }).then(response => {
83
+ const data = response.data
84
+ this.$message({
85
+ type: data.code === '-1' ? 'error' : 'success',
86
+ message: data.message
87
+ })
88
+ })
89
+ },
90
+ uploadSuccess(response) {
91
+ console.info(response)
92
+ const data = response
93
+ this.$message({
94
+ type: data.code === '-1' ? 'error' : 'success',
95
+ message: data.message
96
+ })
97
+ },
98
+ faceRemove() {
99
+ this.$http.post('/webresources/login/com/ComFaceRec/faceUserRemove?userId=' + this.userId).then(response => {
100
+ const data = response.data
101
+ this.$message({
102
+ type: data.code === '-1' ? 'error' : 'success',
103
+ message: data.message
104
+ })
105
+ })
106
+ }
107
+ },
108
+ watch: {
109
+ visible(nowVal) {
110
+ if (nowVal) {
111
+ this.init()
112
+ } else {
113
+ }
114
+ }
115
+ }
116
+ }
117
+ </script>
@@ -0,0 +1,125 @@
1
+ <template>
2
+ <div>
3
+ <div>
4
+ <el-cascader :value="searchVal"
5
+ :placeholder="placeholder?this.$(placeholder):this.$t('请选择')"
6
+ :options="options" filterable
7
+ :props="{expandTrigger: 'hover', checkStrictly: true, value : 'id', label: 'text'}"
8
+ :disabled="disabled" ref="sel" @change="doSel">
9
+ <template slot-scope="{ node, data }">
10
+ <span>{{ data.text }}</span>
11
+ <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
12
+ </template>
13
+ </el-cascader>
14
+ </div>
15
+ </div>
16
+ </template>
17
+ <script>
18
+
19
+ /**
20
+ * 自定义列表下拉
21
+ * @module orgnselect
22
+ */
23
+ export default {
24
+ name: 'orgnselect',
25
+ data() {
26
+ return {
27
+ options: []
28
+ }
29
+ },
30
+ inheritAttrs: false,
31
+ /**
32
+ * Props 继承hd-com-grid的属性和事件
33
+ * @prop {String} txtVal 双向绑定 这里是为了clear清空用
34
+ * @prop {String} idVal 双向绑定 这里是为了clear清空用
35
+ * @prop {String} placeholder
36
+ * @prop {String} disabled 只读
37
+ * @prop {Object} hdQuery 查询封装类
38
+ * @prop {String} height 默认为40vh
39
+ * @prop {Function} beforeQuery 查询前的事件,通常需要绑定anyQuery
40
+ */
41
+ props: {
42
+ txtVal: String,
43
+ idVal: String,
44
+ placeholder: String,
45
+ disabled: Boolean,
46
+ hdQuery: Object,
47
+ url: String, // 全路径
48
+ height: {// 高度
49
+ type: String,
50
+ default: '40vh'
51
+ },
52
+ beforeQuery: Function
53
+ }, // 设置value为props属性-必须
54
+ mounted() {
55
+ this.doQuery()
56
+ },
57
+
58
+ methods: {
59
+ doQuery() {
60
+ this.$http.post('/webresources/login/privilege/AuthOrgn/gentree', this.hdQuery).then(response => {
61
+ this.options = response.data;
62
+ this.initOption(this.options);
63
+ })
64
+ },
65
+ doClear() {
66
+ this.$emit('update:txtVal', '')
67
+ this.$emit('update:idVal', '')
68
+ this.$emit('clear')
69
+ },
70
+ doSel(val) {
71
+ if (!this.$refs.sel.getCheckedNodes() || this.$refs.sel.getCheckedNodes().length < 1) {
72
+ this.$emit('update:txtVal', '')
73
+ this.$emit('update:idVal', '')
74
+ this.$refs.sel.toggleDropDownVisible(false)
75
+ return;
76
+ }
77
+ const data = this.$refs.sel.getCheckedNodes()[0].data;
78
+ this.$emit('update:txtVal', data.text)
79
+ this.$emit('update:idVal', data.id)
80
+ this.$emit('change', val)
81
+ this.$refs.sel.toggleDropDownVisible(false)
82
+ },
83
+ getSearchIdList(list, id) {
84
+ let rtn = [];
85
+ list.forEach(v => {
86
+ if(v.id == id) {
87
+ rtn = [v.id];
88
+ return;
89
+ } else {
90
+ let idList = this.getSearchIdList(v.children == null ? [] : v.children, id);
91
+ if(idList.length > 0) {
92
+ rtn = [v.id, ...idList];
93
+ }
94
+ }
95
+ })
96
+ return rtn;
97
+ },
98
+ initOption(list) {
99
+ list.forEach(v => {
100
+ if(!v.children || v.children.length === 0) {
101
+ v.children = null;
102
+ } else {
103
+ this.initOption(v.children);
104
+ }
105
+ })
106
+ },
107
+ },
108
+ computed: {
109
+ searchVal() {
110
+ let searchVal = this.getSearchIdList(this.options, this.idVal);
111
+ console.log('searchVal', this.options, searchVal, this.idVal);
112
+ return this.getSearchIdList(this.options, this.idVal);
113
+ }
114
+ }
115
+ }
116
+
117
+ </script>
118
+ <style scoped>
119
+ .lucencyInput .el-input__inner {
120
+ border: 0px;
121
+ }
122
+ .el-cascader {
123
+ width: 100%
124
+ }
125
+ </style>
@@ -0,0 +1,31 @@
1
+ <template>
2
+ <el-container>
3
+ <el-aside>
4
+ <orgTree ref='orgTree' @org-node-click='query'></orgTree>
5
+ </el-aside>
6
+ <el-main>
7
+ <authUser ref='authUser'></authUser>
8
+ </el-main>
9
+ </el-container>
10
+ </template>
11
+ <script>
12
+ import orgTree from '../orgDept/orgTree'
13
+ import authUser from './authuser'
14
+
15
+ export default {
16
+ components: {
17
+ orgTree, authUser
18
+ },
19
+ data() {
20
+ return {
21
+ orgnId: '0',
22
+ orgnName: ''
23
+ }
24
+ },
25
+ methods: {
26
+ query: function(data) {
27
+ this.$refs['authUser'].queryUser(data.id, data.text)
28
+ }
29
+ }
30
+ }
31
+ </script>
@@ -0,0 +1,65 @@
1
+ <template>
2
+ <el-container>
3
+ <el-main>
4
+
5
+ <hd-com-grid ref="grid" :hdQuery="hdQuery" url="/webresources/login/com/ComQuartzJob">
6
+ <div class="filter-container" slot="query">
7
+ <el-input @keyup.enter.native="$refs.grid.doQuery()" style="width: 200px;" class="filter-item" :placeholder="$t('实体名称,任务名称')"
8
+ v-model="hdQuery.query.anyQuery">
9
+ </el-input>
10
+ <el-button class="filter-item" type="primary" icon="search" @click="$refs.grid.doQuery()" :keyMap="['alt','q']">{{$t('搜索')}}</el-button>
11
+ <el-button class="filter-item" @click="doEdit('')" type="primary" icon="edit" :keyMap="['alt','a']">{{$t('新增')}}
12
+ </el-button>
13
+ <el-button class="filter-item" @click="$refs.grid.doRemoveAll()" type="danger" :keyMap="['alt','d']">{{$t('删除')}}
14
+ </el-button>
15
+ </div>
16
+ <el-table-column width="100px" align="center" label="操作" fixed="right">
17
+ <template slot-scope="scope">
18
+ <hd-btn icon="el-icon-edit" hint="编辑" @click.stop="doEdit(scope.row.qjId)"></hd-btn>
19
+ <hd-btn icon="el-icon-delete" hint="删除" @click.stop="$refs.grid.doRemove(scope.row.qjId)"></hd-btn>
20
+ </template>
21
+ </el-table-column>
22
+ <el-table-column width="100px" align="center" label="实体名" prop="beanName" sortable>
23
+ </el-table-column>
24
+ <el-table-column width="100px" align="center" label="cron表达式" prop="cronExpression" sortable>
25
+ </el-table-column>
26
+ <el-table-column width="100px" align="center" label="是否使用" prop="isPause" sortable>
27
+ <template slot-scope="scope">
28
+ <span>{{scope.row.isPause == '0' ? '√' : '×'}}</span>
29
+ </template>
30
+ </el-table-column>
31
+ <el-table-column width="100px" align="center" label="任务名称" prop="jobName" sortable>
32
+ </el-table-column>
33
+ <el-table-column width="100px" align="center" label="执行方法" prop="methodName" sortable>
34
+ </el-table-column>
35
+ <el-table-column width="100px" align="center" label="参数名称" prop="params" sortable>
36
+ </el-table-column>
37
+ <el-table-column width="100px" align="center" label="备注" prop="remark" sortable>
38
+ </el-table-column>
39
+ </hd-com-grid>
40
+ </el-main>
41
+ <comquartzjobform ref="comquartzjobform" @save-ok="$refs.grid.doQuery()"></comquartzjobform>
42
+ </el-container>
43
+ </template>
44
+ <script>
45
+ import comquartzjobform from './comquartzjobform'
46
+ export default {
47
+ name: 'comquartzjob',
48
+ components: { comquartzjobform },
49
+ data() {
50
+ return {
51
+ hdQuery: new HdQuery(this),
52
+ }
53
+ },
54
+
55
+ mounted() {
56
+
57
+ },
58
+ methods: {
59
+
60
+ doEdit(qjId) { // 增加或编辑
61
+ this.$refs['comquartzjobform'].show(qjId)
62
+ },
63
+ }
64
+ }
65
+ </script>
@@ -0,0 +1,99 @@
1
+ <template>
2
+ <el-dialog title="编辑" :visible.sync="visible" width='60%'>
3
+ <el-form label-width="100px" :model="hdform" ref="hdform">
4
+ <el-row>
5
+ <el-col :span="8" :xs="16">
6
+ <el-form-item label = "实体名" prop="beanName" :rules="$r(0,0,50)">
7
+ <el-input type="text" v-model="hdform.beanName" ></el-input>
8
+ </el-form-item>
9
+ </el-col>
10
+ <el-col :span="8" :xs="16">
11
+ <el-form-item label = "cron表达式" prop="cronExpression" :rules="$r(0,0,50)">
12
+ <el-input type="text" v-model="hdform.cronExpression" ></el-input>
13
+ </el-form-item>
14
+ </el-col>
15
+ <el-col :span="8" :xs="16">
16
+ <el-form-item label = "是否使用" prop="isPause" :rules="$r(0)"><!--1暂停,0不暂停就是使用-->
17
+ <el-switch v-model="hdform.isPause" active-value="0" inactive-value="1"></el-switch>
18
+ </el-form-item>
19
+ </el-col>
20
+ <el-col :span="8" :xs="16">
21
+ <el-form-item label = "任务名称" prop="jobName" :rules="$r(0,0,50)">
22
+ <el-input type="text" v-model="hdform.jobName" ></el-input>
23
+ </el-form-item>
24
+ </el-col>
25
+ <el-col :span="8" :xs="16">
26
+ <el-form-item label = "执行方法" prop="methodName" :rules="$r(0,0,50)">
27
+ <el-input type="text" v-model="hdform.methodName" ></el-input>
28
+ </el-form-item>
29
+ </el-col>
30
+ <el-col :span="8" :xs="16">
31
+ <el-form-item label = "参数名称" prop="params" :rules="$r(0,0,255)">
32
+ <el-input type="text" v-model="hdform.params" ></el-input>
33
+ </el-form-item>
34
+ </el-col>
35
+ <el-col :span="8" :xs="16">
36
+ <el-form-item label = "备注" prop="remark" :rules="$r(0,0,255)">
37
+ <el-input type="text" v-model="hdform.remark" ></el-input>
38
+ </el-form-item>
39
+ </el-col>
40
+ </el-row>
41
+ </el-form>
42
+ <div slot="footer" class="dialog-footer">
43
+ <el-button @click="visible = false">{{$t('取 消')}}</el-button>
44
+ <el-button type="primary" @click="submit" :loading="loading"> {{$t('确 定')}}</el-button>
45
+ </div>
46
+ </el-dialog>
47
+
48
+ </template>
49
+
50
+ <script>
51
+ export default {
52
+ name: 'comquartzjobform',
53
+ data() {
54
+ return {
55
+ hdform: {},
56
+ visible: false,
57
+ tsLoading: false,
58
+ loading: false
59
+
60
+ }
61
+ },
62
+ methods: {
63
+ show(qjId) { // 换为本表主键
64
+ //弹窗重复使用时,清除校验项目
65
+ if (this.$refs['hdform'])
66
+ this.$refs['hdform'].resetFields()
67
+ this.visible = true
68
+ this.$http.get('/webresources/login/com/ComQuartzJob/findone?qjId=' + qjId).then(response => {
69
+ const data = response.data
70
+ this.hdform = data
71
+ })
72
+ },
73
+
74
+ submit() {
75
+ // console.debug(this.hdform)
76
+ this.$refs['hdform'].validate((valid) => {
77
+ if (!valid) {
78
+ return false;
79
+ }
80
+ this.loading = true
81
+ this.$http.post('/webresources/login/com/ComQuartzJob/saveone', this.hdform).then(response => {
82
+ this.loading = false
83
+ const data = response.data
84
+ this.$message({
85
+ type: data.code == '-1' ? 'error' : 'success',
86
+ message: data.message
87
+ })
88
+ if (data.code == '-1') {
89
+ return
90
+ }
91
+ this.$emit('save-ok') // 主页面调用弹窗时添加
92
+ this.visible = false
93
+ })
94
+ })
95
+ }
96
+ }
97
+ }
98
+ </script>
99
+
@@ -0,0 +1,59 @@
1
+ <template>
2
+ <el-container>
3
+ <el-main>
4
+
5
+ <hd-com-grid ref="grid" :hdQuery="hdQuery" url="/webresources/login/com/ComQuartzLog" recHide :default-sort="{prop: '', order: 'descending'}">
6
+ <div class="filter-container" slot="query">
7
+ <el-input @keyup.enter.native="$refs.grid.doQuery()" style="width: 200px;" class="filter-item" :placeholder="$t('实体名称,任务名称')"
8
+ v-model="hdQuery.query.anyQuery">
9
+ </el-input>
10
+ <el-button class="filter-item" type="primary" icon="search" @click="$refs.grid.doQuery()" :keyMap="['alt','q']">{{$t('搜索')}}</el-button>
11
+ <el-button class="filter-item" @click="$refs.grid.doRemoveAll()" type="danger" :keyMap="['alt','d']">{{$t('删除')}}
12
+ </el-button>
13
+ </div>
14
+ <el-table-column width="100px" align="center" label="操作" fixed="right">
15
+ <template slot-scope="scope">
16
+ <hd-btn icon="el-icon-delete" hint="删除" @click.stop="$refs.grid.doRemove(scope.row.qlId)"></hd-btn>
17
+ </template>
18
+ </el-table-column>
19
+
20
+ <el-table-column width="100px" align="center" label="实体名称" prop="beanName" sortable>
21
+ </el-table-column>
22
+ <el-table-column width="120px" align="center" label="cron表达式" prop="cronExpression" sortable>
23
+ </el-table-column>
24
+ <el-table-column width="100px" align="center" label="执行时间" prop="exceptionDetail" sortable>
25
+ </el-table-column>
26
+ <el-table-column width="100px" align="center" label="是否成功" prop="isSuccess" sortable>
27
+ </el-table-column>
28
+ <el-table-column width="100px" align="center" label="任务名称" prop="jobName" sortable>
29
+ </el-table-column>
30
+ <el-table-column width="100px" align="center" label="任务参数" prop="params" sortable>
31
+ </el-table-column>
32
+ <el-table-column width="120px" align="center" label="运行时间(秒)" prop="time" sortable>
33
+ </el-table-column>
34
+ <el-table-column width="200px" align="center" label="记录时间" prop="logTime" :inputProp="$datetime" sortable>
35
+ </el-table-column>
36
+ <el-table-column width="100px" align="center" label="方法名" prop="methodName" sortable>
37
+ </el-table-column>
38
+ </hd-com-grid>
39
+ </el-main>
40
+ </el-container>
41
+ </template>
42
+ <script>
43
+ export default {
44
+ name: 'comquartzlog',
45
+ components: { },
46
+ data() {
47
+ return {
48
+ hdQuery: new HdQuery(this),
49
+ }
50
+ },
51
+
52
+ mounted() {
53
+
54
+ },
55
+ methods: {
56
+
57
+ }
58
+ }
59
+ </script>
@@ -0,0 +1,117 @@
1
+ <template>
2
+ <el-container style="padding-top: 5px">
3
+ <el-main>
4
+ <hd-com-grid ref="grid" :hdQuery="hdQuery" :findUrl="findUrl"
5
+ removeAllUrl="/webresources/login/privilege/AuthResource/removeBtn"
6
+ findoneUrl="/webresources/login/privilege/AuthResource/findone"
7
+ :saveoneUrl="saveoneUrl"
8
+ noSets pageHide recHide notInit>
9
+ <div class="filter-container" slot="query">
10
+ <el-button class="filter-item" @click="$refs.grid.doEdit('')" type="primary" keyType="add">{{$t('新增')}}
11
+ </el-button>
12
+ <el-button class="filter-item" @click="$refs.grid.doRemoveAll()" type="danger" keyType="del">{{$t('删除')}}
13
+ </el-button>
14
+ <el-button class="filter-item" @click="doInit()" type="danger">{{$t('按钮扫描')}}
15
+ </el-button>
16
+ </div>
17
+ <el-table-column width="90" align="center" label="操作" fixed="right">
18
+ <template slot-scope="scope">
19
+ <hd-btn icon="el-icon-edit" hint="编辑" @click.stop="$refs.grid.doEdit(scope.row)" v-if="!scope.row.isEdit">{{$t('编辑')}}
20
+ </hd-btn>
21
+ <hd-btn hint="撤销" @click.stop="$refs.grid.doCancel(scope.row,scope.$index)" v-if="scope.row.isEdit">
22
+ <svg-icon icon-class="undo"/>
23
+ </hd-btn>
24
+ <hd-btn icon="el-icon-check" hint="保存" @click.stop="doSave(scope.row)" v-if="scope.row.isEdit">
25
+ </hd-btn>
26
+ </template>
27
+ </el-table-column>
28
+ <el-table-column width="90" align="center" label="使用">
29
+ <template slot-scope="scope">
30
+ <el-switch v-model="scope.row.useFlg" active-value="1" inactive-value="0"
31
+ @change="updateBtn(scope.row)"></el-switch>
32
+ </template>
33
+ </el-table-column>
34
+ <el-table-column width="120px" align="center" label="名称" prop="name" sortable>
35
+ </el-table-column>
36
+ <el-table-column width="220px" align="center" label="区分标识" prop="permissions" sortable>
37
+ </el-table-column>
38
+
39
+ </hd-com-grid>
40
+ <component :is="menuUrl" v-show="false" ref="compurl"></component>
41
+ </el-main>
42
+ </el-container>
43
+ </template>
44
+ <script>
45
+ export default {
46
+ components: {},
47
+ name: 'btnRole',
48
+ data() {
49
+ return {
50
+ hdQuery: new HdQuery(this),
51
+ findUrl: '',
52
+ saveoneUrl: '',
53
+ menuUrl: ''
54
+ }
55
+ },
56
+ props: ['menu', 'roleId', 'imFromPro'], // imFromPro:import不能来自node_module,需要项目传入
57
+ mounted() {
58
+ this.initCom()
59
+ },
60
+ methods: {
61
+ doQuery() {
62
+ this.findUrl = `/webresources/login/privilege/AuthResource/showBtn?menuId=${this.menu.id}&roleId=${this.roleId}`
63
+ this.$refs.grid.doQuery()
64
+ },
65
+ doSave(row) {
66
+ this.saveoneUrl = `/webresources/login/privilege/AuthResource/saveBtn?menuId=${this.menu.id}`
67
+ this.$refs.grid.doSave(row)
68
+ },
69
+ initCom() {
70
+ this.doQuery()// 这里列表展示
71
+ this.$route.meta.btnRole = []
72
+ this.menuUrl = () => this.imFromPro(this.menu.url)
73
+ },
74
+ doInit() {
75
+ this.listLoading = true
76
+ this.$http.post(`/webresources/login/privilege/AuthResource/initBtn?menuId=${this.menu.id}`, this.$route.meta.btnRole).then(response => {
77
+ this.listLoading = false
78
+ const data = response.data
79
+ this.$message({
80
+ type: data.code == '-1' ? 'error' : 'success',
81
+ showClose: true,
82
+ duration: 1500,
83
+ message: data.message
84
+ })
85
+ if (data.code == '-1') {
86
+ return
87
+ }
88
+ this.doQuery()
89
+ })
90
+ },
91
+ updateBtn(row) {
92
+ this.$set(row, 'checked', row.checked)
93
+ row.menuId = this.menu.id
94
+ row.roleId = this.roleId
95
+ this.$http.post(`/webresources/login/privilege/AuthResource/setBtn?menuId=${this.menu.id}&roleId=${this.roleId}&resourceId=${row.resourceId}&useFlg=${row.useFlg}`).then(response => {
96
+ const data = response.data
97
+ this.$message({
98
+ type: data.code == '-1' ? 'error' : 'success',
99
+ message: data.message,
100
+ showClose: true,
101
+ duration: 1500
102
+ })
103
+ })
104
+ }
105
+ },
106
+ watch: {// 初始化时,不会执行watch,所以需要在mounted
107
+ 'menu.id': function () {
108
+ this.initCom()
109
+ },
110
+ roleId: function () {
111
+ this.initCom()
112
+ }
113
+ }
114
+
115
+ }
116
+
117
+ </script>
@@ -0,0 +1,64 @@
1
+ <template>
2
+ <div style="height: 100%;">
3
+ <el-button class="filter-item" type="success" @click="save" size="mini">{{$t('保存')}}</el-button>
4
+ <hd-tree :data="hdTree" v-loading="listLoading" node-key="id" ref="menuTree"
5
+ show-checkbox style="height: calc(100% - 30px);"></hd-tree>
6
+ </div>
7
+ </template>
8
+ <script>
9
+
10
+ import btnRole from './btnRole'
11
+
12
+ import rolelist from './rolelist'
13
+
14
+ export default {
15
+ components: {
16
+ rolelist, btnRole
17
+ },
18
+ name: 'menuRole',
19
+ data: function () {
20
+ return {
21
+ hdTree: [],
22
+ listLoading: false
23
+ }
24
+ },
25
+ mounted() { // 因为外层通过v-if控制
26
+ this.doQuery()
27
+ },
28
+ methods: {
29
+ doQuery() {
30
+ this.listLoading = true
31
+
32
+ this.$http.get(`../webresources/login/privilege/AuthRole/findtreeforrole?roleId=${this.roleId}`).then(response => {
33
+ const data = response.data
34
+ this.hdTree = data
35
+ this.listLoading = false
36
+ })
37
+ },
38
+ save() {
39
+ const os = this.$refs.menuTree.getCheckedNodes()
40
+ let privilegeIds = ''
41
+ for (let i = 0; i < os.length; i++) {
42
+ if (os[i].id == -1) { // 总根节点不处理
43
+ continue
44
+ }
45
+ privilegeIds = privilegeIds + os[i].id + ','
46
+ }
47
+ this.$http.post(`../webresources/login/privilege/AuthRole/updatePermission/${this.roleId}`, {ids: privilegeIds}).then(response => {
48
+ const data = response.data
49
+ this.$message({
50
+ type: data.code == '-1' ? 'error' : 'success',
51
+ message: data.message
52
+ })
53
+ })
54
+ }
55
+ },
56
+ props: ['roleId'],
57
+ watch: {
58
+ // 如果 `roleId` 发生改变,这个函数就会运行
59
+ roleId: function (newVal) {
60
+ this.doQuery()
61
+ }
62
+ }
63
+ }
64
+ </script>