apply-clients 3.4.89-37 → 3.4.89-39
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/apply.js +2 -1
- package/src/components/android/Process/AppServiceControl.vue +20 -0
- package/src/components/product/Install/ContractCharge.vue +167 -0
- package/src/filiale/hongda/pc/ServiceControl.vue +22 -0
- package/src/filiale/yangchunboneng/pc/InstallInfoSelect.vue +1 -1
- package/src/filiale/yangchunboneng/pc/InstallationDetails.vue +610 -0
- package/src/filiale/yangchunboneng/pc/ServiceControl.vue +10 -177
- package/src/filiale/yangchunboneng/pc/chargeManagement.vue +11 -5
- package/src/filiale/yangchunboneng/pc.js +12 -11
package/package.json
CHANGED
package/src/apply.js
CHANGED
|
@@ -110,7 +110,8 @@ export default function (filiale) {
|
|
|
110
110
|
Vue.component('area-select', (resolve) => { require(['./components/product/AreaSelect/MyAreaSelect'], resolve) })
|
|
111
111
|
// 地图组件
|
|
112
112
|
Vue.component('gaode-map', (resolve) => { require(['./components/product/GaoDeMapComponents/GaoDeMap'], resolve) })
|
|
113
|
-
|
|
113
|
+
// 预收组件
|
|
114
|
+
Vue.component('apply-contract-charge', (resolve) => { require(['./components/product/Install/ContractCharge'], resolve) })
|
|
114
115
|
if (filiale) {
|
|
115
116
|
let filialeComp = require(`./filiale/${filiale}/pc`).specialComp
|
|
116
117
|
for (let key in filialeComp) {
|
|
@@ -1011,6 +1011,26 @@ export default {
|
|
|
1011
1011
|
}
|
|
1012
1012
|
})
|
|
1013
1013
|
},
|
|
1014
|
+
//获取抄表册
|
|
1015
|
+
async getMeterBook () {
|
|
1016
|
+
let data = {
|
|
1017
|
+
tablename: 't_meter_book',
|
|
1018
|
+
condition: `f_book_state='有效' `
|
|
1019
|
+
}
|
|
1020
|
+
let http = new HttpResetClass()
|
|
1021
|
+
let res = await http.load(
|
|
1022
|
+
'POST',
|
|
1023
|
+
`${this.$androidUtil.getProxyUrl()}/rs/sql/apply_singleTable`,
|
|
1024
|
+
{data: data},
|
|
1025
|
+
{resolveMsg: null, rejectMsg: '抄表册查询失败!!!'}
|
|
1026
|
+
)
|
|
1027
|
+
return res.data.map(item => {
|
|
1028
|
+
return {
|
|
1029
|
+
label: item.f_book_name,
|
|
1030
|
+
value: item.f_book_code
|
|
1031
|
+
}
|
|
1032
|
+
})
|
|
1033
|
+
},
|
|
1014
1034
|
async getDesignerPeople () {
|
|
1015
1035
|
let data = {
|
|
1016
1036
|
source: 'this.getParentByType($organization$).getChildByName($设计部报装$).getChildren()',
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="col-sm-12" style="margin: 20px 0px;">
|
|
3
|
+
<data-grid :model="model" v-ref:grid class="list_area table_sy" style="padding: 0px">
|
|
4
|
+
<template partial='head'>
|
|
5
|
+
<tr>
|
|
6
|
+
<th>合同金额</th>
|
|
7
|
+
<th>付款节点</th>
|
|
8
|
+
<th>付款比例</th>
|
|
9
|
+
<th>应收金额</th>
|
|
10
|
+
<th><button type="button" class="btn btn-primary" @click="$parent.$parent.showAdd()">新增</button></th>
|
|
11
|
+
</tr>
|
|
12
|
+
</template>
|
|
13
|
+
<template partial='body'>
|
|
14
|
+
<tr >
|
|
15
|
+
<td style="text-align: center;">
|
|
16
|
+
<nobr><font>{{row.f_amount}}</font></nobr>
|
|
17
|
+
</td>
|
|
18
|
+
<td style="text-align: center;">
|
|
19
|
+
<nobr><font>{{row.defname}}</font></nobr>
|
|
20
|
+
</td>
|
|
21
|
+
<td style="text-align: center;">
|
|
22
|
+
<nobr><font>{{row.f_payment_ratio}}%</font></nobr>
|
|
23
|
+
</td>
|
|
24
|
+
<td style="text-align: center;">
|
|
25
|
+
<nobr><font>{{row.f_due_money}}</font></nobr>
|
|
26
|
+
</td>
|
|
27
|
+
<td style="text-align: center;">
|
|
28
|
+
<nobr><font>
|
|
29
|
+
<button type="button" class="btn btn-primary" @click="$parent.$parent.updateData(row)">修改</button>
|
|
30
|
+
<button type="button" class="btn btn-primary" @click="$parent.$parent.delData(row)">删除</button>
|
|
31
|
+
</font></nobr>
|
|
32
|
+
</td>
|
|
33
|
+
</tr>
|
|
34
|
+
</template>
|
|
35
|
+
</data-grid>
|
|
36
|
+
<modal
|
|
37
|
+
:show.sync="addModal"
|
|
38
|
+
backdrop="false"
|
|
39
|
+
:title="titleText"
|
|
40
|
+
cancel-text="取消"
|
|
41
|
+
ok-text="确认"
|
|
42
|
+
:callback="saveOrUpdate"
|
|
43
|
+
>
|
|
44
|
+
<div class="form-horizontal" slot="modal-body">
|
|
45
|
+
<div class="form-group" style="margin: 10px auto">
|
|
46
|
+
<label class="col-sm-3 control-label">合同金额(元):</label>
|
|
47
|
+
<div class="col-sm-9">
|
|
48
|
+
<input type="number" style="width: 60%" v-model="addData.f_amount" readonly/>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="form-group" style="margin: 10px auto">
|
|
52
|
+
<label class="col-sm-3 control-label">付款节点:</label>
|
|
53
|
+
<div class="col-sm-9">
|
|
54
|
+
<v-select
|
|
55
|
+
v-model="addData.applyType"
|
|
56
|
+
placeholder='请选择需要发起的工程类型'
|
|
57
|
+
:value.sync="addData.applyType"
|
|
58
|
+
:options='payProjects'
|
|
59
|
+
:value-single="true"
|
|
60
|
+
class="select select_list"
|
|
61
|
+
:search="false"
|
|
62
|
+
close-on-select ></v-select>
|
|
63
|
+
</div>
|
|
64
|
+
<div class="form-group" style="margin: 10px auto">
|
|
65
|
+
<label class="col-sm-3 control-label">付款比例(%):</label>
|
|
66
|
+
<div class="col-sm-9">
|
|
67
|
+
<input type="number" style="width: 60%" v-model="addData.f_payment_ratio" @change="inputChange(1)"/>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
<div class="form-group" style="margin: 10px auto">
|
|
71
|
+
<label class="col-sm-3 control-label">付款金额(元):</label>
|
|
72
|
+
<div class="col-sm-9">
|
|
73
|
+
<input type="number" style="width: 60%" v-model="addData.f_due_money" @change="inputChange(2)"/>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</modal>
|
|
79
|
+
</div>
|
|
80
|
+
</template>
|
|
81
|
+
<script>
|
|
82
|
+
import {HttpResetClass} from 'vue-client'
|
|
83
|
+
import Vue from "vue";
|
|
84
|
+
export default {
|
|
85
|
+
title: '付款预设',
|
|
86
|
+
props: {
|
|
87
|
+
selectdata: {
|
|
88
|
+
type: Object
|
|
89
|
+
},
|
|
90
|
+
mark: {
|
|
91
|
+
type: Number,
|
|
92
|
+
default: 1
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
data () {
|
|
96
|
+
return {
|
|
97
|
+
model: {rows: [{f_process_id: 100, f_payment_ratio: '', defname: '', f_due_money: ''}]},
|
|
98
|
+
payProjects: [{label: '合同签订', value: '合同签订'}, {label: '验收通气', value: '验收通气'}, {label: '完工', value: '完工'}],
|
|
99
|
+
addModal: false,
|
|
100
|
+
addData: {f_amount: 0, f_process_id: '', f_payment_ratio: '', defname: '', f_due_money: ''},
|
|
101
|
+
titleText: ''
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
methods: {
|
|
105
|
+
showAdd () {
|
|
106
|
+
this.addData = {
|
|
107
|
+
f_amount: this.selectdata.f_contract_money,
|
|
108
|
+
f_process_id: this.selectdata.f_process_id,
|
|
109
|
+
f_payment_ratio: '',
|
|
110
|
+
defname: this.selectdata.defname,
|
|
111
|
+
f_due_money: ''
|
|
112
|
+
}
|
|
113
|
+
this.titleText = '新增付款预设'
|
|
114
|
+
this.addModal = true
|
|
115
|
+
},
|
|
116
|
+
inputChange (type) {
|
|
117
|
+
if (this.addData.f_amount) {
|
|
118
|
+
if (type === 1) {
|
|
119
|
+
this.addData.f_due_money = (this.addData.f_amount * (this.addData.f_payment_ratio / 100)).toFixed(2)
|
|
120
|
+
} else {
|
|
121
|
+
this.addData.f_payment_ratio = Math.floor(this.addData.f_due_money / this.addData.f_amount * 100)
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
updateData (row){
|
|
126
|
+
this.addData = row
|
|
127
|
+
this.addData.f_amount=this.selectdata.f_contract_money
|
|
128
|
+
this.titleText = '修改付款预设'
|
|
129
|
+
this.addModal = true
|
|
130
|
+
},
|
|
131
|
+
delData (row){
|
|
132
|
+
console.log("delData=========")
|
|
133
|
+
this.$resetdelete(`apply/rs/entity/t_contract_charge`, {id: row.id}, {resolveMsg: null, rejectMsg: null}).then(() => {
|
|
134
|
+
this.search()
|
|
135
|
+
})
|
|
136
|
+
this.addModal = false
|
|
137
|
+
},
|
|
138
|
+
saveOrUpdate () {
|
|
139
|
+
// this.addData
|
|
140
|
+
console.log("saveOrUpdate=========")
|
|
141
|
+
new HttpResetClass().load('POST', 'apply/rs/entity/t_contract_charge', this.addData, {resolveMsg: null, rejectMsg: null}).then(() => {
|
|
142
|
+
this.search()
|
|
143
|
+
})
|
|
144
|
+
//关闭弹窗
|
|
145
|
+
this.addModal = false
|
|
146
|
+
},
|
|
147
|
+
search (){
|
|
148
|
+
let data = {
|
|
149
|
+
condition: `f_process_id = '${this.selectdata.f_process_id}'`
|
|
150
|
+
}
|
|
151
|
+
new HttpResetClass().load('POST', 'rs/sql/getContractCharge', {data: data}
|
|
152
|
+
, {resolveMsg: null, rejectMsg: null})
|
|
153
|
+
.then((res) => {
|
|
154
|
+
this.model.rows = res.data
|
|
155
|
+
})
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
ready () {
|
|
159
|
+
this.payProjects = this.$appdata.getParam(this.selectdata.f_apply_type + '付款预设')
|
|
160
|
+
this.search()
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
</script>
|
|
164
|
+
|
|
165
|
+
<style scoped>
|
|
166
|
+
|
|
167
|
+
</style>
|
|
@@ -657,6 +657,28 @@
|
|
|
657
657
|
})
|
|
658
658
|
return a
|
|
659
659
|
},
|
|
660
|
+
//获取抄表册
|
|
661
|
+
async getMeterBook () {
|
|
662
|
+
let data = {
|
|
663
|
+
tablename: 't_meter_book',
|
|
664
|
+
condition: `f_book_state='有效' `
|
|
665
|
+
}
|
|
666
|
+
let http = new HttpResetClass()
|
|
667
|
+
let res = await http.load(
|
|
668
|
+
'POST',
|
|
669
|
+
`rs/sql/apply_singleTable`,
|
|
670
|
+
{data: data},
|
|
671
|
+
{resolveMsg: null, rejectMsg: '抄表册查询失败!!!'}
|
|
672
|
+
)
|
|
673
|
+
return res.data.map(item => {
|
|
674
|
+
return {
|
|
675
|
+
label: item.f_book_name,
|
|
676
|
+
value: item.f_book_code
|
|
677
|
+
}
|
|
678
|
+
})
|
|
679
|
+
},
|
|
680
|
+
|
|
681
|
+
|
|
660
682
|
addressInitialization () {
|
|
661
683
|
this.$getConfig(this, 'UserAddress')
|
|
662
684
|
|
|
@@ -0,0 +1,610 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<work-busy :is-busy="showWork" v-show="showWork"></work-busy>
|
|
3
|
+
|
|
4
|
+
<div class="col-sm-12" style="margin: 20px 0px;">
|
|
5
|
+
<criteria-paged :model="model" v-ref:cp :pager="pager">
|
|
6
|
+
<criteria partial='criteria' @condition-changed='$parent.searchCondition' v-ref:cri>
|
|
7
|
+
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
|
8
|
+
</div>
|
|
9
|
+
</criteria>
|
|
10
|
+
<data-grid :model="model" v-ref:grid partial='list' class="list_area table_sy" style="padding: 0px">
|
|
11
|
+
<template partial='head'>
|
|
12
|
+
<tr>
|
|
13
|
+
<th>序号</th>
|
|
14
|
+
<th>客户编号</th>
|
|
15
|
+
<th>客户名称</th>
|
|
16
|
+
<th>客户电话</th>
|
|
17
|
+
<th>地址信息</th>
|
|
18
|
+
<th v-if="$parent.$parent.$parent.selectdata.f_apply_type === '团购报建'">备注</th>
|
|
19
|
+
<th>表具数量</th>
|
|
20
|
+
<th>
|
|
21
|
+
<template v-if="$parent.$parent.$parent.selectdata.f_apply_type === '团购报建'">
|
|
22
|
+
<button type="button" class="btn btn-info head-but" v-if="$parent.$parent.$parent.mark === 0"
|
|
23
|
+
@click="$parent.$parent.$parent.showFile = !$parent.$parent.$parent.showFile">导入</button>
|
|
24
|
+
<a type="button" class="btn btn-info head-but" v-if="$parent.$parent.$parent.mark === 0"
|
|
25
|
+
href="/apply/download/excel/安装明细.xlsx" download>模板下载</a>
|
|
26
|
+
<export-excel :data="$parent.$parent.$parent.getCondition"
|
|
27
|
+
:field="$parent.$parent.$parent.getfield"
|
|
28
|
+
sqlurl="rs/logic/applyExportfile"
|
|
29
|
+
sql-name="getInstallableAddress"
|
|
30
|
+
template-name='可安装地址'
|
|
31
|
+
btn-name="导出可安装"
|
|
32
|
+
:choose-col="true"></export-excel>
|
|
33
|
+
</template>
|
|
34
|
+
</th>
|
|
35
|
+
</tr>
|
|
36
|
+
</template>
|
|
37
|
+
<template partial='body'>
|
|
38
|
+
<tr>
|
|
39
|
+
<td style="text-align: center;">
|
|
40
|
+
<nobr>{{$index+1}}</nobr>
|
|
41
|
+
</td>
|
|
42
|
+
<td style="text-align: center;">
|
|
43
|
+
<nobr>{{row.f_userinfo_code}}</nobr>
|
|
44
|
+
</td>
|
|
45
|
+
<td style="text-align: center;">
|
|
46
|
+
<nobr>{{row.f_user_name}}</nobr>
|
|
47
|
+
</td>
|
|
48
|
+
<td style="text-align: center;">
|
|
49
|
+
<nobr>{{row.f_user_phone}}</nobr>
|
|
50
|
+
</td>
|
|
51
|
+
<td style="text-align: center;">
|
|
52
|
+
<nobr>{{row.f_address}}</nobr>
|
|
53
|
+
</td>
|
|
54
|
+
<th v-if="$parent.$parent.$parent.selectdata.f_apply_type === '团购报建'">
|
|
55
|
+
<nobr>{{row.f_userinfo_comments}}</nobr>
|
|
56
|
+
</th>
|
|
57
|
+
<td style="text-align: center;">
|
|
58
|
+
<nobr>{{row.f_userfiles_num === null ? 0 : row.f_userfiles_num}}</nobr>
|
|
59
|
+
</td>
|
|
60
|
+
<td style="text-align: center;">
|
|
61
|
+
<nobr>
|
|
62
|
+
<button
|
|
63
|
+
type="button" name="button" class="btn btn-link"
|
|
64
|
+
:disabled="row.f_cumulative_payment_money < $parent.$parent.$parent.selectdata.f_price && $parent.$parent.$parent.selectdata.f_apply_type !== '开发商集体报建'"
|
|
65
|
+
@click="$parent.$parent.$parent.showUserFileModal(row)">
|
|
66
|
+
{{$parent.$parent.$parent.mark === 1 ? '查看' : row.f_userfiles_num > 0 ? '修正' : '添加'}}
|
|
67
|
+
</button>
|
|
68
|
+
</nobr>
|
|
69
|
+
</td>
|
|
70
|
+
</tr>
|
|
71
|
+
</template>
|
|
72
|
+
</data-grid>
|
|
73
|
+
</criteria-paged>
|
|
74
|
+
</div>
|
|
75
|
+
<modal v-if="showFile" :show.sync="showFile" v-ref:modal :backdrop="false" title="选择文件">
|
|
76
|
+
<header slot="modal-header" class="modal-header">
|
|
77
|
+
<button type="button" class="close" @click="closeFile"><span>×</span></button>
|
|
78
|
+
<h4 class="modal-title">选择文件</h4>
|
|
79
|
+
</header>
|
|
80
|
+
<article slot="modal-body" class="modal-body">
|
|
81
|
+
<div class="form-group">
|
|
82
|
+
<file-upload class="my-file-uploader" name="useraddressUploadFile" action="rs/file/uploadFile" tagname="确定" v-ref:file></file-upload>
|
|
83
|
+
</div>
|
|
84
|
+
</article>
|
|
85
|
+
<footer slot="modal-footer" class="modal-footer"></footer>
|
|
86
|
+
</modal>
|
|
87
|
+
|
|
88
|
+
<modal v-if="showUserFile" :show.sync="showUserFile" v-ref:modal :large="true" :backdrop="false" title="安装明细">
|
|
89
|
+
<header slot="modal-header" class="modal-header">
|
|
90
|
+
<button type="button" class="close" @click="closeUserFile"><span>×</span></button>
|
|
91
|
+
<h4 class="modal-title">安装明细</h4>
|
|
92
|
+
</header>
|
|
93
|
+
<article slot="modal-body" class="modal-body clearfix">
|
|
94
|
+
<div class="form-group col-sm-12">
|
|
95
|
+
<label class="col-sm-2 control-label">地址信息:</label>
|
|
96
|
+
<div class="col-sm-10">
|
|
97
|
+
<input class="form-control input_view" style=""
|
|
98
|
+
v-model="useradders.f_address"
|
|
99
|
+
:value="useradders.f_address"
|
|
100
|
+
:readonly="true"/>
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
|
|
104
|
+
<div v-for="(i, item) in userinfo.userfiles" class="form-group col-sm-12 panel panel-info">
|
|
105
|
+
<div class="panel-heading head col-sm-12" style="background-color: #e8f4ff;margin-bottom: 10px">
|
|
106
|
+
<div class="col-sm-6 text-left">表具{{$index+1}}信息</div>
|
|
107
|
+
<div class="col-sm-6 text-right"><button
|
|
108
|
+
class="button_delete button_spacing"
|
|
109
|
+
v-if="!item.f_userfiles_id"
|
|
110
|
+
@click.prevent="deleteUserFile(i)"
|
|
111
|
+
>删除</button></div>
|
|
112
|
+
</div>
|
|
113
|
+
<div class="form-group col-sm-6" :class="[item.gasbrand ? '' : 'has-error']">
|
|
114
|
+
<label class="col-sm-4 control-label">气表品牌:</label>
|
|
115
|
+
<div class="col-sm-8">
|
|
116
|
+
<input-select
|
|
117
|
+
class="select select_list"
|
|
118
|
+
:value.sync="item.gasbrand"
|
|
119
|
+
v-model="item.gasbrand"
|
|
120
|
+
:options="meterbrands"
|
|
121
|
+
@change="gasbrandChange(i)"
|
|
122
|
+
:disable="mark === 1"
|
|
123
|
+
:valueSingle="true"></input-select>
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
<div class="form-group col-sm-6" :class="[item.gasmodel ? '' : 'has-error']">
|
|
127
|
+
<label class="col-sm-4 control-label">气表型号:</label>
|
|
128
|
+
<div class="col-sm-8">
|
|
129
|
+
<input-select
|
|
130
|
+
class="select select_list"
|
|
131
|
+
:value.sync="item.gasmodel"
|
|
132
|
+
v-model="item.gasmodel"
|
|
133
|
+
:options.sync="item.gasbrand.gasmodel"
|
|
134
|
+
@change="gasmodelChange(i)"
|
|
135
|
+
:disable="mark === 1"
|
|
136
|
+
:valueSingle="true"></input-select>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
<div class="form-group col-sm-6" :class="[item.f_meternumber ? '' : 'has-error']">
|
|
140
|
+
<label class="col-sm-4 control-label">表  号:</label>
|
|
141
|
+
<div class="col-sm-8">
|
|
142
|
+
<input class="form-control input_view" style=""
|
|
143
|
+
placeholder="表号"
|
|
144
|
+
type="number"
|
|
145
|
+
οnkeyup="this.value=this.value.replace(/\s+/g,'')"
|
|
146
|
+
v-model="item.f_meternumber"
|
|
147
|
+
:value="item.f_meternumber"
|
|
148
|
+
@change="meternumberValidate(i)"
|
|
149
|
+
:readonly="mark === 1"/>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
<div class="form-group col-sm-6">
|
|
153
|
+
<label class="col-sm-4 control-label">表 封 号:</label>
|
|
154
|
+
<div class="col-sm-8">
|
|
155
|
+
<input class="form-control input_view" style=""
|
|
156
|
+
placeholder="表封号"
|
|
157
|
+
v-model="item.f_metertitles"
|
|
158
|
+
:value="item.f_metertitles"
|
|
159
|
+
:readonly="mark === 1"/>
|
|
160
|
+
</div>
|
|
161
|
+
</div>
|
|
162
|
+
<div class="form-group col-sm-6">
|
|
163
|
+
<label class="col-sm-4 control-label">表 读 数:</label>
|
|
164
|
+
<div class="col-sm-8">
|
|
165
|
+
<input class="form-control input_view" style=""
|
|
166
|
+
type="number"
|
|
167
|
+
placeholder="表读数"
|
|
168
|
+
v-model="item.f_meter_base"
|
|
169
|
+
:value="item.f_meter_base"
|
|
170
|
+
:readonly="mark === 1"/>
|
|
171
|
+
</div>
|
|
172
|
+
</div>
|
|
173
|
+
<div class="form-group col-sm-6">
|
|
174
|
+
<label class="col-sm-4 control-label">初始底数:</label>
|
|
175
|
+
<div class="col-sm-8">
|
|
176
|
+
<input class="form-control input_view" style=""
|
|
177
|
+
type="number"
|
|
178
|
+
v-model="item.f_initial_base"
|
|
179
|
+
:value="item.f_initial_base"
|
|
180
|
+
placeholder="初始底数"
|
|
181
|
+
:readonly="mark === 1"/>
|
|
182
|
+
</div>
|
|
183
|
+
</div>
|
|
184
|
+
<div class="form-group col-sm-6">
|
|
185
|
+
<label class="col-sm-4 control-label">表  向:</label>
|
|
186
|
+
<div class="col-sm-8">
|
|
187
|
+
<input-select
|
|
188
|
+
class="select select_list"
|
|
189
|
+
:value.sync="item.f_aroundmeter"
|
|
190
|
+
v-model="item.f_aroundmeter"
|
|
191
|
+
:options="aroundmeters"
|
|
192
|
+
:disable="mark === 1"
|
|
193
|
+
:valueSingle="true"></input-select>
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
196
|
+
<div class="form-group col-sm-6">
|
|
197
|
+
<label class="col-sm-4 control-label">安装位置:</label>
|
|
198
|
+
<div class="col-sm-8">
|
|
199
|
+
<input-select
|
|
200
|
+
class="select select_list"
|
|
201
|
+
:value.sync="item.f_position"
|
|
202
|
+
v-model="item.f_position"
|
|
203
|
+
:options="positions"
|
|
204
|
+
:disable="mark === 1"
|
|
205
|
+
:valueSingle="true"></input-select>
|
|
206
|
+
</div>
|
|
207
|
+
</div>
|
|
208
|
+
<div class="form-group col-sm-6">
|
|
209
|
+
<label class="col-sm-4 control-label">安 装 人:</label>
|
|
210
|
+
<div class="col-sm-8">
|
|
211
|
+
<input class="form-control input_view" style=""
|
|
212
|
+
v-model="item.f_install_person"
|
|
213
|
+
:value.sync="installperson(item.f_install_person)"
|
|
214
|
+
placeholder="安装人"
|
|
215
|
+
readonly/>
|
|
216
|
+
<!-- <input-select-->
|
|
217
|
+
<!-- class="select select_list"-->
|
|
218
|
+
<!-- :value.sync="item.f_install_person"-->
|
|
219
|
+
<!-- v-model="item.f_install_person"-->
|
|
220
|
+
<!-- :options="installperson"-->
|
|
221
|
+
<!-- :disable="mark === 1"-->
|
|
222
|
+
<!-- :valueSingle="true"></input-select>-->
|
|
223
|
+
</div>
|
|
224
|
+
</div>
|
|
225
|
+
<div class="form-group col-sm-6">
|
|
226
|
+
<label class="col-sm-4 control-label">安装日期:</label>
|
|
227
|
+
<div class="col-sm-8">
|
|
228
|
+
<input class="form-control input_view" style=""
|
|
229
|
+
v-model="item.f_install_date"
|
|
230
|
+
:value.sync="installdate(item.f_install_date)"
|
|
231
|
+
placeholder="安装日期"
|
|
232
|
+
readonly/>
|
|
233
|
+
<!-- <datepicker-->
|
|
234
|
+
<!-- placeholder="安装日期"-->
|
|
235
|
+
<!-- :value.sync="item.f_install_date"-->
|
|
236
|
+
<!-- v-model="item.f_install_date"-->
|
|
237
|
+
<!-- format="yyyy-MM-dd HH:mm:ss"-->
|
|
238
|
+
<!-- :disabled="mark === 1"-->
|
|
239
|
+
<!-- :show-reset-button="reset">-->
|
|
240
|
+
<!-- </datepicker>-->
|
|
241
|
+
</div>
|
|
242
|
+
</div>
|
|
243
|
+
</div>
|
|
244
|
+
|
|
245
|
+
</article>
|
|
246
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
247
|
+
<template v-if="mark !== 1">
|
|
248
|
+
<!-- 去除一户多表 -->
|
|
249
|
+
<button type="button" class="btn btn-primary" @click="addUserFile" v-if="false">添加表具</button>
|
|
250
|
+
<button type="button" class="btn btn-primary" @click="saveUserFile" :disabled="!$v.valid">确认</button>
|
|
251
|
+
</template>
|
|
252
|
+
</footer>
|
|
253
|
+
</modal>
|
|
254
|
+
</template>
|
|
255
|
+
<script>
|
|
256
|
+
import Vue from 'vue'
|
|
257
|
+
import {PagedList} from 'vue-client'
|
|
258
|
+
import {HttpResetClass} from 'vue-client'
|
|
259
|
+
import {isEmpty} from '../../../components/Util'
|
|
260
|
+
// Date格式化
|
|
261
|
+
Date.prototype.Format = function (fmt) {
|
|
262
|
+
var o = {
|
|
263
|
+
'M+': this.getMonth() + 1, // 月份
|
|
264
|
+
'd+': this.getDate(), // 日
|
|
265
|
+
'H+': this.getHours(), // 小时
|
|
266
|
+
'm+': this.getMinutes(), // 分
|
|
267
|
+
's+': this.getSeconds(), // 秒
|
|
268
|
+
'q+': Math.floor((this.getMonth() + 3) / 3), // 季度
|
|
269
|
+
'S': this.getMilliseconds() // 毫秒
|
|
270
|
+
}
|
|
271
|
+
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length))
|
|
272
|
+
for (var k in o) {
|
|
273
|
+
if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
|
|
274
|
+
}
|
|
275
|
+
return fmt
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
export default {
|
|
279
|
+
title: '安装明细',
|
|
280
|
+
props: {
|
|
281
|
+
selectdata: {
|
|
282
|
+
type: Object
|
|
283
|
+
},
|
|
284
|
+
mark: {
|
|
285
|
+
type: Number,
|
|
286
|
+
default: 0
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
data () {
|
|
290
|
+
return {
|
|
291
|
+
showFile: false,
|
|
292
|
+
showUserFile: false,
|
|
293
|
+
model: new PagedList('rs/sql/getAddresAndUserinfoAndUserfilesAmount', 20, null),
|
|
294
|
+
meterbrands: [], // 气表品牌
|
|
295
|
+
useradders: null,
|
|
296
|
+
userinfo: {},
|
|
297
|
+
getfield: {
|
|
298
|
+
'f_address': '地址',
|
|
299
|
+
'f_user_name': '用户姓名/单位名称',
|
|
300
|
+
'f_meternumber': '表号',
|
|
301
|
+
'f_gasbrand': '气表品牌',
|
|
302
|
+
'f_gasmodel': '气表型号',
|
|
303
|
+
'f_metertitles': '表封号',
|
|
304
|
+
'f_meter_base': '表读数',
|
|
305
|
+
'f_initial_base': '初始底数',
|
|
306
|
+
'f_aroundmeter': '表向',
|
|
307
|
+
'f_user_phone': '电话',
|
|
308
|
+
'f_userinfo_comments': '备注',
|
|
309
|
+
'f_position': '安装位置',
|
|
310
|
+
'f_userinfo_code': '用户编号',
|
|
311
|
+
'f_material_name': '材料名称',
|
|
312
|
+
'f_material_style': '材料型号',
|
|
313
|
+
'f_material_price': '材料价格',
|
|
314
|
+
'f_material_unit': '材料单位',
|
|
315
|
+
'f_material_number': '材料数量'
|
|
316
|
+
},
|
|
317
|
+
showWork: false
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
ready () {
|
|
321
|
+
this.search()
|
|
322
|
+
this.getMeterbrands()
|
|
323
|
+
if (this.selectdata.f_apply_type === '团购报建') {
|
|
324
|
+
this.notInstalled()
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
methods: {
|
|
328
|
+
// 删除未保存的表具
|
|
329
|
+
async deleteUserFile (index) {
|
|
330
|
+
this.userinfo.userfiles.splice(index, 1)
|
|
331
|
+
},
|
|
332
|
+
// 追加表具
|
|
333
|
+
addUserFile() {
|
|
334
|
+
this.userinfo.userfiles.push({})
|
|
335
|
+
},
|
|
336
|
+
// 保存档案
|
|
337
|
+
async saveUserFile() {
|
|
338
|
+
// 检查必填项
|
|
339
|
+
for (let i = 0; i < this.userinfo.userfiles.length; i++) {
|
|
340
|
+
let userfile = this.userinfo.userfiles[i]
|
|
341
|
+
if (userfile.f_gasbrand_id === null || userfile.f_gasbrand_id === '') {
|
|
342
|
+
this.$showMessage(`表具${i+1}气表品牌没有选择!!!`)
|
|
343
|
+
return
|
|
344
|
+
}
|
|
345
|
+
if (userfile.f_gasmodel_id === null || userfile.f_gasmodel_id === '') {
|
|
346
|
+
this.$showMessage(`表具${i+1}气表型号没有选择!!!`)
|
|
347
|
+
return
|
|
348
|
+
}
|
|
349
|
+
if (userfile.f_meternumber === null || userfile.f_meternumber === '') {
|
|
350
|
+
this.$showMessage(`表具${i+1}表号没有填写!!!`)
|
|
351
|
+
return
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
let data = {
|
|
355
|
+
user: this.$login.f,
|
|
356
|
+
useradders: this.useradders,
|
|
357
|
+
userinfo: this.userinfo,
|
|
358
|
+
selectdata: this.selectdata
|
|
359
|
+
}
|
|
360
|
+
let res = await this.$resetpost('rs/logic/addInstallationDetails', {data:data}, {
|
|
361
|
+
resolveMsg: null,
|
|
362
|
+
rejectMsg: '表具添加失败!!!'
|
|
363
|
+
})
|
|
364
|
+
this.$dispatch('breakControl', this.selectdata)
|
|
365
|
+
},
|
|
366
|
+
// 检查表号是否存在
|
|
367
|
+
async meternumberValidate(i) {
|
|
368
|
+
if (!this.userinfo.userfiles[i].f_gasbrand_id) {
|
|
369
|
+
this.userinfo.userfiles[i].f_meternumber = ''
|
|
370
|
+
this.$showAlert('请先选择气表品牌!!!', 'warning', 3000)
|
|
371
|
+
return
|
|
372
|
+
}
|
|
373
|
+
if (this.userinfo.userfiles[i].f_gasbrand_id && this.userinfo.userfiles[i].f_meternumber) {
|
|
374
|
+
let data = {
|
|
375
|
+
f_meternumber: this.userinfo.userfiles[i].f_meternumber,
|
|
376
|
+
f_gasbrand_id: this.userinfo.userfiles[i].f_gasbrand_id
|
|
377
|
+
}
|
|
378
|
+
if (this.userinfo.userfiles[i].f_userfiles_id) {
|
|
379
|
+
data.f_userfiles_id = this.userinfo.userfiles[i].f_userfiles_id
|
|
380
|
+
}
|
|
381
|
+
let res = await this.$resetpost('rs/logic/meterbrandsNumberValidate', {data:data}, {
|
|
382
|
+
resolveMsg: null,
|
|
383
|
+
rejectMsg: '表号验证失败!!'
|
|
384
|
+
})
|
|
385
|
+
if (res.data) {
|
|
386
|
+
this.userinfo.userfiles[i].f_meternumber = ''
|
|
387
|
+
this.$showAlert('表号已存在!!', 'warning', 3000)
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
},
|
|
391
|
+
// 选择气表型号
|
|
392
|
+
gasmodelChange(i) {
|
|
393
|
+
if (this.userinfo.userfiles[i].gasmodel) {
|
|
394
|
+
this.userinfo.userfiles[i].f_gasmodel_id = this.userinfo.userfiles[i].gasmodel.id
|
|
395
|
+
}
|
|
396
|
+
},
|
|
397
|
+
// 选择气表品牌
|
|
398
|
+
gasbrandChange(i) {
|
|
399
|
+
// 清空已保存的气表型号
|
|
400
|
+
this.userinfo.userfiles[i].f_gasmodel_id = null
|
|
401
|
+
this.userinfo.userfiles[i].gasmodel = null
|
|
402
|
+
|
|
403
|
+
if (this.userinfo.userfiles[i].gasbrand) {
|
|
404
|
+
// 气表品牌id
|
|
405
|
+
this.userinfo.userfiles[i].f_gasbrand_id = this.userinfo.userfiles[i].gasbrand.id
|
|
406
|
+
// 气表分类
|
|
407
|
+
this.userinfo.userfiles[i].f_meter_classify = this.userinfo.userfiles[i].gasbrand.f_meter_type
|
|
408
|
+
}
|
|
409
|
+
},
|
|
410
|
+
// 打开安装明细
|
|
411
|
+
async showUserFileModal (row) {
|
|
412
|
+
this.useradders = row
|
|
413
|
+
|
|
414
|
+
let http = new HttpResetClass()
|
|
415
|
+
let data = {
|
|
416
|
+
condition: `f_userinfo_id = '${row.f_userinfo_id}'`
|
|
417
|
+
}
|
|
418
|
+
let res = await http.load('POST', 'rs/logic/getUserinfoAndUserfiles', {data:data}, {
|
|
419
|
+
resolveMsg: null,
|
|
420
|
+
rejectMsg: null
|
|
421
|
+
})
|
|
422
|
+
|
|
423
|
+
this.userinfo = res.data
|
|
424
|
+
|
|
425
|
+
// 已有表具的 气表信息补充
|
|
426
|
+
for (let i = 0; i < this.userinfo.userfiles.length; i++) {
|
|
427
|
+
for (const item of this.meterbrands) {
|
|
428
|
+
if (item.value.id === this.userinfo.userfiles[i].f_gasbrand_id) {
|
|
429
|
+
// this.userinfo.userfiles[i].gasbrand = item.value // 防止双向绑定失败
|
|
430
|
+
Vue.set(this.userinfo.userfiles[i], 'gasbrand', item.value)
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
if (this.userinfo.userfiles[i].gasbrand) {
|
|
434
|
+
for (const item of this.userinfo.userfiles[i].gasbrand.gasmodel) {
|
|
435
|
+
if (item.value.id === this.userinfo.userfiles[i].f_gasmodel_id) {
|
|
436
|
+
// this.userinfo.userfiles[i].gasmodel = item.value
|
|
437
|
+
Vue.set(this.userinfo.userfiles[i], 'gasmodel', item.value)
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
this.showUserFile = true
|
|
444
|
+
},
|
|
445
|
+
// 获取气表品牌
|
|
446
|
+
async getMeterbrands() {
|
|
447
|
+
let http = new HttpResetClass()
|
|
448
|
+
let data = {
|
|
449
|
+
f_orgid: this.$login.f.orgid
|
|
450
|
+
}
|
|
451
|
+
let res = await http.load('POST', 'rs/logic/getMeterbrands', {data:data}, {
|
|
452
|
+
resolveMsg: null,
|
|
453
|
+
rejectMsg: null
|
|
454
|
+
})
|
|
455
|
+
this.meterbrands = res.data
|
|
456
|
+
},
|
|
457
|
+
async notInstalled () {
|
|
458
|
+
let http = new HttpResetClass()
|
|
459
|
+
let data = {
|
|
460
|
+
condition: `ui.f_process_id = '${this.selectdata.f_process_id}' and uf.f_table_state != '待开通'`
|
|
461
|
+
}
|
|
462
|
+
let res = await http.load(
|
|
463
|
+
'POST',
|
|
464
|
+
'rs/sql/countApplyUserinfo',
|
|
465
|
+
{data: data},
|
|
466
|
+
{
|
|
467
|
+
resolveMsg: null,
|
|
468
|
+
rejectMsg: '安装数量查询失败!!!'
|
|
469
|
+
})
|
|
470
|
+
|
|
471
|
+
for (const item of this.selectdata.fields) {
|
|
472
|
+
if (item.label === '已安装户数') {
|
|
473
|
+
item.value = this.selectdata.f_apply_count - res.data[0].num
|
|
474
|
+
}
|
|
475
|
+
if (item.label === '未安装户数') {
|
|
476
|
+
item.value = res.data[0].num
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
searchCondition (args) {
|
|
481
|
+
var tablestate=''
|
|
482
|
+
if(this.selectdata.f_sub_state==='完工'){
|
|
483
|
+
tablestate='正常'
|
|
484
|
+
}else{
|
|
485
|
+
tablestate='待开通'
|
|
486
|
+
}
|
|
487
|
+
if (this.selectdata.f_apply_type === '启封通气') {
|
|
488
|
+
args.condition = args.condition + `and ui.f_userinfo_id = '${this.selectdata.f_userinfo_id}'`
|
|
489
|
+
} else {
|
|
490
|
+
args.condition = args.condition + `and ua.f_process_id = '${this.selectdata.f_process_id}'`
|
|
491
|
+
}
|
|
492
|
+
this.model.search(args.condition, args.model,tablestate)
|
|
493
|
+
},
|
|
494
|
+
// 查询
|
|
495
|
+
async search () {
|
|
496
|
+
this.$refs.cp.$refs.cri.search()
|
|
497
|
+
},
|
|
498
|
+
// 关闭安装明细
|
|
499
|
+
closeUserFile() {
|
|
500
|
+
this.showUserFile = false
|
|
501
|
+
this.useradders = null
|
|
502
|
+
this.userinfo = {}
|
|
503
|
+
this.search()
|
|
504
|
+
},
|
|
505
|
+
// 关闭文件上传对话框
|
|
506
|
+
closeFile() {
|
|
507
|
+
this.showWork = false
|
|
508
|
+
this.showFile = false
|
|
509
|
+
// 将选的文件清空
|
|
510
|
+
this.$refs.file.$el.querySelector('input').value = ''
|
|
511
|
+
this.search()
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
events: {
|
|
515
|
+
'beforeFileUpload' (file) {
|
|
516
|
+
this.showWork = true
|
|
517
|
+
},
|
|
518
|
+
async 'onFileUpload'(file, result) {
|
|
519
|
+
let data = {
|
|
520
|
+
selectdata: this.selectdata,
|
|
521
|
+
filepath: result.f_downloadpath,
|
|
522
|
+
user: this.$login.f
|
|
523
|
+
}
|
|
524
|
+
try {
|
|
525
|
+
let res = await this.$resetpost(`rs/logic/importAddInstallationDetails`, {data: data}, {
|
|
526
|
+
resolveMsg: null,
|
|
527
|
+
rejectMsg: '导入失败!!!',
|
|
528
|
+
silent: true
|
|
529
|
+
}, 0)
|
|
530
|
+
} catch (e) {
|
|
531
|
+
this.closeFile()
|
|
532
|
+
}
|
|
533
|
+
this.$dispatch('breakControl', this.selectdata)
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
computed: {
|
|
537
|
+
pager () {
|
|
538
|
+
return this.selectdata.f_apply_type === '团购报建'
|
|
539
|
+
},
|
|
540
|
+
getCondition () {
|
|
541
|
+
let condition = `ua.f_process_id = '${this.selectdata.f_process_id}'`
|
|
542
|
+
|
|
543
|
+
return {
|
|
544
|
+
condition: condition
|
|
545
|
+
}
|
|
546
|
+
},
|
|
547
|
+
// 安装人
|
|
548
|
+
installperson() {
|
|
549
|
+
return function (f_install_person) {
|
|
550
|
+
if (isEmpty(f_install_person)) {
|
|
551
|
+
return this.$login.f.name
|
|
552
|
+
}
|
|
553
|
+
return f_install_person
|
|
554
|
+
}
|
|
555
|
+
},
|
|
556
|
+
installdate() {
|
|
557
|
+
return function (f_install_date) {
|
|
558
|
+
if (isEmpty(f_install_date)) {
|
|
559
|
+
return new Date().Format('yyyy-MM-dd HH:mm:ss')
|
|
560
|
+
}
|
|
561
|
+
return f_install_date
|
|
562
|
+
}
|
|
563
|
+
},
|
|
564
|
+
// 表向
|
|
565
|
+
aroundmeters() {
|
|
566
|
+
return this.$appdata.getParam('左右表')
|
|
567
|
+
},
|
|
568
|
+
// 安装位置
|
|
569
|
+
positions() {
|
|
570
|
+
return this.$appdata.getParam('安装位置')
|
|
571
|
+
}
|
|
572
|
+
},
|
|
573
|
+
watch: {
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
</script>
|
|
577
|
+
<style scoped>
|
|
578
|
+
.head-but{
|
|
579
|
+
margin-left: 5px;
|
|
580
|
+
height: 34px;
|
|
581
|
+
/*background-color: #6aa6e2;*/
|
|
582
|
+
border-radius: 4px;
|
|
583
|
+
font-family: PingFang;
|
|
584
|
+
color: #ffffff;
|
|
585
|
+
}
|
|
586
|
+
/*清除model中的浮动*/
|
|
587
|
+
.clearfix:after,.clearfix:before{
|
|
588
|
+
display: table;
|
|
589
|
+
}
|
|
590
|
+
.clearfix:after{
|
|
591
|
+
clear: both;
|
|
592
|
+
}
|
|
593
|
+
.input_view{
|
|
594
|
+
padding: 8px;
|
|
595
|
+
background-color: #ffffff;
|
|
596
|
+
border-radius: 2px;
|
|
597
|
+
border: solid 1px #c7c7c7!important;
|
|
598
|
+
color: #333333!important;
|
|
599
|
+
font-size: 15px!important;
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
.input_view[readonly]{
|
|
603
|
+
border: 1px solid #DDD!important;
|
|
604
|
+
color:#ACA899!important;
|
|
605
|
+
}
|
|
606
|
+
.input_view:disabled{
|
|
607
|
+
border: 1px solid #DDD!important;
|
|
608
|
+
color:#ACA899!important;
|
|
609
|
+
}
|
|
610
|
+
</style>
|
|
@@ -547,11 +547,13 @@
|
|
|
547
547
|
{data: data},
|
|
548
548
|
{resolveMsg: null, rejectMsg: '查询失败!!!'}
|
|
549
549
|
)
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
550
|
+
if(res.data.length!==0){
|
|
551
|
+
var f_due_money= res.data[0].f_due_money
|
|
552
|
+
var cumulative= res.data[0].f_cumulative_payment_money
|
|
553
|
+
if (Number(f_due_money) > Number(cumulative)) {
|
|
554
|
+
this.$showAlert(`当前${defname}环节,应缴金额为:${f_due_money},费用未结清`, 'warning', 3000)
|
|
555
|
+
throw null
|
|
556
|
+
}
|
|
555
557
|
}
|
|
556
558
|
},
|
|
557
559
|
// 施工前置 加表具后状态是待开通 提交后是正常 所以这里的判断条件需改正 (and uf.f_meter_classify is null and f_meternumber is null)
|
|
@@ -1513,180 +1515,11 @@
|
|
|
1513
1515
|
this.show_data.start_activity = this.$workflow_vue.start_activity
|
|
1514
1516
|
this.show_data.xmlfilename = this.$workflow_vue.workflow_xmlfilename
|
|
1515
1517
|
|
|
1516
|
-
if ((this.show_data.f_apply_type === '报警器报建' || this.show_data.f_apply_type === '工商业报警器报建') && this.show_data.defname === '工程施工' && this.show_data.f_sub_state !='完工' && this.show_data.button.button_name === '完工'){
|
|
1517
|
-
//判断是否添加报警器材料
|
|
1518
|
-
let bjqlag = false
|
|
1519
|
-
let datatemp = {
|
|
1520
|
-
'bjqid':"",
|
|
1521
|
-
'fprocessid':"",
|
|
1522
|
-
'sqvalue':"",
|
|
1523
|
-
'f_bjq_sid':"",
|
|
1524
|
-
'f_material_code':"",
|
|
1525
|
-
'f_bjq_baidu_lng':"",
|
|
1526
|
-
'f_bjq_baidu_lat':"",
|
|
1527
|
-
'f_bjq_gaode_lng':"",
|
|
1528
|
-
'f_bjq_gaode_lat':""
|
|
1529
|
-
}
|
|
1530
|
-
|
|
1531
|
-
let bjqststedata = {
|
|
1532
|
-
"sid":"",
|
|
1533
|
-
"bjqtype":"",
|
|
1534
|
-
"f_process_id":"",
|
|
1535
|
-
"bjqstate":"",
|
|
1536
|
-
"f_userinfo_code":""
|
|
1537
|
-
}
|
|
1538
|
-
let numOne = [];
|
|
1539
|
-
|
|
1540
|
-
let http = new HttpResetClass()
|
|
1541
|
-
let data = {
|
|
1542
|
-
tablename: `t_material_apply`,
|
|
1543
|
-
condition: `f_process_id='${this.show_data.f_process_id}'`
|
|
1544
|
-
}
|
|
1545
|
-
let res = await http.load(
|
|
1546
|
-
'POST',
|
|
1547
|
-
`rs/sql/apply_singleTable`,
|
|
1548
|
-
{data: data},
|
|
1549
|
-
{resolveMsg: null, rejectMsg: 'onetomany查询失败'}
|
|
1550
|
-
)
|
|
1551
|
-
res.data.forEach(item => {
|
|
1552
|
-
if (item.f_material_name.substr(0,3) === '报警器'){
|
|
1553
|
-
var bjname = item.f_material_name.split("-")
|
|
1554
|
-
bjqststedata.sid = item.f_bjq_sid
|
|
1555
|
-
bjqststedata.f_process_id = item.f_process_id
|
|
1556
|
-
bjqststedata.bjqtype = bjname[1]
|
|
1557
|
-
//====================================
|
|
1558
|
-
bjqlag = true
|
|
1559
|
-
datatemp.bjqid = item.id
|
|
1560
|
-
datatemp.fprocessid = item.f_process_id
|
|
1561
|
-
datatemp.f_bjq_sid = item.f_bjq_sid
|
|
1562
|
-
datatemp.f_material_code = item.f_material_code
|
|
1563
|
-
datatemp.f_bjq_lng = item.f_bjq_lng
|
|
1564
|
-
datatemp.f_bjq_lat = item.f_bjq_lat
|
|
1565
|
-
datatemp.f_bjq_gaode_lng = item.f_bjq_gaode_lng
|
|
1566
|
-
datatemp.f_bjq_gaode_lat = item.f_bjq_gaode_lng
|
|
1567
|
-
datatemp.f_bjq_baidu_lng = item.f_bjq_baidu_lng
|
|
1568
|
-
datatemp.f_bjq_baidu_lat = item.f_bjq_baidu_lat
|
|
1569
|
-
numOne.push(item.f_bjq_sid)
|
|
1570
|
-
}
|
|
1571
|
-
})
|
|
1572
1518
|
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
// if (i.f_material_name.substr(0,3) === '报警器'){
|
|
1577
|
-
// var bjname = i.f_material_name.split("-")
|
|
1578
|
-
// bjqststedata.sid = i.f_bjq_sid
|
|
1579
|
-
// bjqststedata.f_process_id = i.f_process_id
|
|
1580
|
-
// bjqststedata.bjqtype = bjname[1]
|
|
1581
|
-
// //====================================
|
|
1582
|
-
// bjqlag = true
|
|
1583
|
-
// datatemp.bjqid = i.id
|
|
1584
|
-
// datatemp.fprocessid = i.f_process_id
|
|
1585
|
-
// datatemp.f_bjq_sid = i.f_bjq_sid
|
|
1586
|
-
// datatemp.f_material_code = i.f_material_code
|
|
1587
|
-
// numOne.push(i.f_bjq_sid)
|
|
1588
|
-
// }
|
|
1589
|
-
// })
|
|
1590
|
-
// })
|
|
1591
|
-
if (!bjqlag){
|
|
1592
|
-
this.$showMessage('请添加报警器物料信息!!!')
|
|
1593
|
-
return
|
|
1594
|
-
}
|
|
1595
|
-
if (numOne.length > 1){
|
|
1596
|
-
this.$showMessage("暂时支持单个报警器物料安装!!!")
|
|
1597
|
-
return
|
|
1598
|
-
}
|
|
1599
|
-
datatemp.sqvalue = this.show_data.areaData.sqvalue
|
|
1600
|
-
datatemp.f_bjq_baidu_lng = this.show_data.templatlng.baidutemplng
|
|
1601
|
-
datatemp.f_bjq_baidu_lat = this.show_data.templatlng.baidutemplat
|
|
1602
|
-
datatemp.f_bjq_gaode_lng = this.show_data.templatlng.gaodetemplng
|
|
1603
|
-
datatemp.f_bjq_gaode_lat = this.show_data.templatlng.gaodetemplat
|
|
1604
|
-
datatemp.f_bjq_lng = this.show_data.templatlng.baidutemplng
|
|
1605
|
-
datatemp.f_bjq_lat = this.show_data.templatlng.baidutemplat
|
|
1606
|
-
|
|
1607
|
-
bjqststedata.f_userinfo_code = this.show_data.f_userinfo_code
|
|
1608
|
-
|
|
1609
|
-
//判断是否推送 及推送的状态
|
|
1610
|
-
//查询是否存在, 以型号及厂家判断
|
|
1611
|
-
let bjqres = await this.$resetpost(
|
|
1612
|
-
`rs/logic/getbjqsyncinfo`,
|
|
1613
|
-
bjqststedata
|
|
1614
|
-
)
|
|
1615
|
-
if (bjqres.data.bjqstate != "成功"){
|
|
1616
|
-
//区域地址存入材料记录表
|
|
1617
|
-
let areares = await this.$resetpost(
|
|
1618
|
-
`rs/logic/saveArea`,
|
|
1619
|
-
{data: datatemp},
|
|
1620
|
-
{resolveMsg: null, rejectMsg: '区域地址保存失败'}
|
|
1621
|
-
)
|
|
1519
|
+
/* if ((this.show_data.defname === '工程决算' || this.show_data.defname === '工程审批') && this.show_data.button.button_name === '提交' && this.show_data.f_payment_ratio == "100%"){
|
|
1520
|
+
this.show_data.button.button_name = '跳过'
|
|
1521
|
+
}*/
|
|
1622
1522
|
|
|
1623
|
-
//完工之后推送数据到汉威
|
|
1624
|
-
let adddata = {
|
|
1625
|
-
f_bjq_sid : datatemp.f_bjq_sid,
|
|
1626
|
-
f_material_code : datatemp.f_material_code,
|
|
1627
|
-
f_bjq_address: this.show_data.areaData.sqvalue,
|
|
1628
|
-
f_user_name: this.show_data.f_user_name,
|
|
1629
|
-
f_address: this.show_data.f_address,
|
|
1630
|
-
f_user_phone: this.show_data.f_phone,
|
|
1631
|
-
f_userinfo_code: this.show_data.f_userinfo_code,
|
|
1632
|
-
installtime: this.show_data.f_construction_date,
|
|
1633
|
-
f_orgid : this.show_data.f_orgid,
|
|
1634
|
-
f_bjq_lng: datatemp.f_bjq_baidu_lng,
|
|
1635
|
-
f_bjq_lat: datatemp.f_bjq_baidu_lat
|
|
1636
|
-
}
|
|
1637
|
-
let res = await this.$resetpost(
|
|
1638
|
-
`ncc/rs/logic/bjqadduser`,
|
|
1639
|
-
// `rs/logic/bjqadduser`,
|
|
1640
|
-
adddata
|
|
1641
|
-
)
|
|
1642
|
-
if (res.data.code != 200){
|
|
1643
|
-
if (bjqres.data.bjqstate.length == 0){
|
|
1644
|
-
bjqststedata.bjqstate = "失败"
|
|
1645
|
-
let bjqres3 = await this.$resetpost(
|
|
1646
|
-
`rs/logic/addbjqsyncinfo`,
|
|
1647
|
-
bjqststedata
|
|
1648
|
-
)
|
|
1649
|
-
}
|
|
1650
|
-
this.$showMessage(res.data.msg)
|
|
1651
|
-
return
|
|
1652
|
-
}
|
|
1653
|
-
//更改记录表状态
|
|
1654
|
-
if (bjqres.data.bjqstate === "失败"){
|
|
1655
|
-
bjqststedata.bjqstate = "成功"
|
|
1656
|
-
let bjqres1 = await this.$resetpost(
|
|
1657
|
-
`rs/logic/updatebjqsyncinfo`,
|
|
1658
|
-
bjqststedata
|
|
1659
|
-
)
|
|
1660
|
-
}else{
|
|
1661
|
-
bjqststedata.bjqstate = "成功"
|
|
1662
|
-
let bjqres2 = await this.$resetpost(
|
|
1663
|
-
`rs/logic/addbjqsyncinfo`,
|
|
1664
|
-
bjqststedata
|
|
1665
|
-
)
|
|
1666
|
-
}
|
|
1667
|
-
}
|
|
1668
|
-
}
|
|
1669
|
-
if ((this.show_data.f_apply_type === '工商户报建' || this.show_data.f_apply_type === '团购报建')
|
|
1670
|
-
&& (this.show_data.defname === '报装申请') && this.show_data.button.button_name === '提交'){
|
|
1671
|
-
await this.contract_number()
|
|
1672
|
-
}
|
|
1673
|
-
// if(this.show_data.f_apply_type === '散户报建' && this.show_data.defname === '合同签订' && (this.show_data.button.button_name === '保存'||this.show_data.button.button_name === '提交')){
|
|
1674
|
-
// let dataz = {
|
|
1675
|
-
// condition: `u.id = ${this.show_data.id}`,
|
|
1676
|
-
// data: {
|
|
1677
|
-
// id: this.$login.f.id,
|
|
1678
|
-
// orgid: this.$login.f.orgid
|
|
1679
|
-
// }
|
|
1680
|
-
// }
|
|
1681
|
-
// let http = new HttpResetClass()
|
|
1682
|
-
// let restpz = await http.load(
|
|
1683
|
-
// 'POST',
|
|
1684
|
-
// `rs/sql/checkuser`,
|
|
1685
|
-
// {data: dataz},
|
|
1686
|
-
// {resolveMsg: null, rejectMsg: '报建数据查询失败!!!'}
|
|
1687
|
-
// )
|
|
1688
|
-
// this.show_data.actid=restpz.data[0].actid
|
|
1689
|
-
// }
|
|
1690
1523
|
let res = await this.$resetpost(
|
|
1691
1524
|
`rs/logic/ApplyProductService`,
|
|
1692
1525
|
{data: this.show_data},
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
<nobr>{{row.f_confirm_date}}</nobr>
|
|
97
97
|
</td>
|
|
98
98
|
<td style="text-align: center;">
|
|
99
|
-
<nobr v-if="row.f_charge_status !== '退款'&& row.f_charge_status !== '作废'">
|
|
99
|
+
<nobr v-if="row.f_charge_status !== '退款'&& row.f_charge_status !== '作废' && row.f_confirm_person==null">
|
|
100
100
|
<button
|
|
101
101
|
type="button"
|
|
102
102
|
name="button"
|
|
@@ -585,9 +585,15 @@ export default {
|
|
|
585
585
|
resolveMsg: null,
|
|
586
586
|
rejectMsg: '确认收款失败!!!'
|
|
587
587
|
})
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
588
|
+
if(res.data==200){
|
|
589
|
+
this.$showAlert('确认收款成功!!!', 'success', 3000)
|
|
590
|
+
//延时1s
|
|
591
|
+
setTimeout(() => {
|
|
592
|
+
this.showConfirm= false
|
|
593
|
+
}, 1000)
|
|
594
|
+
}
|
|
595
|
+
//重新查询
|
|
596
|
+
this.search()
|
|
591
597
|
},
|
|
592
598
|
// 打开作废收费
|
|
593
599
|
showInvalidModal(row) {
|
|
@@ -715,7 +721,7 @@ export default {
|
|
|
715
721
|
|
|
716
722
|
},
|
|
717
723
|
async showChargeModal() {
|
|
718
|
-
|
|
724
|
+
// this.getUserAddress()
|
|
719
725
|
|
|
720
726
|
if (this.selectdata.f_apply_type === '团购报建') {
|
|
721
727
|
this.charge.f_dev_info_id = this.selectdata.f_dev_id
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import Vue from 'vue'
|
|
2
|
-
|
|
3
|
-
let specialComp = {
|
|
4
|
-
'exploration-select': (resolve) => { require(['./pc/ExplorationSelect.vue'], resolve) },
|
|
5
|
-
'service-control': (resolve) => { require(['./pc/ServiceControl.vue'], resolve) },
|
|
6
|
-
'apply-charge-management': (resolve) => { require(['./pc/chargeManagement.vue'], resolve) },
|
|
7
|
-
'file-upload': (resolve) => { require(['./pc/FileUpload.vue'], resolve) },
|
|
8
|
-
'apply-upload': (resolve) => { require(['./pc/ApplyUpload.vue'], resolve) },
|
|
9
|
-
'installinfoselect': (resolve) => { require(['./pc/InstallInfoSelect.vue'], resolve) }
|
|
10
|
-
}
|
|
11
|
-
|
|
1
|
+
import Vue from 'vue'
|
|
2
|
+
|
|
3
|
+
let specialComp = {
|
|
4
|
+
'exploration-select': (resolve) => { require(['./pc/ExplorationSelect.vue'], resolve) },
|
|
5
|
+
'service-control': (resolve) => { require(['./pc/ServiceControl.vue'], resolve) },
|
|
6
|
+
'apply-charge-management': (resolve) => { require(['./pc/chargeManagement.vue'], resolve) },
|
|
7
|
+
'file-upload': (resolve) => { require(['./pc/FileUpload.vue'], resolve) },
|
|
8
|
+
'apply-upload': (resolve) => { require(['./pc/ApplyUpload.vue'], resolve) },
|
|
9
|
+
'installinfoselect': (resolve) => { require(['./pc/InstallInfoSelect.vue'], resolve) },
|
|
10
|
+
'installation-details': (resolve) => { require(['./pc/InstallationDetails.vue'], resolve) }
|
|
11
|
+
}
|
|
12
|
+
exports.specialComp = specialComp
|