apply-clients 5.0.35-ezhou-2 → 5.0.35-ezhou-4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/package.json +2 -2
  2. package/src/apply.js +168 -153
  3. package/src/components/app_apply/ApplyToDoList.vue +76 -2586
  4. package/src/components/app_apply/Gongcheng.vue +3631 -0
  5. package/src/components/app_apply/OneToMany.vue +194 -0
  6. package/src/components/app_apply/PlaceControler.vue +12 -0
  7. package/src/components/app_apply/ServiceControl.vue +353 -14
  8. package/src/components/app_apply/ezhou/ServiceView.vue +139 -57
  9. package/src/components/image/doc.jpg +0 -0
  10. package/src/components/image/dwg.png +0 -0
  11. package/src/components/image/dxf.png +0 -0
  12. package/src/components/image/excel.jpg +0 -0
  13. package/src/components/image/pdf.jpg +0 -0
  14. package/src/components/product/Common/ApplyValidateBill.vue +13 -6
  15. package/src/components/product/Common/PrintBill.vue +7 -6
  16. package/src/components/product/EngineeringManagement/EngineerUpload.vue +304 -0
  17. package/src/components/product/EngineeringManagement/EngineeringManagement.vue +137 -0
  18. package/src/components/product/EngineeringManagement/EngineeringSelect.vue +586 -0
  19. package/src/components/product/EngineeringSupervisory/EngineeringApplyStopInfo.vue +281 -0
  20. package/src/components/product/EngineeringSupervisory/EngineeringSupervisoryControl.vue +132 -0
  21. package/src/components/product/EngineeringSupervisory/EngineeringSupervisoryList.vue +340 -0
  22. package/src/components/product/EngineeringSupervisory/EngineeringSupervisoryServiceControl.vue +490 -0
  23. package/src/components/product/Function/InstallInfoSelect.vue +3 -2
  24. package/src/components/product/Function/Service/FunctionServiceControl.vue +37 -1
  25. package/src/components/product/Function/functions/ApplyUpload.vue +556 -0
  26. package/src/components/product/Function/functions/BuyerMessage.vue +1 -1
  27. package/src/components/product/Function/functions/InstallFee.vue +1144 -1080
  28. package/src/components/product/Function/functions/InstallFeeInfo.vue +6 -1
  29. package/src/components/product/Process/ExplorationSelect.vue +41 -8
  30. package/src/components/product/Process/Processes/Service/ApplyChargeSearch.vue +126 -39
  31. package/src/components/product/Process/Processes/Service/PaperTicketBill.vue +1 -1
  32. package/src/components/product/Process/Processes/Service/ServiceControl.vue +2247 -1808
  33. package/src/components/product/Process/Processes/selectUserinfo.vue +183 -0
  34. package/src/components/product/ServiceView.vue +21 -6
  35. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +163 -14
  36. package/src/components/product/Supervisory/SupervisoryList.vue +102 -17
  37. package/src/components/product/applyReport/ApplyReport.vue +205 -0
  38. package/src/components/product/applyReport/PrintApplyReport.vue +116 -0
  39. package/src/components/product/stopInfo/ApplyStopInfo.vue +2 -1
  40. package/src/ezhouAndroid.js +4 -0
  41. package/src/plugins/commonService.js +1 -1
@@ -26,6 +26,10 @@
26
26
  <label class = "col-sm-5 control-label">用户类型:</label>
27
27
  <span class = "col-sm-7">{{model.f_user_type}}</span>
28
28
  </div>
29
+ <div class="row">
30
+ <label class = "col-sm-5 control-label">支付账户:</label>
31
+ <span class = "col-sm-7">{{model.f_payment_account}}</span>
32
+ </div>
29
33
  <div class="row">
30
34
  <label class = "col-sm-5 control-label">申请户数:</label>
31
35
  <span class = "col-sm-7">{{model.f_user_type}}</span>
@@ -96,7 +100,8 @@
96
100
  f_user_type: '无',
97
101
  f_house_type: '无',
98
102
  f_residential_area: '无',
99
- f_apply_remarks: '无'
103
+ f_apply_remarks: '无',
104
+ f_payment_account: '无'
100
105
  }
101
106
  }
102
107
  },
@@ -113,10 +113,19 @@
113
113
  </div>
114
114
  </div>
115
115
 
116
+ <!-- <div class="col-sm-2" style="float: left">
117
+ <label class="col-sm-4 control-label">报装来源</label>
118
+ <div class="col-sm-8">
119
+ <v-select style="min-width: 100%;" @change="$dispatch('setQueryCondition',model)" :options="$parent.$parent.alloption"
120
+ condition="f_apply_source = '{}'" placeholder='报装来源'
121
+ v-model="model.f_apply_source" :value.sync="model.f_apply_source" close-on-select>
122
+ </v-select>
123
+ </div>
124
+ </div> -->
116
125
  <div class="col-sm-2" style="float: left">
117
126
  <label class="col-sm-4 control-label">报装来源</label>
118
127
  <div class="col-sm-8">
119
- <v-select style="min-width: 100%;" @change="$dispatch('setQueryCondition',model)" :options="[{label:'全部',value:''},{label:'燃气系统',value:'燃气系统'},{label:'微信',value:'微信'},{label:'住建局',value:'住建局'}]"
128
+ <v-select style="min-width: 100%;" @change="$dispatch('setQueryCondition',model)" :options="[{label:'住建局',value:'住建局'},{label:'燃气系统',value:'燃气系统'},{label:'电话预约',value:'电话预约'},{label:'微信预约',value:'微信预约'}]"
120
129
  condition="f_apply_source = '{}'" placeholder='报装来源'
121
130
  v-model="model.f_apply_source" :value.sync="model.f_apply_source" close-on-select>
122
131
  </v-select>
@@ -124,7 +133,6 @@
124
133
  </div>
125
134
 
126
135
 
127
-
128
136
  </div>
129
137
  <div class="col-sm-12 " style="margin-top:5px">
130
138
  <div class="col-sm-2">
@@ -160,6 +168,9 @@
160
168
  <th>
161
169
  <nobr>当前状态</nobr>
162
170
  </th>
171
+ <th>
172
+ <nobr>工程编号</nobr>
173
+ </th>
163
174
  <th>
164
175
  <nobr>报建编号</nobr>
165
176
  </th>
@@ -212,6 +223,9 @@
212
223
  <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
213
224
  <nobr><font>{{row.f_sub_state!='完工' ? '未完工' :'完工'}}</font></nobr>
214
225
  </td>
226
+ <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
227
+ <nobr><font>{{row.f_project_number}}</font></nobr>
228
+ </td>
215
229
  <td :class="[ row.isover ==='过期' ? 'p1' : row.isbeforeover === '预期提醒'? 'p':'' ]" style="text-align: center;">
216
230
  <nobr><font>{{row.f_apply_num}}</font></nobr>
217
231
  </td>
@@ -316,7 +330,8 @@
316
330
  model: new PagedList('rs/sql/checkuser', 20, {
317
331
  data: {
318
332
  id: this.$login.f.id,
319
- fengongsi: this.$login.f.f_fengongsi
333
+ fengongsi: this.$login.f.f_fengongsi,
334
+ f_product_id: 0
320
335
  }
321
336
  }),
322
337
  fapplytype: this.$appdata.getParam('用户类型'),
@@ -328,6 +343,7 @@
328
343
  select: '',
329
344
  alloptions:[],
330
345
  showFile:false,
346
+ alloption:[],
331
347
  button_name:"查询",
332
348
  showstopinfoflag:false,
333
349
  stopremarks:"",
@@ -342,6 +358,7 @@
342
358
  console.log("开始判断")
343
359
  },
344
360
  async ready() {
361
+ this.eachFind();
345
362
  this.$refs.cp.$refs.cri.model.startDate = Util.toStandardDateString() + ' 00:00:00'
346
363
  this.$refs.cp.$refs.cri.model.endDate = Util.toStandardDateString() + ' 23:59:59'
347
364
  await this.getConfig()
@@ -352,7 +369,6 @@
352
369
  let self = this
353
370
  //判断用户是否有权限
354
371
  this.checkUserOperator();
355
-
356
372
  },
357
373
  methods: {
358
374
  //清空 查询条件项
@@ -388,11 +404,9 @@
388
404
  param.push({label:"全部",value:""})
389
405
  str.activitys.forEach(function(item){
390
406
  let title = item.title;
391
- console.log(title)
392
407
  param.push({label:title,value:title});
393
408
  })
394
409
  this.alloptions = param;
395
-
396
410
  },
397
411
  generateUUID() {
398
412
  var d = new Date().getTime()
@@ -426,18 +440,35 @@
426
440
 
427
441
  },
428
442
  async addactive(modify) {
443
+ // 动态获取报装来源
444
+ // let ces = [];
445
+ // http.load('POST', 'rs/sql/findParameter').then((res) => {
446
+ // console.log("这是报装来源:" + res.name)
447
+ // res.forEach(function(res){
448
+ // ces.push({label:res.name,value:res.name});
449
+ // })
450
+ // this.alloption = ces;
451
+ // })
429
452
  this.button_name ="返回"
453
+ var workflow_xmlfilename='鄂州报建流程'
454
+ if(this.$login.f.filialenames === '迪泰天然气' && modify==='集体报装申请'){
455
+ workflow_xmlfilename = '鄂州报建流程迪泰'
456
+ }else{
457
+ workflow_xmlfilename = '鄂州报建流程'
458
+ }
430
459
  //await this.getConfig()
431
460
  this.$workflow_vue.start_activity = modify
432
461
  let http = new HttpResetClass()
433
- let res = await http.load('POST','rs/logic/ApplyGetProcessID',{data:{filename:this.$workflow_vue.workflow_xmlfilename,start_activity:this.$workflow_vue.start_activity}}, {resolveMsg: null, rejectMsg: '获取流程ID失败,请联系开发人员'})
462
+ let res = await http.load('POST','rs/logic/ApplyGetProcessID',{data:{filename:workflow_xmlfilename,start_activity:this.$workflow_vue.start_activity}}, {resolveMsg: null, rejectMsg: '获取流程ID失败,请联系开发人员'})
434
463
  this.$refs.cp.pager = false
464
+ debugger
435
465
  let val = {
436
466
  defname: this.$workflow_vue.start_activity,
437
467
  f_process_id: res.data.f_process_id,
438
468
  f_apply_date: Util.toStandardTimeString(),
439
469
  f_apply_num: this.generateUUID(),
440
- f_apply_operator_telephone: this.$login.f.f_fgsdianhua
470
+ f_apply_operator_telephone: this.$login.f.f_fgsdianhua,
471
+ f_product_id: res.data.f_product_id
441
472
  }
442
473
  // // 如果是改装,将modify装入val
443
474
  // if(modify){
@@ -594,10 +625,12 @@
594
625
  }
595
626
  if(hourfals!=0){
596
627
  this.speckText('请注意:第:'+overNumString1+'数据一小时后过期')
628
+ this.$showMessage("请注意:第:" + overNumString1 + "数据一小时后过期")
597
629
  }
598
630
  if (flagNum1!=1){
599
631
  console.log(overNumString1);
600
632
  this.speckText('请注意:第:'+overNumString1+'数据即将过期')
633
+ this.$showMessage("请注意:第:" + overNumString1 + "数据即将过期")
601
634
  }
602
635
  if(dbflag !=1){
603
636
  this.speckText('请注意: 您有'+dbflag-1+'条数据被督办')
@@ -103,6 +103,25 @@
103
103
  </div>
104
104
  </div>
105
105
 
106
+ <div class="form-group col-sm-2">
107
+ <label class="col-sm-4 control-label linehhh">报装类型</label>
108
+ <div class="col-sm-8">
109
+ <v-select :value.sync="model.f_work_type" v-model="model.f_work_type"
110
+ :options='$parent.$parent.worktype' width="100%"
111
+ close-on-select condition="a.f_work_type = '{}'">
112
+ </v-select>
113
+ </div>
114
+ </div>
115
+
116
+ <div class="form-group col-sm-2">
117
+ <label class="col-sm-4 control-label linehhh">用户类型</label>
118
+ <div class="col-sm-8">
119
+ <v-select :value.sync="model.f_user_type" v-model="model.f_user_type"
120
+ :options='$parent.$parent.usertype' width="100%"
121
+ close-on-select condition="a.f_user_type = '{}'">
122
+ </v-select>
123
+ </div>
124
+ </div>
106
125
 
107
126
  <div class="form-group">
108
127
  <button class="btn btn-primary" @click="search(),$parent.$parent.showpager()">
@@ -130,14 +149,14 @@
130
149
  <th><nobr>总应缴金额</nobr></th>
131
150
  <th><nobr>已交金额</nobr></th>
132
151
  <th><nobr>未交金额</nobr></th>
133
- <!-- <th><nobr>发票冲正</nobr></th>-->
152
+ <th><nobr>操作</nobr></th>
134
153
  </tr>
135
154
  </template>
136
155
  <template partial='body'>
137
156
  <td style="text-align: center;">{{$index+1}}</td>
138
157
  <td style="text-align: center;">{{row.f_charge_money}}</td>
139
- <td style="text-align: center;">{{row.f_charge_user}}</td>
140
- <td style="text-align: center;">{{row.f_charge_address}}</td>
158
+ <td style="text-align: center;">{{row.f_user_name}}</td>
159
+ <td style="text-align: center;">{{row.f_address}}</td>
141
160
  <!-- <td style="text-align: center;">{{// row.f_charge_item}}</td>-->
142
161
  <td style="text-align: center;">{{row.f_charge_collectors}}</td>
143
162
  <td style="text-align: center;">{{row.f_charging_status}}</td>
@@ -151,7 +170,9 @@
151
170
  <td style="text-align: center;">{{row.f_total_cost}}</td>
152
171
  <td style="text-align: center;">{{row.app_f_cumulative_money}}</td>
153
172
  <td style="text-align: center;">{{row.f_unaccounts_money}}</td>
154
- <!-- <td style="text-align: center;">{{row.f_is_correct}}</td>-->
173
+ <td style="text-align: center;">
174
+ <button class="btn-primary btn btn-sm" @click.prevent="$parent.$parent.$parent.update_way(row)">修改</button>
175
+ </td>
155
176
  </template>
156
177
  </data-grid>
157
178
  </criteria-paged>
@@ -159,19 +180,45 @@
159
180
  <div class="flex" style="height: 10%">
160
181
  <div novalidate class="form-inline auto" partial>
161
182
  <p class="bg-info text-center" style="padding: 8px;font-size: 20px">合计收费记录共
162
- <span style="color: red">{{modeluse.rows.length}}</span>笔,合计金额<span style="color: red">{{price.rows[0].f_charge_money}}</span>元
183
+ <span style="color: red">{{modeluse.rows.length}}</span>笔,
184
+ 收款金额合计<span style="color: red">{{price.rows[0].f_charge_money}}</span>元,
185
+ <!--合计应缴总金额<span style="color: red">{{price.rows[0].f_total_cost}}</span>元,
186
+ 已缴<span style="color: red">{{price.rows[0].f_cumulative_money}}</span>元,未缴<span style="color: red">{{price.rows[0].f_unaccounts_money}}</span>元-->
163
187
  </p>
164
188
  </div>
165
189
  </div>
166
190
  </div>
191
+ <!--修改弹出框-->
192
+ <modal :show.sync="updateControl" v-ref:modal backdrop="false">
193
+ <header slot="modal-header" class="modal-header">
194
+ <button type="button" class="close" @click="closeUpdate()"><span>&times;</span></button>
195
+ <h4 class="modal-title">修改</h4>
196
+ </header>
197
+ <article slot="modal-body" class="modal-body" >
198
+ <div class="from-group" style="width: 100%">
199
+ <label style="width: 15%;float: left">票据类型</label>
200
+ <v-select :value.sync="selectItem.f_bill_style" v-model="selectItem.f_bill_style"
201
+ :options='billstyle' placeholder='请选择' style="width: 80%;float: left"
202
+ close-on-select >
203
+ </v-select>
204
+ </div>
205
+ </article>
206
+
167
207
 
208
+ <footer slot="modal-footer" class="modal-footer">
209
+ <div class="from-group" style="width: 100%;float: left">
210
+ <button v-show="updateControl" type="button" class="btn btn-default" @click='closeUpdate'>取消</button>
211
+ <button v-show="updateControl" type="button" class="btn btn-success" @click='confirm'>确认</button>
212
+ </div>
213
+ </footer>
214
+ </modal>
168
215
  </div>
169
216
  </template>
170
217
  <script>
171
218
  import * as Util from '../../../../Util'
172
219
 
173
220
  import { PagedList } from 'vue-client'
174
-
221
+ import {HttpResetClass} from 'vue-client'
175
222
  Date.prototype.Format = function (fmt) {
176
223
  var o = {
177
224
  "M+": this.getMonth() + 1, //月份
@@ -196,57 +243,99 @@
196
243
  filialeNameStr: null,
197
244
  filialeCodeStr: this.$login.f.f_orgids,
198
245
  userid: this.$login.f.id,
199
- source:`tool.getFullTree(this.getRights().where(row.getType() != $zone$).where(row.getType() != $role$))`,
246
+ source: `tool.getFullTree(this.getRights().where(row.getType() != $zone$).where(row.getType() != $role$))`,
200
247
  // f_operate_start_date:new Date().Format('yyyy-MM-dd HH:mm:ss'),
201
248
  // f_operate_end_date: new Date().Format('yyyy-MM-dd HH:mm:ss'),
202
- model: new PagedList('rs/sql/getApplyCharge', 30, { orderitem: '`id`'}),
203
- modeluse: new PagedList('rs/sql/getApplyCharge', 999999, { orderitem: '`id`'}),
204
- price: new PagedList('rs/sql/getChargeAll', 999999, { orderitem: '`f_charge_money`'}),
205
- human:[],
206
- filiale:[],
207
- method:[],
208
- correct:[
249
+ model: new PagedList('rs/sql/getApplyCharge', 30, {orderitem: '`id`'}),
250
+ modeluse: new PagedList('rs/sql/getApplyCharge', 999999, {orderitem: '`id`'}),
251
+ price: new PagedList('rs/sql/getChargeAll', 999999, {orderitem: '`f_charge_money`'}),
252
+ human: [],
253
+ filiale: [],
254
+ method: this.$appdata.getParam('付款方式'),
255
+ usertype:[
256
+ {label: '民用', value: '民用'},
257
+ {label: '非民用', value: '非民用'}
258
+ ],
259
+ worktype:[
260
+ {label: '新报装', value: '新报装'},
261
+ {label: '改管', value: '改管'}
262
+ ],
263
+ correct: [
209
264
  {label: '是', value: '是'},
210
- {label:'否', value: '否'}
265
+ {label: '否', value: '否'}
211
266
  ],
212
- state:[
267
+ state: [
213
268
  {label: '有效', value: '有效'},
214
- {label:'无效', value: '无效'}
215
- ]
269
+ {label: '无效', value: '无效'}
270
+ ],
271
+ selectItem: {},
272
+ billstyle: this.$appdata.getParam('发票类型'),
273
+ updateControl: false,
274
+ billID: 0
216
275
  }
217
276
  },
218
277
  ready () {
219
- this.$refs.cp.$refs.cri.model.f_operate_start_date = Util.toStandardDateString() + ' 00:00:00'
220
- this.$refs.cp.$refs.cri.model.f_operate_end_date = Util.toStandardDateString() + ' 23:59:59'
278
+ this.$refs.paged.$refs.criteria.model.f_operate_start_date = Util.toStandardDateString() + ' 00:00:00'
279
+ this.$refs.paged.$refs.criteria.model.f_operate_end_date = Util.toStandardDateString() + ' 23:59:59'
221
280
  this.search()
222
281
  this.gethuman()
223
282
  },
224
283
  methods: {
225
- clear(){
226
- this.$refs.cp.$refs.cri.model = {}
284
+ clear () {
285
+ this.$refs.paged.$refs.criteria.model = {}
227
286
  },
228
- getRes(obj) {
287
+ getRes (obj) {
229
288
  this.filialeNameStr = obj.res
230
289
  this.filialeCodeStr = obj.resids
231
290
  console.log(this.filialeNameStr)
232
291
  console.log(this.filialeCodeStr)
233
292
  },
234
- showpager() {
293
+ showpager () {
235
294
  // this.$refs.cp.pager = true
236
295
  this.$dispatch('hiddenbtn')
237
296
  },
238
- search () {
239
- let condition = "1=1 and r.f_filiale like '%"+this.$login.f.f_fengongsi+"%'"
297
+ search () {
298
+ let condition = "1=1 and r.f_filiale like '%" + this.$login.f.f_fengongsi + "%'"
299
+ // debugger
300
+ // let condition = args.condition
301
+ debugger
240
302
  this.model.search(condition)
241
303
  this.modeluse.search(condition)
242
- this.price.search(condition)
304
+ let condition1 = condition
305
+ this.price.search(condition1)
243
306
  },
244
-
245
- selfSearch(args) {
246
- args.condition = args.condition + ` and tbd.f_orgstr like '%${this.filialeCodeStr}%'`
307
+ update_way (row) {
308
+ console.log('进入修改方法')
309
+ this.selectItem = {}
310
+ this.billID = row.id
311
+ this.updateControl = true
312
+ },
313
+ closeUpdate () {
314
+ this.updateControl = false
315
+ },
316
+ confirm () {
317
+ let data = {
318
+ f_bill_style: this.selectItem.f_bill_style[0],
319
+ id: this.billID
320
+ }
321
+ console.log('数据:' + JSON.stringify(this.selectItem))
322
+ this.$resetpost('rs/entity/t_charge_record', data).then((res) => {
323
+ console.log('返回值:' + JSON.stringify(res.data))
324
+ if (res.data.id > 0) {
325
+ // this.$showMessage('修改成功!')
326
+ this.closeUpdate()
327
+ this.search()
328
+ }
329
+ })
330
+ },
331
+ selfSearch (args) {
332
+ args.condition = args.condition + ` and a.f_filialeids like '%${this.filialeCodeStr}%'`
333
+ console.log('condition:', args.condition)
247
334
  this.model.search(args.condition, args.model)
335
+ this.modeluse.search(args.condition, args.model)
336
+ this.price.search(args.condition, args.model)
248
337
  },
249
- cleaner() {
338
+ cleaner () {
250
339
  Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
251
340
  this.$refs.paged.$refs.criteria.model[key] = ''
252
341
  })
@@ -256,19 +345,19 @@
256
345
  this.modeluse.search(this.$refs.paged.$refs.criteria.condition)
257
346
  this.price.search(this.$refs.paged.$refs.criteria.condition)
258
347
  },
259
- gethuman(){
348
+ gethuman () {
260
349
  console.log('获取人员')
261
350
  this.$resetpost('rs/logic/getChargeList', {data: {condition: `1=1`}}, {resolveMsg: null, rejectMsg: null}).then((res) => {
262
351
  // this.params.rows.splice(index, 1)
263
- console.log('获取成功',res)
352
+ console.log('获取成功', res)
264
353
  let house = []
265
- for (let row of res.data.human){
266
- house.push({label: row.f_charge_collectors,value: row.f_charge_collectors})
354
+ for (let row of res.data.human) {
355
+ house.push({label: row.f_charge_collectors, value: row.f_charge_collectors})
267
356
  }
268
357
  this.human = house
269
358
  let house2 = []
270
359
  for (let row of res.data.f){
271
- house2.push({label: row.f_filiale,value: row.f_filiale})
360
+ house2.push({label: row.r.f_filiale,value: row.r.f_filiale})
272
361
  }
273
362
  this.filiale = house2
274
363
  let house3 = []
@@ -277,9 +366,7 @@
277
366
  }
278
367
  this.method = house3
279
368
  })
280
-
281
- },
282
-
369
+ }
283
370
  },
284
371
  computed: {
285
372
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  <validator name='v'>
10
10
  <form class="form-horizontal select-overspread">
11
- <div class="row" style="display: flex;justify-content: center;" id='normal-bill' >
11
+ <div class="row" style="display: flex;justify-content: center;" id='normal-bill2' >
12
12
  <div class="form-group col-sm-6">
13
13
  <label class=" col-sm-2 control-label">发票代码:</label>
14
14
  <input type="text" class="form-control" v-model="model.f_bill_code" style="width:60%"