@gonsin/gview 1.0.1-alpha.1 → 1.0.2-alpha.0

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 (71) hide show
  1. package/dist/fonts/element-icons.313f7dac.woff +0 -0
  2. package/dist/fonts/element-icons.45201881.ttf +0 -0
  3. package/dist/index.js +335 -0
  4. package/package.json +8 -2
  5. package/.browserslistrc +0 -2
  6. package/babel.config.js +0 -6
  7. package/postcss.config.js +0 -5
  8. package/public/css/theme/animate.min.css +0 -7
  9. package/public/css/theme/brownishTheme.css +0 -10
  10. package/public/css/theme/coffeeTheme.css +0 -10
  11. package/public/css/theme/cyanTheme.css +0 -10
  12. package/public/css/theme/defaultTheme.css +0 -10
  13. package/public/css/theme/greenTheme.css +0 -16
  14. package/public/css/theme/greyTheme.css +0 -10
  15. package/public/css/theme/orangeTheme.css +0 -10
  16. package/public/css/theme/purpleTheme.css +0 -10
  17. package/public/css/theme/skyblueTheme.css +0 -10
  18. package/public/favicon.ico +0 -0
  19. package/public/imgs/antOutline-border.png +0 -0
  20. package/public/imgs/bg.png +0 -0
  21. package/public/imgs/logo.png +0 -0
  22. package/public/imgs/menu.png +0 -0
  23. package/public/index.html +0 -17
  24. package/src/App.vue +0 -143
  25. package/src/api/api.js +0 -28
  26. package/src/api/index.js +0 -31
  27. package/src/api/request.js +0 -210
  28. package/src/assets/font/font.scss +0 -12
  29. package/src/assets/font/font_dev.scss +0 -12
  30. package/src/assets/font/icon.scss +0 -179
  31. package/src/assets/images/svg/color.svg +0 -1
  32. package/src/assets/logo.png +0 -0
  33. package/src/assets/scss/common.scss +0 -338
  34. package/src/assets/scss/themeColor.scss +0 -35
  35. package/src/components/MyDialog.vue +0 -251
  36. package/src/components/MyForm.vue +0 -324
  37. package/src/components/MyFormAutocomplete.vue +0 -135
  38. package/src/components/MyFormCascader.vue +0 -107
  39. package/src/components/MyFormCheckBox.vue +0 -67
  40. package/src/components/MyFormEditor.vue +0 -85
  41. package/src/components/MyFormInput.vue +0 -68
  42. package/src/components/MyFormLine.vue +0 -49
  43. package/src/components/MyFormRadio.vue +0 -92
  44. package/src/components/MyFormSelect.vue +0 -122
  45. package/src/components/MyFormSelectDate.vue +0 -72
  46. package/src/components/MyFormSelectDateTime.vue +0 -82
  47. package/src/components/MyFormSelectTime.vue +0 -84
  48. package/src/components/MyFormSwitch.vue +0 -60
  49. package/src/components/MyFormTag.vue +0 -67
  50. package/src/components/MyFormTree.vue +0 -137
  51. package/src/components/MyFormUploads.vue +0 -91
  52. package/src/components/MyHeader.vue +0 -176
  53. package/src/components/MyMenus.vue +0 -150
  54. package/src/components/MyPageHeader.vue +0 -344
  55. package/src/components/MyTab.vue +0 -69
  56. package/src/components/MyTable.vue +0 -245
  57. package/src/components/Templatess.vue +0 -630
  58. package/src/index.js +0 -23
  59. package/src/main.js +0 -86
  60. package/src/router.js +0 -52
  61. package/src/store/index.js +0 -71
  62. package/src/utils/common.js +0 -96
  63. package/src/utils/permission.js +0 -36
  64. package/src/views/GView.vue +0 -185
  65. package/src/views/Home.vue +0 -26
  66. package/src/views/Login.vue +0 -249
  67. package/src/websocket/test.js +0 -140
  68. package/src/websocket/websocket.js +0 -141
  69. package/src/websocket/websocket1.js +0 -117
  70. package/src/websocket/websocket2.js +0 -128
  71. package/vue.config.js +0 -50
@@ -1,344 +0,0 @@
1
- <!--
2
- * @Author: your name
3
- * @Date: 2022-04-22 15:51:20
4
- * @LastEditTime: 2022-11-22 16:56:33
5
- * @LastEditors: lrm lrm@gonsin.cn
6
- * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
7
- * @FilePath: \client\src\components\MyPageHeader.vue
8
- -->
9
-
10
- <template>
11
- <header class="wrapper_header header">
12
- <div class="logo-title">
13
- <!-- <span>{{ roomsName }}</span> -->
14
- GView
15
- </div>
16
- <div id="icon" @click="collapseHandler">
17
- <img
18
- src="../.././public/imgs/menu.png"
19
- alt
20
- :class="Collapse ? 'img_rotate' : 'img_no_rotate'"
21
- />
22
- </div>
23
- <div class="right">
24
- <!-- <el-dropdown trigger="click">
25
- <img
26
- src="../assets/images/svg/color.svg"
27
- width="20"
28
- height="20"
29
- alt=""
30
- style="margin-right: 15px"
31
- />
32
- <el-dropdown-menu slot="dropdown">
33
- <el-dropdown-item
34
- v-for="(item, index) in themeList"
35
- :key="index"
36
- @click.native="handlePicker(item)"
37
- >{{ item.name }}</el-dropdown-item
38
- >
39
- </el-dropdown-menu>
40
- </el-dropdown> -->
41
- <!-- <el-badge class="item">
42
- <i
43
- class="el-icon-message"
44
- @click="$router.push({ path: '/showEmail' })"
45
- ></i>
46
- </el-badge> -->
47
- <i id="user_icon" class="el-icon-user" @click="handelUser"></i>
48
- <!-- vue过渡动画 -->
49
- <transition name="slide-fade">
50
- <ul class="user_ul" v-show="isShow === true">
51
- <!-- <li @click="handleUserInfo">
52
- <i class="el-icon-user"></i>
53
- <span>用户信息</span>
54
- </li> -->
55
- <!-- <li @click="handleShare">
56
- <i class="el-icon-share"></i>
57
- <span>分享链接</span>
58
- </li> -->
59
- <!-- <li
60
- @click="handleCopySystem"
61
- v-if="user.admin"
62
- v-loading.fullscreen.lock="fullscreenLoading"
63
- >
64
- <i class="el-icon-user"></i>
65
- <span>备份系统</span>
66
- </li> -->
67
- <li @click="handleLogout">
68
- <i class="el-icon-unlock"></i>
69
- <span>退出登录</span>
70
- </li>
71
- </ul>
72
- </transition>
73
- </div>
74
- </header>
75
- </template>
76
-
77
- <script>
78
- import { mapState } from "vuex";
79
- import { setLogin,closeWebsocket } from "../websocket/test";
80
- export default {
81
- props: {},
82
- components: {},
83
- computed: {
84
- ...mapState({
85
- Collapse: (state) => state.isCollapse,
86
- // unreadMessagesTotal: (state) => state.unreadMessageTotal,
87
- // roomsName: (state) => state.globalSystem.title,
88
- }),
89
- },
90
- data() {
91
- return {
92
- fullscreenLoading: false, //全局loading
93
- isShow: false,
94
- // logoutURL: "/api/logout", // 登出
95
- currentColor: localStorage.getItem("currentColor")
96
- ? localStorage.getItem("currentColor")
97
- : "defaultTheme",
98
- themeList: [
99
- {
100
- label: "defaultTheme",
101
- name: "默认",
102
- },
103
- {
104
- label: "greenTheme",
105
- name: "绿色",
106
- },
107
- {
108
- label: "cyanTheme",
109
- name: "青色",
110
- },
111
- {
112
- label: "orangeTheme",
113
- name: "橙色",
114
- },
115
- {
116
- label: "coffeeTheme",
117
- name: "咖啡",
118
- },
119
- {
120
- label: "greyTheme",
121
- name: "浅灰色",
122
- },
123
- {
124
- label: "skyblueTheme",
125
- name: "天蓝色",
126
- },
127
- {
128
- label: "brownishTheme",
129
- name: "酒红色",
130
- },
131
- {
132
- label: "purpleTheme",
133
- name: "紫色",
134
- },
135
- ],
136
- user: JSON.parse(sessionStorage.getItem("user")),
137
- };
138
- },
139
- mounted() {
140
-
141
- },
142
- methods: {
143
- handleUserInfo() {},
144
- // fullscreenLoading() {},
145
- handleLogout() {
146
- this.$confirm("您是否要退出登录?", "提示", {
147
- confirmButtonText: "确定",
148
- cancelButtonText: "取消",
149
- type: "warning",
150
- }).then(() => {
151
- this.$message({
152
- type: "success",
153
- message: "退出登录",
154
- });
155
- sessionStorage.removeItem("user");
156
- sessionStorage.removeItem("roomsInfo")
157
- setLogin(false)
158
- closeWebsocket()
159
- this.$router.push({
160
- path: "/login",
161
- });
162
- // this.getRequest(this.$url.logoutUrl).then(() => {
163
- // this.$message({
164
- // type: "success",
165
- // message: "退出登录",
166
- // });
167
- // sessionStorage.removeItem("user");
168
- // sessionStorage.removeItem("roomsInfo")
169
-
170
- // this.$router.push({
171
- // path: "/login",
172
- // });
173
- // // this.$store.state.websocket.close();
174
- // });
175
- });
176
- },
177
- collapseHandler() {
178
- this.$store.commit("Collapse");
179
-
180
- },
181
- handelUser() {
182
- this.isShow = !this.isShow;
183
- },
184
- /**
185
- * @description: 颜色选择
186
- * @param {type}
187
- * @return:
188
- */
189
- handlePicker(item) {
190
- localStorage.setItem("currentColor", item.label);
191
- location.reload();
192
- },
193
- handleCopySystem() {},
194
- },
195
- };
196
- </script>
197
- <style lang="scss" scoped>
198
- .wrapper_header {
199
- width: 100%;
200
- // height: 60px;
201
- height: 60px;
202
- background-color: #3e99f6;
203
- box-sizing: border-box;
204
- position: relative;
205
- z-index: 1;
206
- .logo-title {
207
- width: 200px;
208
- font-family: "微软雅黑";
209
- font-size: 24px;
210
- line-height: 60px;
211
- color: #fff;
212
- text-align: center;
213
- overflow: hidden;
214
- text-overflow: ellipsis;
215
- white-space: nowrap;
216
- }
217
-
218
- #icon {
219
- width: 20px;
220
- height: 20px;
221
- display: inline-block;
222
- position: absolute;
223
- top: 50%;
224
- transform: translateY(-50%);
225
- left: 200px;
226
- cursor: pointer;
227
-
228
- img {
229
- width: 100%;
230
- }
231
-
232
- .img_rotate {
233
- transform: rotate(90deg);
234
- transition: all 0.3s;
235
- }
236
-
237
- .img_no_rotate {
238
- transform: rotate(0);
239
- transition: all 0.3s;
240
- }
241
- }
242
-
243
- .right {
244
- position: absolute;
245
- top: 50%;
246
- right: 30px;
247
- transform: translateY(-50%);
248
- height: 60px;
249
- display: flex;
250
- align-items: center;
251
-
252
- i {
253
- font-size: 20px;
254
- color: #fff;
255
- cursor: pointer;
256
- }
257
-
258
- #user_icon {
259
- margin-left: 15px;
260
- transition: all 0.3s;
261
- position: relative;
262
- }
263
-
264
- .user_ul {
265
- position: absolute;
266
- width: 250px;
267
- text-align: left;
268
- background-color: #fff;
269
- top: 30px;
270
- right: -10px;
271
- padding: 10px 15px;
272
- box-sizing: border-box;
273
- border-radius: 3px;
274
- box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
275
- li {
276
- display: block;
277
- width: 100%;
278
- height: 40px;
279
-
280
- i,
281
- span {
282
- line-height: 40px;
283
- font-size: 14px;
284
- color: #7a878e;
285
- }
286
-
287
- span {
288
- margin-left: 15px;
289
- font-size: 12px;
290
- }
291
- }
292
-
293
- li:hover {
294
- background-color: rgba(0, 0, 0, 0.05);
295
- transition: all 0.3s;
296
- cursor: pointer;
297
- }
298
- }
299
-
300
- #user_icon:hover {
301
- transition: all 0.3s;
302
- color: #ccc;
303
- }
304
- }
305
- }
306
- </style>
307
-
308
- <style lang="scss">
309
- /** 拷贝的字体图标 */
310
- // @font-face {
311
- // font-family: "iconfont"; /* project id 1978833 */
312
- // src: url("//at.alicdn.com/t/font_1978833_h88nwlpvtfr.eot");
313
- // src: url("//at.alicdn.com/t/font_1978833_h88nwlpvtfr.eot?#iefix")
314
- // format("embedded-opentype"),
315
- // url("//at.alicdn.com/t/font_1978833_h88nwlpvtfr.woff2") format("woff2"),
316
- // url("//at.alicdn.com/t/font_1978833_h88nwlpvtfr.woff") format("woff"),
317
- // url("//at.alicdn.com/t/font_1978833_h88nwlpvtfr.ttf") format("truetype"),
318
- // url("//at.alicdn.com/t/font_1978833_h88nwlpvtfr.svg#iconfont")
319
- // format("svg");
320
- // }
321
- .iconfont {
322
- margin-right: 10px;
323
- font-family: "iconfont" !important;
324
- line-height: 60px;
325
- font-style: normal;
326
- -webkit-font-smoothing: antialiased;
327
- -webkit-text-stroke-width: 0.2px;
328
- -moz-osx-font-smoothing: grayscale;
329
- }
330
-
331
- .slide-fade-enter-active {
332
- transition: all 0.3s ease;
333
- }
334
-
335
- .slide-fade-leave-active {
336
- transition: all 0.4s cubic-bezier(1, 0.5, 0.8, 1);
337
- }
338
-
339
- .slide-fade-enter,
340
- .slide-fade-leave-to {
341
- transform: translateX(10px);
342
- opacity: 0;
343
- }
344
- </style>
@@ -1,69 +0,0 @@
1
- <!--
2
- * @Author: lrm lrm@gonsin.cn
3
- * @Date: 2022-11-02 09:37:58
4
- * @LastEditors: lrm lrm@gonsin.cn
5
- * @LastEditTime: 2022-11-07 17:30:27
6
- * @FilePath: \client\src\components\MyTab.vue
7
- * @Description:
8
- *
9
- * Copyright (c) 2022 by lrm lrm@gonsin.cn, All Rights Reserved.
10
- -->
11
- <template>
12
- <div class="my_tab" ref="my_tab">
13
- <el-tabs v-model="currentTabTitle" type="border-card" @tab-click="handleClick">
14
- <el-tab-pane v-for="tab in tabs"
15
- :key="tab.title"
16
- :label="tab.title"
17
- :name="tab.title"
18
- class="my_tab_item"
19
- :lazy="true"
20
- >
21
- <templatess
22
- :viewName="tab.title"
23
- :board="tab.board"
24
- ></templatess>
25
- </el-tab-pane>
26
- </el-tabs>
27
- </div>
28
- </template>
29
-
30
- <script>
31
-
32
- export default {
33
- name: "myTab",
34
- components: {
35
- templatess: () => import('../components/Templatess.vue')
36
- },
37
- props: {
38
- tabs: {
39
- type: Array,
40
- default: () => []
41
- }
42
- },
43
- data() {
44
- return {
45
- currentTabTitle: this.tabs[0].title,
46
- formData: {}, // 表单数据
47
- dataList: [], // 表格数据
48
- }
49
- },
50
- methods: {
51
- handleClick(tab, event) {
52
- // console.log(tab);
53
- }
54
- }
55
- }
56
- </script>
57
-
58
- <style lang="scss" scoped>
59
- .my_tab {
60
- flex: 1;
61
- position: relative;
62
- margin-top: 20px;
63
- margin-bottom: 20px;
64
-
65
- .my_tab_item {
66
- height: 100%;
67
- }
68
- }
69
- </style>
@@ -1,245 +0,0 @@
1
- <!--
2
- * @Author: your name
3
- * @Date: 2022-04-22 11:44:31
4
- * @LastEditTime: 2022-12-01 11:27:46
5
- * @LastEditors: lrm lrm@gonsin.cn
6
- * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
7
- * @FilePath: \client\src\components\MyTable.vue
8
- -->
9
- <template>
10
- <div class="my_table" ref="my_table">
11
- <div class="heads" ref="heads">
12
- <el-table
13
- :data="list"
14
- style="width: 100%"
15
- :height="tableHeight"
16
- v-if="show"
17
- ref="multipleTable"
18
- @selection-change="handleSelectionChange"
19
- >
20
- <el-table-column type="selection" width="55"> </el-table-column>
21
- <el-table-column
22
- v-for="(column, idx) in data.columns"
23
- :key="column.idx"
24
- :index="idx"
25
- :prop="column.keyName"
26
- :label="column.name"
27
- >
28
- <template slot-scope="scope">
29
- <div v-if="column.columnType == 'DATE'">
30
- {{ returnDateValue(column, scope.row[column.keyName]) }}
31
- </div>
32
- <div v-else-if="column.columnType == 'BUTTONS'">
33
- <el-button
34
- type="text"
35
- v-for="(btns, indexss) in column.buttons"
36
- v-if="handleShowIf(scope.row, btns.showIf)"
37
- :key="indexss"
38
- @click="btnReturn(scope.row, btns)"
39
- >{{ btns.name }}</el-button
40
- >
41
- </div>
42
- <div v-else-if="column.columnType == 'IMAGE'">
43
- <el-image
44
- style="width: 80px; height: 80px"
45
- :src="imageReturn(column, scope.row)"
46
- :preview-src-list="[imageReturn(column, scope.row)]"
47
- />
48
- </div>
49
- <div v-else-if="column.columnType == 'QR_CODE'">
50
- <!-- {{ returnValue(column, scope.row) }} -->
51
- <!-- <vue-qr :text="returnValue(column, scope.row)" :size="80" :margin="5" /> -->
52
- </div>
53
- <div v-else-if="column.columnType == 'TEXT' || column.columnType == 'ENUMS'">
54
- {{ returnValue(column, scope.row) }}
55
- </div>
56
- </template>
57
- </el-table-column>
58
- </el-table>
59
- </div>
60
-
61
- <div class="bottom" v-if="list.length !=0">
62
- <el-pagination
63
- @size-change="handleSizeChange"
64
- @current-change="handleCurrentChange"
65
- :current-page="pagination.page+1"
66
- :page-sizes="[10, 20, 30, 50]"
67
- :page-size="pagination.count"
68
- layout="total, sizes, prev, pager, next, jumper"
69
- :total="pagination.totalCount"
70
- >
71
- </el-pagination>
72
- </div>
73
- </div>
74
- </template>
75
-
76
- <script>
77
- import moment from 'moment';
78
- import Mustache from 'mustache'
79
- import { vFun } from '../utils/common'
80
- // import VueQr from 'vue-qr'
81
-
82
-
83
- export default {
84
- name: "myTable",
85
- props: {
86
- data: {
87
- type: Object,
88
- },
89
- list: {
90
- type: Array,
91
- },
92
- propsPagination: {
93
- type: Object,
94
- },
95
- },
96
- // components: { VueQr },
97
- watch: {
98
- propsPagination: {
99
- handler: function (newModel, oldModel) {
100
- // console.log('newModel',newModel)
101
- // console.log(parseInt(newModel.page)+1)
102
- this.pagination = newModel;
103
- // this.pagination.page = parseInt(newModel.page)+1;
104
- // this.pagination.totalCount = parseInt(newModel.totalCount);
105
- // this.pagination.count = parseInt(newModel.count);
106
- // this.pagination.page = parseInt(this.pagination.page)+1;
107
- },
108
- deep: true,
109
- },
110
- },
111
- data() {
112
- return {
113
- tableHeight: "400",
114
- show: false,
115
- currentPage4: 1,
116
- sum: 1,
117
- pagination:{
118
- page:0,
119
- totalCount:0,
120
- count:0,
121
- },
122
- item: {
123
- }
124
- };
125
- },
126
- mounted() {
127
- // this.$nextTick(()=>{
128
- // console.log( parseInt(window
129
- // .getComputedStyle(this.$refs.heads)
130
- // .height.replace("px", ""))-50)
131
- // // this.tableHeight = 825;
132
- // this.tableHeight = parseInt(window
133
- // .getComputedStyle(this.$refs.heads)
134
- // .height.replace("px", "")-50);
135
- // this.show = true;
136
- // })
137
- // console.log( parseInt(window
138
- // .getComputedStyle(this.$refs.heads)
139
- // .height.replace("px", "")))
140
- // this.tableHeight = 893;
141
- // this.tableHeight = parseInt(
142
- // window.getComputedStyle(this.$refs.heads).height.replace("px", "") -
143
- // 50
144
- // );
145
- this.show = true;
146
- },
147
- methods: {
148
- //返回列表的日期
149
- returnDateValue(column, target){
150
- return moment(target).format(column.format)
151
- },
152
- //返回列表的值
153
- returnValue(column, row) {
154
- if (column.enums == null || column.enums == '') {
155
- if (column.value != "") {
156
- let result = Mustache.render(column.value, { item: row })
157
- return result
158
- } else if (column.value == "") {
159
- return row[column.keyName]
160
- }
161
- } else if (column.enums != null) {
162
- let arr = column.enums;
163
- let targetArr = arr.filter((element) => {
164
- if (element.value == row[column.keyName].toString()) {
165
- return element;
166
- }
167
- });
168
- if (targetArr.length != 0) {
169
- return targetArr[0].text;
170
- } else {
171
- return row[column.keyName];
172
- }
173
- }
174
- },
175
- imageReturn(column, row) {
176
- if (column.columnType == 'QR_CODE') {
177
- let result = Mustache.render(column.value, { item: row })
178
- return result
179
- } else {
180
- return row[column.keyName]
181
- }
182
- },
183
- //返回列表的操作
184
- btnReturn(row, action) {
185
- this.$emit("returnAction", row, action);
186
- },
187
- //返回有变化的选项
188
- handleSelectionChange(e) {
189
- this.$emit("returnSelect", e);
190
- },
191
- //列表的分页的每页数量
192
- handleSizeChange(val) {
193
- console.log(`每页 ${val} 条`);
194
- let model = this.pagination;
195
- model.count = val;
196
- model.page = 0;
197
- this.$emit("returnProps", model);
198
- },
199
- //列表分页的当前页面
200
- handleCurrentChange(val) {
201
- console.log(`当前页: ${val}`);
202
- let model = this.pagination;
203
- model.page = parseInt(val) - 1;
204
- this.$emit("returnProps", model);
205
- },
206
- handleShowIf(row, showIf) {
207
- const v = vFun
208
- if (showIf != null && showIf != "1") {
209
- let result, evalResult
210
- try {
211
- result = Mustache.render(showIf, { item: row })
212
- evalResult = eval(result)
213
- } catch (e) {
214
- console.warn(e);
215
- }
216
- // return true
217
- return eval(evalResult)
218
- } else {
219
- return true
220
- }
221
- }
222
- },
223
- };
224
- </script>
225
- <style lang="scss" scoped>
226
- .my_table {
227
- flex: 1;
228
- position: relative;
229
- margin-bottom: 50px;
230
- // display: flex;
231
- // flex-direction: column;
232
- .heads {
233
- height: 100%;
234
- }
235
- .bottom {
236
- height: 32px;
237
- position: fixed;
238
- bottom: 9px;
239
- right: 30px;
240
- width: 100%;
241
- // background:#ffffff;
242
- text-align: right;
243
- }
244
- }
245
- </style>