diy-main-page.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <template id="diy-main-page">
  2. <div>
  3. <diy-style-contain title="背景设置">
  4. <el-form ref="form" :model="form" label-width="80px" style="margin-top: 20px;">
  5. <el-form-item label="页面风格">
  6. <div>标准</div>
  7. </el-form-item>
  8. <el-form-item label="底部颜色">
  9. <el-color-picker v-model="form.defColor" @change="updateColor"></el-color-picker>
  10. </el-form-item>
  11. <el-form-item label="背景图片">
  12. <diy-img-setting :img-infos="form.imageUrl" def-img-count="1" :show-url="false" :suggest-site="2" suggest-size-text="建议尺寸:750x高度不限" :img-contain-style="{padding: 0}" :show-title="false" @change="addIconImg"></diy-img-setting>
  13. </el-form-item>
  14. </diy-style-contain>
  15. </div>
  16. </template>
  17. <script>
  18. Vue.component('diy-main-page', {
  19. name: "diy-main-page",
  20. template: '#diy-main-page',
  21. props: {
  22. mainPage: {
  23. type: Object,
  24. default () {
  25. return {}
  26. }
  27. },
  28. },
  29. data() {
  30. return {
  31. form: {
  32. name: '',
  33. type: '纯色',
  34. imageUrl: [],
  35. defColor: ''
  36. }
  37. }
  38. },
  39. created() {
  40. this.init()
  41. },
  42. methods: {
  43. init() {
  44. var data = deepClone(this.mainPage)
  45. if (data.imgUrl) {
  46. data.imageUrl = [{
  47. imgUrl: data.imgUrl
  48. }]
  49. } else {
  50. data.imageUrl = []
  51. }
  52. this.form = data
  53. },
  54. handleChange(val) {
  55. console.log(val);
  56. },
  57. radioChange() {
  58. this.update()
  59. },
  60. updateColor(colors) {
  61. this.update()
  62. },
  63. nameChange() {
  64. this.update()
  65. },
  66. // 图片
  67. addIconImg(arr) {
  68. this.form.imgUrl = arr[0].imgUrl
  69. this.update()
  70. },
  71. update() {
  72. this.$emit("change", this.form)
  73. },
  74. }
  75. });
  76. </script>