custom.vue 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <template>
  2. <div>
  3. <div class="el-form-item el-form-item--small el-form--label-top">
  4. <label class="el-form-item__label"
  5. style="padding: 0;">自定义属性:</label>
  6. <div class="el-form-item__content">
  7. <monaco-editor v-model="params"
  8. height="300"
  9. :keyIndex="data.prop"
  10. :options="options"></monaco-editor>
  11. </div>
  12. </div>
  13. <div class="el-form-item el-form-item--small el-form--label-top">
  14. <label class="el-form-item__label"
  15. style="padding: 0;">自定义事件:</label>
  16. <div class="el-form-item__content">
  17. <monaco-editor v-model="event"
  18. height="300"
  19. :keyIndex="data.prop"
  20. :options="options"></monaco-editor>
  21. </div>
  22. </div>
  23. </div>
  24. </template>
  25. <script>
  26. import MonacoEditor from '@utils/monaco-editor'
  27. export default {
  28. name: 'config-custom',
  29. components: { MonacoEditor },
  30. props: ['data'],
  31. data() {
  32. return {
  33. params: this.data.params || {},
  34. event: this.data.event || {},
  35. options: {
  36. fullScreen: true,
  37. minimap: {
  38. enabled: false,
  39. },
  40. },
  41. }
  42. },
  43. watch: {
  44. 'data.params'(val) {
  45. this.params = val || {}
  46. },
  47. 'data.event'(val) {
  48. this.event = val || {}
  49. },
  50. params(val) {
  51. try {
  52. this.data.params = eval("(" + val + ")")
  53. } catch (e) {
  54. // console.error(e)
  55. }
  56. },
  57. event(val) {
  58. try {
  59. this.data.event = eval("(" + val + ")")
  60. } catch (e) {
  61. // console.error(e)
  62. }
  63. },
  64. }
  65. }
  66. </script>