system-clients 1.6.378 → 1.6.380

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/package.json CHANGED
@@ -1,113 +1,113 @@
1
- {
2
- "name": "system-clients",
3
- "version": "1.6.378",
4
- "description": "系统基础框架",
5
- "main": "src/index.js",
6
- "directories": {
7
- "example": "examples",
8
- "test": "test"
9
- },
10
- "scripts": {
11
- "example": "node build/example-server.js",
12
- "dev": "node build/dev-server.js",
13
- "lint": "eslint src/**.js test/e2e/**.js test/unit/specs/** build/**.js",
14
- "build": "rimraf dist && mkdirp dist && ncp static dist/static && cross-env NODE_ENV=production webpack --progress --hide-modules --config build/webpack.prod.conf.js",
15
- "e2e": "node test/e2e/runner.js",
16
- "unit": "karma start test/unit/karma.conf.js",
17
- "release": "npm set registry http://registry.npmjs.org && npm publish && npm set registry http://registry.npm.taobao.org"
18
- },
19
- "dependencies": {
20
- "base64-js": "^1.3.0",
21
- "js-base64": "^2.4.9",
22
- "jsencrypt": "^3.0.0-rc.1",
23
- "less": "^2.7.1",
24
- "less-loader": "^2.2.3",
25
- "encryptlong": "^3.1.4",
26
- "src": "^1.1.2",
27
- "vue": "^1.0.17"
28
- },
29
- "devDependencies": {
30
- "address-client": "1.3.53.1",
31
- "axios": "0.15.3",
32
- "babel-core": "^6.0.0",
33
- "babel-loader": "^6.0.0",
34
- "babel-plugin-transform-runtime": "^6.0.0",
35
- "babel-preset-es2015": "^6.0.0",
36
- "babel-preset-stage-2": "^6.0.0",
37
- "chai": "^3.5.0",
38
- "co": "^4.6.0",
39
- "connect-history-api-fallback": "^1.1.0",
40
- "cross-env": "^1.0.7",
41
- "cross-spawn": "^2.1.5",
42
- "css-loader": "^0.23.0",
43
- "echarts": "^4.1.0",
44
- "eslint": "^2.0.0",
45
- "eslint-config-standard": "^5.1.0",
46
- "eslint-friendly-formatter": "^1.2.2",
47
- "eslint-loader": "^1.3.0",
48
- "eslint-plugin-html": "^1.3.0",
49
- "eslint-plugin-promise": "^1.0.8",
50
- "eslint-plugin-standard": "^1.3.2",
51
- "eslint-plugin-vue": "^0.1.1",
52
- "eventsource-polyfill": "^0.9.6",
53
- "express": "^4.13.3",
54
- "extract-text-webpack-plugin": "^1.0.1",
55
- "file-loader": "^0.8.4",
56
- "function-bind": "^1.0.2",
57
- "html-webpack-plugin": "^2.8.1",
58
- "http-proxy": "^1.17.0",
59
- "http-proxy-middleware": "^0.11.0",
60
- "inject-loader": "^2.0.1",
61
- "isparta-loader": "^2.0.0",
62
- "jasmine-core": "^2.4.1",
63
- "jquery": "^3.3.1",
64
- "json-loader": "^0.5.4",
65
- "karma": "^1.4.1",
66
- "karma-chrome-launcher": "^2.2.0",
67
- "karma-coverage": "^1.1.1",
68
- "karma-mocha": "^1.3.0",
69
- "karma-sinon-chai": "^1.3.1",
70
- "karma-sourcemap-loader": "^0.3.7",
71
- "karma-spec-reporter": "0.0.31",
72
- "karma-webpack": "^2.0.2",
73
- "less": "^2.7.3",
74
- "ldap-clients": "0.4.5",
75
- "jsencrypt": "3.0.0-rc.1",
76
- "manage-client": "1.0.4",
77
- "mkdirp": "^0.5.1",
78
- "mocha": "^3.2.0",
79
- "ncp": "^2.0.0",
80
- "nightwatch": "^0.8.18",
81
- "rimraf": "^2.5.0",
82
- "selenium-server": "2.52.0",
83
- "sinon": "^2.1.0",
84
- "sinon-chai": "^2.8.0",
85
- "style": "0.0.3",
86
- "style-loader": "^0.20.3",
87
- "url-loader": "^0.5.7",
88
- "vue-client": "1.21.7-jc",
89
- "crypto-js": "^4.1.1",
90
- "vue-hot-reload-api": "^1.2.0",
91
- "vue-html-loader": "^1.0.0",
92
- "vue-loader": "8.2.1",
93
- "vue-resource": "^1.5.0",
94
- "vue-router": "^0.7.13",
95
- "vue-strap": "^1.0.9",
96
- "vue-style-loader": "^1.0.0",
97
- "vue-validator": "2.1.7",
98
- "webpack": "1.12.2",
99
- "webpack-bundle-analyzer": "^2.8.3",
100
- "webpack-dev-middleware": "^1.4.0",
101
- "webpack-hot-middleware": "^2.6.0",
102
- "webpack-merge": "^0.8.3"
103
- },
104
- "repository": {
105
- "type": "git",
106
- "url": "https://gitee.com/aotu/System"
107
- },
108
- "keywords": [
109
- "system_clients"
110
- ],
111
- "author": "杨文宇",
112
- "license": "ISC"
113
- }
1
+ {
2
+ "name": "system-clients",
3
+ "version": "1.6.380",
4
+ "description": "系统基础框架",
5
+ "main": "src/index.js",
6
+ "directories": {
7
+ "example": "examples",
8
+ "test": "test"
9
+ },
10
+ "scripts": {
11
+ "example": "node build/example-server.js",
12
+ "dev": "node build/dev-server.js",
13
+ "lint": "eslint src/**.js test/e2e/**.js test/unit/specs/** build/**.js",
14
+ "build": "rimraf dist && mkdirp dist && ncp static dist/static && cross-env NODE_ENV=production webpack --progress --hide-modules --config build/webpack.prod.conf.js",
15
+ "e2e": "node test/e2e/runner.js",
16
+ "unit": "karma start test/unit/karma.conf.js",
17
+ "release": "npm set registry http://registry.npmjs.org && npm publish && npm set registry http://registry.npm.taobao.org"
18
+ },
19
+ "dependencies": {
20
+ "base64-js": "^1.3.0",
21
+ "js-base64": "^2.4.9",
22
+ "jsencrypt": "^3.0.0-rc.1",
23
+ "less": "^2.7.1",
24
+ "less-loader": "^2.2.3",
25
+ "encryptlong": "^3.1.4",
26
+ "src": "^1.1.2",
27
+ "vue": "^1.0.17"
28
+ },
29
+ "devDependencies": {
30
+ "address-client": "1.3.53.1",
31
+ "axios": "0.15.3",
32
+ "babel-core": "^6.0.0",
33
+ "babel-loader": "^6.0.0",
34
+ "babel-plugin-transform-runtime": "^6.0.0",
35
+ "babel-preset-es2015": "^6.0.0",
36
+ "babel-preset-stage-2": "^6.0.0",
37
+ "chai": "^3.5.0",
38
+ "co": "^4.6.0",
39
+ "connect-history-api-fallback": "^1.1.0",
40
+ "cross-env": "^1.0.7",
41
+ "cross-spawn": "^2.1.5",
42
+ "css-loader": "^0.23.0",
43
+ "echarts": "^4.1.0",
44
+ "eslint": "^2.0.0",
45
+ "eslint-config-standard": "^5.1.0",
46
+ "eslint-friendly-formatter": "^1.2.2",
47
+ "eslint-loader": "^1.3.0",
48
+ "eslint-plugin-html": "^1.3.0",
49
+ "eslint-plugin-promise": "^1.0.8",
50
+ "eslint-plugin-standard": "^1.3.2",
51
+ "eslint-plugin-vue": "^0.1.1",
52
+ "eventsource-polyfill": "^0.9.6",
53
+ "express": "^4.13.3",
54
+ "extract-text-webpack-plugin": "^1.0.1",
55
+ "file-loader": "^0.8.4",
56
+ "function-bind": "^1.0.2",
57
+ "html-webpack-plugin": "^2.8.1",
58
+ "http-proxy": "^1.17.0",
59
+ "http-proxy-middleware": "^0.11.0",
60
+ "inject-loader": "^2.0.1",
61
+ "isparta-loader": "^2.0.0",
62
+ "jasmine-core": "^2.4.1",
63
+ "jquery": "^3.3.1",
64
+ "json-loader": "^0.5.4",
65
+ "karma": "^1.4.1",
66
+ "karma-chrome-launcher": "^2.2.0",
67
+ "karma-coverage": "^1.1.1",
68
+ "karma-mocha": "^1.3.0",
69
+ "karma-sinon-chai": "^1.3.1",
70
+ "karma-sourcemap-loader": "^0.3.7",
71
+ "karma-spec-reporter": "0.0.31",
72
+ "karma-webpack": "^2.0.2",
73
+ "less": "^2.7.3",
74
+ "ldap-clients": "0.4.5",
75
+ "jsencrypt": "3.0.0-rc.1",
76
+ "manage-client": "1.0.4",
77
+ "mkdirp": "^0.5.1",
78
+ "mocha": "^3.2.0",
79
+ "ncp": "^2.0.0",
80
+ "nightwatch": "^0.8.18",
81
+ "rimraf": "^2.5.0",
82
+ "selenium-server": "2.52.0",
83
+ "sinon": "^2.1.0",
84
+ "sinon-chai": "^2.8.0",
85
+ "style": "0.0.3",
86
+ "style-loader": "^0.20.3",
87
+ "url-loader": "^0.5.7",
88
+ "vue-client": "1.21.7-jc",
89
+ "crypto-js": "^4.1.1",
90
+ "vue-hot-reload-api": "^1.2.0",
91
+ "vue-html-loader": "^1.0.0",
92
+ "vue-loader": "8.2.1",
93
+ "vue-resource": "^1.5.0",
94
+ "vue-router": "^0.7.13",
95
+ "vue-strap": "^1.0.9",
96
+ "vue-style-loader": "^1.0.0",
97
+ "vue-validator": "2.1.7",
98
+ "webpack": "1.12.2",
99
+ "webpack-bundle-analyzer": "^2.8.3",
100
+ "webpack-dev-middleware": "^1.4.0",
101
+ "webpack-hot-middleware": "^2.6.0",
102
+ "webpack-merge": "^0.8.3"
103
+ },
104
+ "repository": {
105
+ "type": "git",
106
+ "url": "https://gitee.com/aotu/System"
107
+ },
108
+ "keywords": [
109
+ "system_clients"
110
+ ],
111
+ "author": "杨文宇",
112
+ "license": "ISC"
113
+ }
package/src/App.vue CHANGED
@@ -1,28 +1,24 @@
1
- <template>
2
- <div>
3
- <app-base class="bg">
4
- <div class='flex'>
5
- <article>
6
- <!--<route :comp="{name: 'manage-home'}"></route>-->
7
- <!--<route :comp="{name: 'meter-reading'}"></route>-->
8
- <!--<route :comp="{name: 'Gasproperties'}"></route>-->
9
- <!--<route :comp="{name: 'vender-management'}"></route>-->
10
- <!--<route :comp="{name: 'malfunction-home'}"></route>-->
11
- <route :comp="{name: 'login'}"></route>
12
- <!-- <route :comp="{name: 'load-data'}"></route> -->
13
- <!-- <route :comp="{name: 'load-params', props: {componentName: 'login'}}"></route> -->
14
- <!-- <route :comp="{name: 'load-params', props: {dataUrl: ['rs/sql/getMeterBrand','rs/sql/getPriceType','rs/sql/getMeterStyle'], componentName: 'login'}}"></route> -->
15
- </article>
16
- </div>
17
- </app-base>
18
- </div>
19
- </template>
20
-
21
- <script>
22
- import Vue from 'vue'
23
- export default {
24
- ready () {
25
- Vue.HWQMM = [51, 150, 231, 300, 565, 708, 721, 952, 738, 560, 935, 912, 1274, 1148, 840, 1440]
26
- }
27
- }
28
- </script>
1
+ <template>
2
+ <app-base class="bg">
3
+ <div class='flex'>
4
+ <article>
5
+ <!--<route :comp="{name: 'check-model'}"></route>-->
6
+ <!--<route :comp="{name: 'vender-management'}"></route>-->
7
+ <route :comp="{name: 'login'}"></route>
8
+ <!-- <route :comp="{name: 'load-data'}"></route> -->
9
+ <!-- <route :comp="{name: 'load-params', props: {componentName: 'login'}}"></route> -->
10
+ <!-- <route :comp="{name: 'load-params', props: {dataUrl: ['rs/sql/getMeterBrand','rs/sql/getPriceType','rs/sql/getMeterStyle'], componentName: 'login'}}"></route> -->
11
+ </article>
12
+ </div>
13
+ </app-base>
14
+ </template>
15
+
16
+ <script>
17
+ // import cardListen from './plugins/CardListen'
18
+
19
+ export default {
20
+ // ready () {
21
+ // cardListen.startListen()
22
+ // }
23
+ }
24
+ </script>
@@ -1,281 +1,290 @@
1
- <template>
2
- <div class="flex">
3
- <criteria-paged :model="model" v-ref:paged>
4
-
5
- <criteria partial='criteria' style="background-color: white;" @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">公&nbsp;&nbsp;&nbsp;司</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
-
22
-
23
- <div class="span" style="float:right;margin-top: 6px">
24
- <!-- <button type="button" class="btn-success btn " style="border-radius: 4px"-->
25
- <!-- @click="$parent.$parent.batchRoot('1')">批量启用-->
26
- <!-- </button>-->
27
- <!-- <button type="button" class="btn-danger btn " style="border-radius: 4px"-->
28
- <!-- @click="$parent.$parent.batchRoot('0')">批量停用-->
29
- <!-- </button>-->
30
- <button type="button" class="button_search btn" @click="search()" v-el:cx>查询</button>
31
- <export-excel :data="{condition: condition}"
32
- :field="$parent.$parent.getfield"
33
- sqlurl="rs/logic/saleExport" sql-name="sale_equipmentQuery" template-name='pos导出' :choose-col="true"></export-excel>
34
- <!-- <button type="button" class="button_search btn" @click="$parent.$parent.add() " v-el:cx>新增</button>-->
35
- <!-- <div style="float: right" class="button_spacing"-->
36
- <!-- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"-->
37
- <!-- @click="$parent.$parent.hidden()"></div>-->
38
- </div>
39
- </div>
40
- <div class="row" v-show="$parent.$parent.criteriaShow">
41
- <div class="col-sm-3 form-group">
42
- <label class="font_normal_body">所属人员</label>
43
- <right-tree @re-res="$parent.$parent.getRes" :source="$parent.$parent.source"></right-tree>
44
- </div>
45
- <div class="col-sm-3 form-group">
46
- <label class="font_normal_body">所在地</label>
47
- <input type="text" class="input_search" style="width:60%" v-model="model.f_address"
48
- condition="f_address like '%{}%'" placeholder="所在地">
49
- </div>
50
- <div class="col-sm-3 form-group">
51
- <label class="font_normal_body">设备名称</label>
52
- <input type="text" class="input_search" style="width:60%" v-model="model.f_terminal_name"
53
- condition="f_terminal_name like '%{}%'" placeholder="设备名称">
54
- </div>
55
- <div class="col-sm-3 form-group">
56
- <label class="font_normal_body">机器编号</label>
57
- <input type="text" class="input_search" style="width:60%" v-model="model.f_machine_number"
58
- condition="f_machine_number like '%{}%'" placeholder="机器编号">
59
- </div>
60
- <div class="col-sm-3 form-group">
61
- <label class="font_normal_body">所属银行</label>
62
- <input type="text" class="input_search" style="width:60%" v-model="model.f_bank_name"
63
- condition="f_bank_name like '%{}%'" placeholder="所属银行">
64
- </div>
65
-
66
- </div>
67
- </div>
68
- </criteria>
69
- <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid >
70
- <template partial='head'>
71
- <tr>
72
- <th><input type="checkbox" name="ischeckbox_all_id" v-model="$parent.$parent.$parent.isSelAll" :value.sync="$parent.$parent.$parent.isSelAll" /></th>
73
- <th style="text-align:center;white-space:nowrap;">序号</th>
74
- <th style="text-align:center;white-space:nowrap;">设备编号</th>
75
- <th style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">设备类型</th>
76
- <th style="text-align:center;white-space:nowrap;">设备名称</th>
77
- <th style="text-align:center;white-space:nowrap;">所属公司</th>
78
- <th style="text-align:center;white-space:nowrap;">所属部门</th>
79
- <th style="text-align:center;white-space:nowrap;">所属人员</th>
80
- <th style="text-align:center;white-space:nowrap;">机器编号</th>
81
- <th style="text-align:center;white-space:nowrap;">所在地</th>
82
- <th style="text-align:center;white-space:nowrap;">所属银行</th>
83
- <th style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">操作时间</th>
84
- <th style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">操作人</th>
85
- <th style="text-align:center;white-space:nowrap;">失联状态</th>
86
- </tr>
87
- </template>
88
- <template partial='body':model="model">
89
- <tr>
90
- <td><input type="checkbox" name="checkbox_id" v-model="$parent.$parent.$parent.selPos" :value.sync="row"></td>
91
- <td style="text-align:center;white-space:nowrap;">{{$index+1}}</td>
92
- <!-- <td style="text-align:center;white-space:nowrap;"><span title="点击查看历史" @click="$parent.$parent.$parent.abcd(row)"><a>{{row.f_terminal_number}}</a></span></td>-->
93
- <td style="text-align:center;white-space:nowrap;">{{row.f_terminal_number}}</td>
94
- <td style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">{{row.f_equipment_type}}</td>
95
- <td style="text-align:center;white-space:nowrap;">{{row.f_terminal_name}}</td>
96
- <td style="text-align:center;white-space:nowrap;">{{row.f_user_orgname}}</td>
97
- <td style="text-align:center;white-space:nowrap;">{{row.f_depname}}</td>
98
- <td style="text-align:center;white-space:nowrap;">{{row.f_operator}}</td>
99
- <td style="text-align:center;white-space:nowrap;">{{row.f_machine_number}}</td>
100
- <td style="text-align:center;white-space:nowrap;">{{row.f_address}}</td>
101
- <td style="text-align:center;white-space:nowrap;">{{row.f_bank_name}}</td>
102
- <td style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">{{row.f_report_date}}</td>
103
- <td style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">{{row.f_operator}}</td>
104
- <td style="text-align:center;white-space:nowrap;" >{{row.isunknown}}</td>
105
- </tr>
106
- </template>
107
- </data-grid>
108
- </criteria-paged>
109
- </div>
110
- <modal v-show="infoshow" :show.sync="infoshow" v-ref:modal backdrop="false" width="800px" title="终端历史信息">
111
- <article slot="modal-body" class="modal-body">
112
- <criteria-paged :model="model2" v-ref:paged2>
113
- <data-grid :model="model2" v-ref:grid2 partial='list'>
114
- <template partial='head'>
115
- <tr>
116
- <!--<th style="padding: 0;border: 0">
117
- <input type="checkbox" id="f_operator" v-model="$parent.$parent.$parent.all[model.pageIndex-1]"
118
- @change="$parent.$parent.$parent.select()" style="width: 22px;height: 22px"/>
119
- </th>-->
120
- <th><nobr>序号</nobr></th>
121
- <th><nobr>终端号</nobr></th>
122
- <th><nobr>上次上报时间</nobr></th>
123
- <th><nobr>本次上报时间</nobr></th>
124
- <th><nobr><b>状态</b></nobr></th>
125
- </tr>
126
- </template>
127
- <template partial='body'>
128
- <td style="text-align: center;">{{$index + 1}}</td>
129
- <td style="text-align: center;">{{row.f_terminal_number}}</td>
130
- <td style="text-align: center;">{{row.f_update_date}}</td>
131
- <td style="text-align: center;">{{row.f_update_date }}</td>
132
- <td style="text-align: center;"><b>{{row.f_pos_state}}</b></td>
133
- </template>
134
- </data-grid>
135
- </criteria-paged>
136
- </article>
137
- <footer slot="modal-footer" class="modal-footer">
138
- <button type="button" class="btn btn-success" @click='infoclose'>关闭</button>
139
- </footer>
140
- </modal>
141
- </template>
142
-
143
- <script>
144
-
145
- import {PagedList} from 'vue-client'
146
-
147
- export default {
148
- title: '终端控制',
149
- components: {},
150
- data () {
151
- return {
152
- source: `tool.getFullTree(this.getRights().where(row.getType() != $zone$).where(row.getType() != $role$))`,
153
- model: new PagedList('rs/sql/equipmentQuery', 20),
154
- model2: new PagedList('rs/sql/singleTable', 30, {tablename: '`t_poshistory`'}),
155
- curorgid: [this.f_filialeid],
156
- f_orgid: '',
157
- f_filialeids: '',
158
- criteriaShow: false,
159
- infoadd: false,
160
- selPos: [],
161
- getfield:{'f_terminal_number': '设备编号', 'f_equipment_type':'设备类型','f_terminal_name':'设备名称','f_user_orgname':'所属公司',
162
- 'f_depname':'所属部门','f_operator':'所属人员','f_state':'状态','f_machine_number':'机器编号',
163
- 'f_address':'所在地','f_bank_name':'所属银行','isunknown':'失联状态',
164
- 'f_report_date':'操作时间','f_operator':'操作人'},
165
- isSelAll: false, // 默认不全选
166
- infoshow: false
167
- }
168
- },
169
- props: ['f_filialeid','isshowless'],
170
- ready () {
171
- this.search()
172
- },
173
- watch:{
174
- // 'selPos'(val){
175
- // console.log(val)
176
- // },
177
- 'isSelAll'(val){
178
- console.log('-------', val)
179
- if (val) {
180
- // 对当前页面全选
181
- this.selPos = []
182
- for (const sel of this.model.rows) {
183
- // if (this.selPos.indexOf(sel.id) < 0){
184
- this.selPos.push(sel)
185
- // }
186
- }
187
- } else {
188
- // 取消全选
189
- this.selPos = []
190
- }
191
- }
192
- },
193
- methods: {
194
- getRes(val){
195
- if (val.orgobj.length === 1 && val.orgobj[0].resourcetype === 'user'){
196
- this.$refs.paged.$refs.cri.model.f_user_operatorid=val.orgobj[0].userid
197
- this.$refs.paged.$refs.cri.model.f_user_operator=val.orgobj[0].name
198
- } else {
199
- this.$refs.paged.$refs.cri.model.f_user_operatorid=''
200
- this.$refs.paged.$refs.cri.model.f_user_operator=''
201
- }
202
- },
203
- infoclose(){
204
- this.infoshow=false
205
- },
206
- // 批量操作
207
- async batchRoot(val) {
208
- let arrs = []
209
- let alertMessage = ''
210
- let selPos = this.selPos
211
- if (val === '0') {
212
- alertMessage = '停用'
213
- for (const tmp of selPos) {
214
- if (tmp.f_state === '正常') arrs.push(tmp)
215
- }
216
- } else if (val === '1') {
217
- alertMessage = '启用'
218
- for (const tmp of selPos) {
219
- if (tmp.f_state === '停用') arrs.push(tmp)
220
- }
221
- } else if (val === '2') {
222
- alertMessage = '升级'
223
- for (const tmp of selPos) {
224
- if (tmp.f_state === '正常') arrs.push(tmp)
225
- }
226
- } else {
227
- this.showAlert('出现异常,请重新进操作')
228
- return
229
- }
230
- await this.$resetpost('rs/logic/batchPos', {data: {tasks: arrs, taskState: val}}, {
231
- rejectMsg: null,
232
- resolveMsg: null
233
- })
234
- // 需要提示
235
- this.$showAlert(`已经开始批量${alertMessage},选择${selPos.length},其中${arrs.length}台可以正常${alertMessage},具体请留意设备情况,并刷新列表查看执行结果!`,'success', 2500)
236
- this.$dispatch('close')
237
- },
238
- abcd (row) {
239
- console.log("chakan",row)
240
- let condition = `f_terminal_number = '${row.f_terminal_number}' order by id desc`
241
- this.model2.search(condition)
242
- this.infoshow = true
243
- },
244
- search () {
245
- this.$refs.paged.$refs.cri.search()
246
- },
247
-
248
- selfSearch (args) {
249
- console.log(args)
250
- if (args.model.f_user_operatorid && args.model.f_user_operator){
251
- args.condition = `${args.condition} and f_user_operatorid = '${args.model.f_user_operatorid}'
252
- and f_user_operator = '${args.model.f_user_operator}'`
253
- }
254
- args.condition = `${args.condition} and f_equipment_type = 'POS'`
255
- this.model.search(args.condition, this.model)
256
- this.$dispatch('research')
257
- },
258
-
259
- add () {
260
- this.infoadd=false
261
- // if (this.f_filialeid) {
262
- this.$dispatch('add', this.f_filialeid)
263
- // } else {
264
- // this.$showAlert('请先选择左上角的所在分公司', 'warning', 2000)
265
- // }
266
- },
267
-
268
- getorg (val) {
269
- this.f_orgid = val[0]
270
- this.f_filialeid = val[0]
271
- // this.search()
272
- },
273
- hidden(){
274
- this.criteriaShow = !this.criteriaShow
275
- }
276
- },
277
- computed: {
278
-
279
- }
280
- }
281
- </script>
1
+ <template>
2
+ <div class="flex">
3
+ <criteria-paged :model="model" v-ref:paged>
4
+
5
+ <criteria partial='criteria' style="background-color: white;" @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">公&nbsp;&nbsp;&nbsp;司</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
+
22
+
23
+ <div class="span" style="float:right;margin-top: 6px">
24
+ <!-- <button type="button" class="btn-success btn " style="border-radius: 4px"-->
25
+ <!-- @click="$parent.$parent.batchRoot('1')">批量启用-->
26
+ <!-- </button>-->
27
+ <!-- <button type="button" class="btn-danger btn " style="border-radius: 4px"-->
28
+ <!-- @click="$parent.$parent.batchRoot('0')">批量停用-->
29
+ <!-- </button>-->
30
+ <button type="button" class="button_search btn" @click="search()" v-el:cx>查询</button>
31
+ <export-excel :data="{condition: condition}"
32
+ :field="$parent.$parent.getfield"
33
+ sqlurl="rs/logic/saleExport" sql-name="sale_equipmentQuery" template-name='pos导出' :choose-col="true"></export-excel>
34
+ <!-- <button type="button" class="button_search btn" @click="$parent.$parent.add() " v-el:cx>新增</button>-->
35
+ <!-- <div style="float: right" class="button_spacing"-->
36
+ <!-- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"-->
37
+ <!-- @click="$parent.$parent.hidden()"></div>-->
38
+ </div>
39
+ </div>
40
+ <div class="row" v-show="$parent.$parent.criteriaShow">
41
+ <div class="col-sm-3 form-group">
42
+ <label class="font_normal_body">所属人员</label>
43
+ <right-tree @re-res="$parent.$parent.getRes" :source="$parent.$parent.source"></right-tree>
44
+ </div>
45
+ <div class="col-sm-3 form-group">
46
+ <label class="font_normal_body">所在地</label>
47
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_address"
48
+ condition="f_address like '%{}%'" placeholder="所在地">
49
+ </div>
50
+ <div class="col-sm-3 form-group">
51
+ <label class="font_normal_body">设备名称</label>
52
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_terminal_name"
53
+ condition="f_terminal_name like '%{}%'" placeholder="设备名称">
54
+ </div>
55
+ <div class="col-sm-3 form-group">
56
+ <label class="font_normal_body">机器编号</label>
57
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_machine_number"
58
+ condition="f_machine_number like '%{}%'" placeholder="机器编号">
59
+ </div>
60
+ <div class="col-sm-3 form-group">
61
+ <label class="font_normal_body">所属银行</label>
62
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_bank_name"
63
+ condition="f_bank_name like '%{}%'" placeholder="所属银行">
64
+ </div>
65
+
66
+ </div>
67
+ </div>
68
+ </criteria>
69
+ <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid >
70
+ <template partial='head'>
71
+ <tr>
72
+ <th><input type="checkbox" name="ischeckbox_all_id" v-model="$parent.$parent.$parent.isSelAll" :value.sync="$parent.$parent.$parent.isSelAll" /></th>
73
+ <th style="text-align:center;white-space:nowrap;">序号</th>
74
+ <th style="text-align:center;white-space:nowrap;">设备编号</th>
75
+ <th style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">设备类型</th>
76
+ <th style="text-align:center;white-space:nowrap;">设备名称</th>
77
+ <th style="text-align:center;white-space:nowrap;">所属公司</th>
78
+ <th style="text-align:center;white-space:nowrap;">所属部门</th>
79
+ <th style="text-align:center;white-space:nowrap;">所属人员</th>
80
+ <th style="text-align:center;white-space:nowrap;">机器编号</th>
81
+ <th style="text-align:center;white-space:nowrap;">所在地</th>
82
+ <th style="text-align:center;white-space:nowrap;">所属银行</th>
83
+ <th style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">操作时间</th>
84
+ <th style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">操作人</th>
85
+ <th style="text-align:center;white-space:nowrap;">失联状态</th>
86
+ </tr>
87
+ </template>
88
+ <template partial='body':model="model">
89
+ <tr>
90
+ <td><input type="checkbox" name="checkbox_id" v-model="$parent.$parent.$parent.selPos" :value.sync="row"></td>
91
+ <td style="text-align:center;white-space:nowrap;">{{$index+1}}</td>
92
+ <!-- <td style="text-align:center;white-space:nowrap;"><span title="点击查看历史" @click="$parent.$parent.$parent.abcd(row)"><a>{{row.f_terminal_number}}</a></span></td>-->
93
+ <td style="text-align:center;white-space:nowrap;">{{row.f_terminal_number}}</td>
94
+ <td style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">{{row.f_equipment_type}}</td>
95
+ <td style="text-align:center;white-space:nowrap;">{{row.f_terminal_name}}</td>
96
+ <td style="text-align:center;white-space:nowrap;">{{row.f_user_orgname}}</td>
97
+ <td style="text-align:center;white-space:nowrap;">{{row.f_depname}}</td>
98
+ <td style="text-align:center;white-space:nowrap;">{{row.f_operator}}</td>
99
+ <td style="text-align:center;white-space:nowrap;">{{row.f_machine_number}}</td>
100
+ <td style="text-align:center;white-space:nowrap;">{{row.f_address}}</td>
101
+ <td style="text-align:center;white-space:nowrap;">{{row.f_bank_name}}</td>
102
+ <td style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">{{row.f_report_date}}</td>
103
+ <td style="text-align:center;white-space:nowrap;" v-show="!$parent.$parent.$parent.isshowless">{{row.f_operator}}</td>
104
+ <td style="text-align:center;white-space:nowrap;" >{{row.isunknown}}</td>
105
+ </tr>
106
+ </template>
107
+ </data-grid>
108
+ </criteria-paged>
109
+ </div>
110
+ <modal v-show="infoshow" :show.sync="infoshow" v-ref:modal backdrop="false" width="800px" title="终端历史信息">
111
+ <article slot="modal-body" class="modal-body">
112
+ <criteria-paged :model="model2" v-ref:paged2>
113
+ <data-grid :model="model2" v-ref:grid2 partial='list'>
114
+ <template partial='head'>
115
+ <tr>
116
+ <!--<th style="padding: 0;border: 0">
117
+ <input type="checkbox" id="f_operator" v-model="$parent.$parent.$parent.all[model.pageIndex-1]"
118
+ @change="$parent.$parent.$parent.select()" style="width: 22px;height: 22px"/>
119
+ </th>-->
120
+ <th><nobr>序号</nobr></th>
121
+ <th><nobr>终端号</nobr></th>
122
+ <th><nobr>上次上报时间</nobr></th>
123
+ <th><nobr>本次上报时间</nobr></th>
124
+ <th><nobr><b>状态</b></nobr></th>
125
+ </tr>
126
+ </template>
127
+ <template partial='body'>
128
+ <td style="text-align: center;">{{$index + 1}}</td>
129
+ <td style="text-align: center;">{{row.f_terminal_number}}</td>
130
+ <td style="text-align: center;">{{row.f_update_date}}</td>
131
+ <td style="text-align: center;">{{row.f_update_date }}</td>
132
+ <td style="text-align: center;"><b>{{row.f_pos_state}}</b></td>
133
+ </template>
134
+ </data-grid>
135
+ </criteria-paged>
136
+ </article>
137
+ <footer slot="modal-footer" class="modal-footer">
138
+ <button type="button" class="btn btn-success" @click='infoclose'>关闭</button>
139
+ </footer>
140
+ </modal>
141
+ </template>
142
+
143
+ <script>
144
+
145
+ import {PagedList} from 'vue-client'
146
+
147
+ export default {
148
+ title: '终端控制',
149
+ components: {},
150
+ data () {
151
+ return {
152
+ source: `tool.getFullTree(this.getRights().where(row.getType() != $zone$).where(row.getType() != $role$))`,
153
+ model: new PagedList('rs/sql/equipmentQuery', 20),
154
+ model2: new PagedList('rs/sql/singleTable', 30, {tablename: '`t_poshistory`'}),
155
+ curorgid: [this.f_filialeid],
156
+ f_orgid: '',
157
+ f_filialeids: '',
158
+ criteriaShow: false,
159
+ infoadd: false,
160
+ selPos: [],
161
+ getfield:{
162
+ 'f_terminal_number': '设备编号',
163
+ 'f_equipment_type':'设备类型',
164
+ 'f_terminal_name':'设备名称',
165
+ 'f_user_orgname':'所属公司',
166
+ 'f_depname':'所属部门',
167
+ 'f_operator':'所属人员',
168
+ 'f_machine_number':'机器编号',
169
+ 'f_address':'所在地',
170
+ 'f_bank_name':'所属银行',
171
+ 'isunknown':'失联状态',
172
+ 'f_report_date':'操作时间'
173
+ },
174
+ isSelAll: false, // 默认不全选
175
+ infoshow: false
176
+ }
177
+ },
178
+ props: ['f_filialeid','isshowless'],
179
+ ready () {
180
+ this.search()
181
+ },
182
+ watch:{
183
+ // 'selPos'(val){
184
+ // console.log(val)
185
+ // },
186
+ 'isSelAll'(val){
187
+ console.log('-------', val)
188
+ if (val) {
189
+ // 对当前页面全选
190
+ this.selPos = []
191
+ for (const sel of this.model.rows) {
192
+ // if (this.selPos.indexOf(sel.id) < 0){
193
+ this.selPos.push(sel)
194
+ // }
195
+ }
196
+ } else {
197
+ // 取消全选
198
+ this.selPos = []
199
+ }
200
+ }
201
+ },
202
+ methods: {
203
+ getRes(val){
204
+ if (val.orgobj.length === 1 && val.orgobj[0].resourcetype === 'user'){
205
+ this.$refs.paged.$refs.cri.model.f_user_operatorid=val.orgobj[0].userid
206
+ this.$refs.paged.$refs.cri.model.f_user_operator=val.orgobj[0].name
207
+ } else {
208
+ this.$refs.paged.$refs.cri.model.f_user_operatorid=''
209
+ this.$refs.paged.$refs.cri.model.f_user_operator=''
210
+ }
211
+ },
212
+ infoclose(){
213
+ this.infoshow=false
214
+ },
215
+ // 批量操作
216
+ async batchRoot(val) {
217
+ let arrs = []
218
+ let alertMessage = ''
219
+ let selPos = this.selPos
220
+ if (val === '0') {
221
+ alertMessage = '停用'
222
+ for (const tmp of selPos) {
223
+ if (tmp.f_state === '正常') arrs.push(tmp)
224
+ }
225
+ } else if (val === '1') {
226
+ alertMessage = '启用'
227
+ for (const tmp of selPos) {
228
+ if (tmp.f_state === '停用') arrs.push(tmp)
229
+ }
230
+ } else if (val === '2') {
231
+ alertMessage = '升级'
232
+ for (const tmp of selPos) {
233
+ if (tmp.f_state === '正常') arrs.push(tmp)
234
+ }
235
+ } else {
236
+ this.showAlert('出现异常,请重新进操作')
237
+ return
238
+ }
239
+ await this.$resetpost('rs/logic/batchPos', {data: {tasks: arrs, taskState: val}}, {
240
+ rejectMsg: null,
241
+ resolveMsg: null
242
+ })
243
+ // 需要提示
244
+ this.$showAlert(`已经开始批量${alertMessage},选择${selPos.length},其中${arrs.length}台可以正常${alertMessage},具体请留意设备情况,并刷新列表查看执行结果!`,'success', 2500)
245
+ this.$dispatch('close')
246
+ },
247
+ abcd (row) {
248
+ console.log("chakan",row)
249
+ let condition = `f_terminal_number = '${row.f_terminal_number}' order by id desc`
250
+ this.model2.search(condition)
251
+ this.infoshow = true
252
+ },
253
+ search () {
254
+ this.$refs.paged.$refs.cri.search()
255
+ },
256
+
257
+ selfSearch (args) {
258
+ console.log(args)
259
+ if (args.model.f_user_operatorid && args.model.f_user_operator){
260
+ args.condition = `${args.condition} and f_user_operatorid = '${args.model.f_user_operatorid}'
261
+ and f_user_operator = '${args.model.f_user_operator}'`
262
+ }
263
+ args.condition = `${args.condition} and f_equipment_type = 'POS'`
264
+ this.model.search(args.condition, this.model)
265
+ this.$dispatch('research')
266
+ },
267
+
268
+ add () {
269
+ this.infoadd=false
270
+ // if (this.f_filialeid) {
271
+ this.$dispatch('add', this.f_filialeid)
272
+ // } else {
273
+ // this.$showAlert('请先选择左上角的所在分公司', 'warning', 2000)
274
+ // }
275
+ },
276
+
277
+ getorg (val) {
278
+ this.f_orgid = val[0]
279
+ this.f_filialeid = val[0]
280
+ // this.search()
281
+ },
282
+ hidden(){
283
+ this.criteriaShow = !this.criteriaShow
284
+ }
285
+ },
286
+ computed: {
287
+
288
+ }
289
+ }
290
+ </script>
@@ -0,0 +1,30 @@
1
+ import AesEncryptJS from "crypto-js"
2
+
3
+ export default {
4
+ /**
5
+ * AES加密
6
+ * @param word
7
+ * @returns {*}
8
+ */
9
+ AESEncrypt(word, encryKey){
10
+ var key = AesEncryptJS.enc.Utf8.parse(encryKey);
11
+ var srcs = AesEncryptJS.enc.Utf8.parse(word);
12
+ var encrypted = AesEncryptJS.AES.encrypt(srcs, key, {mode:AesEncryptJS.mode.ECB,padding: AesEncryptJS.pad.Pkcs7});
13
+ return encrypted.toString();
14
+ },
15
+ /**
16
+ * AES解密
17
+ * @param word
18
+ * @returns {*}
19
+ */
20
+ AESDecrypt(word, encryKey){
21
+ var key = AesEncryptJS.enc.Utf8.parse(encryKey);
22
+ var decrypt = AesEncryptJS.AES.decrypt(word, key, {mode:AesEncryptJS.mode.ECB,padding: AesEncryptJS.pad.Pkcs7});
23
+ var ret = AesEncryptJS.enc.Utf8.stringify(decrypt).toString();
24
+ try{
25
+ return JSON.parse(ret) ;
26
+ }catch (e){
27
+ return ret
28
+ }
29
+ },
30
+ }
@@ -1,6 +1,7 @@
1
1
  import Vue from 'vue'
2
2
  import {HttpResetClass} from 'vue-client'
3
3
  import JSEncrypt from 'encryptlong'
4
+ import cryptJS from './EncryptUtil'
4
5
 
5
6
  let loginGen = async function (name, password, vcode, uuid) {
6
7
  let data = {name: name, password: password, vcode: vcode, uuid: uuid}
@@ -198,6 +199,7 @@ let loginGen = async function (name, password, vcode, uuid) {
198
199
  }
199
200
 
200
201
  let GetLoginInfoService = {
202
+ SinglePageToken: {},
201
203
  // 登录后要处理的异步对象
202
204
  afterLogin: [],
203
205
  //验证码开关
@@ -217,6 +219,7 @@ let GetLoginInfoService = {
217
219
  * @param password
218
220
  */
219
221
  login (name, password, vcode, uuid) {
222
+ Vue.$login.SinglePageToken = cryptJS.AESEncrypt(JSON.stringify({name: name, password: password}), "3KMKqvgwR8ULbR8Z")
220
223
  return loginGen(name, password, vcode, uuid)
221
224
  },
222
225