Commit d955f75d authored by xd's avatar xd

发布前解决冲突

parents 5e944b9b fb83394d
<template> <template>
<div class="container" > <div class="container">
<div class="ct"> <div class="ct">
<div class="head"> <div class="head">
<h3>我的一次成功销售案例</h3> <h3>{{ title }}</h3>
<div> <div>
<span>作者: </span> <span>作者:</span>
<span>亿百分</span> <span>亿百分</span>
<span style="margin-left:24px;">2019 / 12 /24</span> <span style="margin-left:24px;">2019 / 12 /24</span>
</div> </div>
</div> </div>
<div class="nr"> <div class="nr">
<p> <p>现在用微信吸引顾客越来越火了,很多店主都开始通过各种方法,主动去加顾客微信。</p>
马几一民号传所把半米料己走专管每见严且具还京叫海公好速信调化眼务难心化二响住厂图电没速严义常象关更了低。由压反几风列线法再石究说布通总织第量回儿称从消片度音济学地通斯带老水亲东志报月者进放北传看术走形解林直动效提情影和复色米最只等。济交感去照象强手式性九己值正可心什体收并适部该置可山省十。
</p> <p>但是最近,有的店主开始跟我们抱怨,说自己的微信加了很多的顾客,但宣传的效果并不好,真正通过微信引到店里消费的顾客并不多。</p>
<p>
马几一民号传所把半米料己走专管每见严且具还京叫海公好速信调化眼务难心化二响住厂图电没速严义常象关更了低。由压反几风列线法再石究说布通总织第量回儿称从消片度音济学地通斯带老水亲东志报月者进放北传看术走形解林直动效提情影和复色米最只等。济交感去照象强手式性九己值正可心什体收并适部该置可山省十。 <p class="_bold">出现这种问题,很大的原因可能是店主不会正确地打造自己的微信号。</p>
</p>
<p>很多店主觉得,使用微信就是每天发一些朋友圈就行了,这样的想法绝对是错误的。</p>
<div class="pic"> <div class="pic">
<img src="/img/article.png" alt=""> <img :src="`/img/detail_${id}.jpg`" alt />
</div> </div>
<p> <p>店主做微信引流,一定要学会全方位地去打造自己的微信号,只有真正做到这一点的店主,才能确实从微信吸引客流,提升门店营业额。</p>
马几一民号传所把半米料己走专管每见严且具还京叫海公好速信调化眼务难心化二响住厂图电没速严义常象关更了低。由压反几风列线法再石究说布通总织第量回儿称从消片度音济学地通斯带老水亲东志报月者进放北传看术走形解林直动效提情影和复色米最只等。济交感去照象强手式性九己值正可心什体收并适部该置可山省十。
</p> <p class="_bold">打造微信号就是让顾客通过微信,对店主有一个良好的印象,只有顾客对店主有了良好的印象,才能进一步将他们吸引到店里消费。</p>
<p>你如果还没有学会打造微信号,那么接下来的这套方法对你很重要。</p>
<p>很多店主用过这个打造微信号的方法,改正了微信引流的误区,最后门店营业额都至少提升了一倍。</p>
<p>店主打造个人微信号,具体要从这两方面入手:</p>
<p class="_color">第一、修饰完善个人信息</p>
<p class="_bold">微信个人信息具体包括头像、微信名称、签名和主页背景等元素,微信上,这些都是店主直接展示给顾客的形象。</p>
<p>俗话说“人靠衣装”,如果店主的基本形象都不过关,那么顾客肯定不会相信你。</p>
<p>所以店主一定要从这四个细节出发,去修饰完善微信个人信息。</p>
<p>头像部分,店主不要直接使用门店的照片或者产品的图片作为头像,这样会让顾客有距离感,最好可以用自己的个人生活照作为头像。</p>
<p>微信名称部分,店主不要使用偏、难、怪的字词作为微信名称,最好是使用:名字(外号)+门店名,比如:小李-天天鲜果。这样,顾客也容易分辨。</p>
<p>个性签名部分,店主的个性签名可以跟门店结合起来,比如:天天鲜果店老板,以最优惠的价格,为顾客提供最放心的水果。</p>
<p>主页背景部分,主页的背景可以是门店照片或者产品的图片。但是照片最好不要拍得粗糙,要精美一点,因为主页背景是一个很好地展示门店和产品的地方,图片太粗糙,给顾客的第一感觉就不好。</p>
<p class="_color">第二、正确地发朋友圈</p>
<p>店主打造个人微信号,除了修饰完善微信个人信息,另外很重要的一方面就是学会正确地发朋友圈。</p>
<p>微信个人信息反映店主的外在形象,朋友圈的内容则是反映店主的内在。</p>
<p>如果店主发的朋友圈能够打动顾客,顾客就会选择相信你。</p>
<p>朋友圈很重要,所以店主要好好地思考每天要发布的朋友圈。</p>
<p>时间安排上,尽量选择每天早上8点、中午11-12点、晚上8-10点发朋友圈。因为顾客比较喜欢在这些时间点看朋友圈,更容易看到你发的内容。</p>
<p class="_bold">店主朋友圈发布的内容不能全是产品的广告,不然顾客会反感,就把你屏蔽了。</p>
<p>发布的内容整体上可以这样分:30%的内容发产品有关的信息;30%的内容发一些专业性内容,比如母婴店的店主可以发一些育儿经验,服装店的店主可以发一些流行的穿搭建议;20%的内容发个人生活的日常;20%的内容发一些笑话段子。</p>
<p class="_bold">这样,顾客看店主的朋友圈,就会比较亲切,会觉得店主有生活趣味、有专业性,有内涵。</p>
<p class="_bold">顾客会真正把你当成微信好友,而不是一个只想着发广告赚他钱的店老板。</p>
<p>打造微信个人号不是一件轻而易举的事情,但是值得每一位店主去好好琢磨。</p>
<p>只有微信号打造得更完美,顾客对店主的印象越好,最后使用微信吸引顾客的效果才会更好。</p>
<p>店主朋友们,可以从上述的这两个方面入手,开始去打造自己的个人微信号,注意每一个细节。做好微信号,门店营业额的提高就指日可待。</p>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { getCaseDetail } from '@/api/test/active' import { getCaseDetail } from "@/api/test/active";
export default { export default {
data() { data() {
return { return {
id: 0,
} title: ''
};
},
mounted() {
this.id = this.$route.query.id;
this.title = this.$route.query.title;
}, },
methods: { methods: {
getDeatil() { getDeatil() {
let data = { let data = {};
}
getCaseDetail(data).then(res => { getCaseDetail(data).then(res => {
console.log(res,"案例详情"); console.log(res, "案例详情");
});
}) }
} }
},
}; };
</script> </script>
<style scoped> <style scoped>
._color {
font-size: 16px !important;
color: rgb(230, 217, 16) !important
}
._bold {
font-weight: bold !important;
}
.pic { .pic {
width: 100%; width: 100%;
margin-bottom: 14px; margin-bottom: 14px;
...@@ -63,7 +120,7 @@ export default { ...@@ -63,7 +120,7 @@ export default {
.nr p { .nr p {
font-size: 12px; font-size: 12px;
font-weight: 400; font-weight: 400;
color: #576C88; color: #576c88;
margin-bottom: 14px; margin-bottom: 14px;
} }
.container { .container {
......
...@@ -5,20 +5,30 @@ ...@@ -5,20 +5,30 @@
<div>预览</div> <div>预览</div>
<div>发布</div> <div>发布</div>
</div> </div>
<p>开发中...</p> <input class="title" type="text" placeholder="请输入标题" />
<quill-editor ref="editor" :options="editorOption" @change="onEditorChange($event)"></quill-editor>
</div> </div>
</template> </template>
<script> <script>
import quillEditor from "@/components/quill";
export default { export default {
name: 'case-edit', name: "case-edit",
components: {}, components: {
quillEditor
},
data() { data() {
return { return {
editorOption: {
placeholder: '请输入内容',
modules: {
toolBar: {
} }
} }
} }
};
}
};
</script> </script>
<style lang="scss"> <style lang="scss">
...@@ -30,5 +40,13 @@ export default { ...@@ -30,5 +40,13 @@ export default {
padding: 14px; padding: 14px;
font-size: 18px; font-size: 18px;
} }
.title {
margin: 10px;
border-left: none;
border-top: none;
border-right: none;
border-bottom: 0.5px solid #000;
font-size: 18px;
}
} }
</style> </style>
<template> <template>
<div class="container"> <div class="container">
<div class="list"> <div class="list" style="padding-bottom: 30%;">
<van-swipe-cell v-for="item in caseList" :key="item.id"> <van-swipe-cell v-for="item in caseList" :key="item.id">
<div class="kj"> <div class="kj">
<div class="title">{{ item.title }}</div> <div class="title">{{ item.title }}</div>
<div class="ct al" @click="handleDetail(item.id)"> <div class="ct" @click="handleDetail(item)">
<img class="al" :src="item.img" alt>
<div class="ck">查看详情</div> <div class="ck">查看详情</div>
</div> </div>
</div> </div>
...@@ -13,9 +14,9 @@ ...@@ -13,9 +14,9 @@
</div> </div>
</van-swipe-cell> </van-swipe-cell>
</div> </div>
<div class="add-btn" @click="$router.push('/caseEdit')"> <!-- <div class="add-btn" @click="$router.push('/caseEdit')"> -->
<img src="../../../public/img/add.png" alt="add" /> <!-- <img src="../../../public/img/add.png" alt="add" /> -->
</div> <!-- </div> -->
<div class="main-menuBar"> <div class="main-menuBar">
<div class="menuBar-menu" @click="menuBarClick('MainSale')"> <div class="menuBar-menu" @click="menuBarClick('MainSale')">
<img class="menuBar-icon" :src="menuBarInfo.icon.now['1']" /> <img class="menuBar-icon" :src="menuBarInfo.icon.now['1']" />
...@@ -50,15 +51,18 @@ export default { ...@@ -50,15 +51,18 @@ export default {
caseList: [ caseList: [
{ {
id: 1, id: 1,
title: "店主这样使用微信引流,门店营业额竟然直接涨了一倍" title: "店主这样使用微信引流,门店营业额竟然直接涨了一倍",
img: '/img/detail_1.jpg'
}, },
{ {
id: 2, id: 2,
title: "微信加了很多顾客,但是商品卖不出去,怎么办?" title: "微信加了很多顾客,但是商品卖不出去,怎么办?",
img: '/img/detail_2.jpg'
}, },
{ {
id: 3, id: 3,
title: "技巧|手把手教你做微信顾客群,店主试过,营业额涨了一倍" title: "技巧|手把手教你做微信顾客群,店主试过,营业额涨了一倍",
img: '/img/detail_3.jpg'
} }
], ],
// 图标 // 图标
...@@ -125,9 +129,13 @@ export default { ...@@ -125,9 +129,13 @@ export default {
console.log(res,"案例列表") console.log(res,"案例列表")
}) */ }) */
}, },
handleDetail() { handleDetail(item) {
this.$router.push({ this.$router.push({
path: "caseDetail" path: "caseDetail",
query: {
id: item.id,
title: item.title
}
}); });
}, },
// 导航 // 导航
...@@ -250,7 +258,10 @@ export default { ...@@ -250,7 +258,10 @@ export default {
.al, .al,
.fw, .fw,
.jq { .jq {
background: url(../../../public/img/cswiper.png) no-repeat; height: 100%;
width: 100%;
border-radius: 10px;
/* background: url(../../../public/img/cswiper.png) no-repeat; */
background-size: cover; background-size: cover;
} }
</style> </style>
......
<template> <template>
<div class="container"> <div class="container">
<div class="flex-start top" > <div class="flex-start top">
<div class="flex-start"> <div class="flex-start">
<van-cell-group class="gn"> <van-cell-group class="gn">
<van-cell title="专柜LOGO" class="logo" > <van-cell title="专柜LOGO" class="logo" >
<template slot="default"> <template slot="default">
<van-uploader v-model="logoList" :max-count="1" class="input" :after-read="afterRead" :before-read="beforeRead" @delete="deleteLogo" > <van-uploader
v-model="logoList"
:max-count="1"
class="input"
:after-read="afterRead"
:before-read="beforeRead"
@delete="deleteLogo"
>
<div> <div>
<van-icon name="photo" size="20" /> <van-icon name="photo" size="20" />
</div> </div>
...@@ -41,10 +48,22 @@ ...@@ -41,10 +48,22 @@
</div> </div>
</van-cell-group> </van-cell-group>
</div> </div>
<div class="flex-start fwb" > <div class="flex-start fwb">
<div class="txt">轮播图</div> <div class="txt">轮播图</div>
<van-uploader v-model="bannerList" :max-count="4" class="pic" :before-read="beforeRead" :after-read="afterAddBanner" @delete="deleteBanner" /> <van-uploader
<quill-editor v-model="addForm.summary" ref="myQuillEditor" :options="editorOption" @change="onEditorChange($event)" ></quill-editor> v-model="bannerList"
:max-count="4"
class="pic"
:before-read="beforeRead"
:after-read="afterAddBanner"
@delete="deleteBanner"
/>
<quill-editor
v-model="addForm.summary"
ref="myQuillEditor"
:options="editorOption"
@change="onEditorChange($event)"
></quill-editor>
</div> </div>
</div> </div>
...@@ -53,15 +72,15 @@ ...@@ -53,15 +72,15 @@
</template> </template>
<script> <script>
import { quillEditor, Quill } from "vue-quill-editor" import { quillEditor, Quill } from "vue-quill-editor";
import { container, ImageExtend, QuillWatch } from "quill-image-extend-module" import { container, ImageExtend, QuillWatch } from "quill-image-extend-module";
import { editStore, getStoreDetail } from "@/api/sidebar/voucher" import { editStore, getStoreDetail } from "@/api/sidebar/voucher";
import "quill/dist/quill.core.css" import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css" import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css" import "quill/dist/quill.bubble.css";
Quill.register("modules/ImageExtend", ImageExtend) Quill.register("modules/ImageExtend", ImageExtend);
import axios from 'axios' import axios from "axios";
import { log } from 'util' import { log } from "util";
const toolbarOptions = [ const toolbarOptions = [
[{ size: ["small", false, "large", "huge"] }], // 字体大小 [{ size: ["small", false, "large", "huge"] }], // 字体大小
["image"] // 图片 ["image"] // 图片
...@@ -82,7 +101,7 @@ export default { ...@@ -82,7 +101,7 @@ export default {
summary: '', summary: '',
phone: '' phone: ''
}, },
oyStallCode: '', oyStallCode: "",
list: [], list: [],
bannerList: [], bannerList: [],
title: "", title: "",
...@@ -95,7 +114,7 @@ export default { ...@@ -95,7 +114,7 @@ export default {
// size: 3, // size: 3,
action: "http://139.155.48.151:8084/admin/auth/util/saveImg", action: "http://139.155.48.151:8084/admin/auth/util/saveImg",
response: res => { response: res => {
return res.data.imgPath return res.data.imgPath;
}, },
headers: xhr => { headers: xhr => {
// xhr.setRequestHeader('Content-Type','multipart/form-data') // xhr.setRequestHeader('Content-Type','multipart/form-data')
...@@ -117,8 +136,9 @@ export default { ...@@ -117,8 +136,9 @@ export default {
}; };
}, },
mounted() { mounted() {
this.addForm.oyStallCode = sessionStorage.getItem('oyStallCode') this.addForm.oyStallCode = sessionStorage.getItem("oyStallCode");
this.getDetail() console.log(this.addForm.oyStallCode, "编辑专柜信息oyStallCode");
this.getDetail();
}, },
methods: { methods: {
getDetail() { getDetail() {
...@@ -126,59 +146,59 @@ export default { ...@@ -126,59 +146,59 @@ export default {
oyStallCode: this.addForm.oyStallCode oyStallCode: this.addForm.oyStallCode
} }
getStoreDetail(params).then(res => { getStoreDetail(params).then(res => {
if(res.data.stallInfo != null) { if (res.data.stallInfo != null) {
console.log(res,'详情') console.log(res, "详情");
this.list = res.data.carousel this.list = res.data.carousel;
let obj = {} let obj = {};
obj.url = res.data.stallInfo.logo obj.url = res.data.stallInfo.logo;
this.logoList.push(obj) this.logoList.push(obj);
res.data.carousel.forEach(item => { res.data.carousel.forEach(item => {
let obj2 = {} let obj2 = {};
obj2.url = item obj2.url = item;
this.bannerList.push(obj2) this.bannerList.push(obj2);
}) });
this.addForm = res.data.stallInfo this.addForm = res.data.stallInfo;
} }
}) });
}, },
change(val) { change(val) {
console.log(val) console.log(val);
}, },
onEditorChange({ editor, html, text }) { onEditorChange({ editor, html, text }) {
this.$emit("input", this.addForm.summary) this.$emit("input", this.addForm.summary);
}, },
beforeRead (file) { //上传之前校验 beforeRead(file) {
if (file.type !== 'image/jpeg' && file.type !== 'image/png') { //上传之前校验
this.$toast("只允许上传img或png格式的图片") if (file.type !== "image/jpeg" && file.type !== "image/png") {
return false Toast("只允许上传jpg/png格式的图片!");
return false;
} }
return true return true;
}, },
async afterRead (file) { async afterRead(file) {
// this.addForm.logo = await this.getImgUrl(file.file)//使用上传的方法。file.file // this.addForm.logo = await this.getImgUrl(file.file)//使用上传的方法。file.file
this.addForm.logo = await this.getImgUrl(file.file) this.addForm.logo = await this.getImgUrl(file.file);
console.log(this.addForm.logo,'this.addForm.logo'); console.log(this.addForm.logo, "this.addForm.logo");
}, },
async getImgUrl(file) { async getImgUrl(file) {
let params = new FormData() let params = new FormData();
params.append('file', file) params.append("file", file);
let url = 'http://139.155.48.151:8084/admin/auth/util/saveImg' let url = "http://139.155.48.151:8084/admin/auth/util/saveImg";
const img = await axios.post(url, params) const img = await axios.post(url, params);
let urls = img.data.data.imgPath let urls = img.data.data.imgPath;
console.log(urls,'urls') console.log(urls, "urls");
return urls return urls;
}, },
async afterAddBanner(file) { async afterAddBanner(file) {
let img = await this.getImgUrl(file.file) let img = await this.getImgUrl(file.file);
this.list.push(img) this.list.push(img);
console.log(this.list,'list'); console.log(this.list, "list");
}, },
deleteBanner(file,index) { deleteBanner(file, index) {
this.list.splice(index.index,1) this.list.splice(index.index, 1);
}, },
deleteLogo(file) { deleteLogo(file) {
this.addForm.logo = '' this.addForm.logo = "";
}, },
handleSave() { handleSave() {
const carousel = this.list.join(';') const carousel = this.list.join(';')
...@@ -215,7 +235,7 @@ export default { ...@@ -215,7 +235,7 @@ export default {
}) })
} }
} }
} };
</script> </script>
<style > <style >
</style> </style>
...@@ -231,7 +251,7 @@ export default { ...@@ -231,7 +251,7 @@ export default {
} }
.txt { .txt {
font-size: 18px; font-size: 18px;
color:rgba(45, 71, 106, 1); color: rgba(45, 71, 106, 1);
font-weight: bold; font-weight: bold;
margin: 6px 16px 4px; margin: 6px 16px 4px;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment