apply-clients 3.3.110-204 → 3.3.110-207
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 -0
- package/src/applyAndroid.js +2 -0
- package/src/components/android/Process/AppServiceControl.vue +93 -1
- package/src/components/android/Process/Processes/AppAddMaterialScience.vue +331 -0
- package/src/components/product/OldApply/Handle/HandleApply.vue +17 -7
- package/src/components/product/OldApply/Monitor/MonitorApply.vue +11 -0
- package/src/components/product/OldApply/OldApply.vue +11 -0
- package/src/components/product/OldApply/OldApplyMessage.vue +9 -0
- package/src/components/product/Process/ExplorationSelect.vue +19 -0
- package/src/components/product/Process/Processes/addMaterialScience.vue +331 -0
- package/src/components/product/Process/Service/ServiceControl.vue +168 -2
- package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +99 -0
- package/src/components/product/Supervisory/SupervisoryList.vue +6 -0
- package/src/components/product/VueUtils/ApplyUpload.vue +1 -1
- package/src/main.js +1 -1
package/package.json
CHANGED
package/src/apply.js
CHANGED
|
@@ -64,6 +64,8 @@ export default function () {
|
|
|
64
64
|
Vue.component('select-apply', (resolve) => { require(['./components/product/Process/Processes/selectApply'], resolve) })
|
|
65
65
|
// 设备管理
|
|
66
66
|
Vue.component('apply-devices-management', (resolve) => { require(['./components/product/Process/Processes/devicesManagement'], resolve) })
|
|
67
|
+
// 添加多个材料合并
|
|
68
|
+
Vue.component('add-material-science', (resolve) => { require(['./components/product/Process/Processes/addMaterialScience'], resolve) })
|
|
67
69
|
Vue.component('test', (resolve) => { require(['./components/product/Test'], resolve) })
|
|
68
70
|
|
|
69
71
|
/** VueUtils **/
|
package/src/applyAndroid.js
CHANGED
|
@@ -22,6 +22,8 @@ export default function () {
|
|
|
22
22
|
Vue.component('app-service-view', (resolve) => { require(['./components/android/AppServiceView'], resolve) })
|
|
23
23
|
Vue.component('app-onetomany', (resolve) => { require(['./components/android/AppOnetomany'], resolve) })
|
|
24
24
|
|
|
25
|
+
Vue.component('app-add-material-science', (resolve) => { require(['./components/android/Process/Processes/AppAddMaterialScience'], resolve) })
|
|
26
|
+
|
|
25
27
|
Vue.component('app-installation-details', (resolve) => { require(['./components/android/Process/Processes/AppInstallationDetails'], resolve) })
|
|
26
28
|
Vue.component('app-apply-devices-management', (resolve) => { require(['./components/android/Process/Processes/AppDevicesManagement'], resolve) })
|
|
27
29
|
Vue.component('app-charge-management', (resolve) => { require(['./components/android/Process/Processes/AppChargeManagement'], resolve) })
|
|
@@ -192,7 +192,71 @@ export default {
|
|
|
192
192
|
this[this.show_data.button.after]()
|
|
193
193
|
}
|
|
194
194
|
// 返回上层
|
|
195
|
-
this
|
|
195
|
+
if(this.show_data.f_apply_type === '散户报建' && this.show_data.defname === '报装申请' && this.show_data.button.button_name === '合同'){
|
|
196
|
+
let data = {
|
|
197
|
+
tablename: 't_apply',
|
|
198
|
+
condition: `f_process_id='${this.show_data.f_process_id}'`
|
|
199
|
+
}
|
|
200
|
+
let http = new HttpResetClass()
|
|
201
|
+
let restp = await http.load(
|
|
202
|
+
'POST',
|
|
203
|
+
`${this.$androidUtil.getProxyUrl()}/rs/sql/singleTable`,
|
|
204
|
+
{data: data},
|
|
205
|
+
{resolveMsg: null, rejectMsg: '报建数据查询失败!!!'}
|
|
206
|
+
)
|
|
207
|
+
restp.data[0].processname = '散户报建流程'
|
|
208
|
+
restp.data[0].defname = '合同签订'
|
|
209
|
+
this.$dispatch('gotoson',restp.data[0])
|
|
210
|
+
this.$goto('app-service-control', {selectdata: restp.data[0]}, 'self', restp.data[0])
|
|
211
|
+
// this.$dispatch('apply',restp.data[0])
|
|
212
|
+
|
|
213
|
+
} else if(this.show_data.f_apply_type === '散户报建' && this.show_data.defname === '合同签订' && this.show_data.button.button_name === '提交'){
|
|
214
|
+
let data2 = {
|
|
215
|
+
condition: `u.id = ${this.show_data.id}`,
|
|
216
|
+
data: {
|
|
217
|
+
id: Vue.user.id,
|
|
218
|
+
orgid: Vue.user.orgid
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
let http = new HttpResetClass()
|
|
222
|
+
let restp1 = await http.load(
|
|
223
|
+
'POST',
|
|
224
|
+
`${this.$androidUtil.getProxyUrl()}/rs/sql/checkuser`,
|
|
225
|
+
{data: data2},
|
|
226
|
+
{resolveMsg: null, rejectMsg: '报建数据查询失败!!!'}
|
|
227
|
+
)
|
|
228
|
+
console.log('打印查询的内容',restp1)
|
|
229
|
+
restp1.data[0].processname = '散户报建流程'
|
|
230
|
+
restp1.data[0].defname = '报装缴费'
|
|
231
|
+
this.$dispatch('gotoson',restp1.data[0])
|
|
232
|
+
this.$goto('app-service-control', {selectdata: restp1.data[0]}, 'self',restp1.data[0])
|
|
233
|
+
}else if(this.show_data.f_apply_type === '散户报建' && this.show_data.defname === '报装缴费' && this.show_data.button.button_name === '提交'){
|
|
234
|
+
let data3 = {
|
|
235
|
+
condition: `u.id = ${this.show_data.id}`,
|
|
236
|
+
data: {
|
|
237
|
+
id: Vue.user.id,
|
|
238
|
+
orgid: Vue.user.orgid
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
let http = new HttpResetClass()
|
|
242
|
+
let restp2 = await http.load(
|
|
243
|
+
'POST',
|
|
244
|
+
`${this.$androidUtil.getProxyUrl()}/rs/sql/checkuser`,
|
|
245
|
+
{data: data3},
|
|
246
|
+
{resolveMsg: null, rejectMsg: '报建数据查询失败!!!'}
|
|
247
|
+
)
|
|
248
|
+
console.log('打印查询的内容',restp2)
|
|
249
|
+
restp2.data[0].processname = '散户报建流程'
|
|
250
|
+
restp2.data[0].defname = '工程派工'
|
|
251
|
+
this.$dispatch('gotoson',restp2.data[0])
|
|
252
|
+
this.$goto('app-service-control', {selectdata: restp2.data[0]}, 'self',restp2.data[0])
|
|
253
|
+
}
|
|
254
|
+
else{
|
|
255
|
+
// console.log('-----')
|
|
256
|
+
this.$dispatch('confirm')
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
|
|
196
260
|
},
|
|
197
261
|
async refurbish() {
|
|
198
262
|
let data = {
|
|
@@ -493,6 +557,34 @@ export default {
|
|
|
493
557
|
}
|
|
494
558
|
}
|
|
495
559
|
},
|
|
560
|
+
hideLabels(...labels) {
|
|
561
|
+
for (const item of this.show_data.fields) {
|
|
562
|
+
if (labels.includes(item.label)) {
|
|
563
|
+
item.hidden = true
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
},
|
|
567
|
+
requiredLabels(...labels) {
|
|
568
|
+
for (const item of this.show_data.fields) {
|
|
569
|
+
if (labels.includes(item.label)) {
|
|
570
|
+
item.required = true
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
},
|
|
574
|
+
electiveLabels(...labels) {
|
|
575
|
+
for (const item of this.show_data.fields) {
|
|
576
|
+
if (labels.includes(item.label)) {
|
|
577
|
+
item.required = false
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
},
|
|
581
|
+
showLabels(...labels) {
|
|
582
|
+
for (const item of this.show_data.fields) {
|
|
583
|
+
if (labels.includes(item.label)) {
|
|
584
|
+
item.hidden = false
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
},
|
|
496
588
|
setLabelValue(label, value) {
|
|
497
589
|
for (const item of this.show_data.fields) {
|
|
498
590
|
if (item.label === label) {
|
|
@@ -0,0 +1,331 @@
|
|
|
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">材料标识</th>
|
|
13
|
+
<th class="textNoLineBreak">
|
|
14
|
+
<button class="button_new button_spacing" type="button" @click="$parent.$parent.openMaterialModal()">添加</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_bjq_sid}}</nobr>
|
|
37
|
+
</td>
|
|
38
|
+
<td style="text-align: center;">
|
|
39
|
+
<nobr>{{row.f_material_code}}</nobr>
|
|
40
|
+
</td>
|
|
41
|
+
<td style="text-align: center;">
|
|
42
|
+
<button type="button" class="button_search button_spacing" @click="$parent.$parent.updateMaterial($index,row)">修改</button>
|
|
43
|
+
<button type="button" class="button_delete button_spacing" @click="$parent.$parent.deleteMaterial(row)">删除</button>
|
|
44
|
+
</td>
|
|
45
|
+
</tr>
|
|
46
|
+
</template>
|
|
47
|
+
</data-grid>
|
|
48
|
+
<modal v-if="showMaterialModal" :show.sync="showMaterialModal" v-ref:modal :large="true"
|
|
49
|
+
:backdrop="false" :title="title">
|
|
50
|
+
<header slot="modal-header" class="modal-header">
|
|
51
|
+
<button type="button" class="close" @click="closeMaterials"><span>×</span></button>
|
|
52
|
+
<h4 class="modal-title">{{title}}</h4>
|
|
53
|
+
</header>
|
|
54
|
+
<article slot="modal-body" class="modal-body clearfix">
|
|
55
|
+
<div v-for="(i,item) in materials" class="form-group col-sm-12 panel panel-info">
|
|
56
|
+
<div class="panel-heading head col-sm-12" style="background-color: #e8f4ff;margin-bottom: 10px">
|
|
57
|
+
<div class="col-sm-6 text-left">材料{{$index+1}}信息</div>
|
|
58
|
+
<div class="col-sm-6 text-right"><button
|
|
59
|
+
class="button_delete button_spacing"
|
|
60
|
+
@click.prevent="deleteDevicesinfo(i)"
|
|
61
|
+
v-if="title === '新增'"
|
|
62
|
+
>删除</button></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
|
+
<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"></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
|
+
v-model="item.f_material_number"
|
|
113
|
+
:value="item.f_material_number"
|
|
114
|
+
/>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
<div class="form-group col-sm-6">
|
|
118
|
+
<label class="col-sm-4 control-label">材料编号:</label>
|
|
119
|
+
<div class="col-sm-8">
|
|
120
|
+
<input class="form-control input_view" style="" type="text"
|
|
121
|
+
placeholder="材料编号"
|
|
122
|
+
v-model="item.f_bjq_sid"
|
|
123
|
+
:value="item.f_bjq_sid"
|
|
124
|
+
/>
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
<div class="form-group col-sm-6">
|
|
128
|
+
<label class="col-sm-4 control-label">材料标识:</label>
|
|
129
|
+
<div class="col-sm-8">
|
|
130
|
+
<input class="form-control input_view" style=""
|
|
131
|
+
placeholder="材料标识"
|
|
132
|
+
v-model="item.f_material_code"
|
|
133
|
+
:value.sync="item.f_material_code"
|
|
134
|
+
/>
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
|
|
138
|
+
</div>
|
|
139
|
+
|
|
140
|
+
</article>
|
|
141
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
142
|
+
<template v-if="mark !== 1">
|
|
143
|
+
<button type="button" class="btn btn-primary" v-if="title==='新增'" @click="pushMaterial()">添加材料</button>
|
|
144
|
+
<button type="button" class="btn btn-primary" v-if="title==='新增'" @click="addMaterial()" :disabled="!$v.valid">确认添加</button>
|
|
145
|
+
<button type="button" class="btn btn-primary" v-if="title==='修改'" @click="updateConfirm()" :disabled="!$v.valid">确认修改</button>
|
|
146
|
+
</template>
|
|
147
|
+
</footer>
|
|
148
|
+
</modal>
|
|
149
|
+
</div>
|
|
150
|
+
</template>
|
|
151
|
+
|
|
152
|
+
<script>
|
|
153
|
+
import {HttpResetClass} from 'vue-client'
|
|
154
|
+
export default {
|
|
155
|
+
name: 'addMaterialScience',
|
|
156
|
+
props: {
|
|
157
|
+
selectdata: {
|
|
158
|
+
type: Object
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
data () {
|
|
162
|
+
return {
|
|
163
|
+
onetomany: {
|
|
164
|
+
rows: []
|
|
165
|
+
},
|
|
166
|
+
title:'新增',
|
|
167
|
+
showMaterialModal:false,
|
|
168
|
+
materials:[
|
|
169
|
+
{
|
|
170
|
+
material:'',
|
|
171
|
+
f_material_name:'',
|
|
172
|
+
f_material_style:'',
|
|
173
|
+
f_material_unit:'',
|
|
174
|
+
f_material_number:'',
|
|
175
|
+
f_bjq_sid:'',
|
|
176
|
+
f_material_code:''
|
|
177
|
+
}
|
|
178
|
+
],
|
|
179
|
+
meterialOptions:[],
|
|
180
|
+
row:{}
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
ready(){
|
|
184
|
+
this.getOnetoManyData()
|
|
185
|
+
},
|
|
186
|
+
methods: {
|
|
187
|
+
async getOnetoManyData () {
|
|
188
|
+
let data = {
|
|
189
|
+
tablename: `t_material_apply`,
|
|
190
|
+
condition: `f_process_id='${this.selectdata.f_process_id}'`
|
|
191
|
+
}
|
|
192
|
+
let res = await this.$resetpost(
|
|
193
|
+
'rs/sql/singleTable',
|
|
194
|
+
{data: data},
|
|
195
|
+
{resolveMsg: null, rejectMsg: 'onetomany查询失败'}
|
|
196
|
+
)
|
|
197
|
+
this.onetomany.rows = res.data
|
|
198
|
+
},
|
|
199
|
+
async openMaterialModal () {
|
|
200
|
+
this.getMateralNames()
|
|
201
|
+
this.title = '新增'
|
|
202
|
+
this.materials = [
|
|
203
|
+
{
|
|
204
|
+
material:'',
|
|
205
|
+
f_material_name:'',
|
|
206
|
+
f_material_style:'',
|
|
207
|
+
f_material_unit:'',
|
|
208
|
+
f_material_number:'',
|
|
209
|
+
f_bjq_sid:'',
|
|
210
|
+
f_material_code:''
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
this.showMaterialModal = true
|
|
214
|
+
},
|
|
215
|
+
deleteDevicesinfo (index) {
|
|
216
|
+
this.materials.splice(index, 1)
|
|
217
|
+
},
|
|
218
|
+
pushMaterial () {
|
|
219
|
+
this.materials.push({
|
|
220
|
+
material:'',
|
|
221
|
+
f_material_name:'',
|
|
222
|
+
f_material_style:'',
|
|
223
|
+
f_material_unit:'',
|
|
224
|
+
f_material_number:'',
|
|
225
|
+
f_bjq_sid:'',
|
|
226
|
+
f_material_code:''
|
|
227
|
+
})
|
|
228
|
+
},
|
|
229
|
+
// 获取模态框材料
|
|
230
|
+
async getMateralNames () {
|
|
231
|
+
let data = {
|
|
232
|
+
condition: `1=1`
|
|
233
|
+
}
|
|
234
|
+
let http = new HttpResetClass()
|
|
235
|
+
let res = await http.load(
|
|
236
|
+
'POST',
|
|
237
|
+
`rs/sql/getStockMaterial`,
|
|
238
|
+
{data: data},
|
|
239
|
+
{resolveMsg: null, rejectMsg: '材料查询失败!!!'}
|
|
240
|
+
)
|
|
241
|
+
|
|
242
|
+
this.meterialOptions = res.data.map(item => {
|
|
243
|
+
return {
|
|
244
|
+
'label': `${item.f_material_name}--${item.f_material_style}--${item.f_material_unit}--${item.f_material_price}`,
|
|
245
|
+
'value': item
|
|
246
|
+
}
|
|
247
|
+
})
|
|
248
|
+
},
|
|
249
|
+
modifyOtherValue (index){
|
|
250
|
+
console.log("进来了",index)
|
|
251
|
+
console.log("dddd",this.materials[index].material)
|
|
252
|
+
let material = this.materials[index].material
|
|
253
|
+
this.materials[index].f_material_name = material.f_material_name
|
|
254
|
+
this.materials[index].f_material_style = material.f_material_style
|
|
255
|
+
this.materials[index].f_material_unit = material.f_material_unit
|
|
256
|
+
this.materials[index].f_material_number = material.f_material_number
|
|
257
|
+
},
|
|
258
|
+
// 新增材料
|
|
259
|
+
async addMaterial () {
|
|
260
|
+
this.title = '新增'
|
|
261
|
+
let data = {
|
|
262
|
+
f_process_id : this.selectdata.f_process_id,
|
|
263
|
+
f_operator_id: this.$login.f.id,
|
|
264
|
+
f_operator: this.$login.f.name,
|
|
265
|
+
f_operation_date: new Date().Format('yyyy-MM-dd HH:mm:ss'),
|
|
266
|
+
f_orgid: this.$login.f.f_orgids,
|
|
267
|
+
f_orgname: this.$login.f.f_fengongsi,
|
|
268
|
+
materials:this.materials
|
|
269
|
+
}
|
|
270
|
+
let res = await this.$resetpost(
|
|
271
|
+
`rs/logic/saveMaterials`,
|
|
272
|
+
data
|
|
273
|
+
)
|
|
274
|
+
this.closeMaterials()
|
|
275
|
+
},
|
|
276
|
+
deleteMaterial (row) {
|
|
277
|
+
this.$showMessage('您确定要删除这条记录吗?',['confirm']).then(res =>{
|
|
278
|
+
if (res === 'confirm'){
|
|
279
|
+
let http = new HttpResetClass()
|
|
280
|
+
|
|
281
|
+
let res = http.load(
|
|
282
|
+
'DELETE',
|
|
283
|
+
`rs/entity/t_material_apply/${row.id}`,
|
|
284
|
+
null,
|
|
285
|
+
{resolveMsg: null, rejectMsg: '删除失败!!!'}
|
|
286
|
+
)
|
|
287
|
+
this.closeMaterials()
|
|
288
|
+
}
|
|
289
|
+
})
|
|
290
|
+
},
|
|
291
|
+
async updateMaterial (index,row) {
|
|
292
|
+
this.title = '修改'
|
|
293
|
+
this.row = row
|
|
294
|
+
this.getMateralNames()
|
|
295
|
+
this.materials = [
|
|
296
|
+
{
|
|
297
|
+
material:'',
|
|
298
|
+
f_material_name:row.f_material_name,
|
|
299
|
+
f_material_style:row.f_material_style,
|
|
300
|
+
f_material_unit:row.f_material_unit,
|
|
301
|
+
f_material_number:row.f_material_number,
|
|
302
|
+
f_material_code:row.f_material_code
|
|
303
|
+
}
|
|
304
|
+
]
|
|
305
|
+
this.showMaterialModal = true
|
|
306
|
+
},
|
|
307
|
+
async updateConfirm () {
|
|
308
|
+
let data = this.row
|
|
309
|
+
data.f_material_name = this.materials[0].f_material_name
|
|
310
|
+
data.f_material_style = this.materials[0].f_material_style
|
|
311
|
+
data.f_material_unit = this.materials[0].f_material_unit
|
|
312
|
+
data.f_material_number = this.materials[0].f_material_number
|
|
313
|
+
data.f_material_code = this.materials[0].f_material_code
|
|
314
|
+
let res = await this.$resetpost(
|
|
315
|
+
`rs/entity/t_material_apply`,
|
|
316
|
+
data
|
|
317
|
+
)
|
|
318
|
+
this.closeMaterials()
|
|
319
|
+
},
|
|
320
|
+
closeMaterials () {
|
|
321
|
+
this.getOnetoManyData()
|
|
322
|
+
this.showMaterialModal = false
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
</script>
|
|
328
|
+
|
|
329
|
+
<style scoped>
|
|
330
|
+
|
|
331
|
+
</style>
|
|
@@ -154,6 +154,9 @@
|
|
|
154
154
|
<th style="white-space: nowrap;">防盗卡号</th>
|
|
155
155
|
<th style="white-space: nowrap;">报建日期</th>
|
|
156
156
|
<th style="white-space: nowrap;">客户编号</th>
|
|
157
|
+
|
|
158
|
+
<th style="white-space: nowrap;">修改日期</th>
|
|
159
|
+
<th style="white-space: nowrap;">修改人</th>
|
|
157
160
|
<th style="white-space: nowrap;">操作</th>
|
|
158
161
|
</tr>
|
|
159
162
|
</template>
|
|
@@ -204,6 +207,13 @@
|
|
|
204
207
|
<td style="text-align: center;">
|
|
205
208
|
<nobr><font>{{row.f_userinfo_code}}</font></nobr>
|
|
206
209
|
</td>
|
|
210
|
+
|
|
211
|
+
<td style="text-align: center;">
|
|
212
|
+
<nobr><font>{{row.f_reality_sub_date}}</font></nobr>
|
|
213
|
+
</td>
|
|
214
|
+
<td style="text-align: center;">
|
|
215
|
+
<nobr><font>{{row.f_reality_sub_user}}</font></nobr>
|
|
216
|
+
</td>
|
|
207
217
|
<td style="text-align: center;">
|
|
208
218
|
<dropdown>
|
|
209
219
|
<button type="button" data-toggle="dropdown" style="border: 0px;background: none;">
|
|
@@ -211,9 +221,9 @@
|
|
|
211
221
|
</button>
|
|
212
222
|
<ul slot="dropdown-menu" class="dropdown-menu dropdown-menu-right">
|
|
213
223
|
<li>
|
|
214
|
-
<a href="#" v-if="this.$login.f.rolesnames.indexOf('工程部派工') !== -1 || this.$login.f.rolesnames.indexOf('运营部派工') !== -1 || (this.$login.f.rolesnames.indexOf('营业厅报装') !== -1 && row.f_sub_state === '待点火')" @click="$parent.$parent.$parent.click(row)">{{row.f_sub_state}}</a>
|
|
215
|
-
<a href="#" v-if="this.$login.f.rolesnames.indexOf('营业厅报装') !== -1 || this.$login.f.rolesnames.indexOf('运营部派工') !== -1" @click="$parent.$parent.$parent.stopApply(row)">异常终止</a>
|
|
216
|
-
<a href="#" v-if="this.$login.f.rolesnames.indexOf('营业厅报装') !== -1 || this.$login.f.rolesnames.indexOf('运营部派工') !== -1" @click="$parent.$parent.$parent.reviseApply(row)">修改真实流程状态</a>
|
|
224
|
+
<a href="#" v-if="row.f_sub_state !== '完工' && (this.$login.f.rolesnames.indexOf('工程部派工') !== -1 || this.$login.f.rolesnames.indexOf('运营部派工') !== -1 || (this.$login.f.rolesnames.indexOf('营业厅报装') !== -1 && row.f_sub_state === '待点火'))" @click="$parent.$parent.$parent.click(row)">{{row.f_sub_state}}</a>
|
|
225
|
+
<a href="#" v-if="row.f_sub_state !== '完工' && (this.$login.f.rolesnames.indexOf('营业厅报装') !== -1 || this.$login.f.rolesnames.indexOf('运营部派工') !== -1)" @click="$parent.$parent.$parent.stopApply(row)">异常终止</a>
|
|
226
|
+
<a href="#" v-if="row.f_sub_state === '完工' && (this.$login.f.rolesnames.indexOf('营业厅报装') !== -1 || this.$login.f.rolesnames.indexOf('运营部派工') !== -1)" @click="$parent.$parent.$parent.reviseApply(row)">修改真实流程状态</a>
|
|
217
227
|
</li>
|
|
218
228
|
</ul>
|
|
219
229
|
</dropdown>
|
|
@@ -279,13 +289,13 @@ export default {
|
|
|
279
289
|
args.condition = args.condition + ` and f_orgid = '${this.curorgid[0]}'`
|
|
280
290
|
|
|
281
291
|
if (this.$login.f.rolesnames.indexOf('工程部派工') !== -1 && this.$login.f.rolesnames.indexOf('运营部派工') !== -1) {
|
|
282
|
-
args.condition = args.condition + ` and (f_sub_state = '待安装' or f_sub_state = '待点火')`
|
|
292
|
+
args.condition = args.condition + ` and (f_sub_state = '待安装' or f_sub_state = '待点火' or f_sub_state = '完工')`
|
|
283
293
|
} else if (this.$login.f.rolesnames.indexOf('工程部派工') !== -1) {
|
|
284
|
-
args.condition = args.condition + ` and f_sub_state = '待安装'`
|
|
294
|
+
args.condition = args.condition + ` and (f_sub_state = '待安装' or f_sub_state = '完工')`
|
|
285
295
|
} else if (this.$login.f.rolesnames.indexOf('运营部派工') !== -1) {
|
|
286
|
-
args.condition = args.condition + ` and f_sub_state = '待点火'`
|
|
296
|
+
args.condition = args.condition + ` and (f_sub_state = '待点火' or f_sub_state = '完工')`
|
|
287
297
|
} else {
|
|
288
|
-
args.condition = args.condition + ` and (f_sub_state = '待安装' or f_sub_state = '待点火')`
|
|
298
|
+
args.condition = args.condition + ` and (f_sub_state = '待安装' or f_sub_state = '待点火' or f_sub_state = '完工')`
|
|
289
299
|
}
|
|
290
300
|
|
|
291
301
|
this.model.search(args.condition, args.model)
|
|
@@ -171,6 +171,9 @@
|
|
|
171
171
|
<th style="white-space: nowrap;">防盗卡号</th>
|
|
172
172
|
<th style="white-space: nowrap;">报建日期</th>
|
|
173
173
|
<th style="white-space: nowrap;">客户编号</th>
|
|
174
|
+
|
|
175
|
+
<th style="white-space: nowrap;">修改日期</th>
|
|
176
|
+
<th style="white-space: nowrap;">修改人</th>
|
|
174
177
|
</tr>
|
|
175
178
|
</template>
|
|
176
179
|
<template partial='body'>
|
|
@@ -220,6 +223,14 @@
|
|
|
220
223
|
<td @click="$parent.$parent.$parent.click(row)" style="text-align: center;">
|
|
221
224
|
<nobr><font>{{row.f_userinfo_code}}</font></nobr>
|
|
222
225
|
</td>
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
<td style="text-align: center;">
|
|
229
|
+
<nobr><font>{{row.f_reality_sub_date}}</font></nobr>
|
|
230
|
+
</td>
|
|
231
|
+
<td style="text-align: center;">
|
|
232
|
+
<nobr><font>{{row.f_reality_sub_user}}</font></nobr>
|
|
233
|
+
</td>
|
|
223
234
|
</tr>
|
|
224
235
|
</template>
|
|
225
236
|
</data-grid>
|
|
@@ -80,6 +80,17 @@
|
|
|
80
80
|
close-on-select ></v-select>
|
|
81
81
|
</div>
|
|
82
82
|
</div>
|
|
83
|
+
<div class="col-sm-12 form-group" v-if="apply.f_reality_sub_state === '其他'">
|
|
84
|
+
<label class="control-label-justify control-label col-sm-2" style="line-height: 35px">备注</label>
|
|
85
|
+
<div class="col-sm-10">
|
|
86
|
+
<textarea
|
|
87
|
+
class="form-control input_view"
|
|
88
|
+
style="width: 100%;height: 100%" rows="2"
|
|
89
|
+
v-model="apply.f_reality_sub_remark"
|
|
90
|
+
:value="apply.f_reality_sub_remark"
|
|
91
|
+
></textarea>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
83
94
|
</article>
|
|
84
95
|
<footer slot="modal-footer" class="modal-footer">
|
|
85
96
|
<button :class="apply.f_reality_sub_state ? 'btn btn-primary' : 'btn btn-default'"
|
|
@@ -285,6 +285,15 @@
|
|
|
285
285
|
:value="selectdata.f_price_name"/>
|
|
286
286
|
</div>
|
|
287
287
|
</div>
|
|
288
|
+
<div class="col-sm-12 form-group">
|
|
289
|
+
<label class="control-label-justify control-label col-sm-6">真实流程状态备注:</label>
|
|
290
|
+
<div class="col-sm-10">
|
|
291
|
+
<input class="form-control input_view" type="input"
|
|
292
|
+
readonly
|
|
293
|
+
v-model="selectdata.f_reality_sub_remark"
|
|
294
|
+
:value="selectdata.f_reality_sub_remark"/>
|
|
295
|
+
</div>
|
|
296
|
+
</div>
|
|
288
297
|
</template>
|
|
289
298
|
<template v-if="selectdata.f_sub_state === '终止'">
|
|
290
299
|
<div class="col-sm-4 form-group">
|
|
@@ -56,6 +56,12 @@
|
|
|
56
56
|
v-on:keyup.enter="$parent.$parent.search()"
|
|
57
57
|
condition="u.f_apply_num = '{}'">
|
|
58
58
|
</div>
|
|
59
|
+
<div class="form-group col-sm-3">
|
|
60
|
+
<label class="font_normal_body">合同编号:</label>
|
|
61
|
+
<input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_money"
|
|
62
|
+
v-on:keyup.enter="$parent.$parent.search()"
|
|
63
|
+
condition="u.f_contract_money like '%{}%'">
|
|
64
|
+
</div>
|
|
59
65
|
<div class="form-group col-sm-3">
|
|
60
66
|
<label class="font_normal_body">联系电话:</label>
|
|
61
67
|
<input type="text" style="width:60%" class="input_search" placeholder='联系电话' v-model="model.f_phone"
|
|
@@ -145,6 +151,18 @@
|
|
|
145
151
|
:value-single="true"
|
|
146
152
|
close-on-select ></v-select>
|
|
147
153
|
</div>
|
|
154
|
+
<div class="form-group col-sm-3">
|
|
155
|
+
<label class="font_normal_body">是否对账:</label>
|
|
156
|
+
<v-select
|
|
157
|
+
v-model="model.f_no_reconciliation"
|
|
158
|
+
placeholder='是否对账'
|
|
159
|
+
condition="f_no_reconciliation = '{}'"
|
|
160
|
+
:value.sync="model.f_no_reconciliation"
|
|
161
|
+
:options='$parent.$parent.reconciliation'
|
|
162
|
+
class="select select_list"
|
|
163
|
+
:value-single="true"
|
|
164
|
+
close-on-select ></v-select>
|
|
165
|
+
</div>
|
|
148
166
|
<div class="form-group col-sm-3">
|
|
149
167
|
<label class="font_normal_body">节点发起人:</label>
|
|
150
168
|
<input type="text" style="width:60%" class="input_search" v-model="model.act_sender"
|
|
@@ -282,6 +300,7 @@ import {HttpResetClass, PagedList} from 'vue-client'
|
|
|
282
300
|
showModal: false, // 控制发起类型选择
|
|
283
301
|
applyType: '', // 报建类型
|
|
284
302
|
curorgid: [this.$login.f.orgid],
|
|
303
|
+
reconciliation: [{label: '全部', value: ''}, ...this.$appdata.getParam('是否对账')], // 是否合账
|
|
285
304
|
applytype: [{label: '全部', value: ''}, ...this.$appdata.getParam('报建类型')],
|
|
286
305
|
defnames: [{label: '全部', value: ''}], // 流程节点
|
|
287
306
|
applyNatures: [{label: '全部', value: ''}], // 报建性质
|
|
@@ -0,0 +1,331 @@
|
|
|
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">材料标识</th>
|
|
13
|
+
<th class="textNoLineBreak">
|
|
14
|
+
<button class="button_new button_spacing" type="button" @click="$parent.$parent.openMaterialModal()">添加</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_bjq_sid}}</nobr>
|
|
37
|
+
</td>
|
|
38
|
+
<td style="text-align: center;">
|
|
39
|
+
<nobr>{{row.f_material_code}}</nobr>
|
|
40
|
+
</td>
|
|
41
|
+
<td style="text-align: center;">
|
|
42
|
+
<button type="button" class="button_search button_spacing" @click="$parent.$parent.updateMaterial($index,row)">修改</button>
|
|
43
|
+
<button type="button" class="button_delete button_spacing" @click="$parent.$parent.deleteMaterial(row)">删除</button>
|
|
44
|
+
</td>
|
|
45
|
+
</tr>
|
|
46
|
+
</template>
|
|
47
|
+
</data-grid>
|
|
48
|
+
<modal v-if="showMaterialModal" :show.sync="showMaterialModal" v-ref:modal :large="true"
|
|
49
|
+
:backdrop="false" :title="title">
|
|
50
|
+
<header slot="modal-header" class="modal-header">
|
|
51
|
+
<button type="button" class="close" @click="closeMaterials"><span>×</span></button>
|
|
52
|
+
<h4 class="modal-title">{{title}}</h4>
|
|
53
|
+
</header>
|
|
54
|
+
<article slot="modal-body" class="modal-body clearfix">
|
|
55
|
+
<div v-for="(i,item) in materials" class="form-group col-sm-12 panel panel-info">
|
|
56
|
+
<div class="panel-heading head col-sm-12" style="background-color: #e8f4ff;margin-bottom: 10px">
|
|
57
|
+
<div class="col-sm-6 text-left">材料{{$index+1}}信息</div>
|
|
58
|
+
<div class="col-sm-6 text-right"><button
|
|
59
|
+
class="button_delete button_spacing"
|
|
60
|
+
@click.prevent="deleteDevicesinfo(i)"
|
|
61
|
+
v-if="title === '新增'"
|
|
62
|
+
>删除</button></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
|
+
<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"></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
|
+
v-model="item.f_material_number"
|
|
113
|
+
:value="item.f_material_number"
|
|
114
|
+
/>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
<div class="form-group col-sm-6">
|
|
118
|
+
<label class="col-sm-4 control-label">材料编号:</label>
|
|
119
|
+
<div class="col-sm-8">
|
|
120
|
+
<input class="form-control input_view" style="" type="text"
|
|
121
|
+
placeholder="材料编号"
|
|
122
|
+
v-model="item.f_bjq_sid"
|
|
123
|
+
:value="item.f_bjq_sid"
|
|
124
|
+
/>
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
<div class="form-group col-sm-6">
|
|
128
|
+
<label class="col-sm-4 control-label">材料标识:</label>
|
|
129
|
+
<div class="col-sm-8">
|
|
130
|
+
<input class="form-control input_view" style=""
|
|
131
|
+
placeholder="材料标识"
|
|
132
|
+
v-model="item.f_material_code"
|
|
133
|
+
:value.sync="item.f_material_code"
|
|
134
|
+
/>
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
|
|
138
|
+
</div>
|
|
139
|
+
|
|
140
|
+
</article>
|
|
141
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
142
|
+
<template v-if="mark !== 1">
|
|
143
|
+
<button type="button" class="btn btn-primary" v-if="title==='新增'" @click="pushMaterial()">添加材料</button>
|
|
144
|
+
<button type="button" class="btn btn-primary" v-if="title==='新增'" @click="addMaterial()" :disabled="!$v.valid">确认添加</button>
|
|
145
|
+
<button type="button" class="btn btn-primary" v-if="title==='修改'" @click="updateConfirm()" :disabled="!$v.valid">确认修改</button>
|
|
146
|
+
</template>
|
|
147
|
+
</footer>
|
|
148
|
+
</modal>
|
|
149
|
+
</div>
|
|
150
|
+
</template>
|
|
151
|
+
|
|
152
|
+
<script>
|
|
153
|
+
import {HttpResetClass} from 'vue-client'
|
|
154
|
+
export default {
|
|
155
|
+
name: 'addMaterialScience',
|
|
156
|
+
props: {
|
|
157
|
+
selectdata: {
|
|
158
|
+
type: Object
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
data () {
|
|
162
|
+
return {
|
|
163
|
+
onetomany: {
|
|
164
|
+
rows: []
|
|
165
|
+
},
|
|
166
|
+
title:'新增',
|
|
167
|
+
showMaterialModal:false,
|
|
168
|
+
materials:[
|
|
169
|
+
{
|
|
170
|
+
material:'',
|
|
171
|
+
f_material_name:'',
|
|
172
|
+
f_material_style:'',
|
|
173
|
+
f_material_unit:'',
|
|
174
|
+
f_material_number:'',
|
|
175
|
+
f_bjq_sid:'',
|
|
176
|
+
f_material_code:''
|
|
177
|
+
}
|
|
178
|
+
],
|
|
179
|
+
meterialOptions:[],
|
|
180
|
+
row:{}
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
ready(){
|
|
184
|
+
this.getOnetoManyData()
|
|
185
|
+
},
|
|
186
|
+
methods: {
|
|
187
|
+
async getOnetoManyData () {
|
|
188
|
+
let data = {
|
|
189
|
+
tablename: `t_material_apply`,
|
|
190
|
+
condition: `f_process_id='${this.selectdata.f_process_id}'`
|
|
191
|
+
}
|
|
192
|
+
let res = await this.$resetpost(
|
|
193
|
+
'rs/sql/singleTable',
|
|
194
|
+
{data: data},
|
|
195
|
+
{resolveMsg: null, rejectMsg: 'onetomany查询失败'}
|
|
196
|
+
)
|
|
197
|
+
this.onetomany.rows = res.data
|
|
198
|
+
},
|
|
199
|
+
async openMaterialModal () {
|
|
200
|
+
this.getMateralNames()
|
|
201
|
+
this.title = '新增'
|
|
202
|
+
this.materials = [
|
|
203
|
+
{
|
|
204
|
+
material:'',
|
|
205
|
+
f_material_name:'',
|
|
206
|
+
f_material_style:'',
|
|
207
|
+
f_material_unit:'',
|
|
208
|
+
f_material_number:'',
|
|
209
|
+
f_bjq_sid:'',
|
|
210
|
+
f_material_code:''
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
this.showMaterialModal = true
|
|
214
|
+
},
|
|
215
|
+
deleteDevicesinfo (index) {
|
|
216
|
+
this.materials.splice(index, 1)
|
|
217
|
+
},
|
|
218
|
+
pushMaterial () {
|
|
219
|
+
this.materials.push({
|
|
220
|
+
material:'',
|
|
221
|
+
f_material_name:'',
|
|
222
|
+
f_material_style:'',
|
|
223
|
+
f_material_unit:'',
|
|
224
|
+
f_material_number:'',
|
|
225
|
+
f_bjq_sid:'',
|
|
226
|
+
f_material_code:''
|
|
227
|
+
})
|
|
228
|
+
},
|
|
229
|
+
// 获取模态框材料
|
|
230
|
+
async getMateralNames () {
|
|
231
|
+
let data = {
|
|
232
|
+
condition: `1=1`
|
|
233
|
+
}
|
|
234
|
+
let http = new HttpResetClass()
|
|
235
|
+
let res = await http.load(
|
|
236
|
+
'POST',
|
|
237
|
+
`rs/sql/getStockMaterial`,
|
|
238
|
+
{data: data},
|
|
239
|
+
{resolveMsg: null, rejectMsg: '材料查询失败!!!'}
|
|
240
|
+
)
|
|
241
|
+
|
|
242
|
+
this.meterialOptions = res.data.map(item => {
|
|
243
|
+
return {
|
|
244
|
+
'label': `${item.f_material_name}--${item.f_material_style}--${item.f_material_unit}--${item.f_material_price}`,
|
|
245
|
+
'value': item
|
|
246
|
+
}
|
|
247
|
+
})
|
|
248
|
+
},
|
|
249
|
+
modifyOtherValue (index){
|
|
250
|
+
console.log("进来了",index)
|
|
251
|
+
console.log("dddd",this.materials[index].material)
|
|
252
|
+
let material = this.materials[index].material
|
|
253
|
+
this.materials[index].f_material_name = material.f_material_name
|
|
254
|
+
this.materials[index].f_material_style = material.f_material_style
|
|
255
|
+
this.materials[index].f_material_unit = material.f_material_unit
|
|
256
|
+
this.materials[index].f_material_number = material.f_material_number
|
|
257
|
+
},
|
|
258
|
+
// 新增材料
|
|
259
|
+
async addMaterial () {
|
|
260
|
+
this.title = '新增'
|
|
261
|
+
let data = {
|
|
262
|
+
f_process_id : this.selectdata.f_process_id,
|
|
263
|
+
f_operator_id: this.$login.f.id,
|
|
264
|
+
f_operator: this.$login.f.name,
|
|
265
|
+
f_operation_date: new Date().Format('yyyy-MM-dd HH:mm:ss'),
|
|
266
|
+
f_orgid: this.$login.f.f_orgids,
|
|
267
|
+
f_orgname: this.$login.f.f_fengongsi,
|
|
268
|
+
materials:this.materials
|
|
269
|
+
}
|
|
270
|
+
let res = await this.$resetpost(
|
|
271
|
+
`rs/logic/saveMaterials`,
|
|
272
|
+
data
|
|
273
|
+
)
|
|
274
|
+
this.closeMaterials()
|
|
275
|
+
},
|
|
276
|
+
deleteMaterial (row) {
|
|
277
|
+
this.$showMessage('您确定要删除这条记录吗?',['confirm']).then(res =>{
|
|
278
|
+
if (res === 'confirm'){
|
|
279
|
+
let http = new HttpResetClass()
|
|
280
|
+
|
|
281
|
+
let res = http.load(
|
|
282
|
+
'DELETE',
|
|
283
|
+
`rs/entity/t_material_apply/${row.id}`,
|
|
284
|
+
null,
|
|
285
|
+
{resolveMsg: null, rejectMsg: '删除失败!!!'}
|
|
286
|
+
)
|
|
287
|
+
this.closeMaterials()
|
|
288
|
+
}
|
|
289
|
+
})
|
|
290
|
+
},
|
|
291
|
+
async updateMaterial (index,row) {
|
|
292
|
+
this.title = '修改'
|
|
293
|
+
this.row = row
|
|
294
|
+
this.getMateralNames()
|
|
295
|
+
this.materials = [
|
|
296
|
+
{
|
|
297
|
+
material:'',
|
|
298
|
+
f_material_name:row.f_material_name,
|
|
299
|
+
f_material_style:row.f_material_style,
|
|
300
|
+
f_material_unit:row.f_material_unit,
|
|
301
|
+
f_material_number:row.f_material_number,
|
|
302
|
+
f_material_code:row.f_material_code
|
|
303
|
+
}
|
|
304
|
+
]
|
|
305
|
+
this.showMaterialModal = true
|
|
306
|
+
},
|
|
307
|
+
async updateConfirm () {
|
|
308
|
+
let data = this.row
|
|
309
|
+
data.f_material_name = this.materials[0].f_material_name
|
|
310
|
+
data.f_material_style = this.materials[0].f_material_style
|
|
311
|
+
data.f_material_unit = this.materials[0].f_material_unit
|
|
312
|
+
data.f_material_number = this.materials[0].f_material_number
|
|
313
|
+
data.f_material_code = this.materials[0].f_material_code
|
|
314
|
+
let res = await this.$resetpost(
|
|
315
|
+
`rs/entity/t_material_apply`,
|
|
316
|
+
data
|
|
317
|
+
)
|
|
318
|
+
this.closeMaterials()
|
|
319
|
+
},
|
|
320
|
+
closeMaterials () {
|
|
321
|
+
this.getOnetoManyData()
|
|
322
|
+
this.showMaterialModal = false
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
</script>
|
|
328
|
+
|
|
329
|
+
<style scoped>
|
|
330
|
+
|
|
331
|
+
</style>
|
|
@@ -59,7 +59,6 @@ export default {
|
|
|
59
59
|
)
|
|
60
60
|
debugger
|
|
61
61
|
this.setLabelOptions('服务人', res.data.map(item => {
|
|
62
|
-
debugger
|
|
63
62
|
return {
|
|
64
63
|
label: item.name,
|
|
65
64
|
value: item.name
|
|
@@ -292,6 +291,10 @@ export default {
|
|
|
292
291
|
this.$nextTick(() => {
|
|
293
292
|
this.showview = true
|
|
294
293
|
})
|
|
294
|
+
if ((this.show_data.f_apply_type === '工商户报建' || this.show_data.f_apply_type === '团购报建')
|
|
295
|
+
&& (this.show_data.defname === '合同签订')){
|
|
296
|
+
this.contract_number()
|
|
297
|
+
}
|
|
295
298
|
},
|
|
296
299
|
// 金额转大写
|
|
297
300
|
smalltoBIG(n) {
|
|
@@ -742,6 +745,107 @@ export default {
|
|
|
742
745
|
this.$dispatch('loadPage')
|
|
743
746
|
|
|
744
747
|
throw '终止报建!!!'
|
|
748
|
+
},
|
|
749
|
+
async contract_number() {
|
|
750
|
+
console.log("进入编号合同编号生成",this.$login.f.orgs)
|
|
751
|
+
let f_contract_number = ''
|
|
752
|
+
const nowDate = new Date();
|
|
753
|
+
const date = {
|
|
754
|
+
year: nowDate.getFullYear(),
|
|
755
|
+
month: nowDate.getMonth() + 1,
|
|
756
|
+
day: nowDate.getDate()
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
function upperCaseChars(dir) {
|
|
760
|
+
let string = '';
|
|
761
|
+
switch (dir){
|
|
762
|
+
case '周口市天然气有限公司':
|
|
763
|
+
string = 'ZK' // 当表达式的结果等于 房产 时,则执行该代码
|
|
764
|
+
break;
|
|
765
|
+
case '项城市天然气有限公司':
|
|
766
|
+
string = "XC" // 当表达式的结果等于 自建房 时,则执行该代码
|
|
767
|
+
break;
|
|
768
|
+
case '西华县天然气有限公司':
|
|
769
|
+
string = 'XH' // 当表达式的结果等于 商业 时,则执行该代码
|
|
770
|
+
break;
|
|
771
|
+
case '鹿邑县天然气有限公司':
|
|
772
|
+
string = 'LY' // 当表达式的结果等于 工业 时,则执行该代码
|
|
773
|
+
break;
|
|
774
|
+
case '郸城县天然气有限公司':
|
|
775
|
+
string = 'DC' // 当表达式的结果等于 中压 时,则执行该代码
|
|
776
|
+
break;
|
|
777
|
+
default :
|
|
778
|
+
break; // 如果没有与表达式相同的值,则执行该代码
|
|
779
|
+
}
|
|
780
|
+
return string;
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
const dir = upperCaseChars(this.$login.f.orgs) //分公司
|
|
784
|
+
|
|
785
|
+
let type = 0 //类型
|
|
786
|
+
let entry_type = ''
|
|
787
|
+
if(this.show_data.f_apply_type === '团购报建') {
|
|
788
|
+
entry_type = this.show_data.f_apply_nature
|
|
789
|
+
}else {
|
|
790
|
+
entry_type = this.show_data.f_entry_type
|
|
791
|
+
}
|
|
792
|
+
switch (entry_type){
|
|
793
|
+
case '城区':
|
|
794
|
+
type = 1 // 当表达式的结果等于 城区 时,则执行该代码
|
|
795
|
+
break;
|
|
796
|
+
case '新农村':
|
|
797
|
+
type = 2 // 当表达式的结果等于 新农村 时,则执行该代码
|
|
798
|
+
break;
|
|
799
|
+
default :
|
|
800
|
+
break; // 如果没有与表达式相同的值,则执行该代码
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
let nature = 0 // 性质
|
|
804
|
+
switch (this.show_data.f_new_entry){
|
|
805
|
+
case '房产':
|
|
806
|
+
nature = 1 // 当表达式的结果等于 房产 时,则执行该代码
|
|
807
|
+
break;
|
|
808
|
+
case '自建房':
|
|
809
|
+
nature = 2 // 当表达式的结果等于 自建房 时,则执行该代码
|
|
810
|
+
break;
|
|
811
|
+
case '商业':
|
|
812
|
+
nature = 3 // 当表达式的结果等于 商业 时,则执行该代码
|
|
813
|
+
break;
|
|
814
|
+
case '工业':
|
|
815
|
+
nature = 4 // 当表达式的结果等于 工业 时,则执行该代码
|
|
816
|
+
break;
|
|
817
|
+
case '中压':
|
|
818
|
+
nature = 5 // 当表达式的结果等于 中压 时,则执行该代码
|
|
819
|
+
break;
|
|
820
|
+
default :
|
|
821
|
+
break; // 如果没有与表达式相同的值,则执行该代码
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
const newMonth = date.month >= 10 ? date.month : '0' + date.month //月份
|
|
825
|
+
const dataYm = date.year + '-01-01'
|
|
826
|
+
const newYear = date.year + 1
|
|
827
|
+
const year = date.year.toString().substring(2,4) //年份
|
|
828
|
+
|
|
829
|
+
|
|
830
|
+
|
|
831
|
+
let http = new HttpResetClass()
|
|
832
|
+
let res = await http.load('POST', 'rs/sql/contractCount', {data: {dataYm: dataYm, newYear: newYear, orgid: this.$login.f.orgid}}, {
|
|
833
|
+
resolveMsg: null,
|
|
834
|
+
rejectMsg: null
|
|
835
|
+
})
|
|
836
|
+
if (res.data[0].count === 0) {
|
|
837
|
+
f_contract_number = dir + type + nature + year + newMonth + '001'
|
|
838
|
+
console.log("触发if", f_contract_number)
|
|
839
|
+
} else {
|
|
840
|
+
let count = res.data[0].count
|
|
841
|
+
f_contract_number = dir + type + nature + year + newMonth + this.PrefixInteger(count, 3)
|
|
842
|
+
console.log("触发else", f_contract_number)
|
|
843
|
+
}
|
|
844
|
+
this.setLabelValue("合同编号", f_contract_number)
|
|
845
|
+
return f_contract_number
|
|
846
|
+
},
|
|
847
|
+
PrefixInteger(num, n) {
|
|
848
|
+
return (Array(n).join(0) + num).slice(-n);
|
|
745
849
|
}
|
|
746
850
|
},
|
|
747
851
|
events: {
|
|
@@ -1392,7 +1496,69 @@ export default {
|
|
|
1392
1496
|
if (this.show_data.button.after) {
|
|
1393
1497
|
this[this.show_data.button.after]()
|
|
1394
1498
|
}
|
|
1395
|
-
|
|
1499
|
+
|
|
1500
|
+
if(this.show_data.f_apply_type === '散户报建' && this.show_data.defname === '报装申请' && this.show_data.button.button_name === '合同'){
|
|
1501
|
+
let data = {
|
|
1502
|
+
tablename: 't_apply',
|
|
1503
|
+
condition: `f_process_id='${this.show_data.f_process_id}'`
|
|
1504
|
+
}
|
|
1505
|
+
let http = new HttpResetClass()
|
|
1506
|
+
let restp = await http.load(
|
|
1507
|
+
'POST',
|
|
1508
|
+
`rs/sql/singleTable`,
|
|
1509
|
+
{data: data},
|
|
1510
|
+
{resolveMsg: null, rejectMsg: '报建数据查询失败!!!'}
|
|
1511
|
+
)
|
|
1512
|
+
debugger
|
|
1513
|
+
restp.data[0].processname = '散户报建流程'
|
|
1514
|
+
restp.data[0].defname = '合同签订'
|
|
1515
|
+
this.$dispatch('apply',restp.data[0])
|
|
1516
|
+
|
|
1517
|
+
} else if(this.show_data.f_apply_type === '散户报建' && this.show_data.defname === '合同签订' && this.show_data.button.button_name === '提交'){
|
|
1518
|
+
let data2 = {
|
|
1519
|
+
condition: `u.id = ${this.show_data.id}`,
|
|
1520
|
+
data: {
|
|
1521
|
+
id: this.$login.f.id,
|
|
1522
|
+
orgid: this.$login.f.orgid
|
|
1523
|
+
}
|
|
1524
|
+
}
|
|
1525
|
+
let http = new HttpResetClass()
|
|
1526
|
+
let restp1 = await http.load(
|
|
1527
|
+
'POST',
|
|
1528
|
+
`rs/sql/checkuser`,
|
|
1529
|
+
{data: data2},
|
|
1530
|
+
{resolveMsg: null, rejectMsg: '报建数据查询失败!!!'}
|
|
1531
|
+
)
|
|
1532
|
+
debugger
|
|
1533
|
+
console.log('有没有发请求打印查询的内容restp1',restp1)
|
|
1534
|
+
// restp1.data[0].processname = '散户报建流程'
|
|
1535
|
+
// restp1.data[0].defname = '报装缴费'
|
|
1536
|
+
this.$dispatch('apply',restp1.data[0])
|
|
1537
|
+
}else if(this.show_data.f_apply_type === '散户报建' && this.show_data.defname === '报装缴费' && this.show_data.button.button_name === '提交'){
|
|
1538
|
+
let data3 = {
|
|
1539
|
+
condition: `u.id = ${this.show_data.id}`,
|
|
1540
|
+
data: {
|
|
1541
|
+
id: this.$login.f.id,
|
|
1542
|
+
orgid: this.$login.f.orgid
|
|
1543
|
+
}
|
|
1544
|
+
}
|
|
1545
|
+
let http = new HttpResetClass()
|
|
1546
|
+
let restp2 = await http.load(
|
|
1547
|
+
'POST',
|
|
1548
|
+
`rs/sql/checkuser`,
|
|
1549
|
+
{data: data3},
|
|
1550
|
+
{resolveMsg: null, rejectMsg: '报建数据查询失败!!!'}
|
|
1551
|
+
)
|
|
1552
|
+
debugger
|
|
1553
|
+
console.log('打印查询的内容',restp2)
|
|
1554
|
+
// restp2.data[0].processname = '散户报建流程'
|
|
1555
|
+
// restp2.data[0].defname = '工程派工'
|
|
1556
|
+
this.$dispatch('apply',restp2.data[0])
|
|
1557
|
+
}
|
|
1558
|
+
else{
|
|
1559
|
+
this.$dispatch('loadPage')
|
|
1560
|
+
}
|
|
1561
|
+
|
|
1396
1562
|
},
|
|
1397
1563
|
// 失去焦点出触发事件
|
|
1398
1564
|
'onchange' (index) {
|
|
@@ -256,6 +256,10 @@
|
|
|
256
256
|
this.$nextTick(() => {
|
|
257
257
|
this.showview = true
|
|
258
258
|
})
|
|
259
|
+
if ((this.show_data.f_apply_type === '工商户报建' || this.show_data.f_apply_type === '团购报建')
|
|
260
|
+
&& (this.show_data.defname === '合同签订')){
|
|
261
|
+
this.contract_number()
|
|
262
|
+
}
|
|
259
263
|
},
|
|
260
264
|
// 金额转大写
|
|
261
265
|
smalltoBIG(n) {
|
|
@@ -545,6 +549,101 @@
|
|
|
545
549
|
value: item.id
|
|
546
550
|
}
|
|
547
551
|
})
|
|
552
|
+
},
|
|
553
|
+
async contract_number() {
|
|
554
|
+
console.log("进入编号合同编号生成",this.$login.f.orgs)
|
|
555
|
+
let f_contract_number = ''
|
|
556
|
+
const nowDate = new Date();
|
|
557
|
+
const date = {
|
|
558
|
+
year: nowDate.getFullYear(),
|
|
559
|
+
month: nowDate.getMonth() + 1,
|
|
560
|
+
day: nowDate.getDate()
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
function upperCaseChars(dir) {
|
|
564
|
+
let string = '';
|
|
565
|
+
switch (dir){
|
|
566
|
+
case '周口市天然气有限公司':
|
|
567
|
+
string = 'ZK' // 当表达式的结果等于 房产 时,则执行该代码
|
|
568
|
+
break;
|
|
569
|
+
case '项城市天然气有限公司':
|
|
570
|
+
string = "XC" // 当表达式的结果等于 自建房 时,则执行该代码
|
|
571
|
+
break;
|
|
572
|
+
case '西华县天然气有限公司':
|
|
573
|
+
string = 'XH' // 当表达式的结果等于 商业 时,则执行该代码
|
|
574
|
+
break;
|
|
575
|
+
case '鹿邑县天然气有限公司':
|
|
576
|
+
string = 'LY' // 当表达式的结果等于 工业 时,则执行该代码
|
|
577
|
+
break;
|
|
578
|
+
case '郸城县天然气有限公司':
|
|
579
|
+
string = 'DC' // 当表达式的结果等于 中压 时,则执行该代码
|
|
580
|
+
break;
|
|
581
|
+
default :
|
|
582
|
+
break; // 如果没有与表达式相同的值,则执行该代码
|
|
583
|
+
}
|
|
584
|
+
return string;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
const dir = upperCaseChars(this.$login.f.orgs) //分公司
|
|
588
|
+
|
|
589
|
+
let type = 0 //类型
|
|
590
|
+
switch (this.show_data.f_entry_type){
|
|
591
|
+
case '城区':
|
|
592
|
+
type = 1 // 当表达式的结果等于 城区 时,则执行该代码
|
|
593
|
+
break;
|
|
594
|
+
case '新农村':
|
|
595
|
+
type = 2 // 当表达式的结果等于 新农村 时,则执行该代码
|
|
596
|
+
break;
|
|
597
|
+
default :
|
|
598
|
+
break; // 如果没有与表达式相同的值,则执行该代码
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
let nature = 0 // 性质
|
|
602
|
+
switch (this.show_data.f_new_entry){
|
|
603
|
+
case '房产':
|
|
604
|
+
nature = 1 // 当表达式的结果等于 房产 时,则执行该代码
|
|
605
|
+
break;
|
|
606
|
+
case '自建房':
|
|
607
|
+
nature = 2 // 当表达式的结果等于 自建房 时,则执行该代码
|
|
608
|
+
break;
|
|
609
|
+
case '商业':
|
|
610
|
+
nature = 3 // 当表达式的结果等于 商业 时,则执行该代码
|
|
611
|
+
break;
|
|
612
|
+
case '工业':
|
|
613
|
+
nature = 4 // 当表达式的结果等于 工业 时,则执行该代码
|
|
614
|
+
break;
|
|
615
|
+
case '中压':
|
|
616
|
+
nature = 5 // 当表达式的结果等于 中压 时,则执行该代码
|
|
617
|
+
break;
|
|
618
|
+
default :
|
|
619
|
+
break; // 如果没有与表达式相同的值,则执行该代码
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
const newMonth = date.month >= 10 ? date.month : '0' + date.month //月份
|
|
623
|
+
const dataYm = date.year + '-01-01'
|
|
624
|
+
const newYear = date.year + 1
|
|
625
|
+
const year = date.year.toString().substring(2,4) //年份
|
|
626
|
+
|
|
627
|
+
|
|
628
|
+
|
|
629
|
+
let http = new HttpResetClass()
|
|
630
|
+
let res = await http.load('POST', 'rs/sql/contractCount', {data: {dataYm: dataYm, newYear: newYear, orgid: this.$login.f.orgid}}, {
|
|
631
|
+
resolveMsg: null,
|
|
632
|
+
rejectMsg: null
|
|
633
|
+
})
|
|
634
|
+
if (res.data[0].count === 0) {
|
|
635
|
+
f_contract_number = dir + type + nature + year + newMonth + '001'
|
|
636
|
+
console.log("触发if", f_contract_number)
|
|
637
|
+
} else {
|
|
638
|
+
let count = res.data[0].count
|
|
639
|
+
f_contract_number = dir + type + nature + year + newMonth + this.PrefixInteger(count, 3)
|
|
640
|
+
console.log("触发else", f_contract_number)
|
|
641
|
+
}
|
|
642
|
+
this.setLabelValue("合同编号", f_contract_number)
|
|
643
|
+
return f_contract_number
|
|
644
|
+
},
|
|
645
|
+
PrefixInteger(num, n) {
|
|
646
|
+
return (Array(n).join(0) + num).slice(-n);
|
|
548
647
|
}
|
|
549
648
|
},
|
|
550
649
|
events:{
|
|
@@ -54,6 +54,12 @@
|
|
|
54
54
|
v-on:keyup.enter="search"
|
|
55
55
|
condition="f_apply_num = '{}'">
|
|
56
56
|
</div>
|
|
57
|
+
<div class="form-group col-sm-3">
|
|
58
|
+
<label class="font_normal_body">合同编号:</label>
|
|
59
|
+
<input type="text" style="width:60%" class="input_search" placeholder='合同编号' v-model="model.f_contract_money"
|
|
60
|
+
v-on:keyup.enter="$parent.$parent.search()"
|
|
61
|
+
condition="f_contract_money like '%{}%'">
|
|
62
|
+
</div>
|
|
57
63
|
<div class="form-group col-sm-3">
|
|
58
64
|
<label class="font_normal_body">联系电话:</label>
|
|
59
65
|
<input type="text" style="width:60%" class="input_search" placeholder='联系电话' v-model="model.f_phone"
|
|
@@ -143,7 +143,7 @@ export default {
|
|
|
143
143
|
// 查询
|
|
144
144
|
async load() {
|
|
145
145
|
let condition = ''
|
|
146
|
-
if(this.businessid){
|
|
146
|
+
if(!isEmpty(this.businessid)){
|
|
147
147
|
condition = `f_businessid= '${this.headers.businessid}' `
|
|
148
148
|
}else{
|
|
149
149
|
condition = `f_blobid= '${this.headers.blodid}' `
|