system-clients 3.1.87-aode → 3.1.87-xianyang
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.
- package/build/webpack.base.conf.js +1 -4
- package/package.json +2 -2
- package/src/components/Main.vue +6 -8
- package/src/components/equipment/EquipmentManage.vue +68 -65
- package/src/components/equipment/PcAdd.vue +5 -5
- package/src/components/equipment/PcList.vue +5 -5
- package/src/components/equipment/PhoneAdd.vue +4 -4
- package/src/components/equipment/PhoneList.vue +4 -4
- package/src/components/equipment/PosAdd.vue +205 -43
- package/src/components/equipment/PosList.vue +153 -63
- package/src/components/equipment/PosManage.vue +92 -9
- package/src/components/equipment/QCAdd.vue +318 -0
- package/src/components/equipment/QCList.vue +230 -0
- package/src/components/equipment/QCManage.vue +150 -0
- package/src/components/server/Login.vue +49 -100
- package/src/components/server/ModifyPw.vue +4 -5
- package/src/components/server/ResSelect.vue +5 -1
- package/src/components/server/ResSelectGroup.vue +1 -1
- package/src/components/server/RightTree.vue +314 -344
- package/src/plugins/EncryptUtil.js +53 -0
- package/src/plugins/GetLoginInfoService.js +3 -0
- package/src/plugins/validation.js +1 -1
- package/src/system.js +89 -83
- package/.gradle/3.5/file-changes/last-build.bin +0 -0
- package/.gradle/3.5/taskHistory/taskHistory.lock +0 -0
- package/.gradle/5.5/fileChanges/last-build.bin +0 -0
- package/.gradle/5.5/fileHashes/fileHashes.lock +0 -0
- package/.gradle/5.5/gc.properties +0 -0
- package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/.gradle/buildOutputCleanup/built.bin +0 -0
- package/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/.gradle/buildOutputCleanup/cache.properties.lock +0 -1
- package/src/styles/fonts/PINGFANG LIGHT.TTF +0 -0
- package/src/styles/fonts/PingFangSC-Regular.ttf +0 -0
- package/src/styles/fonts/glyphicons-halflings-regular.eot +0 -0
- package/src/styles/fonts/glyphicons-halflings-regular.svg +0 -288
- package/src/styles/fonts/glyphicons-halflings-regular.ttf +0 -0
- package/src/styles/fonts/glyphicons-halflings-regular.woff +0 -0
- package/src/styles/fonts/glyphicons-halflings-regular.woff2 +0 -0
- package/src/styles/fonts/pingfang-bold.ttf +0 -0
- package/src/styles/fonts/pingfang-medium.ttf +0 -0
- package/src/styles/fonts/pingfang-regular.ttf +0 -0
- package/src/styles/fonts/trendstrends.ttf +0 -0
- package/src/styles/fonts//346/261/211/344/273/252/350/217/261/345/277/203/344/275/223/347/256/200.ttf +0 -0
- package/src/styles/less/.csscomb.json +0 -304
- package/src/styles/less/.csslintrc +0 -19
- package/src/styles/less/alerts.less +0 -73
- package/src/styles/less/aofeng/animate.min.css +0 -11
- package/src/styles/less/aofeng/expandcss.less +0 -569
- package/src/styles/less/aofeng/standard.less +0 -2121
- package/src/styles/less/aofeng/themeOne/BinaryTemplate.less +0 -686
- package/src/styles/less/aofeng/themeOne/loginStyle.less +0 -1586
- package/src/styles/less/aofeng/themeOne/systemStyle.less +0 -2650
- package/src/styles/less/aofeng/themeOne.less +0 -17
- package/src/styles/less/aofeng/themeTwo/newStyle1.less +0 -415
- package/src/styles/less/aofeng/themeTwo.less +0 -3
- package/src/styles/less/badges.less +0 -66
- package/src/styles/less/bootstrap.less +0 -66
- package/src/styles/less/breadcrumbs.less +0 -26
- package/src/styles/less/button-groups.less +0 -247
- package/src/styles/less/buttons.less +0 -172
- package/src/styles/less/carousel.less +0 -269
- package/src/styles/less/close.less +0 -34
- package/src/styles/less/code.less +0 -69
- package/src/styles/less/component-animations.less +0 -33
- package/src/styles/less/dropdowns.less +0 -216
- package/src/styles/less/fonts-list.less +0 -25
- package/src/styles/less/forms.less +0 -626
- package/src/styles/less/glyphicons.less +0 -305
- package/src/styles/less/grid.less +0 -84
- package/src/styles/less/input-groups.less +0 -167
- package/src/styles/less/jumbotron.less +0 -52
- package/src/styles/less/labels.less +0 -64
- package/src/styles/less/list-group.less +0 -141
- package/src/styles/less/manageStyle/manageChile.less +0 -180
- package/src/styles/less/manageStyle/manageStyle.less +0 -1102
- package/src/styles/less/manageStyle/safeStyle.less +0 -498
- package/src/styles/less/media.less +0 -66
- package/src/styles/less/mixins/alerts.less +0 -14
- package/src/styles/less/mixins/background-variant.less +0 -9
- package/src/styles/less/mixins/border-radius.less +0 -18
- package/src/styles/less/mixins/buttons.less +0 -69
- package/src/styles/less/mixins/center-block.less +0 -7
- package/src/styles/less/mixins/clearfix.less +0 -22
- package/src/styles/less/mixins/forms.less +0 -90
- package/src/styles/less/mixins/gradients.less +0 -59
- package/src/styles/less/mixins/grid-framework.less +0 -92
- package/src/styles/less/mixins/grid.less +0 -122
- package/src/styles/less/mixins/hide-text.less +0 -21
- package/src/styles/less/mixins/image.less +0 -33
- package/src/styles/less/mixins/labels.less +0 -12
- package/src/styles/less/mixins/list-group.less +0 -30
- package/src/styles/less/mixins/nav-divider.less +0 -10
- package/src/styles/less/mixins/nav-vertical-align.less +0 -9
- package/src/styles/less/mixins/opacity.less +0 -8
- package/src/styles/less/mixins/pagination.less +0 -24
- package/src/styles/less/mixins/panels.less +0 -24
- package/src/styles/less/mixins/progress-bar.less +0 -10
- package/src/styles/less/mixins/reset-filter.less +0 -8
- package/src/styles/less/mixins/reset-text.less +0 -18
- package/src/styles/less/mixins/resize.less +0 -6
- package/src/styles/less/mixins/responsive-visibility.less +0 -15
- package/src/styles/less/mixins/size.less +0 -10
- package/src/styles/less/mixins/tab-focus.less +0 -9
- package/src/styles/less/mixins/table-row.less +0 -44
- package/src/styles/less/mixins/text-emphasis.less +0 -9
- package/src/styles/less/mixins/text-overflow.less +0 -8
- package/src/styles/less/mixins/vendor-prefixes.less +0 -227
- package/src/styles/less/mixins.less +0 -40
- package/src/styles/less/modals.less +0 -151
- package/src/styles/less/navbar.less +0 -660
- package/src/styles/less/navs.less +0 -285
- package/src/styles/less/normalize.less +0 -424
- package/src/styles/less/pager.less +0 -76
- package/src/styles/less/pagination.less +0 -89
- package/src/styles/less/panels.less +0 -275
- package/src/styles/less/popovers.less +0 -131
- package/src/styles/less/print.less +0 -101
- package/src/styles/less/progress-bars.less +0 -87
- package/src/styles/less/responsive-embed.less +0 -35
- package/src/styles/less/responsive-utilities.less +0 -194
- package/src/styles/less/scaffolding.less +0 -161
- package/src/styles/less/stand.less +0 -207
- package/src/styles/less/tables.less +0 -262
- package/src/styles/less/theme.less +0 -291
- package/src/styles/less/thumbnails.less +0 -36
- package/src/styles/less/tooltip.less +0 -102
- package/src/styles/less/type.less +0 -303
- package/src/styles/less/utilities.less +0 -55
- package/src/styles/less/variables.less +0 -896
- package/src/styles/less/wells.less +0 -29
- package/static/logo.png +0 -0
@@ -0,0 +1,230 @@
|
|
1
|
+
<template>
|
2
|
+
<div class="flex">
|
3
|
+
<criteria-paged :model="model" v-ref:paged>
|
4
|
+
|
5
|
+
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
|
6
|
+
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
7
|
+
<div class="row">
|
8
|
+
<div class="col-sm-3 form-group">
|
9
|
+
<label class="font_normal_body">公 司</label>
|
10
|
+
<res-select restype='organization'
|
11
|
+
is-mul="false"
|
12
|
+
@res-select="$parent.$parent.getorg"
|
13
|
+
:initresid="$parent.$parent.curorgid">
|
14
|
+
</res-select>
|
15
|
+
</div>
|
16
|
+
<div class="col-sm-3 form-group">
|
17
|
+
<label class="font_normal_body">设备编号</label>
|
18
|
+
<input type="text" class="input_search" style="width:60%" v-model="model.f_terminal_number"
|
19
|
+
condition="f_terminal_number like '%{}%'" placeholder="设备编号">
|
20
|
+
</div>
|
21
|
+
<div class="span" style="float:right;">
|
22
|
+
<button type="button" class="button_search" @click="search()" v-el:cx>查询</button>
|
23
|
+
<button type="button" class="button_search" @click="$parent.$parent.add() " v-el:cx >新增</button>
|
24
|
+
<div style="float: right" class="button_spacing" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
|
25
|
+
@click="$parent.$parent.hidden()"></div>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
<div class="row" v-show="$parent.$parent.criteriaShow">
|
29
|
+
<div class="col-sm-3 form-group">
|
30
|
+
<label class="font_normal_body">所在地</label>
|
31
|
+
<input type="text" class="input_search" style="width:60%" v-model="model.f_address"
|
32
|
+
condition="f_address like '%{}%'" placeholder="所在地">
|
33
|
+
</div>
|
34
|
+
<div class="col-sm-3 form-group">
|
35
|
+
<label class="font_normal_body">设备名称</label>
|
36
|
+
<input type="text" class="input_search" style="width:60%" v-model="model.f_terminal_name"
|
37
|
+
condition="f_terminal_name like '%{}%'" placeholder="设备名称">
|
38
|
+
</div>
|
39
|
+
<div class="col-sm-3 form-group">
|
40
|
+
<label class="font_normal_body">机器编号</label>
|
41
|
+
<input type="text" class="input_search" style="width:60%" v-model="model.f_machine_number"
|
42
|
+
condition="f_machine_number like '%{}%'" placeholder="机器编号">
|
43
|
+
</div>
|
44
|
+
<div class="col-sm-3 form-group">
|
45
|
+
<label class="font_normal_body">联系电话</label>
|
46
|
+
<input type="text" class="input_search" style="width:60%" v-model="model.f_phone"
|
47
|
+
condition="f_phone like '%{}%'" placeholder="联系电话">
|
48
|
+
</div>
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
</criteria>
|
52
|
+
<data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid >
|
53
|
+
<template partial='head'>
|
54
|
+
<tr>
|
55
|
+
<th><input type="checkbox" name="ischeckbox_all_id" v-model="$parent.$parent.$parent.isSelAll" :value.sync="$parent.$parent.$parent.isSelAll" /></th>
|
56
|
+
<th style="text-align:center;white-space:nowrap;">序号</th>
|
57
|
+
<th style="text-align:center;white-space:nowrap;">设备编号</th>
|
58
|
+
<th style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">设备类型</th>
|
59
|
+
<th style="text-align:center;white-space:nowrap;">设备名称</th>
|
60
|
+
<th style="text-align:center;white-space:nowrap;">所属公司</th>
|
61
|
+
<th style="text-align:center;white-space:nowrap;">状态</th>
|
62
|
+
<th style="text-align:center;white-space:nowrap;">机器编号</th>
|
63
|
+
<th style="text-align:center;white-space:nowrap;">联系电话</th>
|
64
|
+
<th style="text-align:center;white-space:nowrap;">所在地</th>
|
65
|
+
<!-- <th style="text-align:center;white-space:nowrap;">电池电量</th>-->
|
66
|
+
<!-- <th style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">是否登录</th>-->
|
67
|
+
<!-- <th style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">更新时间</th>-->
|
68
|
+
<th style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">操作时间</th>
|
69
|
+
<!-- <th style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">软件版本</th>-->
|
70
|
+
<th style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">操作人</th>
|
71
|
+
<th style="text-align:center;white-space:nowrap;">失联状态</th>
|
72
|
+
<th style="text-align:center;white-space:nowrap;">操作</th>
|
73
|
+
</tr>
|
74
|
+
</template>
|
75
|
+
<template partial='body':model="model">
|
76
|
+
<tr>
|
77
|
+
<td><input type="checkbox" name="checkbox_id" v-model="$parent.$parent.$parent.selPos" :value.sync="row"></td>
|
78
|
+
<td style="text-align:center;white-space:nowrap;">{{$index+1}}</td>
|
79
|
+
<td style="text-align:center;white-space:nowrap;"><span title="点击查看历史" @click="$parent.$parent.$parent.abcd(row)"><a>{{row.f_terminal_number}}</a></span></td>
|
80
|
+
<td style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">{{row.f_equipment_type}}</td>
|
81
|
+
<td style="text-align:center;white-space:nowrap;">{{row.f_terminal_name}}</td>
|
82
|
+
<td style="text-align:center;white-space:nowrap;">{{row.f_user_orgname}}</td>
|
83
|
+
<td style="text-align:center;white-space:nowrap;">{{row.f_state}}</td>
|
84
|
+
<td style="text-align:center;white-space:nowrap;">{{row.f_machine_number}}</td>
|
85
|
+
<td style="text-align:center;white-space:nowrap;">{{row.f_phone}}</td>
|
86
|
+
<td style="text-align:center;white-space:nowrap;">{{row.f_address}}</td>
|
87
|
+
<!-- <td style="text-align:center;white-space:nowrap;">{{row.f_battery_level}}</td>-->
|
88
|
+
<!-- <td style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">{{row.f_is_login}}</td>-->
|
89
|
+
<!-- <td style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">{{row.f_hybrid_version}}</td>-->
|
90
|
+
<td style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">{{row.f_operate_date}}</td>
|
91
|
+
<!-- <td style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">{{row.f_appVer}}</td>-->
|
92
|
+
<td style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">{{row.f_operator}}</td>
|
93
|
+
<td style="text-align:center;white-space:nowrap;" >{{row.f_online}}</td>
|
94
|
+
<td style="text-align:center;white-space:nowrap;" ><button class="btn btn-danger" @click="$parent.$parent.$parent.delQc(row)">删除</button></td>
|
95
|
+
</tr>
|
96
|
+
</template>
|
97
|
+
</data-grid>
|
98
|
+
</criteria-paged>
|
99
|
+
</div>
|
100
|
+
<modal v-show="infoshow" :show.sync="infoshow" v-ref:modal backdrop="false" width="800px" title="终端历史信息">
|
101
|
+
<article slot="modal-body" class="modal-body">
|
102
|
+
<criteria-paged :model="model2" v-ref:paged2>
|
103
|
+
<data-grid :model="model2" v-ref:grid2 partial='list'>
|
104
|
+
<template partial='head'>
|
105
|
+
<tr>
|
106
|
+
<th><nobr>序号</nobr></th>
|
107
|
+
<th><nobr>终端号</nobr></th>
|
108
|
+
<th><nobr>上次上报时间</nobr></th>
|
109
|
+
<th><nobr>本次上报时间</nobr></th>
|
110
|
+
<th><nobr><b>状态</b></nobr></th>
|
111
|
+
</tr>
|
112
|
+
</template>
|
113
|
+
<template partial='body'>
|
114
|
+
<td style="text-align: center;">{{$index + 1}}</td>
|
115
|
+
<td style="text-align: center;">{{row.f_terminal_number}}</td>
|
116
|
+
<td style="text-align: center;">{{row.f_update_date}}</td>
|
117
|
+
<td style="text-align: center;">{{row.f_update_date }}</td>
|
118
|
+
<td style="text-align: center;"><b>{{row.f_pos_state}}</b></td>
|
119
|
+
</template>
|
120
|
+
</data-grid>
|
121
|
+
</criteria-paged>
|
122
|
+
</article>
|
123
|
+
<footer slot="modal-footer" class="modal-footer">
|
124
|
+
<button type="button" class="btn btn-success" @click='infoclose'>关闭</button>
|
125
|
+
</footer>
|
126
|
+
</modal>
|
127
|
+
</template>
|
128
|
+
|
129
|
+
<script>
|
130
|
+
|
131
|
+
import {PagedList} from 'vue-client'
|
132
|
+
|
133
|
+
export default {
|
134
|
+
title: '终端控制',
|
135
|
+
components: {},
|
136
|
+
data () {
|
137
|
+
return {
|
138
|
+
source: `tool.getFullTree(this.getRights().where(row.getType() != $zone$).where(row.getType() != $role$))`,
|
139
|
+
model: new PagedList('rs/sql/equipmentQuery', 20),
|
140
|
+
model2: new PagedList('rs/sql/singleTable', 30, {tablename: '`t_poshistory`'}),
|
141
|
+
curorgid: [this.f_filialeid],
|
142
|
+
f_orgid: '',
|
143
|
+
f_filialeids: '',
|
144
|
+
criteriaShow: false,
|
145
|
+
infoadd: false,
|
146
|
+
selPos: [],
|
147
|
+
isSelAll: false, // 默认不全选
|
148
|
+
infoshow: false
|
149
|
+
}
|
150
|
+
},
|
151
|
+
props: ['f_filialeid','isshowless'],
|
152
|
+
ready () {
|
153
|
+
this.search()
|
154
|
+
},
|
155
|
+
watch:{
|
156
|
+
'isSelAll'(val){
|
157
|
+
if (val) {
|
158
|
+
// 对当前页面全选
|
159
|
+
this.selPos = []
|
160
|
+
for (const sel of this.model.rows) {
|
161
|
+
this.selPos.push(sel)
|
162
|
+
}
|
163
|
+
} else {
|
164
|
+
this.selPos = []
|
165
|
+
}
|
166
|
+
}
|
167
|
+
},
|
168
|
+
methods: {
|
169
|
+
delQc(row){
|
170
|
+
this.$showMessage('删除之后不可回复,确定要删除该圈存机吗?', ['confirm', 'cancel']).then(async (res) => {
|
171
|
+
if (res == 'confirm') {
|
172
|
+
console.log('要删除了', row)
|
173
|
+
row.f_state = '已删除'
|
174
|
+
this.$resetpost('rs/entity/t_equipment', row, {warnMsg: '确定要删除这条信息吗?', resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
|
175
|
+
this.$dispatch('refresh')
|
176
|
+
}).catch((error) => {
|
177
|
+
this.$dispatch('refresh')
|
178
|
+
})
|
179
|
+
}
|
180
|
+
})
|
181
|
+
},
|
182
|
+
getRes(val){
|
183
|
+
if (val.orgobj.length === 1 && val.orgobj[0].resourcetype === 'user'){
|
184
|
+
this.$refs.paged.$refs.cri.model.f_user_operatorid=val.orgobj[0].userid
|
185
|
+
this.$refs.paged.$refs.cri.model.f_user_operator=val.orgobj[0].name
|
186
|
+
} else {
|
187
|
+
this.$refs.paged.$refs.cri.model.f_user_operatorid=''
|
188
|
+
this.$refs.paged.$refs.cri.model.f_user_operator=''
|
189
|
+
}
|
190
|
+
},
|
191
|
+
infoclose(){
|
192
|
+
this.infoshow=false
|
193
|
+
},
|
194
|
+
abcd (row) {
|
195
|
+
console.log("chakan",row)
|
196
|
+
let condition = `f_terminal_number = '${row.f_terminal_number}' order by id desc`
|
197
|
+
// this.model2.search(condition)
|
198
|
+
this.infoshow = true
|
199
|
+
},
|
200
|
+
search () {
|
201
|
+
console.log("111111111111111111111111111111111111")
|
202
|
+
this.$refs.paged.$refs.cri.search()
|
203
|
+
},
|
204
|
+
|
205
|
+
selfSearch (args) {
|
206
|
+
// args.condition = `${args.condition} and f_equipment_type = '圈存机' and f_orgid = '${this.f_filialeid ? this.f_orgid: this.$login.f.orgid}'`
|
207
|
+
args.condition = `${args.condition} and f_equipment_type = '圈存机' and f_state !='已删除' and f_orgid = '${this.f_filialeid ? this.f_orgid: this.$login.f.orgid}'`
|
208
|
+
this.model.search(args.condition, this.model)
|
209
|
+
this.$dispatch('research')
|
210
|
+
},
|
211
|
+
|
212
|
+
add () {
|
213
|
+
this.infoadd=false
|
214
|
+
this.$dispatch('add', this.f_filialeid)
|
215
|
+
},
|
216
|
+
|
217
|
+
getorg (val) {
|
218
|
+
this.f_orgid = val[0]
|
219
|
+
this.f_filialeid = val[0]
|
220
|
+
// this.search()
|
221
|
+
},
|
222
|
+
hidden(){
|
223
|
+
this.criteriaShow = !this.criteriaShow
|
224
|
+
}
|
225
|
+
},
|
226
|
+
computed: {
|
227
|
+
|
228
|
+
}
|
229
|
+
}
|
230
|
+
</script>
|
@@ -0,0 +1,150 @@
|
|
1
|
+
<template>
|
2
|
+
<div class="flex-row">
|
3
|
+
<div :class="{'basic-main':!isChange,'binary-left':isChange}">
|
4
|
+
<qc-list :row="row" @dblclick="selected" style="width:auto;" :f_filialeid.sync="f_filialeids" :isshowless="isChange" v-ref:list ></qc-list>
|
5
|
+
</div>
|
6
|
+
<div class="binary-right" style="margin-left: 10px; width: 40%;" v-if="isChange">
|
7
|
+
<qc-add :data="row" :info="infoadd" :f_filialeids.sync="f_filialeids" v-ref:addbox></qc-add>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<modal v-if="batchPos" :show.sync="batchPos" backdrop="false" >
|
11
|
+
<header slot="modal-header" class="modal-header">
|
12
|
+
<button type="button" class="close" @click="close"><span>×</span></button>
|
13
|
+
<h4 class="modal-title">批量操作</h4>
|
14
|
+
</header>
|
15
|
+
<article slot="modal-body" class="modal-body">
|
16
|
+
<form class="form-horizontal">
|
17
|
+
<div class="row">
|
18
|
+
<div>
|
19
|
+
<h4>注意事项</h4>
|
20
|
+
<p>1.如果需要对POS设备进行升级,批量选择的POS设备包含非正常状态,则只会对状态为正常的设备进行升级。</p>
|
21
|
+
<p>2.如果POS设备处于停用状态,则可以进行启用操作。如果设备处于启用状态,则可以进行停用和升级操作。</p>
|
22
|
+
<p>3.批量操作可能耗时较长,请刷新列表查看结果。</p>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
</form>
|
26
|
+
</article>
|
27
|
+
<footer slot="modal-footer" class="modal-footer">
|
28
|
+
<button type="button" class="button_search button_spacing" @click="batchRoot('2')">批量升级</button>
|
29
|
+
<button type="button" class="button_search button_spacing" @click="batchRoot('1')">批量启用</button>
|
30
|
+
<button type="button" class="button_search button_spacing" @click="batchRoot('0')">批量停用</button>
|
31
|
+
<button type="button" class="button_clear button_spacing" @click='close'>退出</button>
|
32
|
+
</footer>
|
33
|
+
</modal>
|
34
|
+
</div>
|
35
|
+
</template>
|
36
|
+
<script>
|
37
|
+
|
38
|
+
import QcList from './QCList'
|
39
|
+
import QcAdd from './QCAdd'
|
40
|
+
|
41
|
+
export default {
|
42
|
+
title: 'POS终端管理',
|
43
|
+
components: {
|
44
|
+
QcList, QcAdd
|
45
|
+
},
|
46
|
+
data () {
|
47
|
+
return {
|
48
|
+
isChange: false,
|
49
|
+
row: null,
|
50
|
+
infoadd: true, // 判断是否显示 升级 等按钮(true/false)
|
51
|
+
batchPos: false,
|
52
|
+
f_filialeids: ''
|
53
|
+
}
|
54
|
+
},
|
55
|
+
methods: {
|
56
|
+
// 批量操作
|
57
|
+
async batchRoot(val){
|
58
|
+
let arrs = []
|
59
|
+
let alertMessage=''
|
60
|
+
let selPos = this.$refs.list.selPos
|
61
|
+
if (val==='0'){
|
62
|
+
alertMessage='停用'
|
63
|
+
for (const tmp of selPos) {
|
64
|
+
if (tmp.f_state==='正常') arrs.push(tmp)
|
65
|
+
}
|
66
|
+
} else if (val==='1'){
|
67
|
+
alertMessage='启用'
|
68
|
+
for (const tmp of selPos) {
|
69
|
+
if (tmp.f_state==='停用') arrs.push(tmp)
|
70
|
+
}
|
71
|
+
} else if(val==='2'){
|
72
|
+
alertMessage='升级'
|
73
|
+
for (const tmp of selPos) {
|
74
|
+
if (tmp.f_state==='正常') arrs.push(tmp)
|
75
|
+
}
|
76
|
+
} else {
|
77
|
+
this.showAlert('出现异常,请重新进操作')
|
78
|
+
return
|
79
|
+
}
|
80
|
+
|
81
|
+
await this.$resetpost('rs/logic/batchPos',{data: {tasks: arrs, taskState: val}}, {rejectMsg: null, resolveMsg: null})
|
82
|
+
|
83
|
+
// 需要提示
|
84
|
+
this.$showAlert(`已经开始批量${alertMessage},选择${selPos.length},其中${arrs.length}台可以正常${alertMessage},具体请留意设备情况,并刷新列表查看执行结果!`)
|
85
|
+
this.isChange = false
|
86
|
+
this.close()
|
87
|
+
},
|
88
|
+
close(){
|
89
|
+
this.batchPos = false
|
90
|
+
},
|
91
|
+
selected (obj, idx) {
|
92
|
+
console.log(obj)
|
93
|
+
if (!(obj instanceof MouseEvent)) {
|
94
|
+
if (this.$refs.list.selPos.length > 0){
|
95
|
+
this.$showMessage(`系统检测到您进行了多选,是否进行批量操作?`, ['confirm', 'cancel']).then((res) => {
|
96
|
+
if (res==='confirm'){
|
97
|
+
this.batchPos = true
|
98
|
+
} else {
|
99
|
+
this.isChange = true
|
100
|
+
this.infoadd = true
|
101
|
+
this.row = obj
|
102
|
+
}
|
103
|
+
})
|
104
|
+
|
105
|
+
}else {
|
106
|
+
this.isChange = true
|
107
|
+
this.infoadd = true
|
108
|
+
this.row = obj
|
109
|
+
}
|
110
|
+
} else {
|
111
|
+
this.$showAlert('如需新增,请点击增加按钮!', 'info', 1000)
|
112
|
+
}
|
113
|
+
}
|
114
|
+
},
|
115
|
+
events: {
|
116
|
+
'search' () {
|
117
|
+
this.infoadd=true
|
118
|
+
this.isChange = false
|
119
|
+
this.row = null
|
120
|
+
this.$refs.list.$refs.paged.$refs.cri.search()
|
121
|
+
},
|
122
|
+
'research' () {
|
123
|
+
console.log('重新查询')
|
124
|
+
this.isChange = false
|
125
|
+
this.row = null
|
126
|
+
},
|
127
|
+
'refresh' () {
|
128
|
+
this.isChange = false
|
129
|
+
this.row = null
|
130
|
+
this.$refs.list.search()
|
131
|
+
},
|
132
|
+
'error' (name, row, res) {
|
133
|
+
this.isChange = false
|
134
|
+
this.row = null
|
135
|
+
},
|
136
|
+
'close' () {
|
137
|
+
this.isChange = false
|
138
|
+
this.row = null
|
139
|
+
// this.$refs.list.search()
|
140
|
+
},
|
141
|
+
'add' (val) {
|
142
|
+
this.f_filialeids = val
|
143
|
+
this.infoadd=false
|
144
|
+
this.row = null
|
145
|
+
this.isChange = true
|
146
|
+
this.$refs.list.$refs.paged.$refs.grid.selectStore.selected = null
|
147
|
+
}
|
148
|
+
}
|
149
|
+
}
|
150
|
+
</script>
|
@@ -8,11 +8,6 @@
|
|
8
8
|
<span>联系我们</span>
|
9
9
|
</div>
|
10
10
|
</div>
|
11
|
-
<div class="logoew" v-if="logoandroid" >
|
12
|
-
<div v-if="logoandroid" class="imglogo"></div>
|
13
|
-
<p class="logocontent">燃气客服系统Android版</p>
|
14
|
-
<p class="logofooter">(仅浏览器扫描)</p>
|
15
|
-
</div>
|
16
11
|
<!--输入框-->
|
17
12
|
<div class="loginmain">
|
18
13
|
<!-- <img src="../../../static/login_title1.png" alt="图片加载未完成" class="img-responsive" style="margin: 0 auto; padding-top: 150px;" /> -->
|
@@ -21,7 +16,7 @@
|
|
21
16
|
</div>
|
22
17
|
<div class="loginmain-right">
|
23
18
|
|
24
|
-
<p @click="theme()" style="white-space: nowrap"
|
19
|
+
<p @click="theme()" style="white-space: nowrap">咸阳天然气营收系统</p>
|
25
20
|
|
26
21
|
<form v-show="!login">
|
27
22
|
<!-- <input type="text" placeholder="用户名" v-model="model.ename" class="usericon">-->
|
@@ -34,16 +29,16 @@
|
|
34
29
|
<input type="password" placeholder="密码" style="display: inline;background-color: darkgray;" v-model="model.password"
|
35
30
|
@keyup.enter="confirm('key')"/>
|
36
31
|
</div>
|
37
|
-
<div class="login-input-1"
|
38
|
-
<img src="../../../static/newStyle/login-check.png"
|
39
|
-
<input v-if="$login.Verification" class="login-check" type="text" placeholder="请输入验证码"
|
40
|
-
v-model="picLyanzhengma" @keyup.enter="confirm('key')"
|
41
|
-
</div
|
42
|
-
<div class="login-input-2"
|
43
|
-
<input v-if="$login.Verification" class="login-check-1" style="display: inline;background-color:#eeeeee !important;"
|
44
|
-
type="button" @click="createCode" v-model="checkCode"
|
45
|
-
</div
|
46
|
-
<div class="login-bt">
|
32
|
+
<!-- <div class="login-input-1">-->
|
33
|
+
<!-- <img src="../../../static/newStyle/login-check.png"/>-->
|
34
|
+
<!-- <input v-if="$login.Verification" class="login-check" type="text" placeholder="请输入验证码"-->
|
35
|
+
<!-- v-model="picLyanzhengma" @keyup.enter="confirm('key')"/>-->
|
36
|
+
<!-- </div>-->
|
37
|
+
<!-- <div class="login-input-2" >-->
|
38
|
+
<!-- <input v-if="$login.Verification" class="login-check-1" style="display: inline;background-color:#eeeeee !important;"-->
|
39
|
+
<!-- type="button" @click="createCode" v-model="checkCode"/>-->
|
40
|
+
<!-- </div>-->
|
41
|
+
<div class="login-bt" style="transform: translate(0,-55px)">
|
47
42
|
<button type="button" id="login-button" class="login-button" @click.prevent="confirm('click')">登录</button>
|
48
43
|
</div>
|
49
44
|
<!-- <input type="password" placeholder="密码" v-model="model.password" class="psicon"-->
|
@@ -78,12 +73,6 @@
|
|
78
73
|
<p class="form-control-static">{{$login.f.name}}</p>
|
79
74
|
</div>
|
80
75
|
</div>
|
81
|
-
<div class="col-sm-12 form-group">
|
82
|
-
<label class="col-sm-5 control-label">组 织 编 码</label>
|
83
|
-
<div class="col-sm-7">
|
84
|
-
<p class="form-control-static">{{$login.f.number}}</p>
|
85
|
-
</div>
|
86
|
-
</div>
|
87
76
|
<div class="col-sm-12 form-group">
|
88
77
|
<label class="col-sm-5 control-label">所在销售点</label>
|
89
78
|
<div class="col-sm-7">
|
@@ -98,9 +87,6 @@
|
|
98
87
|
<button class="button_clear" @click="depPromptCancel">取消</button>
|
99
88
|
</footer>
|
100
89
|
</modal>
|
101
|
-
|
102
|
-
<!-- 修改密码组件 -->
|
103
|
-
<modify-pw :show.sync="modifyPwShow" v-if="modifyPwShow"></modify-pw>
|
104
90
|
</div>
|
105
91
|
|
106
92
|
</template>
|
@@ -108,68 +94,50 @@
|
|
108
94
|
<script>
|
109
95
|
import co from 'co'
|
110
96
|
import $ from 'jquery'
|
111
|
-
import Vue from 'vue'
|
112
97
|
|
113
98
|
let saveGen = function *(self) {
|
114
99
|
try {
|
115
100
|
yield self.$login.login(self.model.ename, self.model.password)
|
116
101
|
yield self.$appdata.load()
|
117
102
|
|
118
|
-
if (Vue.$heatCompatibility) {
|
119
|
-
try {
|
120
|
-
yield self.$loginHeat.login(self.model.ename, self.model.password)
|
121
|
-
yield self.$appdataHeat.load()
|
122
|
-
} catch (e) {
|
123
|
-
console.log('热力系统登陆失败!')
|
124
|
-
}
|
125
|
-
}
|
126
|
-
|
127
103
|
yield self.$getConfig(self, 'Login')
|
128
104
|
console.log('登录配置', self.config)
|
129
|
-
if (self.
|
130
|
-
//
|
131
|
-
let
|
105
|
+
if (self.$login.r.includes('验证站点') && self.$login.f.name!='超级管理员') {
|
106
|
+
// 获取本地mac地址
|
107
|
+
let getLocalMac = yield self.$resetpost('http://127.0.0.1:8003/loadmac', {
|
132
108
|
resolveMsg: null,
|
133
109
|
rejectMsg: null
|
134
110
|
}).catch(() => {
|
135
|
-
throw new Error('
|
111
|
+
throw new Error('获取本地mac配置失败')
|
136
112
|
})
|
137
|
-
console.log('MAC地址信息',
|
138
|
-
//
|
139
|
-
let
|
113
|
+
console.log('本地MAC地址信息', getLocalMac)
|
114
|
+
// 获取该登录人分公司下的mac配置
|
115
|
+
let getMacs = yield self.$resetpost('rs/sql/equipmentQuery', {data: {condition: `f_mac_number = '${getLocalMac.data}'`}}, {
|
140
116
|
resolveMsg: null,
|
141
117
|
rejectMsg: null
|
142
118
|
}).catch(() => {
|
143
|
-
throw new Error('
|
119
|
+
throw new Error('获取mac配置失败')
|
144
120
|
})
|
145
|
-
console.log('
|
121
|
+
console.log('MAC地址信息', getMacs)
|
146
122
|
// 对Mac地址进行匹配
|
147
123
|
let macValidate = false
|
148
|
-
for (let i = 0; i < getLocalMac.data.mac.length; i++) {
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
124
|
+
// for (let i = 0; i < getLocalMac.data.mac.length; i++) {
|
125
|
+
for (let j = 0; j < getMacs.data.length; j++) {
|
126
|
+
// if (getMacs.data[j].f_mac_number.toLocaleUpperCase() === getLocalMac.data.mac[i]) {
|
127
|
+
macValidate = true
|
128
|
+
self.$login.f.depids = getMacs.data[j].f_username
|
129
|
+
self.$login.f.deps = getMacs.data[j].f_mac_outlets
|
130
|
+
// }
|
154
131
|
}
|
132
|
+
// }
|
155
133
|
if (!macValidate) {
|
156
134
|
throw new Error('Mac地址验证失败, 请联系管理员!!')
|
157
135
|
}
|
158
136
|
}
|
159
|
-
|
160
|
-
if (self.config.weakPassword && !(/^(?:(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])).*$/.test(self.model.password))) {
|
161
|
-
self.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm']).then((res) => {
|
162
|
-
self.modifyPwShow = true
|
163
|
-
})
|
164
|
-
} else if (self.config.depPrompt) {
|
137
|
+
if (self.config.depPrompt) {
|
165
138
|
self.depPromptShow = true
|
166
139
|
} else {
|
167
140
|
self.$goto('home-page', {functions: self.$login.f})
|
168
|
-
if (self.$login) {
|
169
|
-
console.log('登录信息', self.$login.f)
|
170
|
-
global.login=self.$login.f
|
171
|
-
console.log('登录信息', global.login)
|
172
|
-
}
|
173
141
|
}
|
174
142
|
|
175
143
|
} catch (ret) {
|
@@ -197,9 +165,9 @@
|
|
197
165
|
export default {
|
198
166
|
title: '登录',
|
199
167
|
ready () {
|
200
|
-
if (this
|
201
|
-
this.model.ename = this
|
202
|
-
this.model.password = this
|
168
|
+
if (this.getUrlCompileParames('name') && this.getUrlCompileParames('password')) {
|
169
|
+
this.model.ename = this.getUrlCompileParames('name')
|
170
|
+
this.model.password = this.getUrlCompileParames('password')
|
203
171
|
this.confirm()
|
204
172
|
}
|
205
173
|
$('#login-button').click(function (event) {
|
@@ -222,7 +190,6 @@
|
|
222
190
|
config: {
|
223
191
|
isMac: false,
|
224
192
|
depPrompt: false,
|
225
|
-
weakPassword: true
|
226
193
|
},
|
227
194
|
login: false,
|
228
195
|
depPromptShow: false,
|
@@ -230,13 +197,26 @@
|
|
230
197
|
show: false,
|
231
198
|
checkCode: '',
|
232
199
|
login_do:true,
|
233
|
-
picLyanzhengma: ''
|
234
|
-
// 修改密码弹框展示
|
235
|
-
modifyPwShow: false,
|
236
|
-
logoandroid:false
|
200
|
+
picLyanzhengma: ''
|
237
201
|
}
|
238
202
|
},
|
239
203
|
methods: {
|
204
|
+
// 从地址栏获取加密的参数
|
205
|
+
getUrlCompileParames (param) {
|
206
|
+
console.log(window.location)
|
207
|
+
let query = window.location.search
|
208
|
+
let iLen = param.length
|
209
|
+
let iStart = query.indexOf(param)
|
210
|
+
if (iStart === -1) {
|
211
|
+
return ''
|
212
|
+
}
|
213
|
+
iStart += iLen + 1
|
214
|
+
let iEnd = query.indexOf('&', iStart)
|
215
|
+
if (iEnd === -1) {
|
216
|
+
return query.substring(iStart)
|
217
|
+
}
|
218
|
+
return query.substring(iStart, iEnd)
|
219
|
+
},
|
240
220
|
theme(){
|
241
221
|
// var elementList = document.querySelectorAll('body');
|
242
222
|
// console.log(elementList)
|
@@ -309,19 +289,11 @@
|
|
309
289
|
this.login = false
|
310
290
|
$('form').fadeIn(500)
|
311
291
|
}
|
312
|
-
},
|
313
|
-
watch: {
|
314
|
-
'modifyPwShow' (val){
|
315
|
-
if (!val) {
|
316
|
-
window.location.reload()
|
317
|
-
}
|
318
|
-
}
|
319
292
|
}
|
320
293
|
}
|
321
294
|
</script>
|
322
295
|
|
323
296
|
<style>
|
324
|
-
|
325
297
|
/*输入框样式*/
|
326
298
|
/*@import url(http://fonts.useso.com/css?family=Source+Sans+Pro:200,300);*/
|
327
299
|
* {
|
@@ -645,29 +617,6 @@
|
|
645
617
|
-webkit-animation-delay: 11s;
|
646
618
|
animation-delay: 11s;
|
647
619
|
}
|
648
|
-
.logofooter{
|
649
|
-
font-size: 12px;
|
650
|
-
color:#fff;
|
651
|
-
width:150px;
|
652
|
-
margin-left: 17px;
|
653
|
-
}
|
654
|
-
.logocontent{
|
655
|
-
font-size: 14px;
|
656
|
-
color:#fff;
|
657
|
-
width:150px;
|
658
|
-
margin: 3px -15px;
|
659
|
-
}
|
660
|
-
.imglogo {
|
661
|
-
background:url(../../../static/logo.png);
|
662
|
-
background-size:100%;
|
663
|
-
}
|
664
|
-
.logoew {
|
665
|
-
width:120px;
|
666
|
-
height:120px;
|
667
|
-
float:right;
|
668
|
-
margin-right:8.5%;
|
669
|
-
margin-top:10px;
|
670
|
-
}
|
671
620
|
|
672
621
|
@-webkit-keyframes square {
|
673
622
|
0% {
|
@@ -18,14 +18,13 @@
|
|
18
18
|
</div>
|
19
19
|
</div>
|
20
20
|
<div class="has-feedback form-group"
|
21
|
-
:class="{'has-warning':$v.newpassword.required,'has-error':$v.newpassword.
|
22
|
-
'has-success': !$v.newpassword.required
|
21
|
+
:class="{'has-warning':$v.newpassword.required,'has-error':$v.newpassword.required,
|
22
|
+
'has-success': !$v.newpassword.required }">
|
23
23
|
<label for="newpassword" class="col-sm-4 col-sm-offset-1 control-label">新的密码: </label>
|
24
24
|
<div class="col-sm-4">
|
25
|
-
<input type="password" v-model="deliver.newpassword" class="form-control" id="newpassword" v-validate:newpassword='{required:true
|
26
|
-
<span class="glyphicon glyphicon-ok form-control-feedback" v-if="!$v.newpassword.required
|
25
|
+
<input type="password" v-model="deliver.newpassword" class="form-control" id="newpassword" v-validate:newpassword='{required:true}'>
|
26
|
+
<span class="glyphicon glyphicon-ok form-control-feedback" v-if="!$v.newpassword.required"></span>
|
27
27
|
<span v-if="$v.newpassword.required">不能为空</span>
|
28
|
-
<span v-if="$v.newpassword.strongpassword && !($v.newpassword.required)">密码必须包含英文大小写、阿拉伯数字、字符</span>
|
29
28
|
</div>
|
30
29
|
</div>
|
31
30
|
<div class="has-feedback form-group"
|