apply-clients 3.3.2-80-test → 3.3.2-81-test
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 +1 -1
- package/src/components/android/Process/AppServiceControl.vue +3 -0
- package/src/components/android/Process/Processes/AppAddMaterialCharge.vue +642 -0
- package/src/components/android/Process/Processes/AppAddMaterialScience.vue +45 -226
- package/src/components/android/Process/Processes/AppAddSetMeal.vue +602 -0
- package/src/components/product/GroupByApply/ApplyGroupAgreementList.vue +18 -2
- package/src/components/product/GroupByApply/ApplyGroupByAgreement.vue +1 -1
- package/src/components/product/GroupByApply/ApplyGroupContractList.vue +20 -0
- package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +117 -2
|
@@ -0,0 +1,602 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<data-grid :model="onetomany" class="list_area table_sy">
|
|
4
|
+
<template partial='head'>
|
|
5
|
+
<tr>
|
|
6
|
+
<th class="textNoLineBreak">序号</th>
|
|
7
|
+
<th class="textNoLineBreak">分类</th>
|
|
8
|
+
<th class="textNoLineBreak">名称</th>
|
|
9
|
+
<th class="textNoLineBreak">单位</th>
|
|
10
|
+
<th class="textNoLineBreak">数量</th>
|
|
11
|
+
<th class="textNoLineBreak">价格</th>
|
|
12
|
+
<th class="textNoLineBreak">
|
|
13
|
+
<button class="button_new button_spacing" type="button" @click="$parent.$parent.openMaterialModal()">添加
|
|
14
|
+
</button>
|
|
15
|
+
</th>
|
|
16
|
+
</tr>
|
|
17
|
+
</template>
|
|
18
|
+
<template partial='body'>
|
|
19
|
+
<tr>
|
|
20
|
+
<td style="text-align: center;">
|
|
21
|
+
<nobr>{{$index+1}}</nobr>
|
|
22
|
+
</td>
|
|
23
|
+
<td style="text-align: center;">
|
|
24
|
+
<nobr>{{row.f_material_name}}</nobr>
|
|
25
|
+
</td>
|
|
26
|
+
<td style="text-align: center;">
|
|
27
|
+
<nobr>{{row.f_material_style}}</nobr>
|
|
28
|
+
</td>
|
|
29
|
+
<td style="text-align: center;">
|
|
30
|
+
<nobr>{{row.f_material_unit}}</nobr>
|
|
31
|
+
</td>
|
|
32
|
+
<td style="text-align: center;">
|
|
33
|
+
<nobr>{{row.f_material_number}}</nobr>
|
|
34
|
+
</td>
|
|
35
|
+
<td style="text-align: center;">
|
|
36
|
+
<nobr>{{row.f_material_price}}</nobr>
|
|
37
|
+
</td>
|
|
38
|
+
<td style="text-align: center;">
|
|
39
|
+
<button type="button" class="button_delete button_spacing" @click="$parent.$parent.deleteMaterial(row)">删除
|
|
40
|
+
</button>
|
|
41
|
+
</td>
|
|
42
|
+
</tr>
|
|
43
|
+
</template>
|
|
44
|
+
</data-grid>
|
|
45
|
+
<modal v-if="showMaterialModal" :show.sync="showMaterialModal" v-ref:modal :large="true"
|
|
46
|
+
:backdrop="false" :title="title">
|
|
47
|
+
<header slot="modal-header" class="modal-header">
|
|
48
|
+
<button type="button" class="close" @click="closeMaterials"><span>×</span></button>
|
|
49
|
+
<h4 class="modal-title">{{title}}</h4>
|
|
50
|
+
</header>
|
|
51
|
+
<article slot="modal-body" class="modal-body clearfix">
|
|
52
|
+
<div v-for="(i,item) in materials" class="form-group col-sm-12 panel panel-info">
|
|
53
|
+
<div class="panel-heading head col-sm-12" style="background-color: #e8f4ff;margin-bottom: 10px">
|
|
54
|
+
<div class="col-sm-6 text-left">套餐{{$index+1}}信息</div>
|
|
55
|
+
<div class="col-sm-6 text-right">
|
|
56
|
+
<button
|
|
57
|
+
class="button_delete button_spacing"
|
|
58
|
+
@click.prevent="deleteDevicesinfo(i)"
|
|
59
|
+
v-if="title === '新增'"
|
|
60
|
+
>删除
|
|
61
|
+
</button>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
<div class="form-group col-sm-6">
|
|
65
|
+
<label class="col-sm-4 control-label">选择套餐:</label>
|
|
66
|
+
<div class="col-sm-8">
|
|
67
|
+
<app-input-select
|
|
68
|
+
class="select select_list"
|
|
69
|
+
:value.sync="item.material"
|
|
70
|
+
v-model="item.material"
|
|
71
|
+
:options="meterialOptions"
|
|
72
|
+
:disable="mark === 1"
|
|
73
|
+
@change="modifyOtherValue(i)"
|
|
74
|
+
:valueSingle="true"></app-input-select>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
<div class="form-group col-sm-6" :class="[item.f_material_name ? '' : 'has-error']">
|
|
78
|
+
<label class="col-sm-4 control-label">分类:</label>
|
|
79
|
+
<div class="col-sm-8">
|
|
80
|
+
<input class="form-control input_view" style="" type="text"
|
|
81
|
+
placeholder="分类"
|
|
82
|
+
v-model="item.f_material_name"
|
|
83
|
+
:value="item.f_material_name"
|
|
84
|
+
/>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
<div class="form-group col-sm-6" :class="[item.f_material_style ? '' : 'has-error']">
|
|
88
|
+
<label class="col-sm-4 control-label">名称:</label>
|
|
89
|
+
<div class="col-sm-8">
|
|
90
|
+
<input class="form-control input_view" style="" type="text"
|
|
91
|
+
placeholder="材料型号"
|
|
92
|
+
v-model="item.f_material_style"
|
|
93
|
+
:value="item.f_material_style"
|
|
94
|
+
/>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
<div class="form-group col-sm-6" :class="[item.f_material_unit ? '' : 'has-error']">
|
|
98
|
+
<label class="col-sm-4 control-label">单位:</label>
|
|
99
|
+
<div class="col-sm-8">
|
|
100
|
+
<input class="form-control input_view" style="" type="text"
|
|
101
|
+
placeholder="单位"
|
|
102
|
+
v-model="item.f_material_unit"
|
|
103
|
+
:value="item.f_material_unit"
|
|
104
|
+
/>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
<div class="form-group col-sm-6" :class="[item.f_material_number ? '' : 'has-error']">
|
|
108
|
+
<label class="col-sm-4 control-label">数量:</label>
|
|
109
|
+
<div class="col-sm-8">
|
|
110
|
+
<input class="form-control input_view" style="" type="number"
|
|
111
|
+
placeholder="数量"
|
|
112
|
+
readonly
|
|
113
|
+
v-model="item.f_material_number"
|
|
114
|
+
:value="item.f_material_number"
|
|
115
|
+
/>
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
<div class="form-group col-sm-6" :class="[item.price ? '' : 'has-error']">
|
|
119
|
+
<label class="col-sm-4 control-label">单价:</label>
|
|
120
|
+
<div class="col-sm-8">
|
|
121
|
+
<input class="form-control input_view" style="" type="number"
|
|
122
|
+
placeholder="单价"
|
|
123
|
+
v-model="item.price"
|
|
124
|
+
:value="item.price"
|
|
125
|
+
/>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
</article>
|
|
130
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
131
|
+
<template v-if="mark !== 1">
|
|
132
|
+
<button type="button" class="btn btn-primary" v-if="title==='新增'" @click="addMaterialBefore()"
|
|
133
|
+
:disabled="!$v.valid">确认添加
|
|
134
|
+
</button>
|
|
135
|
+
<div class="text-center" v-if="showQrCode">
|
|
136
|
+
<p><b>收费金额:{{ getTotalAmount() }}¥</b></p>
|
|
137
|
+
<div id="qrcode" class="qrcode" v-ref:qrcode></div>
|
|
138
|
+
<p>
|
|
139
|
+
等待支付,剩余 <span style="color: #ff791a">{{timeLeft}}</span> 秒
|
|
140
|
+
</p>
|
|
141
|
+
<button type="button" @click="closeQRCode">取消支付</button>
|
|
142
|
+
</div>
|
|
143
|
+
</template>
|
|
144
|
+
</footer>
|
|
145
|
+
</modal>
|
|
146
|
+
</div>
|
|
147
|
+
</template>
|
|
148
|
+
<script>
|
|
149
|
+
import Vue from 'vue'
|
|
150
|
+
import {HttpResetClass} from 'vue-client'
|
|
151
|
+
import QRCode from 'qrcodejs2'
|
|
152
|
+
export default {
|
|
153
|
+
name: 'AppAddSetMeal',
|
|
154
|
+
props: {
|
|
155
|
+
selectdata: {
|
|
156
|
+
type: Object
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
data() {
|
|
160
|
+
return {
|
|
161
|
+
timeLeft: 120,
|
|
162
|
+
showQrCode:false,
|
|
163
|
+
paymentInterval: null,
|
|
164
|
+
orderInterval: null,
|
|
165
|
+
filiale:'',
|
|
166
|
+
onetomany: {
|
|
167
|
+
rows: []
|
|
168
|
+
},
|
|
169
|
+
title: '新增',
|
|
170
|
+
showMaterialModal: false,
|
|
171
|
+
totalPrice:0,
|
|
172
|
+
order:null,
|
|
173
|
+
materials: [
|
|
174
|
+
{
|
|
175
|
+
material: '',
|
|
176
|
+
f_material_name: '',
|
|
177
|
+
f_material_style: '',
|
|
178
|
+
f_material_unit:'',
|
|
179
|
+
f_material_number: 1,
|
|
180
|
+
f_bjq_sid: '',
|
|
181
|
+
f_material_code: '',
|
|
182
|
+
f_userinfo_code:this.selectdata.f_userinfo_code,
|
|
183
|
+
price:0
|
|
184
|
+
}
|
|
185
|
+
],
|
|
186
|
+
meterialOptions: [],
|
|
187
|
+
row: {},
|
|
188
|
+
bjqChecklag:[],
|
|
189
|
+
fmaterialname:{},
|
|
190
|
+
isShow:[false],
|
|
191
|
+
charge: {
|
|
192
|
+
payment_terms:[]
|
|
193
|
+
},
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
ready() {
|
|
197
|
+
this.getOnetoManyData()
|
|
198
|
+
if (Vue.user.orgid == '10101') {
|
|
199
|
+
console.log('zhoukou')
|
|
200
|
+
this.filiale = 'zhoukou'
|
|
201
|
+
}else if (Vue.user.orgid == '35520') {
|
|
202
|
+
console.log('xiangcheng')
|
|
203
|
+
this.filiale = 'xiangcheng'
|
|
204
|
+
}else if (Vue.user.orgid == '35532') {
|
|
205
|
+
console.log('luyi')
|
|
206
|
+
this.filiale = 'luyi'
|
|
207
|
+
}else if (Vue.user.orgid == '35538') {
|
|
208
|
+
console.log('dancheng')
|
|
209
|
+
this.filiale = 'dancheng'
|
|
210
|
+
}else if (Vue.user.orgid == '35526') {
|
|
211
|
+
console.log('xihua')
|
|
212
|
+
this.filiale = 'xihua'
|
|
213
|
+
}else {
|
|
214
|
+
this.$showMessage('分公司异常,请联系管理员!')
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
methods: {
|
|
218
|
+
async addMaterialBefore() {
|
|
219
|
+
this.charge.payment_terms.push(
|
|
220
|
+
{
|
|
221
|
+
f_payment_term: this.materials[0].f_material_style,
|
|
222
|
+
f_charge_money: this.materials[0].price,
|
|
223
|
+
f_amount_words:this.smalltoBIG(this.materials[0].price),
|
|
224
|
+
f_payment_method : '手机APP'
|
|
225
|
+
}
|
|
226
|
+
)
|
|
227
|
+
let data = {
|
|
228
|
+
money: this.accMul(1, 100),
|
|
229
|
+
attach: {
|
|
230
|
+
"f_type": '报建收费',
|
|
231
|
+
"f_user": Vue.user.id
|
|
232
|
+
},
|
|
233
|
+
str: '套餐费用',
|
|
234
|
+
config: this.filiale,
|
|
235
|
+
f_revenue: "productV3"
|
|
236
|
+
}
|
|
237
|
+
console.log('下单信息')
|
|
238
|
+
console.log(JSON.stringify(data))
|
|
239
|
+
this.showCharge=false
|
|
240
|
+
let http = new HttpResetClass()
|
|
241
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/ICBCGetCode`, data, {
|
|
242
|
+
resolveMsg: null,
|
|
243
|
+
rejectMsg: '订单生成失败!!!'
|
|
244
|
+
})
|
|
245
|
+
this.order = res.data
|
|
246
|
+
console.log('=================================')
|
|
247
|
+
console.log(JSON.stringify(res.data))
|
|
248
|
+
let info = {
|
|
249
|
+
apply: this.selectdata,
|
|
250
|
+
charge: this.charge,
|
|
251
|
+
user: Vue.user,
|
|
252
|
+
f_out_trade_no:this.order.f_out_trade_no
|
|
253
|
+
}
|
|
254
|
+
http.load('POST',`${this.$androidUtil.getProxyUrl()}/rs/logic/beforeAddChargeRecord`,{data:info},{
|
|
255
|
+
resolveMsg: null,
|
|
256
|
+
rejectMsg: null
|
|
257
|
+
}).then(ress=>{
|
|
258
|
+
console.log('ress',ress)
|
|
259
|
+
if(ress.data.code == '200'){
|
|
260
|
+
this.showQrCode = true
|
|
261
|
+
this.$nextTick(()=>{
|
|
262
|
+
this.qrcode()
|
|
263
|
+
})
|
|
264
|
+
this.paymentInterval = setInterval(() => {
|
|
265
|
+
this.timeLeft = this.timeLeft - 1
|
|
266
|
+
},1000)
|
|
267
|
+
this.orderInterval = setInterval(() => {
|
|
268
|
+
this.getOrderInformation()
|
|
269
|
+
},3000)
|
|
270
|
+
}else{
|
|
271
|
+
this.$showMessage('订单生成失败')
|
|
272
|
+
}
|
|
273
|
+
})
|
|
274
|
+
},
|
|
275
|
+
async getOrderInformation () {
|
|
276
|
+
console.log('查询订单信息!!!')
|
|
277
|
+
let http = new HttpResetClass()
|
|
278
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {
|
|
279
|
+
data: {
|
|
280
|
+
items: "id",
|
|
281
|
+
tablename: "t_weixinreturnxml",
|
|
282
|
+
condition: ` f_out_trade_no = '${this.order.f_out_trade_no}' and f_bill_state = 1 `,
|
|
283
|
+
orderitem: "id"
|
|
284
|
+
}
|
|
285
|
+
}, {
|
|
286
|
+
resolveMsg: null,
|
|
287
|
+
rejectMsg: '订单查询失败!!!'
|
|
288
|
+
})
|
|
289
|
+
console.log('8888888888')
|
|
290
|
+
console.log(this.order.f_out_trade_no)
|
|
291
|
+
console.log(JSON.stringify(res))
|
|
292
|
+
if (res.data.length > 0) {
|
|
293
|
+
this.$showMessage('支付成功!!!')
|
|
294
|
+
clearTimeout(this.paymentInterval)
|
|
295
|
+
clearTimeout(this.orderInterval)
|
|
296
|
+
this.timeLeft = 10
|
|
297
|
+
this.clearQrCode()
|
|
298
|
+
this.showQrCode = false
|
|
299
|
+
this.addMaterial()
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
smalltoBIG(n) {
|
|
303
|
+
let fraction = ['角', '分'];
|
|
304
|
+
let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
|
|
305
|
+
let unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];
|
|
306
|
+
let head = n < 0 ? '欠' : '';
|
|
307
|
+
n = Math.abs(n);
|
|
308
|
+
|
|
309
|
+
let s = '';
|
|
310
|
+
|
|
311
|
+
for (var i = 0; i < fraction.length; i++) {
|
|
312
|
+
s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
|
|
313
|
+
}
|
|
314
|
+
s = s || '整';
|
|
315
|
+
n = Math.floor(n);
|
|
316
|
+
|
|
317
|
+
for (var i = 0; i < unit[0].length && n > 0; i++) {
|
|
318
|
+
let p = '';
|
|
319
|
+
for (var j = 0; j < unit[1].length && n > 0; j++) {
|
|
320
|
+
p = digit[n % 10] + unit[1][j] + p;
|
|
321
|
+
n = Math.floor(n / 10);
|
|
322
|
+
}
|
|
323
|
+
s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
|
|
324
|
+
}
|
|
325
|
+
return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整')
|
|
326
|
+
},
|
|
327
|
+
accMul(arg1,arg2) {
|
|
328
|
+
let m = 0, s1 = arg1.toString(), s2 = arg2.toString();
|
|
329
|
+
try {
|
|
330
|
+
m += s1.split(".")[1].length
|
|
331
|
+
} catch (e) {
|
|
332
|
+
}
|
|
333
|
+
try {
|
|
334
|
+
m += s2.split(".")[1].length
|
|
335
|
+
} catch (e) {
|
|
336
|
+
}
|
|
337
|
+
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
|
|
338
|
+
},
|
|
339
|
+
qrcode () {
|
|
340
|
+
let qrcode = new QRCode('qrcode',{
|
|
341
|
+
text: this.order.url, // 设置二维码内容或跳转地址
|
|
342
|
+
width: 200, // 设置宽度,单位像素
|
|
343
|
+
height: 200, // 设置高度,单位像素
|
|
344
|
+
correctLevel: QRCode.CorrectLevel.L //容错率,L/M/Hs
|
|
345
|
+
})
|
|
346
|
+
},
|
|
347
|
+
clearQrCode () {
|
|
348
|
+
document.getElementById('qrcode').innerHTML = ''
|
|
349
|
+
},
|
|
350
|
+
closeQRCode(){
|
|
351
|
+
clearTimeout(this.paymentInterval)
|
|
352
|
+
clearTimeout(this.orderInterval)
|
|
353
|
+
this.timeLeft = 120
|
|
354
|
+
this.clearQrCode()
|
|
355
|
+
this.showQrCode = false
|
|
356
|
+
},
|
|
357
|
+
getTotalAmount(){
|
|
358
|
+
let money=0
|
|
359
|
+
this.charge.payment_terms.forEach((row)=>{
|
|
360
|
+
money = parseFloat((Number(money)+Number(row.f_charge_money)).toFixed(2))
|
|
361
|
+
})
|
|
362
|
+
return money
|
|
363
|
+
},
|
|
364
|
+
async getOnetoManyData () {
|
|
365
|
+
let http = new HttpResetClass()
|
|
366
|
+
let data = {
|
|
367
|
+
tablename: `t_material_apply`,
|
|
368
|
+
condition: `f_process_id='${this.selectdata.f_process_id}'`
|
|
369
|
+
}
|
|
370
|
+
let res = await http.load(
|
|
371
|
+
'POST',
|
|
372
|
+
`${this.$androidUtil.getProxyUrl()}/rs/sql/singleTable?aaa=123`,
|
|
373
|
+
{data: data},
|
|
374
|
+
{resolveMsg: null, rejectMsg: 'onetomany查询失败'}
|
|
375
|
+
)
|
|
376
|
+
this.onetomany.rows = res.data
|
|
377
|
+
},
|
|
378
|
+
async openMaterialModal() {
|
|
379
|
+
this.getMateralNames()
|
|
380
|
+
this.title = '新增'
|
|
381
|
+
this.materials = [
|
|
382
|
+
{
|
|
383
|
+
material: '',
|
|
384
|
+
f_material_name: '',
|
|
385
|
+
f_material_style: '',
|
|
386
|
+
f_material_unit:'',
|
|
387
|
+
f_material_number: 1,
|
|
388
|
+
f_bjq_sid: '',
|
|
389
|
+
f_material_code: '',
|
|
390
|
+
f_userinfo_code: this.selectdata.f_userinfo_code,
|
|
391
|
+
price: 0
|
|
392
|
+
}
|
|
393
|
+
],
|
|
394
|
+
this.showMaterialModal = true
|
|
395
|
+
this.isShow = [false]
|
|
396
|
+
},
|
|
397
|
+
deleteDevicesinfo(index) {
|
|
398
|
+
this.materials.splice(index, 1)
|
|
399
|
+
this.isShow.splice(index, 1)
|
|
400
|
+
},
|
|
401
|
+
pushMaterial() {
|
|
402
|
+
this.materials.push({
|
|
403
|
+
material: '',
|
|
404
|
+
f_material_name: '',
|
|
405
|
+
f_material_style: '',
|
|
406
|
+
f_material_unit: '',
|
|
407
|
+
f_material_number: 1,
|
|
408
|
+
f_bjq_sid: '',
|
|
409
|
+
f_material_code: '',
|
|
410
|
+
f_userinfo_code: this.selectdata.f_userinfo_code,
|
|
411
|
+
price: 0
|
|
412
|
+
})
|
|
413
|
+
this.isShow.push(false)
|
|
414
|
+
},
|
|
415
|
+
// 获取模态框材料
|
|
416
|
+
async getMateralNames() {
|
|
417
|
+
let data = {
|
|
418
|
+
condition: `1=1`
|
|
419
|
+
}
|
|
420
|
+
let http = new HttpResetClass()
|
|
421
|
+
let res = await http.load(
|
|
422
|
+
'POST',
|
|
423
|
+
`${this.$androidUtil.getProxyUrl()}/rs/sql/getStockMaterial`,
|
|
424
|
+
{data: data},
|
|
425
|
+
{resolveMsg: null, rejectMsg: '材料查询失败!!!'}
|
|
426
|
+
)
|
|
427
|
+
|
|
428
|
+
this.meterialOptions = res.data.map(item => {
|
|
429
|
+
return {
|
|
430
|
+
'label': `${item.f_material_name}--${item.f_material_style}`,
|
|
431
|
+
'value': item
|
|
432
|
+
}
|
|
433
|
+
})
|
|
434
|
+
},
|
|
435
|
+
modifyOtherValue(index) {
|
|
436
|
+
console.log("进来了", index)
|
|
437
|
+
console.log("dddd", this.materials[index].material)
|
|
438
|
+
let material = this.materials[index].material
|
|
439
|
+
this.materials[index].f_material_name = material.f_material_name
|
|
440
|
+
this.materials[index].f_material_style = material.f_material_style
|
|
441
|
+
this.materials[index].f_material_unit = material.f_material_unit
|
|
442
|
+
this.materials[index].f_material_code = material.f_material_code
|
|
443
|
+
this.materials[index].f_userinfo_code = material.f_userinfo_code
|
|
444
|
+
this.materials[index].price = material.price
|
|
445
|
+
if (material.f_material_name === "报警器-汉威") {
|
|
446
|
+
this.isShow[index] = true
|
|
447
|
+
} else {
|
|
448
|
+
this.isShow[index] = false
|
|
449
|
+
}
|
|
450
|
+
this.isShow.splice(0, 1, this.isShow[0])
|
|
451
|
+
},
|
|
452
|
+
// 新增材料
|
|
453
|
+
async addMaterial() {
|
|
454
|
+
this.title = '新增'
|
|
455
|
+
let data = {
|
|
456
|
+
f_process_id: this.selectdata.f_process_id,
|
|
457
|
+
f_userinfo_code: this.selectdata.f_userinfo_code,
|
|
458
|
+
f_operator_id: Vue.user.id,
|
|
459
|
+
f_operator: Vue.user.name,
|
|
460
|
+
f_operation_date: new Date().Format('yyyy-MM-dd HH:mm:ss'),
|
|
461
|
+
f_orgid: Vue.user.orgid,
|
|
462
|
+
f_orgname: Vue.user.orgs,
|
|
463
|
+
materials: this.materials
|
|
464
|
+
}
|
|
465
|
+
//报警器流程 设备编号检验
|
|
466
|
+
await this.bjqCheck()
|
|
467
|
+
if (this.bjqChecklag.length > 0) {
|
|
468
|
+
return
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
let http = new HttpResetClass()
|
|
472
|
+
let res = await http.load(
|
|
473
|
+
'POST',
|
|
474
|
+
`${this.$androidUtil.getProxyUrl()}/rs/logic/saveMeal`,
|
|
475
|
+
data
|
|
476
|
+
)
|
|
477
|
+
await this.getOnetoManyData()
|
|
478
|
+
this.$dispatch('addMaterial', this.totalPrice)
|
|
479
|
+
this.closeMaterials()
|
|
480
|
+
},
|
|
481
|
+
async deleteMaterial(row) {
|
|
482
|
+
var show1 = window.confirm('您确定要删除这条记录吗?')
|
|
483
|
+
if(show1 != true){
|
|
484
|
+
this.closeMaterials()
|
|
485
|
+
}else{
|
|
486
|
+
let http = new HttpResetClass()
|
|
487
|
+
let res = await http.load(
|
|
488
|
+
'POST',
|
|
489
|
+
`${this.$androidUtil.getProxyUrl()}/rs/logic/deleteMealapply`,
|
|
490
|
+
{data: row},
|
|
491
|
+
{resolveMsg: null, rejectMsg: '材料删除失败!!!'}
|
|
492
|
+
)
|
|
493
|
+
await this.getOnetoManyData()
|
|
494
|
+
this.closeMaterials()
|
|
495
|
+
}
|
|
496
|
+
},
|
|
497
|
+
async updateMaterial(index, row) {
|
|
498
|
+
this.title = '修改'
|
|
499
|
+
this.row = row
|
|
500
|
+
this.getMateralNames()
|
|
501
|
+
this.materials = [
|
|
502
|
+
{
|
|
503
|
+
material: '',
|
|
504
|
+
f_material_name: row.f_material_name,
|
|
505
|
+
f_material_style: row.f_material_style,
|
|
506
|
+
f_material_unit: row.f_material_unit,
|
|
507
|
+
f_material_number: row.f_material_number,
|
|
508
|
+
f_material_code: row.f_material_code,
|
|
509
|
+
f_bjq_sid: row.f_bjq_sid,
|
|
510
|
+
f_userinfo_code: row.f_userinfo_code,
|
|
511
|
+
price: row.price
|
|
512
|
+
}
|
|
513
|
+
]
|
|
514
|
+
this.showMaterialModal = true
|
|
515
|
+
},
|
|
516
|
+
async updateConfirm() {
|
|
517
|
+
let data = this.row
|
|
518
|
+
data.f_material_name = this.materials[0].f_material_name
|
|
519
|
+
data.f_material_style = this.materials[0].f_material_style
|
|
520
|
+
data.f_material_unit = this.materials[0].f_material_unit
|
|
521
|
+
data.f_material_number = this.materials[0].f_material_number
|
|
522
|
+
data.f_material_code = this.materials[0].f_material_code
|
|
523
|
+
data.f_bjq_sid = this.materials[0].f_bjq_sid
|
|
524
|
+
data.f_userinfo_code=this.materials[0].f_userinfo_code,
|
|
525
|
+
data.price = this.materials[0].price
|
|
526
|
+
|
|
527
|
+
//报警器流程 设备编号检验
|
|
528
|
+
await this.bjqCheck()
|
|
529
|
+
if (this.bjqChecklag.length > 0){
|
|
530
|
+
return
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
let http = new HttpResetClass()
|
|
534
|
+
let res = await http.load(
|
|
535
|
+
'POST',
|
|
536
|
+
`${this.$androidUtil.getProxyUrl()}/rs/entity/t_material_apply`,
|
|
537
|
+
data
|
|
538
|
+
)
|
|
539
|
+
this.closeMaterials()
|
|
540
|
+
},
|
|
541
|
+
sycronizedCode(index,val){
|
|
542
|
+
console.log("看看:",index,val)
|
|
543
|
+
this.materials[index].f_material_code = val
|
|
544
|
+
},
|
|
545
|
+
closeMaterials() {
|
|
546
|
+
this.getOnetoManyData()
|
|
547
|
+
this.showMaterialModal = false
|
|
548
|
+
},
|
|
549
|
+
async bjqCheck(){
|
|
550
|
+
//报警器设备型号校验
|
|
551
|
+
this.bjqChecklag = [] //初始化
|
|
552
|
+
if (this.selectdata.f_apply_type === '报警器报建' || this.selectdata.f_apply_type === '工商业报警器报建'){
|
|
553
|
+
let bjqinfo = {
|
|
554
|
+
f_material_name : "",
|
|
555
|
+
f_bjq_sid: ""
|
|
556
|
+
}
|
|
557
|
+
for (const bjqinfoElement of this.materials) {
|
|
558
|
+
bjqinfo.f_bjq_sid = bjqinfoElement.f_bjq_sid
|
|
559
|
+
bjqinfo.f_material_name = bjqinfoElement.f_material_name
|
|
560
|
+
if (bjqinfo.f_material_name.substr(0,3) === '报警器'){
|
|
561
|
+
let http = new HttpResetClass()
|
|
562
|
+
let res = await http.load(
|
|
563
|
+
'POST',
|
|
564
|
+
// `/rs/logic/bjqcheck`,
|
|
565
|
+
`${this.$androidUtil.getProxyUrl()}/ncc/rs/logic/bjqcheck`,
|
|
566
|
+
bjqinfo
|
|
567
|
+
)
|
|
568
|
+
if (res.data.code != 200){
|
|
569
|
+
this.bjqChecklag.push(res.data.code)
|
|
570
|
+
//this.$showMessage(res.data.msg)
|
|
571
|
+
Vue.showAlert(res.data.msg, 'danger', 6000)
|
|
572
|
+
return
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
},
|
|
579
|
+
watch: {
|
|
580
|
+
timeLeft () {
|
|
581
|
+
if (this.timeLeft <= 0) {
|
|
582
|
+
clearTimeout(this.paymentInterval)
|
|
583
|
+
clearTimeout(this.orderInterval)
|
|
584
|
+
|
|
585
|
+
this.timeLeft = 120
|
|
586
|
+
|
|
587
|
+
// 清除二维码
|
|
588
|
+
this.clearQrCode()
|
|
589
|
+
|
|
590
|
+
this.showQrCode = false
|
|
591
|
+
|
|
592
|
+
this.$showMessage('订单支付超时!!!')
|
|
593
|
+
}
|
|
594
|
+
},
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
</script>
|
|
599
|
+
|
|
600
|
+
<style scoped>
|
|
601
|
+
|
|
602
|
+
</style>
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
<criteria-paged :model="model" v-ref:cp>
|
|
3
3
|
<criteria partial='criteria' @condition-changed='$parent.searchCondition' v-ref:cri>
|
|
4
4
|
<div class="form-horizontal select-overspread container-fluid auto" partial>
|
|
5
|
+
<export-excel :data="$parent.$parent.getCondition"
|
|
6
|
+
:field="$parent.$parent.getfield"
|
|
7
|
+
sqlurl="rs/logic/applyExportfile"
|
|
8
|
+
sql-name="getGroupAgreementListData"
|
|
9
|
+
template-name='附加协议信息导出'
|
|
10
|
+
:choose-col="true"></export-excel>
|
|
5
11
|
</div>
|
|
6
12
|
</criteria>
|
|
7
13
|
<data-grid :model="model" v-ref:grid partial='list' class="list_area table_sy" style="padding: 0px">
|
|
@@ -63,7 +69,13 @@ export default {
|
|
|
63
69
|
{label: '是', value: '是'},
|
|
64
70
|
{label: '否', value: '否'}
|
|
65
71
|
],
|
|
66
|
-
criteriaShow: false
|
|
72
|
+
criteriaShow: false,
|
|
73
|
+
getfield: {
|
|
74
|
+
'f_apply_num': '工程编号',
|
|
75
|
+
'f_contract_number': '合同编号',
|
|
76
|
+
'f_contract_money': '合同金额',
|
|
77
|
+
'f_contract_status': '合同状态'
|
|
78
|
+
}
|
|
67
79
|
}
|
|
68
80
|
},
|
|
69
81
|
methods: {
|
|
@@ -83,7 +95,6 @@ export default {
|
|
|
83
95
|
this.model.f_filialeid = this.check.f_orgid
|
|
84
96
|
this.$refs.cp.$refs.cri.search()
|
|
85
97
|
}
|
|
86
|
-
|
|
87
98
|
},
|
|
88
99
|
watch: {
|
|
89
100
|
'check': function (val) {
|
|
@@ -93,6 +104,11 @@ export default {
|
|
|
93
104
|
}
|
|
94
105
|
},
|
|
95
106
|
computed: {
|
|
107
|
+
getCondition () {
|
|
108
|
+
return {
|
|
109
|
+
f_process_id: this.check.f_process_id
|
|
110
|
+
}
|
|
111
|
+
}
|
|
96
112
|
}
|
|
97
113
|
}
|
|
98
114
|
</script>
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
:field="$parent.$parent.getfield"
|
|
42
42
|
sqlurl="rs/logic/applyExportfile"
|
|
43
43
|
sql-name="getGroupAgreementData"
|
|
44
|
-
template-name='
|
|
44
|
+
template-name='主合同信息导出'
|
|
45
45
|
:choose-col="true"></export-excel>
|
|
46
46
|
<div
|
|
47
47
|
:class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
|
|
@@ -22,6 +22,12 @@
|
|
|
22
22
|
</div>
|
|
23
23
|
<button class="button_search button_spacing" @click="$parent.$parent.search()" v-el:cx>查询</button>
|
|
24
24
|
<button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
|
|
25
|
+
<export-excel :data="$parent.$parent.getCondition"
|
|
26
|
+
:field="$parent.$parent.getfield"
|
|
27
|
+
sqlurl="rs/logic/applyExportfile"
|
|
28
|
+
sql-name="getGroupDataList"
|
|
29
|
+
template-name='团购信息导出'
|
|
30
|
+
:choose-col="true"></export-excel>
|
|
25
31
|
</div>
|
|
26
32
|
|
|
27
33
|
</div>
|
|
@@ -95,6 +101,14 @@ export default {
|
|
|
95
101
|
{label: '否', value: '否'}
|
|
96
102
|
],
|
|
97
103
|
criteriaShow: false,
|
|
104
|
+
getfield: {
|
|
105
|
+
'f_apply_num': '项目编号',
|
|
106
|
+
'defname': '办理环节',
|
|
107
|
+
'f_contract_number': '合同编号',
|
|
108
|
+
'f_user_name': '客户名称',
|
|
109
|
+
'f_phone': '客户电话',
|
|
110
|
+
'f_address': '详细地址'
|
|
111
|
+
}
|
|
98
112
|
}
|
|
99
113
|
},
|
|
100
114
|
methods: {
|
|
@@ -124,6 +138,12 @@ export default {
|
|
|
124
138
|
}
|
|
125
139
|
},
|
|
126
140
|
computed: {
|
|
141
|
+
getCondition () {
|
|
142
|
+
return {
|
|
143
|
+
condition: this.model.condition,
|
|
144
|
+
f_process_id: this.check.f_process_id
|
|
145
|
+
}
|
|
146
|
+
}
|
|
127
147
|
}
|
|
128
148
|
}
|
|
129
149
|
</script>
|