apply-clients 3.5.4-81 → 3.5.4-82

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 (42) hide show
  1. package/build/dev-server.js +5 -14
  2. package/package.json +1 -1
  3. package/src/App.vue +25 -25
  4. package/src/apply.js +137 -137
  5. package/src/components/android/AppCheckTakePic.vue +168 -168
  6. package/src/components/android/Process/AppServiceControl.vue +1755 -1755
  7. package/src/components/product/Function/Service/FunctionServiceControl.vue +497 -497
  8. package/src/components/product/MaterialsManage/MaterialsBase.vue +181 -181
  9. package/src/components/product/MaterialsManage/MaterialsManage.vue +60 -60
  10. package/src/components/product/PcZhihuanManagement.vue +160 -160
  11. package/src/components/product/Process/Processes/chargeManagement.vue +656 -656
  12. package/src/components/product/ServiceView.vue +1026 -1026
  13. package/src/filiale/baiyin/android/ByAddMaterialScience.vue +824 -824
  14. package/src/filiale/fugou/android/AppAddMaterialScience.vue +448 -448
  15. package/src/filiale/fugou/android/AppAddReplacement.vue +341 -341
  16. package/src/filiale/fugou/android/AppChargeManagement.vue +739 -739
  17. package/src/filiale/fugou/android/AppServiceControl.vue +1843 -1843
  18. package/src/filiale/fugou/android/AppZhihuanManagement.vue +191 -191
  19. package/src/filiale/fugou/android.js +15 -15
  20. package/src/filiale/fugou/pc/AddReplacement.vue +340 -340
  21. package/src/filiale/fugou/pc/addMaterialScience.vue +481 -481
  22. package/src/filiale/fugou/pc/addressAndUserinfoManagement.vue +216 -216
  23. package/src/filiale/gongyi/android/AppDisclosurerecord.vue +214 -214
  24. package/src/filiale/gongyi/android/AppInstallationDetails.vue +500 -500
  25. package/src/filiale/gongyi/android/AppLegacyIssues.vue +309 -309
  26. package/src/filiale/gongyi/android/AppSign.vue +170 -170
  27. package/src/filiale/gongyi/android/AppSupplementalAgreement.vue +298 -298
  28. package/src/filiale/gongyi/android.js +18 -18
  29. package/src/filiale/gongyi/pc/ApplyUpload.vue +371 -371
  30. package/src/filiale/gongyi/pc/PcAddLogs.vue +221 -221
  31. package/src/filiale/gongyi/pc/PcDisclosurerecord.vue +218 -218
  32. package/src/filiale/gongyi/pc/PcLegacyIssues.vue +309 -309
  33. package/src/filiale/gongyi/pc/SupervisoryServiceControl.vue +894 -894
  34. package/src/filiale/gongyi/pc/SupervisoryServiceView.vue +1005 -1005
  35. package/src/filiale/gongyi/pc/addMaterialScience.vue +575 -575
  36. package/src/filiale/gongyi/pc/chargeManagement.vue +765 -765
  37. package/src/filiale/gongyi/pc/supplementalAgreement.vue +277 -277
  38. package/src/filiale/gongyi/pc.js +24 -24
  39. package/src/filiale/hongda/pc/SupervisoryList.vue +422 -422
  40. package/src/main.js +1 -2
  41. package/app/src/main/java/com/example/phonechatbot/MainActivity.java +0 -50
  42. package/~/chatbot/main.py +0 -57
@@ -1,340 +1,340 @@
1
- <template>
2
- <div>
3
- <data-grid :model="onetomany" class="list_area table_sy">
4
- <template partial='head'>
5
- <tr>
6
- <th class="textNoLineBreak">记录人</th>
7
- <th class="textNoLineBreak">添加日期</th>
8
- <th class="textNoLineBreak">设备</th>
9
- <th class="textNoLineBreak">内容</th>
10
- <th class="textNoLineBreak" >
11
- <button v-if="$parent.$parent.mark === 0" type="button" class="btn btn-primary" @click="$parent.$parent.openMaterialModal()">添加
12
- </button>
13
- </th>
14
- </tr>
15
- </template>
16
- <template partial='body'>
17
- <tr>
18
- <td style="text-align: center;">
19
- <nobr>{{row.f_operator}}</nobr>
20
- </td>
21
- <td style="text-align: center;">
22
- <nobr>{{row.f_operation_date}}</nobr>
23
- </td>
24
- <td style="text-align: center;">
25
- <nobr>{{row.f_content}}</nobr>
26
- </td>
27
- <td style="text-align: center;">
28
- <nobr>
29
- {{$parent.$parent.toArry(row.f_content_value)}}
30
- </nobr>
31
- </td>
32
- <td style="text-align: center;">
33
- <button v-if="$parent.$parent.mark === 0" type="button" class="button_delete button_spacing" @click="$parent.$parent.deletelogs(row)">删除
34
- </button>
35
- </td>
36
- </tr>
37
- </template>
38
- </data-grid>
39
- <modal v-if="showMaterialModal" :show.sync="showMaterialModal" v-ref:modal :large="true"
40
- :backdrop="false" :title="title">
41
- <header slot="modal-header" class="modal-header">
42
- <button type="button" class="close" @click="closeMaterials"><span>&times;</span></button>
43
- <h4 class="modal-title">{{title}}</h4>
44
- </header>
45
- <article slot="modal-body" class="modal-body clearfix">
46
- <div class="form-group col-sm-6">
47
- <label class="col-sm-4 control-label">设备:</label>
48
- <div class="col-sm-8">
49
- <input-select
50
- class="select select_list"
51
- :value.sync="device"
52
- v-model="device"
53
- :options="logOptions"
54
- :disable="mark === 1"
55
- :valueSingle="true"></input-select>
56
- </div>
57
- </div>
58
- <div v-for="(i,item) in materials" class="form-group col-sm-12 panel panel-info">
59
- <div class="panel-body">
60
- <div class="row">
61
- <div class="form-group col-sm-6">
62
- <label class="col-sm-4 control-label">内容:</label>
63
- <div class="col-sm-8">
64
- <input-select
65
- class="select select_list"
66
- :value.sync="item.f_content"
67
- v-model="item.f_content"
68
- :options="Options"
69
- :disable="mark === 1"
70
- :valueSingle="true"></input-select>
71
- </div>
72
- </div>
73
- <div class="form-group col-sm-6">
74
- <label class="col-sm-4 control-label">值:</label>
75
- <div class="col-sm-8">
76
- <input
77
- class="form-control"
78
- v-model="item.f_content_value"
79
- :value.sync="item.f_content_value"
80
- rows="3"
81
- :readonly="mark === 1"
82
- ></input>
83
- </div>
84
- </div>
85
- <div v-if="mark !== 1 && materials.length > 1" class="form-group col-sm-12 text-center">
86
- <button type="button" class="btn btn-danger" @click="removeMaterial(i)">
87
- <i class="fa fa-minus"></i> 移除
88
- </button>
89
- </div>
90
- </div>
91
- </div>
92
- </div>
93
- <div v-if="mark !== 1" class="form-group col-sm-12 text-center">
94
- <button type="button" class="btn btn-success" @click="addMaterial()">
95
- <i class="fa fa-plus"></i> 添加
96
- </button>
97
- </div>
98
- </article>
99
- <footer slot="modal-footer" class="modal-footer">
100
- <template v-if="mark!== 1">
101
- <button type="button" class="btn btn-primary" v-if="title==='新增'" @click="addlogs()"
102
- :disabled="!$v.valid">确认
103
- </button>
104
- </template>
105
- </footer>
106
- </modal>
107
- </div>
108
- </template>
109
-
110
- <script>
111
- import {HttpResetClass} from 'vue-client'
112
- export default {
113
- name: 'replacement',
114
- props: {
115
- selectdata: {
116
- type: Object
117
- },
118
- mark: {
119
- type: Number,
120
- default: 0
121
- }
122
- },
123
- data() {
124
- return {
125
- onetomany: {
126
- rows: []
127
- },
128
- logOptions: this.$appdata.getParam('置换设备'),
129
- Options: this.$appdata.getParam('置换内容'),
130
- device:'',
131
- title: '新增',
132
- deviceArry:[],
133
- showMaterialModal: false,
134
- materials: [
135
- {
136
-
137
- }
138
- ],
139
- meterialOptions: [],
140
- row: {},
141
- bjqChecklag:[],
142
- fmaterialname:{}
143
- }
144
- },
145
- ready() {
146
- this.getOnetoManyData()
147
- },
148
- methods: {
149
- toArry(row){
150
- //将row放进数组中
151
- if (!row) return "无";
152
- try {
153
- // 添加方括号使其成为有效的JSON数组
154
- const jsonStr = '[' + row + ']';
155
- // 尝试解析字符串为JSON数组
156
- const jsonArray = JSON.parse(jsonStr);
157
- // 将解析后的数据保存到deviceArry中
158
- this.deviceArry = jsonArray;
159
-
160
- // 格式化显示数据
161
- let result = '';
162
- for (let i = 0; i < this.deviceArry.length; i++) {
163
- const item = this.deviceArry[i];
164
- result += `${item.f_content}:${item.f_content_value}`;
165
- if (i < this.deviceArry.length - 1) {
166
- result += ',';
167
- }
168
- }
169
- return result;
170
- } catch (err) {
171
- console.error('解析JSON数据失败:', err);
172
- return "无";
173
- }
174
- },
175
- look(row){
176
- this.title = '查看'
177
- this.materials = [
178
- {
179
- id: row.id,
180
- f_log_type:row.f_log_type,
181
- f_log_content:row.f_log_content
182
- }
183
- ],
184
- this.showMaterialModal = true
185
- },
186
-
187
- changelogs(){
188
- let http = new HttpResetClass()
189
- let data = {
190
- data: {
191
- id: this.materials[0].id,
192
- f_process_id:this.selectdata.f_process_id,
193
- f_log_type:this.materials[0].f_log_type,
194
- f_log_content:this.materials[0].f_log_content,
195
- user:this.$login.f
196
- }
197
- }
198
- http.load(
199
- 'POST',
200
- `/rs/logic/addLogs`,
201
- data,
202
- {resolveMsg: '修改成功', rejectMsg: '添加失败'}
203
- ).then(res => {
204
- this.closeMaterials()
205
- })
206
- },
207
- addlogs(){
208
- let value=[]
209
- let http = new HttpResetClass()
210
- this.materials.forEach(material => {
211
- let obj={}
212
- obj.f_content=material.f_content
213
- obj.f_content_value=material.f_content_value
214
- //obj转为字符串
215
- obj = JSON.stringify(obj)
216
- value.push(obj)
217
- });
218
- let s = {
219
- f_process_id: this.selectdata.f_process_id,
220
- f_operation_date: new Date().Format('yyyy-MM-dd HH:mm:ss'),
221
- f_content_value:`${value}` ,
222
- f_content: this.device,
223
- f_operator: this.$login.f.name,
224
- f_operator_id: this.$login.f.id
225
- }
226
- let data = {
227
- tableName: 't_replacement',
228
- model: s
229
- }
230
- http.load(
231
- 'POST',
232
- `/rs/logic/entitySingleTable`,
233
- data,
234
- {resolveMsg: null, rejectMsg: '添加失败'}
235
- ).then(res => {
236
- this.getOnetoManyData()
237
- this.showMaterialModal=false
238
- })
239
- },
240
- deletelogs(row){
241
- let http = new HttpResetClass()
242
- this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
243
- if (res === 'confirm') {
244
- let data = {
245
- tableName:'t_replacement',
246
- id:row.id
247
- }
248
- http.load(
249
- 'POST',
250
- `/rs/logic/delentitySingleTable`,
251
- data,
252
- {resolveMsg: '删除成功', rejectMsg: '删除失败'}
253
- ).then(res => {
254
- this.getOnetoManyData()
255
- })
256
- }
257
- })
258
- },
259
- async getOnetoManyData () {
260
- let http = new HttpResetClass()
261
- let data = {
262
- tablename: `t_replacement`,
263
- condition: `f_process_id='${this.selectdata.f_process_id}'`
264
- }
265
- let res = await http.load(
266
- 'POST',
267
- `/rs/sql/apply_singleTable?aaa=123`,
268
- {data: data},
269
- {resolveMsg: null, rejectMsg: 'onetomany查询失败'}
270
- )
271
- this.onetomany.rows = res.data
272
- },
273
- async openMaterialModal() {
274
- this.title = '新增'
275
- this.materials = [
276
- {
277
- f_devices: '',
278
- f_content: '',
279
- f_content_value: ''
280
- }
281
- ];
282
- this.showMaterialModal = true
283
- },
284
-
285
- closeMaterials() {
286
- this.getOnetoManyData()
287
- this.showMaterialModal = false
288
- },
289
- removeMaterial(index) {
290
- if (this.materials.length > 1) {
291
- this.materials.splice(index, 1);
292
- } else {
293
- this.$showMessage('至少需要保留一组数据');
294
- }
295
- },
296
- addMaterial() {
297
- // 获取最后一个材料的设备值,如果存在的话
298
- const lastDevice = this.materials.length > 0 ? this.materials[this.materials.length - 1].f_devices : '';
299
-
300
- this.materials.push({
301
- f_devices: lastDevice, // 复制上一个设备的值
302
- f_content: '',
303
- f_content_value: ''
304
- });
305
- },
306
- }
307
- }
308
-
309
- </script>
310
-
311
- <style scoped>
312
- .panel-info {
313
- border: 1px solid #bce8f1;
314
- margin-bottom: 15px;
315
- }
316
-
317
- .panel-heading {
318
- background-color: #d9edf7;
319
- border-bottom: 1px solid #bce8f1;
320
- color: #31708f;
321
- padding: 10px 15px;
322
- }
323
-
324
- .panel-body {
325
- padding: 15px;
326
- }
327
-
328
- .form-group {
329
- margin-bottom: 15px;
330
- }
331
-
332
- .btn-success {
333
- margin-top: 10px;
334
- }
335
-
336
- .modal-body {
337
- max-height: 500px;
338
- overflow-y: auto;
339
- }
340
- </style>
1
+ <template>
2
+ <div>
3
+ <data-grid :model="onetomany" class="list_area table_sy">
4
+ <template partial='head'>
5
+ <tr>
6
+ <th class="textNoLineBreak">记录人</th>
7
+ <th class="textNoLineBreak">添加日期</th>
8
+ <th class="textNoLineBreak">设备</th>
9
+ <th class="textNoLineBreak">内容</th>
10
+ <th class="textNoLineBreak" >
11
+ <button v-if="$parent.$parent.mark === 0" type="button" class="btn btn-primary" @click="$parent.$parent.openMaterialModal()">添加
12
+ </button>
13
+ </th>
14
+ </tr>
15
+ </template>
16
+ <template partial='body'>
17
+ <tr>
18
+ <td style="text-align: center;">
19
+ <nobr>{{row.f_operator}}</nobr>
20
+ </td>
21
+ <td style="text-align: center;">
22
+ <nobr>{{row.f_operation_date}}</nobr>
23
+ </td>
24
+ <td style="text-align: center;">
25
+ <nobr>{{row.f_content}}</nobr>
26
+ </td>
27
+ <td style="text-align: center;">
28
+ <nobr>
29
+ {{$parent.$parent.toArry(row.f_content_value)}}
30
+ </nobr>
31
+ </td>
32
+ <td style="text-align: center;">
33
+ <button v-if="$parent.$parent.mark === 0" type="button" class="button_delete button_spacing" @click="$parent.$parent.deletelogs(row)">删除
34
+ </button>
35
+ </td>
36
+ </tr>
37
+ </template>
38
+ </data-grid>
39
+ <modal v-if="showMaterialModal" :show.sync="showMaterialModal" v-ref:modal :large="true"
40
+ :backdrop="false" :title="title">
41
+ <header slot="modal-header" class="modal-header">
42
+ <button type="button" class="close" @click="closeMaterials"><span>&times;</span></button>
43
+ <h4 class="modal-title">{{title}}</h4>
44
+ </header>
45
+ <article slot="modal-body" class="modal-body clearfix">
46
+ <div class="form-group col-sm-6">
47
+ <label class="col-sm-4 control-label">设备:</label>
48
+ <div class="col-sm-8">
49
+ <input-select
50
+ class="select select_list"
51
+ :value.sync="device"
52
+ v-model="device"
53
+ :options="logOptions"
54
+ :disable="mark === 1"
55
+ :valueSingle="true"></input-select>
56
+ </div>
57
+ </div>
58
+ <div v-for="(i,item) in materials" class="form-group col-sm-12 panel panel-info">
59
+ <div class="panel-body">
60
+ <div class="row">
61
+ <div class="form-group col-sm-6">
62
+ <label class="col-sm-4 control-label">内容:</label>
63
+ <div class="col-sm-8">
64
+ <input-select
65
+ class="select select_list"
66
+ :value.sync="item.f_content"
67
+ v-model="item.f_content"
68
+ :options="Options"
69
+ :disable="mark === 1"
70
+ :valueSingle="true"></input-select>
71
+ </div>
72
+ </div>
73
+ <div class="form-group col-sm-6">
74
+ <label class="col-sm-4 control-label">值:</label>
75
+ <div class="col-sm-8">
76
+ <input
77
+ class="form-control"
78
+ v-model="item.f_content_value"
79
+ :value.sync="item.f_content_value"
80
+ rows="3"
81
+ :readonly="mark === 1"
82
+ ></input>
83
+ </div>
84
+ </div>
85
+ <div v-if="mark !== 1 && materials.length > 1" class="form-group col-sm-12 text-center">
86
+ <button type="button" class="btn btn-danger" @click="removeMaterial(i)">
87
+ <i class="fa fa-minus"></i> 移除
88
+ </button>
89
+ </div>
90
+ </div>
91
+ </div>
92
+ </div>
93
+ <div v-if="mark !== 1" class="form-group col-sm-12 text-center">
94
+ <button type="button" class="btn btn-success" @click="addMaterial()">
95
+ <i class="fa fa-plus"></i> 添加
96
+ </button>
97
+ </div>
98
+ </article>
99
+ <footer slot="modal-footer" class="modal-footer">
100
+ <template v-if="mark!== 1">
101
+ <button type="button" class="btn btn-primary" v-if="title==='新增'" @click="addlogs()"
102
+ :disabled="!$v.valid">确认
103
+ </button>
104
+ </template>
105
+ </footer>
106
+ </modal>
107
+ </div>
108
+ </template>
109
+
110
+ <script>
111
+ import {HttpResetClass} from 'vue-client'
112
+ export default {
113
+ name: 'replacement',
114
+ props: {
115
+ selectdata: {
116
+ type: Object
117
+ },
118
+ mark: {
119
+ type: Number,
120
+ default: 0
121
+ }
122
+ },
123
+ data() {
124
+ return {
125
+ onetomany: {
126
+ rows: []
127
+ },
128
+ logOptions: this.$appdata.getParam('置换设备'),
129
+ Options: this.$appdata.getParam('置换内容'),
130
+ device:'',
131
+ title: '新增',
132
+ deviceArry:[],
133
+ showMaterialModal: false,
134
+ materials: [
135
+ {
136
+
137
+ }
138
+ ],
139
+ meterialOptions: [],
140
+ row: {},
141
+ bjqChecklag:[],
142
+ fmaterialname:{}
143
+ }
144
+ },
145
+ ready() {
146
+ this.getOnetoManyData()
147
+ },
148
+ methods: {
149
+ toArry(row){
150
+ //将row放进数组中
151
+ if (!row) return "无";
152
+ try {
153
+ // 添加方括号使其成为有效的JSON数组
154
+ const jsonStr = '[' + row + ']';
155
+ // 尝试解析字符串为JSON数组
156
+ const jsonArray = JSON.parse(jsonStr);
157
+ // 将解析后的数据保存到deviceArry中
158
+ this.deviceArry = jsonArray;
159
+
160
+ // 格式化显示数据
161
+ let result = '';
162
+ for (let i = 0; i < this.deviceArry.length; i++) {
163
+ const item = this.deviceArry[i];
164
+ result += `${item.f_content}:${item.f_content_value}`;
165
+ if (i < this.deviceArry.length - 1) {
166
+ result += ',';
167
+ }
168
+ }
169
+ return result;
170
+ } catch (err) {
171
+ console.error('解析JSON数据失败:', err);
172
+ return "无";
173
+ }
174
+ },
175
+ look(row){
176
+ this.title = '查看'
177
+ this.materials = [
178
+ {
179
+ id: row.id,
180
+ f_log_type:row.f_log_type,
181
+ f_log_content:row.f_log_content
182
+ }
183
+ ],
184
+ this.showMaterialModal = true
185
+ },
186
+
187
+ changelogs(){
188
+ let http = new HttpResetClass()
189
+ let data = {
190
+ data: {
191
+ id: this.materials[0].id,
192
+ f_process_id:this.selectdata.f_process_id,
193
+ f_log_type:this.materials[0].f_log_type,
194
+ f_log_content:this.materials[0].f_log_content,
195
+ user:this.$login.f
196
+ }
197
+ }
198
+ http.load(
199
+ 'POST',
200
+ `/rs/logic/addLogs`,
201
+ data,
202
+ {resolveMsg: '修改成功', rejectMsg: '添加失败'}
203
+ ).then(res => {
204
+ this.closeMaterials()
205
+ })
206
+ },
207
+ addlogs(){
208
+ let value=[]
209
+ let http = new HttpResetClass()
210
+ this.materials.forEach(material => {
211
+ let obj={}
212
+ obj.f_content=material.f_content
213
+ obj.f_content_value=material.f_content_value
214
+ //obj转为字符串
215
+ obj = JSON.stringify(obj)
216
+ value.push(obj)
217
+ });
218
+ let s = {
219
+ f_process_id: this.selectdata.f_process_id,
220
+ f_operation_date: new Date().Format('yyyy-MM-dd HH:mm:ss'),
221
+ f_content_value:`${value}` ,
222
+ f_content: this.device,
223
+ f_operator: this.$login.f.name,
224
+ f_operator_id: this.$login.f.id
225
+ }
226
+ let data = {
227
+ tableName: 't_replacement',
228
+ model: s
229
+ }
230
+ http.load(
231
+ 'POST',
232
+ `/rs/logic/entitySingleTable`,
233
+ data,
234
+ {resolveMsg: null, rejectMsg: '添加失败'}
235
+ ).then(res => {
236
+ this.getOnetoManyData()
237
+ this.showMaterialModal=false
238
+ })
239
+ },
240
+ deletelogs(row){
241
+ let http = new HttpResetClass()
242
+ this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
243
+ if (res === 'confirm') {
244
+ let data = {
245
+ tableName:'t_replacement',
246
+ id:row.id
247
+ }
248
+ http.load(
249
+ 'POST',
250
+ `/rs/logic/delentitySingleTable`,
251
+ data,
252
+ {resolveMsg: '删除成功', rejectMsg: '删除失败'}
253
+ ).then(res => {
254
+ this.getOnetoManyData()
255
+ })
256
+ }
257
+ })
258
+ },
259
+ async getOnetoManyData () {
260
+ let http = new HttpResetClass()
261
+ let data = {
262
+ tablename: `t_replacement`,
263
+ condition: `f_process_id='${this.selectdata.f_process_id}'`
264
+ }
265
+ let res = await http.load(
266
+ 'POST',
267
+ `/rs/sql/apply_singleTable?aaa=123`,
268
+ {data: data},
269
+ {resolveMsg: null, rejectMsg: 'onetomany查询失败'}
270
+ )
271
+ this.onetomany.rows = res.data
272
+ },
273
+ async openMaterialModal() {
274
+ this.title = '新增'
275
+ this.materials = [
276
+ {
277
+ f_devices: '',
278
+ f_content: '',
279
+ f_content_value: ''
280
+ }
281
+ ];
282
+ this.showMaterialModal = true
283
+ },
284
+
285
+ closeMaterials() {
286
+ this.getOnetoManyData()
287
+ this.showMaterialModal = false
288
+ },
289
+ removeMaterial(index) {
290
+ if (this.materials.length > 1) {
291
+ this.materials.splice(index, 1);
292
+ } else {
293
+ this.$showMessage('至少需要保留一组数据');
294
+ }
295
+ },
296
+ addMaterial() {
297
+ // 获取最后一个材料的设备值,如果存在的话
298
+ const lastDevice = this.materials.length > 0 ? this.materials[this.materials.length - 1].f_devices : '';
299
+
300
+ this.materials.push({
301
+ f_devices: lastDevice, // 复制上一个设备的值
302
+ f_content: '',
303
+ f_content_value: ''
304
+ });
305
+ },
306
+ }
307
+ }
308
+
309
+ </script>
310
+
311
+ <style scoped>
312
+ .panel-info {
313
+ border: 1px solid #bce8f1;
314
+ margin-bottom: 15px;
315
+ }
316
+
317
+ .panel-heading {
318
+ background-color: #d9edf7;
319
+ border-bottom: 1px solid #bce8f1;
320
+ color: #31708f;
321
+ padding: 10px 15px;
322
+ }
323
+
324
+ .panel-body {
325
+ padding: 15px;
326
+ }
327
+
328
+ .form-group {
329
+ margin-bottom: 15px;
330
+ }
331
+
332
+ .btn-success {
333
+ margin-top: 10px;
334
+ }
335
+
336
+ .modal-body {
337
+ max-height: 500px;
338
+ overflow-y: auto;
339
+ }
340
+ </style>