ViewSchema.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <template>
  2. <main v-if="schema">
  3. <p><b>Name</b>: {{ schema.name }}</p>
  4. <p><b>Description</b>: {{ schema.description }}</p>
  5. <p><b>Version</b>: v{{ schema.version }}</p>
  6. <p><b>Fields</b>: </p>
  7. <div class="fields-container">
  8. <div v-for="field in schema.fields" class="field-item">
  9. <p><b>Field ID</b>: {{ field.fieldId }}</p>
  10. <p><b>Name</b>: {{ field.name }}</p>
  11. <p><b>Min entries</b>: {{ field.minEntries }}</p>
  12. <p><b>Max entries</b>: {{ field.maxEntries }}</p>
  13. <p><b>Field types</b>:</p>
  14. <div class="field-types-container">
  15. <div v-for="fieldType in field.fieldTypes" class="field-type-item">
  16. <p><b>Field type ID</b>: {{ fieldType.fieldTypeId }}</p>
  17. <p><b>Type</b>: {{ fieldType.type }}</p>
  18. <p><b>Fill</b>: {{ fieldType.fill }}</p>
  19. <p v-if="fieldType.type === 'select'"><b>Options</b>: </p>
  20. <div v-if="fieldType.type === 'select'">
  21. <div v-for="option in fieldType.options" class="option-item">
  22. <p><b>Text</b>: {{ option.text }}</p>
  23. <p><b>Value</b>: {{ option.value }}</p>
  24. </div>
  25. </div>
  26. </div>
  27. </div>
  28. </div>
  29. </div>
  30. </main>
  31. </template>
  32. <script>
  33. import io from "../../io.js";
  34. export default {
  35. components: {},
  36. data: () => {
  37. return {
  38. schema: null
  39. }
  40. },
  41. props: {
  42. },
  43. methods: {
  44. },
  45. mounted() {
  46. this.schemaId = this.$route.params.schemaId;
  47. io.getSocket(socket => {
  48. this.socket = socket;
  49. this.socket.emit("accountSchema.getLatest", this.schemaId, res => {
  50. if (res.status === "success") {
  51. this.schema = res.schema;
  52. }
  53. });
  54. });
  55. }
  56. };
  57. </script>
  58. <style lang="scss" scoped>
  59. .field-item, .field-type-item, .option-item {
  60. padding-left: 25px;
  61. border: 1px solid black;
  62. margin-right: -1px;
  63. margin-bottom: -1px;
  64. }
  65. </style>