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,25 @@
1
+ <template>
2
+
3
+ <el-menu :collapse="isCollapse" :default-active="$route.name" active-text-color="#ffffff" background-color="#ffffff"
4
+ mode="vertical" text-color="#fff">
5
+ <HdMenu :routes="hdMenu"></HdMenu>
6
+ </el-menu>
7
+ </template>
8
+
9
+ <script>
10
+ import {mapGetters} from 'vuex'
11
+ import HdMenu from './HdMenu'
12
+
13
+ export default {
14
+ components: {HdMenu},
15
+ computed: {
16
+ ...mapGetters([
17
+ 'hdMenu',
18
+ 'sidebar'
19
+ ]),
20
+ isCollapse() {
21
+ return !this.sidebar.opened
22
+ }
23
+ }
24
+ }
25
+ </script>
@@ -0,0 +1,78 @@
1
+ <template>
2
+ <el-container>
3
+ <el-main>
4
+
5
+ <hd-com-grid :hdQuery="hdQuery" ref="grid" url="/webresources/login/com/ComMsg" visualScroll>
6
+ <div class="filter-container" slot="query">
7
+ <el-input @keyup.enter.native="$refs.grid.doQuery()" class="filter-item" :placeholder="$t('名称')"
8
+ style="width: 200px;"
9
+ v-model="hdQuery.query.anyQuery">
10
+ </el-input>
11
+ <el-button @click="$refs.grid.doQuery()" class="filter-item" icon="search" ref="q" type="primary">{{$t('搜索')}}
12
+ </el-button>
13
+ <el-button @click="doEdit('')" class="filter-item" icon="edit" ref="a" type="primary">{{$t('新增')}}
14
+ </el-button>
15
+ <el-button @click="$refs.grid.doRemoveAll()" class="filter-item" ref="d" type="danger">{{$t('删除')}}
16
+ </el-button>
17
+ </div>
18
+ <el-table-column align="center" fixed="right" label="操作" width="100px">
19
+ <template slot-scope="scope">
20
+ <hd-btn @click.stop="doEdit(scope.row.msgId)" hint="编辑" icon="el-icon-edit"></hd-btn>
21
+ <hd-btn @click.stop="$refs.grid.doRemove(scope.row)" hint="删除" icon="el-icon-delete"></hd-btn>
22
+ <hd-btn @click.stop="send(scope.row.msgId)" hint="发送" icon="el-icon-phone"></hd-btn>
23
+ </template>
24
+ </el-table-column>
25
+ <el-table-column align="center" label="CODE" prop="msgCode" sortable width="100px">
26
+ </el-table-column>
27
+ <el-table-column align="center" label="标题" prop="title" sortable width="100px">
28
+ </el-table-column>
29
+ <el-table-column align="center" label="类型" prop="msgTypeName" width="150px">
30
+ </el-table-column>
31
+ <el-table-column align="center" label="内容" prop="content" sortable width="300px">
32
+ </el-table-column>
33
+ <el-table-column align="center" label="打开路径" prop="url" sortable width="100px">
34
+ </el-table-column>
35
+
36
+ </hd-com-grid>
37
+ </el-main>
38
+ <commsgform @save-ok="$refs.grid.doQuery()" ref="commsgform"></commsgform>
39
+ </el-container>
40
+ </template>
41
+ <script>
42
+ import commsgform from './commsgform'
43
+
44
+ export default {
45
+ components: {commsgform},
46
+ data() {
47
+ return {
48
+ hdQuery: new HdQuery(this)
49
+ }
50
+ },
51
+
52
+ mounted() {
53
+
54
+ },
55
+ methods: {
56
+
57
+ doEdit(msgId) { // 增加或编辑
58
+ this.$refs['commsgform'].show(msgId)
59
+ },
60
+ send(msgId) { // 增加或编辑
61
+ this.$http.post(`/webresources/login/com/ComMsg/send?msgId=${msgId}`).then(response => {
62
+ var data = response.data
63
+ if (data.code != '1') {
64
+ this.$message({
65
+ type: 'error',
66
+ message: data.message
67
+ })
68
+ } else {
69
+ this.$message({
70
+ type: 'success',
71
+ message: this.$t('发送成功')
72
+ })
73
+ }
74
+ })
75
+ }
76
+ }
77
+ }
78
+ </script>
@@ -0,0 +1,42 @@
1
+ <template>
2
+ <div style="height: 100%;min-height: 400px">
3
+ <hd-tree :data="hdTree" v-loading="listLoading" node-key="id" ref="orgnTree" style="height: 100%"
4
+ height="100%" show-checkbox></hd-tree>
5
+ </div>
6
+ </template>
7
+ <script>
8
+
9
+ export default {
10
+ name: 'commsgOrgn',
11
+ data: function () {
12
+ return {
13
+ hdTree: [],
14
+ listLoading: false
15
+ }
16
+ },
17
+ methods: {
18
+ doQuery() {
19
+ this.listLoading = true
20
+ this.$http.get(`../webresources/login/com/ComMsg/findOrgnByMsgId/${this.msgId}`).then(response => {
21
+ const data = response.data
22
+ this.hdTree = data
23
+ this.listLoading = false
24
+ })
25
+ },
26
+ getOrgIds() {
27
+ const os = this.$refs.orgnTree.getCheckedNodes(false)
28
+ let orgnIds = ''
29
+ for (let i = 0; i < os.length; i++) {
30
+ orgnIds = orgnIds + os[i].id + ','
31
+ }
32
+ return orgnIds;
33
+ }
34
+ },
35
+ props: ['orgnIds', 'msgId'],
36
+ watch: {
37
+ msgId : function (newVal) {
38
+ this.doQuery()
39
+ }
40
+ }
41
+ }
42
+ </script>
@@ -0,0 +1,149 @@
1
+ <template>
2
+ <el-container style="height: 60vh;padding: 0" direction="vertical">
3
+ <ex-header height="50px">
4
+ <div class="filter-container" style="padding: 5px">
5
+ {{$t('角色查询')}}
6
+ <el-input @keyup.enter.native="doQuery()" style="width: 200px;" class="filter-item"
7
+ :placeholder="$t('角色名')"
8
+ v-model="hdQuery.query.name">
9
+ </el-input>
10
+ <orgnselect :txtVal.sync="hdQuery.query.orgnIdStr" :idVal.sync="hdQuery.query.orgnId"
11
+ class="filter-item" :placeholder="$t('请选择组织')"></orgnselect>
12
+ <el-button @click="doQuery">{{$t('搜索')}}</el-button>
13
+ <el-button @click="hdQuery.query={}">{{$t('清空')}}</el-button>
14
+ </div>
15
+ </ex-header>
16
+ <el-main>
17
+ <div style="width:100%;height:100%;">
18
+ <el-container style="width:100%;height:100%;">
19
+ <ex-aside width="45%">
20
+ <hd-grid :hdQuery="hdQuery" :hdResult="hdResultLeftSel"
21
+ @selection-change="leftSelMe" recHide noSets v-loading="listLoading1" @row-dblclick="leftClick">
22
+ <div class="el-line">{{$t('未选')}}</div>
23
+ <el-table-column width="130px" align="left" header-align="center" label="名称" prop="name" sortable>
24
+ </el-table-column>
25
+ <el-table-column width="130px" align="left" header-align="center" label="部门" prop="orgnName" sortable>
26
+ </el-table-column>
27
+ <el-table-column align="left" header-align="center" label="描述" prop="description" sortable>
28
+ </el-table-column>
29
+ </hd-grid>
30
+ </ex-aside>
31
+ <ex-aside width="80px" :arrowShow="false">
32
+ <el-row type="flex" justify="center" align="middle" style="height: 100%">
33
+ <el-col :span="20">
34
+ <el-button @click="addSel()" style="width: 100%">{{$t('选择')}}</el-button>
35
+ <br/><br/>
36
+ <el-button @click="removeSel()" style="width: 100%">{{$t('移除')}}</el-button>
37
+ </el-col>
38
+ </el-row>
39
+ </ex-aside>
40
+ <el-main width="50%" :arrowShow="false">
41
+ <hd-grid :hdResult="hdResultRightSel" pageHide @selection-change="rightSelMe" recHide noSets
42
+ @row-dblclick="rightClick">
43
+ <div class="el-line">{{$t('已选')}}</div>
44
+ <el-table-column width="130px" align="left" header-align="center" label="名称" prop="name" sortable>
45
+ </el-table-column>
46
+ <el-table-column width="130px" align="left" header-align="center" label="部门" prop="orgnName" sortable>
47
+ </el-table-column>
48
+ <el-table-column width="130px" align="left" header-align="center" label="描述" prop="description" sortable>
49
+ </el-table-column>
50
+ </hd-grid>
51
+ </el-main>
52
+ </el-container>
53
+ </div>
54
+ </el-main>
55
+
56
+ </el-container>
57
+ </template>
58
+
59
+ <script>
60
+ import orgnselect from '../orgDept/orgnselect'
61
+
62
+
63
+ export default {
64
+ name: 'MsgRole',
65
+ components: {orgnselect},
66
+ data() {
67
+ return {
68
+ hdQuery: new HdQuery(this),
69
+ hdResultLeftSel: {rows: []},//左侧数据
70
+ hdResultRightSel: {rows: []},
71
+ leftSel: [], // check 左侧
72
+ rightSel: [], //
73
+ leftCheck: Object,
74
+ rightCheck: Object,
75
+ listLoading1: false,
76
+ listLoading2: false
77
+ }
78
+ },
79
+ // hdResult展示 hdQuery查询 defaultSort默认排序 pageHide true隐藏分页
80
+ props: {
81
+ msgId: String,
82
+ orgnIds: String
83
+ },
84
+ watch: {
85
+ msgId : function (newVal) {
86
+ this.initQuery()
87
+ }
88
+ },
89
+ methods: {
90
+ initQuery() {
91
+ this.$http.get(`/webresources/login/com/ComMsg/findRoleByMsgId/${this.msgId}`).then(response => {
92
+ this.hdResultRightSel.rows = response.data == null ? [] : response.data
93
+ })
94
+ },
95
+ doQuery() {
96
+ let excIds = ''
97
+ this.listLoading1 = true
98
+ for (let i = 0; i < this.hdResultRightSel.rows.length; i++) {
99
+ excIds += this.hdResultRightSel.rows[i].roleId + ','
100
+ }
101
+ this.hdQuery.query.excIds = excIds
102
+ this.$http.post(`/webresources/login/com/ComMsg/find/role`, this.hdQuery).then(response => {
103
+ this.listLoading1 = false
104
+ this.hdResultLeftSel = response.data
105
+ })
106
+ },
107
+ leftSelMe(select) {
108
+ this.leftSel = select
109
+ },
110
+ rightSelMe(select) {
111
+ this.rightSel = select
112
+ },
113
+ leftClick(row) {
114
+ this.hdResultRightSel.rows.push(row)
115
+ this.hdResultLeftSel.rows.remove(row)
116
+ this.leftSel.remove(row)
117
+ },
118
+ rightClick(row) {
119
+ this.hdResultRightSel.rows.remove(row)
120
+ this.hdResultLeftSel.rows.push(row)
121
+ this.rightSel.remove(row)
122
+ },
123
+ addSel() {
124
+ this.leftSel.forEach((value) => {
125
+ this.hdResultRightSel.rows.push(value)
126
+ this.hdResultLeftSel.rows.remove(value)
127
+ })
128
+ this.leftSel = []
129
+ },
130
+ removeSel() {
131
+ this.rightSel.forEach((value) => {
132
+ this.hdResultLeftSel.rows.push(value)
133
+ this.hdResultRightSel.rows.remove(value)
134
+ })
135
+ this.rightSel = []
136
+ },
137
+ getOrgIds() {
138
+ let excIds = ''
139
+ for (let i = 0; i < this.hdResultRightSel.rows.length; i++) {
140
+ excIds += this.hdResultRightSel.rows[i].roleId + ','
141
+ }
142
+ return excIds;
143
+ }
144
+ }
145
+ }
146
+ </script>
147
+ <style rel="stylesheet/scss" lang="scss">
148
+
149
+ </style>
@@ -0,0 +1,160 @@
1
+ <template>
2
+ <el-dialog title="编辑" :visible.sync="visible" width='80%' top="5vh">
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="CODE" prop="msgCode"
7
+ :rules="$r(0,0,36)">
8
+ <el-input type="text" v-model="hdform.msgCode"></el-input>
9
+ </el-form-item>
10
+ </el-col>
11
+ <el-col :span="8" :xs="16">
12
+ <el-form-item label="标题" prop="title"
13
+ :rules="$r(1,0,256)">
14
+ <el-input type="text" v-model="hdform.title"></el-input>
15
+ </el-form-item>
16
+ </el-col>
17
+ <el-col :span="8" :xs="16">
18
+ <el-form-item label="类型" prop="msgTypeCode" :rules="$r(1)">
19
+ <hd-drop field="MSG_TYPE" v-model="hdform.msgTypeCode" style="width: 100%"></hd-drop>
20
+ </el-form-item>
21
+ </el-col>
22
+ </el-row>
23
+ <el-row>
24
+ <el-col :span="24" :xs="16">
25
+ <el-form-item label="打开路径" prop="url"
26
+ :rules="$r(0,0,256)">
27
+ <el-input type="text" v-model="hdform.url"></el-input>
28
+ </el-form-item>
29
+ </el-col>
30
+ </el-row>
31
+ <el-row>
32
+ <el-col :span="24" :xs="16">
33
+ <el-form-item label="内容" prop="content" :rules="$r(0,0,4000)">
34
+ <el-input v-model="hdform.content" type="textarea"
35
+ :rows="3"></el-input>
36
+ </el-form-item>
37
+ </el-col>
38
+ </el-row>
39
+ <el-row>
40
+ <el-col :span="24">
41
+ <el-tabs type="border-card" v-model="hdform.msgWayCode">
42
+ <el-tab-pane :label="$t('按用户')" name="BY_USER">
43
+ <commsgtrans :orgnIds="hdform.sendIds" :msgId="hdform.msgId" ref="commsgtrans"></commsgtrans>
44
+ </el-tab-pane>
45
+ <el-tab-pane :label="$t('按角色')" name="BY_ROLE">
46
+ <commsgRole :orgnIds="hdform.sendIds" :msgId="hdform.msgId" ref="commsgRole"></commsgRole>
47
+ </el-tab-pane>
48
+ <el-tab-pane :label="$t('按组织')" name="BY_ORGN">
49
+ <commsgOrgn :orgnIds="hdform.sendIds" :msgId="hdform.msgId" ref="commsgOrgn"></commsgOrgn>
50
+ </el-tab-pane>
51
+ </el-tabs>
52
+ </el-col>
53
+ </el-row>
54
+ </el-form>
55
+ <div slot="footer" class="dialog-footer">
56
+ <el-button @click="visible = false">{{$t('取 消')}}</el-button>
57
+ <el-button type="primary" @click="submit" :loading="loading"> {{$t('确 定')}}</el-button>
58
+ </div>
59
+ </el-dialog>
60
+
61
+ </template>
62
+
63
+ <script>
64
+ import commsgtrans from './commsgtrans'
65
+ import commsgOrgn from './commsgOrgn'
66
+ import commsgRole from './commsgRole'
67
+ export default {
68
+ components: {commsgtrans, commsgOrgn, commsgRole},
69
+ name: 'commsgform',
70
+ data() {
71
+ return {
72
+ hdform: {
73
+ msgWayCode: 'BY_USER'
74
+ },
75
+ visible: false,
76
+ loading: false,
77
+ findUrl: ''
78
+ }
79
+ },
80
+ methods: {
81
+ show(msgId) { // 换为本表主键
82
+ // 弹窗重复使用时,清除校验项目
83
+ if (this.$refs['hdform']) {
84
+ this.$refs['hdform'].resetFields()
85
+ }
86
+ this.visible = true;
87
+ this.$http.get('/webresources/login/com/ComMsg/findone?msgId=' + msgId).then(response => {
88
+ console.log('show', this.hdform.msgWayCode);
89
+ const data = response.data
90
+ this.hdform = data
91
+ console.log('show', this.hdform.msgWayCode);
92
+ if (this.hdform.msgWayCode == null) {
93
+ this.hdform.msgWayCode = 'BY_USER';
94
+ }
95
+ this.$nextTick(()=>{
96
+ this.initFormContent(this.hdform.msgWayCode);
97
+ })
98
+ })
99
+ },
100
+
101
+ submit() {
102
+ this.$refs['hdform'].validate((valid) => {
103
+ if (!valid) {
104
+ return false
105
+ }
106
+ this.loading = true
107
+ this.hdform.sendIds = this.getOrgIds();
108
+ this.$http.post('/webresources/login/com/ComMsg/saveone', this.hdform).then(response => {
109
+ this.loading = false
110
+ const data = response.data
111
+ this.$message({
112
+ type: data.code == '-1' ? 'error' : 'success',
113
+ message: data.message
114
+ })
115
+ if (data.code == '-1') {
116
+ return
117
+ }
118
+ this.$emit('save-ok') // 主页面调用弹窗时添加
119
+ this.visible = false
120
+ }, error => {
121
+ this.visible = false
122
+ })
123
+ })
124
+ },
125
+ handleChange(value, direction, movedKeys) {
126
+ // console.log(value, direction, movedKeys);
127
+ },
128
+ initFormContent(val) {
129
+ if(val === 'BY_USER') {
130
+ this.$refs.commsgtrans.initQuery();
131
+ }
132
+ if(val === 'BY_ROLE') {
133
+ this.$refs.commsgRole.initQuery();
134
+ }
135
+ if(val === 'BY_ORGN') {
136
+ this.$refs.commsgOrgn.doQuery();
137
+ }
138
+ },
139
+ getOrgIds() {
140
+ const val = this.hdform.msgWayCode
141
+ if(val === 'BY_USER') {
142
+ return this.$refs.commsgtrans.getOrgIds();
143
+ }
144
+ if(val === 'BY_ROLE') {
145
+ return this.$refs.commsgRole.getOrgIds();
146
+ }
147
+ if(val === 'BY_ORGN') {
148
+ return this.$refs.commsgOrgn.getOrgIds();
149
+ }
150
+ }
151
+ },
152
+ watch: {
153
+ 'hdform.msgWayCode' : function (val) {
154
+ console.log('msgWayCode changed');
155
+ this.initFormContent(val)
156
+ }
157
+ }
158
+ }
159
+ </script>
160
+
@@ -0,0 +1,33 @@
1
+ <template>
2
+ <el-dialog title="查看" :fullscreen="true" :visible.sync="visible" width='100%' custom-class="dialog">
3
+ <iframe :src="iframeUrl" width="100%" :height="height"></iframe>
4
+ </el-dialog>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ data() {
10
+ return {
11
+ visible: false,
12
+ iframeUrl: "",
13
+ height:0
14
+ }
15
+ },
16
+ mounted() {
17
+ this.height = document.body.clientHeight-100
18
+ },
19
+ methods: {
20
+ show(url) { // 换为本表主键
21
+ console.log(this)
22
+ this.iframeUrl = url
23
+ this.visible = true;
24
+ },
25
+ }
26
+ }
27
+ </script>
28
+
29
+ <style rel="stylesheet/scss" lang="scss" scoped>
30
+ .el-dialog {
31
+ height: 100%;
32
+ }
33
+ </style>
@@ -0,0 +1,120 @@
1
+ <template>
2
+ <el-container>
3
+ <el-main>
4
+
5
+ <hd-com-grid :hdQuery="hdQuery" :pageSizes="[100,500,1000,5000,10000]" @cell-click="cellClick"
6
+ @row-dblclick="showMsg" findUrl="/webresources/login/com/ComMsg/find/rec" notInit recHide ref="grid"
7
+ visualScroll>
8
+
9
+ <div class="filter-container" slot="query">
10
+ <el-input :placeholder="$t('名称')" @keyup.enter.native="$refs.grid.doQuery()" class="filter-item"
11
+ style="width: 200px;"
12
+ v-model="hdQuery.query.anyQuery">
13
+ </el-input>
14
+ <el-radio-group @change="$refs.grid.doQuery()" size="mini" v-model="hdQuery.query.readFlg">
15
+ <el-radio-button label="">{{$t('全部')}}</el-radio-button>
16
+ <el-radio-button label="0">{{$t('未读')}}</el-radio-button>
17
+ <el-radio-button label="1">{{$t('已读')}}</el-radio-button>
18
+ </el-radio-group>
19
+ <hd-drop class="filter-item" field="MSG_TYPE" style="width: 180px;" v-model="hdQuery.query.msgType"></hd-drop>
20
+ <el-date-picker :end-placeholder="$t('结束日期')" :start-placeholder="$t('开始日期')" class="filter-item"
21
+ format="yyyy-MM-dd HH:mm"
22
+ range-separator="-" style="width: 350px;"
23
+ type="datetimerange" v-model="hdQuery.query.recTime"
24
+ value-format="yyyy-MM-dd HH:mm"></el-date-picker>
25
+ <el-button @click="$refs.grid.doQuery()" class="filter-item" icon="search" type="primary">{{$t('搜索')}}
26
+ </el-button>
27
+ <el-button @click="readMessage()" class="filter-item" type="success">{{$t('读取')}}
28
+ </el-button>
29
+ </div>
30
+ <el-table-column align="center" label="标题" prop="title" sortable width="150px">
31
+ </el-table-column>
32
+ <el-table-column align="center" label="类型" prop="msgTypeName" width="150px">
33
+ </el-table-column>
34
+ <el-table-column align="center" label="内容" prop="content" sortable width="600px">
35
+ </el-table-column>
36
+ <el-table-column align="center" label="打开路径" prop="url" sortable width="150px">
37
+ </el-table-column>
38
+ <el-table-column align="center" label="发送人" prop="sendNam" sortable width="100px">
39
+ </el-table-column>
40
+ <el-table-column :inputProp="$date" align="center" input="el-date-picker" label="发送时间" noEdit prop="sendTim"
41
+ sortable
42
+ width="130px">
43
+ </el-table-column>
44
+ <el-table-column :inputProp="$date" align="center" input="el-date-picker" label="读取时间" noEdit prop="redTim"
45
+ sortable
46
+ width="130px">
47
+ </el-table-column>
48
+ </hd-com-grid>
49
+ </el-main>
50
+ <commsgtoform @save-ok="$refs.grid.doQuery()" ref="commsgtoform"></commsgtoform>
51
+ <commsgiframe ref="commsgiframe"></commsgiframe>
52
+ </el-container>
53
+ </template>
54
+ <script>
55
+ import commsgtoform from './commsgtoform'
56
+ import commsgiframe from './commsgiframe'
57
+
58
+ export default {
59
+ components: {commsgtoform, commsgiframe},
60
+
61
+ data() {
62
+ return {
63
+ hdQuery: new HdQuery(this)
64
+ }
65
+ },
66
+
67
+ mounted() {
68
+ this.hdQuery.sort = 'sendTim'
69
+ this.$refs.grid.doQuery()
70
+ this.$set(this.hdQuery.query, 'readFlg', '0')
71
+ },
72
+ methods: {
73
+ showMsg(row) {
74
+ this.$refs['commsgtoform'].show(row.recId)
75
+ },
76
+ readMessage() {
77
+ const checkRows = this.$refs.grid.$refs.hdgrid.getCkRows()
78
+ if (checkRows.length < 1) {
79
+ this.$message({type: 'error', message: this.$t('请先选择消息!')})
80
+ return;
81
+ }
82
+ this.$http.post('/webresources/login/com/ComMsg/batch/read', checkRows).then(response => {
83
+ var data = response.data;
84
+ if (data.code == '1') {
85
+ this.$message({
86
+ type: 'success',
87
+ message: data.message
88
+ })
89
+ this.$store.state.user.messageNum = response.data.data;
90
+ this.$refs.grid.doQuery();
91
+ } else {
92
+ this.$message({
93
+ type: 'error',
94
+ message: data.message
95
+ })
96
+ }
97
+
98
+
99
+ })
100
+ },
101
+ cellClick(row, column) {
102
+ if (column.property == 'url') {
103
+ this.openUrl(row.url)
104
+ }
105
+ },
106
+ openUrl(path) {//这里必须是全局的
107
+ if (path.indexOf('http://') == 0 || path.indexOf('https://') == 0) {//http开头的在新窗口打开
108
+ window.open(path);
109
+ } else if (path.indexOf('iframe://') == 0) {
110
+ this.$refs['commsgiframe'].show(path.substring(9));
111
+ } else {
112
+ this.$router.push({
113
+ path: path,
114
+ });
115
+ }
116
+ }
117
+ }
118
+ }
119
+
120
+ </script>