@hostlink/nuxt-light 1.55.0 → 1.56.0

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 (218) hide show
  1. package/README.md +120 -120
  2. package/dist/module.json +1 -1
  3. package/dist/runtime/components/L/CustomField/Add.vue +40 -42
  4. package/dist/runtime/components/L/CustomField/List.vue +5 -5
  5. package/dist/runtime/components/L/Database/create-table-dialog.vue +33 -34
  6. package/dist/runtime/components/L/Fieldset.vue +8 -11
  7. package/dist/runtime/components/L/ForgetPasswordDialog.vue +26 -27
  8. package/dist/runtime/components/L/Revision.vue +89 -93
  9. package/dist/runtime/components/L/Storage.vue +7 -7
  10. package/dist/runtime/components/L/System/Setting/authentication.d.vue.ts +1 -5
  11. package/dist/runtime/components/L/System/Setting/authentication.vue +16 -16
  12. package/dist/runtime/components/L/System/Setting/authentication.vue.d.ts +1 -5
  13. package/dist/runtime/components/L/System/Setting/developer.vue +10 -11
  14. package/dist/runtime/components/L/System/Setting/forget-password.vue +9 -9
  15. package/dist/runtime/components/L/System/Setting/general.vue +9 -9
  16. package/dist/runtime/components/L/System/Setting/mail.d.vue.ts +1 -5
  17. package/dist/runtime/components/L/System/Setting/mail.vue +28 -32
  18. package/dist/runtime/components/L/System/Setting/mail.vue.d.ts +1 -5
  19. package/dist/runtime/components/L/System/Setting/modules.d.vue.ts +1 -5
  20. package/dist/runtime/components/L/System/Setting/modules.vue +6 -6
  21. package/dist/runtime/components/L/System/Setting/modules.vue.d.ts +1 -5
  22. package/dist/runtime/components/L/System/Setting/security.d.vue.ts +1 -5
  23. package/dist/runtime/components/L/System/Setting/security.vue +38 -41
  24. package/dist/runtime/components/L/System/Setting/security.vue.d.ts +1 -5
  25. package/dist/runtime/components/L/User/eventlog.vue +5 -5
  26. package/dist/runtime/components/L/User/overview.vue +19 -19
  27. package/dist/runtime/components/L/User/userlog.vue +1 -1
  28. package/dist/runtime/components/L/ValidationInput.vue +14 -14
  29. package/dist/runtime/components/MyTest.vue +3 -3
  30. package/dist/runtime/components/l-action-btn.vue +4 -4
  31. package/dist/runtime/components/l-add-btn.vue +3 -3
  32. package/dist/runtime/components/l-alert.vue +8 -8
  33. package/dist/runtime/components/l-app-main.d.vue.ts +1 -5
  34. package/dist/runtime/components/l-app-main.vue +170 -171
  35. package/dist/runtime/components/l-app-main.vue.d.ts +1 -5
  36. package/dist/runtime/components/l-app.vue +27 -27
  37. package/dist/runtime/components/l-audit-card.vue +8 -8
  38. package/dist/runtime/components/l-back-btn.vue +6 -6
  39. package/dist/runtime/components/l-banner.d.vue.ts +1 -1
  40. package/dist/runtime/components/l-banner.vue +10 -10
  41. package/dist/runtime/components/l-banner.vue.d.ts +1 -1
  42. package/dist/runtime/components/l-bar.vue +3 -3
  43. package/dist/runtime/components/l-btn.vue +4 -4
  44. package/dist/runtime/components/l-card.d.vue.ts +1 -9
  45. package/dist/runtime/components/l-card.vue +31 -31
  46. package/dist/runtime/components/l-card.vue.d.ts +1 -9
  47. package/dist/runtime/components/l-checkbox.vue +3 -3
  48. package/dist/runtime/components/l-col.vue +5 -5
  49. package/dist/runtime/components/l-customizer.d.vue.ts +2 -2
  50. package/dist/runtime/components/l-customizer.vue +95 -96
  51. package/dist/runtime/components/l-customizer.vue.d.ts +2 -2
  52. package/dist/runtime/components/l-date-picker.d.vue.ts +1 -1
  53. package/dist/runtime/components/l-date-picker.vue +17 -17
  54. package/dist/runtime/components/l-date-picker.vue.d.ts +1 -1
  55. package/dist/runtime/components/l-delete-btn.vue +1 -1
  56. package/dist/runtime/components/l-dialog-database-field-add.vue +25 -26
  57. package/dist/runtime/components/l-drag-drop-container.vue +5 -5
  58. package/dist/runtime/components/l-drag-drop-group.vue +1 -1
  59. package/dist/runtime/components/l-drag-drop.vue +6 -6
  60. package/dist/runtime/components/l-edit-btn.vue +2 -2
  61. package/dist/runtime/components/l-editor.d.vue.ts +1 -5
  62. package/dist/runtime/components/l-editor.vue +41 -41
  63. package/dist/runtime/components/l-editor.vue.d.ts +1 -5
  64. package/dist/runtime/components/l-facebook-button.vue +2 -2
  65. package/dist/runtime/components/l-fav-menu.vue +14 -14
  66. package/dist/runtime/components/l-field.vue +3 -3
  67. package/dist/runtime/components/l-file-manager-labels.vue +11 -11
  68. package/dist/runtime/components/l-file-manager-move.vue +67 -67
  69. package/dist/runtime/components/l-file-manager-preview.vue +22 -22
  70. package/dist/runtime/components/l-file-manager.vue +245 -250
  71. package/dist/runtime/components/l-file-upload.d.vue.ts +1 -1
  72. package/dist/runtime/components/l-file-upload.vue +25 -25
  73. package/dist/runtime/components/l-file-upload.vue.d.ts +1 -1
  74. package/dist/runtime/components/l-file.d.vue.ts +1 -5
  75. package/dist/runtime/components/l-file.vue +8 -8
  76. package/dist/runtime/components/l-file.vue.d.ts +1 -5
  77. package/dist/runtime/components/l-form-dialog.vue +27 -27
  78. package/dist/runtime/components/l-form.d.vue.ts +1 -33
  79. package/dist/runtime/components/l-form.vue +11 -11
  80. package/dist/runtime/components/l-form.vue.d.ts +1 -33
  81. package/dist/runtime/components/l-group-select.vue +22 -22
  82. package/dist/runtime/components/l-icon-picker.vue +35 -38
  83. package/dist/runtime/components/l-input-select.vue +4 -4
  84. package/dist/runtime/components/l-input-xlsx.vue +30 -31
  85. package/dist/runtime/components/l-input.d.vue.ts +1 -1
  86. package/dist/runtime/components/l-input.vue +23 -23
  87. package/dist/runtime/components/l-input.vue.d.ts +1 -1
  88. package/dist/runtime/components/l-item.vue +18 -18
  89. package/dist/runtime/components/l-link.vue +3 -3
  90. package/dist/runtime/components/l-list.vue +12 -12
  91. package/dist/runtime/components/l-login.d.vue.ts +1 -5
  92. package/dist/runtime/components/l-login.vue +57 -57
  93. package/dist/runtime/components/l-login.vue.d.ts +1 -5
  94. package/dist/runtime/components/l-menu.vue +33 -34
  95. package/dist/runtime/components/l-microsoft-button.d.vue.ts +1 -11
  96. package/dist/runtime/components/l-microsoft-button.vue +68 -68
  97. package/dist/runtime/components/l-microsoft-button.vue.d.ts +1 -11
  98. package/dist/runtime/components/l-page.vue +21 -21
  99. package/dist/runtime/components/l-repeater.d.vue.ts +3 -3
  100. package/dist/runtime/components/l-repeater.vue +35 -35
  101. package/dist/runtime/components/l-repeater.vue.d.ts +3 -3
  102. package/dist/runtime/components/l-row.vue +5 -5
  103. package/dist/runtime/components/l-save-btn.vue +2 -2
  104. package/dist/runtime/components/l-select.vue +1 -1
  105. package/dist/runtime/components/l-small-box.vue +9 -9
  106. package/dist/runtime/components/l-statistic.vue +9 -9
  107. package/dist/runtime/components/l-tab.vue +10 -10
  108. package/dist/runtime/components/l-table.d.vue.ts +1 -1
  109. package/dist/runtime/components/l-table.vue +176 -190
  110. package/dist/runtime/components/l-table.vue.d.ts +1 -1
  111. package/dist/runtime/components/l-tabs.vue +9 -9
  112. package/dist/runtime/components/l-test2.vue +3 -3
  113. package/dist/runtime/components/l-time-picker.d.vue.ts +1 -1
  114. package/dist/runtime/components/l-time-picker.vue +18 -18
  115. package/dist/runtime/components/l-time-picker.vue.d.ts +1 -1
  116. package/dist/runtime/components/l-view-btn.vue +2 -2
  117. package/dist/runtime/components/user-list.vue +3 -3
  118. package/dist/runtime/composables/mytest.js +2 -2
  119. package/dist/runtime/composables/tc2sc.js +85 -85
  120. package/dist/runtime/formkit/Checkbox.d.vue.ts +0 -1
  121. package/dist/runtime/formkit/Checkbox.vue +6 -6
  122. package/dist/runtime/formkit/Checkbox.vue.d.ts +0 -1
  123. package/dist/runtime/formkit/DatePicker.d.vue.ts +0 -1
  124. package/dist/runtime/formkit/DatePicker.vue +11 -11
  125. package/dist/runtime/formkit/DatePicker.vue.d.ts +0 -1
  126. package/dist/runtime/formkit/Editor.vue +7 -7
  127. package/dist/runtime/formkit/File.d.vue.ts +0 -1
  128. package/dist/runtime/formkit/File.vue +6 -6
  129. package/dist/runtime/formkit/File.vue.d.ts +0 -1
  130. package/dist/runtime/formkit/FilePicker.d.vue.ts +0 -1
  131. package/dist/runtime/formkit/FilePicker.vue +6 -6
  132. package/dist/runtime/formkit/FilePicker.vue.d.ts +0 -1
  133. package/dist/runtime/formkit/FileUpload.d.vue.ts +0 -1
  134. package/dist/runtime/formkit/FileUpload.vue +6 -6
  135. package/dist/runtime/formkit/FileUpload.vue.d.ts +0 -1
  136. package/dist/runtime/formkit/Form.d.vue.ts +1 -3
  137. package/dist/runtime/formkit/Form.vue +11 -11
  138. package/dist/runtime/formkit/Form.vue.d.ts +1 -3
  139. package/dist/runtime/formkit/GroupSelect.d.vue.ts +0 -1
  140. package/dist/runtime/formkit/GroupSelect.vue +7 -7
  141. package/dist/runtime/formkit/GroupSelect.vue.d.ts +0 -1
  142. package/dist/runtime/formkit/Input.d.vue.ts +1 -1
  143. package/dist/runtime/formkit/Input.vue +11 -11
  144. package/dist/runtime/formkit/Input.vue.d.ts +1 -1
  145. package/dist/runtime/formkit/InputSelect.d.vue.ts +1 -1
  146. package/dist/runtime/formkit/InputSelect.vue +7 -7
  147. package/dist/runtime/formkit/InputSelect.vue.d.ts +1 -1
  148. package/dist/runtime/formkit/InputXlsx.vue +4 -4
  149. package/dist/runtime/formkit/OptionGroup.vue +5 -5
  150. package/dist/runtime/formkit/Radio.vue +4 -4
  151. package/dist/runtime/formkit/Repeater.d.vue.ts +1 -1
  152. package/dist/runtime/formkit/Repeater.vue +37 -37
  153. package/dist/runtime/formkit/Repeater.vue.d.ts +1 -1
  154. package/dist/runtime/formkit/Select.d.vue.ts +0 -1
  155. package/dist/runtime/formkit/Select.vue +6 -6
  156. package/dist/runtime/formkit/Select.vue.d.ts +0 -1
  157. package/dist/runtime/formkit/Textarea.d.vue.ts +1 -1
  158. package/dist/runtime/formkit/Textarea.vue +11 -11
  159. package/dist/runtime/formkit/Textarea.vue.d.ts +1 -1
  160. package/dist/runtime/formkit/TimePicker.d.vue.ts +0 -1
  161. package/dist/runtime/formkit/TimePicker.vue +10 -10
  162. package/dist/runtime/formkit/TimePicker.vue.d.ts +0 -1
  163. package/dist/runtime/formkit/Toggle.vue +3 -3
  164. package/dist/runtime/index.d.ts +39 -39
  165. package/dist/runtime/locales/en.json +9 -9
  166. package/dist/runtime/locales/zh-hk.json +213 -213
  167. package/dist/runtime/pages/CustomField/[custom_field_id]/edit.vue +33 -38
  168. package/dist/runtime/pages/CustomField/index.vue +12 -14
  169. package/dist/runtime/pages/EventLog/_eventlog_id/view.vue +36 -36
  170. package/dist/runtime/pages/EventLog/index.vue +7 -7
  171. package/dist/runtime/pages/FileManager/index.vue +4 -4
  172. package/dist/runtime/pages/MailLog/index.vue +18 -18
  173. package/dist/runtime/pages/Permission/add.vue +13 -13
  174. package/dist/runtime/pages/Permission/all.vue +63 -63
  175. package/dist/runtime/pages/Permission/export.vue +9 -10
  176. package/dist/runtime/pages/Permission/index.vue +4 -4
  177. package/dist/runtime/pages/Role/_name/update-child.vue +4 -4
  178. package/dist/runtime/pages/Role/add.vue +7 -7
  179. package/dist/runtime/pages/Role/add2.vue +30 -30
  180. package/dist/runtime/pages/Role/index.vue +27 -27
  181. package/dist/runtime/pages/System/database/backup.vue +72 -72
  182. package/dist/runtime/pages/System/database/check.vue +72 -72
  183. package/dist/runtime/pages/System/database/event.vue +51 -51
  184. package/dist/runtime/pages/System/database/process.vue +21 -21
  185. package/dist/runtime/pages/System/database/restore.vue +110 -110
  186. package/dist/runtime/pages/System/database/table.vue +67 -69
  187. package/dist/runtime/pages/System/fs.vue +99 -99
  188. package/dist/runtime/pages/System/index.vue +16 -18
  189. package/dist/runtime/pages/System/mailtest.vue +12 -12
  190. package/dist/runtime/pages/System/menu/index.vue +142 -144
  191. package/dist/runtime/pages/System/package.vue +11 -11
  192. package/dist/runtime/pages/System/phpinfo.vue +3 -3
  193. package/dist/runtime/pages/System/setting.vue +28 -30
  194. package/dist/runtime/pages/System/test.vue +12 -12
  195. package/dist/runtime/pages/System/view_as.vue +21 -22
  196. package/dist/runtime/pages/SystemValue/_systemvalue_id/edit.vue +6 -6
  197. package/dist/runtime/pages/SystemValue/add.vue +7 -7
  198. package/dist/runtime/pages/SystemValue/index.vue +4 -4
  199. package/dist/runtime/pages/Translate/index.vue +38 -38
  200. package/dist/runtime/pages/User/_user_id/change-password.vue +17 -18
  201. package/dist/runtime/pages/User/_user_id/edit.vue +28 -28
  202. package/dist/runtime/pages/User/_user_id/update-role.vue +7 -8
  203. package/dist/runtime/pages/User/_user_id/view.vue +27 -30
  204. package/dist/runtime/pages/User/add.vue +35 -35
  205. package/dist/runtime/pages/User/index.vue +11 -11
  206. package/dist/runtime/pages/User/profile.vue +45 -46
  207. package/dist/runtime/pages/User/setting/bio-auth.vue +22 -22
  208. package/dist/runtime/pages/User/setting/favorite.vue +61 -62
  209. package/dist/runtime/pages/User/setting/index.vue +6 -6
  210. package/dist/runtime/pages/User/setting/information.vue +6 -6
  211. package/dist/runtime/pages/User/setting/menu.vue +165 -165
  212. package/dist/runtime/pages/User/setting/open_id.vue +161 -161
  213. package/dist/runtime/pages/User/setting/password.vue +19 -19
  214. package/dist/runtime/pages/User/setting/style.vue +104 -106
  215. package/dist/runtime/pages/User/setting/two-factor-auth.vue +176 -176
  216. package/dist/runtime/pages/User/setting.vue +32 -32
  217. package/dist/runtime/pages/UserLog/index.vue +4 -4
  218. package/package.json +63 -63
@@ -141,167 +141,167 @@ const text1 = "Your social accounts are securely linked using industry-standard
141
141
  </script>
142
142
 
143
143
  <template>
144
- <div class="q-pa-md">
145
- <!-- 頁面標題 -->
146
- <div class="q-mb-lg">
147
- <h1 class="text-h4 q-mb-sm">{{ $t('Social Account Linking') }}</h1>
148
- <p class="text-grey-6">{{ $t('Link your social accounts to enable quick sign-in and enhanced features.') }}
149
- </p>
150
- </div>
151
-
152
- <!-- 社交平台連結區域 -->
153
- <div class="row q-col-gutter-md">
154
- <!-- Google -->
155
- <div class="col-12 col-md-4">
156
- <q-card class="full-height" :class="my.google ? 'bg-green-1 border-green' : 'bg-grey-1'">
157
- <q-card-section class="text-center q-pb-none">
158
- <q-avatar size="64px" class="q-mb-md" :color="my.google ? 'green' : 'grey-5'"
159
- text-color="white">
160
- <q-icon :name="fabGoogle" size="32px" />
161
- </q-avatar>
162
- <div class="text-h6 q-mb-xs">Google</div>
163
- <q-badge v-if="my.google" color="green" class="q-mb-md">
164
- {{ $t('Connected') }}
165
- </q-badge>
166
- <q-badge v-else color="grey-5" class="q-mb-md">
167
- {{ $t('Not Connected') }}
168
- </q-badge>
169
- </q-card-section>
170
-
171
- <q-card-section v-if="app.googleClientId">
172
- <template v-if="my.google">
173
- <div class="text-center q-mb-md">
174
- <div class="text-caption text-grey-6">{{ $t('Connected Account') }}</div>
175
- <div class="text-body2 text-weight-medium q-mt-xs">{{ my.google }}</div>
176
- </div>
177
- <q-btn class="full-width" color="negative" outline @click="onUnlink" icon="sym_o_link_off"
178
- :label="$t('Unlink Account')" />
179
- </template>
180
- <template v-else>
181
- <div class="text-center q-mb-md text-grey-6">
182
- {{ $t('Click to link your Google account for quick sign-in') }}
183
- </div>
184
- <div id="g_id_signin" class="flex justify-center"></div>
185
- </template>
186
- </q-card-section>
187
- <q-card-section v-else>
188
- <q-banner class="bg-orange-2 text-orange-9">
189
- <template v-slot:avatar>
190
- <q-icon name="sym_o_warning" />
191
- </template>
192
- {{ $t('Service not configured. Please contact administrator.') }}
193
- </q-banner>
194
- </q-card-section>
195
- </q-card>
196
- </div>
197
-
198
- <!-- Microsoft -->
199
- <div class="col-12 col-md-4">
200
- <q-card class="full-height" :class="my.microsoft ? 'bg-blue-1 border-blue' : 'bg-grey-1'">
201
- <q-card-section class="text-center q-pb-none">
202
- <q-avatar size="64px" class="q-mb-md" :color="my.microsoft ? 'blue' : 'grey-5'"
203
- text-color="white">
204
- <q-icon :name="fabMicrosoft" size="32px" />
205
- </q-avatar>
206
- <div class="text-h6 q-mb-xs">Microsoft</div>
207
- <q-badge v-if="my.microsoft" color="blue" class="q-mb-md">
208
- {{ $t('Connected') }}
209
- </q-badge>
210
- <q-badge v-else color="grey-5" class="q-mb-md">
211
- {{ $t('Not Connected') }}
212
- </q-badge>
213
- </q-card-section>
214
-
215
- <q-card-section v-if="app.microsoftClientId">
216
- <template v-if="my.microsoft">
217
- <div class="text-center q-mb-md">
218
- <div class="text-caption text-grey-6">{{ $t('Connected Account') }}</div>
219
- <div class="text-body2 text-weight-medium q-mt-xs">{{ my.microsoft }}</div>
220
- </div>
221
- <q-btn class="full-width" color="negative" outline @click="onUnlinkMicrosoft"
222
- icon="sym_o_link_off" :label="$t('Unlink Account')" />
223
- </template>
224
- <template v-else>
225
- <div class="text-center q-mb-md text-grey-6">
226
- {{ $t('Click to link your Microsoft account for quick sign-in') }}
227
- </div>
228
- <div class="flex justify-center">
229
- <l-microsoft-button :client-id="app.microsoftClientId"
230
- :tenant-id="app.microsoftTenantId" @login="onLinkMicrosoft" />
231
- </div>
232
- </template>
233
- </q-card-section>
234
- <q-card-section v-else>
235
- <q-banner class="bg-orange-2 text-orange-9">
236
- <template v-slot:avatar>
237
- <q-icon name="sym_o_warning" />
238
- </template>
239
- {{ $t('Service not configured. Please contact administrator.') }}
240
- </q-banner>
241
- </q-card-section>
242
- </q-card>
243
- </div>
244
-
245
- <!-- Facebook -->
246
- <div class="col-12 col-md-4">
247
- <q-card class="full-height" :class="my.facebook ? 'bg-indigo-1 border-indigo' : 'bg-grey-1'">
248
- <q-card-section class="text-center q-pb-none">
249
- <q-avatar size="64px" class="q-mb-md" :color="my.facebook ? 'indigo' : 'grey-5'"
250
- text-color="white">
251
- <q-icon :name="fabFacebook" size="32px" />
252
- </q-avatar>
253
- <div class="text-h6 q-mb-xs">Facebook</div>
254
- <q-badge v-if="my.facebook" color="indigo" class="q-mb-md">
255
- {{ $t('Connected') }}
256
- </q-badge>
257
- <q-badge v-else color="grey-5" class="q-mb-md">
258
- {{ $t('Not Connected') }}
259
- </q-badge>
260
- </q-card-section>
261
-
262
- <q-card-section v-if="app.facebookAppId">
263
- <template v-if="my.facebook">
264
- <div class="text-center q-mb-md">
265
- <div class="text-caption text-grey-6">{{ $t('Connected Account') }}</div>
266
- <div class="text-body2 text-weight-medium q-mt-xs">{{ my.facebook }}</div>
267
- </div>
268
- <q-btn class="full-width" color="negative" outline @click="onUnlinkFacebook"
269
- icon="sym_o_link_off" :label="$t('Unlink Account')" />
270
- </template>
271
- <template v-else>
272
- <div class="text-center q-mb-md text-grey-6">
273
- {{ $t('Click to link your Facebook account for quick sign-in') }}
274
- </div>
275
- <div class="flex justify-center">
276
- <l-facebook-button @login="onLinkFacebook" />
277
- </div>
278
- </template>
279
- </q-card-section>
280
- <q-card-section v-else>
281
- <q-banner class="bg-orange-2 text-orange-9">
282
- <template v-slot:avatar>
283
- <q-icon name="sym_o_warning" />
284
- </template>
285
- {{ $t('Service not configured. Please contact administrator.') }}
286
- </q-banner>
287
- </q-card-section>
288
- </q-card>
289
- </div>
290
- </div>
291
-
292
- <!-- 安全提示 -->
293
- <q-card class="q-mt-lg bg-blue-1">
294
- <q-card-section>
295
- <div class="row items-center">
296
- <q-icon name="sym_o_security" color="blue" size="24px" class="q-mr-sm" />
297
- <div class="text-h6 text-blue-8">{{ $t('Security Notice') }}</div>
298
- </div>
299
- <p class="text-blue-7 q-mb-none q-mt-sm">
300
- {{ $t(text1) }}
301
- </p>
302
- </q-card-section>
303
- </q-card>
304
- </div>
144
+ <div class="q-pa-md">
145
+ <!-- 頁面標題 -->
146
+ <div class="q-mb-lg">
147
+ <h1 class="text-h4 q-mb-sm">{{ $t('Social Account Linking') }}</h1>
148
+ <p class="text-grey-6">{{ $t('Link your social accounts to enable quick sign-in and enhanced features.') }}
149
+ </p>
150
+ </div>
151
+
152
+ <!-- 社交平台連結區域 -->
153
+ <div class="row q-col-gutter-md">
154
+ <!-- Google -->
155
+ <div class="col-12 col-md-4">
156
+ <q-card class="full-height" :class="my.google ? 'bg-green-1 border-green' : 'bg-grey-1'">
157
+ <q-card-section class="text-center q-pb-none">
158
+ <q-avatar size="64px" class="q-mb-md" :color="my.google ? 'green' : 'grey-5'"
159
+ text-color="white">
160
+ <q-icon :name="fabGoogle" size="32px" />
161
+ </q-avatar>
162
+ <div class="text-h6 q-mb-xs">Google</div>
163
+ <q-badge v-if="my.google" color="green" class="q-mb-md">
164
+ {{ $t('Connected') }}
165
+ </q-badge>
166
+ <q-badge v-else color="grey-5" class="q-mb-md">
167
+ {{ $t('Not Connected') }}
168
+ </q-badge>
169
+ </q-card-section>
170
+
171
+ <q-card-section v-if="app.googleClientId">
172
+ <template v-if="my.google">
173
+ <div class="text-center q-mb-md">
174
+ <div class="text-caption text-grey-6">{{ $t('Connected Account') }}</div>
175
+ <div class="text-body2 text-weight-medium q-mt-xs">{{ my.google }}</div>
176
+ </div>
177
+ <q-btn class="full-width" color="negative" outline @click="onUnlink" icon="sym_o_link_off"
178
+ :label="$t('Unlink Account')" />
179
+ </template>
180
+ <template v-else>
181
+ <div class="text-center q-mb-md text-grey-6">
182
+ {{ $t('Click to link your Google account for quick sign-in') }}
183
+ </div>
184
+ <div id="g_id_signin" class="flex justify-center"></div>
185
+ </template>
186
+ </q-card-section>
187
+ <q-card-section v-else>
188
+ <q-banner class="bg-orange-2 text-orange-9">
189
+ <template v-slot:avatar>
190
+ <q-icon name="sym_o_warning" />
191
+ </template>
192
+ {{ $t('Service not configured. Please contact administrator.') }}
193
+ </q-banner>
194
+ </q-card-section>
195
+ </q-card>
196
+ </div>
197
+
198
+ <!-- Microsoft -->
199
+ <div class="col-12 col-md-4">
200
+ <q-card class="full-height" :class="my.microsoft ? 'bg-blue-1 border-blue' : 'bg-grey-1'">
201
+ <q-card-section class="text-center q-pb-none">
202
+ <q-avatar size="64px" class="q-mb-md" :color="my.microsoft ? 'blue' : 'grey-5'"
203
+ text-color="white">
204
+ <q-icon :name="fabMicrosoft" size="32px" />
205
+ </q-avatar>
206
+ <div class="text-h6 q-mb-xs">Microsoft</div>
207
+ <q-badge v-if="my.microsoft" color="blue" class="q-mb-md">
208
+ {{ $t('Connected') }}
209
+ </q-badge>
210
+ <q-badge v-else color="grey-5" class="q-mb-md">
211
+ {{ $t('Not Connected') }}
212
+ </q-badge>
213
+ </q-card-section>
214
+
215
+ <q-card-section v-if="app.microsoftClientId">
216
+ <template v-if="my.microsoft">
217
+ <div class="text-center q-mb-md">
218
+ <div class="text-caption text-grey-6">{{ $t('Connected Account') }}</div>
219
+ <div class="text-body2 text-weight-medium q-mt-xs">{{ my.microsoft }}</div>
220
+ </div>
221
+ <q-btn class="full-width" color="negative" outline @click="onUnlinkMicrosoft"
222
+ icon="sym_o_link_off" :label="$t('Unlink Account')" />
223
+ </template>
224
+ <template v-else>
225
+ <div class="text-center q-mb-md text-grey-6">
226
+ {{ $t('Click to link your Microsoft account for quick sign-in') }}
227
+ </div>
228
+ <div class="flex justify-center">
229
+ <l-microsoft-button :client-id="app.microsoftClientId"
230
+ :tenant-id="app.microsoftTenantId" @login="onLinkMicrosoft" />
231
+ </div>
232
+ </template>
233
+ </q-card-section>
234
+ <q-card-section v-else>
235
+ <q-banner class="bg-orange-2 text-orange-9">
236
+ <template v-slot:avatar>
237
+ <q-icon name="sym_o_warning" />
238
+ </template>
239
+ {{ $t('Service not configured. Please contact administrator.') }}
240
+ </q-banner>
241
+ </q-card-section>
242
+ </q-card>
243
+ </div>
244
+
245
+ <!-- Facebook -->
246
+ <div class="col-12 col-md-4">
247
+ <q-card class="full-height" :class="my.facebook ? 'bg-indigo-1 border-indigo' : 'bg-grey-1'">
248
+ <q-card-section class="text-center q-pb-none">
249
+ <q-avatar size="64px" class="q-mb-md" :color="my.facebook ? 'indigo' : 'grey-5'"
250
+ text-color="white">
251
+ <q-icon :name="fabFacebook" size="32px" />
252
+ </q-avatar>
253
+ <div class="text-h6 q-mb-xs">Facebook</div>
254
+ <q-badge v-if="my.facebook" color="indigo" class="q-mb-md">
255
+ {{ $t('Connected') }}
256
+ </q-badge>
257
+ <q-badge v-else color="grey-5" class="q-mb-md">
258
+ {{ $t('Not Connected') }}
259
+ </q-badge>
260
+ </q-card-section>
261
+
262
+ <q-card-section v-if="app.facebookAppId">
263
+ <template v-if="my.facebook">
264
+ <div class="text-center q-mb-md">
265
+ <div class="text-caption text-grey-6">{{ $t('Connected Account') }}</div>
266
+ <div class="text-body2 text-weight-medium q-mt-xs">{{ my.facebook }}</div>
267
+ </div>
268
+ <q-btn class="full-width" color="negative" outline @click="onUnlinkFacebook"
269
+ icon="sym_o_link_off" :label="$t('Unlink Account')" />
270
+ </template>
271
+ <template v-else>
272
+ <div class="text-center q-mb-md text-grey-6">
273
+ {{ $t('Click to link your Facebook account for quick sign-in') }}
274
+ </div>
275
+ <div class="flex justify-center">
276
+ <l-facebook-button @login="onLinkFacebook" />
277
+ </div>
278
+ </template>
279
+ </q-card-section>
280
+ <q-card-section v-else>
281
+ <q-banner class="bg-orange-2 text-orange-9">
282
+ <template v-slot:avatar>
283
+ <q-icon name="sym_o_warning" />
284
+ </template>
285
+ {{ $t('Service not configured. Please contact administrator.') }}
286
+ </q-banner>
287
+ </q-card-section>
288
+ </q-card>
289
+ </div>
290
+ </div>
291
+
292
+ <!-- 安全提示 -->
293
+ <q-card class="q-mt-lg bg-blue-1">
294
+ <q-card-section>
295
+ <div class="row items-center">
296
+ <q-icon name="sym_o_security" color="blue" size="24px" class="q-mr-sm" />
297
+ <div class="text-h6 text-blue-8">{{ $t('Security Notice') }}</div>
298
+ </div>
299
+ <p class="text-blue-7 q-mb-none q-mt-sm">
300
+ {{ $t(text1) }}
301
+ </p>
302
+ </q-card-section>
303
+ </q-card>
304
+ </div>
305
305
  </template>
306
306
 
307
307
  <style scoped>
@@ -37,23 +37,23 @@ const policies = computed(() => {
37
37
  </script>
38
38
 
39
39
  <template>
40
- <FormKit type="l-form" :bordered="false" @submit="onSubmit">
41
- <FormKit type="l-input" label="Old password" name="old_password" inputType="password" validation="required"
42
- autocomplete="current-password" />
43
- <FormKit type="l-input" label="New password" name="new_password" inputType="password"
44
- :validation="system.passwordPolicy" autocomplete="new-password" />
45
- <FormKit type="l-input" label="Confirm password" name="new_password_confirm" inputType="password"
46
- validation="required|confirm" />
47
- </FormKit>
48
-
49
- <q-separator spaced />
50
-
51
- <q-card flat :bordered="false">
52
- <q-card-section>
53
- <div>{{ $t('Password policy') }}</div>
54
- <ul>
55
- <li v-for="policy in policies" :key="policy">{{ policy }}</li>
56
- </ul>
57
- </q-card-section>
58
- </q-card>
40
+ <FormKit type="l-form" :bordered="false" @submit="onSubmit">
41
+ <FormKit type="l-input" label="Old password" name="old_password" inputType="password" validation="required"
42
+ autocomplete="current-password" />
43
+ <FormKit type="l-input" label="New password" name="new_password" inputType="password"
44
+ :validation="system.passwordPolicy" autocomplete="new-password" />
45
+ <FormKit type="l-input" label="Confirm password" name="new_password_confirm" inputType="password"
46
+ validation="required|confirm" />
47
+ </FormKit>
48
+
49
+ <q-separator spaced />
50
+
51
+ <q-card flat :bordered="false">
52
+ <q-card-section>
53
+ <div>{{ $t('Password policy') }}</div>
54
+ <ul>
55
+ <li v-for="policy in policies" :key="policy">{{ policy }}</li>
56
+ </ul>
57
+ </q-card-section>
58
+ </q-card>
59
59
  </template>
@@ -80,110 +80,108 @@ const inputDesign = computed({
80
80
  </script>
81
81
 
82
82
  <template>
83
- <div class="q-pa-md">
84
- <l-row>
85
- <l-col md="6">
86
- <l-card title="Table" minimizable class="col-12">
87
- <q-card-section>
88
- <q-toggle v-model="styles.table.dense" label="Dense" />
89
- <q-toggle v-model="styles.table.flat" label="Flat" />
90
- <q-toggle v-model="styles.table.bordered" label="Bordered" />
91
- <q-toggle v-model="styles.table.square" label="Square" />
92
-
93
- <q-field :label="`Separator`" stack-label>
94
- <q-option-group v-model="styles.table.separator" inline :options="[
95
- { label: 'Horizontal', value: 'horizontal' },
96
- { label: 'Vertical', value: 'vertical' },
97
- { label: 'Cell', value: 'cell' },
98
- { label: 'None', value: 'none' },
99
- ]" />
100
- </q-field>
101
-
102
- </q-card-section>
103
- </l-card>
104
-
105
- <l-card title="Card" minimizable>
106
- <q-card-section>
107
- <q-toggle v-model="styles.card.flat" label="Flat" />
108
- <q-toggle v-model="styles.card.bordered" label="Bordered" />
109
- <q-toggle v-model="styles.card.square" label="Square" />
110
- </q-card-section>
111
- </l-card>
112
-
113
- <l-card title="Button" minimizable>
114
- <q-card-section>
115
- <q-toggle v-model="styles.button.outline" label="Outline" />
116
- <q-toggle v-model="styles.button.flat" label="Flat" />
117
- <q-toggle v-model="styles.button.unelevated" label="Unelevated" />
118
- <q-toggle v-model="styles.button.rounded" label="Rounded" />
119
- <q-toggle v-model="styles.button.push" label="Push" />
120
- <q-toggle v-model="styles.button.square" label="Square" />
121
- <q-toggle v-model="styles.button.glossy" label="Glossy" />
122
- <q-toggle v-model="styles.button.dense" label="Dense" />
123
-
124
- </q-card-section>
125
- </l-card>
126
-
127
- <l-card title="Input" minimizable>
128
- <q-card-section>
129
-
130
- <q-option-group v-model="inputDesign" inline :options="[
131
- { label: 'None', value: 'none' },
132
- { label: 'Filled', value: 'filled' },
133
- { label: 'Outlined', value: 'outlined' },
134
- { label: 'Standout', value: 'standout' },
135
- { label: 'Borderless', value: 'borderless' },
136
- ]" />
137
-
138
-
139
-
140
- <q-toggle v-model="styles.input.rounded" label="Rounded" />
141
- <q-toggle v-model="styles.input.dense" label="Dense" />
142
- <q-toggle v-model="styles.input.square" label="Square" />
143
- <q-toggle v-model="styles.input.stackLabel" label="Stack label" />
144
- </q-card-section>
145
- </l-card>
146
-
147
- <l-btn @click="setDefault()" icon="sym_o_refresh" label="Default"></l-btn>
148
- <l-btn icon="sym_o_save" label="Save" @click="onSave" />
149
- </l-col>
150
-
151
- <l-col md="6">
152
- <q-card v-bind="styles.card">
153
- <q-toolbar>
154
- <q-toolbar-title>UI preview</q-toolbar-title>
155
- </q-toolbar>
156
- <q-card-section class="q-gutter-md">
157
-
158
- <q-btn color="primary" icon="sym_o_person" label="Button" v-bind="styles.button"></q-btn>
159
-
160
- <q-input label="Input" v-bind="styles.input" />
161
-
162
- <q-select label="Select" v-bind="styles.input" :options="[
163
- { label: 'A', value: 'a' },
164
- { label: 'B', value: 'b' },
165
- { label: 'C', value: 'c' }
166
- ]" v-model="preview.select" />
167
-
168
- <q-table :columns="columns" :rows="[
169
- { name: 'A', phone: '123' },
170
- { name: 'B', phone: '456' },
171
- { name: 'C', phone: '789' },
172
- ]" v-bind="styles.table" selection="multiple" title="Table">
173
-
174
- <template #body-cell-action="props">
175
- <q-td auto-width>
176
- <q-btn flat round icon="sym_o_search" size="sm"></q-btn>
177
- </q-td>
178
- </template>
179
- </q-table>
180
-
181
- </q-card-section>
182
-
183
- </q-card>
184
-
185
- </l-col>
186
-
187
- </l-row>
188
- </div>
83
+ <div class="q-pa-md">
84
+ <l-row>
85
+ <l-col md="6">
86
+ <l-card title="Table" minimizable class="col-12">
87
+ <q-card-section>
88
+ <q-toggle v-model="styles.table.dense" label="Dense" />
89
+ <q-toggle v-model="styles.table.flat" label="Flat" />
90
+ <q-toggle v-model="styles.table.bordered" label="Bordered" />
91
+ <q-toggle v-model="styles.table.square" label="Square" />
92
+
93
+ <q-field :label="`Separator`" stack-label>
94
+ <q-option-group v-model="styles.table.separator" inline :options="[
95
+ { label: 'Horizontal', value: 'horizontal' },
96
+ { label: 'Vertical', value: 'vertical' },
97
+ { label: 'Cell', value: 'cell' },
98
+ { label: 'None', value: 'none' },
99
+ ]" />
100
+ </q-field>
101
+
102
+ </q-card-section>
103
+ </l-card>
104
+
105
+ <l-card title="Card" minimizable>
106
+ <q-card-section>
107
+ <q-toggle v-model="styles.card.flat" label="Flat" />
108
+ <q-toggle v-model="styles.card.bordered" label="Bordered" />
109
+ <q-toggle v-model="styles.card.square" label="Square" />
110
+ </q-card-section>
111
+ </l-card>
112
+
113
+ <l-card title="Button" minimizable>
114
+ <q-card-section>
115
+ <q-toggle v-model="styles.button.outline" label="Outline" />
116
+ <q-toggle v-model="styles.button.flat" label="Flat" />
117
+ <q-toggle v-model="styles.button.unelevated" label="Unelevated" />
118
+ <q-toggle v-model="styles.button.rounded" label="Rounded" />
119
+ <q-toggle v-model="styles.button.push" label="Push" />
120
+ <q-toggle v-model="styles.button.square" label="Square" />
121
+ <q-toggle v-model="styles.button.glossy" label="Glossy" />
122
+ <q-toggle v-model="styles.button.dense" label="Dense" />
123
+
124
+ </q-card-section>
125
+ </l-card>
126
+
127
+ <l-card title="Input" minimizable>
128
+ <q-card-section>
129
+
130
+ <q-option-group v-model="inputDesign" inline :options="[
131
+ { label: 'None', value: 'none' },
132
+ { label: 'Filled', value: 'filled' },
133
+ { label: 'Outlined', value: 'outlined' },
134
+ { label: 'Standout', value: 'standout' },
135
+ { label: 'Borderless', value: 'borderless' },
136
+ ]" />
137
+
138
+ <q-toggle v-model="styles.input.rounded" label="Rounded" />
139
+ <q-toggle v-model="styles.input.dense" label="Dense" />
140
+ <q-toggle v-model="styles.input.square" label="Square" />
141
+ <q-toggle v-model="styles.input.stackLabel" label="Stack label" />
142
+ </q-card-section>
143
+ </l-card>
144
+
145
+ <l-btn @click="setDefault()" icon="sym_o_refresh" label="Default"></l-btn>
146
+ <l-btn icon="sym_o_save" label="Save" @click="onSave" />
147
+ </l-col>
148
+
149
+ <l-col md="6">
150
+ <q-card v-bind="styles.card">
151
+ <q-toolbar>
152
+ <q-toolbar-title>UI preview</q-toolbar-title>
153
+ </q-toolbar>
154
+ <q-card-section class="q-gutter-md">
155
+
156
+ <q-btn color="primary" icon="sym_o_person" label="Button" v-bind="styles.button"></q-btn>
157
+
158
+ <q-input label="Input" v-bind="styles.input" />
159
+
160
+ <q-select label="Select" v-bind="styles.input" :options="[
161
+ { label: 'A', value: 'a' },
162
+ { label: 'B', value: 'b' },
163
+ { label: 'C', value: 'c' }
164
+ ]" v-model="preview.select" />
165
+
166
+ <q-table :columns="columns" :rows="[
167
+ { name: 'A', phone: '123' },
168
+ { name: 'B', phone: '456' },
169
+ { name: 'C', phone: '789' },
170
+ ]" v-bind="styles.table" selection="multiple" title="Table">
171
+
172
+ <template #body-cell-action="props">
173
+ <q-td auto-width>
174
+ <q-btn flat round icon="sym_o_search" size="sm"></q-btn>
175
+ </q-td>
176
+ </template>
177
+ </q-table>
178
+
179
+ </q-card-section>
180
+
181
+ </q-card>
182
+
183
+ </l-col>
184
+
185
+ </l-row>
186
+ </div>
189
187
  </template>