apply-clients 3.4.2 → 3.4.4
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/android.html +23 -23
- package/build/dev-server.js +119 -119
- package/build/webpack.base.conf.js +2 -1
- package/build/webpack.dev.conf.js +12 -0
- package/dingding.html +23 -0
- package/index.html +33 -33
- package/package.json +2 -1
- package/src/AndroidApp.vue +35 -35
- package/src/DingDingApp.vue +51 -0
- package/src/android.js +21 -21
- package/src/apply.js +38 -13
- package/src/applyAndroid.js +46 -32
- package/src/applyDingDing.js +12 -0
- package/src/components/android/AppOnetomany.vue +343 -301
- package/src/components/android/AppServiceView.vue +189 -10
- package/src/components/android/AppSign.vue +19 -7
- package/src/components/android/AppTakePic.vue +143 -143
- package/src/components/android/AreaSelect/AppQrcodeReader.vue +73 -0
- package/src/components/android/AreaSelect/AppResAreaMapGroup.vue +148 -0
- package/src/components/android/AreaSelect/AppResAreaSelect.vue +108 -0
- package/src/components/android/AreaSelect/AppResAreaSelectGroup.vue +142 -0
- package/src/components/android/Function/AppFunctionServiceControl.vue +344 -0
- package/src/components/android/Function/AppInstallFunction.vue +366 -0
- package/src/components/android/Process/AppExplorationUser.vue +500 -320
- package/src/components/android/Process/AppServiceControl.vue +999 -48
- package/src/components/android/Process/Processes/AppAddMaterialScience.vue +477 -0
- package/src/components/android/Process/Processes/AppBuildSign.vue +46 -0
- package/src/components/android/Process/Processes/AppChargeManagement.vue +637 -0
- package/src/components/android/Process/Processes/AppDevicesManagement.vue +519 -0
- package/src/components/android/Process/Processes/AppInstallationDetails.vue +116 -90
- package/src/components/android/Process/Processes/AppSupplementalAgreement.vue +298 -0
- package/src/components/android/Process/Processes/selectApply.vue +250 -0
- package/src/components/android/Process/Processes/selectUserinfo.vue +182 -0
- package/src/components/android/ProgressReport/ProgressReportDetail.vue +64 -64
- package/src/components/android/Supervisory/AppProcessSupervisory.vue +205 -71
- package/src/components/android/Supervisory/AppSupervisoryCart.vue +69 -34
- package/src/components/android/TaskGraph.vue +125 -125
- package/src/components/common/TabButton.vue +149 -0
- package/src/components/common/Tabs.vue +67 -0
- package/src/components/image/dwg.jpg +0 -0
- package/src/components/image/txt.jpg +0 -0
- package/src/components/image//345/221/250/345/217/243/346/224/266/346/254/276/344/270/223/347/224/250/347/253/240.png +0 -0
- package/src/components/image//350/245/277/345/215/216/346/224/266/346/254/276/344/270/223/347/224/250/347/253/240.png +0 -0
- package/src/components/image//351/203/270/345/237/216/346/224/266/346/254/276/344/270/223/347/224/250/347/253/240.png +0 -0
- package/src/components/image//351/241/271/345/237/216/346/224/266/346/254/276/344/270/223/347/224/250/347/253/240.png +0 -0
- package/src/components/image//351/271/277/351/202/221/346/224/266/346/254/276/344/270/223/347/224/250/347/253/240.png +0 -0
- package/src/components/product/ApplyCharge/ApplyChargeList.vue +272 -53
- package/src/components/product/ApplyCharge/ApplyChargeSearch.vue +3 -3
- package/src/components/product/AreaSelect/MyAreaSelect.vue +423 -0
- package/src/components/product/AreaSelect/ResAreaSelect.vue +106 -0
- package/src/components/product/AreaSelect/ResAreaSelectGroup.vue +150 -0
- package/src/components/product/AreaSelect/utils/EventListener.js +29 -0
- package/src/components/product/AreaSelect/utils/coerceBoolean.js +7 -0
- package/src/components/product/Business/BusinessApply.vue +269 -0
- package/src/components/product/Business/CivilApply.vue +269 -0
- package/src/components/product/Function/InstallFunction.vue +132 -125
- package/src/components/product/Function/InstallInfoSelect.vue +320 -292
- package/src/components/product/Function/Service/FunctionServiceControl.vue +445 -222
- package/src/components/product/GaoDeMapComponents/GaoDeMap.vue +231 -0
- package/src/components/product/GroupByApply/ApplyGroupByList.vue +253 -0
- package/src/components/product/GroupByApply/ApplyGroupByMain.vue +53 -0
- package/src/components/product/GroupByApply/ApplyGroupByPaper.vue +376 -0
- package/src/components/product/Install/InstallProject.vue +194 -0
- package/src/components/product/Material/MaterialDetailed.vue +262 -0
- package/src/components/product/OldApply/Handle/HandleApply.vue +337 -0
- package/src/components/product/OldApply/Monitor/MonitorApply.vue +360 -0
- package/src/components/product/OldApply/OldApply.vue +209 -0
- package/src/components/product/OldApply/OldApplyMessage.vue +420 -0
- package/src/components/product/Onetomany.vue +406 -377
- package/src/components/product/Print/BuildOrder/buildOrderList.vue +339 -0
- package/src/components/product/Print/BuildOrder/printBuildOrder.vue +157 -0
- package/src/components/product/Print/IgnitionBill/IgnitionBill.vue +259 -0
- package/src/components/product/Print/IgnitionBill/printIgnitionBill.vue +168 -0
- package/src/components/product/Process/ExplorationSelect.vue +495 -410
- package/src/components/product/Process/ExplorationUser.vue +189 -138
- package/src/components/product/Process/Processes/InstallationDetails.vue +25 -7
- package/src/components/product/Process/Processes/Print/printCharge.vue +41 -17
- package/src/components/product/Process/Processes/Print/printChargepc.vue +142 -0
- package/src/components/product/Process/Processes/Print/printRefund.vue +196 -0
- package/src/components/product/Process/Processes/addMaterialScience.vue +454 -0
- package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +211 -207
- package/src/components/product/Process/Processes/chargeManagement.vue +20 -3
- package/src/components/product/Process/Processes/devicesManagement.vue +484 -478
- package/src/components/product/Process/Processes/selectApply.vue +2 -2
- package/src/components/product/Process/Service/ServiceControl.vue +638 -20
- package/src/components/product/Process/Service/ShowBackReason.vue +33 -33
- package/src/components/product/Process/ShowBackReason.vue +33 -0
- package/src/components/product/ServiceView.vue +357 -7
- package/src/components/product/Stop/StopApply.vue +101 -103
- package/src/components/product/Stop/StopApplyList.vue +271 -269
- package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +884 -186
- package/src/components/product/Supervisory/SupervisoryControl.vue +137 -100
- package/src/components/product/Supervisory/SupervisoryList.vue +201 -30
- package/src/components/product/Supervisory/SupervisoryhCart.vue +130 -107
- package/src/components/product/VueUtils/ApplyUpload.vue +275 -273
- package/src/components/product/VueUtils/GaoPaiYi/HighMeter.vue +1090 -0
- package/src/components/product/VueUtils/HighMeter.vue +208 -208
- package/src/components/product/VueUtils/ToolsPage.vue +51 -0
- package/src/components/product/VueUtils/Tree.vue +330 -0
- package/src/dingding.js +19 -0
- package/src/expandcssAndroid.less +517 -1034
- package/src/filiale/yuchuan/android/Process/AppServiceControl.vue +735 -731
- package/src/filiale/yuchuan/android/Process/Processes/AppInstallationDetails.vue +824 -824
- package/src/filiale/yuchuan/android/Process/Processes/AppInstallationDetailsCivil.vue +650 -650
- package/src/filiale/yuchuan/android/Sign/AppSignTask.vue +182 -182
- package/src/filiale/yuchuan/android/Sign/BuildSign.vue +50 -50
- package/src/filiale/yuchuan/android/Sign/ConstructSign.vue +50 -50
- package/src/filiale/yuchuan/android/Sign/DesignSign.vue +50 -50
- package/src/filiale/yuchuan/android/Sign/SupervisorSign.vue +50 -50
- package/src/filiale/yuchuan/android/Task/Build/BuildTsak.vue +60 -60
- package/src/filiale/yuchuan/android/Task/Survey/SurveyTsak.vue +60 -60
- package/src/filiale/yuchuan/android.js +14 -14
- package/src/filiale/yuchuan/pc/Order/OrderApply.vue +528 -528
- package/src/filiale/yuchuan/pc/Order/OrderApplyList.vue +343 -343
- package/src/filiale/yuchuan/pc/Print/BuildOrder/buildOrderList.vue +264 -0
- package/src/filiale/yuchuan/pc/Print/BuildOrder/printBuildOrder.vue +152 -0
- package/src/filiale/yuchuan/pc/Process/ExplorationUser.vue +149 -149
- package/src/filiale/yuchuan/pc/Process/Processes/ApplyMapCom.vue +67 -67
- package/src/filiale/yuchuan/pc/Process/Processes/InstallationDetails.vue +809 -809
- package/src/filiale/yuchuan/pc/Process/Processes/InstallationDetailsCivil.vue +595 -595
- package/src/filiale/yuchuan/pc/Process/Processes/Print/printCharge.vue +125 -0
- package/src/filiale/yuchuan/pc/Process/Processes/chargeManagement.vue +621 -470
- package/src/filiale/yuchuan/pc/Process/Service/ServiceControl.vue +1108 -1074
- package/src/filiale/yuchuan/pc/Sign/SignRecord.vue +24 -0
- package/src/filiale/yuchuan/pc/Sign/SignRecordList.vue +174 -0
- package/src/filiale/yuchuan/pc.js +20 -12
- package/src/main.js +4 -1
- package/src/components/product/Function/StopApplyCrrdList.vue +0 -176
- package/src/components/product/Function/functions/ApplyRecordCancel.vue +0 -102
- package/src/components/product/Function/functions/StopInstall.vue +0 -106
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="form-horizontal select-overspread">
|
|
3
|
+
<validator name='v' @valid="$emit('valid')" @invalid="$emit('invalid')">
|
|
4
|
+
<!--<form>-->
|
|
3
5
|
<div v-for="(index,item) in data.fields">
|
|
4
6
|
<!--input-->
|
|
5
7
|
<div :style="item.style ? item.style : ''"
|
|
6
|
-
v-if="(item.type==='input' || item.type==='number'||item.type === 'tel'||item.type === 'email') && !item.hidden && (item.device === 'app' || !item.device)"
|
|
8
|
+
v-if="(item.type==='input' || item.type==='number'||item.type === 'tel'||item.type === 'email') && !item.hidden && (item.device === 'app' || !item.device) && (item.label != '证件号码')&&(item.label != '身份证') && (item.label != '用户电话')"
|
|
7
9
|
:class="[item.required && !(item.value) ? 'apply-has-error' : '', item.bootstraped ? item.bootstraped + ' form-group app-input':'col-xs-12 form-group app-input']">
|
|
8
10
|
<label class="control-label-justify">{{item.label}}</label>
|
|
9
11
|
<div :style="item.value_style ? item.value_style:''"
|
|
@@ -22,6 +24,74 @@
|
|
|
22
24
|
</div>
|
|
23
25
|
</div>
|
|
24
26
|
|
|
27
|
+
<div :style="item.style ? item.style : ''"
|
|
28
|
+
v-if="(data.fields[index-1].value ==='营业执照'||data.fields[index-1].value ==='军官证')&& (item.label === '证件号码')"
|
|
29
|
+
:class="[item.required && !(item.value) ? 'apply-has-error' : '', item.bootstraped ? item.bootstraped + ' form-group app-input':'col-xs-12 form-group app-input']">
|
|
30
|
+
<label class="control-label-justify">{{item.label}}</label>
|
|
31
|
+
<div :style="item.value_style ? item.value_style:''"
|
|
32
|
+
:class="item.value_bootstraped ? item.value_bootstraped : 'col-xs-8'">
|
|
33
|
+
<input class="" style="width: 100%"
|
|
34
|
+
:type="item.type"
|
|
35
|
+
v-model="data.fields[index].value"
|
|
36
|
+
:placeholder="item.placeholder"
|
|
37
|
+
:value="data.fields[index].value"
|
|
38
|
+
:readonly="item.readonly"
|
|
39
|
+
:disabled="item.disabled"
|
|
40
|
+
@change="onchange(index)"
|
|
41
|
+
@blur="onblur(index)"
|
|
42
|
+
@input="oninput(index)"
|
|
43
|
+
/>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
<!--input身份证验证-->
|
|
49
|
+
<div :style="item.style ? item.style : ''"
|
|
50
|
+
v-if="(item.label==='身份证') || (item.label === '证件号码' && data.fields[index-1].value ==='身份证')"
|
|
51
|
+
:class="[$v.f_idnumber2.identityCardValid ? 'apply-has-error' : '',item.bootstraped ? item.bootstraped + ' form-group app-input':'col-xs-12 form-group app-input']">
|
|
52
|
+
<label class="control-label-justify">{{item.label}}</label>
|
|
53
|
+
<div :style="item.value_style ? item.value_style:''"
|
|
54
|
+
:class="item.value_bootstraped ? item.value_bootstraped : 'col-xs-8'">
|
|
55
|
+
<input class="" style="width: 100%"
|
|
56
|
+
:type="item.type"
|
|
57
|
+
maxlength="18"
|
|
58
|
+
v-model="data.fields[index].value"
|
|
59
|
+
:placeholder="item.placeholder"
|
|
60
|
+
:value="data.fields[index].value"
|
|
61
|
+
:readonly="item.readonly"
|
|
62
|
+
v-validate:f_idnumber2='{identityCardValid: true}'
|
|
63
|
+
@change="onchange(index)"
|
|
64
|
+
@blur="onblur(index)"
|
|
65
|
+
@input="oninput(index)"
|
|
66
|
+
/>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
<!--input手机号验证-->
|
|
72
|
+
<div :style="item.style ? item.style : ''"
|
|
73
|
+
v-if="item.label === '用户电话'"
|
|
74
|
+
:class="[$v.f_user_phone.minlength || $v.f_user_phone.maxlength ? 'apply-has-error' : '',item.bootstraped ? item.bootstraped + ' form-group app-input':'col-xs-12 form-group app-input']">
|
|
75
|
+
<label class="control-label-justify">{{item.label}}</label>
|
|
76
|
+
<div :style="item.value_style ? item.value_style:''"
|
|
77
|
+
:class="item.value_bootstraped ? item.value_bootstraped : 'col-xs-8'">
|
|
78
|
+
<input class="" style="width: 100%"
|
|
79
|
+
maxlength="18"
|
|
80
|
+
type="number"
|
|
81
|
+
onKeypress="return(/[\d\.]/.test(String.fromCharCode(event.keyCode)))"
|
|
82
|
+
oninput="if(value.length > 11) value=value.slice(0,11)"
|
|
83
|
+
v-validate:f_user_phone="{minlength: 7, maxlength: 11 }"
|
|
84
|
+
v-model="data.fields[index].value"
|
|
85
|
+
:placeholder="item.placeholder"
|
|
86
|
+
:value="data.fields[index].value"
|
|
87
|
+
:readonly="item.readonly"
|
|
88
|
+
@change="onchange(index)"
|
|
89
|
+
@blur="onblur(index)"
|
|
90
|
+
@input="oninput(index)"
|
|
91
|
+
/>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
|
|
25
95
|
<!--select-->
|
|
26
96
|
<div :style="item.style ? item.style : ''"
|
|
27
97
|
v-if="item.type==='select' && !item.hidden && (item.device === 'app' || !item.device)"
|
|
@@ -34,6 +104,7 @@
|
|
|
34
104
|
:placeholder="item.placeholder"
|
|
35
105
|
:search="item.search"
|
|
36
106
|
close-on-select value-single
|
|
107
|
+
@select-search="selectSearch($arguments,index)"
|
|
37
108
|
:options="data.fields[index].options"
|
|
38
109
|
v-model="data.fields[index].value"
|
|
39
110
|
:value.sync="data.fields[index].value"
|
|
@@ -107,20 +178,21 @@
|
|
|
107
178
|
</div>
|
|
108
179
|
</div>
|
|
109
180
|
</div>
|
|
110
|
-
|
|
111
|
-
<div class="col-sm-12 col-xs-12">
|
|
181
|
+
<div class="col-sm-12 col-xs-12" id="test11">
|
|
112
182
|
<accordion one-at-a-time="true">
|
|
113
183
|
<panel v-for="(i,item) in data.onetomany" :header="item.title" :is-open="false" type="primary">
|
|
114
|
-
<app-onetomany :onetomany="item" :index="i"></app-onetomany>
|
|
184
|
+
<app-onetomany :onetomany="item" :index="i" :selectdata="data"></app-onetomany>
|
|
115
185
|
</panel>
|
|
116
|
-
<panel v-for="(i,item) in data.components" :header="item.title" :is-open="
|
|
186
|
+
<panel v-for="(i,item) in data.components" :header="item.title" :is-open="true" type="primary" v-if="item.device === 'app' || !item.device">
|
|
117
187
|
<component :is="item.name" :selectdata="data" :mark="item.mark"></component>
|
|
118
188
|
</panel>
|
|
119
189
|
</accordion>
|
|
120
190
|
</div>
|
|
121
191
|
|
|
122
192
|
<!--自定义组件-->
|
|
123
|
-
<slot
|
|
193
|
+
<slot>
|
|
194
|
+
|
|
195
|
+
</slot>
|
|
124
196
|
|
|
125
197
|
<!-- 按钮组 -->
|
|
126
198
|
<div class="text-center">
|
|
@@ -128,7 +200,16 @@
|
|
|
128
200
|
:disabled="button.disabled && disable_button"
|
|
129
201
|
style="min-width:100px"
|
|
130
202
|
:class="button.disabled && disable_button ? 'btn btn-default button_spacing' : 'btn btn-primary button_spacing'"
|
|
131
|
-
v-if="!button.hidden"
|
|
203
|
+
v-if="!button.hidden && button.button_name !=='提交'&& button.button_name !=='确认'"
|
|
204
|
+
@click.prevent="click_but(button)"
|
|
205
|
+
>
|
|
206
|
+
{{button.button_name}}
|
|
207
|
+
</button>
|
|
208
|
+
<button v-for="(index,button) in data.buttons"
|
|
209
|
+
:disabled="(button.disabled && disable_button) || (!$v.valid)"
|
|
210
|
+
style="min-width:100px"
|
|
211
|
+
:class="button.disabled && disable_button || (!$v.valid) ? 'btn btn-default button_spacing' : 'btn btn-primary button_spacing'"
|
|
212
|
+
v-if="!button.hidden && (button.button_name ==='提交'||button.button_name ==='确认')"
|
|
132
213
|
@click.prevent="click_but(button)"
|
|
133
214
|
>
|
|
134
215
|
{{button.button_name}}
|
|
@@ -238,6 +319,7 @@
|
|
|
238
319
|
</button>
|
|
239
320
|
</footer>
|
|
240
321
|
</modal>
|
|
322
|
+
<!--</form>-->
|
|
241
323
|
</div>
|
|
242
324
|
</template>
|
|
243
325
|
<script>
|
|
@@ -277,7 +359,13 @@ export default {
|
|
|
277
359
|
model: {}, // 公司等属性
|
|
278
360
|
disable_button: true, // 控制按钮禁用
|
|
279
361
|
disable_modal_button: true, // 控制按钮禁用
|
|
280
|
-
showButModal: false
|
|
362
|
+
showButModal: false,
|
|
363
|
+
areaData:{
|
|
364
|
+
sjvalue:'',
|
|
365
|
+
xianvalue:'',
|
|
366
|
+
sqvalue:'',
|
|
367
|
+
mapvalue:'',
|
|
368
|
+
}
|
|
281
369
|
}
|
|
282
370
|
},
|
|
283
371
|
watch: {
|
|
@@ -303,10 +391,37 @@ export default {
|
|
|
303
391
|
// 是否禁用按钮
|
|
304
392
|
this.disableButton()
|
|
305
393
|
},
|
|
394
|
+
async getSelectShijiValue(sjvalue,sjlable) {
|
|
395
|
+
|
|
396
|
+
this.areaData.sjvalue = sjvalue
|
|
397
|
+
console.log("这是父级接收的市级值:",sjvalue,sjlable)
|
|
398
|
+
this.data.areaData = this.areaData
|
|
399
|
+
console.log(this.areaData)
|
|
400
|
+
// 是否禁用按钮
|
|
401
|
+
this.disableButton()
|
|
402
|
+
},
|
|
403
|
+
async getSelectXianValue(xianvalue,xianlable) {
|
|
404
|
+
|
|
405
|
+
this.areaData.xianvalue = xianvalue
|
|
406
|
+
this.data.areaData = this.areaData
|
|
407
|
+
console.log("这是父级接收的县级值:",xianvalue,xianlable)
|
|
408
|
+
console.log(this.areaData)
|
|
409
|
+
|
|
410
|
+
// 是否禁用按钮
|
|
411
|
+
this.disableButton()
|
|
412
|
+
},
|
|
413
|
+
async getSelectShequValue(sqvalue,sqlable) {
|
|
414
|
+
this.areaData.sqvalue = sqvalue
|
|
415
|
+
this.data.areaData = this.areaData
|
|
416
|
+
console.log(this.areaData)
|
|
417
|
+
console.log("这是父级接收的社区值:",sqvalue,sqlable)
|
|
418
|
+
|
|
419
|
+
// 是否禁用按钮
|
|
420
|
+
this.disableButton()
|
|
421
|
+
},
|
|
306
422
|
// 是否禁用按钮
|
|
307
423
|
disableButton () {
|
|
308
|
-
|
|
309
|
-
|
|
424
|
+
var flag = false
|
|
310
425
|
for (const field of this.data.fields) {
|
|
311
426
|
if (field.required && !field.value && !field.hidden && field.value !== 0) {
|
|
312
427
|
flag = true
|
|
@@ -321,6 +436,27 @@ export default {
|
|
|
321
436
|
flag = true
|
|
322
437
|
}
|
|
323
438
|
}
|
|
439
|
+
//区域下拉框必选 流程模式为报警器报建 工商业报警器报建
|
|
440
|
+
if ((this.data.f_apply_type === '报警器报建' || this.data.f_apply_type === '工商业报警器报建') && this.data.defname === '工程施工' && this.data.title === '工程施工' && this.data.f_sub_state !='完工'){
|
|
441
|
+
if (!flag){
|
|
442
|
+
if (this.areaData.sjvalue ==null || this.areaData.sjvalue.length ==0 || this.areaData.sqvalue == null || this.areaData.sqvalue.length ==0
|
|
443
|
+
|| this.areaData.xianvalue == null || this.areaData.xianvalue == 0){
|
|
444
|
+
console.log("区域为空禁止提交:",this.areaData)
|
|
445
|
+
flag = true
|
|
446
|
+
}
|
|
447
|
+
if (this.areaData.mapvalue ==null || this.areaData.mapvalue ==0){
|
|
448
|
+
console.log("坐标为空禁止提交map:",this.areaData.mapvalue)
|
|
449
|
+
flag = true
|
|
450
|
+
}
|
|
451
|
+
for (const fields of this.areaData.mapvalue) {
|
|
452
|
+
// console.log("报警器数据:",fields.f_bjq_lng)
|
|
453
|
+
if (fields.f_bjq_lng ==null || fields.f_bjq_lng.length ==0){
|
|
454
|
+
console.log("坐标为空禁止提交44444:",this.areaData.mapvalue)
|
|
455
|
+
flag = true
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
}
|
|
324
460
|
|
|
325
461
|
this.disable_button = flag
|
|
326
462
|
},
|
|
@@ -328,6 +464,7 @@ export default {
|
|
|
328
464
|
async onchange (index) {
|
|
329
465
|
// 是否禁用按钮
|
|
330
466
|
this.disableButton()
|
|
467
|
+
// this.disablebtu()
|
|
331
468
|
|
|
332
469
|
if (!isEmpty(this.data.fields[index].value)) {
|
|
333
470
|
// 前缀、后缀
|
|
@@ -363,6 +500,9 @@ export default {
|
|
|
363
500
|
|
|
364
501
|
this.$dispatch('onblur', index)
|
|
365
502
|
},
|
|
503
|
+
disablebtu(){
|
|
504
|
+
this.flag = true
|
|
505
|
+
},
|
|
366
506
|
oninput (index) {
|
|
367
507
|
// 是否禁用按钮
|
|
368
508
|
this.disableButton()
|
|
@@ -374,6 +514,14 @@ export default {
|
|
|
374
514
|
},
|
|
375
515
|
// 点击按钮组按钮
|
|
376
516
|
async click_but (button) {
|
|
517
|
+
//报警器区域地址
|
|
518
|
+
this.data.areaData = this.areaData
|
|
519
|
+
|
|
520
|
+
if (this.data.defname === '通气点火') {
|
|
521
|
+
|
|
522
|
+
this.$showMessage(`请确认表号是否正确`).then((res) => {
|
|
523
|
+
|
|
524
|
+
|
|
377
525
|
this.disable_button = true
|
|
378
526
|
|
|
379
527
|
this.data.fields.forEach(item => {
|
|
@@ -392,6 +540,31 @@ export default {
|
|
|
392
540
|
} else {
|
|
393
541
|
this.$dispatch('button')
|
|
394
542
|
}
|
|
543
|
+
|
|
544
|
+
})
|
|
545
|
+
|
|
546
|
+
}
|
|
547
|
+
else{
|
|
548
|
+
this.disable_button = true
|
|
549
|
+
|
|
550
|
+
this.data.fields.forEach(item => {
|
|
551
|
+
this.data[item.field] = item.value
|
|
552
|
+
})
|
|
553
|
+
|
|
554
|
+
this.data.button = button
|
|
555
|
+
|
|
556
|
+
if (button.button_fields && button.button_fields.length > 0) {
|
|
557
|
+
this.showButModal = true
|
|
558
|
+
return
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
if (this.data.button.event) {
|
|
562
|
+
this.$dispatch(this.data.button.event)
|
|
563
|
+
} else {
|
|
564
|
+
this.$dispatch('button')
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
|
|
395
568
|
},
|
|
396
569
|
confirmModal () {
|
|
397
570
|
this.closeModal()
|
|
@@ -490,6 +663,12 @@ export default {
|
|
|
490
663
|
}
|
|
491
664
|
}
|
|
492
665
|
}
|
|
666
|
+
},
|
|
667
|
+
selectSearch(event, index) {
|
|
668
|
+
if (this.data.fields[index].selectSearch) {
|
|
669
|
+
this.$dispatch(this.data.fields[index].selectSearch, event[0], index)
|
|
670
|
+
}
|
|
671
|
+
this.$dispatch('selectSearch', event[0], index)
|
|
493
672
|
}
|
|
494
673
|
},
|
|
495
674
|
events: {
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<img :src="f_sign_path" width="100%" height="100%" />
|
|
6
6
|
</div>
|
|
7
7
|
<div class="row text-right form-group">
|
|
8
|
-
<button class="btn" style="background-color: #f1e404;border-radius: 5px;margin-right: 10px" @click="clean"
|
|
9
|
-
<button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click="sign"
|
|
8
|
+
<button class="btn" style="background-color: #f1e404;border-radius: 5px;margin-right: 10px" @click="clean">清除</button>
|
|
9
|
+
<button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click="sign">签名</button>
|
|
10
10
|
</div>
|
|
11
11
|
</div>
|
|
12
12
|
</div>
|
|
@@ -20,7 +20,7 @@ import Vue from "vue";
|
|
|
20
20
|
|
|
21
21
|
export default {
|
|
22
22
|
title: '签字',
|
|
23
|
-
props: ['filePath',
|
|
23
|
+
props: ['filePath','blobid','type', 'defname'],
|
|
24
24
|
data () {
|
|
25
25
|
return {
|
|
26
26
|
f_sign_path: null,
|
|
@@ -28,7 +28,10 @@ export default {
|
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
ready () {
|
|
31
|
+
console.log('在ready里打印一下this.filePath',this.filePath)
|
|
31
32
|
this.f_sign_path = this.filePath
|
|
33
|
+
console.log('在ready里打印一下this.f_sign_path',this.f_sign_path)
|
|
34
|
+
// this.getFiles()
|
|
32
35
|
},
|
|
33
36
|
methods: {
|
|
34
37
|
clean () {
|
|
@@ -37,6 +40,9 @@ export default {
|
|
|
37
40
|
this.$emit('sign-clean')
|
|
38
41
|
},
|
|
39
42
|
sign () {
|
|
43
|
+
debugger
|
|
44
|
+
this.type='手机签字'
|
|
45
|
+
console.log('==============签字打印this============',this)
|
|
40
46
|
this.delAudioFile(this.f_sign_path)
|
|
41
47
|
this.fileName = guid() + '.jpg'
|
|
42
48
|
HostApp.__callback__ = this.signCallback
|
|
@@ -61,7 +67,11 @@ export default {
|
|
|
61
67
|
},
|
|
62
68
|
uploadFile () {
|
|
63
69
|
console.log('===================签字文件上传==============')
|
|
70
|
+
console.log('===================打印id==============',HostApp.__this__.blobid)
|
|
64
71
|
let data = {
|
|
72
|
+
defname:HostApp.__this__.defname,
|
|
73
|
+
type:HostApp.__this__.type,
|
|
74
|
+
blodid: HostApp.__this__.blobid,
|
|
65
75
|
username: Vue.user.name,
|
|
66
76
|
fremarks: '报装手机签字文件',
|
|
67
77
|
fileName: HostApp.__this__.fileName,
|
|
@@ -71,19 +81,21 @@ export default {
|
|
|
71
81
|
console.log('-----------bzLogic-----------------')
|
|
72
82
|
console.log(JSON.stringify(data))
|
|
73
83
|
let res = HostApp.bzLogic({
|
|
74
|
-
|
|
75
|
-
|
|
84
|
+
'logic': 'appFileUpload',
|
|
85
|
+
'data': data
|
|
76
86
|
})
|
|
77
87
|
console.log('===============上传回调=================')
|
|
78
88
|
console.log(JSON.stringify(res))
|
|
79
89
|
HostApp.__this__.getFiles(res.id)
|
|
80
90
|
},
|
|
81
91
|
async getFiles (fileid) {
|
|
92
|
+
debugger
|
|
93
|
+
console.log('=========进来===============')
|
|
82
94
|
let http = new HttpResetClass()
|
|
83
|
-
|
|
95
|
+
console.log('=========进来===============')
|
|
84
96
|
let data = {
|
|
85
97
|
tablename: 't_files',
|
|
86
|
-
condition: `
|
|
98
|
+
condition: `f_blobid = '${this.blobid}' and fremarks='报装手机签字文件' `
|
|
87
99
|
}
|
|
88
100
|
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/singleTable`, {data: data}, {
|
|
89
101
|
// let res = await http.load('POST', `rs/sql/singleTable`, {data: data}, {
|
|
@@ -1,143 +1,143 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="panel">
|
|
3
|
-
<div class="panel-body panel-self" style="background-color: #F8F8F8;">
|
|
4
|
-
<div class="row form-group" style="height: 240px;overflow: scroll;">
|
|
5
|
-
<div class="col-xs-4 col-sm-3 col-md-2 col-xs-offset-1 col-sm-offset-1 col-md-offset-1" v-for="(index,file) in fileList">
|
|
6
|
-
<img-self :src="file.f_downloadURL" :width="120" :height="170"></img-self>
|
|
7
|
-
<img v-if="isdelete" src="../../../src/assets/删除.png" style="width: 15px;margin-top: -80px" @click.prevent="delfile(file, index)">
|
|
8
|
-
</div>
|
|
9
|
-
</div>
|
|
10
|
-
<div class="row text-right form-group" v-if="istakepic">
|
|
11
|
-
<v-select
|
|
12
|
-
class="fileType"
|
|
13
|
-
placeholder="请选择使用类型"
|
|
14
|
-
v-if="istype"
|
|
15
|
-
:search="false"
|
|
16
|
-
close-on-select
|
|
17
|
-
value-single
|
|
18
|
-
:options="typeList"
|
|
19
|
-
v-model="type"
|
|
20
|
-
:value.sync="type"
|
|
21
|
-
></v-select>
|
|
22
|
-
<button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click.prevent="takePic(type)">拍照</button>
|
|
23
|
-
</div>
|
|
24
|
-
</div>
|
|
25
|
-
</div>
|
|
26
|
-
</template>
|
|
27
|
-
|
|
28
|
-
<script>
|
|
29
|
-
import {HttpResetClass} from 'vue-client'
|
|
30
|
-
import {guid, toStandardTimeString} from '../Util'
|
|
31
|
-
import Vue from 'vue'
|
|
32
|
-
export default {
|
|
33
|
-
title: '附件',
|
|
34
|
-
props: ['blobid', 'type', 'defname', 'istype', 'typelabel', 'isdelete', 'istakepic'],
|
|
35
|
-
data () {
|
|
36
|
-
return {
|
|
37
|
-
fileList: []
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
ready () {
|
|
41
|
-
this.getFiles()
|
|
42
|
-
},
|
|
43
|
-
methods: {
|
|
44
|
-
async getFiles () {
|
|
45
|
-
console.log('----------------开始查询图片----------------')
|
|
46
|
-
this.fileList = []
|
|
47
|
-
|
|
48
|
-
let http = new HttpResetClass()
|
|
49
|
-
|
|
50
|
-
let data = {
|
|
51
|
-
tablename: 't_files',
|
|
52
|
-
condition: `f_blobid = '${this.blobid}' and fremarks = '手机拍照' order by f_uploaddate desc `
|
|
53
|
-
}
|
|
54
|
-
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/singleTable`, {data: data}, {
|
|
55
|
-
|
|
56
|
-
warnMsg: null,
|
|
57
|
-
resolveMsg: null
|
|
58
|
-
})
|
|
59
|
-
|
|
60
|
-
for (var i = 0; i < res.data.length; i++) {
|
|
61
|
-
console.log('-----------地址----------------')
|
|
62
|
-
console.log(`${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`)
|
|
63
|
-
res.data[i].f_downloadURL = `${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
this.fileList = res.data
|
|
67
|
-
},
|
|
68
|
-
delfile (file, index) {
|
|
69
|
-
this.$resetdelete(`${this.$androidUtil.getProxyUrl()}/rs/entity/t_files`, {id: file.id}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
|
|
70
|
-
this.$dispatch("delResid", file.id)
|
|
71
|
-
this.getFiles()
|
|
72
|
-
})
|
|
73
|
-
},
|
|
74
|
-
takePic (title) {
|
|
75
|
-
// 拍照成功回调
|
|
76
|
-
HostApp.__callback__ = this.cameraCallBack
|
|
77
|
-
HostApp.__this__ = this
|
|
78
|
-
let fileName = guid() + '.jpg'
|
|
79
|
-
// 打开相机
|
|
80
|
-
HostApp._open_a_page({
|
|
81
|
-
type: 'boomerang',
|
|
82
|
-
page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
|
|
83
|
-
param: {
|
|
84
|
-
file: fileName,
|
|
85
|
-
requestCode: 200,
|
|
86
|
-
callback: 'javascript:HostApp.__callback__("' + fileName + '", "%s");',
|
|
87
|
-
watermark: title + '\t时间:' + toStandardTimeString() + '\t' + Vue.user.name // 水印
|
|
88
|
-
}
|
|
89
|
-
})
|
|
90
|
-
},
|
|
91
|
-
cameraCallBack (fileName, fileUrl) {
|
|
92
|
-
console.log('-----------cameraCallBack-----------------')
|
|
93
|
-
|
|
94
|
-
let data = {
|
|
95
|
-
blodid: HostApp.__this__.blobid,
|
|
96
|
-
type: HostApp.__this__.type,
|
|
97
|
-
defname: HostApp.__this__.defname,
|
|
98
|
-
username: Vue.user.name,
|
|
99
|
-
fremarks: '手机拍照',
|
|
100
|
-
fileName: fileName,
|
|
101
|
-
fileUrl: fileUrl
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
console.log('-----------bzLogic-----------------')
|
|
105
|
-
HostApp.bzLogic({
|
|
106
|
-
'logic': 'appFileUpload',
|
|
107
|
-
'data': data
|
|
108
|
-
})
|
|
109
|
-
|
|
110
|
-
console.log('----------------开始回调查询-------------------')
|
|
111
|
-
HostApp.__this__.getFiles()
|
|
112
|
-
console.log('----------------查询回调结束-------------------')
|
|
113
|
-
|
|
114
|
-
HostApp.__callback__ = null
|
|
115
|
-
HostApp.__this__ = null
|
|
116
|
-
}
|
|
117
|
-
},
|
|
118
|
-
computed: {
|
|
119
|
-
typeList () {
|
|
120
|
-
if (this.typelabel) {
|
|
121
|
-
return this.$appdata.getParam(this.typelabel)
|
|
122
|
-
}
|
|
123
|
-
return this.$appdata.getParam('使用类型')
|
|
124
|
-
}
|
|
125
|
-
},
|
|
126
|
-
events: {
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
</script>
|
|
130
|
-
|
|
131
|
-
<style lang="less">
|
|
132
|
-
.fileType {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="panel">
|
|
3
|
+
<div class="panel-body panel-self" style="background-color: #F8F8F8;">
|
|
4
|
+
<div class="row form-group" style="height: 240px;overflow: scroll;">
|
|
5
|
+
<div class="col-xs-4 col-sm-3 col-md-2 col-xs-offset-1 col-sm-offset-1 col-md-offset-1" v-for="(index,file) in fileList">
|
|
6
|
+
<img-self :src="file.f_downloadURL" :width="120" :height="170"></img-self>
|
|
7
|
+
<img v-if="isdelete" src="../../../src/assets/删除.png" style="width: 15px;margin-top: -80px" @click.prevent="delfile(file, index)">
|
|
8
|
+
</div>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="row text-right form-group" v-if="istakepic">
|
|
11
|
+
<v-select
|
|
12
|
+
class="fileType"
|
|
13
|
+
placeholder="请选择使用类型"
|
|
14
|
+
v-if="istype"
|
|
15
|
+
:search="false"
|
|
16
|
+
close-on-select
|
|
17
|
+
value-single
|
|
18
|
+
:options="typeList"
|
|
19
|
+
v-model="type"
|
|
20
|
+
:value.sync="type"
|
|
21
|
+
></v-select>
|
|
22
|
+
<button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click.prevent="takePic(type)">拍照</button>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</template>
|
|
27
|
+
|
|
28
|
+
<script>
|
|
29
|
+
import {HttpResetClass} from 'vue-client'
|
|
30
|
+
import {guid, toStandardTimeString} from '../Util'
|
|
31
|
+
import Vue from 'vue'
|
|
32
|
+
export default {
|
|
33
|
+
title: '附件',
|
|
34
|
+
props: ['blobid', 'type', 'defname', 'istype', 'typelabel', 'isdelete', 'istakepic'],
|
|
35
|
+
data () {
|
|
36
|
+
return {
|
|
37
|
+
fileList: []
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
ready () {
|
|
41
|
+
this.getFiles()
|
|
42
|
+
},
|
|
43
|
+
methods: {
|
|
44
|
+
async getFiles () {
|
|
45
|
+
console.log('----------------开始查询图片----------------')
|
|
46
|
+
this.fileList = []
|
|
47
|
+
|
|
48
|
+
let http = new HttpResetClass()
|
|
49
|
+
|
|
50
|
+
let data = {
|
|
51
|
+
tablename: 't_files',
|
|
52
|
+
condition: `f_blobid = '${this.blobid}' and fremarks = '手机拍照' order by f_uploaddate desc `
|
|
53
|
+
}
|
|
54
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/singleTable`, {data: data}, {
|
|
55
|
+
// let res = await http.load('POST', `rs/sql/singleTable`, {data: data}, {
|
|
56
|
+
warnMsg: null,
|
|
57
|
+
resolveMsg: null
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
for (var i = 0; i < res.data.length; i++) {
|
|
61
|
+
console.log('-----------地址----------------')
|
|
62
|
+
console.log(`${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`)
|
|
63
|
+
res.data[i].f_downloadURL = `${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
this.fileList = res.data
|
|
67
|
+
},
|
|
68
|
+
delfile (file, index) {
|
|
69
|
+
this.$resetdelete(`${this.$androidUtil.getProxyUrl()}/rs/entity/t_files`, {id: file.id}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
|
|
70
|
+
this.$dispatch("delResid", file.id)
|
|
71
|
+
this.getFiles()
|
|
72
|
+
})
|
|
73
|
+
},
|
|
74
|
+
takePic (title) {
|
|
75
|
+
// 拍照成功回调
|
|
76
|
+
HostApp.__callback__ = this.cameraCallBack
|
|
77
|
+
HostApp.__this__ = this
|
|
78
|
+
let fileName = guid() + '.jpg'
|
|
79
|
+
// 打开相机
|
|
80
|
+
HostApp._open_a_page({
|
|
81
|
+
type: 'boomerang',
|
|
82
|
+
page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
|
|
83
|
+
param: {
|
|
84
|
+
file: fileName,
|
|
85
|
+
requestCode: 200,
|
|
86
|
+
callback: 'javascript:HostApp.__callback__("' + fileName + '", "%s");',
|
|
87
|
+
watermark: title + '\t时间:' + toStandardTimeString() + '\t' + Vue.user.name // 水印
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
},
|
|
91
|
+
cameraCallBack (fileName, fileUrl) {
|
|
92
|
+
console.log('-----------cameraCallBack-----------------')
|
|
93
|
+
|
|
94
|
+
let data = {
|
|
95
|
+
blodid: HostApp.__this__.blobid,
|
|
96
|
+
type: HostApp.__this__.type,
|
|
97
|
+
defname: HostApp.__this__.defname,
|
|
98
|
+
username: Vue.user.name,
|
|
99
|
+
fremarks: '手机拍照',
|
|
100
|
+
fileName: fileName,
|
|
101
|
+
fileUrl: fileUrl
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
console.log('-----------bzLogic-----------------')
|
|
105
|
+
HostApp.bzLogic({
|
|
106
|
+
'logic': 'appFileUpload',
|
|
107
|
+
'data': data
|
|
108
|
+
})
|
|
109
|
+
|
|
110
|
+
console.log('----------------开始回调查询-------------------')
|
|
111
|
+
HostApp.__this__.getFiles()
|
|
112
|
+
console.log('----------------查询回调结束-------------------')
|
|
113
|
+
|
|
114
|
+
HostApp.__callback__ = null
|
|
115
|
+
HostApp.__this__ = null
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
computed: {
|
|
119
|
+
typeList () {
|
|
120
|
+
if (this.typelabel) {
|
|
121
|
+
return this.$appdata.getParam(this.typelabel)
|
|
122
|
+
}
|
|
123
|
+
return this.$appdata.getParam('使用类型')
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
events: {
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
</script>
|
|
130
|
+
|
|
131
|
+
<style lang="less">
|
|
132
|
+
.fileType {
|
|
133
|
+
float: left;
|
|
134
|
+
.select-style {
|
|
135
|
+
background: #f8f8f8;
|
|
136
|
+
border: 0px;
|
|
137
|
+
}
|
|
138
|
+
input {
|
|
139
|
+
border-left: none;
|
|
140
|
+
width: 100%;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
</style>
|