manage-client 3.3.142 → 3.3.144

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,111 +1,111 @@
1
- {
2
- "name": "manage-client",
3
- "version": "3.3.142",
4
- "description": "经营管控模块前台组件",
5
- "main": "src/index.js",
6
- "directories": {
7
- "test": "test"
8
- },
9
- "dependencies": {
10
- "crypto-js": "^4.1.1",
11
- "swiper": "^5.4.5"
12
- },
13
- "devDependencies": {
14
- "axios": "0.15.3",
15
- "babel-core": "^6.0.0",
16
- "babel-loader": "^6.0.0",
17
- "babel-plugin-transform-runtime": "^6.0.0",
18
- "babel-preset-es2015": "^6.0.0",
19
- "babel-preset-stage-2": "^6.0.0",
20
- "chai": "^3.5.0",
21
- "co": "^4.6.0",
22
- "connect-history-api-fallback": "^1.1.0",
23
- "cross-env": "^1.0.7",
24
- "cross-spawn": "^2.1.5",
25
- "css-loader": "^0.23.0",
26
- "echarts": "^4.1.0",
27
- "eslint": "^2.0.0",
28
- "eslint-config-standard": "^5.1.0",
29
- "eslint-friendly-formatter": "^1.2.2",
30
- "eslint-loader": "^1.3.0",
31
- "eslint-plugin-html": "^1.3.0",
32
- "eslint-plugin-promise": "^1.0.8",
33
- "eslint-plugin-standard": "^1.3.2",
34
- "eslint-plugin-vue": "^0.1.1",
35
- "eventsource-polyfill": "^0.9.6",
36
- "express": "^4.13.3",
37
- "extract-text-webpack-plugin": "^1.0.1",
38
- "filemanager-webpack-plugin": "^2.0.5",
39
- "file-loader": "^0.8.4",
40
- "function-bind": "^1.0.2",
41
- "html-webpack-plugin": "^2.8.1",
42
- "http-proxy-middleware": "^0.11.0",
43
- "inject-loader": "^2.0.1",
44
- "isparta-loader": "^2.0.0",
45
- "jasmine-core": "^2.4.1",
46
- "jquery": "^3.3.1",
47
- "jsencrypt": "3.0.0-rc.1",
48
- "json-loader": "^0.5.4",
49
- "karma": "^1.4.1",
50
- "karma-chrome-launcher": "^2.2.0",
51
- "karma-coverage": "^1.1.1",
52
- "karma-mocha": "^1.3.0",
53
- "karma-sinon-chai": "^1.3.1",
54
- "karma-sourcemap-loader": "^0.3.7",
55
- "karma-spec-reporter": "0.0.31",
56
- "karma-webpack": "^2.0.2",
57
- "ldap-clients": "3.0.7",
58
- "less": "^2.7.3",
59
- "mkdirp": "^0.5.1",
60
- "mocha": "^3.2.0",
61
- "moment": "2.24.0",
62
- "ncp": "^2.0.0",
63
- "rimraf": "^2.5.0",
64
- "sale-client": "3.4.14",
65
- "selenium-server": "2.52.0",
66
- "sinon": "^2.1.0",
67
- "sinon-chai": "^2.8.0",
68
- "style": "0.0.3",
69
- "style-loader": "^0.20.3",
70
- "swiper": "^5.4.5",
71
- "system-clients": "3.2.61",
72
- "url-loader": "^0.5.7",
73
- "vue-amap": "0.5.10",
74
- "vue-client": "1.24.132",
75
- "vue-hot-reload-api": "^1.2.0",
76
- "vue-html-loader": "^1.0.0",
77
- "vue-loader": "8.2.1",
78
- "vue-resource": "^1.5.0",
79
- "vue-router": "^0.7.13",
80
- "vue-strap": "^1.0.9",
81
- "vue-style-loader": "^1.0.0",
82
- "vue-validator": "2.1.7",
83
- "webpack": "1.12.2",
84
- "webpack-dev-middleware": "^1.4.0",
85
- "webpack-hot-middleware": "^2.6.0",
86
- "webpack-merge": "^0.8.3",
87
- "webpack-parallel-uglify-plugin": "^1.0.0"
88
- },
89
- "scripts": {
90
- "unit": "karma start test/unit/karma.conf.js --single-run",
91
- "example": "node build/example-server.js",
92
- "dev": "node build/dev-server.js",
93
- "lint": "eslint src/**.js test/e2e/**.js test/unit/specs/** build/**.js",
94
- "oldbuild": "rimraf dist && mkdirp dist && ncp static dist/static && cross-env NODE_ENV=production webpack --progress --hide-modules --config build/webpack.oldprod.conf.js",
95
- "build": "rimraf lib && mkdirp lib && cross-env VUE_APP_ENTRY=saleManage webpack --progress --hide-modules --config build/webpack.prod.conf.js && cross-env VUE_APP_ENTRY=reportManage webpack --progress --hide-modules --config build/webpack.prod.conf.js && cross-env VUE_APP_BUILDEND=true VUE_APP_ENTRY=webmeterManage webpack --progress --hide-modules --config build/webpack.prod.conf.js",
96
- "buildSaleManage": "rimraf lib && mkdirp lib && cross-env VUE_APP_ENTRY=saleManage VUE_APP_SINGLE=true webpack --progress --hide-modules --config build/webpack.prod.conf.js",
97
- "buildReportManage": "rimraf lib && mkdirp lib && cross-env VUE_APP_ENTRY=reportManage VUE_APP_SINGLE=true webpack --progress --hide-modules --config build/webpack.prod.conf.js",
98
- "buildWebmeterManage": "rimraf lib && mkdirp lib && cross-env VUE_APP_ENTRY=webmeterManage VUE_APP_SINGLE=true webpack --progress --hide-modules --config build/webpack.prod.conf.js",
99
- "e2e": "node test/e2e/runner.js",
100
- "release": "bash build/release.sh"
101
- },
102
- "repository": {
103
- "type": "git",
104
- "url": "https://gitee.com/aote/management_modules.git"
105
- },
106
- "keywords": [
107
- "manage"
108
- ],
109
- "author": "liuxudong",
110
- "license": "ISC"
111
- }
1
+ {
2
+ "name": "manage-client",
3
+ "version": "3.3.144",
4
+ "description": "经营管控模块前台组件",
5
+ "main": "src/index.js",
6
+ "directories": {
7
+ "test": "test"
8
+ },
9
+ "dependencies": {
10
+ "crypto-js": "^4.1.1",
11
+ "swiper": "^5.4.5"
12
+ },
13
+ "devDependencies": {
14
+ "axios": "0.15.3",
15
+ "babel-core": "^6.0.0",
16
+ "babel-loader": "^6.0.0",
17
+ "babel-plugin-transform-runtime": "^6.0.0",
18
+ "babel-preset-es2015": "^6.0.0",
19
+ "babel-preset-stage-2": "^6.0.0",
20
+ "chai": "^3.5.0",
21
+ "co": "^4.6.0",
22
+ "connect-history-api-fallback": "^1.1.0",
23
+ "cross-env": "^1.0.7",
24
+ "cross-spawn": "^2.1.5",
25
+ "css-loader": "^0.23.0",
26
+ "echarts": "^4.1.0",
27
+ "eslint": "^2.0.0",
28
+ "eslint-config-standard": "^5.1.0",
29
+ "eslint-friendly-formatter": "^1.2.2",
30
+ "eslint-loader": "^1.3.0",
31
+ "eslint-plugin-html": "^1.3.0",
32
+ "eslint-plugin-promise": "^1.0.8",
33
+ "eslint-plugin-standard": "^1.3.2",
34
+ "eslint-plugin-vue": "^0.1.1",
35
+ "eventsource-polyfill": "^0.9.6",
36
+ "express": "^4.13.3",
37
+ "extract-text-webpack-plugin": "^1.0.1",
38
+ "filemanager-webpack-plugin": "^2.0.5",
39
+ "file-loader": "^0.8.4",
40
+ "function-bind": "^1.0.2",
41
+ "html-webpack-plugin": "^2.8.1",
42
+ "http-proxy-middleware": "^0.11.0",
43
+ "inject-loader": "^2.0.1",
44
+ "isparta-loader": "^2.0.0",
45
+ "jasmine-core": "^2.4.1",
46
+ "jquery": "^3.3.1",
47
+ "jsencrypt": "3.0.0-rc.1",
48
+ "json-loader": "^0.5.4",
49
+ "karma": "^1.4.1",
50
+ "karma-chrome-launcher": "^2.2.0",
51
+ "karma-coverage": "^1.1.1",
52
+ "karma-mocha": "^1.3.0",
53
+ "karma-sinon-chai": "^1.3.1",
54
+ "karma-sourcemap-loader": "^0.3.7",
55
+ "karma-spec-reporter": "0.0.31",
56
+ "karma-webpack": "^2.0.2",
57
+ "ldap-clients": "3.0.7",
58
+ "less": "^2.7.3",
59
+ "mkdirp": "^0.5.1",
60
+ "mocha": "^3.2.0",
61
+ "moment": "2.24.0",
62
+ "ncp": "^2.0.0",
63
+ "rimraf": "^2.5.0",
64
+ "sale-client": "3.4.14",
65
+ "selenium-server": "2.52.0",
66
+ "sinon": "^2.1.0",
67
+ "sinon-chai": "^2.8.0",
68
+ "style": "0.0.3",
69
+ "style-loader": "^0.20.3",
70
+ "swiper": "^5.4.5",
71
+ "system-clients": "3.2.61",
72
+ "url-loader": "^0.5.7",
73
+ "vue-amap": "0.5.10",
74
+ "vue-client": "1.24.132",
75
+ "vue-hot-reload-api": "^1.2.0",
76
+ "vue-html-loader": "^1.0.0",
77
+ "vue-loader": "8.2.1",
78
+ "vue-resource": "^1.5.0",
79
+ "vue-router": "^0.7.13",
80
+ "vue-strap": "^1.0.9",
81
+ "vue-style-loader": "^1.0.0",
82
+ "vue-validator": "2.1.7",
83
+ "webpack": "1.12.2",
84
+ "webpack-dev-middleware": "^1.4.0",
85
+ "webpack-hot-middleware": "^2.6.0",
86
+ "webpack-merge": "^0.8.3",
87
+ "webpack-parallel-uglify-plugin": "^1.0.0"
88
+ },
89
+ "scripts": {
90
+ "unit": "karma start test/unit/karma.conf.js --single-run",
91
+ "example": "node build/example-server.js",
92
+ "dev": "node build/dev-server.js",
93
+ "lint": "eslint src/**.js test/e2e/**.js test/unit/specs/** build/**.js",
94
+ "oldbuild": "rimraf dist && mkdirp dist && ncp static dist/static && cross-env NODE_ENV=production webpack --progress --hide-modules --config build/webpack.oldprod.conf.js",
95
+ "build": "rimraf lib && mkdirp lib && cross-env VUE_APP_ENTRY=saleManage webpack --progress --hide-modules --config build/webpack.prod.conf.js && cross-env VUE_APP_ENTRY=reportManage webpack --progress --hide-modules --config build/webpack.prod.conf.js && cross-env VUE_APP_BUILDEND=true VUE_APP_ENTRY=webmeterManage webpack --progress --hide-modules --config build/webpack.prod.conf.js",
96
+ "buildSaleManage": "rimraf lib && mkdirp lib && cross-env VUE_APP_ENTRY=saleManage VUE_APP_SINGLE=true webpack --progress --hide-modules --config build/webpack.prod.conf.js",
97
+ "buildReportManage": "rimraf lib && mkdirp lib && cross-env VUE_APP_ENTRY=reportManage VUE_APP_SINGLE=true webpack --progress --hide-modules --config build/webpack.prod.conf.js",
98
+ "buildWebmeterManage": "rimraf lib && mkdirp lib && cross-env VUE_APP_ENTRY=webmeterManage VUE_APP_SINGLE=true webpack --progress --hide-modules --config build/webpack.prod.conf.js",
99
+ "e2e": "node test/e2e/runner.js",
100
+ "release": "bash build/release.sh"
101
+ },
102
+ "repository": {
103
+ "type": "git",
104
+ "url": "https://gitee.com/aote/management_modules.git"
105
+ },
106
+ "keywords": [
107
+ "manage"
108
+ ],
109
+ "author": "liuxudong",
110
+ "license": "ISC"
111
+ }
@@ -182,12 +182,11 @@ export default {
182
182
  this.residentialArea = house
183
183
  },
184
184
  permission(name) {
185
- if (this.$login.r.find(value => value == '综合查询')) {
186
- if (!this.$login.r.find(value => value == name)) {
187
- return false
188
- }
185
+ if (!this.$login.r.find(value => value == name)) {
186
+ return false
187
+ }else{
188
+ return true
189
189
  }
190
- return true
191
190
  },
192
191
  cancel(obj) {
193
192
  this.listpage = true
@@ -172,6 +172,7 @@ export default {
172
172
  components: {Tabs, TabButton},
173
173
  ready() {
174
174
  this.getaddress()
175
+ console.log(this.$login.r)
175
176
  },
176
177
  methods: {
177
178
  async getaddress(){
@@ -190,12 +191,11 @@ export default {
190
191
  this.residentialArea = house
191
192
  },
192
193
  permission(name) {
193
- if (this.$login.r.find(value => value == '综合查询')) {
194
- if (!this.$login.r.find(value => value == name)) {
195
- return false
196
- }
194
+ if (!this.$login.r.find(value => value == name)) {
195
+ return false
196
+ }else{
197
+ return true
197
198
  }
198
- return true
199
199
  },
200
200
  cancel(obj) {
201
201
  this.listpage = true
@@ -245,7 +245,7 @@ export default{
245
245
  cardhandplanConfig: {
246
246
  'f_userinfo_code': '客户编号', 'f_user_name': '客户名称', 'f_address': '地址', 'f_meternumber': '表号',
247
247
  'f_last_tablebase': '上期底数', 'f_tablebase': '本期底数', 'f_real_amount': '用气量', 'f_result_state': '抄表结果状态', 'f_card_total_gas': '总购气量',
248
- 'f_yuliang': '余量', 'f_inputtor': '抄表员', 'f_hand_date': '录入日期',
248
+ 'f_shengyu_gas': '余量', 'f_inputtor': '抄表员', 'f_hand_date': '录入日期',
249
249
  'f_meter_state': '抄表状态', 'f_operator': '操作员', 'f_depname': '部门'
250
250
  },
251
251
  handplanConfig: {
@@ -0,0 +1,702 @@
1
+ <template>
2
+ <div class="flex-row" v-show="!showdetail">
3
+ <div id='app1' class="basic-main" v-show="(!echarts)&&(!isActiveTotalForm)">
4
+ <criteria-paged :model="model" :pager='true' v-ref:paged>
5
+ <criteria partial='criteria' @condition-changed='$parent.search' v-ref:cri>
6
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" novalidate partial>
7
+ <div class="row">
8
+ <!--<div class="form-group">-->
9
+ <!--<input @keyup.enter="search" style="width:60%" type="text" class="input_search" v-model="model.f_username" placeholder='客户名称'-->
10
+ <!--condition="f_user_name = '{}'" v-next-el='userid' v-el:username-->
11
+ <!--:size="model.f_user_name ? model.f_user_name.length * 2 : 8">-->
12
+ <!--</div>-->
13
+
14
+ <div class="col-sm-2 form-group">
15
+ <label class="font_normal_body">客户编号</label>
16
+ <input @keyup.enter="search" style="width:60%" type="text" class="input_search"
17
+ v-model="model.f_userinfo_code" placeholder='客户编号'
18
+ condition="f_userinfo_code like '%{}%'" v-el:xq v-next-el='userinfocode' v-el:username
19
+ >
20
+ </div>
21
+ <div class="col-sm-2 form-group">
22
+ <label class="font_normal_body">客户名称</label>
23
+ <input @keyup.enter="search" style="width:60%" type="text" class="input_search"
24
+ v-model="model.f_user_name" placeholder='客户名称'
25
+ condition="f_user_name like '%{}%'" v-el:xq v-next-el='username' v-el:username
26
+ >
27
+ </div>
28
+ <div class="col-sm-2 form-group">
29
+ <label class="font_normal_body">客户地址</label>
30
+ <input @keyup.enter="search" style="width:60%" type="text" class="input_search" v-model="model.f_area"
31
+ placeholder='地址'
32
+ condition="f_address like '%{}%'" v-el:xq v-next-el='address' v-el:area
33
+ >
34
+ </div>
35
+ <div class="col-sm-2 form-group">
36
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;表号&nbsp;&nbsp;&nbsp;</label>
37
+ <input @keyup.enter="search" style="width:60%" type="text" class="input_search"
38
+ v-model="model.f_meternumber" placeholder='表号'
39
+ condition="f_meternumber like '%{}%'" v-next-el='meternumber' v-el:meternumber
40
+ >
41
+ </div>
42
+ <div style="float:right">
43
+ <button class="button_search button_spacing" @click="search()">查询</button>
44
+ <button class="button_clear button_spacing" @click="clear">清空</button>
45
+ <export-excel :data="$parent.$parent.getCondition" class="button_export button_spacing"
46
+ :field="$parent.$parent.getfield" :sumname="$parent.$parent.sumName"
47
+ sqlurl="rs/logic/exportfile" sql-name="webmeter_getAllLoseQuery" template-name='失联分析'
48
+ :choose-col="true"></export-excel>
49
+ <!-- <button class="button_export button_spacing" @click="$parent.$parent.SaveAsFile('lostuserlist')">导出</button>-->
50
+ <!-- <button class="button_export button_spacing" style="width: max-content" @click="$parent.$parent.showTotalForm()">显示汇总</button>-->
51
+ <button class="button_search button_spacing" @click="$parent.$parent.showEcharts()">显示图表</button>
52
+ <div style="float: right" class="button_spacing" :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.hidden()"></div>
53
+ </div>
54
+ </div>
55
+ <div class="row" v-show="$parent.$parent.criteriaShow">
56
+ <div class="col-sm-2 form-group">
57
+ <label class="font_normal_body">&nbsp;&nbsp;&nbsp;公司&nbsp;&nbsp;&nbsp;</label>
58
+ <right-tree @re-res="$parent.$parent.getorg" width="60%"
59
+ :initresid='$parent.$parent.org'></right-tree>
60
+ </div>
61
+ <div class="col-sm-2 form-group">
62
+ <label class="font_normal_body">客户类型</label>
63
+ <v-select style="width:60%" id="f_user_type"
64
+ v-model="model.f_user_type"
65
+ placeholder='客户类型'
66
+ :value.sync="model.f_user_type"
67
+ @change="$parent.$parent.userTypeChange()"
68
+ :options='$parent.$parent.usertypes'
69
+ condition="f_user_type = '{}'"
70
+ close-on-select>
71
+ </v-select>
72
+ </div>
73
+ <div class="col-sm-2 form-group">
74
+ <label class="font_normal_body">用气性质</label>
75
+ <v-select style="width:60%" id="f_gasproperties"
76
+ v-model="model.f_gasproperties"
77
+ placeholder='用气性质'
78
+ :value.sync="model.f_gasproperties"
79
+ :options='$parent.$parent.gasproperties'
80
+ condition="f_gasproperties = '{}'"
81
+ close-on-select>
82
+ </v-select>
83
+ </div>
84
+ <div class="col-sm-2 form-group">
85
+ <label class="font_normal_body">气表品牌</label>
86
+ <v-select
87
+ placeholder='气表品牌'
88
+ :value.sync="model.f_meter_brand"
89
+ v-model="model.f_meter_brand"
90
+ :options='$parent.$parent.WarningType'
91
+ @change="$parent.$parent.getMeterType"
92
+ close-on-select
93
+ condition="f_meter_brand='{}'">
94
+ </v-select>
95
+ </div>
96
+ <div class="col-sm-2 form-group" >
97
+ <label class="font_normal_body">气表型号</label>
98
+ <v-select v-if="$parent.$parent.styles"
99
+ placeholder='气表型号'
100
+ :value.sync="model.f_meter_style"
101
+ v-model="model.f_meter_style"
102
+ :options='$parent.$parent.Warningstyle'
103
+ close-on-select
104
+ condition="f_meter_style='{}'">
105
+ </v-select>
106
+ <v-select v-if="!$parent.$parent.styles"
107
+ placeholder='气表型号'
108
+ :value.sync="model.f_meter_style"
109
+ v-model="model.f_meter_style"
110
+ :options='$parent.$parent.Warningstyles'
111
+ close-on-select
112
+ condition="f_meter_style='{}'">
113
+ </v-select>
114
+ </div>
115
+ <div class="col-sm-2 form-group">
116
+ <label class="font_normal_body">用户状态</label>
117
+ <v-select
118
+ placeholder='用户状态'
119
+ value-single
120
+ style="width:60%"
121
+ :value.sync="model.f_user_state"
122
+ v-model="model.f_user_state"
123
+ :options='$parent.$parent.userstate'
124
+ close-on-select condition="f_user_state ='{}'">
125
+ </v-select>
126
+ </div>
127
+ <!--<div class="col-sm-2 form-group">-->
128
+ <!--<label class="font_normal_body">最新状态</label>-->
129
+ <!-- <v-select style="width:60%" id="f_state"-->
130
+ <!--v-model="model.f_state"-->
131
+ <!--placeholder='最新状态'-->
132
+ <!--:value.sync="model.f_state"-->
133
+ <!--:options='$parent.$parent.getstate'-->
134
+ <!--condition="f_state = '{}'"-->
135
+ <!--close-on-select>-->
136
+ <!--</v-select>-->
137
+ <!--</div>-->
138
+ <div class="col-sm-2 form-group">
139
+ <label class="font_normal_body">开始时间</label>
140
+ <datepicker style="width:60%" id="startdate" placeholder="开始时间"
141
+ v-model="model.startDate"
142
+ :value.sync="model.startDate"
143
+ :disabled-days-of-Week="[]"
144
+ :format="'yyyy-MM-dd HH:mm:ss'"
145
+
146
+ :show-reset-button="reset">
147
+ </datepicker>
148
+ </div>
149
+ <div class="col-sm-2 form-group">
150
+ <label class="font_normal_body">结束时间</label>
151
+ <datepicker style="width:60%" id="enddate" placeholder="结束日期"
152
+ v-model="model.endDate"
153
+ :value.sync="model.endDate"
154
+ :disabled-days-of-Week="[]"
155
+ :format="'yyyy-MM-dd HH:mm:ss'"
156
+
157
+ :show-reset-button="reset">
158
+ </datepicker>
159
+ </div>
160
+
161
+
162
+ <div class="col-sm-2 form-group flex-row" style="white-space: nowrap">
163
+ <label class="font_normal_body">最长失联</label>
164
+ <div class="row">
165
+ <input type="text" style="width:27%" class="input_search" v-model="model.max_interval_day1"
166
+ condition="max_interval_day >= {} " placeholder="">
167
+ <label class="font_normal_body"> &nbsp;≤ x ≤ </label>
168
+ <input type="text" style="width:27%" class="input_search" v-model="model.max_interval_day2"
169
+ condition="max_interval_day <= {} " placeholder="">
170
+ </div>
171
+ </div>
172
+
173
+
174
+ <div class="col-sm-2 form-group flex-row" style="white-space: nowrap">
175
+ <label class="font_normal_body">合计失联</label>
176
+ <div class="row">
177
+ <input type="text" style="width:27%" class="input_search" v-model="model.SLdays1"
178
+ condition="SLdays >= {} " placeholder="">
179
+ <label class="font_normal_body">&nbsp; ≤ x ≤ </label>
180
+ <input type="text" style="width:27%" class="input_search" v-model="model.SLdays2"
181
+ condition="SLdays <= {} " placeholder="">
182
+ </div>
183
+ </div>
184
+ <div class="col-sm-2 form-group">
185
+ <label class="font_normal_body">是否通气</label>
186
+ <v-select
187
+ placeholder='是否通气'
188
+ style="width:60%"
189
+ :value.sync="model.f_address_state"
190
+ v-model="model.f_address_state"
191
+ :options='$parent.$parent.addressState'
192
+ close-on-select condition="f_address_state = '{}'">
193
+ </v-select>
194
+ </div>
195
+ <div class="col-sm-2 form-group">
196
+ <label class="font_normal_body">开始时间</label>
197
+ <datepicker style="width:60%" id="startdate" placeholder="最初上报开始时间"
198
+ v-model="model.firstStartDate"
199
+ :value.sync="model.firstStartDate"
200
+ :disabled-days-of-Week="[]"
201
+ :format="'yyyy-MM-dd'"
202
+ condition="f_first_meteread_date >= '{} 00:00:00'"
203
+ :show-reset-button="reset">
204
+ </datepicker>
205
+ </div>
206
+ <div class="col-sm-2 form-group">
207
+ <label class="font_normal_body">结束时间</label>
208
+ <datepicker style="width:60%" id="enddate" placeholder="最初上报结束时间"
209
+ v-model="model.firstEndDate"
210
+ :value.sync="model.firstEndDate"
211
+ :disabled-days-of-Week="[]"
212
+ :format="'yyyy-MM-dd'"
213
+ condition="f_first_meteread_date <= '{} 23:59:59'"
214
+ :show-reset-button="reset">
215
+ </datepicker>
216
+ </div>
217
+ <div class="col-sm-2 form-group">
218
+ <label class="font_normal_body">开始时间</label>
219
+ <datepicker style="width:60%" id="startdate" placeholder="最后上报开始时间"
220
+ v-model="model.finalStartDate"
221
+ :value.sync="model.finalStartDate"
222
+ :disabled-days-of-Week="[]"
223
+ :format="'yyyy-MM-dd'"
224
+ condition="f_final_meteread_date >= '{} 00:00:00'"
225
+ :show-reset-button="reset">
226
+ </datepicker>
227
+ </div>
228
+ <div class="col-sm-2 form-group">
229
+ <label class="font_normal_body">结束时间</label>
230
+ <datepicker style="width:60%" id="enddate" placeholder="最后上报结束时间"
231
+ v-model="model.finalEndDate"
232
+ :value.sync="model.finalEndDate"
233
+ :disabled-days-of-Week="[]"
234
+ :format="'yyyy-MM-dd'"
235
+ condition="f_final_meteread_date <= '{} 23:59:59'"
236
+ :show-reset-button="reset">
237
+ </datepicker>
238
+ </div>
239
+
240
+ <!--<div class="col-sm-2 form-group">-->
241
+ <!--<label class="font_normal_body">最新失联</label>-->
242
+ <!--<input @keyup.enter="search" style="width:60%" type="text" class="input_search" v-model="model.new_days1" placeholder='天数大于等于'-->
243
+ <!--condition="new_days >= {}" v-next-el='new_days' v-el:new_days-->
244
+ <!--&gt;-->
245
+ <!--</div>-->
246
+ <!--<div class="col-sm-2 form-group">-->
247
+ <!--<label class="font_normal_body" style="word-break:keep-all;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;至&nbsp;&nbsp;&nbsp;</label>-->
248
+ <!--<input @keyup.enter="search" style="width:60%" type="text" class="input_search" v-model="model.new_days2" placeholder='天数小于等于'-->
249
+ <!--condition="new_days <= {}" v-next-el='new_days' v-el:new_days-->
250
+ <!--&gt;-->
251
+ <!--</div>-->
252
+ </div>
253
+
254
+
255
+
256
+ <!--:top='40' :left='60' :right='40' :bottom='60'-->
257
+ <!--:thead='"<th>序号</th>\n"+-->
258
+ <!--"<th>档案编号</th>" +-->
259
+ <!--" <th>档案标识</th>"+-->
260
+ <!--"<th>客户名称</th>"+-->
261
+ <!--"<th>表号</th"+-->
262
+ <!--"<th>表具类型</th>"+-->
263
+ <!--"<th>客户类型</th>"+-->
264
+ <!--"<th>区域</th>"+-->
265
+ <!--"<th>小区</th>"+-->
266
+ <!--"<th>地址</th>"+-->
267
+ <!--"<th>用气气量</th>"+-->
268
+ <!--"<th>用气金额</th>"-->
269
+ <!--+"<th>用气价格</th>"-->
270
+ <!--+"<th>时间</th>"-->
271
+ <!--+"<th>所属机构</th>"'-->
272
+ <!--:fields='["$index+1","f_username","f_meternumber","f_usertype","f_save_money","f_operate_status","f_close_reason","f_area","f_districtname","f_address","id","yytdepa"]'>-->
273
+ <!--</print-table>-->
274
+ <!--<export-excel :data="{orderitem: 'lastinputdate desc', condition: '1=1'}"-->
275
+ <!--:field="{f_username: '客户名称', f_meternumber: '表号',f_usertype:'客户类型',f_save_money:'剩余金额',-->
276
+ <!--f_operate_status:'状态',f_close_reason:'关阀原因',f_area:'区域',f_districtname:'小区', f_address: '地址',id:'档案编号',yytdepa:'所属机构'}"-->
277
+ <!--sqlurl="api/af-revenue/sql/getUserGas"></export-excel>-->
278
+ </div>
279
+ </criteria>
280
+ <data-grid id="lostuserlist" :model="model" partial='list' v-ref:grid class="list_area table_sy">
281
+ <template partial='head'>
282
+ <tr>
283
+ <th style="text-align:center">
284
+ <nobr>序号</nobr>
285
+ </th>
286
+ <th style="text-align:center">
287
+ <nobr>客户编号</nobr>
288
+ </th>
289
+ <th style="text-align:center">
290
+ <nobr>客户名称</nobr>
291
+ </th>
292
+ <th style="text-align:center">
293
+ <nobr>客户地址</nobr>
294
+ </th>
295
+ <th style="text-align:center">
296
+ <nobr>客户类型</nobr>
297
+ </th>
298
+ <th style="text-align:center">
299
+ <nobr>用气性质</nobr>
300
+ </th>
301
+ <th style="text-align:center">
302
+ <nobr>表号</nobr>
303
+ </th>
304
+ <th style="text-align:center">
305
+ <nobr>启用日期</nobr>
306
+ </th>
307
+
308
+ <th style="text-align:center">
309
+ <nobr>应报天数</nobr>
310
+ </th>
311
+ <th style="text-align:center">
312
+ <nobr>实报天数</nobr>
313
+ </th>
314
+ <th style="text-align:center">
315
+ <nobr>最长失联天数</nobr>
316
+ </th>
317
+ <th style="text-align:center">
318
+ <nobr>累计失联天数</nobr>
319
+ </th>
320
+ <th style="text-align:center">
321
+ <nobr>气表厂家</nobr>
322
+ </th>
323
+ <th style="text-align:center" >
324
+ <nobr>气表型号</nobr>
325
+ </th>
326
+ <th style="text-align:center" >
327
+ <nobr>用户状态</nobr>
328
+ </th>
329
+ <th style="text-align:center" >
330
+ <nobr>最初上报时间</nobr>
331
+ </th>
332
+ <th style="text-align:center" >
333
+ <nobr>最后上报时间</nobr>
334
+ </th>
335
+ <th style="text-align:center" >
336
+ <nobr>组织机构</nobr>
337
+ </th>
338
+
339
+ </tr>
340
+
341
+ </template>
342
+ <template partial='body'>
343
+ <td style="text-align:center">{{$index+1}}</td>
344
+ <!--<td style="text-align:center">{{row.f_userfiles_id}}</td>-->
345
+ <td style="text-align: center;"><nobr>
346
+ <span @click="$parent.$parent.$parent.showmsg(row)"><a>{{row.f_userinfo_code}}</a></span>
347
+ </nobr> </td>
348
+ <td style="text-align:center"><nobr>{{row.f_user_name}}</nobr></td>
349
+ <td><nobr>{{row.f_address}}</nobr></td>
350
+ <td style="text-align:center">{{row.f_user_type}}</td>
351
+ <td style="text-align:center">{{row.f_gasproperties}}</td>
352
+ <td style="text-align:center"><nobr>{{row.f_meternumber}}</nobr></td>
353
+ <td style="text-align:center"><nobr>{{row.f_startuse_date}}</nobr></td>
354
+
355
+ <td style="text-align:center">{{row.ybdays}}</td>
356
+ <td style="text-align:center">{{row.sbdays}}</td>
357
+ <td style="text-align:center">
358
+ <nobr>{{row.max_interval_day}}</nobr>
359
+ </td>
360
+ <td style="text-align:center">
361
+ <nobr>{{row.sldays}}</nobr>
362
+ </td>
363
+ <td style="text-align:center">
364
+ <nobr>{{row.f_meter_brand}}</nobr>
365
+ </td>
366
+ <td style="text-align:center">
367
+ <nobr>{{row.f_meter_style}}</nobr>
368
+ </td>
369
+ <td style="text-align:center">
370
+ <nobr>{{row.f_user_state}}</nobr>
371
+ </td>
372
+ <td style="text-align:center">
373
+ <nobr>{{row.f_first_meteread_date}}</nobr>
374
+ </td>
375
+ <td style="text-align:center">
376
+ <nobr>{{row.f_final_meteread_date}}</nobr>
377
+ </td>
378
+ <td style="text-align:center">
379
+ <nobr>{{row.f_orgname}}</nobr>
380
+ </td>
381
+
382
+ </template>
383
+ </data-grid>
384
+ </criteria-paged>
385
+ </div>
386
+ <div class="flex-row" v-show="echarts" style="width: 100%;height: 90%;">
387
+ <lost-contact-echarts :groupname="groupname[0]" :condition = "condition" :startdate="startDate"
388
+ :enddate="endDate" :echarts="echarts"></lost-contact-echarts>
389
+ </div>
390
+ <div class="span" v-show="isActiveTotalForm" style="width: 100%;height: 90%;">
391
+ <lost-contact-eform :condition="condition"
392
+ ></lost-contact-eform>
393
+ </div>
394
+ </div>
395
+
396
+ <!-- <div v-show="isActiveTotalForm" style="height: 40px;width: 100%;">-->
397
+ <!-- <button class="button_search button_spacing" @click="notShowTotalForm()">隐藏汇总</button>-->
398
+ <!-- </div>-->
399
+ <!-- <div class="flex-row" v-show="isActiveTotalForm" style="width: 100%;height: 90%;">-->
400
+ <!-- <lost-contact-eform :condition="model.condition" :startdate="startDate"-->
401
+ <!-- :enddate="endDate"></lost-contact-eform>-->
402
+ <!-- </div>-->
403
+ <div class="flex-row" style="width:99%;height:98%;margin-bottom:0px" v-if="showdetail">
404
+ <user-info-detail-manage-new :f_userinfo_id="rowdata.f_userinfo_id" @cancel-main="cancel"></user-info-detail-manage-new>
405
+ </div>
406
+ </template>
407
+
408
+ <script>
409
+ import {PagedList} from 'vue-client'
410
+ import UserGasEcharts from '../../components/webmeter/DrillData/UserGasEcharts'
411
+ import * as Util from '../../Util'
412
+ import plugin from 'system-clients/src/plugins/GetLoginInfoService'
413
+ import {HttpResetClass} from 'vue-client'
414
+ let readySomething = async function (self) {
415
+
416
+ await self.$MagLoadParams.loadParam()
417
+ self.initParams()
418
+ let year = new Date().getFullYear()
419
+ self.$refs.paged.$refs.cri.model.startDate = year+'-01-01 00:00:00'
420
+ // self.$refs.paged.$refs.cri.model.startDate = Util.toStandardDateString() + ' 00:00:00'
421
+ self.$refs.paged.$refs.cri.model.endDate = Util.toStandardDateString() + ' 23:59:59'
422
+ self.$refs.paged.$refs.cri.model.f_user_state='正常'
423
+ }
424
+ export default {
425
+ title: '失联分析',
426
+ props: ['data'],
427
+ components: {UserGasEcharts},
428
+ data() {
429
+ return {
430
+ model: new PagedList('api/af-revenue/sql/webmeter_getAllLoseQuery', 20, {
431
+ startDate: 'this.model.startDate',
432
+ endDate: 'this.model.endDate'
433
+ }),
434
+ getfield:{
435
+ "f_userinfo_code":"客户编号","f_user_name":"客户名称","f_residential_area":"小区",
436
+ "f_address":"客户地址","f_user_type":"客户类型","f_gasproperties":"用气性质",
437
+ "f_meternumber":"表号",
438
+
439
+ "f_startuse_date":"启用日期",
440
+ "ybdays":"应报天数",
441
+ "sbdays":"实报天数",
442
+ "max_interval_day":"最长失联天数","sldays":"累计失联天数", "f_first_meteread_date":"最初上报时间","f_final_meteread_date":"最后上报时间",
443
+ "f_meter_brand":"气表厂家","f_orgname":"组织机构"},
444
+ reportStr: null,
445
+ show: false,
446
+ showdetail:false,
447
+ rowdata:{},
448
+ startDate: '',
449
+ endDate: '',
450
+ criteriaShow:false,
451
+ outlets: [],
452
+ gasproperties:[{label: '全部', value: ''}],
453
+ operator: [],
454
+ WarningType: [
455
+ {label: '全部', value: ''}
456
+ ],
457
+ Warningstyles: [
458
+ {label: '全部', value: ''}
459
+ ],
460
+ styles:false,
461
+ filename: '',
462
+ orgCondtionStr: ` and f_orgid = ${this.$login.f.orgid}`,
463
+ echarts: false,
464
+ orgid:[this.$login.f.orgid],
465
+ searchshow: false,
466
+ isActiveTotalForm: false,
467
+ condition: '1=1',
468
+ groupname: ['max_days_type'],
469
+ getgroupname: [
470
+ {label: '客户类型', value: 'f_user_type'},
471
+ {label: '用气性质', value: 'f_gasproperties'},
472
+ {label: '分公司', value: 'f_orgname'},
473
+ {label: '最长失联天数', value: 'max_days_type'},
474
+ {label: '合计失联天数', value: 'all_days_type'}
475
+ ],
476
+ org:[this.$login.f.orgid]
477
+
478
+ }
479
+ },
480
+ ready() {
481
+ readySomething(this)
482
+ this.getMeterTypeAndBrand('f_meter_brand', '1=1')
483
+ },
484
+ methods: {
485
+ getMeterType() {
486
+ this.Warningstyle = [{label: '全部', value: ''}]
487
+ this.styles = false
488
+ let f_meter_brand = this.$refs.paged.$refs.cri.model.f_meter_brand
489
+ this.getMeterTypeAndBrand('f_meter_style', `f_meter_brand='${f_meter_brand}'`)
490
+ },
491
+ getMeterTypeAndBrand(groupname, condition) {
492
+ condition = `${condition} and ui.f_orgid like '${this.$login.f.orgid}%'`
493
+ let self = this
494
+ let load = new HttpResetClass()
495
+ load.load('POST', 'api/af-revenue/sql/getMeterStyleAndBrand1', {
496
+ data: {
497
+ condition: condition,
498
+ groupname: groupname
499
+ }
500
+ }, {warnMsg: null, resolveMsg: null}).then((res) => {
501
+ for (let i = 0; i < res.data.length; i++) {
502
+ if (groupname == 'f_meter_brand') {
503
+ let dr = {}
504
+ dr.label = res.data[i].f_meter_brand
505
+ dr.value = res.data[i].f_meter_brand
506
+ //气表品牌
507
+ // self.WarningType.push(dr)
508
+ } else if (groupname == 'f_meter_style') {
509
+ self.Warningstyle= [
510
+ {label: '全部', value: ''}
511
+ ],
512
+ self.$refs.paged.$refs.cri.model.f_meter_style=''
513
+ let dr = {}
514
+ dr.label = res.data[i].f_meter_style
515
+ dr.value = res.data[i].f_meter_style
516
+ //气表类型
517
+ self.Warningstyle.push(dr)
518
+ }
519
+ }
520
+ if (self.Warningstyle.length > 1) {
521
+ self.showMeterStyle()
522
+ }
523
+ })
524
+
525
+ },
526
+ showMeterStyle() {
527
+ this.styles = true
528
+ },
529
+ userTypeChange () {
530
+ this.gasproperties=[{label: '全部', value: ''}]
531
+ if(this.$refs.paged.$refs.cri.model && this.$refs.paged.$refs.cri.model.f_user_type) {
532
+ this.$refs.paged.$refs.cri.model.f_gasproperties=''
533
+
534
+ console.log(this.$refs.paged.$refs.cri.model.f_user_type[0])
535
+ this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
536
+ // this.gasproperties.push({label: '全部', value: ''})
537
+ }
538
+ else{
539
+ this.gasproperties =[{label: '全部', value: ''}]
540
+ }
541
+ },
542
+ hidden(){
543
+ this.criteriaShow = !this.criteriaShow
544
+ },
545
+ clickshow() {
546
+ this.searchshow = !this.searchshow
547
+ },
548
+ showmsg(obj){
549
+ this.rowdata=obj
550
+ this.showdetail = true
551
+ },
552
+ cancel() {
553
+ this.showdetail = false
554
+ },
555
+ initParams () {
556
+ let arr = []
557
+ this.$MagGetSaleParam.getGasbrand().forEach((item) => {
558
+ let temp = {}
559
+ if(item.value.f_meter_type==='物联网表'){
560
+ temp.label = item.label
561
+ temp.value = item.value.f_meter_brand
562
+ arr.push(temp )
563
+ }
564
+
565
+ })
566
+ this.WarningType = [{label: '全部', value: ''}, ...arr]
567
+
568
+ },
569
+ search(args) {
570
+ this.startDate = this.$refs.paged.$refs.cri.model.startDate
571
+ this.endDate = this.$refs.paged.$refs.cri.model.endDate
572
+ if (this.endDate == '' || this.startDate == '') {
573
+ return this.$showMessage("时间区间的开始和结束时间不能为空!")
574
+ }
575
+ this.condition = args.condition = this.$refs.paged.$refs.cri.condition + `${this.orgCondtionStr}`
576
+ this.model.search(args.condition, args.model)
577
+ },
578
+ getorg(obj) {
579
+ if (obj.resids.length>0) {
580
+ this.orgCondtionStr = " and f_orgid in " + plugin.convertToIn(obj.resids)
581
+ }else
582
+ {
583
+ this.orgCondtionStr = " and f_orgid = " + this.$login.f.orgid
584
+ }
585
+ },
586
+ // SaveAsFile(str) {
587
+ // this.$showMessage('您是否需要导出本页数据?', ['confirm', 'cancel']).then((res) => {
588
+ // if (res === 'confirm') {
589
+ // let style = '<style>' +
590
+ // 'td {border-width: 1px;padding: 2px;border-style: solid; border-color:black; border-collapse:collapse;} .tdright{text-align: right;} .tdcenter{text-align: center;}</style>';
591
+ // let strHtml = style + document.getElementById(str).innerHTML;
592
+ // console.log(strHtml);
593
+ // let LODOP = getLodop();
594
+ // LODOP.PRINT_INIT('');
595
+ // LODOP.ADD_PRINT_TABLE(5, 5, '99%', '100%', strHtml);
596
+ // LODOP.SAVE_TO_FILE('失联分析.xls')
597
+ // }
598
+ // })
599
+ // },
600
+ clearmsg() {
601
+ this.$refs.paged.$refs.cri.model = {}
602
+ },
603
+
604
+
605
+ close() {
606
+ this.show = false
607
+ },
608
+ // 显示柱状图
609
+ showEcharts() {
610
+ this.echarts = true
611
+ this.isActiveTotalForm = false
612
+ },
613
+ notShowTotalForm() {
614
+ this.echarts = false
615
+ this.isActiveTotalForm = false
616
+ },
617
+ // 不显示柱状图
618
+ notShowEcharts() {
619
+ this.echarts = false
620
+ this.isActiveTotalForm = false
621
+ },
622
+ // 显示汇总数据表格
623
+ showTotalForm() {
624
+ this.echarts = false
625
+ this.isActiveTotalForm = true
626
+ }
627
+ },
628
+ watch: {
629
+ 'data'(val) {
630
+ if (val.f_files_path) {
631
+ this.getFileContent(val.f_files_path)
632
+ } else {
633
+ this.reportStr = null
634
+ }
635
+ }
636
+ },
637
+ computed: {
638
+ // usertypes () {
639
+ // return this.$appdate.getParams("客户类型")
640
+ // },
641
+ getCondition() {
642
+ let condition=this.$refs.paged.$refs.cri.condition + this.orgCondtionStr
643
+ return {
644
+ condition: condition ,
645
+ startDate:`${this.$refs.paged.$refs.cri.model.startDate}`,
646
+ endDate:`${this.$refs.paged.$refs.cri.model.endDate}`
647
+ }
648
+
649
+ },
650
+ usertypes() {
651
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]
652
+ },
653
+ f_outlets() {
654
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('网点查询用')]
655
+ },
656
+ valveStatus() {
657
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('气表类型')]
658
+ },
659
+ getstate() {
660
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('最新状态')]
661
+ },
662
+ userstate() {
663
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户状态')]
664
+ },
665
+ addressState() {
666
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('是否通气')]
667
+ }
668
+ }
669
+ }
670
+ </script>
671
+ <style>
672
+ .form-input-group label {
673
+ text-align: right;
674
+ width: auto;
675
+ }
676
+
677
+ .mystyle {
678
+ float: right;
679
+ padding-right: 10%;
680
+ }
681
+
682
+ .mystyle1 {
683
+ padding-top: 10px;
684
+
685
+ }
686
+
687
+ .mystyle2 {
688
+ width: 100%;
689
+ height: 35px;
690
+ /*background: #00A3F0;*/
691
+ padding-left: 15px;
692
+ float: left;
693
+ }
694
+
695
+ .datapanel {
696
+ color: #333;
697
+ background-color: white;
698
+ box-shadow: darkgrey 0.5px 0.5px 0.5px 0.5px;
699
+ padding: 10px 30px 10px 30px;
700
+ border-radius: 15px;
701
+ }
702
+ </style>
@@ -0,0 +1,7 @@
1
+ // 分公司特殊组件页面注册
2
+ import Vue from 'vue'
3
+
4
+ export default function () {
5
+ // 失联查询
6
+ Vue.component('lost-contact-analysis-list', (resolve) => { require(['./LostContactAnalysisList'], resolve) })
7
+ }