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.
- package/index.html +1 -1
- package/package.json +2 -2
- package/src/apply.js +9 -3
- package/src/applyAndroid.js +9 -0
- package/src/assets//345/260/217/345/214/272.png +0 -0
- package/src/assets//347/224/250/346/210/267ID.png +0 -0
- package/src/assets//347/224/250/346/210/267/345/247/223/345/220/215.png +0 -0
- package/src/components/android/AppSign.vue +7 -4
- package/src/components/android/AppUpload.vue +1 -1
- package/src/components/android/Ignition/VentilationIgnitionHandle.vue +38 -31
- package/src/components/android/Process/AppServiceControl.vue +32 -5
- package/src/components/android/Process/Processes/AppInstallationDetails.vue +205 -92
- package/src/components/android/SealBind.vue +376 -0
- package/src/components/android/SealManage.vue +264 -0
- package/src/components/android/Supervisory/AppProcessSupervisory.vue +344 -334
- package/src/components/android/Task/ShiGongXinXi/AppShowBuildUser.vue +9 -9
- package/src/components/android/Task/yiban/AppShowDone.vue +442 -0
- package/src/components/android/Task/yiban/ShowDone.vue +95 -0
- package/src/components/android/Task/yiban/satisfactionShow.vue +166 -0
- package/src/components/product/ApplyCharge/ApplyChargeList.vue +18 -0
- package/src/components/product/ApplyGaiXianCharge/ApplyGaiXianViewList.vue +272 -0
- package/src/components/product/ApplyGuanXian/GuanXianCaiLiao.vue +1 -1
- package/src/components/product/ApplyGuanXian/GuanXianExplorationSelect.vue +31 -31
- package/src/components/product/ApplyGuanXian/GuanXianSupervisoryhCart.vue +4 -4
- package/src/components/product/ApplyMap/ApplyDragaboutList.vue +2 -2
- package/src/components/product/ApplyMap/ApplyMapLocation.vue +22 -10
- package/src/components/product/ChongZheng/ApplyChongZhengList.vue +1 -1
- package/src/components/product/Function/Service/FunctionServiceControl.vue +125 -14
- package/src/components/product/Ignition/IgnitionListManage.vue +1 -1
- package/src/components/product/Ignition/IgnitionRecord.vue +22 -0
- package/src/components/product/List/OldShowDevices.vue +271 -0
- package/src/components/product/List/ShowAllActivity.vue +104 -19
- package/src/components/product/List/ShowDevices.vue +1 -1
- package/src/components/product/Process/ExplorationSelect.vue +41 -35
- package/src/components/product/Process/NewExplorationSelect.vue +31 -31
- package/src/components/product/Process/Processes/InstallationDetails.vue +34 -1
- package/src/components/product/Process/Processes/Print/printGaiXianCharge.vue +244 -0
- package/src/components/product/Process/Processes/devicesManagement.vue +23 -4
- package/src/components/product/Process/Processes/newDevicesManagement.vue +10 -1
- package/src/components/product/Process/Service/ServiceControl.vue +42 -3
- package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +1 -3
- package/src/components/product/Supervisory/SupervisoryControl.vue +2 -0
- package/src/components/product/Supervisory/SupervisoryList.vue +17 -0
- package/src/components/product/VueUtils/ApplyUpload.vue +3 -2
- 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>×</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}, {
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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>
|