当前位置:   article > 正文

vue中使用 json编辑器

vue中使用 json编辑器
  1. <template>
  2. <div class="stringTest">
  3. <vue-json-editor
  4. v-model="vstringData" //编辑器中的内容
  5. :showBtns="false" // 保存按钮
  6. mode="code"
  7. lang="zh"
  8. :expanded-on-start="true"
  9. @json-change="onJsonChange" //改变内容时触发
  10. @json-save="onJsonSave" //点击保存按钮
  11. @has-error="onError" //校验json内容
  12. />
  13. </div>
  14. </template>
  15. <script>
  16. export default {
  17. components: { },
  18. data() {
  19. return {
  20. hasJsonFlag: true, // json是否验证通过
  21. vstringData: {
  22. //这个变量可以为空,编辑器会显示为{}
  23. style: {
  24. width: "300px",
  25. height: "30px",
  26. display: "flex",
  27. },
  28. data: {
  29. name: "任务名称",
  30. title: "",
  31. help: "请输入字符串类型的内容",
  32. default: "",
  33. widget: {},
  34. reg: {},
  35. isLoad: false,
  36. readonly: false,
  37. },
  38. },
  39. };
  40. },
  41. mounted() {
  42. },
  43. methods: {
  44. onJsonChange(value) {
  45. // 实时保存
  46. this.onJsonSave(value);
  47. },
  48. onJsonSave(value) {
  49. this.vstringData = value;
  50. this.hasJsonFlag = true;
  51. },
  52. onError(value) {
  53. this.$message.error(`json错误了${value}`);
  54. this.hasJsonFlag = false;
  55. },
  56. // 检查json
  57. checkJson() {
  58. if (this.hasJsonFlag === false) {
  59. this.$message.error("请输入格式正确的JSON数据!");
  60. return false;
  61. } else {
  62. return true;
  63. }
  64. },
  65. },
  66. };
  67. </script>
  68. <style lang="less" scoped>
  69. .stringTest {
  70. width: 100%;
  71. height: 100%;
  72. box-sizing: border-box;
  73. padding: 20px;
  74. background: lightyellow;
  75. /* jsoneditor右上角默认有一个链接,加css去掉 */
  76. /deep/ .jsoneditor-poweredBy {
  77. display: none !important;
  78. }
  79. /*修改高度*/
  80. /deep/ .jsoneditor-outer {
  81. height: 500px;
  82. margin-top: 10px;
  83. }
  84. /*修改菜单栏背景颜色,原始背景为蓝色,为了和整体页面风格一致,改为黑色*/
  85. /deep/ .jsoneditor-menu {
  86. background-color: #000;
  87. border-bottom: 1px solid #000;
  88. }
  89. /*修改输入框边框颜色*/
  90. /deep/.jsoneditor {
  91. border: 1px solid #000;
  92. }
  93. }
  94. </style>

 大概效果的如下:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/786377
推荐阅读
相关标签
  

闽ICP备14008679号