Эх сурвалжийг харах

feat: 完善组件等功能

zhangyuhan 9 сар өмнө
parent
commit
b5c64ff024

+ 6 - 2
client/components/thumbnail-panel.vue

@@ -170,9 +170,13 @@
 			},
 			// 新建页面
 			newPage() {
-				let newPageData = editorProjectConfig.getProjectConfig()
+				let newPageData = editorProjectConfig.getProjectConfig(this.pageType)
 				this.loading = true;
-				this.$API.createPage({...newPageData}).then(res => {
+        debugger
+				this.$API.createPage({
+          ...newPageData,
+          pageMode: this.pageType
+        }).then(res => {
 					this.loading = false;
 					if (res.body) {
 						this.$router.push({name: 'Editor', query: {id: res.body._id}})

+ 33 - 28
client/config/index.js

@@ -5,12 +5,12 @@
 
 
 const configDict = {
-  development: {
-    baseURL: 'http://localhost:3333'
-  },
-  production: {
-    baseURL: 'http://localhost:3333'
-  }
+    development: {
+        baseURL: 'http://localhost:3333'
+    },
+    production: {
+        baseURL: 'http://localhost:3333'
+    }
 }
 
 const currentConfigKey = process.env.NODE_ENV
@@ -18,28 +18,33 @@ const isDev = process.env.NODE_ENV === 'development'
 const isTest = process.env.NODE_ENV === 'development'
 
 const configObj = {
-  isDevelop: (isDev || isTest),
-  ...configDict[currentConfigKey],
-  // h5模式宽高
-  canvasH5Width: 375,
-  canvasH5Height: 644,
-  pageModeList: [{
-    value: 'h5',
-    label: 'H5',
-    disabled: false
-  }, {
-    value: 'longPage',
-    label: '长页H5',
-    disabled: false
-  }, {
-    name: 'relativePage',
-    label: '排版图文',
-    disabled: true
-  }, {
-    value: 'pc',
-    label: 'PC页面',
-    disabled: true
-  }]
+    isDevelop: (isDev || isTest),
+    ...configDict[currentConfigKey],
+    // h5模式宽高
+    canvasH5Width: 375,
+    canvasH5Height: 644,
+    pageModeList: [
+        {
+            value: 'longPage',
+            label: '长页H5',
+            disabled: false
+        },
+        {
+            value: 'pc',
+            label: 'PC页面',
+            disabled: false
+        },
+        {
+            value: 'h5',
+            label: '单页 H5',
+            disabled: false
+        },
+        {
+            name: 'relativePage',
+            label: '排版图文',
+            disabled: true
+        }
+    ]
 }
 
 export default configObj

+ 13 - 4
client/pages/editor/DataModel.js

@@ -57,7 +57,7 @@ let pageConfig = {
 let projectConfig = {
   name: '',
   title: '未命名场景',
-  description: '我用Dcode-Editor可视化编辑器做了一个超酷炫的H5,快来看看吧。',
+  description: '我用可视化编辑器做了一个超酷炫的H5,快来看看吧。',
   coverImage: '',
   author: '',
   script: '',
@@ -124,13 +124,22 @@ let copyPage = function(data) {
   return pageData;
 }
 
-let getProjectConfig = function() {
+let getProjectConfig = function(pageType) {
   let project = cloneDeep(projectConfig)
   let onePage = getPageConfig()
   project.pages.push({
     ...onePage
   })
-  return {...project }
+  switch (pageType) {
+    case 'longPage': {
+      break
+    }
+    case 'pc': {
+      project.width = 1200
+      break
+    }
+  }
+  return { ...project }
 }
 
 /**
@@ -173,4 +182,4 @@ export default {
   copyPage,
   copyElement,
   getCommonStyle
-}
+}

+ 8 - 1
client/pages/editor/Index.vue

@@ -13,7 +13,7 @@
         stretch
       >
         <el-tab-pane
-          v-for="(item, index) in sidebarMenus"
+          v-for="(item, index) in computedSidebarMenus"
           :key="index"
           :name="item.value"
         >
@@ -244,6 +244,12 @@ export default {
         //这边先不考虑MAC,有需要再添加
       };
     },
+    computedSidebarMenus () {
+      if (this.projectData.pageMode === 'h5') {
+        return this.sidebarMenus
+      }
+      return this.sidebarMenus.filter(v => v.value !== 'pageManage')
+    }
   },
   created() {
     // 判断用户id与作品id是否一致,或者是否存在与协作人员名单中,否则无法访问
@@ -295,6 +301,7 @@ export default {
     },
     // 监听到被拖动元素放下
     onDrop(params) {
+      console.log('xx', params)
       // 如果存在宽度的话,则取宽度/2,不存在则获取屏幕宽度/2
       let defaultStyle = params.data.defaultStyle;
       let Element_Width = defaultStyle.width

+ 3 - 1
client/pages/editor/components/attr-configure/attr-props-components/props-attr/index.js

@@ -9,6 +9,7 @@ import grid from './grid'
 import NoticeBar from './NoticeBar'
 import avatar from './avatar'
 import Video from './video'
+import SourceForm from './SourceForm'
 
 export default {
   [Text.name]: Text,
@@ -22,4 +23,5 @@ export default {
   [NoticeBar.name]: NoticeBar,
   [avatar.name]: avatar,
   [Video.name]: Video,
-}
+  [SourceForm.name]: SourceForm,
+}

+ 5 - 5
client/pages/editor/components/control-bar.vue

@@ -21,10 +21,10 @@
       <p>重做</p>
     </div>
 
-      <div class="button-item" @click="dialogVisible = true">
-        <i class="iconfont iconPSD"></i>
-        <p>导入psd</p>
-      </div>
+<!--      <div class="button-item" @click="dialogVisible = true">-->
+<!--        <i class="iconfont iconPSD"></i>-->
+<!--        <p>导入psd</p>-->
+<!--      </div>-->
 
     <div class="button-item" @click="showPreview">
       <i class="iconfont iconyulan"></i>
@@ -38,7 +38,7 @@
       <i class="iconfont iconfabu"></i>
       <p>发布</p>
    </div>
-   <UploadJson @upload-success="uploadSuccessJson" upload-error="uploadErrorJson">
+   <UploadJson v-if="false" @upload-success="uploadSuccessJson" upload-error="uploadErrorJson">
       <div class="button-item">
         <i class="el-icon-upload2" style="font-size:20px"></i>
         <p>上传Json</p>

+ 20 - 1
client/pages/editor/components/editor-panel/Index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="editor-pane" @click="handleClickCanvas" ref="editorPane">
     <div class="editor-pane-inner">
-      <div class="editor-main" :style="{transform: 'scale('+scale+')', width: projectData.width + 'px', height: projectData.height + 'px'}">
+      <div class="editor-main" :style="{transform: 'scale('+scale+')', width: computedPage.width + 'px', height: computedPage.height + 'px'}">
      <!-- //画布标尺未启用 -->
       <!-- <rule :w="ruleWidth" :h="ruleHeight" ref="rule" style="z-index:0;" /> -->
         <div class="page-preview-wrapper" ref="canvas-panel" id="canvas-panel" :style="getCommonStyle(activePage.commonStyle)">
@@ -41,6 +41,7 @@
 	import editShape from '@/components/edit-shape'
 	import editorProjectConfig from '@client/pages/editor/DataModel'
 	import {mapState, mapGetters} from 'vuex'
+  import {debounce} from "lodash";
 
   // import $config from '@/config'
   // import Rule from "@/components/SketchRuleBg";
@@ -106,6 +107,7 @@
 					value: 'layerBottom'
 				}],
 				editorPaneWidth: 0,
+        editorPaneHeight: 0
 			}
 		},
 		computed: {
@@ -128,6 +130,16 @@
 				return {
 					right: right + 'px'
 				}
+      },
+      computedPage () {
+        return {
+          width: this.projectData.width,
+          height: this.projectData.height
+        }
+      },
+      computedMaxPageHeight () {
+        const maxHeights = this.activePage.elements.map(v => v.commonStyle.top + v.commonStyle.height).sort((a, b) => b - a)
+        return maxHeights[0]
       }
 		},
 		mounted() {
@@ -156,7 +168,14 @@
 				this.projectData.pages[this.currentPageIndex].elements[this.activeElementIndex].commonStyle = {
 					...pos
 				}
+        this.$nextTick(() => {
+          this.editorPaneHeight = pos.top + pos.height
+          this.changePageHeight()
+        })
 			},
+      changePageHeight: debounce(function ()  {
+        this.projectData.height = Math.max(644, this.computedMaxPageHeight)
+      }, 300),
 			handleClickCanvas(e) {
 				if (!e.target.classList.contains('element-on-edit-pane') && !e.target.classList.contains('menu-item-on-edit-panel')) {
 					this.$store.dispatch('setActiveElementUUID', '');

+ 2 - 2
client/pages/editor/components/history.vue

@@ -29,7 +29,7 @@
           this.ishow = false
       },
       backToClick(v){
-          this.$store.commit('relapceEditorState', v)
+          this.$store.commit('replaceEditorState', v)
       }
     },
 
@@ -65,4 +65,4 @@
     right: 0;
   }
 
-</style>
+</style>

+ 83 - 83
client/pages/editor/ele-config.js

@@ -18,7 +18,7 @@ export default [{
         img: require('@/common/images/elementIcon/image.png'),
         valueType: '',
         defaultStyle: {
-          width: 200,
+          width: 375,
           height: 200
         }
       },
@@ -31,16 +31,16 @@ export default [{
           height: 160
         }
       },
-      {
-        elName: 'Ds-avatar',
-        title: '随机头像',
-        img: require('@/common/images/elementIcon/avatar.png'),
-        valueType: '',
-        defaultStyle: {
-          width: 150,
-          height: 50
-        }
-      },
+      // {
+      //   elName: 'Ds-avatar',
+      //   title: '随机头像',
+      //   img: require('@/common/images/elementIcon/avatar.png'),
+      //   valueType: '',
+      //   defaultStyle: {
+      //     width: 150,
+      //     height: 50
+      //   }
+      // },
       {
         elName: 'Ds-button',
         title: '按钮',
@@ -72,16 +72,16 @@ export default [{
           width: $config.canvasH5Width,
         }
       },
-      {
-        elName: 'Ds-tabars',
-        title: '页面导航',
-        img: require('@/common/images/elementIcon/tabars.png'),
-        valueType: '',
-        defaultStyle: {
-          height: 50,
-          width: $config.canvasH5Width,
-        }
-      },
+      // {
+      //   elName: 'Ds-tabars',
+      //   title: '页面导航',
+      //   img: require('@/common/images/elementIcon/tabars.png'),
+      //   valueType: '',
+      //   defaultStyle: {
+      //     height: 50,
+      //     width: $config.canvasH5Width,
+      //   }
+      // },
     ]
   },
   {
@@ -138,68 +138,68 @@ export default [{
       }
     ]
   },
-  {
-    title: '表单组件',
-    components: [{
-        elName: 'Ds-input',
-        title: '文本框',
-        img: require('@/common/images/elementIcon/form.png'),
-        valueType: 'input',
-        defaultStyle: {
-          height: 52,
-          width: $config.canvasH5Width,
-        }
-      },
-      {
-        elName: 'Ds-radio',
-        title: '单选框',
-        img: require('@/common/images/elementIcon/radio.jpg'),
-        valueType: 'radio',
-
-        defaultStyle: {
-          height: 52,
-          width: $config.canvasH5Width,
-        }
-      },
-      {
-        elName: 'Ds-checkbox',
-        title: '复选框',
-        img: require('@/common/images/elementIcon/checkbox.jpg'),
-        valueType: 'checkbox',
-        defaultStyle: {
-          height: 30,
-          width: $config.canvasH5Width,
-        }
-      },
-      {
-        elName: 'Ds-rate',
-        title: '评分',
-        img: require('@/common/images/elementIcon/rate.jpg'),
-        defaultStyle: {
-          height: 30,
-          width: $config.canvasH5Width / 2,
-        }
-      },
-      {
-        elName: 'Ds-stepper',
-        title: '步进器',
-        img: require('@/common/images/elementIcon/stepper.jpg'),
-        defaultStyle: {
-          height: 30,
-          width: $config.canvasH5Width / 2,
-        }
-      },
-      {
-        elName: 'Ds-switch',
-        title: '开关',
-        img: require('@/common/images/elementIcon/Switch.jpg'),
-        defaultStyle: {
-          height: 52,
-          width: $config.canvasH5Width,
-        }
-      }
-    ]
-  },
+  // {
+  //   title: '表单组件',
+  //   components: [{
+  //       elName: 'Ds-input',
+  //       title: '文本框',
+  //       img: require('@/common/images/elementIcon/form.png'),
+  //       valueType: 'input',
+  //       defaultStyle: {
+  //         height: 52,
+  //         width: $config.canvasH5Width,
+  //       }
+  //     },
+  //     {
+  //       elName: 'Ds-radio',
+  //       title: '单选框',
+  //       img: require('@/common/images/elementIcon/radio.jpg'),
+  //       valueType: 'radio',
+  //
+  //       defaultStyle: {
+  //         height: 52,
+  //         width: $config.canvasH5Width,
+  //       }
+  //     },
+  //     {
+  //       elName: 'Ds-checkbox',
+  //       title: '复选框',
+  //       img: require('@/common/images/elementIcon/checkbox.jpg'),
+  //       valueType: 'checkbox',
+  //       defaultStyle: {
+  //         height: 30,
+  //         width: $config.canvasH5Width,
+  //       }
+  //     },
+  //     {
+  //       elName: 'Ds-rate',
+  //       title: '评分',
+  //       img: require('@/common/images/elementIcon/rate.jpg'),
+  //       defaultStyle: {
+  //         height: 30,
+  //         width: $config.canvasH5Width / 2,
+  //       }
+  //     },
+  //     {
+  //       elName: 'Ds-stepper',
+  //       title: '步进器',
+  //       img: require('@/common/images/elementIcon/stepper.jpg'),
+  //       defaultStyle: {
+  //         height: 30,
+  //         width: $config.canvasH5Width / 2,
+  //       }
+  //     },
+  //     {
+  //       elName: 'Ds-switch',
+  //       title: '开关',
+  //       img: require('@/common/images/elementIcon/Switch.jpg'),
+  //       defaultStyle: {
+  //         height: 52,
+  //         width: $config.canvasH5Width,
+  //       }
+  //     }
+  //   ]
+  // },
   {
     title: '功能组件',
     components: [{

+ 1 - 1
client/pages/home/page-list.vue

@@ -55,7 +55,7 @@
 				pageModeList: [],
 				searchParams: {
 					type: 'my',
-					pageMode: 'h5'
+					pageMode: 'longPage'
 				},
 				previewId: '',
 				showPreview: false,

+ 3 - 3
client/pages/website/components/banner.vue

@@ -15,10 +15,10 @@
               <br>
               <span>让H5制作,更方便</span>
               </h3>
-            <p class="banner-one__text">Decode-Editor是一款功能强大,高可扩展的H5可视化页面配置解决方案,致力于提供一套简单方便、专业可靠、无限可能的H5落地页最佳实践。</p>
+            <p class="banner-one__text">是一款功能强大,高可扩展的H5可视化页面配置解决方案,致力于提供一套简单方便、专业可靠、无限可能的H5落地页最佳实践。</p>
 
             <a href="/#/login" class="banner-one__btn thm-btn ">
-              <span>免费体验</span></a>
+              <span>登录</span></a>
             </div>
           </div>
         </div>
@@ -231,4 +231,4 @@ export default {
     transform-origin: center center;
   }
 }
-</style>
+</style>

+ 1 - 7
client/pages/website/index.vue

@@ -2,8 +2,6 @@
   <div class="page-wrapper">
       <header-nav/>
       <banner/>
-      <contact/>
-      <footerNav/>
   </div>
 </template>
 <script>
@@ -11,15 +9,11 @@ import "../../common/styles/bootstrap.min.css";
 
 import headerNav from './components/headerNav'
 import banner from './components/banner'
-import contact from './components/contact'
-import footerNav from './components/footer'
 
 export default {
   components: {
     headerNav,
     banner,
-    contact,
-    footerNav
   }
 };
 </script>
@@ -110,4 +104,4 @@ a:visited {
   -webkit-transform: scaleX(0);
   transform: scaleX(0);
 }
-</style>
+</style>

+ 1 - 1
client/plugins/AddressEdit/src/index.vue

@@ -1,7 +1,7 @@
 <!--test.vue-->
 <template>
   <div class="Ds-avatar">
-    <img :src="imageSrc" alt="">
+    <img draggable="false" :src="imageSrc" alt="">
   </div>
 </template>
 

+ 1 - 1
client/plugins/NavBar/src/index.vue

@@ -1,7 +1,7 @@
 <!--test.vue-->
 <template>
   <div class="Ds-avatar">
-    <img :src="imageSrc" alt="">
+    <img draggable="false" :src="imageSrc" alt="">
   </div>
 </template>
 

+ 27 - 5
client/plugins/SourceForm/src/index.vue

@@ -2,18 +2,21 @@
 <template>
   <van-form @submit="onSubmit">
     <van-field
+        v-if="sourceFormConfig.name"
         v-model.trim="form.name"
         name="姓名"
         label="姓名"
         placeholder="请输入姓名"
     />
     <van-field
+        v-if="sourceFormConfig.phone"
         v-model.trim="form.phone"
         name="手机号"
         label="手机号"
         placeholder="请输入准确的手机号"
     />
     <van-field
+        v-if="sourceFormConfig.company"
         v-model.trim="form.company"
         name="公司名称"
         label="公司名称"
@@ -21,7 +24,7 @@
     />
 
     <div style="margin: 16px;">
-      <van-button round block type="info" native-type="submit">提交</van-button>
+      <van-button round block :type="btnType" :size="size" native-type="submit">{{text}}</van-button>
     </div>
   </van-form>
 </template>
@@ -51,9 +54,26 @@ import $axios from "@/service/httpServer";
         type: String,
         default: '/salesLeads/collectInfo'
       },
-			source: {
-				type: String,
-        default: 'default-h5'
+      btnType:{
+        type:String,
+        default:'info'
+      },
+      text: {
+        type: String,
+        default: '提 交'
+      },
+      size:{
+        type:String,
+        default:'large'
+      },
+      sourceFormConfig: {
+        type:Object,
+        default: ()=>({
+          source: 'default-source-h5',
+          name: true,
+          phone: true,
+          company: true
+        })
       }
 		},
     methods: {
@@ -64,8 +84,10 @@ import $axios from "@/service/httpServer";
           forbidClick: true
         });
         const params = Object.assign({
-          source: this.source
+          source: this.sourceFormConfig.source
         }, this.form)
+
+        console.log('source-params', params)
         $axios.post(this.api, JSON.stringify(params), {
           headers: {
             'Content-Type': 'application/json;charset=utf-8'

+ 4 - 7
client/plugins/banner/src/index.vue

@@ -1,8 +1,8 @@
 <!--test.vue-->
 <template>
   <div class="Ds-banner">
-    <img :src="imageSrc" alt="" v-if="imageSrc">
-    <img :src="randomImageSrc" alt="" v-else>
+    <img draggable="false" :src="imageSrc" alt="" v-if="imageSrc">
+    <img draggable="false" :src="randomImageSrc" alt="" v-else>
   </div>
 </template>
 
@@ -12,11 +12,8 @@
     data() {
       return {
         url:[
-          'https://hbimg.huabanimg.com/870dbc0c2042d124282f5e1851bc28923618c4b33e206-jTkmsT_fw658/format/webp',
-          'https://hbimg.huabanimg.com/2c79478274712940b92446a37738a2096004b5c83637b-iVgFN6_fw658/format/webp',
-          'https://hbimg.huabanimg.com/1eec90d5f56a116dbd4fb8b7ce90eabc8ddc08353e40f-tdrv5J_fw658/format/webp',
-          'https://hbimg.huabanimg.com/00c26247e0bc2daf07a7d25fdb466e8de60fb86046762-8r1yPE_fw658/format/webp',
-          'https://hbimg.huabanimg.com/b9e0bad03657a2af762d49593cad227dd83b42202d79b-7PblBg_fw658/format/webp'
+          'https://www.qmx.top//upload/2023/12/08/20231208155219012pIi0LEdN.jpg',
+          'https://www.qmx.top//upload/2023/12/08/20231208162934012n05893i6.jpg'
         ]
       }
     },

+ 1 - 1
client/plugins/bg-music/src/index.vue

@@ -4,7 +4,7 @@
       <audio ref="audioPlayer" id="video-play-audio" :src="musicSrc"
              style="opacity: 0;" controls autoplay loop preload></audio>
     </div>
-    <img class="yinyue-img" :src="imageSrc" alt="bg">
+    <img draggable="false" class="yinyue-img" :src="imageSrc" alt="bg">
   </div>
 </template>
 

+ 5 - 4
client/plugins/image-carousel/src/index.vue

@@ -4,7 +4,7 @@
     <!--异步加载轮播图的情况;-->
     <Swiper class="image-carsousel-swiper" v-if="imageSrcList.length > 0"  :autoPlay='true' :showIndicator='true' :interval="interval" duration="500">
       <Slide class="image-carsousel-slide" v-for="(item,index) in imageSrcList" :key="index">
-        <img  class="image-carsousel-image" :src="item" alt="">
+        <img draggable="false"  class="image-carsousel-image" :src="item" alt="">
       </Slide>
     </Swiper>
   </div>
@@ -23,9 +23,9 @@
 				type: Array,
 				default: () => {
 					return [
-						'https://s10.mogucdn.com/mlcdn/c45406/190924_647e2hce112gi5876fi2lg057f1f4_1125x390.jpg',
-						'https://img.zcool.cn/community/01e1775aeb21a9a801219b7f50cf0d.jpg@1280w_1l_2o_100sh.jpg',
-						'https://img.zcool.cn/community/017b2a5938c8bca8012193a37db72c.jpg@1280w_1l_2o_100sh.jpg'
+            'https://cdn-ali2.jianyu360.cn/brand/img/jyjzg.png',
+            'https://cdn-ali2.jianyu360.cn/brand/img/jysm.png',
+            'https://cdn-ali2.jianyu360.cn/brand/img/jyyj.png',
 					]
         }
 			},
@@ -52,6 +52,7 @@
   display: block;
   width: 100%;
   height: 100%;
+  -webkit-user-drag: none;
 }
 </style>
 <style>

+ 4 - 3
client/plugins/image/src/index.vue

@@ -1,8 +1,8 @@
 <!--test.vue-->
 <template>
   <div class="Ds-image">
-    <img :src="imageSrc" alt="" v-if="imageSrc">
-    <img :src="randomImageSrc" alt="" v-else>
+    <img draggable="false" :src="imageSrc" alt="" v-if="imageSrc">
+    <img draggable="false" :src="randomImageSrc" alt="" v-else>
   </div>
 </template>
 
@@ -16,7 +16,7 @@
 		props: {
 			imageSrc: {
         type: String,
-        default:'https://res1.eqh5.com/store/bc7aeed3f426ab1d116139b834a7483b.png'
+        default:'https://www.qmx.top/upload/2023/08/08/20230808112413008h619em6N.jpg'
       }
     },
     computed: {
@@ -33,5 +33,6 @@
     display: block;
     width: 100%;
     height: 100%;
+    -webkit-user-drag: none;
   }
 </style>

+ 2 - 2
client/plugins/map/src/index.vue

@@ -51,8 +51,8 @@ import BaiduMap from 'vue-baidu-map/components/map/Map.vue'
           zoom:11.5,
           scrolling:'yes',
           type:"map",
-          content:"我爱厦门",
-          center:"厦",
+          content:"郑州未来大厦",
+          center:"郑州未来大厦",
         }),
       }
     },

+ 1 - 1
client/plugins/qrcode/src/index.vue

@@ -17,7 +17,7 @@
 		props: {
 			url: {
 				type: String,
-        default:"https://github.com/Oct1a"
+        default:"https://www.jianyu360.cn/"
       }
 		}
 	}

+ 4 - 4
client/store/modules/editor.js

@@ -282,7 +282,7 @@ const actions = {
       return;
     }
     const prevState = state.historyCache[state.currentHistoryIndex - 1]
-    commit('relapceEditorState', cloneDeep(prevState))
+    commit('replaceEditorState', cloneDeep(prevState))
     commit('editorUndo')
   },
   editorRedo({ commit }) {
@@ -290,7 +290,7 @@ const actions = {
       return;
     }
     const prevState = state.historyCache[state.currentHistoryIndex + 1]
-    commit('relapceEditorState', cloneDeep(prevState))
+    commit('replaceEditorState', cloneDeep(prevState))
     commit('editorRedo')
   }
 };
@@ -501,7 +501,7 @@ const mutations = {
    * @param state
    * @param data
    */
-  relapceEditorState(state, data) {
+  replaceEditorState(state, data) {
     console.log("state", data)
     state.projectData = cloneDeep(data.projectData)
     state.activePageUUID = data.activePageUUID
@@ -591,4 +591,4 @@ export default {
   getters,
   actions,
   mutations
-}
+}

+ 3 - 1
package.json

@@ -8,7 +8,9 @@
     "build": "vue-cli-service build --no-clean",
     "start": "pm2 start service/app.js",
     "doc": "docsify serve docs",
-    "h5-parse": "vue-cli-service build --target lib --name page-engine --dest service/public/engine_libs/h5-swiper engine-template/engine-h5-swiper/index.js"
+    "h5-parse": "vue-cli-service build --target lib --name page-engine --dest service/public/engine_libs/h5-swiper engine-template/engine-h5-swiper/index.js",
+    "h5-long": "vue-cli-service build --target lib --name page-engine --dest service/public/engine_libs/h5-long engine-template/engine-h5-long/index.js",
+    "pc": "vue-cli-service build --target lib --name page-engine --dest service/public/engine_libs/pc engine-template/engine-pc/index.js"
   },
   "dependencies": {
     "ali-oss": "^6.1.1",

+ 8 - 1
vue.config.js

@@ -11,11 +11,18 @@ let devServer = {
       target: 'http://localhost:3333', //设置你调用的接口域名和端口号 别忘了加http
       ws: false, //如果要代理 websockets
       changeOrigin: true, //将主机标头的原点更改为目标URL
-      logLevel: 'debug',
       pathRewrite: {
         '^/dev-api': ''
       }
     },
+    '/salesLeads': {
+      target: 'https://jybx2-webtest.jydev.jianyu360.com/',
+      ws: false, //如果要代理 websockets
+      changeOrigin: true, //将主机标头的原点更改为目标URL
+      pathRewrite: {
+        '^/salesLeads': '/salesLeads'
+      }
+    }
     // '/dev-api': {
     //   target: 'http://localhost:3333', //设置你调用的接口域名和端口号 别忘了加http
     //   ws: false, //如果要代理 websockets