safecheck-client 3.0.35-54 → 3.0.35-56

Sign up to get free protection for your applications and to get access to all the features.
Files changed (242) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/android.html +18 -18
  4. package/config/dev.env.js +6 -6
  5. package/config/index.js +38 -38
  6. package/config/prod.env.js +3 -3
  7. package/config/test.env.js +6 -6
  8. package/docs/AppBase.md +22 -22
  9. package/docs/Busy.md +14 -14
  10. package/docs/CriteriaPaged.md +47 -47
  11. package/docs/DataGrid.md +54 -54
  12. package/docs/DataModel.md +22 -22
  13. package/docs/Dynamic.md +42 -42
  14. package/docs/GetParams.md +11 -11
  15. package/docs/HttpBusy.md +13 -13
  16. package/docs/HttpStore.md +29 -29
  17. package/docs/MessageBox.md +28 -28
  18. package/docs/PagedList.md +29 -29
  19. package/docs/Pager.md +21 -21
  20. package/docs/Project.md +23 -23
  21. package/docs/Route.md +105 -105
  22. package/docs/SafetyCheck/AdjustPlan.md +13 -13
  23. package/docs/SafetyCheck/CheckerPlan.md +12 -12
  24. package/docs/Task.md +46 -46
  25. package/docs/TreeList.md +28 -28
  26. package/docs/TreeMixin.md +18 -18
  27. package/docs/all.md +10 -10
  28. package/docs/list.md +42 -42
  29. package/docs/partial.md +75 -75
  30. package/docs/selector.md +82 -82
  31. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/Snippets.md +28 -28
  32. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue-strap/345/217/230/346/233/264/350/256/260/345/275/225.md +7 -7
  33. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue/345/217/230/346/233/264/350/256/260/345/275/225.md +13 -13
  34. package/docs//345/274/200/345/217/221/346/226/207/346/241/243//345/274/200/345/217/221/347/216/257/345/242/203/350/256/276/347/275/256.md +77 -77
  35. package/docs//347/225/214/351/235/242/345/210/266/344/275/234/350/247/204/350/214/203.md +54 -54
  36. package/examples/AddressList/App.vue +13 -13
  37. package/examples/AddressList/index.html +11 -11
  38. package/examples/DispatchList/App.vue +10 -10
  39. package/examples/DispatchList/BaseTree.vue +13 -13
  40. package/examples/DispatchList/Init.vue +22 -22
  41. package/examples/DispatchList/Test.vue +20 -20
  42. package/examples/DispatchList/index.html +11 -11
  43. package/examples/DispatchList/main.js +18 -18
  44. package/home.html +16 -16
  45. package/package.json +1 -1
  46. package/publish.bat +7 -7
  47. package/release.bat +5 -5
  48. package/src/Widget.vue +13 -13
  49. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  50. package/src/android-bootstrap/less/.csscomb.json +304 -304
  51. package/src/android-bootstrap/less/.csslintrc +19 -19
  52. package/src/android-bootstrap/less/alerts.less +73 -73
  53. package/src/android-bootstrap/less/badges.less +66 -66
  54. package/src/android-bootstrap/less/bootstrap.less +56 -56
  55. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  56. package/src/android-bootstrap/less/button-groups.less +247 -247
  57. package/src/android-bootstrap/less/buttons.less +173 -173
  58. package/src/android-bootstrap/less/carousel.less +269 -269
  59. package/src/android-bootstrap/less/close.less +34 -34
  60. package/src/android-bootstrap/less/code.less +69 -69
  61. package/src/android-bootstrap/less/component-animations.less +33 -33
  62. package/src/android-bootstrap/less/grid.less +84 -84
  63. package/src/android-bootstrap/less/input-groups.less +167 -167
  64. package/src/android-bootstrap/less/jumbotron.less +52 -52
  65. package/src/android-bootstrap/less/labels.less +64 -64
  66. package/src/android-bootstrap/less/list-group.less +141 -141
  67. package/src/android-bootstrap/less/media.less +66 -66
  68. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  69. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  70. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  71. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  72. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  73. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  74. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  75. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  76. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  77. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  78. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  79. package/src/android-bootstrap/less/mixins/image.less +33 -33
  80. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  81. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  82. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  83. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  84. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  85. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  86. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  87. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  88. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  89. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  90. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  91. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  92. package/src/android-bootstrap/less/mixins/size.less +10 -10
  93. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  94. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  95. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  96. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  97. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  98. package/src/android-bootstrap/less/mixins.less +40 -40
  99. package/src/android-bootstrap/less/modals.less +151 -151
  100. package/src/android-bootstrap/less/navbar.less +660 -660
  101. package/src/android-bootstrap/less/navs.less +290 -290
  102. package/src/android-bootstrap/less/normalize.less +424 -424
  103. package/src/android-bootstrap/less/pager.less +76 -76
  104. package/src/android-bootstrap/less/pagination.less +89 -89
  105. package/src/android-bootstrap/less/panels.less +274 -274
  106. package/src/android-bootstrap/less/popovers.less +131 -131
  107. package/src/android-bootstrap/less/print.less +101 -101
  108. package/src/android-bootstrap/less/progress-bars.less +87 -87
  109. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  110. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  111. package/src/android-bootstrap/less/scaffolding.less +161 -161
  112. package/src/android-bootstrap/less/tables.less +262 -262
  113. package/src/android-bootstrap/less/theme.less +291 -291
  114. package/src/android-bootstrap/less/thumbnails.less +36 -36
  115. package/src/android-bootstrap/less/tooltip.less +102 -102
  116. package/src/android-bootstrap/less/type.less +303 -303
  117. package/src/android-bootstrap/less/utilities.less +55 -55
  118. package/src/android-bootstrap/less/variables.less +896 -896
  119. package/src/android-bootstrap/less/wells.less +29 -29
  120. package/src/androidTest.js +20 -20
  121. package/src/bootstrap/less/.csscomb.json +304 -304
  122. package/src/bootstrap/less/.csslintrc +19 -19
  123. package/src/bootstrap/less/alerts.less +73 -73
  124. package/src/bootstrap/less/badges.less +66 -66
  125. package/src/bootstrap/less/breadcrumbs.less +26 -26
  126. package/src/bootstrap/less/button-groups.less +247 -247
  127. package/src/bootstrap/less/buttons.less +172 -172
  128. package/src/bootstrap/less/carousel.less +269 -269
  129. package/src/bootstrap/less/close.less +34 -34
  130. package/src/bootstrap/less/code.less +69 -69
  131. package/src/bootstrap/less/component-animations.less +33 -33
  132. package/src/bootstrap/less/dropdowns.less +216 -216
  133. package/src/bootstrap/less/forms.less +626 -626
  134. package/src/bootstrap/less/grid.less +84 -84
  135. package/src/bootstrap/less/input-groups.less +167 -167
  136. package/src/bootstrap/less/jumbotron.less +52 -52
  137. package/src/bootstrap/less/labels.less +64 -64
  138. package/src/bootstrap/less/list-group.less +141 -141
  139. package/src/bootstrap/less/media.less +66 -66
  140. package/src/bootstrap/less/mixins/alerts.less +14 -14
  141. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  142. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  143. package/src/bootstrap/less/mixins/buttons.less +69 -69
  144. package/src/bootstrap/less/mixins/center-block.less +7 -7
  145. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  146. package/src/bootstrap/less/mixins/forms.less +90 -90
  147. package/src/bootstrap/less/mixins/gradients.less +59 -59
  148. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  149. package/src/bootstrap/less/mixins/grid.less +122 -122
  150. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  151. package/src/bootstrap/less/mixins/image.less +33 -33
  152. package/src/bootstrap/less/mixins/labels.less +12 -12
  153. package/src/bootstrap/less/mixins/list-group.less +30 -30
  154. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  155. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  156. package/src/bootstrap/less/mixins/opacity.less +8 -8
  157. package/src/bootstrap/less/mixins/pagination.less +24 -24
  158. package/src/bootstrap/less/mixins/panels.less +24 -24
  159. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  160. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  161. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  162. package/src/bootstrap/less/mixins/resize.less +6 -6
  163. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  164. package/src/bootstrap/less/mixins/size.less +10 -10
  165. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  166. package/src/bootstrap/less/mixins/table-row.less +44 -44
  167. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  168. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  169. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  170. package/src/bootstrap/less/mixins.less +40 -40
  171. package/src/bootstrap/less/modals.less +151 -151
  172. package/src/bootstrap/less/navbar.less +660 -660
  173. package/src/bootstrap/less/normalize.less +424 -424
  174. package/src/bootstrap/less/pagination.less +89 -89
  175. package/src/bootstrap/less/panels.less +275 -275
  176. package/src/bootstrap/less/popovers.less +131 -131
  177. package/src/bootstrap/less/print.less +101 -101
  178. package/src/bootstrap/less/progress-bars.less +87 -87
  179. package/src/bootstrap/less/responsive-embed.less +35 -35
  180. package/src/bootstrap/less/responsive-utilities.less +194 -194
  181. package/src/bootstrap/less/scaffolding.less +161 -161
  182. package/src/bootstrap/less/theme.less +291 -291
  183. package/src/bootstrap/less/thumbnails.less +36 -36
  184. package/src/bootstrap/less/tooltip.less +102 -102
  185. package/src/bootstrap/less/type.less +303 -303
  186. package/src/bootstrap/less/utilities.less +55 -55
  187. package/src/bootstrap/less/wells.less +29 -29
  188. package/src/components/FileUpload.vue +696 -696
  189. package/src/components/Hello.vue +39 -39
  190. package/src/components/LeftTree.vue +27 -27
  191. package/src/components/android/AddressList.vue +61 -61
  192. package/src/components/android/AttendanceTally.vue +116 -116
  193. package/src/components/android/Blank.vue +10 -10
  194. package/src/components/android/CheckUnplanPage.vue +56 -56
  195. package/src/components/android/Checker.vue +12 -12
  196. package/src/components/android/CheckerAnnual.vue +81 -81
  197. package/src/components/android/CheckerAvarta.vue +82 -82
  198. package/src/components/android/EquipmentInspection.vue +348 -348
  199. package/src/components/android/FootprintMap.vue +120 -120
  200. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  201. package/src/components/android/Insurance/PhoneInsurancePurchaseDetail.vue +286 -286
  202. package/src/components/android/MasterMain.vue +77 -77
  203. package/src/components/android/Menu.vue +132 -132
  204. package/src/components/android/NavBottom.vue +157 -157
  205. package/src/components/android/PaperAlarm.vue +85 -85
  206. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  207. package/src/components/android/PlumberAnnual.vue +83 -83
  208. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  209. package/src/components/android/PlumberMonthly.vue +84 -84
  210. package/src/components/android/PostMap.vue +83 -83
  211. package/src/components/android/QueryCheckHistory.vue +122 -122
  212. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  213. package/src/components/android/RepairMain.vue +60 -60
  214. package/src/components/android/Repairman.vue +12 -12
  215. package/src/components/android/StationMaster.vue +12 -12
  216. package/src/components/defects/DefectModal.vue +101 -101
  217. package/src/components/defects/DevicesAndItem.vue +39 -39
  218. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  219. package/src/components/notice/NoticeForm.vue +100 -100
  220. package/src/components/notice/NoticeIssue.vue +20 -20
  221. package/src/components/paper/PicViewer.vue +18 -18
  222. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  223. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  224. package/src/components/phonestate/PostMap.vue +82 -82
  225. package/src/components/planmanage/PlanManage.vue +889 -888
  226. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  227. package/src/components/userfile/MeterFile.vue +145 -145
  228. package/src/components/userfile/MeterModify.vue +46 -46
  229. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  230. package/src/filiale/weinan/android/SafecheckUserInfo.vue +791 -791
  231. package/src/plugins/LoadData.js +10 -10
  232. package/src/plugins/LoadParams.js +24 -24
  233. package/src/stores/wxconfig.js +10 -10
  234. package/src/utils/getNowDate.js +33 -33
  235. package/test/e2e/custom-assertions/elementCount.js +26 -26
  236. package/test/e2e/nightwatch.conf.js +40 -40
  237. package/test/e2e/runner.js +30 -30
  238. package/test/e2e/specs/test.js +13 -13
  239. package/test/unit/.eslintrc +5 -5
  240. package/test/unit/TestUtil.js +62 -62
  241. package/test/unit/context.html +20 -20
  242. package/test/unit/index.js +13 -13
@@ -1,77 +1,77 @@
1
- <template>
2
- <div class= "auto">
3
- <div style="text-align:center">欢迎</div>
4
- <div style="text-align:center">
5
- <span>{{orgCrumb}}</span>
6
- <img src="../../assets/mute.png" width="32" height="32" @click="mute"></img>
7
- </div>
8
- <route :comp="{name: 'attendance-tally'}" name="master-router"></route>
9
- <footer class="navbar-default navbar-fixed-bottom">
10
- <div class="container-fluid">
11
- <table width="100%" height="30px">
12
- <tr>
13
- <td @click="go2('attendance-tally')">考勤<td>
14
- <td @click="go2('track-state')">状态跟踪<td>
15
- <td @click="trackPlan">任务跟踪<td>
16
- <td @click="go2('system-setting')">设置<td>
17
- <td @click="go2('check-notice')">公告<td>
18
- <td @click="go2('phone-book')">通讯录<td>
19
- </tr>
20
- </table>
21
- </div>
22
- </footer>
23
- <menu :show.sync="showModal" small>
24
- <div slot="modal-body" class="modal-body">
25
- <table align="center">
26
- <tr><td>&nbsp;</td></tr>
27
- <tr><td @click="this.showModal = false, go2('checker-annual')">安检员年度任务跟踪</td></tr>
28
- <tr><td>&nbsp;</td></tr>
29
- <tr><td @click="this.showModal = false, go2('checker-monthly')">安检员月度任务跟踪</td></tr>
30
- <tr><td>&nbsp;</td></tr>
31
- <tr><td @click="this.showModal = false, go2('plumber-annual')">维修员年度任务跟踪</td></tr>
32
- <tr><td>&nbsp;</td></tr>
33
- <tr><td @click="this.showModal = false, go2('plumber-monthly')">维修员月度任务跟踪</td></tr>
34
- <tr><td>&nbsp;</td></tr>
35
- </table>
36
- </div>
37
- <menu>
38
- </div>
39
- </template>
40
-
41
- <script>
42
- import Vue from 'vue'
43
-
44
- export default {
45
- title: '所长界面',
46
- data() {
47
- return {
48
- orgs : Vue.orgs,
49
- showModal: false
50
- }
51
- },
52
- computed: {
53
- orgCrumb: function() {
54
- let oc = []
55
- if(this.orgs) {
56
- this.orgs.filter((item) => {
57
- return item.level != 4
58
- }).forEach(function(org) {
59
- oc.push(org.name)
60
- })
61
- }
62
- return oc.join('--')
63
- }
64
- },
65
- methods: {
66
- go2: function(widget, param) {
67
- this.$goto(widget, {}, 'master-router')
68
- },
69
- mute: function() {
70
- HostApp.mute()
71
- },
72
- trackPlan: function() {
73
- this.showModal = true
74
- }
75
- },
76
- }
77
- </script>
1
+ <template>
2
+ <div class= "auto">
3
+ <div style="text-align:center">欢迎</div>
4
+ <div style="text-align:center">
5
+ <span>{{orgCrumb}}</span>
6
+ <img src="../../assets/mute.png" width="32" height="32" @click="mute"></img>
7
+ </div>
8
+ <route :comp="{name: 'attendance-tally'}" name="master-router"></route>
9
+ <footer class="navbar-default navbar-fixed-bottom">
10
+ <div class="container-fluid">
11
+ <table width="100%" height="30px">
12
+ <tr>
13
+ <td @click="go2('attendance-tally')">考勤<td>
14
+ <td @click="go2('track-state')">状态跟踪<td>
15
+ <td @click="trackPlan">任务跟踪<td>
16
+ <td @click="go2('system-setting')">设置<td>
17
+ <td @click="go2('check-notice')">公告<td>
18
+ <td @click="go2('phone-book')">通讯录<td>
19
+ </tr>
20
+ </table>
21
+ </div>
22
+ </footer>
23
+ <menu :show.sync="showModal" small>
24
+ <div slot="modal-body" class="modal-body">
25
+ <table align="center">
26
+ <tr><td>&nbsp;</td></tr>
27
+ <tr><td @click="this.showModal = false, go2('checker-annual')">安检员年度任务跟踪</td></tr>
28
+ <tr><td>&nbsp;</td></tr>
29
+ <tr><td @click="this.showModal = false, go2('checker-monthly')">安检员月度任务跟踪</td></tr>
30
+ <tr><td>&nbsp;</td></tr>
31
+ <tr><td @click="this.showModal = false, go2('plumber-annual')">维修员年度任务跟踪</td></tr>
32
+ <tr><td>&nbsp;</td></tr>
33
+ <tr><td @click="this.showModal = false, go2('plumber-monthly')">维修员月度任务跟踪</td></tr>
34
+ <tr><td>&nbsp;</td></tr>
35
+ </table>
36
+ </div>
37
+ <menu>
38
+ </div>
39
+ </template>
40
+
41
+ <script>
42
+ import Vue from 'vue'
43
+
44
+ export default {
45
+ title: '所长界面',
46
+ data() {
47
+ return {
48
+ orgs : Vue.orgs,
49
+ showModal: false
50
+ }
51
+ },
52
+ computed: {
53
+ orgCrumb: function() {
54
+ let oc = []
55
+ if(this.orgs) {
56
+ this.orgs.filter((item) => {
57
+ return item.level != 4
58
+ }).forEach(function(org) {
59
+ oc.push(org.name)
60
+ })
61
+ }
62
+ return oc.join('--')
63
+ }
64
+ },
65
+ methods: {
66
+ go2: function(widget, param) {
67
+ this.$goto(widget, {}, 'master-router')
68
+ },
69
+ mute: function() {
70
+ HostApp.mute()
71
+ },
72
+ trackPlan: function() {
73
+ this.showModal = true
74
+ }
75
+ },
76
+ }
77
+ </script>
@@ -1,132 +1,132 @@
1
- <template>
2
- <div role="dialog" class='auto'
3
- v-bind:class="{
4
- 'modal':true,
5
- 'fade':effect === 'fade',
6
- 'zoom':effect === 'zoom'
7
- }"
8
- >
9
- <div v-bind:class="{'modal-dialog':true,'modal-lg':large,'modal-sm':small}" role="document"
10
- v-bind:style="{width: optionalWidth}" class='auto'>
11
- <div class="modal-content auto">
12
- <slot name="modal-body">
13
- <div class="modal-body"></div>
14
- </slot>
15
- </div>
16
- </div>
17
- </div>
18
- </template>
19
-
20
- <script>
21
- import getScrollBarWidth from 'vue-client/src/vue-strap/src/utils/getScrollBarWidth.js'
22
- import EventListener from 'vue-client/src/vue-strap/src/utils/EventListener.js'
23
-
24
- export default {
25
- props: {
26
- title: {
27
- type: String,
28
- default: ''
29
- },
30
- show: {
31
- require: true,
32
- type: Boolean,
33
- twoWay: true
34
- },
35
- width: {
36
- default: null
37
- },
38
- callback: {
39
- type: Function,
40
- default() {}
41
- },
42
- effect: {
43
- type: String,
44
- default: null
45
- },
46
- backdrop: {
47
- type: Boolean,
48
- default: true
49
- },
50
- large: {
51
- type: Boolean,
52
- default: false
53
- },
54
- small: {
55
- type: Boolean,
56
- default: false
57
- }
58
- },
59
- ready() {
60
- this.$watch('show', (val)=> {
61
- const el = this.$el
62
- const body = document.body
63
- const scrollBarWidth = getScrollBarWidth()
64
- if (val) {
65
- el.querySelector('.modal-content').focus()
66
- el.style.display = 'block'
67
- setTimeout(()=> el.classList.add('in'), 0)
68
- body.classList.add('modal-open')
69
- if (scrollBarWidth !== 0) {
70
- body.style.paddingRight = scrollBarWidth + 'px'
71
- }
72
- if (this.backdrop) {
73
- this._blurModalContentEvent = EventListener.listen(this.$el, 'click', (e)=> {
74
- if (e.target === el) this.show = false
75
- })
76
- }
77
- } else {
78
- if (this._blurModalContentEvent) this._blurModalContentEvent.remove()
79
- el.classList.remove('in')
80
- setTimeout(()=> {
81
- el.style.display = 'none'
82
- body.classList.remove('modal-open')
83
- body.style.paddingRight = '0'
84
- }, 300)
85
- }
86
- }, { immediate: true })
87
- },
88
- computed: {
89
- optionalWidth: function() {
90
- if( this.width === null ) {
91
- return null;
92
- } else if( Number.isInteger(this.width) ) {
93
- return this.width + "px";
94
- }
95
- return this.width;
96
- },
97
- },
98
- methods: {
99
- close() {
100
- this.show = false
101
- }
102
- }
103
- }
104
- </script>
105
- <style>
106
- .modal {
107
- transition: all 0.3s ease;
108
- }
109
- .modal.in {
110
- background-color: rgba(0,0,0,0.5);
111
- }
112
- .modal.zoom .modal-dialog {
113
- -webkit-transform: scale(0.1);
114
- -moz-transform: scale(0.1);
115
- -ms-transform: scale(0.1);
116
- transform: scale(0.1);
117
- top: 300px;
118
- opacity: 0;
119
- -webkit-transition: all 0.3s;
120
- -moz-transition: all 0.3s;
121
- transition: all 0.3s;
122
- }
123
- .modal.zoom.in .modal-dialog {
124
- -webkit-transform: scale(1);
125
- -moz-transform: scale(1);
126
- -ms-transform: scale(1);
127
- transform: scale(1);
128
- -webkit-transform: translate3d(0, -300px, 0);
129
- transform: translate3d(0, -300px, 0);
130
- opacity: 1;
131
- }
132
- </style>
1
+ <template>
2
+ <div role="dialog" class='auto'
3
+ v-bind:class="{
4
+ 'modal':true,
5
+ 'fade':effect === 'fade',
6
+ 'zoom':effect === 'zoom'
7
+ }"
8
+ >
9
+ <div v-bind:class="{'modal-dialog':true,'modal-lg':large,'modal-sm':small}" role="document"
10
+ v-bind:style="{width: optionalWidth}" class='auto'>
11
+ <div class="modal-content auto">
12
+ <slot name="modal-body">
13
+ <div class="modal-body"></div>
14
+ </slot>
15
+ </div>
16
+ </div>
17
+ </div>
18
+ </template>
19
+
20
+ <script>
21
+ import getScrollBarWidth from 'vue-client/src/vue-strap/src/utils/getScrollBarWidth.js'
22
+ import EventListener from 'vue-client/src/vue-strap/src/utils/EventListener.js'
23
+
24
+ export default {
25
+ props: {
26
+ title: {
27
+ type: String,
28
+ default: ''
29
+ },
30
+ show: {
31
+ require: true,
32
+ type: Boolean,
33
+ twoWay: true
34
+ },
35
+ width: {
36
+ default: null
37
+ },
38
+ callback: {
39
+ type: Function,
40
+ default() {}
41
+ },
42
+ effect: {
43
+ type: String,
44
+ default: null
45
+ },
46
+ backdrop: {
47
+ type: Boolean,
48
+ default: true
49
+ },
50
+ large: {
51
+ type: Boolean,
52
+ default: false
53
+ },
54
+ small: {
55
+ type: Boolean,
56
+ default: false
57
+ }
58
+ },
59
+ ready() {
60
+ this.$watch('show', (val)=> {
61
+ const el = this.$el
62
+ const body = document.body
63
+ const scrollBarWidth = getScrollBarWidth()
64
+ if (val) {
65
+ el.querySelector('.modal-content').focus()
66
+ el.style.display = 'block'
67
+ setTimeout(()=> el.classList.add('in'), 0)
68
+ body.classList.add('modal-open')
69
+ if (scrollBarWidth !== 0) {
70
+ body.style.paddingRight = scrollBarWidth + 'px'
71
+ }
72
+ if (this.backdrop) {
73
+ this._blurModalContentEvent = EventListener.listen(this.$el, 'click', (e)=> {
74
+ if (e.target === el) this.show = false
75
+ })
76
+ }
77
+ } else {
78
+ if (this._blurModalContentEvent) this._blurModalContentEvent.remove()
79
+ el.classList.remove('in')
80
+ setTimeout(()=> {
81
+ el.style.display = 'none'
82
+ body.classList.remove('modal-open')
83
+ body.style.paddingRight = '0'
84
+ }, 300)
85
+ }
86
+ }, { immediate: true })
87
+ },
88
+ computed: {
89
+ optionalWidth: function() {
90
+ if( this.width === null ) {
91
+ return null;
92
+ } else if( Number.isInteger(this.width) ) {
93
+ return this.width + "px";
94
+ }
95
+ return this.width;
96
+ },
97
+ },
98
+ methods: {
99
+ close() {
100
+ this.show = false
101
+ }
102
+ }
103
+ }
104
+ </script>
105
+ <style>
106
+ .modal {
107
+ transition: all 0.3s ease;
108
+ }
109
+ .modal.in {
110
+ background-color: rgba(0,0,0,0.5);
111
+ }
112
+ .modal.zoom .modal-dialog {
113
+ -webkit-transform: scale(0.1);
114
+ -moz-transform: scale(0.1);
115
+ -ms-transform: scale(0.1);
116
+ transform: scale(0.1);
117
+ top: 300px;
118
+ opacity: 0;
119
+ -webkit-transition: all 0.3s;
120
+ -moz-transition: all 0.3s;
121
+ transition: all 0.3s;
122
+ }
123
+ .modal.zoom.in .modal-dialog {
124
+ -webkit-transform: scale(1);
125
+ -moz-transform: scale(1);
126
+ -ms-transform: scale(1);
127
+ transform: scale(1);
128
+ -webkit-transform: translate3d(0, -300px, 0);
129
+ transform: translate3d(0, -300px, 0);
130
+ opacity: 1;
131
+ }
132
+ </style>