ueditor.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <template>
  2. <div>
  3. <el-form-item label="图片上传地址">
  4. <el-input v-model="data.upload.action"
  5. placeholder="图片上传地址"></el-input>
  6. </el-form-item>
  7. <el-form-item label="配置参数">
  8. <a href="https://avuejs.com/doc/plugins/ueditor-plugins"
  9. target="_blank"
  10. style="color: #409EFF;">详细文档</a><br>
  11. 返回的数据结构层次
  12. <el-input v-model="data.upload.props.res"
  13. placeholder="返回的数据结构层次"></el-input>
  14. 返回结构体图片地址字段
  15. <el-input v-model="data.upload.props.url"
  16. placeholder="返回结构体图片地址字段"></el-input>
  17. </el-form-item>
  18. <el-form-item label="oss">
  19. <el-select v-model="data.upload.oss"
  20. placeholder="oss不写则为普通上传"
  21. clearable>
  22. <el-option label="阿里"
  23. value="ali"></el-option>
  24. <el-option label="七牛"
  25. value="qiniu"></el-option>
  26. </el-select>
  27. </el-form-item>
  28. <template v-if="data.upload.oss == 'qiniu'">
  29. <el-form-item label="七牛oss配置"><br>
  30. AK
  31. <el-input v-model="data.upload.qiniu.AK"
  32. placeholder="七牛云的密钥(AK)"></el-input>
  33. SK
  34. <el-input v-model="data.upload.qiniu.SK"
  35. placeholder="七牛云的密钥(SK)"></el-input>
  36. scope
  37. <el-input v-model="data.upload.qiniu.scope"
  38. placeholder="七牛云存储的空间名"></el-input>
  39. url
  40. <el-input v-model="data.upload.qiniu.url"
  41. placeholder="空间的自定义域名"></el-input>
  42. deadline
  43. <el-input v-model="data.upload.qiniu.deadline"
  44. placeholder="token的过期时间"></el-input>
  45. </el-form-item>
  46. </template>
  47. <template v-if="data.upload.oss == 'ali'">
  48. <el-form-item label="阿里oss配置"><br>
  49. region
  50. <el-input v-model="data.upload.ali.region"
  51. placeholder="region"></el-input>
  52. endpoint
  53. <el-input v-model="data.upload.ali.endpoint"
  54. placeholder="endpoint"></el-input>
  55. accessKeyId
  56. <el-input v-model="data.upload.ali.accessKeyId"
  57. placeholder="accessKeyId"></el-input>
  58. accessKeySecret
  59. <el-input v-model="data.upload.ali.accessKeySecret"
  60. placeholder="accessKeySecret"></el-input>
  61. bucket
  62. <el-input v-model="data.upload.ali.bucket"
  63. placeholder="bucket "></el-input>
  64. </el-form-item>
  65. </template>
  66. <el-form-item label="是否可见">
  67. <el-switch v-model="data.display"></el-switch>
  68. </el-form-item>
  69. <el-form-item label="是否必填">
  70. <el-switch v-model="data.required"></el-switch>
  71. </el-form-item>
  72. </div>
  73. </template>
  74. <script>
  75. export default {
  76. name: "config-ueditor",
  77. props: ['data'],
  78. data () {
  79. return {
  80. validator: {
  81. type: null,
  82. required: null,
  83. pattern: null,
  84. length: null
  85. }
  86. }
  87. },
  88. methods: {
  89. generateRule () {
  90. const rules = [];
  91. Object.keys(this.validator).forEach(key => {
  92. if (this.validator[key]) rules.push(this.validator[key])
  93. })
  94. this.data.rules = rules
  95. },
  96. },
  97. watch: {
  98. 'data.required': function (val) {
  99. if (val) this.validator.required = { required: true, message: `${this.data.label}必须填写` }
  100. else this.validator.required = null
  101. this.generateRule()
  102. },
  103. 'data.upload.oss': function (val) {
  104. if (val == 'ali') this.data.upload.qiniu = {}
  105. else if (val == 'qiniu') this.data.upload.ali = {}
  106. }
  107. }
  108. }
  109. </script>