apply-clients 7.1.36-yuchuan-4 → 7.1.36-yuchuan-5

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 (45) hide show
  1. package/index.html +1 -1
  2. package/package.json +2 -2
  3. package/src/apply.js +9 -3
  4. package/src/applyAndroid.js +9 -0
  5. package/src/assets//345/260/217/345/214/272.png +0 -0
  6. package/src/assets//347/224/250/346/210/267ID.png +0 -0
  7. package/src/assets//347/224/250/346/210/267/345/247/223/345/220/215.png +0 -0
  8. package/src/components/android/AppSign.vue +7 -4
  9. package/src/components/android/AppUpload.vue +1 -1
  10. package/src/components/android/Ignition/VentilationIgnitionHandle.vue +38 -31
  11. package/src/components/android/Process/AppServiceControl.vue +32 -5
  12. package/src/components/android/Process/Processes/AppInstallationDetails.vue +205 -92
  13. package/src/components/android/SealBind.vue +376 -0
  14. package/src/components/android/SealManage.vue +264 -0
  15. package/src/components/android/Supervisory/AppProcessSupervisory.vue +344 -334
  16. package/src/components/android/Task/ShiGongXinXi/AppShowBuildUser.vue +9 -9
  17. package/src/components/android/Task/yiban/AppShowDone.vue +442 -0
  18. package/src/components/android/Task/yiban/ShowDone.vue +95 -0
  19. package/src/components/android/Task/yiban/satisfactionShow.vue +166 -0
  20. package/src/components/product/ApplyCharge/ApplyChargeList.vue +18 -0
  21. package/src/components/product/ApplyGaiXianCharge/ApplyGaiXianViewList.vue +272 -0
  22. package/src/components/product/ApplyGuanXian/GuanXianCaiLiao.vue +1 -1
  23. package/src/components/product/ApplyGuanXian/GuanXianExplorationSelect.vue +31 -31
  24. package/src/components/product/ApplyGuanXian/GuanXianSupervisoryhCart.vue +4 -4
  25. package/src/components/product/ApplyMap/ApplyDragaboutList.vue +2 -2
  26. package/src/components/product/ApplyMap/ApplyMapLocation.vue +22 -10
  27. package/src/components/product/ChongZheng/ApplyChongZhengList.vue +1 -1
  28. package/src/components/product/Function/Service/FunctionServiceControl.vue +125 -14
  29. package/src/components/product/Ignition/IgnitionListManage.vue +1 -1
  30. package/src/components/product/Ignition/IgnitionRecord.vue +22 -0
  31. package/src/components/product/List/OldShowDevices.vue +271 -0
  32. package/src/components/product/List/ShowAllActivity.vue +104 -19
  33. package/src/components/product/List/ShowDevices.vue +1 -1
  34. package/src/components/product/Process/ExplorationSelect.vue +41 -35
  35. package/src/components/product/Process/NewExplorationSelect.vue +31 -31
  36. package/src/components/product/Process/Processes/InstallationDetails.vue +34 -1
  37. package/src/components/product/Process/Processes/Print/printGaiXianCharge.vue +244 -0
  38. package/src/components/product/Process/Processes/devicesManagement.vue +23 -4
  39. package/src/components/product/Process/Processes/newDevicesManagement.vue +10 -1
  40. package/src/components/product/Process/Service/ServiceControl.vue +42 -3
  41. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +1 -3
  42. package/src/components/product/Supervisory/SupervisoryControl.vue +2 -0
  43. package/src/components/product/Supervisory/SupervisoryList.vue +17 -0
  44. package/src/components/product/VueUtils/ApplyUpload.vue +3 -2
  45. package/src/components/product/records/AdjustmentRecordList.vue +162 -0
@@ -0,0 +1,244 @@
1
+ <template>
2
+ <style id="printChargeStyle">
3
+ td {
4
+ height: 30px;
5
+ text-align: center;
6
+ }
7
+
8
+ table {
9
+ margin: auto;
10
+ width: 100%;
11
+ border-collapse: collapse;
12
+ border: 1px solid black;
13
+ }
14
+
15
+ h1, h2, h3, h4, h5, h6 {
16
+ text-align: center;
17
+ }
18
+
19
+ .orgs {
20
+ border-bottom: 2px solid;
21
+ padding: 5px;
22
+ }
23
+
24
+ .date {
25
+ float: left;
26
+ padding-left: 10px;
27
+ }
28
+
29
+ .status {
30
+ float: right;
31
+ padding-right: 10px;
32
+ }
33
+
34
+ .seal {
35
+ position: absolute;
36
+ right: 100px;
37
+ top: 120px;
38
+ width: 150px;
39
+ height: 150px;
40
+ /*opacity: 0.5;*/
41
+ z-index: -1;
42
+ }
43
+ </style>
44
+ <div style="margin-bottom: 20px" class="form-group select-overspread">
45
+ <label class="control-label-justify control-label col-sm-10">打印解款单</label>
46
+ <div class="col-sm-2">
47
+ <button class="button_search button_spacing" type="button" style="width: max-content;position: absolute"
48
+ @click="openModal()">打印预览
49
+ </button>
50
+ </div>
51
+ </div>
52
+ <modal v-if="showModal" :show.sync="showModal" title="打印预览" v-ref:modal large backdrop="false">
53
+ <header slot="modal-header" class="modal-header">
54
+ <button type="button" class="close" @click="colseModal()"><span>&times;</span></button>
55
+ <h4 class="modal-title">打印预览</h4>
56
+ </header>
57
+ <article slot="modal-body" class="modal-body">
58
+ <div id="printCharge">
59
+ <h4>
60
+ {{ orgs }}工料费解款单
61
+ </h4>
62
+ <table border="1" width="100%">
63
+ <tr>
64
+ <td style="width: 17%">工程编号:</td>
65
+ <td colspan="2" style="border: none">
66
+ {{ selectdata.f_apply_num }}
67
+ </td>
68
+ <td style="width: 17%">开单日期:</td>
69
+ <td colspan="2" style="border: none">
70
+ {{ new Date().Format('yyyy年MM月dd日') }}
71
+ </td>
72
+ </tr>
73
+ <tr>
74
+ <td style="width: 17%">用户姓名:</td>
75
+ <td colspan="2" style="width: 33%">{{ selectdata.f_user_name }}</td>
76
+ <td style="width: 17%">联系人:</td>
77
+ <td colspan="2" style="width: 33%">{{ selectdata.f_contact }}</td>
78
+ </tr>
79
+ <tr>
80
+ <td>用户地址:</td>
81
+ <td colspan="5">{{ selectdata.f_address }}</td>
82
+ </tr>
83
+ <tr>
84
+ <td>报装类型:</td>
85
+ <td colspan="5">{{selectdata.f_apply_type}}</td>
86
+ </tr>
87
+ <tr>
88
+ <td>金额:</td>
89
+ <td colspan="2">{{ selectdata.f_due_money }}元</td>
90
+ <td>金额大写:</td>
91
+ <td colspan="2">{{ selectdata.f_amount_words }}</td>
92
+ </tr>
93
+ <tr>
94
+ <td>收款单位:</td>
95
+ <td colspan="2">榆林榆川天然气有限责任公司</td>
96
+ <td>项目来源:</td>
97
+ <td colspan="2">天然气工程材料费</td>
98
+ </tr>
99
+ <tr>
100
+ <td>收款账号:</td>
101
+ <td colspan="2"> 1032 0579 1997</td>
102
+ <td>解款部门:</td>
103
+ <td colspan="2">中国银行 航宇路支行</td>
104
+ </tr>
105
+ <tr>
106
+ <td>改线原因:</td>
107
+ <td colspan="5">{{ selectdata.f_cause}}</td>
108
+ </tr>
109
+ <tr>
110
+ <td>注:</td>
111
+ <td colspan="5">转账用户需航宇路中国银行取确认收款单后来公司换取发票。</td>
112
+ </tr>
113
+ </table>
114
+ </div>
115
+ </article>
116
+ <footer slot="modal-footer" class="modal-footer">
117
+ <button type="button" class="btn btn-primary" @click="print()">打印</button>
118
+ </footer>
119
+ </modal>
120
+
121
+ <print-element v-show="false" v-ref:print id='printCharge' styleid='printChargeStyle'
122
+ top='20' left='30' width='100%' height='100%'>
123
+ </print-element>
124
+ </template>
125
+
126
+ <script>
127
+ import {isEmpty} from '../../../../Util'
128
+ import {HttpResetClass} from "vue-client";
129
+
130
+ Date.prototype.Format = function (fmt) {
131
+ var o = {
132
+ 'M+': this.getMonth() + 1, // 月份
133
+ 'd+': this.getDate(), // 日
134
+ 'H+': this.getHours(), // 小时
135
+ 'm+': this.getMinutes(), // 分
136
+ 's+': this.getSeconds(), // 秒
137
+ 'q+': Math.floor((this.getMonth() + 3) / 3), // 季度
138
+ 'S': this.getMilliseconds() // 毫秒
139
+ }
140
+ if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length))
141
+ for (var k in o)
142
+ if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
143
+ return fmt
144
+ }
145
+ export default {
146
+ title: '打印解款单',
147
+ props: ['selectdata'],
148
+ data () {
149
+ return {
150
+ showModal: false,
151
+ device: null
152
+ }
153
+ },
154
+ ready () {
155
+ this.getDevice(this.selectdata.f_process_id)
156
+ },
157
+ methods: {
158
+ openModal () {
159
+ if (this.selectdata.f_due_money >= 0 ) {
160
+ this.smalltoBIG(this.selectdata.f_due_money)
161
+ }
162
+ this.showModal = true
163
+ },
164
+ colseModal () {
165
+ this.showModal = false
166
+ },
167
+ print () {
168
+ this.showInput = false
169
+ setTimeout(() => {
170
+ this.$refs.print.PrintTable()
171
+ }, 10)
172
+ },
173
+ // 金额转大写
174
+ smalltoBIG (n) {
175
+ let fraction = ['角', '分']
176
+ let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
177
+ let unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']]
178
+ let head = n < 0 ? '欠' : ''
179
+ n = Math.abs(n)
180
+
181
+ let s = ''
182
+
183
+ for (var i = 0; i < fraction.length; i++) {
184
+ s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '')
185
+ }
186
+ s = s || '整'
187
+ n = Math.floor(n)
188
+
189
+ for (var i = 0; i < unit[0].length && n > 0; i++) {
190
+ let p = ''
191
+ for (var j = 0; j < unit[1].length && n > 0; j++) {
192
+ p = digit[n % 10] + unit[1][j] + p
193
+ n = Math.floor(n / 10)
194
+ }
195
+ s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s
196
+ }
197
+ let result = head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整')
198
+ console.log('当前大写', result)
199
+ this.selectdata.f_amount_words = result
200
+ },
201
+ async getDevice (f_process_id) {
202
+ let data = {
203
+ f_process_id: f_process_id
204
+ }
205
+ let http = new HttpResetClass()
206
+ let res = await http.load(
207
+ 'POST',
208
+ `rs/sql/getDevices`,
209
+ {data: data},
210
+ {resolveMsg: null, rejectMsg: null}
211
+ )
212
+ let device = ''
213
+ for (let i = 0; i < res.data.length - 1 ; i++){
214
+ if (res.data[i].f_devices_type === null){
215
+ res.data[i].f_devices_type = '设备'
216
+ }
217
+ console.log("设备信77息",res.data[i].f_devices_type)
218
+ device = device + res.data[i].f_devices_count + '个' + res.data[i].f_devices_type + ','
219
+ }
220
+ if (res.data.length > 0){
221
+ device = device + res.data[res.data.length - 1].f_devices_count + '个' + res.data[res.data.length - 1].f_devices_type
222
+ }
223
+ if (device === ''){
224
+ device = '无设备'
225
+ }
226
+ console.log("设备信息",device)
227
+ this.device = device
228
+ return device
229
+ }
230
+ },
231
+ computed: {
232
+ orgs () {
233
+ return this.$login.f.f_fengongsi
234
+ },
235
+ src () {
236
+ // return require(`./img/${this.$login.f.number}.png`)
237
+ }
238
+ }
239
+ }
240
+ </script>
241
+
242
+ <style scoped>
243
+
244
+ </style>
@@ -232,8 +232,20 @@ export default {
232
232
 
233
233
  this.$dispatch('breakControl', this.selectdata)
234
234
  },
235
- deleteDevices(index){
236
- this.$resetdelete(`rs/entity/t_devices`, {id: index}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
235
+ async deleteDevices (index) {
236
+ this.$resetdelete(`rs/entity/t_devices`, {id: index}, {
237
+ resolveMsg: '删除成功',
238
+ rejectMsg: '删除失败'
239
+ }).then(async (res) => { //发送请求
240
+ let data = {
241
+ old_id: index
242
+ }
243
+ let res1 = await this.$resetpost(
244
+ `rs/logic/applydeleteDevice`,
245
+ {data: data},
246
+ {resolveMsg: null, rejectMsg: '设备添加失败!!!'}
247
+ )
248
+
237
249
  this.$dispatch('breakControl', this.selectdata)
238
250
  })
239
251
  },
@@ -283,8 +295,15 @@ export default {
283
295
  },
284
296
  async search () {
285
297
  let http = new HttpResetClass()
286
- let data = {
287
- condition: `ui.f_process_id = '${this.selectdata.f_process_id}'`
298
+ let data= {}
299
+ if(this.selectdata.is_modify=='是'){
300
+ data = {
301
+ condition: `ui.f_old_process_id = '${this.selectdata.f_process_id}' or ui.f_process_id = '${this.selectdata.f_process_id}' or ui.f_userinfo_id = '${this.selectdata.f_userinfo_id}'`
302
+ }
303
+ }else{
304
+ data = {
305
+ condition: `ui.f_old_process_id = '${this.selectdata.f_process_id}' or ui.f_process_id = '${this.selectdata.f_process_id}' `
306
+ }
288
307
  }
289
308
  let res = await http.load('POST', 'rs/sql/getUserInfoDevicesAmount', {data:data}, {
290
309
  resolveMsg: null,
@@ -252,7 +252,16 @@ export default {
252
252
  this.$dispatch('breakControl', this.selectdata)
253
253
  },
254
254
  deleteDevices(index){
255
- this.$resetdelete(`rs/entity/t_middle_devices`, {id: index}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
255
+ this.$resetdelete(`rs/entity/t_middle_devices`, {id: index}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then(async (res) => {
256
+ //发送请求
257
+ let data = {
258
+ old_id: index
259
+ }
260
+ let res1 = await this.$resetpost(
261
+ `rs/logic/applydeleteDevice`,
262
+ {data: data},
263
+ {resolveMsg: null, rejectMsg: '设备添加失败!!!'}
264
+ )
256
265
  this.$dispatch('breakControl', this.selectdata)
257
266
  })
258
267
  },
@@ -554,6 +554,30 @@ export default {
554
554
  throw '现场勘察未签字,无法提交!'
555
555
  }
556
556
  },
557
+ //报建受理下发,对基本信息进行校验
558
+ checkSpaces(){
559
+ let name=this.getLableValue('用户名称')
560
+ //如果用户名称中包含空格,提示用户名称中不能包含空格
561
+ if(name.indexOf(' ')>=0){
562
+ this.$showMessage('用户名称中不能包含空格!!!')
563
+ throw '用户名称中不能包含空格!!!'
564
+ }
565
+ let Contact= this.getLableValue('联系人')
566
+ if(Contact.indexOf(' ')>=0){
567
+ this.$showMessage('联系人中不能包含空格!!!')
568
+ throw '联系人中不能包含空格!!!'
569
+ }
570
+ let phone= this.getLableValue('用户电话')
571
+ if(phone.indexOf(' ')>=0){
572
+ this.$showMessage('用户电话中不能包含空格!!!')
573
+ throw '用户电话中不能包含空格!!!'
574
+ }
575
+ let ifnumber= this.getLableValue('证件号码')
576
+ if(ifnumber.indexOf(' ')>=0){
577
+ this.$showMessage('证件号码中不能包含空格!!!')
578
+ throw '证件号码中不能包含空格!!!'
579
+ }
580
+ },
557
581
  //合同签订提交
558
582
  async contractSigningBefore() {
559
583
  let http = new HttpResetClass()
@@ -567,7 +591,7 @@ export default {
567
591
  {data: data},
568
592
  {resolveMsg: null, rejectMsg: null}
569
593
  )
570
- if (res.data.length <= 0) {
594
+ if(res.data.length<=0){
571
595
  let data = {
572
596
  tablename: 't_files',
573
597
  condition: `f_blobid = '${this.selectdata.f_process_id}' and defname = '${this.selectdata.defname}' and fusetype = '纸质合同'`
@@ -579,10 +603,26 @@ export default {
579
603
  {resolveMsg: null, rejectMsg: null}
580
604
  )
581
605
  if (res.data.length <= 0) {
582
- this.$showMessage('合同未签订完成且纸质合同未上传,无法提交!!!')
606
+ this.$showMessage('纸质合同未上传,无法提交!')
583
607
  throw '纸质合同未上传,无法提交!'
584
608
  }
585
609
  }
610
+ if (res.data.length > 0) {
611
+ let data = {
612
+ tablename: 't_files',
613
+ condition: `f_blobid = '${this.selectdata.f_process_id}' and defname = '${this.selectdata.defname}' and fusetype = '纸质合同'`
614
+ }
615
+ let res = await http.load(
616
+ 'POST',
617
+ `rs/sql/applySingleTable`,
618
+ {data: data},
619
+ {resolveMsg: null, rejectMsg: null}
620
+ )
621
+ if (res.data.length <= 0) {
622
+ this.$showMessage('合同未签订完成且纸质合同未上传,无法提交!!!')
623
+ throw '合同未签订完成且纸质合同未上传,无法提交!!!'
624
+ }
625
+ }
586
626
  },
587
627
  async otherAuthentication() {
588
628
  console.log("当前数据", this.selectdata)
@@ -1082,7 +1122,6 @@ export default {
1082
1122
  },
1083
1123
  async stopApply () {
1084
1124
  console.log('终止报建!!!!!')
1085
-
1086
1125
  if (this.show_data.defname === '报建受理') {
1087
1126
  this.show_data.f_stop_reason = this.show_data.f_accept_result
1088
1127
  }
@@ -456,9 +456,7 @@
456
456
  value: item.id
457
457
  }
458
458
  })
459
- if(this.selectdata.f_apply_nature === '散户' || this.selectdata.f_apply_type === '改线业务'){
460
- result.push({label:'用户自理',value:'用户自理'})
461
- }
459
+ result.push({label:'用户自理',value:'用户自理'})
462
460
  result.push({label:'无',value:'无'})
463
461
  return result
464
462
  },
@@ -15,6 +15,7 @@
15
15
  </tab>
16
16
  <tab header='附件'>
17
17
  <apply-upload :blodid="selectdata.f_process_id"
18
+ :source="source"
18
19
  :isupload = "projectStart"
19
20
  :isdelete="false"
20
21
  :isusetype="true"
@@ -41,6 +42,7 @@
41
42
  showtotal: false, // 控制详细信息显示
42
43
  showData: true,
43
44
  selectdata: {},
45
+ source: '流程查看',
44
46
  xmlname: '' // 配置文件名称
45
47
  }
46
48
  },
@@ -90,6 +90,17 @@
90
90
  :value-single="true"
91
91
  close-on-select ></v-select>
92
92
  </div>
93
+ <div class="form-group col-sm-2" v-if="model.defname">
94
+ <label for="defstartDate" class="font_normal_body"><strong>环节开始时间:</strong></label>
95
+ <datepicker id="defstartDate" placeholder="环节开始时间"
96
+ style="width: 60%!important;"
97
+ v-model="model.defstartDate"
98
+ :value.sync="model.defstartDate"
99
+ :format="'yyyy-MM-dd 00:00:00'"
100
+ :show-reset-button="true"
101
+ condition="sendtime >= '{}'">
102
+ </datepicker>
103
+ </div>
93
104
  <div class="form-group col-sm-2">
94
105
  <label class="font_normal_body"><strong>报建性质:</strong></label>
95
106
  <v-select
@@ -248,6 +259,12 @@
248
259
  close-on-select >
249
260
  </v-select>
250
261
  </div>
262
+ <div class="form-group col-sm-2">
263
+ <label class="font_normal_body"><strong>安装单位:</strong></label>
264
+ <input type="text" style="width:60%" class="input_search" placeholder='安装单位' v-model="model.f_construction_name"
265
+ v-on:keyup.enter="$parent.$parent.search()"
266
+ condition="u.f_construction_name like '%{}%'">
267
+ </div>
251
268
  </div>
252
269
  </div>
253
270
  </criteria>
@@ -13,7 +13,8 @@
13
13
  <div class="form-group col-sm-2" style="text-align: center" v-if="issearch">
14
14
  <button type="button" class="btn btn-primary item_btn" @click="load">搜索</button>
15
15
  </div>
16
- <div class="form-group col-sm-2" style="text-align: center" v-if="isupload">
16
+ <!-- && source!='流程查看'-->
17
+ <div class="form-group col-sm-2" style="text-align: center" v-if="isupload ">
17
18
  <button type="button" class="btn btn-primary item_btn" @click="showUpload = !showUpload">本地上传</button>
18
19
  </div>
19
20
  <div class="form-group col-sm-2" style="text-align: center" v-if="takeimg">
@@ -100,7 +101,7 @@ import {HttpResetClass} from 'vue-client'
100
101
  import {isEmpty} from "../../Util";
101
102
  export default {
102
103
  title: '附件',
103
- props: ['blodid', 'businessid', 'isremark', 'isusetype', 'takeimg', 'defname', 'isupload', 'isdelete', 'bootstraped', 'issearch'],
104
+ props: ['blodid', 'businessid', 'isremark', 'isusetype', 'takeimg', 'defname', 'isupload', 'isdelete', 'bootstraped', 'issearch','source'],
104
105
  data () {
105
106
  return {
106
107
  fileInfoData: [], // 数据库存储的文件记录对象数组
@@ -0,0 +1,162 @@
1
+ <template>
2
+ <div class="flex-row">
3
+ <div class="basic-main">
4
+ <criteria-paged :model="model" v-ref:cp>
5
+ <criteria partial='criteria' @condition-changed='search' v-ref:cri>
6
+ <div class="form-horizontal select-overspread container-fluid auto" partial>
7
+ <div class="row">
8
+ <div class="form-group col-sm-3">
9
+ <label class="font_normal_body"><strong>报建编号:</strong></label>
10
+ <input type="text" class="input_search" style="width: 60%" v-model="model.f_apply_num"
11
+ v-on:keyup.enter="$parent.$parent.search()" condition="f_apply_num like '%{}%'" placeholder='报建编号'>
12
+ </div>
13
+ <div class="form-group col-sm-3">
14
+ <label class="font_normal_body"><strong>用户名称:</strong></label>
15
+ <input type="text" class="input_search" style="width: 60%" v-model="model.f_user_name"
16
+ v-on:keyup.enter="$parent.$parent.search()" condition="f_user_name like '%{}%'" placeholder='用户名称'>
17
+ </div>
18
+
19
+ <div class="form-group col-sm-3 button-range">
20
+ <button class="button_search button_spacing" @click="search()" v-el:cx>查询</button>
21
+ <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
22
+ <div
23
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
24
+ @click="$parent.$parent.criteriaShow = !$parent.$parent.criteriaShow"
25
+ class="button_spacing"
26
+ style="float: right">
27
+ </div>
28
+ </div>
29
+ </div>
30
+ <div class="row" v-show="$parent.$parent.criteriaShow">
31
+ </div>
32
+ </div>
33
+ </criteria>
34
+ <data-grid :model="model" partial='list' v-ref:grid style="overflow: auto" class="list_area table_sy">
35
+ <template partial='head'>
36
+ <tr>
37
+ <th style="white-space: nowrap;">序号</th>
38
+ <th style="white-space: nowrap;">报建编号</th>
39
+ <th style="white-space: nowrap;">用户名称</th>
40
+ <th style="white-space: nowrap;">报建类型</th>
41
+ <th style="white-space: nowrap;">工程费单价</th>
42
+ <th style="white-space: nowrap;">应交总金额</th>
43
+ <th style="white-space: nowrap;">未结总金额</th>
44
+ <th style="white-space: nowrap;">修改人</th>
45
+ <th style="white-space: nowrap;">修改原因</th>
46
+ <th style="white-space: nowrap;">修改时间</th>
47
+ </tr>
48
+ </template>
49
+ <template partial='body'>
50
+ <tr >
51
+ <td style="text-align: center;">
52
+ <nobr><font>{{$index+1}}</font></nobr>
53
+ </td>
54
+ <td style="text-align: center;">
55
+ <nobr><font>{{row.f_apply_num}}</font></nobr>
56
+ </td>
57
+ <td style="text-align: center;">
58
+ <nobr><font>{{row.f_user_name}}</font></nobr>
59
+ </td>
60
+ <td style="text-align: center;">
61
+
62
+ <nobr><font>{{row.f_apply_type}}</font></nobr>
63
+ </td>
64
+ <td style="text-align: center;">
65
+ <div v-if="!$parent.$parent.$parent.checkEquality(row.f_price) ">
66
+ <nobr>调整前:<font>{{ $parent.$parent.$parent.getStarStr(row.f_price)}}</font></nobr><br>
67
+ <nobr>调整后:<font>{{ $parent.$parent.$parent.getEndStr(row.f_price)}}</font></nobr>
68
+ </div>
69
+ </td>
70
+ <td style="text-align: center;">
71
+ <div v-if="!$parent.$parent.$parent.checkEquality(row.f_due_money)">
72
+ <nobr>调整前:<font>{{ $parent.$parent.$parent.getStarStr(row.f_due_money)}}</font></nobr><br>
73
+ <nobr>调整后:<font>{{ $parent.$parent.$parent.getEndStr(row.f_due_money)}}</font></nobr>
74
+ </div>
75
+ </td>
76
+ <td style="text-align: center;">
77
+ <div v-if="!$parent.$parent.$parent.checkEquality(row.f_surplus_money)">
78
+ <nobr>调整前:<font>{{ $parent.$parent.$parent.getStarStr(row.f_surplus_money)}}</font></nobr><br>
79
+ <nnsp></nnsp>
80
+ <nobr>调整后:<font>{{ $parent.$parent.$parent.getEndStr(row.f_surplus_money)}}</font></nobr>
81
+ </div>
82
+ </td>
83
+ <td style="text-align: center;">
84
+ <nobr><font>{{row.f_revise_person}}</font></nobr>
85
+ </td>
86
+ <td style="text-align: center;">
87
+ <nobr><font>{{row.f_revise_reason}}</font></nobr>
88
+ </td>
89
+ <td style="text-align: center;">
90
+ <nobr><font>{{row.f_revise_data}}</font></nobr>
91
+ </td>
92
+ </tr>
93
+ </template>
94
+ </data-grid>
95
+ </criteria-paged>
96
+ </div>
97
+ </div>
98
+ </template>
99
+ <script>
100
+ import {HttpResetClass, PagedList} from 'vue-client'
101
+ import {getNowDate,isEmpty} from '../../../components/Util'
102
+ export default {
103
+ title: '费用调整记录',
104
+ data () {
105
+ return {
106
+ model: new PagedList('rs/sql/AdjustmentRecordList',20, {
107
+ }),
108
+ criteriaShow: false
109
+ }
110
+ },
111
+ ready () {
112
+ // 调用查询
113
+ this.$refs.cp.$refs.cri.search()
114
+ },
115
+ methods: {
116
+ checkEquality(str) {
117
+ const index = str.indexOf("->");
118
+ if (index !== -1) {
119
+ const before = str.substring(0, index);
120
+ const after = str.substring(index + 2);
121
+ if (before === after) {
122
+ return true;
123
+ }else{
124
+ return false;
125
+ }
126
+ }
127
+ return false;
128
+ },
129
+ // 根据->截取字符串,获取->前的字符串
130
+ getStarStr(str) {
131
+ const index = str.indexOf("->");
132
+ if (index !== -1) {
133
+ return str.substring(0, index);
134
+ }
135
+ return str;
136
+ },
137
+ // 根据->截取字符串,获取->后的字符串
138
+ getEndStr(str) {
139
+ const index = str.indexOf("->");
140
+ if (index !== -1) {
141
+ return str.substring(index + 2);
142
+ }
143
+ return "";
144
+ },
145
+ // 清空
146
+ clear () {
147
+ Object.keys(this.$refs.cp.$refs.cri.model).forEach((key) => {
148
+ this.$refs.cp.$refs.cri.model[key] = []
149
+ })
150
+ },
151
+ // 查询
152
+ search () {
153
+ this.$refs.cp.$refs.cri.search()
154
+ }
155
+ },
156
+ computed: {
157
+ }
158
+ }
159
+ </script>
160
+
161
+ <style scoped>
162
+ </style>