Commit aaafb3e4 by zhangmeng

迭代

parent 6261b82d
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/css/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link href=/marketing/static/css/app.af066c509331a2c0b6f4d2a253c8d6e6.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/marketing/static/js/manifest.0a85049e489e85ac5f0a.js></script><script type=text/javascript src=/marketing/static/js/vendor.ad484ea676beca0f8899.js></script><script type=text/javascript src=/marketing/static/js/app.5921f5fa7fb6df700852.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/css/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link href=/marketing/static/css/app.234d378a01e3c6e1bda666f27b191ad3.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/marketing/static/js/manifest.0a85049e489e85ac5f0a.js></script><script type=text/javascript src=/marketing/static/js/vendor.3f18e95f77f4e3e2015f.js></script><script type=text/javascript src=/marketing/static/js/app.546672fc73b7a576402b.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
import qs from 'qs';
import axios from 'axios';
const host = window.location.origin;
const PREFIX = '/api-marketing/'
// 加载最小时间
const MINI_TIME = 300
// 超时时间
let TIME_OUT_MAX = 20000
// 环境value
let _isDev = process.env.NODE_ENV === 'development'
// 请求接口host
let _apiHost = host.indexOf('localhost') !== -1 ? 'http://gicdev.demogic.com' : host
// 请求组(判断当前请求数)
let _requests = []
//创建一个请求实例
const instance = axios.create({
baseURL: _apiHost,
timeout: TIME_OUT_MAX,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
/**
* 添加请求,显示loading
* @param {请求配置} config
*/
function pushRequest(config) {
console.log(`${config.url}--begin`)
_requests.push(config)
}
/**
* 移除请求,无请求时关闭loading
* @param {请求配置} config
*/
function popRequest(config) {
console.log(`${config.url}--end`)
let _index = _requests.findIndex(r => {
return r === config
})
if (_index > -1) {
_requests.splice(_index, 1)
}
}
/**
* 错误的处理
* @param {*} code
* @param {string} [message='请求错误']
*/
function handlerErr(code,message = '请求错误') {
switch (code) {
case 404:
message = '404,错误请求'
router.push('/404')
break;
case 401:
message = '登录失效'
break;
case 403:
message = '禁止访问'
router.push('/403')
break;
case 408:
message = '请求超时'
break;
case 500:
message = '服务器内部错误'
// router.push('/500')
break;
case 501:
message = '功能未实现'
break;
case 503:
message = '服务不可用'
break;
case 504:
message = '网关错误'
break;
}
this.$message({type:'warning',message:message})
}
/**
* 请求地址,请求数据,是否静默,请求方法
*/
const requests = (url, data = {},contentTypeIsJSON = false, isSilence = false, method = 'POST') => {
let _opts = { method, url }
const _query = {}
let _timer = null
if (method.toLocaleUpperCase() === 'POST') {
if (contentTypeIsJSON) {
_opts.data = data;
_opts.headers = {'Content-Type': 'application/json'};
_opts.url += '?requestProject=marketing';
} else {
_opts.data = qs.stringify(Object.assign({requestProject:'gic-web'},data))
}
} else {
_opts.params = _query
}
return new Promise((resolve, reject) => {
let _random = { stamp: Date.now(), url: `${_apiHost + url}` }
if (!isSilence) {
_timer = setTimeout(() => {
pushRequest(_random)
}, MINI_TIME)
}
instance(_opts)
.then(res => {
clearTimeout(_timer)
popRequest(_random)
if (res.data.errorCode !== 0) {
reject(res);
handlerErr(res.data.errorCode,res.data.message);
} else {
resolve(res.data)
}
})
.catch(res => {
clearTimeout(_timer)
popRequest(_random)
if (res) {
handlerErr(res.response.status,'接口异常')
}
reject(res)
})
})
}
//素材库 图文 图文分页列表
export const loadImgTextList = (params) => requests( PREFIX + 'page-marketing-wechat-image-text', params);
//素材库--图片--图片分页列表
export const loadImgList = (params) => requests( PREFIX + 'page-marketing-wechat-image', params);
//素材库--图片--编辑图片名称
export const updateImgName = (params) => requests( PREFIX + 'update-marketing-wechat-image-titlename', params);
//素材库--图片--修改图片分组
export const updateGroupName = (params) => requests( PREFIX + 'update-marketing-wechat-image-group', params);
//素材库--图片--新建图片分组
export const addGroupService = (params) => requests( PREFIX + 'save-marketing-wechat-image-group', params);
//素材库--图片--删除图片分组
export const deleteGroupService = (params) => requests( PREFIX + 'delete-marketing-wechat-image-group', params);
//素材库--图片--批量删除图片
export const deleteImageService = (params) => requests( PREFIX + 'delete-batch-marketing-wechat-image', params);
//素材库--图片--移动分组
export const changeGroupService = (params) => requests( PREFIX + 'marketing-wechat-image-changeGroup', params);
<template>
<div class="dm-app__item__wrap" @mouseover="maskShow = true" @mouseout="maskShow = false">
<div class="dm-app__item">
<div class="dm-app__avatar">
<img :src="loadErrorImg" alt="">
<span>达摩公开课</span>
</div>
<p class="ellipsis-l2">测试测试测试测试测测试测试测试测试测试测试测试测试试测试测试测试测试测试测试测试测试测试测试测试</p>
<img :src="loadErrorImg" alt="" srcset="">
<p class="dm-app__item--bottom"><img src="../img/app-circle.svg" alt="" srcset=""><span> 小程序</span></p>
</div>
</div>
</template>
<script>
export default {
name:'com-app',
data(){
return {
maskShow:false,
loadErrorImg:require('../img/loaderror.png')
}
},
props:{
item:{
type: Object,
default() {
return {}
}
}
}
}
</script>
<template>
<div class="dm-card__item__wrap" @mouseover="maskShow = true" @mouseout="maskShow = false">
<div class="dm-card__item">
<img class="dm-card__item__avatar" :src="loadErrorImg" alt="">
<div class="inline-block">
<p class="dm-card__item__title">20元代金券</p>
<p class="dm-card__item__desc">领取后0-7天</p>
</div>
</div>
<p class="dm-card__item--bottom"><span>适用所有门店</span></p>
</div>
</template>
<script>
export default {
name:'com-card',
data(){
return {
maskShow:false,
loadErrorImg:require('../img/loaderror.png')
}
},
props:{
item:{
type: Object,
default() {
return {}
}
}
}
}
</script>
<template>
<div class="dm-imgText__item__wrap" @mouseover="maskShow = true" @mouseout="maskShow = false">
<div v-show="maskShow" class="dm-imgText__item__mask"></div>
<div class="dm-imgText__item" >
<p class="ellipsis-l2">测试测试测试测试测测试测试测试测试测试测试测试测试试测试测试测试测试测试测试测试测试测试测试测试</p>
<img :src="loadErrorImg" alt="" srcset="">
<p class="ellipsis fz13 gray-color">测试测试测试测试测测试测试测试测试测试测试测试测试试测试测试测试测试测试测试测试测试测试测试测试</p>
</div>
</div>
</template>
<script>
export default {
name:'com-img-text',
data(){
return {
maskShow:false,
loadErrorImg:require('../img/loaderror.png')
}
},
props:{
item:{
type: Object,
default() {
return {}
}
}
}
}
</script>
<template>
<section>
<div class="pb22 clearfix">
<div class="fl">图文消息(共{{total}}条) <el-input v-model="listParams.searchName" clearable class="w200 ml10" placeholder="请输入标题/作者" @change="loadImgTextList"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input></div>
<div class="fr">
<el-button type="primary" @click="add">新建图文</el-button>
<el-button @click="check">刷新列表</el-button>
</div>
</div>
<el-radio-group class="dm-imgtext-list" v-model="selectedData" v-loading="loading">
<el-table tooltipEffect="light" :data="textImgList" height="360" style="width: 100%" @row-click="rowClick">
<el-table-column label="" align="center" width="55px">
<template slot-scope="scope" >
<div class="label-hidden"><el-radio :label="scope.row"></el-radio></div>
</template>
</el-table-column>
<el-table-column label="图片" align="left" width="120px">
<template slot-scope="scope" >
<img width="100" height="50" :src="scope.row.itemList.length?(scope.row.itemList[0].qcloudImageUrl || ''):''" alt="">
</template>
</el-table-column>
<el-table-column label="图文标题" align="left" min-width="100px">
<template slot-scope="scope" >
<a class="blue ellipsis-l3" :href="scope.row.itemList.length?(scope.row.itemList[0].mediaUrl || ''):''" target="_blank">{{scope.row.itemList.length?(scope.row.itemList[0].titleName || ''):''}}</a>
</template>
</el-table-column>
<el-table-column label="作者" prop="updateTimeStr" align="left" width="120px">
<template slot-scope="scope" >
<p>{{scope.row.itemList.length?(scope.row.itemList[0].authorName || '--'):''}}</p>
</template>
</el-table-column>
<el-table-column label="更新时间" prop="updateTimeStr" align="left" width="160px">
<template slot-scope="scope" >
{{scope.row.updateTimeStr}}
</template>
</el-table-column>
</el-table>
</el-radio-group>
<el-pagination v-show="textImgList.length" background class="dm-pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listParams.currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="listParams.pageSize" layout="total, sizes, prev, pager, next" :total="total"></el-pagination>
</section>
</template>
<script>
import {loadImgTextList} from '../api.js';
import {formateDateTimeByType} from '@/utils/index.js'
export default {
created(){
this.loadImgTextList();
},
data() {
return {
textImgList:[],
listParams:{
currentPage:1,
pageSize:20,
searchName:''
},
total:0,
loading:false,
syncImgTextShow:false,
selectedImgTextId:'',
selectedData:{}
}
},
watch:{
activeId(val) {
this.textImgList.map(v => {
console.log('111'+val)
if (this.activeId === v.imageTextWechatId) {
this.selectedData = v;
}
})
}
},
methods:{
async loadImgTextList() {
this.loading = true
try {
let res = await loadImgTextList(this.listParams);
if (res.errorCode === 0) {
this.textImgList = res.result.result || [];
this.total = res.result.totalCount;
this.textImgList.map(v => {
v.createTimeStr = formateDateTimeByType(v.createTime,'yyyy-MM-dd-HH-mm')
v.updateTimeStr = formateDateTimeByType(v.updateTime,'yyyy-MM-dd-HH-mm')
console.log(this.activeId)
if (this.activeId === v.imageTextWechatId) {
this.selectedData = v;
}
})
}
} catch(err) {
console.log(err)
this.$tips({type:'warning',message:'列表请求出错,请稍后再试'});
}
this.loading = false
},
reset() {
this.listParams.searchName = '';
this.loadImgTextList();
},
check() {
this.syncImgTextShow = true;
},
rowClick(row) {
console.log(row)
this.selectedData = row;
this.$emit('get-data',{imageTextId:row.imageTextId,imageTextWechatId:row.imageTextWechatId})
},
add () {
this.$router.push('/wechat/editor');
},
handleSizeChange(val) {
this.listParams.pageSize = val;
this.loadImgTextList();
},
handleCurrentChange(val) {
this.listParams.currentPage = val;
this.loadImgTextList();
}
}
}
</script>
<style lang="scss" scoped>
.dm-imgtext_head{
display: flex;
justify-content: space-between;
}
.dm-imgtext-list {
width: 100%;
&>.dm-imgtext-item {
display: flex;
justify-content: space-between;
padding: 10px;
border-bottom: 1px solid #e7e7eb;
}
.dm-imgtext_left{
&>img {
width: 100px;
height: 100px;
display:inline-block;
vertical-align: middle;
box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
}
&>div{
display: inline-block;
vertical-align: middle;
line-height: 26px;
padding-left: 10px;
}
}
}
</style>
......@@ -4,50 +4,140 @@
<span class="dm-marketing__opt--label">添加内容</span>
<i class="el-icon-plus dm-marketing__opt--icon"></i>
<div class="inline-block dm-marketing__opt">
<span class="dm-marketing__opt__item">
<img src="./svg/imgText.svg" alt="" srcset=""><span> 图文</span>
<span class="dm-marketing__opt__item" @click="addItem(1)">
<img src="./img/imgText.svg" alt="" srcset=""><span> 图文</span>
</span>
<span class="dm-marketing__opt__item">
<img src="./svg/text.svg" alt="" srcset=""><span> 文本</span>
<span class="dm-marketing__opt__item" @click="addItem(2)">
<img src="./img/text.svg" alt="" srcset=""><span> 文本</span>
</span>
<span class="dm-marketing__opt__item">
<img src="./svg/app.svg" alt="" srcset=""><span> 小程序</span>
<span class="dm-marketing__opt__item" @click="addItem(3)">
<img src="./img/app.svg" alt="" srcset=""><span> 小程序</span>
</span>
<span class="dm-marketing__opt__item">
<img src="./svg/img.svg" alt="" srcset=""><span> 图片</span>
<span class="dm-marketing__opt__item" @click="addItem(4)">
<img src="./img/img.svg" alt="" srcset=""><span> 图片</span>
</span>
<span class="dm-marketing__opt__item">
<img src="./svg/card.svg" alt="" srcset=""><span> 卡券</span>
<span class="dm-marketing__opt__item" @click="addItem(5)">
<img src="./img/card.svg" alt="" srcset=""><span> 卡券</span>
</span>
<span class="dm-marketing__opt__item">
<img src="./svg/msg.svg" alt="" srcset=""><span> 短信</span>
<span class="dm-marketing__opt__item" @click="addItem(6)">
<img src="./img/msg.svg" alt="" srcset=""><span> 短信</span>
</span>
<span class="dm-marketing__opt__item">
<img src="./svg/tel.svg" alt="" srcset=""><span> 话务</span>
<span class="dm-marketing__opt__item" @click="addItem(7)">
<img src="./img/tel.svg" alt="" srcset=""><span> 话务</span>
</span>
</div>
</div>
<div class="dm-marketing__content--wrap">
<span class="dm-marketing__content--label">回复内容</span>
<div class="dm-marketing__content">
<div class="dm-marketing__content__item" v-for="(v,i) in list" :key="i">
<!-- <div class="dm-marketing__content__item" v-for="(v,i) in list" :key="i">
<i class="dm-marketing__content--index">{{i+1}}</i>
<com-img-text></com-img-text>
</div> -->
<!-- 图文 -->
<div class="dm-marketing__content__item" >
<i class="dm-marketing__content--index">1</i>
<com-img-text></com-img-text>
<i class="el-icon-delete dm-marketing__opt--icon"></i>
</div>
<!-- 文本 -->
<div class="dm-marketing__content__item" >
<i class="dm-marketing__content--index">2</i>
<span class="dm-text__wrap ellipsis-l2 inline-block">目前GIC中,营销回复的内容没有统一的组件,各种营销回复为不同的组件,当一个页面中需要添加各种营销回复时,页面的样式过于零散。因此,需要制作回复内容统一的组件。需要使用到的界面有:微信营销-新建、编辑;公众号配置-自动关注回复;公众号配置-关键字回复;</span>
<i class="el-icon-edit dm-marketing__opt--icon"></i>
<i class="el-icon-delete dm-marketing__opt--icon"></i>
</div>
<!-- 图片 -->
<div class="dm-marketing__content__item" >
<i class="dm-marketing__content--index">3</i>
<div class="dm-img__item__wrap">
<img src="./img/loaderror.png" alt="">
</div>
<i class="el-icon-delete dm-marketing__opt--icon"></i>
</div>
<!-- 小程序 -->
<div class="dm-marketing__content__item" >
<i class="dm-marketing__content--index">4</i>
<com-app></com-app>
<i class="el-icon-edit dm-marketing__opt--icon"></i>
<i class="el-icon-delete dm-marketing__opt--icon"></i>
</div>
<!-- 卡券 -->
<div class="dm-marketing__content__item" >
<i class="dm-marketing__content--index">5</i>
<com-card></com-card>
<i class="el-icon-delete dm-marketing__opt--icon"></i>
</div>
<!-- 短信-->
<div class="dm-marketing__content__item" >
<i class="dm-marketing__content--index">6</i>
<div class="dm-msg__item__wrap">
<div class="dm-msg__item">
<p class="dm-msg__item--title">会员日活动</p>
<p class="dm-msg__item--content">目前GIC中,营销回复的内容没有统一的组件,各种营销回复为不同的组件,当一个页面中需要添加各种营销回复时,页面的样式过于零散。因此,需要制作回复内容统一的组件。需要使用到的界面有:微信营销-新建、编辑;公众号配置-自动关注回复;公众号配置-关键字回复;</p>
</div>
</div>
<i class="el-icon-delete dm-marketing__opt--icon"></i>
</div>
<!-- 话务-->
<div class="dm-marketing__content__item" >
<i class="dm-marketing__content--index">7</i>
<div class="dm-tel__item__wrap">
<div class="dm-tel__item">
<p class="dm-tel__item--title">会员日活动</p>
<p class="dm-tel__item--content">目前GIC中,营销回复的内容没有统一的组件,各种营销回复为不同的组件,当一个页面中需要添加各种营销回复时,页面的样式过于零散。因此,需要制作回复内容统一的组件。需要使用到的界面有:微信营销-新建、编辑;公众号配置-自动关注回复;公众号配置-关键字回复;</p>
</div>
</div>
<i class="el-icon-edit dm-marketing__opt--icon"></i>
<i class="el-icon-delete dm-marketing__opt--icon"></i>
</div>
</div>
</div>
<i class="el-icon-plus dm-marketing__opt--icon--bottom"></i>
<el-dialog title="选择" :visible.sync="dialogShow" width="800px" :before-close="close">
<img-text-lib></img-text-lib>
<span slot="footer" class="dialog-footer">
<el-button @click="close">关 闭</el-button>
<el-button type="primary" @click="close">确 定</el-button>
</span>
</el-dialog>
</section>
</template>
<script>
import comImgText from './components/img-text-item.vue';
import comApp from './components/app-item.vue';
import comCard from './components/card-item.vue';
import ImgTextLib from './components/img-text-lib.vue';
export default {
name:'dm-marketing',
components:{
'com-img-text':comImgText,
'com-app':comApp,
'com-card':comCard,
'img-text-lib':ImgTextLib
},
data() {
return{
list:Array(6),
dialogShow:false,
}
},
methods:{
close() {
this.dialogShow = false;
},
addItem(index) {
this.dialogShow = true;
}
}
}
</script>
......
......@@ -8,6 +8,9 @@
.w240 {
width: 240px;
}
.w500{
width: 500px;
}
.inline-block {
vertical-align: middle;
display:inline-block!important;
......@@ -47,6 +50,42 @@
display: block;
overflow: hidden;
}
.ellipsis{
max-height:20px;
line-height:20px;
overflow:hidden;
text-overflow:ellipsis;
display:-webkit-box;
-webkit-line-clamp:1;
-webkit-box-orient:vertical
}
.ellipsis-l2{
max-height:40px;
line-height:20px;
overflow:hidden;
text-overflow:ellipsis;
display:-webkit-box;
-webkit-line-clamp:2;
-webkit-box-orient:vertical
}
.ellipsis-l3{
max-height:60px;
line-height:20px;
overflow:hidden;
text-overflow:ellipsis;
display:-webkit-box;
-webkit-line-clamp:3;
-webkit-box-orient:vertical
}
.pb22{
padding-bottom: 22px;
}
.blue {
color: #1890ff;
cursor: pointer;
}
/* reset样式end */
.dm-marketing__opt{
......@@ -60,16 +99,23 @@
color:#303133;
font-size:14px;
}
.dm-marketing__opt--icon {
.dm-marketing__opt--icon,.dm-marketing__opt--icon--bottom {
display:inline-block;
font-size:20px;
padding:8px;
margin:0 10px;
color:#909399;
border:2px solid #E4E7ED;
border:1px solid #E4E7ED;
border-radius:50%;
vertical-align: middle;
cursor: pointer;
}
.dm-marketing__opt--icon:hover,.dm-marketing__opt--icon--bottom:hover {
color:#1890ff;
border:1px solid #1890ff;
}
.dm-marketing__opt--icon--bottom{
margin:20px 0 0 70px;
}
.dm-marketing__opt__item {
display:inline-block;
......@@ -91,18 +137,32 @@
}
.dm-marketing__content--label{
position: relative;
top: 40px;
left: 0;
}
.dm-marketing__content--wrap{
margin-top:50px;
max-width:1000px;
margin-top:30px;
max-width:1200px;
}
.dm-marketing__content{
margin-left:120px;
margin-left:70px;
}
.dm-marketing__content__item{
border-bottom:1px solid #E4E7ED;
padding:20px 0;
padding: 20px 0 0 0;
}
.dm-marketing__content__item::after {
content: '';
height: 1px;
width: 100%;
background: #E4E7ED;
display: block;
margin-left: 48px;
margin-top: 20px;
}
.dm-marketing__content--index{
display:inline-block;
width:24px;
......@@ -114,4 +174,208 @@
border-radius:50%;
padding:4px;
color:#606266;
}
\ No newline at end of file
}
/* item */
.dm-imgText__item__wrap{
display: inline-block;
position: relative;
width: 320px;
height: 290px;
margin:0 10px;
vertical-align: middle;
background: #fff;
border:1px solid #E4E7ED;
border-radius:4px;
box-shadow: 0px 2px 8px 0px rgba(0,0,0,0.10);
}
.dm-imgText__item__mask{
position: absolute;
top: 0;
left: 0;
width: 320px;
height: 290px;
border-radius:4px;
background: rgba(0,0,0,0.5);
z-index:9;
}
.dm-imgText__item{
padding:15px;
}
.dm-imgText__item > img{
display: inline-block;
width: 290px;
height: 163px;
margin: 20px 0 20px;
}
.dm-text__wrap{
width: 500px;
margin-left: 10px;
}
.dm-img__item__wrap{
display: inline-block;
margin-left: 10px;
vertical-align: middle;
text-align: center;
width: 180px;
height: 122px;
border: 1px solid rgba(228,231,237,1);
border-radius: 2px;
}
.dm-img__item__wrap > img {
width: auto;
height: 100%;
}
.dm-app__item__wrap{
display: inline-block;
position: relative;
width: 320px;
height: 347px;
margin:0 10px;
vertical-align: middle;
background: #fff;
border:1px solid #E4E7ED;
border-radius:4px;
box-shadow: 0px 2px 8px 0px rgba(0,0,0,0.10);
}
.dm-app__item{
padding:15px;
}
.dm-app__avatar {
padding-bottom:15px;
}
.dm-app__avatar > img {
width: 50px;
height: 50px;
border-radius: 50%;
vertical-align: middle;
}
.dm-app__avatar > span {
vertical-align: middle;
max-width: 100px;
line-height: 20px;
overflow: hidden;
text-overflow: ellipsis;
}
.dm-app__item > img{
display: inline-block;
width: 290px;
height: 163px;
margin: 20px 0 15px;
}
.dm-app__item--bottom > img {
width: 14px;
height: 14px;
vertical-align: middle;
}
.dm-app__item--bottom > span {
vertical-align: middle;
color: #909399;
font-size: 12px;
}
/* card */
.dm-card__item__wrap{
display: inline-block;
position: relative;
width: 298px;
height: 142px;
margin:0 10px;
vertical-align: middle;
border: 1px solid rgba(228,231,237,1);
border-radius: 4px;
}
.dm-card__item {
padding:0 15px;
background: rgba(72,170,3,0.85);
height:106px;
line-height: 106px;
}
.dm-card__item__avatar {
width: 60px;
height: 60px;
border-radius: 50%;
vertical-align: middle;
}
.dm-card__item__title {
vertical-align: middle;
margin-left: 8px;
max-width: 100px;
font-size: 16px;
font-weight: 500;
line-height: 30px;
color: #fff;
overflow: hidden;
text-overflow: ellipsis;
}
.dm-card__item__desc{
vertical-align: middle;
margin-left: 8px;
max-width: 100px;
font-size: 12px;
line-height: 20px;
color: #fff;
overflow: hidden;
text-overflow: ellipsis;
}
.dm-card__item--bottom {
vertical-align: middle;
line-height: 106px;
color: #909399;
font-size: 12px;
line-height: 36px;
padding-left: 15px;
}
/* tel msg */
.dm-msg__item__wrap,.dm-tel__item__wrap{
width: 860px;
height: 94px;
margin:0 10px;
border: 1px solid rgba(228,231,237,1);
border-radius: 4px;
display: inline-block;
vertical-align: middle;
}
.dm-msg__item,.dm-tel__item{
padding: 15px;
display: inline-block;
vertical-align: middle;
}
.dm-msg__item--title,.dm-tel__item--title {
font-size: 16px;
max-height: 36px;
line-height: 36px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.dm-msg__item--content,.dm-tel__item--content {
font-size: 14px;
color: #606266;
max-height: 30px;
line-height: 30px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
<template>
<div style="background:#fff;">
<!-- <div>
<div>
<p>新版门店</p>
<vue-gic-store-new style="padding:20px;" :uuid="uuid"></vue-gic-store-new>
</div>
......@@ -11,8 +11,9 @@
<div>
<p>老版门店</p>
<vue-gic-store-linkage style="padding:20px;" :msg="sendChildData"></vue-gic-store-linkage>
</div> -->
</div>
<div style="padding:20px;">
<p>营销事件组件</p>
<dm-marketing></dm-marketing>
</div>
</div>
......
......@@ -325,7 +325,8 @@ export default {
if (this.form.effectType) {
const params = {
memberSearchDTO:this.form.memberSearchDTO,
marketingType:this.form.marketingType === 'message'?0:1
// marketingType:this.form.marketingType === 'message' ? 0 : 1
marketingType: 0
}
const res = await checkMessageSendCount(params);
if (res.errorCode === 0) {
......
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