123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <template>
- <div class="layout hom-layout">
- <div class="list-group-item" v-for="(item,index) in componentsData" :key="index">
- <component :is="componentMap[terminal-1].get(item.type)" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></component>
- </div>
- </div>
- </template>
- <script>
- import componentMap from './componentMap'
- import api from './config/api'
- import {sendReqMixin} from './config/mixin'
- export default {
- name: 'canvasPage',
- mixins: [sendReqMixin],
- data () {
- return {
- // terminal: 4, // 画布设备 1 小程序,2 H5,3 App 4 电脑
- // typeId: 3, // 画布类型 1 平台画布,2 自定义页面,3 商家店铺装修
- // shopId: 0, // 店铺id
- componentsData: [],
- activeComponent: -1,
- componentMap: componentMap
- }
- },
- props: {
- terminal: {
- type: Number,
- default: 4
- },
- typeId: {
- type: Number,
- default: 1
- },
- shopId: {
- type: Number,
- default: 0
- }
- },
- mounted () {
- // this.shopId = Cookies.get('shopID')
- this.canvasGet()
- },
- methods: {
- // 读取画布
- canvasGet () {
- var _this = this
- var apiUrl = api.getCanvas + '?terminal=' + this.terminal + '&type=' + this.typeId
- if (this.shopId) {
- apiUrl += '&shopId=' + this.shopId
- }
- let params = {
- url: apiUrl,
- method: 'GET'
- }
- this.sendReq(params, (res) => {
- if (JSON.stringify(res.data) !== '{}') {
- _this.canvasId = res.data.canvasId
- var componentsData = JSON.parse(res.data.json)
- for (let i = 0; i < componentsData.length; i++) {
- if (componentsData[i].type === 'shopHeader' && this.terminal === 4) {
- if (componentsData[i].componentContent.category && componentsData[i].componentContent.category.length !== 0) {
- var categoryArr = componentsData[i].componentContent.category
- _this.sendReq({
- url: `${api.getClassify}`,
- method: 'GET'
- }, (proRes) => {
- componentsData[i].componentContent.category = proRes.data.filter((item) => {
- for (let i = 0; i < categoryArr.length; i++) {
- if (categoryArr[i].id === item.id) {
- return true
- }
- }
- })
- })
- }
- }
- }
- _this.componentsData = componentsData
- } else {
- _this.canvasId = ''
- }
- // console.log(JSON.parse(res.data.json))
- })
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .hom-layout{
- background-color: #f5f5f5;
- }
- </style>
- <style lang="scss">
- .warp{
- width: 690px;
- margin: 0 auto;
- max-width: 100%;
- &.terminal4{
- width: 1200px;
- max-width: 100%;
- }
- }
- .flex-box{
- display: flex;
- }
- </style>
|