apply-clients 3.3.49 → 3.3.50

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 (38) hide show
  1. package/build/dev-server.js +131 -130
  2. package/package.json +1 -1
  3. package/src/AndroidApp.vue +35 -35
  4. package/src/apply.js +93 -93
  5. package/src/applyAndroid.js +31 -31
  6. package/src/components/android/AppOnetomany.vue +301 -301
  7. package/src/components/android/AppServiceView.vue +566 -566
  8. package/src/components/android/AppSign.vue +142 -142
  9. package/src/components/android/Function/AppInstallFunction.vue +366 -366
  10. package/src/components/android/Process/AppExplorationUser.vue +340 -340
  11. package/src/components/android/Process/AppServiceControl.vue +761 -761
  12. package/src/components/android/Process/Processes/AppBuildSign.vue +46 -46
  13. package/src/components/android/Supervisory/AppProcessSupervisory.vue +300 -300
  14. package/src/components/android/Supervisory/AppSupervisoryCart.vue +119 -119
  15. package/src/components/product/ApplyCharge/ApplyChargeList.vue +11 -1
  16. package/src/components/product/Function/InstallFunction.vue +132 -132
  17. package/src/components/product/Function/InstallInfoSelect.vue +320 -310
  18. package/src/components/product/Function/Service/FunctionServiceControl.vue +445 -445
  19. package/src/components/product/Material/MaterialDetailed.vue +235 -235
  20. package/src/components/product/OldApply/Monitor/MonitorApply.vue +329 -329
  21. package/src/components/product/OldApply/OldApply.vue +150 -150
  22. package/src/components/product/Onetomany.vue +377 -377
  23. package/src/components/product/Print/BuildOrder/buildOrderList.vue +264 -264
  24. package/src/components/product/Print/BuildOrder/printBuildOrder.vue +153 -153
  25. package/src/components/product/Process/ExplorationSelect.vue +457 -457
  26. package/src/components/product/Process/ExplorationUser.vue +147 -147
  27. package/src/components/product/Process/Processes/InstallationDetails.vue +592 -592
  28. package/src/components/product/Process/Processes/Print/printCharge.vue +142 -142
  29. package/src/components/product/Process/Processes/Print/printRefund.vue +196 -196
  30. package/src/components/product/Process/Processes/addressAndUserinfoManagement.vue +207 -207
  31. package/src/components/product/Process/Processes/chargeManagement.vue +656 -656
  32. package/src/components/product/Process/Service/ServiceControl.vue +1265 -1265
  33. package/src/components/product/ServiceView.vue +631 -631
  34. package/src/components/product/Supervisory/SupervisoryControl.vue +137 -137
  35. package/src/components/product/Supervisory/SupervisoryList.vue +296 -296
  36. package/src/components/product/Supervisory/SupervisoryhCart.vue +130 -130
  37. package/src/components/product/VueUtils/ApplyUpload.vue +273 -273
  38. package/src/components/product/VueUtils/HighMeter.vue +208 -208
@@ -1,301 +1,301 @@
1
- <template>
2
- <div>
3
- <div class="col-sm-12 col-xs-12 form-group app-btn">
4
- <button
5
- :class="onetomany.add.class || 'btn btn-info'"
6
- @click.prevent="openAdd()"
7
- v-if="!onetomany.add.hidden"
8
- :style="onetomany.add.style || ''">
9
- {{ onetomany.add.text || '添加'}}
10
- </button>
11
- </div>
12
- <div class="col-sm-12 col-xs-12">
13
- <list :model="onetomany" partial='list'>
14
- <div partial class="auto app-text panel">
15
- <div class="panel-body panel-self">
16
- <div class="row" v-for="field in $parent.$parent.onetomany.fields" v-if="!field.displayPosition || field.displayPosition === 'list'">
17
- <p class="col-xs-3 text-left font label-justify"><b>{{ field.label }}</b></p>
18
- <p class="col-xs-8 col-xs-offset-1 text-left input-font">{{ row[field.field] }}</p>
19
- </div>
20
- <div class="row text-right" v-if="!$parent.$parent.onetomany.hiddenOperate">
21
- <button
22
- :class="$parent.$parent.onetomany.update.style || 'btn btn-warning'"
23
- @click.prevent="$parent.$parent.openUpdate($index)"
24
- v-if="!$parent.$parent.onetomany.update.hidden"
25
- :style="$parent.$parent.onetomany.update.style || ''">
26
- {{ $parent.$parent.onetomany.update.text || '修改'}}
27
- </button>
28
- <button
29
- :class="$parent.$parent.onetomany.delete.style || 'btn btn-danger'"
30
- @click.prevent="$parent.$parent.openDelete($index)"
31
- v-if="!$parent.$parent.onetomany.delete.hidden"
32
- :style="$parent.$parent.onetomany.delete.style || ''">
33
- {{ $parent.$parent.onetomany.delete.text || '删除'}}
34
- </button>
35
- </div>
36
- </div>
37
- </div>
38
- </list>
39
- </div>
40
-
41
-
42
- <!-- onetomany模态框 -->
43
- <modal v-if="showModal" :show.sync="showModal" backdrop="false" :large="onetomany.modalSize === 'large' ? true : false" :small="onetomany.modalSize === 'small' ? true : false">
44
- <header slot="modal-header" class="modal-header">
45
- <button type="button" class="close" @click="closeModal()"><span>&times;</span></button>
46
- <span class="modal-title"><font
47
- size="3">{{modelTitle}}</font></span>
48
- </header>
49
- <article slot="modal-body" class="modal-body clearfix">
50
- <div v-for="(index,item) in onetomany.fields">
51
- <!--input-->
52
- <div :style="item.style ? item.style : ''"
53
- v-if="(item.type==='input' || item.type==='number'||item.type === 'tel'||item.type === 'email') && !item.hidden && (item.device === 'app' || !item.device)"
54
- :class="[item.required && !(item.value) ? 'apply-has-error' : '', item.bootstraped ? item.bootstraped + ' form-group app-input':'col-xs-12 form-group app-input']">
55
- <label class="control-label-justify">{{item.label}}</label>
56
- <div :style="item.value_style ? item.value_style:''"
57
- :class="item.value_bootstraped ? item.value_bootstraped : 'col-xs-8'">
58
- <input class="" style="width: 100%"
59
- :type="item.type"
60
- v-model="onetomany.fields[index].value"
61
- :placeholder="item.placeholder"
62
- :value="onetomany.fields[index].value"
63
- :readonly="item.readonly"
64
- :disabled="item.disabled"
65
- @change="onchange(index)"
66
- @blur="onblur(index)"
67
- @input="oninput(index)"
68
- />
69
- </div>
70
- </div>
71
-
72
- <!--select-->
73
- <div :style="item.style ? item.style : ''"
74
- v-if="item.type==='select' && !item.hidden && (item.device === 'app' || !item.device)"
75
- :class="[item.required && !(item.value) ? 'apply-has-error' : '', item.bootstraped ? item.bootstraped + ' form-group app-input':'col-xs-12 form-group app-input']">
76
- <label class="control-label-justify">{{item.label}}</label>
77
- <div :style="item.value_style ? item.value_style:''"
78
- :class="item.value_bootstraped ? item.value_bootstraped : 'col-xs-8'">
79
- <v-select
80
- class="select" width="100%" align="right"
81
- :placeholder="item.placeholder"
82
- :search="item.search"
83
- close-on-select value-single
84
- :options="item.options"
85
- v-model="onetomany.fields[index].value"
86
- :value.sync="onetomany.fields[index].value"
87
- :readonly="item.readonly"
88
- :disabled="item.disabled"
89
- @blur="onblur(index)"
90
- @change="onchange(index)"
91
- ></v-select>
92
- </div>
93
- </div>
94
-
95
- <!--时间datepicker-->
96
- <div :style="item.style ? item.style : ''"
97
- v-if="item.type==='datepicker' && !item.hidden && (item.device === 'app' || !item.device)"
98
- :class="[item.required && !(item.value) ? 'apply-has-error' : '', item.bootstraped ? item.bootstraped+' form-group app-input':'col-xs-12 form-group app-input']">
99
- <label class="control-label-justify">{{item.label}}</label>
100
- <div :style="item.value_style ? item.value_style:''"
101
- :class="item.value_bootstraped ? item.value_bootstraped : 'col-xs-8'">
102
- <datepicker
103
- :placeholder="item.placeholder"
104
- :value.sync="onetomany.fields[index].value"
105
- :format="item.format ? item.format : 'yyyy-MM-dd'"
106
- v-model="onetomany.fields[index].value"
107
- :readonly="item.readonly"
108
- :disabled="item.disabled"
109
- @change="onchange(index)"
110
- @blur="onblur(index)"
111
- :show-reset-button="true">
112
- </datepicker>
113
- </div>
114
- </div>
115
-
116
- <!--textarea-->
117
- <div :style="item.style ? item.style : ''"
118
- v-if="item.type==='textarea' && !item.hidden && (item.device === 'app' || !item.device)"
119
- :class="[item.required && !(item.value) ? 'apply-has-error' : '', item.bootstraped?item.bootstraped+' form-group app-input':'col-xs-12 form-group app-input']">
120
- <label class="control-label-justify">{{item.label}}</label>
121
- <div :style="item.value_style ? item.value_style:''"
122
- :class="item.value_bootstraped ? item.value_bootstraped : 'col-xs-8'">
123
- <textarea
124
- :readonly="item.readonly"
125
- :disabled="item.disabled"
126
- class="" rows="1"
127
- style="width: 100%;height: 100%"
128
- v-model="onetomany.fields[index].value"
129
- :value="onetomany.fields[index].value"
130
- @change="onchange(index)"
131
- @blur="onblur(index)"
132
- @input="oninput(index)"
133
- ></textarea>
134
- </div>
135
- </div>
136
- </div>
137
- </article>
138
- <footer slot="modal-footer" class="modal-footer">
139
- <button :class="disableButton?'btn btn-default':'btn btn-primary'"
140
- :disabled="disableButton" type="button" @click.prevent="confirmModal()">
141
- 确认
142
- </button>
143
- </footer>
144
- </modal>
145
- </div>
146
- </template>
147
-
148
- <script>
149
- import {HttpResetClass} from 'vue-client'
150
- import {guid, toStandardTimeString} from '../Util'
151
- import Vue from 'vue'
152
- export default {
153
- title: 'onetomany',
154
- props: ['onetomany', 'index'],
155
- data () {
156
- return {
157
- showModal: false,
158
- disableButton: true,
159
- modelTitle: null,
160
- rowIndex: null
161
- }
162
- },
163
- ready () {
164
- },
165
- methods: {
166
- confirmModal () {
167
- if (this.modelTitle === '新增') {
168
- if (this.onetomany.add.event) {
169
- this.$dispatch(this.onetomany.add.event, this.index)
170
- } else {
171
- this.$dispatch('onetomanyadd', this.index)
172
- }
173
- }
174
- if (this.modelTitle === '修改') {
175
- if (this.onetomany.update.event) {
176
- this.$dispatch(this.onetomany.update.event, this.index, this.rowIndex)
177
- } else {
178
- this.$dispatch('onetomanyupdate', this.index, this.rowIndex)
179
- }
180
- }
181
-
182
- this.closeModal()
183
- },
184
- onchange (fieldIndex) {
185
- this.disableModalButton()
186
- if (this.onetomany.fields[fieldIndex].onchange) {
187
- this.$dispatch(this.onetomany.fields[fieldIndex].onchange, this.index, fieldIndex)
188
- } else {
189
- this.$dispatch('onchangeModal', this.index, fieldIndex)
190
- }
191
- },
192
- onblur (fieldIndex) {
193
- this.disableModalButton()
194
- if (this.onetomany.fields[fieldIndex].onblur) {
195
- this.$dispatch(this.onetomany.fields[fieldIndex].onblur, this.index, fieldIndex)
196
- } else {
197
- this.$dispatch('onblurModal', this.index, fieldIndex)
198
- }
199
- },
200
- oninput (fieldIndex) {
201
- this.disableModalButton()
202
- if (this.onetomany.fields[fieldIndex].oninput) {
203
- this.$dispatch(this.onetomany.fields[fieldIndex].oninput, this.index, fieldIndex)
204
- } else {
205
- this.$dispatch('oninputModal', this.index, fieldIndex)
206
- }
207
- },
208
- openDelete (rowIndex) {
209
- this.$showMessage(this.onetomany.delete.message ? this.onetomany.delete.message : '您确定要删除这条记录吗?', ['confirm']).then((res) => {
210
- if (res === 'confirm') {
211
- if (this.onetomany.delete.event) {
212
- this.$dispatch(this.onetomany.delete.event, this.index, rowIndex)
213
- } else {
214
- this.$dispatch('onetomanydelete', this.index, rowIndex)
215
- }
216
- }
217
- })
218
- },
219
- // 修改
220
- openUpdate (rowIndex) {
221
- let row = this.onetomany.rows[rowIndex]
222
- for (const item of this.onetomany.fields) {
223
- item.value = row[item.field]
224
- }
225
-
226
- this.disableModalButton()
227
-
228
- this.modelTitle = '修改'
229
- this.rowIndex = rowIndex
230
-
231
- if (this.onetomany.update.openEvent) {
232
- this.$dispatch(this.onetomany.update.openEvent, this.index, this.rowIndex)
233
- }
234
- this.$dispatch('openUpdateModel', this.index, this.rowIndex)
235
-
236
- this.showModal = true
237
- },
238
- openAdd () {
239
- this.disableModalButton()
240
- this.modelTitle = '新增'
241
-
242
- if (this.onetomany.add.openEvent) {
243
- this.$dispatch(this.onetomany.add.openEvent, this.index)
244
- }
245
- this.$dispatch('openAddModel', this.index)
246
-
247
- this.showModal = true
248
- },
249
- closeModal () {
250
- this.showModal = false
251
- this.disableButton = false
252
- this.modelTitle = null
253
- this.rowIndex = null
254
-
255
- for (const item of this.onetomany.fields) {
256
- item.value = null
257
- }
258
- },
259
- // 是否禁用按钮
260
- disableModalButton () {
261
- let flag = false
262
-
263
- for (const field of this.onetomany.fields) {
264
- if (field.required && !field.value && !field.hidden && field.value !== 0) {
265
- flag = true
266
- }
267
- }
268
-
269
- this.disableButton = flag
270
- }
271
- },
272
- computed: {
273
- },
274
- events: {
275
- }
276
- }
277
- </script>
278
-
279
- <style scoped>
280
- .control-label-justify {
281
- width: 30%;
282
- text-align: justify;
283
- text-align-last: justify;
284
- font-family: PingFang-SC-Bold;
285
- float: left;
286
- }
287
- .label-justify {
288
- text-align: justify;
289
- text-align-last: justify;
290
- float: left;
291
- }
292
- .panel-self{
293
- border-radius: 10px;
294
- border:1px solid #499EDF;
295
- background-color: #F8F8F8;
296
- }
297
- .font{
298
- font: 15px PingFang-SC-Medium;
299
- color: #666666;
300
- }
301
- </style>
1
+ <template>
2
+ <div>
3
+ <div class="col-sm-12 col-xs-12 form-group app-btn">
4
+ <button
5
+ :class="onetomany.add.class || 'btn btn-info'"
6
+ @click.prevent="openAdd()"
7
+ v-if="!onetomany.add.hidden"
8
+ :style="onetomany.add.style || ''">
9
+ {{ onetomany.add.text || '添加'}}
10
+ </button>
11
+ </div>
12
+ <div class="col-sm-12 col-xs-12">
13
+ <list :model="onetomany" partial='list'>
14
+ <div partial class="auto app-text panel">
15
+ <div class="panel-body panel-self">
16
+ <div class="row" v-for="field in $parent.$parent.onetomany.fields" v-if="!field.displayPosition || field.displayPosition === 'list'">
17
+ <p class="col-xs-3 text-left font label-justify"><b>{{ field.label }}</b></p>
18
+ <p class="col-xs-8 col-xs-offset-1 text-left input-font">{{ row[field.field] }}</p>
19
+ </div>
20
+ <div class="row text-right" v-if="!$parent.$parent.onetomany.hiddenOperate">
21
+ <button
22
+ :class="$parent.$parent.onetomany.update.style || 'btn btn-warning'"
23
+ @click.prevent="$parent.$parent.openUpdate($index)"
24
+ v-if="!$parent.$parent.onetomany.update.hidden"
25
+ :style="$parent.$parent.onetomany.update.style || ''">
26
+ {{ $parent.$parent.onetomany.update.text || '修改'}}
27
+ </button>
28
+ <button
29
+ :class="$parent.$parent.onetomany.delete.style || 'btn btn-danger'"
30
+ @click.prevent="$parent.$parent.openDelete($index)"
31
+ v-if="!$parent.$parent.onetomany.delete.hidden"
32
+ :style="$parent.$parent.onetomany.delete.style || ''">
33
+ {{ $parent.$parent.onetomany.delete.text || '删除'}}
34
+ </button>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ </list>
39
+ </div>
40
+
41
+
42
+ <!-- onetomany模态框 -->
43
+ <modal v-if="showModal" :show.sync="showModal" backdrop="false" :large="onetomany.modalSize === 'large' ? true : false" :small="onetomany.modalSize === 'small' ? true : false">
44
+ <header slot="modal-header" class="modal-header">
45
+ <button type="button" class="close" @click="closeModal()"><span>&times;</span></button>
46
+ <span class="modal-title"><font
47
+ size="3">{{modelTitle}}</font></span>
48
+ </header>
49
+ <article slot="modal-body" class="modal-body clearfix">
50
+ <div v-for="(index,item) in onetomany.fields">
51
+ <!--input-->
52
+ <div :style="item.style ? item.style : ''"
53
+ v-if="(item.type==='input' || item.type==='number'||item.type === 'tel'||item.type === 'email') && !item.hidden && (item.device === 'app' || !item.device)"
54
+ :class="[item.required && !(item.value) ? 'apply-has-error' : '', item.bootstraped ? item.bootstraped + ' form-group app-input':'col-xs-12 form-group app-input']">
55
+ <label class="control-label-justify">{{item.label}}</label>
56
+ <div :style="item.value_style ? item.value_style:''"
57
+ :class="item.value_bootstraped ? item.value_bootstraped : 'col-xs-8'">
58
+ <input class="" style="width: 100%"
59
+ :type="item.type"
60
+ v-model="onetomany.fields[index].value"
61
+ :placeholder="item.placeholder"
62
+ :value="onetomany.fields[index].value"
63
+ :readonly="item.readonly"
64
+ :disabled="item.disabled"
65
+ @change="onchange(index)"
66
+ @blur="onblur(index)"
67
+ @input="oninput(index)"
68
+ />
69
+ </div>
70
+ </div>
71
+
72
+ <!--select-->
73
+ <div :style="item.style ? item.style : ''"
74
+ v-if="item.type==='select' && !item.hidden && (item.device === 'app' || !item.device)"
75
+ :class="[item.required && !(item.value) ? 'apply-has-error' : '', item.bootstraped ? item.bootstraped + ' form-group app-input':'col-xs-12 form-group app-input']">
76
+ <label class="control-label-justify">{{item.label}}</label>
77
+ <div :style="item.value_style ? item.value_style:''"
78
+ :class="item.value_bootstraped ? item.value_bootstraped : 'col-xs-8'">
79
+ <v-select
80
+ class="select" width="100%" align="right"
81
+ :placeholder="item.placeholder"
82
+ :search="item.search"
83
+ close-on-select value-single
84
+ :options="item.options"
85
+ v-model="onetomany.fields[index].value"
86
+ :value.sync="onetomany.fields[index].value"
87
+ :readonly="item.readonly"
88
+ :disabled="item.disabled"
89
+ @blur="onblur(index)"
90
+ @change="onchange(index)"
91
+ ></v-select>
92
+ </div>
93
+ </div>
94
+
95
+ <!--时间datepicker-->
96
+ <div :style="item.style ? item.style : ''"
97
+ v-if="item.type==='datepicker' && !item.hidden && (item.device === 'app' || !item.device)"
98
+ :class="[item.required && !(item.value) ? 'apply-has-error' : '', item.bootstraped ? item.bootstraped+' form-group app-input':'col-xs-12 form-group app-input']">
99
+ <label class="control-label-justify">{{item.label}}</label>
100
+ <div :style="item.value_style ? item.value_style:''"
101
+ :class="item.value_bootstraped ? item.value_bootstraped : 'col-xs-8'">
102
+ <datepicker
103
+ :placeholder="item.placeholder"
104
+ :value.sync="onetomany.fields[index].value"
105
+ :format="item.format ? item.format : 'yyyy-MM-dd'"
106
+ v-model="onetomany.fields[index].value"
107
+ :readonly="item.readonly"
108
+ :disabled="item.disabled"
109
+ @change="onchange(index)"
110
+ @blur="onblur(index)"
111
+ :show-reset-button="true">
112
+ </datepicker>
113
+ </div>
114
+ </div>
115
+
116
+ <!--textarea-->
117
+ <div :style="item.style ? item.style : ''"
118
+ v-if="item.type==='textarea' && !item.hidden && (item.device === 'app' || !item.device)"
119
+ :class="[item.required && !(item.value) ? 'apply-has-error' : '', item.bootstraped?item.bootstraped+' form-group app-input':'col-xs-12 form-group app-input']">
120
+ <label class="control-label-justify">{{item.label}}</label>
121
+ <div :style="item.value_style ? item.value_style:''"
122
+ :class="item.value_bootstraped ? item.value_bootstraped : 'col-xs-8'">
123
+ <textarea
124
+ :readonly="item.readonly"
125
+ :disabled="item.disabled"
126
+ class="" rows="1"
127
+ style="width: 100%;height: 100%"
128
+ v-model="onetomany.fields[index].value"
129
+ :value="onetomany.fields[index].value"
130
+ @change="onchange(index)"
131
+ @blur="onblur(index)"
132
+ @input="oninput(index)"
133
+ ></textarea>
134
+ </div>
135
+ </div>
136
+ </div>
137
+ </article>
138
+ <footer slot="modal-footer" class="modal-footer">
139
+ <button :class="disableButton?'btn btn-default':'btn btn-primary'"
140
+ :disabled="disableButton" type="button" @click.prevent="confirmModal()">
141
+ 确认
142
+ </button>
143
+ </footer>
144
+ </modal>
145
+ </div>
146
+ </template>
147
+
148
+ <script>
149
+ import {HttpResetClass} from 'vue-client'
150
+ import {guid, toStandardTimeString} from '../Util'
151
+ import Vue from 'vue'
152
+ export default {
153
+ title: 'onetomany',
154
+ props: ['onetomany', 'index'],
155
+ data () {
156
+ return {
157
+ showModal: false,
158
+ disableButton: true,
159
+ modelTitle: null,
160
+ rowIndex: null
161
+ }
162
+ },
163
+ ready () {
164
+ },
165
+ methods: {
166
+ confirmModal () {
167
+ if (this.modelTitle === '新增') {
168
+ if (this.onetomany.add.event) {
169
+ this.$dispatch(this.onetomany.add.event, this.index)
170
+ } else {
171
+ this.$dispatch('onetomanyadd', this.index)
172
+ }
173
+ }
174
+ if (this.modelTitle === '修改') {
175
+ if (this.onetomany.update.event) {
176
+ this.$dispatch(this.onetomany.update.event, this.index, this.rowIndex)
177
+ } else {
178
+ this.$dispatch('onetomanyupdate', this.index, this.rowIndex)
179
+ }
180
+ }
181
+
182
+ this.closeModal()
183
+ },
184
+ onchange (fieldIndex) {
185
+ this.disableModalButton()
186
+ if (this.onetomany.fields[fieldIndex].onchange) {
187
+ this.$dispatch(this.onetomany.fields[fieldIndex].onchange, this.index, fieldIndex)
188
+ } else {
189
+ this.$dispatch('onchangeModal', this.index, fieldIndex)
190
+ }
191
+ },
192
+ onblur (fieldIndex) {
193
+ this.disableModalButton()
194
+ if (this.onetomany.fields[fieldIndex].onblur) {
195
+ this.$dispatch(this.onetomany.fields[fieldIndex].onblur, this.index, fieldIndex)
196
+ } else {
197
+ this.$dispatch('onblurModal', this.index, fieldIndex)
198
+ }
199
+ },
200
+ oninput (fieldIndex) {
201
+ this.disableModalButton()
202
+ if (this.onetomany.fields[fieldIndex].oninput) {
203
+ this.$dispatch(this.onetomany.fields[fieldIndex].oninput, this.index, fieldIndex)
204
+ } else {
205
+ this.$dispatch('oninputModal', this.index, fieldIndex)
206
+ }
207
+ },
208
+ openDelete (rowIndex) {
209
+ this.$showMessage(this.onetomany.delete.message ? this.onetomany.delete.message : '您确定要删除这条记录吗?', ['confirm']).then((res) => {
210
+ if (res === 'confirm') {
211
+ if (this.onetomany.delete.event) {
212
+ this.$dispatch(this.onetomany.delete.event, this.index, rowIndex)
213
+ } else {
214
+ this.$dispatch('onetomanydelete', this.index, rowIndex)
215
+ }
216
+ }
217
+ })
218
+ },
219
+ // 修改
220
+ openUpdate (rowIndex) {
221
+ let row = this.onetomany.rows[rowIndex]
222
+ for (const item of this.onetomany.fields) {
223
+ item.value = row[item.field]
224
+ }
225
+
226
+ this.disableModalButton()
227
+
228
+ this.modelTitle = '修改'
229
+ this.rowIndex = rowIndex
230
+
231
+ if (this.onetomany.update.openEvent) {
232
+ this.$dispatch(this.onetomany.update.openEvent, this.index, this.rowIndex)
233
+ }
234
+ this.$dispatch('openUpdateModel', this.index, this.rowIndex)
235
+
236
+ this.showModal = true
237
+ },
238
+ openAdd () {
239
+ this.disableModalButton()
240
+ this.modelTitle = '新增'
241
+
242
+ if (this.onetomany.add.openEvent) {
243
+ this.$dispatch(this.onetomany.add.openEvent, this.index)
244
+ }
245
+ this.$dispatch('openAddModel', this.index)
246
+
247
+ this.showModal = true
248
+ },
249
+ closeModal () {
250
+ this.showModal = false
251
+ this.disableButton = false
252
+ this.modelTitle = null
253
+ this.rowIndex = null
254
+
255
+ for (const item of this.onetomany.fields) {
256
+ item.value = null
257
+ }
258
+ },
259
+ // 是否禁用按钮
260
+ disableModalButton () {
261
+ let flag = false
262
+
263
+ for (const field of this.onetomany.fields) {
264
+ if (field.required && !field.value && !field.hidden && field.value !== 0) {
265
+ flag = true
266
+ }
267
+ }
268
+
269
+ this.disableButton = flag
270
+ }
271
+ },
272
+ computed: {
273
+ },
274
+ events: {
275
+ }
276
+ }
277
+ </script>
278
+
279
+ <style scoped>
280
+ .control-label-justify {
281
+ width: 30%;
282
+ text-align: justify;
283
+ text-align-last: justify;
284
+ font-family: PingFang-SC-Bold;
285
+ float: left;
286
+ }
287
+ .label-justify {
288
+ text-align: justify;
289
+ text-align-last: justify;
290
+ float: left;
291
+ }
292
+ .panel-self{
293
+ border-radius: 10px;
294
+ border:1px solid #499EDF;
295
+ background-color: #F8F8F8;
296
+ }
297
+ .font{
298
+ font: 15px PingFang-SC-Medium;
299
+ color: #666666;
300
+ }
301
+ </style>