system-clients 3.1.94-aode → 3.1.96

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 (77) hide show
  1. package/.eslintrc.js +16 -16
  2. package/.gradle/{5.5 → 5.2.1}/gc.properties +0 -0
  3. package/{dist/static/.gitkeep → .gradle/buildOutputCleanup/built.bin} +0 -0
  4. package/.gradle/buildOutputCleanup/cache.properties +2 -2
  5. package/.gradle/buildOutputCleanup/cache.properties.lock +1 -0
  6. package/SystemClient.iml +1 -1
  7. package/build/webpack.base.conf.js +17 -14
  8. package/package.json +4 -4
  9. package/src/components/Main.vue +622 -508
  10. package/src/components/TabButton.vue +201 -0
  11. package/src/components/Tabs.vue +67 -0
  12. package/src/components/equipment/EquipmentManage.vue +65 -65
  13. package/src/components/equipment/PcAdd.vue +5 -5
  14. package/src/components/equipment/PcList.vue +5 -5
  15. package/src/components/equipment/PhoneAdd.vue +4 -4
  16. package/src/components/equipment/PhoneList.vue +4 -4
  17. package/src/components/equipment/PosAdd.vue +323 -137
  18. package/src/components/equipment/PosList.vue +294 -164
  19. package/src/components/equipment/PosManage.vue +138 -67
  20. package/src/components/equipment/PosManageBoth.vue +125 -0
  21. package/src/components/equipment/PosParamAdd.vue +236 -0
  22. package/src/components/equipment/PosParamList.vue +121 -0
  23. package/src/components/equipment/PosParamManage.vue +51 -0
  24. package/src/components/parammanage/ParamManage.vue +2 -2
  25. package/src/components/parammanage/ParamPage.vue +7 -7
  26. package/src/components/parammanage/SinglePage.vue +4 -4
  27. package/src/components/server/ImageVieweTest.vue +56 -0
  28. package/src/components/server/ImageViewer.vue +350 -0
  29. package/src/components/server/Login.vue +70 -47
  30. package/src/components/server/PcdBuildingSelect.vue +241 -0
  31. package/src/components/server/ResSelect.vue +5 -0
  32. package/src/components/server/ResSelectGroup.vue +155 -118
  33. package/src/components/server/RightTree.vue +262 -257
  34. package/src/plugins/GetLoginInfoService.js +514 -514
  35. package/src/styles/less/aofeng/standard.less +446 -60
  36. package/src/styles/less/aofeng/themeOne/BinaryTemplate.less +13 -13
  37. package/src/styles/less/aofeng/themeOne/systemStyle.less +18 -18
  38. package/src/styles/less/manageStyle/manageStyle/manageChile.less +180 -0
  39. package/src/styles/less/manageStyle/manageStyle/manageStyle.less +1102 -0
  40. package/src/styles/less/manageStyle/manageStyle/safeStyle.less +498 -0
  41. package/src/styles/less/tables.less +50 -0
  42. package/src/styles/less/type.less +16 -3
  43. package/src/styles/less/variables.less +6 -3
  44. package/src/system.js +93 -83
  45. package/static/{ewmlogo.png → logo.png} +0 -0
  46. package/static/newStyle/about-us.png +0 -0
  47. package/yarn-error.log +6896 -0
  48. package/.gradle/5.5/fileChanges/last-build.bin +0 -0
  49. package/.gradle/5.5/fileHashes/fileHashes.lock +0 -0
  50. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  51. package/.npmignore +0 -10
  52. package/build/.npmignore +0 -1
  53. package/dist/static/batchleft.png +0 -0
  54. package/dist/static/batchright.png +0 -0
  55. package/dist/static/bluemainbg.jpg +0 -0
  56. package/dist/static/huangtengbiaozhi.png +0 -0
  57. package/dist/static/login_bg.jpg +0 -0
  58. package/dist/static/login_title.png +0 -0
  59. package/dist/static/login_title1.png +0 -0
  60. package/dist/static/loginbg.jpg +0 -0
  61. package/dist/static/loginlogo.png +0 -0
  62. package/dist/static/main_logo.png +0 -0
  63. package/dist/static/mainbg.jpg +0 -0
  64. package/dist/static/menulogo.png +0 -0
  65. package/dist/static/newmainbg.jpg +0 -0
  66. package/dist/static/psicon.png +0 -0
  67. package/dist/static/singleleft.png +0 -0
  68. package/dist/static/singleright.png +0 -0
  69. package/dist/static/treeopen.png +0 -0
  70. package/dist/static/treeout.png +0 -0
  71. package/dist/static/treeset.png +0 -0
  72. package/dist/static/usericon.png +0 -0
  73. package/dist/static/xinxi.png +0 -0
  74. package/package-lock.json +0 -10507
  75. package/src/.npmignore +0 -1
  76. package/static/aodelogo.png +0 -0
  77. package/static/aodenewlogo.png +0 -0
@@ -0,0 +1,201 @@
1
+ <template>
2
+ <div class='flex foot_tabset1'>
3
+ <!-- Nav tabs -->
4
+ <ul class="nav nav-{{navStyle}}" role="tablist" style="margin-left: 1%">
5
+ <li style="margin-right: 10px;height: 100%"
6
+ :id="'vc-tabset-li-'+attach +'-'+$index"
7
+ v-for="r in renderData"
8
+ @click.prevent="handleTabListClick($index, r)"
9
+ :disabled="r.disabled"
10
+ >
11
+ <button v-if="button" class="button_new" style="width: max-content" v-bind:class="{
12
+ 'btn-succ': ($index === active),
13
+ 'disabled': r.disabled
14
+ }">
15
+ <slot name="header">
16
+ {{ r.header }}
17
+ </slot>
18
+ <!-- 关闭按钮 -->
19
+ <span class="glyphicon glyphicon-remove" style="margin-left: 15px;" @click="deletetTab(r)" v-if="close"
20
+ :id="'vc-tabset-close-'+attach +'-'+$index"></span>
21
+ </button>
22
+ <span v-if="!button" v-bind:class="{
23
+ 'span-active': ($index === active),
24
+ 'span-disable': ($index !== active)
25
+ }">
26
+ <slot name="header">
27
+ {{ r.header }}
28
+ </slot>
29
+ <!-- 关闭按钮 -->
30
+ <span class="glyphicon glyphicon-remove" style="margin-left: 15px;" @click="deletetTab(r)" v-if="close"
31
+ :id="'vc-tabset-close-'+attach +'-'+$index"></span>
32
+ </span>
33
+
34
+ </li>
35
+ </ul>
36
+
37
+ <!-- Tab panes -->
38
+ <div class="tab-content span" v-el:tab-content>
39
+ <slot></slot>
40
+ </div>
41
+ </div>
42
+ </template>
43
+
44
+ <script>
45
+ import {remove} from 'vue-client/src/stores/Remove.js'
46
+
47
+ export default {
48
+ props: {
49
+ navStyle: {
50
+ type: String,
51
+ default: 'tabs'
52
+ },
53
+ effect: {
54
+ type: String,
55
+ default: 'fadein'
56
+ },
57
+ active: {
58
+ type: Number,
59
+ default: 0
60
+ },
61
+ close: {
62
+ type: Boolean,
63
+ default: false
64
+ },
65
+ button: {
66
+ type: Boolean,
67
+ default: true
68
+ },
69
+ attach: {
70
+ type: String,
71
+ default: 'vuestrap'
72
+ },
73
+ content: {}
74
+ },
75
+ ready() {
76
+ remove.$on('remove', (name) => {
77
+ console.log('tabset收$on 到的名字为:', name)
78
+ this.$removeTab(name)
79
+ })
80
+ },
81
+ data() {
82
+ return {
83
+ // 数据格式:{comp, header,disabled}
84
+ // - comp: 当前页签对应的tab组件
85
+ renderData: []
86
+ }
87
+ },
88
+ methods: {
89
+ handleTabListClick(index, el) {
90
+ // 没有打开过, 则添加显示
91
+ this.$dispatch('tab-changed')
92
+ if (!this.$parent.show.includes(el.header)) {
93
+ this.$parent.show.push(el.header)
94
+ }
95
+ if (el.comp._scope && el.comp._scope.tab) {
96
+ this.$dispatch('tab-changed', el.comp._scope.tab.comp.name)
97
+ }
98
+ if (!el.disabled) this.active = index
99
+ },
100
+ // deletetab函数为自己添加
101
+ deletetTab(el) {
102
+ this.$removeTab(el.comp._scope.tab.comp.name)
103
+ remove.$emit('delete', el.comp._scope.tab.comp.name)
104
+ },
105
+ // 根据删除也下标,修改所有页签的下标
106
+ modifyAllIndex(index) {
107
+ let cur = this.active
108
+ this.$nextTick(() => {
109
+ // 关闭页签以后的多有页签的的下标向前挪动一位,之前的页签不动
110
+ for (var i = index; i < this.renderData.length; i++) {
111
+ this.renderData[i].comp.index -= 1
112
+ }
113
+ // 修改激活页
114
+ // 获取当前激活页签下标,关闭在当前激活页之后(包含当前激活页),当前激活页下标不变
115
+ // 当关闭当前激活页之前(激活页向前移动一位)
116
+ if (this.active > index || this.active === this.renderData.length) {
117
+ this.active = cur - 1
118
+ } else if (cur === 0) {
119
+ this.active = 0
120
+ } else {
121
+ this.active = cur
122
+ }
123
+ if (this.active === -1) {
124
+ this.$dispatch('tab-changed', null)
125
+ } else {
126
+ this.$dispatch('tab-changed', this.renderData[this.active].comp._scope.tab.comp.name)
127
+ }
128
+ })
129
+ }
130
+ },
131
+ events: {
132
+ 'delete'(index) {
133
+ this.modifyAllIndex(index)
134
+ }
135
+ }
136
+ }
137
+ </script>
138
+
139
+ <style scoped>
140
+ ul > li > a {
141
+ position: relative;
142
+ }
143
+
144
+ ul > li > a > span {
145
+ display: none;
146
+ }
147
+
148
+ .span-active {
149
+ width: max-content;
150
+ border-bottom: 3px solid #5ac0d9;
151
+ height: 100%;
152
+ display: inline-block;
153
+ font-size: 1.5rem;
154
+ color: #666;
155
+ font-weight: 550;
156
+ padding: 0px 10px;
157
+ padding-top: 3px;
158
+ vertical-align: bottom;
159
+ }
160
+
161
+ .span-disable {
162
+ width: max-content;
163
+ height: 100%;
164
+ display: inline-block;
165
+ font-size: 1.5rem;
166
+ color: #666;
167
+ font-weight: 550;
168
+ padding: 0px 10px;
169
+ padding-top: 3px;
170
+ vertical-align: bottom;
171
+ }
172
+
173
+ /*ul > li > a:hover > span {*/
174
+ /*display: initial;*/
175
+ /*position: absolute;*/
176
+ /*right: 0;*/
177
+ /*top: 35%;*/
178
+ /*border: 1px solid #EAEAEA;*/
179
+ /*}*/
180
+ /*ul > li > a:hover > span:hover {*/
181
+ /*border: 1px solid #EAEAEA;*/
182
+ /*color: #5cb95c;*/
183
+ /*}*/
184
+ ul > li > button {
185
+ background-color: #FFFFFF;
186
+ border-radius: 4px;
187
+ color: #999;
188
+ border: 1px solid #5cb95c;
189
+ }
190
+
191
+ .btn-succ {
192
+ background-color: #6aa6e2;
193
+ border-radius: 4px;
194
+ color: #fff;
195
+ }
196
+
197
+ .foot_tabset1 > .nav {
198
+ /*overflow-x: scroll;*/
199
+ white-space: nowrap;
200
+ }
201
+ </style>
@@ -0,0 +1,67 @@
1
+ <template>
2
+ <div role="tabpanel" class="tab-pane"
3
+ v-bind:class="{hide:!show}"
4
+ v-show="show"
5
+ :transition="transition"
6
+ >
7
+ <slot></slot>
8
+ </div>
9
+ </template>
10
+
11
+ <script>
12
+ import coerceBoolean from 'vue-client/src/vue-strap/src/utils/coerceBoolean.js'
13
+
14
+ export default {
15
+ props: {
16
+ header: {
17
+ type: String
18
+ },
19
+ disabled: {
20
+ type: Boolean,
21
+ coerce: coerceBoolean,
22
+ default: false
23
+ }
24
+ },
25
+ data () {
26
+ return {
27
+ index: 0,
28
+ show: false
29
+ }
30
+ },
31
+ watch: {
32
+ 'header' (val) {
33
+ // header变化时,通知tabset
34
+ let data = this.$parent.renderData.find((v) => v.comp === this)
35
+ data.header = val
36
+ }
37
+ },
38
+ computed: {
39
+ show () {
40
+ return (this.$parent.active === this.index)
41
+ },
42
+ transition () {
43
+ return this.$parent.effect
44
+ }
45
+ },
46
+ created () {
47
+ this.$parent.renderData.push({
48
+ comp: this,
49
+ header: this.header,
50
+ disabled: this.disabled
51
+ })
52
+ },
53
+ ready () {
54
+ // 找到当前tab的索引
55
+ this.index = this.$parent.$children.findIndex((v) => v.$el === this.$el)
56
+ },
57
+ beforeDestroy () {
58
+ this.$parent.renderData.splice(this.index, 1)
59
+ }
60
+ }
61
+ </script>
62
+
63
+ <style scoped>
64
+ .tab-content > .tab-pane {
65
+ display: block;
66
+ }
67
+ </style>
@@ -1,65 +1,65 @@
1
- <template>
2
- <div class="flex">
3
- <div class="auto">
4
- <div class="form-horizontal select-overspread" style="background: white; padding: 0 1%;">
5
- <div class="row">
6
- <div class="col-sm-2 form-group">
7
- <label class="font_normal_body">终端类型</label>
8
- <v-select id="f_charge_type"
9
- v-model="model.f_equipment_type"
10
- placeholder='终端类型'
11
- :value.sync="model.f_equipment_type"
12
- :options='equipmentType'
13
- close-on-select clear-button>
14
- </v-select>
15
- </div>
16
- </div>
17
- </div>
18
- </div>
19
- <div v-if="model.f_equipment_type[0] === 'PC'">
20
- <pc-manage></pc-manage>
21
- </div>
22
- <div v-if="model.f_equipment_type[0] === 'POS'">
23
- <pos-manage></pos-manage>
24
- </div>
25
- <div v-if="model.f_equipment_type[0] === 'PHONE'">
26
- <phone-manage></phone-manage>
27
- </div>
28
- </div>
29
- </template>
30
-
31
- <script>
32
-
33
- export default {
34
- title: '终端控制',
35
- data () {
36
- return {
37
- filialeNameStr: this.$login.f.f_fengongsi,
38
- filialeCodeStr: this.$login.f.orgid,
39
- userid:this.$login.f.id,
40
- source: `tool.getFullTree(this.getRights().where(row.getType() != $zone$).where(row.getType() != $role$))`,
41
- equipmentType: this.$appdata.getParam('终端类型'),
42
- model: {
43
- f_equipment_type: []
44
- }
45
- }
46
- },
47
- ready () {
48
- console.log('看看终端类型', this.equipmentType)
49
- this.model.f_equipment_type = [this.equipmentType[0].value]
50
- },
51
- methods: {
52
- del (row) {
53
- console.log('要删除了', row)
54
- },
55
-
56
- getRes (obj) {
57
- this.filialeNameStr = obj.res
58
- this.filialeCodeStr = obj.resids
59
- },
60
- },
61
- computed: {
62
-
63
- }
64
- }
65
- </script>
1
+ <template>
2
+ <div class="flex">
3
+ <div class="auto">
4
+ <div class="form-horizontal select-overspread" style="background: white; padding: 0 1%;">
5
+ <div class="row">
6
+ <div class="col-sm-2 form-group">
7
+ <label class="font_normal_body" title="参数管理:终端类型">终端类型</label>
8
+ <v-select id="f_charge_type"
9
+ v-model="model.f_equipment_type"
10
+ placeholder='终端类型'
11
+ :value.sync="model.f_equipment_type"
12
+ :options='equipmentType'
13
+ close-on-select clear-button>
14
+ </v-select>
15
+ </div>
16
+ </div>
17
+ </div>
18
+ </div>
19
+ <div v-if="model.f_equipment_type[0] === 'PC'">
20
+ <pc-manage></pc-manage>
21
+ </div>
22
+ <div v-if="model.f_equipment_type[0] === 'POS'">
23
+ <pos-manage></pos-manage>
24
+ </div>
25
+ <div v-if="model.f_equipment_type[0] === 'PHONE'">
26
+ <phone-manage></phone-manage>
27
+ </div>
28
+ </div>
29
+ </template>
30
+
31
+ <script>
32
+
33
+ export default {
34
+ title: '终端控制',
35
+ data () {
36
+ return {
37
+ filialeNameStr: this.$login.f.f_fengongsi,
38
+ filialeCodeStr: this.$login.f.orgid,
39
+ userid:this.$login.f.id,
40
+ source: `tool.getFullTree(this.getRights().where(row.getType() != $zone$).where(row.getType() != $role$))`,
41
+ equipmentType: this.$appdata.getParam('终端类型'),
42
+ model: {
43
+ f_equipment_type: []
44
+ }
45
+ }
46
+ },
47
+ ready () {
48
+ console.log('看看终端类型', this.equipmentType)
49
+ this.model.f_equipment_type = [this.equipmentType[0].value]
50
+ },
51
+ methods: {
52
+ del (row) {
53
+ console.log('要删除了', row)
54
+ },
55
+
56
+ getRes (obj) {
57
+ this.filialeNameStr = obj.res
58
+ this.filialeCodeStr = obj.resids
59
+ },
60
+ },
61
+ computed: {
62
+
63
+ }
64
+ }
65
+ </script>
@@ -1,23 +1,23 @@
1
1
  <template>
2
- <div class="auto select-overspread">
2
+ <div class="row select-overspread">
3
3
  <validator name='v'>
4
4
  <ul class="nav nav-tabs" >
5
5
  <li role="presentation" class="active"><a href="#">PC端MAC</a></li>
6
6
  </ul>
7
7
  <form class="form-horizontal">
8
- <div class="col-sm-6">
8
+ <div class="col-sm-6 form-group">
9
9
  <label class="font_normal_body">使用人员</label>
10
10
  <input type="text" style="width: 60%" class="input_search" v-model="model.f_username" placeholder="使用人员" >
11
11
  </div>
12
- <div class="col-sm-6">
12
+ <div class="col-sm-6 form-group">
13
13
  <label class="font_normal_body">所属地址</label>
14
14
  <input type="text" style="width: 60%" class="input_search" v-model="model.f_mac_outlets" placeholder="所属地址" >
15
15
  </div>
16
- <div class="col-sm-6">
16
+ <div class="col-sm-6 form-group">
17
17
  <label class="font_normal_body">mac地址</label>
18
18
  <input type="text" style="width: 60%" class="input_search" v-model="model.f_mac_number" placeholder="mac地址" >
19
19
  </div>
20
- <div class="col-sm-6">
20
+ <div class="col-sm-6 form-group">
21
21
  <label class="font_normal_body">使用公司</label>
22
22
 
23
23
  <res-select restype='organization'
@@ -4,7 +4,7 @@
4
4
  <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
5
5
  <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
6
  <div class="row">
7
- <div class="col-sm-3">
7
+ <div class="col-sm-3 form-group">
8
8
  <label class="font_normal_body">使用公司</label>
9
9
  <res-select restype='organization'
10
10
  is-mul="false"
@@ -13,12 +13,12 @@
13
13
  </res-select>
14
14
  </div>
15
15
 
16
- <div class="col-sm-3" >
16
+ <div class="col-sm-3 form-group" >
17
17
  <label class="font_normal_body">使用人员</label>
18
18
  <input type="text" class="input_search" style="width:60%" v-model="model.f_username"
19
19
  condition="f_username like '%{}%'" placeholder="使用人员">
20
20
  </div>
21
- <div class="col-sm-3" >
21
+ <div class="col-sm-3 form-group" >
22
22
  <label class="font_normal_body">所属地址</label>
23
23
  <input type="text" class="input_search" style="width:60%" v-model="model.f_mac_outlets"
24
24
  condition="f_mac_outlets like '%{}%'" placeholder="所属地址">
@@ -31,7 +31,7 @@
31
31
  </div>
32
32
  </div>
33
33
  <div class="row" v-show="$parent.$parent.criteriaShow">
34
- <div class="col-sm-3" >
34
+ <div class="col-sm-3 form-group" >
35
35
  <label class="font_normal_body">MAC地址</label>
36
36
  <input type="text" class="input_search" style="width:60%" v-model="model.f_mac_number"
37
37
  condition="f_mac_number like '%{}%'" placeholder="MAC地址">
@@ -58,7 +58,7 @@
58
58
  <td style="text-align:center">{{row.f_mac_outlets}}</td>
59
59
  <td style="text-align:center">{{row.f_mac_number}}</td>
60
60
  <td style="text-align:center">
61
- <button class="btn btn-link" @click.stop="$parent.$parent.$parent.del(row)">删除</button>
61
+ <button class="btn btn-danger" @click.stop="$parent.$parent.$parent.del(row)">删除</button>
62
62
  </td>
63
63
  </tr>
64
64
  </template>
@@ -1,20 +1,20 @@
1
1
  <template>
2
- <div class="auto select-overspread">
2
+ <div class="row select-overspread">
3
3
  <validator name='v'>
4
4
  <ul class="nav nav-tabs" >
5
5
  <li role="presentation" class="active"><a href="#">Phone端设备号</a></li>
6
6
  </ul>
7
7
  <form class="form-horizontal">
8
8
 
9
- <div class="col-sm-6">
9
+ <div class="col-sm-6 form-group">
10
10
  <label class="font_normal_body">使用人员</label>
11
11
  <input type="text" style="width: 60%" class="input_search" v-model="model.f_username" placeholder="使用人员" >
12
12
  </div>
13
- <div class="col-sm-6">
13
+ <div class="col-sm-6 form-group">
14
14
  <label class="font_normal_body">设备号</label>
15
15
  <input type="text" style="width: 60%" class="input_search" v-model="model.f_terminal_number" placeholder="设备号" >
16
16
  </div>
17
- <div class="col-sm-6">
17
+ <div class="col-sm-6 form-group">
18
18
  <label class="font_normal_body">使用公司</label>
19
19
  <right-tree :userid.sync='userid' :source.sync='source' @re-res="getRes"></right-tree>
20
20
  </div>
@@ -4,17 +4,17 @@
4
4
  <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
5
5
  <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
6
  <div class="row">
7
- <div class="col-sm-3">
7
+ <div class="col-sm-3 form-group">
8
8
  <label class="font_normal_body">使用公司</label>
9
9
  <right-tree :userid.sync='$parent.$parent.userid' :source.sync='$parent.$parent.source' @re-res="$parent.$parent.getRes" > </right-tree>
10
10
  </div>
11
11
 
12
- <div class="col-sm-3" >
12
+ <div class="col-sm-3 form-group" >
13
13
  <label class="font_normal_body">使用人员</label>
14
14
  <input type="text" class="input_search" style="width:60%" v-model="model.f_username"
15
15
  condition="f_username like '%{}%'" placeholder="使用人员">
16
16
  </div>
17
- <div class="col-sm-3" >
17
+ <div class="col-sm-3 form-group" >
18
18
  <label class="font_normal_body">设备号</label>
19
19
  <input type="text" class="input_search" style="width:60%" v-model="model.f_terminal_number"
20
20
  condition="f_terminal_number like '%{}%'" placeholder="设备号">
@@ -41,7 +41,7 @@
41
41
  <td style="text-align:center">{{row.f_username}}</td>
42
42
  <td style="text-align:center">{{row.f_terminal_number}}</td>
43
43
  <td style="text-align:center">
44
- <button class="btn btn-link" @click.stop="$parent.$parent.$parent.del(row)">删除</button>
44
+ <button class="btn btn-danger" @click.stop="$parent.$parent.$parent.del(row)">删除</button>
45
45
  </td>
46
46
  </tr>
47
47
  </template>