apply-clients 5.0.35-4 → 5.0.35-40

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.
Files changed (68) hide show
  1. package/package.json +3 -3
  2. package/src/AndroidApp.vue +28 -28
  3. package/src/android.js +1 -1
  4. package/src/apply.js +6 -1
  5. package/src/assets//347/224/250/346/210/267/345/234/260/345/235/200.png +0 -0
  6. package/src/assets//347/224/250/346/210/267/345/247/223/345/220/215.png +0 -0
  7. package/src/assets//347/224/250/346/210/267/347/224/265/350/257/235.png +0 -0
  8. package/src/components/app_apply/ApplyDownList.vue +168 -164
  9. package/src/components/app_apply/ApplyInfo.vue +2 -2
  10. package/src/components/app_apply/ApplyListUpload.vue +268 -268
  11. package/src/components/app_apply/ApplyToDoList.vue +2822 -170
  12. package/src/components/app_apply/OneToMany.vue +192 -0
  13. package/src/components/app_apply/PlaceControler.vue +228 -185
  14. package/src/components/app_apply/ServiceControl.vue +350 -335
  15. package/src/components/app_apply/ServiceView.vue +383 -383
  16. package/src/components/app_apply/ezhou/FeiMinYongV.vue +109 -109
  17. package/src/components/app_apply/ezhou/FeiMinYongVV.vue +100 -100
  18. package/src/components/app_apply/ezhou/MinYong.vue +92 -92
  19. package/src/components/app_apply/ezhou/ServiceView.vue +367 -200
  20. package/src/components/product/Common/ApplyValidateBill.vue +13 -6
  21. package/src/components/product/Function/InstallInfoSelect.vue +1 -1
  22. package/src/components/product/Function/Service/FunctionServiceControl.vue +37 -1
  23. package/src/components/product/Function/functions/ApplyUpload.vue +556 -0
  24. package/src/components/product/Function/functions/InstallFee.vue +506 -342
  25. package/src/components/product/Process/ExplorationSelect.vue +8 -3
  26. package/src/components/product/Process/Processes/CustomerRecordMessage.vue +2 -5
  27. package/src/components/product/Process/Processes/Service/ApplyChargeSearch.vue +123 -37
  28. package/src/components/product/Process/Processes/Service/PaperTicketBill.vue +85 -0
  29. package/src/components/product/Process/Processes/Service/ServiceControl.vue +24 -5
  30. package/src/components/product/ServiceView.vue +10 -6
  31. package/src/components/product/Supervisory/Service/SupervisoryServiceControl.vue +54 -6
  32. package/src/components/product/Supervisory/SupervisoryList.vue +1 -1
  33. package/src/components/product/applyReport/ApplyReport.vue +205 -0
  34. package/src/components/product/applyReport/PrintApplyReport.vue +116 -0
  35. package/src/ezhouAndroid.js +11 -10
  36. package/src/index.js +8 -8
  37. package/src/main.js +1 -1
  38. package/src/plugins/commonService.js +11 -7
  39. package/static/newStyle/clear.png +0 -0
  40. package/static/newStyle/fife.png +0 -0
  41. package/static/newStyle/hidden.png +0 -0
  42. package/static/newStyle/label-clear.png +0 -0
  43. package/static/newStyle/left-img.png +0 -0
  44. package/static/newStyle/list_ok.png +0 -0
  45. package/static/newStyle/login-check.png +0 -0
  46. package/static/newStyle/login-con.png +0 -0
  47. package/static/newStyle/login-do.gif +0 -0
  48. package/static/newStyle/login-f.png +0 -0
  49. package/static/newStyle/login-info.png +0 -0
  50. package/static/newStyle/login-left.png +0 -0
  51. package/static/newStyle/login-org.png +0 -0
  52. package/static/newStyle/login-pwd.png +0 -0
  53. package/static/newStyle/login-user.png +0 -0
  54. package/static/newStyle/loginbg.gif +0 -0
  55. package/static/newStyle/loginbg1280.gif +0 -0
  56. package/static/newStyle/loginbg1366.gif +0 -0
  57. package/static/newStyle/loginbg_1.gif +0 -0
  58. package/static/newStyle/searchin.png +0 -0
  59. package/static/newStyle/searchout.png +0 -0
  60. package/static/newStyle/setting.png +0 -0
  61. package/static/newStyle/setting1.png +0 -0
  62. package/static/newStyle/shirk.png +0 -0
  63. package/static/newStyle/stretch_bottom.png +0 -0
  64. package/static/newStyle/stretch_left.png +0 -0
  65. package/static/newStyle/stretch_right.png +0 -0
  66. package/static/newStyle/stretch_top.png +0 -0
  67. package/static/newStyle/system-off.png +0 -0
  68. package/static/newStyle//350/261/252/344/275/263/347/207/203/346/260/224.png +0 -0
@@ -1,16 +1,20 @@
1
1
  <template>
2
2
  <div class="auto select-overspread">
3
- <div v-if="data.back_reason" class="panel panel-info">
4
- <span style="color: red"> 请注意被退回原因为:{{data.back_reason}}</span>
3
+ <div v-if="data.back_reason" class="panel panel-info">
4
+ <span style="color: red"> 请注意被退回原因为:{{ data.back_reason }}</span>
5
5
  </div>
6
6
  <validator name="v">
7
7
  <form class="form-horizontal">
8
8
  <div class="col-sm-11 form-group">
9
9
  <div v-for="(index,item) in data.fields">
10
10
  <!--input-->
11
- <div v-if="item.type==='input'" v-show="!item.hidden" :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-sm-4 form-group']">
12
- <label :class="item.label_bootstraped?item.label_bootstraped+' control-label':'control-label col-sm-6'">{{item.label}}:</label>
13
- <div :class="item.value_bootstraped?item.value_bootstraped:'col-sm-6'">
11
+ <div v-if="item.type==='input'" v-show="!item.hidden"
12
+ :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-sm-4 form-group']">
13
+ <label
14
+ :class="item.label_bootstraped?item.label_bootstraped+' control-label':'control-label col-sm-6'">{{
15
+ item.label
16
+ }}:</label>
17
+ <div :class="item.value_bootstraped?item.value_bootstraped:'col-sm-6'">
14
18
  <input class="form-control"
15
19
  :type="item.type"
16
20
  v-model="data.fields[index].value"
@@ -19,14 +23,18 @@
19
23
  :readonly="item.readonly"
20
24
  :disable="item.disable"
21
25
  @change="disabled_check(index,data.fields[index].required,data.fields[index].value)"
22
- @blur ="check_disable"
26
+ @blur="check_disable"
23
27
  />
24
28
  </div>
25
29
  </div>
26
30
  <!--number-->
27
- <div v-if="item.type==='number'" v-show="!item.hidden" :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-sm-4 form-group']">
28
- <label :class="item.label_bootstraped?item.label_bootstraped+' control-label':'control-label col-sm-6'">{{item.label}}:</label>
29
- <div :class="item.value_bootstraped?item.value_bootstraped:'col-sm-6'">
31
+ <div v-if="item.type==='number'" v-show="!item.hidden"
32
+ :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-sm-4 form-group']">
33
+ <label
34
+ :class="item.label_bootstraped?item.label_bootstraped+' control-label':'control-label col-sm-6'">{{
35
+ item.label
36
+ }}:</label>
37
+ <div :class="item.value_bootstraped?item.value_bootstraped:'col-sm-6'">
30
38
  <input class="form-control"
31
39
  :type="item.type"
32
40
  v-model="data.fields[index].value"
@@ -35,15 +43,19 @@
35
43
  :readonly="item.readonly"
36
44
  :disable="item.disable"
37
45
  @change="disabled_check(index,data.fields[index].required,data.fields[index].value)"
38
- @blur ="check_disable"
46
+ @blur="check_disable"
39
47
  />
40
48
  </div>
41
49
  </div>
42
50
 
43
51
  <!--时间datepicker-->
44
- <div v-if="item.type==='datepicker'" :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-xs-12 form-group']">
45
- <label style="margin-top: 0.7em" :class="item.label_bootstraped?item.label_bootstraped +' control-label':'control-label col-sm-6'">{{item.label}}:</label>
46
- <div :class="item.value_bootstraped?item.value_bootstraped:'col-sm-6'">
52
+ <div v-if="item.type==='datepicker'"
53
+ :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-xs-12 form-group']">
54
+ <label style="margin-top: 0.7em"
55
+ :class="item.label_bootstraped?item.label_bootstraped +' control-label':'control-label col-sm-6'">{{
56
+ item.label
57
+ }}:</label>
58
+ <div :class="item.value_bootstraped?item.value_bootstraped:'col-sm-6'">
47
59
  <datepicker
48
60
  :placeholder="item.placeholder"
49
61
  :value.sync="data.fields[index].value"
@@ -53,7 +65,7 @@
53
65
  class="form-control"
54
66
  :readonly="item.readonly"
55
67
  :disabled="item.disabled"
56
- @blur ="check_disable"
68
+ @blur="check_disable"
57
69
  :show-reset-button="reset">
58
70
  </datepicker>
59
71
  </div>
@@ -61,9 +73,13 @@
61
73
 
62
74
 
63
75
  <!--textarea-->
64
- <div v-if="item.type==='textarea'" :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-sm-12 form-group']">
65
- <label :class="item.label_bootstraped?item.label_bootstraped+' control-label':'control-label col-sm-2'">{{item.label}}:</label>
66
- <div :class="item.value_bootstraped?item.value_bootstraped:'col-sm-10'">
76
+ <div v-if="item.type==='textarea'"
77
+ :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-sm-12 form-group']">
78
+ <label
79
+ :class="item.label_bootstraped?item.label_bootstraped+' control-label':'control-label col-sm-2'">{{
80
+ item.label
81
+ }}:</label>
82
+ <div :class="item.value_bootstraped?item.value_bootstraped:'col-sm-10'">
67
83
  <textarea
68
84
  :readonly="item.readonly"
69
85
  :disabled="item.disabled"
@@ -71,57 +87,86 @@
71
87
  :rows="item.rows"
72
88
  v-model="data.fields[index].value"
73
89
  @change="disabled_check(index,data.fields[index].required,data.fields[index].value)"
74
- @blur ="check_disable"
90
+ @blur="check_disable"
75
91
  >
76
92
  </textarea>
77
93
  </div>
78
94
  </div>
79
95
 
80
96
  <!--radio-->
81
- <div v-if="item.type==='radio'" :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-sm-12 form-group']">
82
- <label v-if="item.label" :class="item.label_bootstraped?item.label_bootstraped+' control-label':'control-label col-sm-2'">{{item.label}}:</label>
97
+ <div v-if="item.type==='radio'"
98
+ :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-sm-12 form-group']">
99
+ <label v-if="item.label"
100
+ :class="item.label_bootstraped?item.label_bootstraped+' control-label':'control-label col-sm-2'">{{
101
+ item.label
102
+ }}:</label>
83
103
  <div class="col-xs-12">
84
- <div :class="item.value_bootstraped?item.value_bootstraped:item.items.length%2 == 0?'col-xs-5': 'col-xs-3'" v-for="(index2,row) in item.items">
85
- <label style="margin-top: 0.7em" for="row.label" :class="item.items.length%2 == 0?'col-xs-4': 'col-xs-2'">{{row.label}}</label>
86
- <input @blur ="check_disable" :class="item.items.length%2 == 0?'col-xs-1': 'col-xs-1'" :readonly="item.readonly" :disabled="item.disabled" style="margin-top: 10px" type="radio" :name="index" :id="row.label" v-bind:value="data.fields[index].items[index2].value" v-model="data.fields[index].value">
104
+ <div
105
+ :class="item.value_bootstraped?item.value_bootstraped:item.items.length%2 == 0?'col-xs-5': 'col-xs-3'"
106
+ v-for="(index2,row) in item.items">
107
+ <label style="margin-top: 0.7em" for="row.label"
108
+ :class="item.items.length%2 == 0?'col-xs-4': 'col-xs-2'">{{ row.label }}</label>
109
+ <input @blur="check_disable" :class="item.items.length%2 == 0?'col-xs-1': 'col-xs-1'"
110
+ :readonly="item.readonly" :disabled="item.disabled" style="margin-top: 10px" type="radio"
111
+ :name="index" :id="row.label" v-bind:value="data.fields[index].items[index2].value"
112
+ v-model="data.fields[index].value">
87
113
  </div>
88
114
  </div>
89
115
  </div>
90
116
 
91
117
  <!--select-->
92
- <div v-if="item.type==='select'" :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-sm-4 form-group']">
93
- <label :class="item.label_bootstraped?item.label_bootstraped+' control-label':'control-label col-sm-6'">{{item.label}}:</label>
94
- <input-select :class="item.value_bootstraped?item.value_bootstraped:'col-sm-6'" @blur ="check_disable" @change="select_change(index),disabled_check(index,data.fields[index].required,data.fields[index].value)" :readonly="item.readonly" :disable="item.disabled" :value.sync="data.fields[index].value" v-model="data.fields[index].value"
118
+ <div v-if="item.type==='select'"
119
+ :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-sm-4 form-group']">
120
+ <label
121
+ :class="item.label_bootstraped?item.label_bootstraped+' control-label':'control-label col-sm-6'">{{
122
+ item.label
123
+ }}:</label>
124
+ <input-select :class="item.value_bootstraped?item.value_bootstraped:'col-sm-6'" @blur="check_disable"
125
+ @change="select_change(index),disabled_check(index,data.fields[index].required,data.fields[index].value)"
126
+ :readonly="item.readonly" :disable="item.disabled" :value.sync="data.fields[index].value"
127
+ v-model="data.fields[index].value"
95
128
  :options='item.options' :valueSingle="true"></input-select>
96
129
 
97
130
  </div>
98
131
 
99
132
  <!--checkbox-->
100
- <div v-if="item.type==='checkbox'" :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-sm-12 form-group']">
101
- <label v-if="item.label" :class="item.label_bootstraped?item.label_bootstraped+' control-label':'control-label col-sm-2'">{{item.label}}:</label>
102
- <div style="margin-top: 0.7em" :class="item.value_bootstraped?item.value_bootstraped:'control-label col-sm-2'" v-for="(index2,row) in item.items">
103
- <label class="font-size form-group col-sm-6">{{row.label}}</label>
104
- <input :readonly="item.readonly" :disabled="item.disabled" type="checkbox" class="col-sm-6" :id="row.label" v-model="data.fields[index].items[index2].value">
133
+ <div v-if="item.type==='checkbox'"
134
+ :class="[data.fields[index].required&&!(data.fields[index].value) ? 'has-error' : '',data.fields[index].bootstraped?data.fields[index].bootstraped+' form-group':'col-sm-12 form-group']">
135
+ <label v-if="item.label"
136
+ :class="item.label_bootstraped?item.label_bootstraped+' control-label':'control-label col-sm-2'">{{
137
+ item.label
138
+ }}:</label>
139
+ <div style="margin-top: 0.7em"
140
+ :class="item.value_bootstraped?item.value_bootstraped:'control-label col-sm-2'"
141
+ v-for="(index2,row) in item.items">
142
+ <label class="font-size form-group col-sm-6">{{ row.label }}</label>
143
+ <input :readonly="item.readonly" :disabled="item.disabled" type="checkbox" class="col-sm-6"
144
+ :id="row.label" v-model="data.fields[index].items[index2].value">
105
145
  </div>
106
146
  </div>
107
147
 
108
148
 
109
149
  </div>
110
150
  </div>
111
- <div class="form-group col-sm-11" v-show="isshow">
151
+ <div class="form-group col-sm-11">
112
152
  <label class="text-left font">现场照片</label>
113
153
 
114
154
  <div class="auto">
115
155
  <div class="panel" style="padding: 10px 10px 5px 10px;">
116
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
117
- <div class="row" style="height: 240px;overflow: scroll;top: 1px" >
118
- <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px" v-for="(index,img) in model.f_overall_imgs">
156
+ <div class="panel-body panel-self"
157
+ style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
158
+ <div class="row" style="height: 240px;overflow: scroll;top: 1px">
159
+ <div class="col-xs-4 col-sm-3 col-md-2" style="margin-bottom: 35px"
160
+ v-for="(index,img) in model.f_overall_imgs">
119
161
  <img-self :src="img.f_overall_path" alt="现场照片" :width="140" :height="170"></img-self>
120
- <img src="../../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)" style="width: 15px;margin-top: -80px" alt="">
162
+ <img src="../../../assets/删除.png" @click="delfile('f_overall_path', img.f_overall_path,index)"
163
+ style="width: 15px;margin-top: -80px" alt="">
121
164
  </div>
122
165
  </div>
123
166
  <div class="row text-right div-photo">
124
- <button type="button" name="button" class="btn btn-photo" @click="takePic('f_overall_path', '现场照片')">拍照</button>
167
+ <button type="button" name="button" class="btn btn-photo" @click="takePic('f_overall_path', '现场照片')">
168
+ 拍照
169
+ </button>
125
170
  <!--<button type="button" name="button" class="btn btn-primary btn-photo" @click="takePic('f_overall_path', '总体安检照片1')">拍照</button>-->
126
171
  <!--&nbsp;&nbsp;&nbsp;&nbsp;<img src="../../../assets/remove.png" :class="style__" @click="delfile('f_overall_path', img.f_overall_path)" style="width: 25%;"></img>-->
127
172
  </div>
@@ -133,10 +178,11 @@
133
178
  <label class="text-left font">用户签名</label>
134
179
  <div class="auto">
135
180
  <div class="panel">
136
- <div class="panel-body panel-self" style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
181
+ <div class="panel-body panel-self"
182
+ style="background-color: #F8F8F8;width: 100%;height: 260px;position: relative">
137
183
  <div class="row" style="height: 240px;overflow: scroll;top: 1px">
138
184
  <div class="col-sm-4">
139
- <img :src="model.f_sign_path" :width="200" :height="150" />
185
+ <img :src="model.f_sign_path" :width="200" :height="150"/>
140
186
  </div>
141
187
  </div>
142
188
  <div class="row text-right div-photo">
@@ -146,16 +192,21 @@
146
192
  </div>
147
193
  </div>
148
194
  </div>
149
- <div class="form-group col-sm-11" v-show="kchege&&model.f_user_type=='非民用'">
150
- <input type="checkbox" v-model="model.f_hege"/><label class="text-left font">我已阅读<a href="#" @click="gotohetong('民用')">居民天然气供用气合同</a></label>
195
+
196
+ <!-- <input @click="gotohetong('民用')" type="checkbox" v-model="model.f_hege"/><label class="text-left font">我已阅读<a href="#" @click="gotohetong('民用')">居民天然气供用气合同</a></label>-->
197
+ <div class="form-group col-sm-11" v-show="kchege&&data.f_user_type=='民用'&&data.title!='现场勘查'">
198
+ <input type="checkbox" v-model="model.f_hege"/><label class="text-left font">我已阅读<a href="#"
199
+ @click="gotohetong('民用')">居民天然气供用气合同</a></label>
151
200
  </div>
152
- <div class="form-group col-sm-11" v-show="kchege&&model.f_user_type=='民用'">
153
- <input type="checkbox" v-model="model.f_hege"/><label class="text-left font">我已阅读<a href="#" @click="gotohetong('非民用1')">天然气工程建设安装合同</a>,<a href="#" @click="gotohetong('非民用2')">管道燃气供用气合同</a></label>
201
+ <div class="form-group col-sm-11" v-show="kchege&&(data.f_user_type=='非民用'||data.title=='现场勘查')">
202
+ <input type="checkbox" v-model="model.f_hege"/><label class="text-left font">我已阅读<a href="#"
203
+ @click="gotohetong('非民用1')">天然气工程建设安装合同</a>,<a
204
+ href="#" @click="gotohetong('非民用2')">管道燃气供用气合同</a></label>
154
205
  </div>
155
206
  <div class="form-group col-sm-11" v-show="kcbuhege">
156
- <div class="col-sm-12 form-group">
157
- <label class="control-label col-sm-2">不合格原因:</label>
158
- <div class="col-sm-10">
207
+ <div class="col-sm-12 form-group">
208
+ <label class="control-label col-sm-2">不合格原因:</label>
209
+ <div class="col-sm-10">
159
210
  <textarea
160
211
  class="form-control"
161
212
  v-model="model.f_buhege_reason">
@@ -165,11 +216,20 @@
165
216
 
166
217
 
167
218
  </div>
219
+
220
+
221
+
222
+ <div class="col-sm-11 form-group" v-for="item in onetomany" style="text-align: center">
223
+
224
+ <button type="button" name="button" class="btn btn-primary" style="background-color:#499edf;" @click="gotoOneToMany(item)">前往{{item.title}}</button>
225
+
226
+ </div>
227
+
168
228
  <div class="col-sm-11 form-group">
169
229
  <div class="form-group col-sm-6">
170
230
  <label class=" col-sm-4 control-label">分公司:</label>
171
231
  <div class="col-sm-5">
172
- <input class="form-control" type="text" v-model="model.f_filiale" disabled>
232
+ <input class="form-control" type="text" v-model="model.f_filiale" disabled>
173
233
  </div>
174
234
  </div>
175
235
  <div class="col-sm-6 form-group">
@@ -198,32 +258,36 @@
198
258
  </validator>
199
259
  <div class="from-group col-xs-12">
200
260
  <center>
201
- <div v-for="(index,button) in data.buttons" :class="[data.buttons.length==4?'col-xs-3':'',data.buttons.length==3?'col-xs-4':'',data.buttons.length==2?'col-xs-6':'']">
261
+ <div v-for="(index,button) in data.buttons"
262
+ :class="[data.buttons.length==4?'col-xs-3':'',data.buttons.length==3?'col-xs-4':'',data.buttons.length==2?'col-xs-6':'']">
202
263
  <!-- 按钮组 -->
203
- <button :disabled="(button.button_name==='提交'||button.button_name==='下发')&&disable_button"
204
- type="button" @click="clicked(index,button)" style="border-radius:5px; "
205
- :class="[(button.button_name==='提交'||button.button_name==='下发')&&disable_button?'btn btn-default':'btn btn-primary',data.buttons.length==4 ? 'col-xs-2 col-xs-offset-1':'',data.buttons.length==3 ? 'col-xs-2 col-xs-offset-2':'',data.buttons.length==2 ? 'col-xs-4 col-xs-offset-2':'']">
206
- {{button.button_name}}
264
+ <button :disabled="(button.button_name==='提交'||button.button_name==='下发')&&disable_button"
265
+ type="button" @click="clicked(index,button)" style="border-radius:5px; "
266
+ :class="[(button.button_name==='提交'||button.button_name==='下发')&&disable_button?'btn btn-default':'btn btn-primary',data.buttons.length==4 ? 'col-xs-2 col-xs-offset-1':'',data.buttons.length==3 ? 'col-xs-2 col-xs-offset-2':'',data.buttons.length==2 ? 'col-xs-4 col-xs-offset-2':'']">
267
+ {{ button.button_name }}
207
268
  </button>
208
269
  </div>
209
270
  </center>
210
271
  </div>
211
- <div class="form-group col-xs-12" style="height: 10px;width: 100%"></div>
272
+ <div class="form-group col-xs-12" style="height: 50px;width: 100%"></div>
212
273
  <!-- 模态框 -->
213
274
  <modal v-if="showmodal" :show.sync="showmodal" v-ref:modal backdrop="false">
214
275
  <header slot="modal-header" class="modal-header">
215
276
  <button type="button" class="close" @click="closemodal"><span>&times;</span></button>
216
- <h4 class="modal-title">{{model.button.button_name}}</h4>
277
+ <h4 class="modal-title">{{ model.button.button_name }}</h4>
217
278
  </header>
218
- <article slot="modal-body" class="modal-body">
219
- <div class="col-sm-12" v-for="(index,button_field) in data.buttons[model.button.button_index].button_fields">
220
- <label class="control-label col-sm-3" style="margin-top: 10px">{{button_field.label}}:</label>
221
- <div class="col-sm-7">
279
+ <article slot="modal-body" class="modal-body">
280
+ <div class="col-sm-12" v-for="(index,button_field) in data.buttons[model.button.button_index].button_fields">
281
+ <label class="control-label col-sm-3" style="margin-top: 10px">{{ button_field.label }}:</label>
282
+ <div class="col-sm-7">
222
283
  <!--select-->
223
- <input-select v-if="button_field.type=='select'" :value.sync="data.buttons[model.button.button_index].button_fields[index].value" v-model="data.buttons[model.button.button_index].button_fields[index].value"
284
+ <input-select v-if="button_field.type=='select'"
285
+ :value.sync="data.buttons[model.button.button_index].button_fields[index].value"
286
+ v-model="data.buttons[model.button.button_index].button_fields[index].value"
224
287
  :options='button_field.options'></input-select>
225
288
  <!-- input -->
226
- <input v-else type="text" class="form-control" v-model="data.buttons[model.button.button_index].button_fields[index].value"/>
289
+ <input v-else type="text" class="form-control"
290
+ v-model="data.buttons[model.button.button_index].button_fields[index].value"/>
227
291
  </div>
228
292
  </div>
229
293
  </article>
@@ -236,6 +300,8 @@
236
300
  <script>
237
301
 
238
302
  // Date格式化
303
+
304
+
239
305
  Date.prototype.Format = function (fmt) {
240
306
  var o = {
241
307
  "M+": this.getMonth() + 1, //月份
@@ -254,80 +320,66 @@ Date.prototype.Format = function (fmt) {
254
320
 
255
321
  import Vue from 'vue'
256
322
  import * as Util from '../../Util'
323
+ import {HttpResetClass} from 'vue-client'
257
324
  export default {
258
325
  title: '报建业务通用组件',
259
- props: ['data'],
326
+ props: ['data', 'model'],
260
327
 
261
- data () {
328
+ data() {
262
329
  return {
263
- isshow:true,
264
- kchege:false,
265
- kcbuhege:false,
266
- model:{
267
-
268
- button:{
269
- button_name:null,
270
- button_index:null
271
- },
272
- f_filiale:null,
273
- f_parentname:null,
274
- f_operate_date:null,
275
- f_operator:null
276
- },
277
- countmoney:[0,0,0],
278
- data:null,
279
- showmodal:false,
280
- disable_button:true
330
+ isshow: true,
331
+ kchege: false,
332
+ kcbuhege: false,
333
+ countmoney: [0, 0, 0],
334
+ data: null,
335
+ showmodal: false,
336
+ disable_button: true,
337
+ onetomany:[]
281
338
  }
282
339
  },
283
- created(){
340
+ created() {
284
341
 
285
342
  // 初始化数据
286
343
  this.initializtion()
287
344
  },
288
345
  methods: {
289
- gotohetong(val){
290
- var _this = this
291
- var pardate = {
292
- _this: _this,
293
- title: '合同',
294
- safe: true
295
- }
296
- _this.$dispatch('gotoson',pardate)
297
- if (val=='民用'){
298
- _this.$goto('minyong', {},'self')
299
- }else if (val=='非民用1'){
300
- _this.$goto('feiminyongv', {},'self')
301
- }else {
302
- _this.$goto('feiminyongvv', {},'self')
303
- }
346
+ gotoOneToMany(item){
347
+ item.f_process_id = this.data.f_process_id
348
+ item.f_filiale = this.data.f_filiale
349
+ item.f_apply_num = this.data.f_apply_num
350
+ this.$dispatch('onetomany', item)
351
+ },
352
+ gotohetong(val) {
353
+ console.log(val)
354
+ console.log("进入goto")
355
+ this.$dispatch('gotonewpage', val)
304
356
  },
305
357
  cameraCallBack(prop, fileName) {
306
- if(prop == 'f_overall_path'){
358
+ if (prop == 'f_overall_path') {
307
359
  let f_overall_path = fileName + '?' + Math.random()
308
360
  HostApp.__this__.model.f_overall_imgs.push({
309
- f_overall_path:f_overall_path,
310
- f_overall_name:this.data.title
361
+ f_overall_path: f_overall_path,
362
+ f_overall_name: this.data.title
311
363
  })
312
- }else{
364
+ } else {
313
365
  HostApp.__this__.model[prop] = fileName + '?' + Math.random()
314
366
  }
315
367
  HostApp.__callback__ = null
316
368
  HostApp.__this__ = null
317
369
  },
318
- takePic(prop, title,index) {
370
+ takePic(prop, title, index) {
319
371
  HostApp.__callback__ = this.cameraCallBack
320
372
  HostApp.__this__ = this
321
373
  console.log("prop:" + prop)
322
374
  console.log("this.prop:" + this.model[prop])
323
375
  let fileName
324
- if(prop == 'f_overall_path'){
376
+ if (prop == 'f_overall_path') {
325
377
  if (!this.model.f_overall_imgs[index] || this.model.f_overall_imgs[index].f_overall_path.includes("nopic.png")) {
326
378
  fileName = Util.guid() + '-' + prop + '.jpg'
327
379
  } else {
328
380
  fileName = Util.getFileName(this.model.f_overall_imgs[index].f_overall_path)
329
381
  }
330
- }else{
382
+ } else {
331
383
  if (!this.model[prop] || this.model[prop].includes("nopic.png")) {
332
384
  fileName = Util.guid() + '-' + prop + '.jpg'
333
385
  } else {
@@ -361,10 +413,6 @@ export default {
361
413
  }
362
414
  },
363
415
  sign() {
364
- // if(!this.model.f_read_instructions){
365
- // this.$showMessage('请先阅读并勾选用户须知内容后进行签名!')
366
- // return
367
- // }
368
416
  this.delAudioFile('f_sign_path', this.model.f_sign_path)
369
417
  let prop = 'f_sign_path'
370
418
  let idx = 'aofeng'
@@ -382,53 +430,104 @@ export default {
382
430
  callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");'
383
431
  })
384
432
  },
385
- delfile(prop, fileName,index) {
433
+ delfile(prop, fileName, index) {
386
434
  if (fileName == Vue.nopic)
387
435
  return
388
436
  else {
389
- if(prop == 'f_overall_path'){
390
- this.model.f_overall_imgs.splice(index,1)
437
+ if (prop == 'f_overall_path') {
438
+ this.model.f_overall_imgs.splice(index, 1)
391
439
  HostApp.delfile(fileName)
392
- }else{
440
+ } else {
393
441
  HostApp.delfile(fileName)
394
442
  this.model[prop] = Vue.nopic
395
443
  }
396
444
  }
397
445
  },
398
446
  // 初始化数据
399
- initializtion(){
400
- if (this.data.title=='安装通气'){
401
- this.isshow=false
447
+ initializtion() {
448
+
449
+ if (this.data.title == '现场勘查' || this.data.title == '现场勘查定价') {
450
+ this.isshow = false
402
451
  }
403
452
  console.log("5555555555555")
453
+ console.log("f_apply_num",this.data.f_apply_num)
454
+ console.log("f_filiale",this.data.f_filiale)
455
+ console.log(this.data.f_user_type)
404
456
  console.log(this.isshow)
405
457
  Vue.nopic = 'file:///android_asset/nopic.png'
406
458
  if (!this.model.f_sign_path)
407
459
  this.$set('model.f_sign_path', Vue.nopic)
408
- console.log('!this.model.f_overall_imgs==>'+!this.model.f_overall_imgs)
409
- if (!this.model.f_overall_imgs){
460
+ console.log('!this.model.f_overall_imgs==>' + !this.model.f_overall_imgs)
461
+ if (!this.model.f_overall_imgs) {
410
462
  let imgs = []
411
- // imgs.push({f_overall_path:Vue.nopic})
412
463
  this.$set('model.f_overall_imgs', imgs)
413
464
  console.log('进入setmodel.f_overall_imgs')
414
465
  }
415
466
  console.log('进入serviceview的initializtion方法')
416
467
  console.log(JSON.stringify(this.data))
417
- // let temp = this.data
418
- // let temp = JSON.parse()
419
- // this.data = temp
420
- // datepicker 没有值给当时值
421
- if(this.data.fields){
422
- for(let i=0;i<this.data.fields.length;i++){
423
- if (this.data.fields[i].value){
424
- if (this.data.fields[i].value=='null'){
425
- console.log("看看为空的字段名"+this.data.fields[i].label)
426
- this.data.fields[i].value=null
468
+ if(this.data.onetomany){
469
+ console.log(JSON.stringify(this.data.onetomany))
470
+ this.onetomany = this.data.onetomany
471
+ }
472
+ if (this.data.fields) {
473
+ for (let i = 0; i < this.data.fields.length; i++) {
474
+ if (this.data.fields[i].value) {
475
+ if (this.data.fields[i].value == 'null') {
476
+ console.log("看看为空的字段名" + this.data.fields[i].label)
477
+ this.data.fields[i].value = null
427
478
  console.log("赋值完成")
428
479
  }
429
480
  }
430
- if(this.data.fields[i].type==='datepicker'&&!this.data.fields[i].value){
431
- this.data.fields[i].value=new Date().Format("yyyy-MM-dd HH:mm:ss")
481
+ if (this.data.fields[i].type === 'datepicker' && !this.data.fields[i].value) {
482
+ this.data.fields[i].value = new Date().Format("yyyy-MM-dd HH:mm:ss")
483
+ }
484
+ if (this.data.fields[i].label==='气价名称'){
485
+ console.log(this.data.fields[i].options)
486
+ let data={
487
+ items:"f_price_name",
488
+ tablename:"t_stairprice",
489
+ condition:`f_filialeids = '${Vue.user.f_orgids}' and f_state= '有效' and getdate()>=f_perform_date and getdate()<=f_end_date `,
490
+ orderitem:'id'
491
+ }
492
+ let qijia=[]
493
+ new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {data: data}, {resolveMsg: null, rejectMsg: null}).then(res=>{
494
+ console.log("66666666666666666666")
495
+ console.log(JSON.stringify(res))
496
+ console.log(typeof res)
497
+ //console.log(JSON.stringify(res.data[0]))
498
+ let result=res.data
499
+ result.forEach(ress=>{
500
+ qijia.push({
501
+ label:ress.f_price_name,
502
+ value:ress.f_price_name
503
+ })
504
+ })
505
+ this.data.fields[i].options=qijia
506
+ })
507
+ }
508
+ if (this.data.fields[i].label==='气表品牌'){
509
+ console.log(this.data.fields[i].options)
510
+ let data={
511
+ items:"f_meter_brand",
512
+ tablename:"t_gasbrand",
513
+ condition:`f_filialeids = '${Vue.user.f_orgids}'`,
514
+ orderitem:'id'
515
+ }
516
+ let pinpai=[]
517
+ new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {data: data}, {resolveMsg: null, rejectMsg: null}).then(res=>{
518
+ console.log("666666666666666666662")
519
+ console.log(JSON.stringify(res))
520
+ console.log(typeof res)
521
+ //console.log(JSON.stringify(res.data[0]))
522
+ let result=res.data
523
+ result.forEach(ress=>{
524
+ pinpai.push({
525
+ label:ress.f_meter_brand,
526
+ value:ress.f_meter_brand
527
+ })
528
+ })
529
+ this.data.fields[i].options=pinpai
530
+ })
432
531
  }
433
532
  }
434
533
  }
@@ -459,36 +558,65 @@ export default {
459
558
  }
460
559
  },
461
560
  // 模态框点击确定按钮
462
- acknowledge(){
463
- for(let i=0;i<this.data.buttons[this.model.button.button_index].button_fields.length;i++){
561
+ acknowledge() {
562
+ for (let i = 0; i < this.data.buttons[this.model.button.button_index].button_fields.length; i++) {
464
563
  this.model.button.button_fields[this.data.buttons[this.model.button.button_index].button_fields[i].field] = this.data.buttons[this.model.button.button_index].button_fields[i].value
465
564
  }
466
- this.showmodal=false
467
- this.$dispatch('button',this.model)
565
+ this.showmodal = false
566
+ this.$dispatch('button', this.model)
468
567
  },
469
568
  // 关闭模态框
470
- closemodal(){
471
- this.showmodal=false
569
+ closemodal() {
570
+ this.showmodal = false
472
571
  },
473
- watchmoney(val1,val2) {
572
+ watchmoney(val1, val2) {
474
573
  console.log("监听改变的值")
475
574
  console.log(val1)
476
575
  console.log(val2)
477
576
  },
478
577
  // 点击按钮
479
- clicked(index,button){
578
+ clicked(index, button) {
480
579
  console.log(`点击了按钮index:${index}+button:${JSON.stringify(button)}`);
580
+ if (this.data.title != '现场勘查' && this.data.title != '现场勘查定价' && button.button_name=='提交') {
581
+ if (!this.model.f_overall_imgs || this.model.f_overall_imgs.length == 0){
582
+ this.$showMessage("必须有现场照片")
583
+ return;
584
+ }
585
+ if(Vue.nopic==this.model.f_sign_path){
586
+ this.$showMessage("必须有签名照片")
587
+ return;
588
+ }
589
+ this.model.f_overall_imgs.push({
590
+ f_overall_path: this.model.f_sign_path,
591
+ f_overall_name: this.data.title
592
+ })
593
+ }
594
+
595
+
596
+ if ((this.data.title == '现场勘查' || this.data.title == '现场勘查定价') && button.button_name=='提交') {
597
+ if (!this.model.f_overall_imgs || this.model.f_overall_imgs.length == 0){
598
+ this.$showMessage("必须有现场照片")
599
+ return;
600
+ }
601
+ }
602
+ if (this.kchege == 'true') {
603
+ console.log(this.model.f_hege)
604
+ if (this.model.f_hege != 'true') {
605
+ this.$showMessage("请勾选阅读合同")
606
+ return
607
+ }
608
+ }
481
609
  // 组织model.fields数据
482
610
  let modeldatas = {}
483
- for(let i=0;i<this.data.fields.length;i++){
611
+ for (let i = 0; i < this.data.fields.length; i++) {
484
612
  console.log(JSON.stringify(this.data.fields[i]))
485
613
  // checkbox特殊处理
486
- if(this.data.fields[i].type==='checkbox'){
487
- for(let j=0;j<this.data.fields[i].items.length;j++){
488
- modeldatas[this.data.fields[i].items[j].field]=this.data.fields[i].items[j].value
614
+ if (this.data.fields[i].type === 'checkbox') {
615
+ for (let j = 0; j < this.data.fields[i].items.length; j++) {
616
+ modeldatas[this.data.fields[i].items[j].field] = this.data.fields[i].items[j].value
489
617
  }
490
- }else{
491
- modeldatas[this.data.fields[i].field]=this.data.fields[i].value
618
+ } else {
619
+ modeldatas[this.data.fields[i].field] = this.data.fields[i].value
492
620
  }
493
621
  }
494
622
  modeldatas.f_process_id = this.data.f_process_id
@@ -502,69 +630,108 @@ export default {
502
630
  this.model = modeldatas
503
631
  // 初始化model.button数据
504
632
  let buttondatas = {
505
- button_fields:{}
633
+ button_fields: {}
506
634
  }
507
- buttondatas.button_name=button.button_name
508
- buttondatas.button_index=index
509
- if(button.button_fields){
510
- for(let i=0;i<button.button_fields.length;i++){
511
- buttondatas.button_fields[button.button_fields[i].field]=button.button_fields[i].value
635
+ buttondatas.button_name = button.button_name
636
+ buttondatas.button_index = index
637
+ if (button.button_fields) {
638
+ for (let i = 0; i < button.button_fields.length; i++) {
639
+ buttondatas.button_fields[button.button_fields[i].field] = button.button_fields[i].value
512
640
  }
513
641
  }
514
- this.model.button =buttondatas
515
-
516
- if(button.button_name==='退回'){
517
- this.showmodal=true
518
- }else if(button.button_name==='下发'){
519
- this.showmodal=true
520
- }else{
521
- this.$dispatch('button',this.model)
642
+ this.model.button = buttondatas
643
+
644
+ if (button.button_name === '退回') {
645
+ this.showmodal = true
646
+ } else if (button.button_name === '下发') {
647
+ this.showmodal = true
648
+ } else {
649
+ this.$dispatch('button', this.model)
522
650
  }
523
651
  },
524
652
  // 级联操作预留
525
- select_change(index){
526
- this.$dispatch('select_cascade',index)
653
+ select_change(index) {
654
+ this.$dispatch('select_cascade', index)
527
655
  },
528
656
  // 检测按钮的disable
529
- disabled_check(index,required,value){
657
+ disabled_check(index, required, value) {
530
658
  console.log("被检测到的值是什么")
531
659
  console.log(index)
532
660
  console.log(required)
533
661
  console.log(value)
534
662
  console.log(this.data.title)
535
- if (this.data.title=='现场勘查定价'){
536
- if (index==6||index==7||index==5){
537
- this.countmoney[index-5]=parseInt(this.data.fields[index].value)
538
- console.log(this.data.fields[index].value)
539
- console.log("做出了改变")
663
+ if (this.data.fields[index].label=='气表品牌'){
664
+ console.log("进入改变气表型号")
665
+ console.log(this.data.fields[index+1].options)
666
+ this.data.fields[index+1].options=[]
667
+ let data={
668
+ items:"gm.f_meter_style",
669
+ tablename:"t_gasmodel gm left join t_gasbrand gb on gm.f_gasbrand_id=gb.id",
670
+ condition:`gb.f_filialeids = '${Vue.user.f_orgids}' and gb.f_meter_brand='${value}'`,
671
+ orderitem:'gm.id'
540
672
  }
541
- console.log(JSON.stringify(this.countmoney))
542
- let money=0
543
- for (let i = 0; i < this.countmoney.length; i++) {
544
- money+=this.countmoney[i]
673
+ let xinghao=[]
674
+ new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {data: data}, {resolveMsg: null, rejectMsg: null}).then(res=>{
675
+ console.log("66666666666666666666")
676
+ console.log(JSON.stringify(res))
677
+ console.log(typeof res)
678
+ //console.log(JSON.stringify(res.data[0]))
679
+ let result=res.data
680
+ result.forEach(ress=>{
681
+ xinghao.push({
682
+ label:ress.f_meter_style,
683
+ value:ress.f_meter_style
684
+ })
685
+ })
686
+ this.data.fields[index+1].options=xinghao
687
+ })
688
+ }
689
+ if (this.data.title == '现场勘查') {
690
+ if (index == 4) {
691
+ if (value == '合格') {
692
+ this.kchege = true
693
+ this.kcbuhege = false
694
+ console.log("1111111111" + this.kchege)
695
+ } else if (value == '不合格') {
696
+ this.kcbuhege = true
697
+ this.kchege = false
698
+ console.log("1111111111" + this.kcbuhege)
699
+ }
545
700
  }
546
- this.$set('data.fields[8].value',money)
547
- this.$set('data.fields[9].value',money)
548
- if (index==10){
549
- console.log("1111111111"+value)
550
- if (value=='合格'){
551
- this.kchege=true
552
- this.kcbuhege=false
553
- console.log("1111111111"+this.kchege)
554
- }else if (value=='不合格'){
555
- this.kcbuhege=true
556
- this.kchege=false
557
- console.log("1111111111"+this.kcbuhege)
701
+ }
702
+ if (this.data.title == '现场勘查定价') {
703
+ // if (index == 6 || index == 7 || index == 5) {
704
+ // this.countmoney[index - 5] = parseInt(this.data.fields[index].value)
705
+ // console.log(this.data.fields[index].value)
706
+ // console.log("做出了改变")
707
+ // }
708
+ // console.log(JSON.stringify(this.countmoney))
709
+ // let money = 0
710
+ // for (let i = 0; i < this.countmoney.length; i++) {
711
+ // money += this.countmoney[i]
712
+ // }
713
+ // this.$set('data.fields[8].value', money)
714
+ // this.$set('data.fields[9].value', money)
715
+ if (index == 10) {
716
+ console.log("1111111111" + value)
717
+ if (value == '合格') {
718
+ this.kchege = true
719
+ this.kcbuhege = false
720
+ console.log("1111111111" + this.kchege)
721
+ } else if (value == '不合格') {
722
+ this.kcbuhege = true
723
+ this.kchege = false
724
+ console.log("1111111111" + this.kcbuhege)
558
725
  }
559
726
  }
560
727
  }
561
- if(required&&value){
728
+ if (required && value) {
562
729
  this.disable_button = false
563
730
 
564
731
  let fields = this.data.fields
565
732
  let flag = false
566
- for(let i = 0;i<fields.length;i++){
567
- if(fields[i].type!=='checkbox'&&fields[i].required&&!fields[i].value){
733
+ for (let i = 0; i < fields.length; i++) {
734
+ if (fields[i].type !== 'checkbox' && fields[i].required && !fields[i].value) {
568
735
  flag = true
569
736
  }
570
737
  }
@@ -572,44 +739,44 @@ export default {
572
739
  }
573
740
  }
574
741
  },
575
- watch:{
576
- 'data.filed[12].value'(val){
742
+ watch: {
743
+ 'data.filed[12].value'(val) {
577
744
  console.log("变动")
578
- if (this.data.title=='现场勘查定价'){
745
+ if (this.data.title == '现场勘查定价') {
579
746
 
580
747
  }
581
748
  },
582
- 'data.operate_date'(){
583
- if(this.data.filiale){
749
+ 'data.operate_date'() {
750
+ if (this.data.filiale) {
584
751
  this.model.f_filiale = this.data.filiale
585
- }else{
752
+ } else {
586
753
  this.model.f_filiale = Vue.user.f_parentname
587
754
  }
588
- if(this.data.f_parentname){
755
+ if (this.data.f_parentname) {
589
756
  this.model.f_parentname = this.data.f_parentname
590
- }else{
757
+ } else {
591
758
  this.model.f_parentname = Vue.user.f_parentname
592
759
  }
593
- if(this.data.operate_date){
760
+ if (this.data.operate_date) {
594
761
  this.model.f_operate_date = this.data.operate_date
595
- }else{
762
+ } else {
596
763
  this.model.f_operate_date = new Date().Format("yyyy-MM-dd HH:mm:ss")
597
764
  }
598
- if(this.data.operator){
765
+ if (this.data.operator) {
599
766
  this.model.f_operator = this.data.operator
600
- }else{
767
+ } else {
601
768
  this.model.f_operator = Vue.user.name
602
769
  }
603
770
  },
604
- deep:true
771
+ deep: true
605
772
  },
606
773
  computed: {
607
774
  // 输入后按钮检测
608
- check_disable: function (){
775
+ check_disable: function () {
609
776
  let fields = this.data.fields
610
777
  let flag = false
611
- for(let i = 0;i<fields.length;i++){
612
- if(fields[i].type!=='checkbox'&&fields[i].required&&!fields[i].value){
778
+ for (let i = 0; i < fields.length; i++) {
779
+ if (fields[i].type !== 'checkbox' && fields[i].required && !fields[i].value) {
613
780
  flag = true
614
781
  }
615
782
  }