manage-client 4.1.64 → 4.1.65

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.
@@ -21,7 +21,7 @@ var qtx = 'http://123.57.3.66:31467/'
21
21
  // var fuwu = 'http://203.57.101.233:9001'
22
22
  var bendi = 'http://123.57.3.66:31467/'
23
23
  // var bendi = 'http://119.187.112.234:8400/'
24
- var wode = 'http://192.168.50.67:31567/'
24
+ var wode = 'http://123.57.3.66:31467/'
25
25
  // 192.168.
26
26
  // var str = 'http://127.0.0.1:8080/manage', str2 = 'http://192.168.50.199:8300'
27
27
  // var str = 'http://192.168.10.233:8300', str2 = 'http://192.168.10.14:8300'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "manage-client",
3
- "version": "4.1.64",
3
+ "version": "4.1.65",
4
4
  "description": "经营管控模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "directories": {
@@ -36,6 +36,7 @@
36
36
  </div>
37
37
  <div class="span" style = "float:right;">
38
38
  <button class="button_search" @click="$parent.$parent.searchData()">查询</button>
39
+ <button class="button_search" @click="$parent.$parent.pushAudit()">推送审核</button>
39
40
  <report-print id='gasprice' top='3cm' left='0' width='100%' height='100%' :preview="true"></report-print>
40
41
  <report-excel id='gasprice'></report-excel>
41
42
  <div style="float: right" class="button_spacing" :class="{'button_shrink_top':$parent.$parent.criteriaShow,
@@ -130,6 +131,80 @@
130
131
  <button v-show="show" type="button" class="btn btn-success" @click='confirm(filename)'>确认</button>
131
132
  </footer>
132
133
  </modal>
134
+ <modal :show.sync="pushAuditShow" v-ref:pushAuditShowModal large backdrop="false" width="40%" >
135
+ <header slot="modal-header" class="modal-header" style="text-align: center">
136
+ <h4 class="modal-title">推送审核</h4>
137
+ </header>
138
+ <article slot="modal-body" class="modal-body">
139
+ <validator name='v'>
140
+ <form class="form-horizontal select-overspread">
141
+ <div class="form-group" :class="[$v.f_audit_person.required ? 'has-error' : '']">
142
+ <label class="col-sm-4 font_normal_body">下一步审核人:</label>
143
+ <input type="text" v-show="false" v-model="$refs.f_audit_person.selectedItems"
144
+ v-validate:f_audit_person='{required: true }'>
145
+ <div class="col-sm-8">
146
+ <v-select v-model="pushAuditData.f_audit_person"
147
+ placeholder='请选择'
148
+ :value.sync="pushAuditData.f_audit_person"
149
+ :options='auditor'
150
+ :value-single="true"
151
+ close-on-select
152
+ clear-button
153
+ v-ref:f_audit_person>
154
+ </v-select>
155
+ </div>
156
+
157
+ </div>
158
+ <div class="form-group" >
159
+ <label class="col-sm-4 font_normal_body">报表审核人:</label>
160
+ <div class="col-sm-8">
161
+ <input class="input_search" style="width:60%" type="text"
162
+ v-model="pushAuditData.f_name" placeholder="报表审核人">
163
+ </div>
164
+ </div>
165
+ <div class="form-group" >
166
+ <label class="col-sm-4 font_normal_body">报表审核结果:</label>
167
+ <div class="col-sm-8">
168
+ <input class="input_search" style="width:60%" type="text"
169
+ v-model="pushAuditData.f_jieguo" placeholder="报表审核结果">
170
+ </div>
171
+ </div>
172
+ <div class="form-group" >
173
+ <label class="col-sm-4 font_normal_body">报表审核时间:</label>
174
+ <div class="col-sm-8">
175
+ <datepicker id="startDate" placeholder="报表审核时间" style="width: 60%"
176
+ v-model="pushAuditData.f_date"
177
+ :value.sync="pushAuditData.f_date"
178
+ :disabled-days-of-Week="[]"
179
+ :format="'yyyy-MM-dd HH:mm:ss'"
180
+ :show-reset-button="reset">
181
+ </datepicker>
182
+ </div>
183
+ </div>
184
+ </form>
185
+ </validator>
186
+ </article>
187
+ <footer slot="modal-footer" class="modal-footer">
188
+ <button class="button_search" style="width: max-content" @click="uploadFiles()">上传/查看附件</button>
189
+ <button class="button_search" style="width: max-content" @click="uploadPictures()">拍照</button>
190
+ <button class="button_search" @click="auditConfirm()" :disabled="!$v.valid">提交审核</button>
191
+ <button class="button_clear" @click="cancel()">取消</button>
192
+ </footer>
193
+ </modal>
194
+ <modal :show.sync="showFiles" styles="margin-top:50px" v-ref:showFiles backdrop="false" width="80%" >
195
+ <header slot="modal-header" class="modal-header">
196
+ <button type="button" class="close" @click="showFilesClose"><span class="glyphicon glyphicon-remove"></span></button>
197
+ </header>
198
+ <article slot="modal-body">
199
+ <upload-idcard :blodid="randomId" isremark="true" style="width:auto"
200
+ fusetype="数据推送审核" v-ref:upload>
201
+ </upload-idcard>
202
+ </article>
203
+ <footer slot="modal-footer" class="modal-footer">
204
+ </footer>
205
+ </modal>
206
+ <high-meter :show.sync="highMeterShow" v-if="highMeterShow" @photo-finish="newPhoto">
207
+ </high-meter>
133
208
  </div>
134
209
  </template>
135
210
 
@@ -143,6 +218,8 @@
143
218
  console.log(self.$login.f)
144
219
  await self.$MagLoadParams.loadParam()
145
220
  self.initParams()
221
+ self.getAuditor()
222
+ self.randomId = self.getRandomId()
146
223
  self.$refs.paged.$refs.criteria.search()
147
224
  }
148
225
  let saveFile = function * (self) {
@@ -196,6 +273,13 @@
196
273
  },
197
274
  f_filialeid: this.$login.f.orgid,
198
275
  show: false,
276
+ pushAuditData: {},
277
+ auditor: [],
278
+ resid: [],
279
+ showFiles: false,
280
+ highMeterShow: false,
281
+ pushAuditShow: false,
282
+ randomId: '',
199
283
  }
200
284
  },
201
285
  ready () {
@@ -206,6 +290,98 @@
206
290
  })
207
291
  },
208
292
  methods: {
293
+ newPhoto (ImgBase64) {
294
+ this.$refs.upload.newPhoto(ImgBase64)
295
+ },
296
+ uploadFiles () {
297
+ this.showFiles = !this.showFiles
298
+ },
299
+ uploadPictures () {
300
+ this.highMeterShow = !this.highMeterShow
301
+ },
302
+ showFilesClose () {
303
+ this.showFiles = false
304
+ },
305
+ async getAuditor () {
306
+ await this.$MagGetSaleParam.initinputtor()
307
+ this.auditor = this.$MagGetSaleParam.getAudit(this.$login.f.orgid)
308
+ },
309
+ cancel () {
310
+ this.pushAuditShow = false
311
+ },
312
+ getRandomId () {
313
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
314
+ let res = Math.random() * 16 | 0
315
+ let v = c == 'x' ? res : (res & 0x3 | 0x8)
316
+ return v.toString(16)
317
+ })
318
+ },
319
+ auditConfirm () {
320
+ if (this.$refs.upload.fileInfoData.length === 0) {
321
+ this.$showMessage('请至少上传一张附件')
322
+ return
323
+ }
324
+ let fileParam = []
325
+ for (let row of this.$refs.upload.fileInfoData) {
326
+ fileParam.push({id: row.id})
327
+ }
328
+ let param = {
329
+ // 业务参数
330
+ requestParam: {
331
+ f_operator: this.$login.f.name,
332
+ f_operatorid: this.$login.f.id,
333
+ f_orgid: this.$login.f.orgid,
334
+ f_orgname: this.$login.f.orgs,
335
+ f_depid: this.$login.f.depids,
336
+ f_depname: this.$login.f.deps,
337
+ type: '用气汇总报表推送',
338
+ ...this.pushAuditData
339
+ },
340
+ form: {
341
+ '业务描述': `${this.$login.f.name}对${this.pushAuditData.startDate}-${this.pushAuditData.endDate}用气汇总报表数据发起推送审核操作`,
342
+ '业务类型': `用气汇总报表推送审核`,
343
+ '报表审核人': this.pushAuditData.f_name,
344
+ '报表审核结果': this.pushAuditData.f_jieguo,
345
+ '报表审核时间': this.pushAuditData.f_date
346
+ },
347
+ // 审核人
348
+ f_audit_person: this.pushAuditData.f_audit_person,
349
+ // 描述
350
+ f_describe: `${this.$login.f.name}发起用气汇总报表推送审核操作`,
351
+ // 附件
352
+ fileParam: fileParam,
353
+ // 登录人信息
354
+ userBaseInfo: {
355
+ f_operator: this.$login.f.name,
356
+ f_operatorid: this.$login.f.id,
357
+ f_orgid: this.$login.f.orgid,
358
+ f_orgname: this.$login.f.orgs,
359
+ f_depid: this.$login.f.depids,
360
+ f_depname: this.$login.f.deps
361
+ },
362
+ // 业务类型
363
+ type: '用气汇总报表推送',
364
+ f_type: '用气汇总报表推送审核',
365
+ f_otherparam: [],
366
+ logicName: 'gasSalesReportReview'
367
+ }
368
+ console.log(param, this.pushAuditData)
369
+ this.$resetpost('api/af-revenue/logic/commonAuditLogic', param, {
370
+ warnMsg: `确定要对当前查询的报表数据进行推送审核吗?`,
371
+ resolveMsg: `提交审核完成!!`,
372
+ rejectMsg: `提交审核失败!!请重试!!`
373
+ }).then((res) => {
374
+ this.pushAuditShow = false
375
+ this.pushAuditData.f_audit_person = ''
376
+ this.pushAuditData.f_name = ''
377
+ this.pushAuditData.f_jieguo = ''
378
+ this.pushAuditData.f_date = ''
379
+ this.randomId = this.getRandomId()
380
+ })
381
+ },
382
+ pushAudit () {
383
+ this.pushAuditShow = true
384
+ },
209
385
  initParams() {
210
386
  // 初始化气表品牌
211
387
  let brandArr = []
@@ -230,6 +406,9 @@
230
406
 
231
407
  this.$refs.paged.$refs.criteria.model.f_orgid = orgcondition
232
408
  this.$refs.paged.search(args)
409
+ this.pushAuditData.startDate = this.model.params.startDate
410
+ this.pushAuditData.endDate = this.model.params.endDate
411
+ this.pushAuditData.condition = orgcondition.replace(/'/g, "''")
233
412
  },
234
413
  async getRes(condition,obj) {
235
414
  this.orgCondtionStr = condition
@@ -42,6 +42,7 @@
42
42
  <!--</div>-->
43
43
  <div style = "float:right;">
44
44
  <button class="button_search" @click="$parent.$parent.searchData()">查询</button>
45
+ <button class="button_search" @click="$parent.$parent.pushAudit()">推送审核</button>
45
46
  <report-print id='gasprice' top='3cm' left='0' width='100%' height='100%' :preview="true"></report-print>
46
47
  <report-excel id='gasprice'></report-excel>
47
48
  </div>
@@ -112,6 +113,80 @@
112
113
  <button v-show="show" type="button" class="btn btn-success" @click='confirm(filename)'>确认</button>
113
114
  </footer>
114
115
  </modal>
116
+ <modal :show.sync="pushAuditShow" v-ref:pushAuditShowModal large backdrop="false" width="40%" >
117
+ <header slot="modal-header" class="modal-header" style="text-align: center">
118
+ <h4 class="modal-title">推送审核</h4>
119
+ </header>
120
+ <article slot="modal-body" class="modal-body">
121
+ <validator name='v'>
122
+ <form class="form-horizontal select-overspread">
123
+ <div class="form-group" :class="[$v.f_audit_person.required ? 'has-error' : '']">
124
+ <label class="col-sm-4 font_normal_body">下一步审核人:</label>
125
+ <input type="text" v-show="false" v-model="$refs.f_audit_person.selectedItems"
126
+ v-validate:f_audit_person='{required: true }'>
127
+ <div class="col-sm-8">
128
+ <v-select v-model="pushAuditData.f_audit_person"
129
+ placeholder='请选择'
130
+ :value.sync="pushAuditData.f_audit_person"
131
+ :options='auditor'
132
+ :value-single="true"
133
+ close-on-select
134
+ clear-button
135
+ v-ref:f_audit_person>
136
+ </v-select>
137
+ </div>
138
+
139
+ </div>
140
+ <div class="form-group" >
141
+ <label class="col-sm-4 font_normal_body">报表审核人:</label>
142
+ <div class="col-sm-8">
143
+ <input class="input_search" style="width:60%" type="text"
144
+ v-model="pushAuditData.f_name" placeholder="报表审核人">
145
+ </div>
146
+ </div>
147
+ <div class="form-group" >
148
+ <label class="col-sm-4 font_normal_body">报表审核结果:</label>
149
+ <div class="col-sm-8">
150
+ <input class="input_search" style="width:60%" type="text"
151
+ v-model="pushAuditData.f_jieguo" placeholder="报表审核结果">
152
+ </div>
153
+ </div>
154
+ <div class="form-group" >
155
+ <label class="col-sm-4 font_normal_body">报表审核时间:</label>
156
+ <div class="col-sm-8">
157
+ <datepicker id="startDate" placeholder="报表审核时间" style="width: 60%"
158
+ v-model="pushAuditData.f_date"
159
+ :value.sync="pushAuditData.f_date"
160
+ :disabled-days-of-Week="[]"
161
+ :format="'yyyy-MM-dd HH:mm:ss'"
162
+ :show-reset-button="reset">
163
+ </datepicker>
164
+ </div>
165
+ </div>
166
+ </form>
167
+ </validator>
168
+ </article>
169
+ <footer slot="modal-footer" class="modal-footer">
170
+ <button class="button_search" style="width: max-content" @click="uploadFiles()">上传/查看附件</button>
171
+ <button class="button_search" style="width: max-content" @click="uploadPictures()">拍照</button>
172
+ <button class="button_search" @click="auditConfirm()" :disabled="!$v.valid">提交审核</button>
173
+ <button class="button_clear" @click="cancel()">取消</button>
174
+ </footer>
175
+ </modal>
176
+ <modal :show.sync="showFiles" styles="margin-top:50px" v-ref:showFiles backdrop="false" width="80%" >
177
+ <header slot="modal-header" class="modal-header">
178
+ <button type="button" class="close" @click="showFilesClose"><span class="glyphicon glyphicon-remove"></span></button>
179
+ </header>
180
+ <article slot="modal-body">
181
+ <upload-idcard :blodid="randomId" isremark="true" style="width:auto"
182
+ fusetype="数据推送审核" v-ref:upload>
183
+ </upload-idcard>
184
+ </article>
185
+ <footer slot="modal-footer" class="modal-footer">
186
+ </footer>
187
+ </modal>
188
+ <high-meter :show.sync="highMeterShow" v-if="highMeterShow" @photo-finish="newPhoto">
189
+ </high-meter>
115
190
  </div>
116
191
  </template>
117
192
 
@@ -164,15 +239,116 @@ export default {
164
239
  f_orgid: 'this.model.f_orgid'}),
165
240
  reportStr: null,
166
241
  show: false,
242
+ pushAuditData: {},
243
+ auditor: [],
244
+ resid: [],
245
+ showFiles: false,
246
+ highMeterShow: false,
247
+ pushAuditShow: false,
248
+ randomId: '',
167
249
  spans: ''
168
250
  }
169
251
  },
170
252
  ready () {
253
+ this.getAuditor()
254
+ this.randomId = this.getRandomId()
171
255
  this.$refs.paged.$refs.criteria.model.startDate = this.$login.toStandardDateString() + ' 00:00:00'
172
256
  this.$refs.paged.$refs.criteria.model.endDate = this.$login.toStandardDateString() + ' 23:59:59'
173
257
  // this.$refs.paged.$refs.criteria.search()
174
258
  },
175
259
  methods: {
260
+ newPhoto (ImgBase64) {
261
+ this.$refs.upload.newPhoto(ImgBase64)
262
+ },
263
+ uploadFiles () {
264
+ this.showFiles = !this.showFiles
265
+ },
266
+ uploadPictures () {
267
+ this.highMeterShow = !this.highMeterShow
268
+ },
269
+ showFilesClose () {
270
+ this.showFiles = false
271
+ },
272
+ async getAuditor () {
273
+ await this.$MagGetSaleParam.initinputtor()
274
+ this.auditor = this.$MagGetSaleParam.getAudit(this.$login.f.orgid)
275
+ },
276
+ cancel () {
277
+ this.pushAuditShow = false
278
+ },
279
+ getRandomId () {
280
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
281
+ let res = Math.random() * 16 | 0
282
+ let v = c == 'x' ? res : (res & 0x3 | 0x8)
283
+ return v.toString(16)
284
+ })
285
+ },
286
+ auditConfirm () {
287
+ if (this.$refs.upload.fileInfoData.length === 0) {
288
+ this.$showMessage('请至少上传一张附件')
289
+ return
290
+ }
291
+ let fileParam = []
292
+ for (let row of this.$refs.upload.fileInfoData) {
293
+ fileParam.push({id: row.id})
294
+ }
295
+ let param = {
296
+ // 业务参数
297
+ requestParam: {
298
+ f_operator: this.$login.f.name,
299
+ f_operatorid: this.$login.f.id,
300
+ f_orgid: this.$login.f.orgid,
301
+ f_orgname: this.$login.f.orgs,
302
+ f_depid: this.$login.f.depids,
303
+ f_depname: this.$login.f.deps,
304
+ type: '补气汇总报表推送',
305
+ ...this.pushAuditData
306
+ },
307
+ form: {
308
+ '业务描述': `${this.$login.f.name}对${this.pushAuditData.startDate}-${this.pushAuditData.endDate}补气汇总报表数据发起推送审核操作`,
309
+ '业务类型': `补气汇总报表推送审核`,
310
+ '报表审核人': this.pushAuditData.f_name,
311
+ '报表审核结果': this.pushAuditData.f_jieguo,
312
+ '报表审核时间': this.pushAuditData.f_date
313
+ },
314
+ // 审核人
315
+ f_audit_person: this.pushAuditData.f_audit_person,
316
+ // 描述
317
+ f_describe: `${this.$login.f.name}发起补气汇总报表推送审核操作`,
318
+ // 附件
319
+ fileParam: fileParam,
320
+ // 登录人信息
321
+ userBaseInfo: {
322
+ f_operator: this.$login.f.name,
323
+ f_operatorid: this.$login.f.id,
324
+ f_orgid: this.$login.f.orgid,
325
+ f_orgname: this.$login.f.orgs,
326
+ f_depid: this.$login.f.depids,
327
+ f_depname: this.$login.f.deps
328
+ },
329
+ // 业务类型
330
+ type: '补气汇总报表推送',
331
+ f_type: '补气汇总报表推送审核',
332
+ f_otherparam: [],
333
+ logicName: 'gasSalesReportReview'
334
+ }
335
+ console.log(param, this.pushAuditData)
336
+ this.$resetpost('api/af-revenue/logic/commonAuditLogic', param, {
337
+ warnMsg: `确定要对当前查询的报表数据进行推送审核吗?`,
338
+ resolveMsg: `提交审核完成!!`,
339
+ rejectMsg: `提交审核失败!!请重试!!`
340
+ }).then((res) => {
341
+ this.pushAuditShow = false
342
+ this.pushAuditData.f_audit_person = ''
343
+ this.pushAuditData.f_name = ''
344
+ this.pushAuditData.f_jieguo = ''
345
+ this.pushAuditData.f_date = ''
346
+ this.randomId = this.getRandomId()
347
+ })
348
+ },
349
+ pushAudit () {
350
+ this.pushAuditShow = true
351
+ },
176
352
  searchData () {
177
353
  this.$refs.paged.$refs.criteria.search()
178
354
  },
@@ -180,8 +356,12 @@ export default {
180
356
  this.printTime = this.$login.toStandardTimeString()
181
357
  let orgstr = this.orgCondtionStr
182
358
  args.condition = `${args.condition} ` + orgstr
359
+ let condition = `${args.condition} ` + orgstr
183
360
  this.$refs.paged.$refs.criteria.model.f_orgid = orgstr
184
361
  this.$refs.paged.search(args)
362
+ this.pushAuditData.startDate = this.model.params.startDate
363
+ this.pushAuditData.endDate = this.model.params.endDate
364
+ this.pushAuditData.condition = condition.replace(/'/g, "''")
185
365
  },
186
366
  getRes (condition, obj) {
187
367
  this.orgCondtionStr = condition
@@ -874,8 +874,9 @@
874
874
  <table class="table-hover">
875
875
  <tr style="position: relative" class="table-bordered">
876
876
  <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">汇总信息</td>
877
- <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">已挂表:{{sumsmodel.f_yiguabiao}}</td>
878
- <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">未挂表:{{sumsmodel.f_weiguabiao}}</td>
877
+ <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">卡表账户余额:{{sumsmodel.f_kb_balance}}</td>
878
+ <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">机表账户余额:{{sumsmodel.f_jb_balance}}</td>
879
+ <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">物联网表表上余额:{{sumsmodel.f_balance_amount}}</td>
879
880
  </tr>
880
881
  </table>
881
882
 
@@ -963,7 +964,7 @@
963
964
  isSingleUser: null,
964
965
  other:[],
965
966
  footer:[],
966
- model: new PagedList('api/af-revenue/sql/compreQuery', 20,{orderitem: this.orderitem?'"' + this.orderitem + ' "':`'f_residential_area desc,f_building desc,f_unit desc,f_floor desc,f_room desc,f_userfiles_id desc'`},{f_yiguabiao:0,f_weiguabiao:0}),
967
+ model: new PagedList('api/af-revenue/sql/compreQuery', 20,{orderitem: this.orderitem?'"' + this.orderitem + ' "':`'f_residential_area desc,f_building desc,f_unit desc,f_floor desc,f_room desc,f_userfiles_id desc'`},{f_kb_balance:0,f_jb_balance:0,f_balance_amount:0}),
967
968
  criteriaShow: false,
968
969
  orgCondtionStr:'',
969
970
  residentialArea: [],
@@ -42,7 +42,7 @@
42
42
  <button @click="$parent.$parent.clearmsg" class="button_clear button_spacing">清空</button>
43
43
  <export-excel :data="$parent.$parent.getCondition()"
44
44
  :field="$parent.$parent.getfield"
45
- sqlurl="api/af-revenue/logic/openapi/exportfile" sql-name="webmeter_getUserGasList" template-name='未用气分析'
45
+ sqlurl="api/af-revenue/logic/openapi/exportfile" sql-name="webmeter_getUserGasList" template-name='用气分析'
46
46
  v-ref:exports
47
47
  :choose-col="true"></export-excel>
48
48
  <button class="button_export button_spacing" style="width: max-content" @click="$parent.$parent.showTotalForm()" >显示汇总</button>
@@ -8,4 +8,6 @@ export default function () {
8
8
  Vue.component('record-info-query', (resolve) => {
9
9
  require(['./RecordInfoQuery'], resolve)
10
10
  })
11
+ // 物联网表用气量统计表新
12
+ Vue.component('new-use-gas-statistics', (resolve) => { require(['./NewGasStatistics'], resolve) })
11
13
  }