Commit 74f36a89 by crushh

update: 链接

parent df4c1fea
...@@ -41,3 +41,12 @@ export const detailClerkList = params => postJsonRequest('/haoban-manage3-web/hm ...@@ -41,3 +41,12 @@ export const detailClerkList = params => postJsonRequest('/haoban-manage3-web/hm
//【欢迎语】-- 特殊欢迎语关联详情列表 //【欢迎语】-- 特殊欢迎语关联详情列表
export const welcomeRelationList = params => getRequest('/haoban-manage3-web/welcome/relation/list', params); export const welcomeRelationList = params => getRequest('/haoban-manage3-web/welcome/relation/list', params);
// 【活码链接】-- 新增
export const linkAdd = params => postJsonRequest('/haoban-manage3-web/hm/link/add', params);
// 【活码链接】-- 编辑
export const linkUpdate = params => postJsonRequest('/haoban-manage3-web/hm/link/update', params);
// 【活码链接】-- 详情
export const linkDetail = params => postJsonRequest('/haoban-manage3-web/hm/link/detail', params);
...@@ -64,8 +64,6 @@ Vue.axios.interceptors.request.use( ...@@ -64,8 +64,6 @@ Vue.axios.interceptors.request.use(
let haobanSign = sessionStorage.getItem('userInfoBrandId'); let haobanSign = sessionStorage.getItem('userInfoBrandId');
haobanSign ? (config.headers.enterpriseId = haobanSign) : ''; haobanSign ? (config.headers.enterpriseId = haobanSign) : '';
} }
console.log(config);
return config; return config;
}, },
err => { err => {
......
...@@ -17,22 +17,21 @@ export default { ...@@ -17,22 +17,21 @@ export default {
* var storeBusinessTime="10:00-22:00" to * var storeBusinessTime="10:00-22:00" to
*/ */
timeToDate: function(val) { timeToDate: function(val) {
var date = new Date() var date = new Date();
var y = date.getFullYear(); var y = date.getFullYear();
var m = date.getMonth() +1; var m = date.getMonth() + 1;
var day = date.getDate(); var day = date.getDate();
var d = [],newArr = []; var d = [],
newArr = [];
var dArr = val.split('-'); var dArr = val.split('-');
dArr.forEach(function(ele,index){ dArr.forEach(function(ele, index) {
newArr.push(ele.split(':')) newArr.push(ele.split(':'));
}) });
d = [new Date(y,m,day,newArr[0][0],newArr[0][1]),new Date(y,m,day,newArr[1][0],newArr[1][1])] d = [new Date(y, m, day, newArr[0][0], newArr[0][1]), new Date(y, m, day, newArr[1][0], newArr[1][1])];
return d; return d;
}, },
dateToTime(val) { dateToTime(val) {
// console.log(val) // console.log(val)
// (0-9)年月数字的显示 // (0-9)年月数字的显示
...@@ -40,9 +39,9 @@ export default { ...@@ -40,9 +39,9 @@ export default {
return num > 9 ? '' + num : '0' + num; return num > 9 ? '' + num : '0' + num;
} }
var t; var t;
var t1 = formatDig(new Date(val[0]).getHours())+':'+formatDig(new Date(val[0]).getMinutes()) var t1 = formatDig(new Date(val[0]).getHours()) + ':' + formatDig(new Date(val[0]).getMinutes());
var t2 = formatDig(new Date(val[1]).getHours())+':'+formatDig(new Date(val[1]).getMinutes()) var t2 = formatDig(new Date(val[1]).getHours()) + ':' + formatDig(new Date(val[1]).getMinutes());
t= t1+'-'+t2 t = t1 + '-' + t2;
return t; return t;
} }
} };
...@@ -2,38 +2,45 @@ var SIGN_REGEXP = /([yMdhsm])(\1*)/g; ...@@ -2,38 +2,45 @@ var SIGN_REGEXP = /([yMdhsm])(\1*)/g;
var DEFAULT_PATTERN = 'yyyy-MM-dd'; var DEFAULT_PATTERN = 'yyyy-MM-dd';
function padding(s, len) { function padding(s, len) {
var len = len - (s + '').length; var len = len - (s + '').length;
for (var i = 0; i < len; i++) { s = '0' + s; } for (var i = 0; i < len; i++) {
s = '0' + s;
}
return s; return s;
}; }
export default { export default {
getQueryStringByName: function (name) { getQueryStringByName: function(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg); var r = window.location.search.substr(1).match(reg);
var context = ""; var context = '';
if (r != null) if (r != null) context = r[2];
context = r[2];
reg = null; reg = null;
r = null; r = null;
return context == null || context == "" || context == "undefined" ? "" : context; return context == null || context == '' || context == 'undefined' ? '' : context;
}, },
formatDate: { formatDate: {
format: function(date, pattern) {
format: function (date, pattern) {
pattern = pattern || DEFAULT_PATTERN; pattern = pattern || DEFAULT_PATTERN;
return pattern.replace(SIGN_REGEXP, function ($0) { return pattern.replace(SIGN_REGEXP, function($0) {
switch ($0.charAt(0)) { switch ($0.charAt(0)) {
case 'y': return padding(date.getFullYear(), $0.length); case 'y':
case 'M': return padding(date.getMonth() + 1, $0.length); return padding(date.getFullYear(), $0.length);
case 'd': return padding(date.getDate(), $0.length); case 'M':
case 'w': return date.getDay() + 1; return padding(date.getMonth() + 1, $0.length);
case 'h': return padding(date.getHours(), $0.length); case 'd':
case 'm': return padding(date.getMinutes(), $0.length); return padding(date.getDate(), $0.length);
case 's': return padding(date.getSeconds(), $0.length); case 'w':
return date.getDay() + 1;
case 'h':
return padding(date.getHours(), $0.length);
case 'm':
return padding(date.getMinutes(), $0.length);
case 's':
return padding(date.getSeconds(), $0.length);
} }
}); });
}, },
parse: function (dateString, pattern) { parse: function(dateString, pattern) {
var matchs1 = pattern.match(SIGN_REGEXP); var matchs1 = pattern.match(SIGN_REGEXP);
var matchs2 = dateString.match(/(\d)+/g); var matchs2 = dateString.match(/(\d)+/g);
if (matchs1.length == matchs2.length) { if (matchs1.length == matchs2.length) {
...@@ -42,19 +49,29 @@ export default { ...@@ -42,19 +49,29 @@ export default {
var _int = parseInt(matchs2[i]); var _int = parseInt(matchs2[i]);
var sign = matchs1[i]; var sign = matchs1[i];
switch (sign.charAt(0)) { switch (sign.charAt(0)) {
case 'y': _date.setFullYear(_int); break; case 'y':
case 'M': _date.setMonth(_int - 1); break; _date.setFullYear(_int);
case 'd': _date.setDate(_int); break; break;
case 'h': _date.setHours(_int); break; case 'M':
case 'm': _date.setMinutes(_int); break; _date.setMonth(_int - 1);
case 's': _date.setSeconds(_int); break; break;
case 'd':
_date.setDate(_int);
break;
case 'h':
_date.setHours(_int);
break;
case 'm':
_date.setMinutes(_int);
break;
case 's':
_date.setSeconds(_int);
break;
} }
} }
return _date; return _date;
} }
return null; return null;
} }
} }
}; };
<template> <template>
<el-popover placement="bottom" style="min-width: 357px" v-model="departmentVisible"> <el-popover placement="bottom" style="min-width: 357px" v-model="departmentVisible">
<dm-simple-transfer v-model="checked" :data="data" :item-size="56" :titles="['选择门店', '已选门店']" filterable filter-placeholder="请输入门店名称/code"> <dm-simple-transfer v-model="checked" :props="props" :data="data" :item-size="56" :titles="['选择门店', '已选门店']" filterable filter-placeholder="请输入门店名称/code" @change="change">
<div slot-scope="{ option }"> <div slot-scope="{ option }">
<p>{{ option.label }}</p> <p>{{ option.label }}</p>
<p style="font-size: 12px;line-height: 18px">{{ option.key }}</p> <p style="font-size: 12px;line-height: 18px">{{ option.code }}</p>
</div> </div>
</dm-simple-transfer> </dm-simple-transfer>
<div class="flex-column item-cell-select inline-block " slot="reference"> <div class="show-select-num cursor-pointer w-250" slot="reference">
<el-input></el-input> 已经选择{{ checked.length }}家门店
<span class="el-input__suffix"
><span class="el-input__suffix-inner"><i :class="['el-select__caret el-input__icon el-icon-arrow-up', departmentVisible ? 'is-reverse' : '']"></i></span
></span>
</div> </div>
</el-popover> </el-popover>
</template> </template>
<script> <script>
import { getRequest } from '@/api/api';
export default { export default {
data() { data() {
return { return {
departmentVisible: false,
checked: [], checked: [],
data: [] data: [],
props: {
key: 'storeId',
label: 'storeName'
},
form: {
storeSearchParams: '',
pageSize: 20,
pageNum: 1
}
}; };
},
mounted() {
this.getList();
},
methods: {
getList() {
getRequest('/haoban-manage3-web/hm/store-list', {}).then(res => {
console.log(res);
const { result } = res.data;
this.data = result || [];
});
},
change(val) {
this.$emit('change', val);
}
} }
}; };
</script> </script>
<style></style> <style lang="scss" scoped>
.show-select-num {
position: relative;
display: inline-block;
font-size: inherit;
height: 32px;
line-height: 32px;
padding-left: 10px;
-webkit-appearance: none;
background-color: #fff;
background-image: none;
border-radius: 4px;
border: 1px solid #dcdfe6;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: #606266;
.el-select__caret {
color: #c0c4cc;
font-size: 14px;
transition: transform 0.3s;
transform: rotate(180deg);
cursor: pointer;
&.is-reverse {
transform: rotate(0deg);
}
}
}
</style>
...@@ -28,7 +28,7 @@ const attractFlowLinkRouter = [ ...@@ -28,7 +28,7 @@ const attractFlowLinkRouter = [
meta: { meta: {
type: 'info' type: 'info'
}, },
component: _import('salesleads/actCodeManage/attractFlowLink', 'detail') component: _import('salesleads/actCodeManage/attractFlowLink', 'info')
}, },
{ {
path: '/ladingPageList', path: '/ladingPageList',
......
...@@ -3,32 +3,32 @@ ...@@ -3,32 +3,32 @@
*/ */
export function isvalidUsername(str) { export function isvalidUsername(str) {
const valid_map = ['admin', 'editor'] const valid_map = ['admin', 'editor'];
return valid_map.indexOf(str.trim()) >= 0 return valid_map.indexOf(str.trim()) >= 0;
} }
/* 合法uri*/ /* 合法uri*/
export function validateURL(textval) { export function validateURL(textval) {
const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/ const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;
return urlregex.test(textval) return urlregex.test(textval);
} }
/* 小写字母*/ /* 小写字母*/
export function validateLowerCase(str) { export function validateLowerCase(str) {
const reg = /^[a-z]+$/ const reg = /^[a-z]+$/;
return reg.test(str) return reg.test(str);
} }
/* 大写字母*/ /* 大写字母*/
export function validateUpperCase(str) { export function validateUpperCase(str) {
const reg = /^[A-Z]+$/ const reg = /^[A-Z]+$/;
return reg.test(str) return reg.test(str);
} }
/* 大小写字母*/ /* 大小写字母*/
export function validateAlphabets(str) { export function validateAlphabets(str) {
const reg = /^[A-Za-z]+$/ const reg = /^[A-Za-z]+$/;
return reg.test(str) return reg.test(str);
} }
/** /**
...@@ -37,7 +37,23 @@ export function validateAlphabets(str) { ...@@ -37,7 +37,23 @@ export function validateAlphabets(str) {
* @returns {boolean} * @returns {boolean}
*/ */
export function validateEmail(email) { export function validateEmail(email) {
const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email) return re.test(email);
} }
/** 表单校验滚动到第一个错误项
* @param {Object} that vue实例
* this.scrollToError(this);
*/
export const scrollToError = that => {
that.$nextTick(_ => {
const isError = document.getElementsByClassName('is-error');
isError[0].scrollIntoView({
// 滚动到指定节点
// 值有start,center,end,nearest,当前显示在视图区域中间
block: 'center',
// 值有auto、instant,smooth,缓动动画(当前是慢速的)
behavior: 'smooth'
});
});
};
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="daily-set-wrap"> <div class="daily-set-wrap">
<div class="daily-set-content border-box"> <div class="daily-set-content border-box">
<div class="salutatory-set-wrap m-t-20"> <div class="salutatory-set-wrap m-t-20">
<el-form label-width="117px" ref="form" :model="form" :rules="rules" refs="form" class="form"> <el-form label-width="117px" ref="form" :model="form" :rules="rules" class="form">
<el-form-item label="欢迎语标题" prop="title"> <el-form-item label="欢迎语标题" prop="title">
<el-input show-word-limit placeholder="请输入欢迎语标题" type="text" v-model="form.title" maxlength="20" class="w-384"></el-input> <el-input show-word-limit placeholder="请输入欢迎语标题" type="text" v-model="form.title" maxlength="20" class="w-384"></el-input>
</el-form-item> </el-form-item>
......
<template> <template>
<div class="p-20"> <div class="p-20">
<el-form label-width="100px" size="small"> <el-form label-width="100px" :model="form" size="small" :rules="rules" ref="form">
<dm-sub-title type="line">基础信息</dm-sub-title> <dm-sub-title type="line">基础信息</dm-sub-title>
<div class="section"> <div class="section">
<el-form-item label="链接类型" required> <el-form-item label="链接类型" required>
...@@ -11,15 +11,16 @@ ...@@ -11,15 +11,16 @@
<p class="tips" v-if="form.linkType == 1">仅用于在GIC系统中创建“短信模板”时直接添加引用,便于系统根据会员手机号为该引流链接带上特定会员参数,常用于通过短信的方式来促进存量会员的私域转化。</p> <p class="tips" v-if="form.linkType == 1">仅用于在GIC系统中创建“短信模板”时直接添加引用,便于系统根据会员手机号为该引流链接带上特定会员参数,常用于通过短信的方式来促进存量会员的私域转化。</p>
<p class="tips" v-else>可复制此引流链接或下载链接二维码,通过不同营销活动、渠道等引导客户添加导购企微号,转化成私域流量。</p> <p class="tips" v-else>可复制此引流链接或下载链接二维码,通过不同营销活动、渠道等引导客户添加导购企微号,转化成私域流量。</p>
</el-form-item> </el-form-item>
<el-form-item label="链接名称" required> <el-form-item label="链接名称" required prop="name">
<el-input placeholder="请输入链接名称" class="w-340" :maxlength="30" show-word-limit v-model="form.name"></el-input> <el-input placeholder="请输入链接名称" class="w-340" :maxlength="30" show-word-limit v-model="form.name"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="链接描述"> <el-form-item label="链接描述" prop="remark">
<el-input placeholder="请输入链接描述" type="textarea" class="w-340" :maxlength="100" :autosize="{ minRow: 3, maxRow: 5 }" show-word-limit v-model="form.remark"></el-input> <el-input placeholder="请输入链接描述" type="textarea" class="w-340" :maxlength="100" :autosize="{ minRow: 3, maxRow: 5 }" show-word-limit v-model="form.remark"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="链接标签" required> <el-form-item label="链接标签" required prop="memberLabelId">
<el-button plain @click="tagsDialogVisible = true"><i class="iconfont-components3 icon-cp-PlusOutlined addPic"></i>添加标签</el-button> <el-button plain v-if="!form.memberLabelName" @click="tagsDialogVisible = true"><i class="iconfont-components3 icon-cp-PlusOutlined addPic"></i>添加标签</el-button>
<dm-memberTag-group :visiable.sync="tagsDialogVisible" projectName="haobao-3"></dm-memberTag-group> <el-tag v-else closable @close="handleTagCloseTag">{{ form.memberLabelName }}</el-tag>
<!-- <dm-memberTag-group :visiable.sync="tagsDialogVisible" projectName="haobao-3" @save="saveTagPop"></dm-memberTag-group> -->
</el-form-item> </el-form-item>
</div> </div>
<dm-sub-title type="line">分配规则</dm-sub-title> <dm-sub-title type="line">分配规则</dm-sub-title>
...@@ -33,32 +34,32 @@ ...@@ -33,32 +34,32 @@
<div class="level"> <div class="level">
<div class="title m-b-20"> <div class="title m-b-20">
<span>层级一:服务门店</span> <span>层级一:服务门店</span>
<el-switch v-model="form.fw_store.open" :disabled="true"></el-switch> <el-switch v-model="form.customRuleJson.fw_store.open" :active-value="1" :inactive-value="0" :disabled="true"></el-switch>
</div> </div>
<div class="content"> <div class="content">
<el-checkbox v-model="form.fw_store.zs" :true-label="1" :false-label="0">专属导购</el-checkbox> <el-checkbox v-model="form.customRuleJson.fw_store.zs" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.fw_store.zs, form.customRuleJson.fw_store.dz, form.customRuleJson.fw_store.dy) && form.customRuleJson.fw_store.zs">专属导购</el-checkbox>
<el-checkbox v-model="form.fw_store.dz" :true-label="1" :false-label="0">店长</el-checkbox> <el-checkbox v-model="form.customRuleJson.fw_store.dz" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.fw_store.zs, form.customRuleJson.fw_store.dz, form.customRuleJson.fw_store.dy) && form.customRuleJson.fw_store.dz">店长</el-checkbox>
<el-checkbox v-model="form.fw_store.dy" :true-label="1" :false-label="0">其他导购</el-checkbox> <el-checkbox v-model="form.customRuleJson.fw_store.dy" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.fw_store.zs, form.customRuleJson.fw_store.dz, form.customRuleJson.fw_store.dy) && form.customRuleJson.fw_store.dy">其他导购</el-checkbox>
</div> </div>
</div> </div>
<div class="level"> <div class="level">
<div class="title"> <div class="title">
<span>层级二:协管门店</span> <span>层级二:协管门店</span>
<el-switch v-model="form.xg_store.open" :disabled="true"></el-switch> <el-switch v-model="form.customRuleJson.xg_store.open" :active-value="1" :inactive-value="0"></el-switch>
</div> </div>
<p class="tips margin-num">当客户在多个协管门店下都有协管导购时,随机取一个协管门店导购</p> <p class="tips margin-num">当客户在多个协管门店下都有协管导购时,随机取一个协管门店导购</p>
<div class="content"> <div class="content" v-if="form.customRuleJson.xg_store.open">
<el-checkbox v-model="form.xg_store.zs" :true-label="1" :false-label="0">协管门店导购</el-checkbox> <el-checkbox v-model="form.customRuleJson.xg_store.zs" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.xg_store.zs, form.customRuleJson.xg_store.dz, form.customRuleJson.xg_store.dy) && form.customRuleJson.xg_store.zs">协管门店导购</el-checkbox>
<el-checkbox v-model="form.xg_store.dz" :true-label="1" :false-label="0">店长</el-checkbox> <el-checkbox v-model="form.customRuleJson.xg_store.dz" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.xg_store.zs, form.customRuleJson.xg_store.dz, form.customRuleJson.xg_store.dy) && form.customRuleJson.xg_store.dz">店长</el-checkbox>
<el-checkbox v-model="form.xg_store.dy" :true-label="1" :false-label="0">其他导购</el-checkbox> <el-checkbox v-model="form.customRuleJson.xg_store.dy" :true-label="1" :false-label="0" :disabled="disabledProperty(form.customRuleJson.xg_store.zs, form.customRuleJson.xg_store.dz, form.customRuleJson.xg_store.dy) && form.customRuleJson.xg_store.dy">其他导购</el-checkbox>
</div> </div>
</div> </div>
<div class="level"> <div class="level">
<div class="title"> <div class="title">
<span>层级三:其他门店</span> <span>层级三:其他门店</span>
<el-switch v-model="form.xg_store.open" :disabled="true"></el-switch> <el-switch v-model="form.storeRuleJson.open" :active-value="1" :inactive-value="0"></el-switch>
</div> </div>
<div class="level3-1"> <div class="level3-1" v-if="form.storeRuleJson.open">
<el-radio-group v-model="form.storeRuleJson.store_type"> <el-radio-group v-model="form.storeRuleJson.store_type">
<el-radio :label="1">推荐门店</el-radio> <el-radio :label="1">推荐门店</el-radio>
<el-radio :label="2">附近门店</el-radio> <el-radio :label="2">附近门店</el-radio>
...@@ -66,68 +67,125 @@ ...@@ -66,68 +67,125 @@
<p class="tips m-t-6" v-if="form.storeRuleJson.store_type == 1">可配置最多20个门店作为推荐门店让客户自主选择要添加的门店好友</p> <p class="tips m-t-6" v-if="form.storeRuleJson.store_type == 1">可配置最多20个门店作为推荐门店让客户自主选择要添加的门店好友</p>
<p class="tips m-t-6" v-else>需客户同意授权当前定位信息,才可展示客户附近最多20家门店供客户选择,否则只能在指定门店下选择</p> <p class="tips m-t-6" v-else>需客户同意授权当前定位信息,才可展示客户附近最多20家门店供客户选择,否则只能在指定门店下选择</p>
</div> </div>
<div class="level3-2"> <div class="level3-2" v-if="form.storeRuleJson.open">
<div class="level3-2-content" v-if="form.storeRuleJson.store_type == 1"> <div class="level3-2-content" v-if="form.storeRuleJson.store_type == 1">
<el-form-item label="选择门店" required label-width="92px"> <el-form-item label="选择门店" required label-width="92px">
<el-select></el-select> <selectShop @change="handleTransferChange" />
</el-form-item> </el-form-item>
<el-checkbox v-model="form.storeRuleJson.store.dz" :true-label="1" :false-label="0">店长</el-checkbox> <el-checkbox v-model="form.storeRuleJson.store.dz" :true-label="1" :false-label="0" :disabled="disabledProperty(form.storeRuleJson.store.dz, form.storeRuleJson.store.dy) && form.storeRuleJson.store.dz">店长</el-checkbox>
<el-checkbox v-model="form.storeRuleJson.store.dy" :true-label="1" :false-label="0">导购</el-checkbox> <el-checkbox v-model="form.storeRuleJson.store.dy" :true-label="1" :false-label="0" :disabled="disabledProperty(form.storeRuleJson.store.dz, form.storeRuleJson.store.dy) && form.storeRuleJson.store.dy">导购</el-checkbox>
</div> </div>
<div class="level3-2-content" v-else> <div class="level3-2-content" v-else>
<p class="content-tips">客户同意授权当前定位信息,可在“附近门店”中自主选择要添加的门店好友</p> <p class="content-tips">客户同意授权当前定位信息,可在“附近门店”中自主选择要添加的门店好友</p>
<div class="level3-2-content-check"> <div class="level3-2-content-check">
<el-checkbox v-model="form.storeRuleJson.store.dz" :true-label="1" :false-label="0">店长</el-checkbox> <el-checkbox v-model="form.storeRuleJson.store.dz" :true-label="1" :false-label="0" :disabled="disabledProperty(form.storeRuleJson.store.dz, form.storeRuleJson.store.dy) && form.storeRuleJson.store.dz">店长</el-checkbox>
<el-checkbox v-model="form.storeRuleJson.store.dy" :true-label="1" :false-label="0">导购</el-checkbox> <el-checkbox v-model="form.storeRuleJson.store.dy" :true-label="1" :false-label="0" :disabled="disabledProperty(form.storeRuleJson.store.dz, form.storeRuleJson.store.dy) && form.storeRuleJson.store.dy">导购</el-checkbox>
</div> </div>
<p class="content-tips m-b-10">客户拒绝授权当前定位信息,可在下方指定的门店范围中(最多20家)自主选择要添加的门店好友</p> <p class="content-tips m-b-10">客户拒绝授权当前定位信息,可在下方指定的门店范围中(最多20家)自主选择要添加的门店好友</p>
<el-form-item label="选择门店" required label-width="92px"> <el-form-item label="选择门店" required label-width="92px">
<el-select></el-select> <selectShop @change="handleTransferChange" />
</el-form-item> </el-form-item>
<el-checkbox v-model="form.storeRuleJson.store.ndz" :true-label="1" :false-label="0">店长</el-checkbox> <el-checkbox v-model="form.storeRuleJson.store.ndz" :true-label="1" :false-label="0" :disabled="disabledProperty(form.storeRuleJson.store.ndz, form.storeRuleJson.store.ndy) && form.storeRuleJson.store.ndz">店长</el-checkbox>
<el-checkbox v-model="form.storeRuleJson.store.ndy" :true-label="1" :false-label="0">导购</el-checkbox> <el-checkbox v-model="form.storeRuleJson.store.ndy" :true-label="1" :false-label="0" :disabled="disabledProperty(form.storeRuleJson.store.ndz, form.storeRuleJson.store.ndy) && form.storeRuleJson.store.ndy">导购</el-checkbox>
</div> </div>
</div> </div>
<div class="level3-3"> <div class="level3-3" v-if="form.storeRuleJson.open">
<el-checkbox v-model="form.storeRuleJson.city_store.open" :true-label="1" :false-label="0">除附近门店/指定门店之外,允许客户按照省市区自由筛选商户所有门店进行添加</el-checkbox> <el-checkbox v-model="form.storeRuleJson.city_store.open" :true-label="1" :false-label="0">除附近门店/指定门店之外,允许客户按照省市区自由筛选商户所有门店进行添加</el-checkbox>
<div class="level3-3-content"> <div class="level3-3-content" v-if="form.storeRuleJson.city_store.open">
<el-checkbox v-model="form.storeRuleJson.city_store.dz" :true-label="1" :false-label="0">店长</el-checkbox> <el-checkbox v-model="form.storeRuleJson.city_store.dz" :true-label="1" :false-label="0" :disabled="disabledProperty(form.storeRuleJson.city_store.dz, form.storeRuleJson.city_store.dy) && form.storeRuleJson.city_store.dz">店长</el-checkbox>
<el-checkbox v-model="form.storeRuleJson.city_store.dy" :true-label="1" :false-label="0">导购</el-checkbox> <el-checkbox v-model="form.storeRuleJson.city_store.dy" :true-label="1" :false-label="0" :disabled="disabledProperty(form.storeRuleJson.city_store.dz, form.storeRuleJson.city_store.dy) && form.storeRuleJson.city_store.dy">导购</el-checkbox>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<dm-sub-title type="line">欢迎语设置</dm-sub-title> <dm-sub-title type="line">欢迎语设置</dm-sub-title>
<div class="section"></div> <div class="section">
<dm-sub-title type="line">欢迎语设置</dm-sub-title> <welcomeItem @getWelcomeId="getWelcomeId" :welcomeIdP="form.welcomeId"></welcomeItem>
<div class="section"></div> </div>
<dm-sub-title type="line">落地页配置</dm-sub-title>
<div class="section flex" style="margin-bottom: 40px;">
<el-form-item label="选择模板">
<div class="table">
<div class="search">
<el-input class="w-260" placeholder="请输入标题" v-model="landingPage.pageSearchText" @keyup.native="toInput" clearable @clear="getList"></el-input>
<el-button plain class="ylbtn" @click="addTemp">新建模板</el-button>
</div>
<el-table :data="landingData" height="426" :loading="landingLoading">
<el-table-column width="55">
<template slot-scope="{ row }">
<el-radio :label="row.pageId" v-model="form.pageId" @change.native="getCurrentRow(row)"> &nbsp;</el-radio>
</template>
</el-table-column>
<el-table-column prop="pageCode" label="模板ID" minWidth="148"></el-table-column>
<el-table-column prop="pageName" label="模板名称" minWidth="172" show-overflow-tooltip></el-table-column>
<el-table-column prop="pageTitle" label="页面标题" minWidth="156" show-overflow-tooltip> </el-table-column>
<el-table-column prop="guideComment" label="引导语" show-overflow-tooltip></el-table-column>
</el-table>
<el-pagination class="paginationBox" background @current-change="getList" :current-page="landingPage.pageNum" layout="prev, pager,next " :page-size="landingPage.pageSize" :total="total"></el-pagination>
</div>
</el-form-item>
<div class="preview">
<p class="previewTitle">落地页预览</p>
<previewPage :data="landingForm" />
<p class="previewBottom">此二维码只是样式预览效果,请勿直接使用</p>
</div>
</div>
<div class="footBtn">
<el-button type="primary" @click="save" :loading="btnLoading">保存</el-button>
</div>
</el-form> </el-form>
</div> </div>
</template> </template>
<script> <script>
import { guidePageList, linkAdd, linkUpdate, linkDetail } from '@/api/actCode';
import selectShop from '@/components/common/selectShop';
import welcomeItem from '@/views/salesleads/components/welcomesItem.vue';
import previewPage from '@/components/preview-page.vue';
import { _debounce } from '@/common/js/public';
import { scrollToError } from '@/utils/validate';
export default { export default {
data() { data() {
return { return {
scrollToError,
tagsDialogVisible: false, tagsDialogVisible: false,
landingPage: {
pageSearchText: '',
pageNum: 1,
pageSize: 20
},
landingLoading: false,
landingData: [],
total: 0,
landingForm: {},
isEdit: this.$route.meta.type == 'edit',
isAdd: this.$route.meta.type == 'add',
rules: {
name: { required: true, message: '请输入链接名称' },
memberLabelId: { required: true, message: '请选择链接标签' }
},
form: { form: {
linkType: 1, linkType: 1,
memberLabelId: '', memberLabelName: '测试121212-木瑾0630测试标签值50',
memberLabelId: 'fd6b44967aa647bcadfad10706244c56',
storeList: [],
name: '', name: '',
pageId: '', pageId: '',
welcomeId: '', welcomeId: '',
remark: '', remark: '',
customRuleJson: {
fw_store: { fw_store: {
open: 1, //是否开启 1是0否 open: 1, //是否开启 1是0否
zs: 1, //专属导购 zs: 1, //专属导购
dz: 1, //店长 dz: 0, //店长
dy: 1 // 其他导购 dy: 0 // 其他导购
}, },
xg_store: { xg_store: {
open: 1, open: 1,
zs: 1, zs: 1,
dz: 1, dz: 0,
dy: 1 dy: 0
}
}, },
storeRuleJson: { storeRuleJson: {
//其他门店 //其他门店
...@@ -135,28 +193,134 @@ export default { ...@@ -135,28 +193,134 @@ export default {
store_type: 1, // 1推荐门店 2附近门店, store_type: 1, // 1推荐门店 2附近门店,
store: { store: {
dz: 1, //店长 dz: 1, //店长
dy: 1, // 店员 dy: 0, // 导购
ndz: 1, // 拒绝后店长 ndz: 1, // 拒绝后店长
ndy: 1 //拒绝后店员 ndy: 0 //拒绝后导购
}, },
//省市筛选 //省市筛选
city_store: { city_store: {
open: 1, //是否开启1是0否 open: 1, //是否开启1是0否
dz: 1, //店长 dz: 1, //店长
dy: 1 //店员 dy: 0 //导购
}
} }
} }
},
wxEnterpriseId: sessionStorage.getItem('userInfos') ? JSON.parse(sessionStorage.getItem('userInfos')).wxEnterpriseId : '',
btnLoading: false
}; };
},
components: {
selectShop,
welcomeItem,
previewPage
},
mounted() {
this.getList();
document.addEventListener('visibilitychange', () => {
if (document.visibilityState == 'visible') {
this.getList();
}
});
if (this.isEdit) {
this.getDetail();
}
},
methods: {
toInput: _debounce(function(e, value) {
this.getList();
}, 500),
getDetail() {
linkDetail({ linkId: this.$route.params.id }).then(res => {
const { result } = res.data;
if (result) {
result.link.storeRuleJson = JSON.parse(result.link.storeRuleJson);
result.link.customRuleJson = JSON.parse(result.link.customRuleJson);
this.form = result.link;
}
console.log(result);
});
},
saveTagPop(data) {
const { tagItemId, tagItemName } = data;
this.form.memberLabelName = tagItemName;
this.form.memberLabelId = tagItemId;
},
handleTagCloseTag() {
this.form.memberLabelName = '';
this.form.memberLabelId = '';
},
handleTransferChange(val) {
console.log(val);
},
getWelcomeId(e) {
this.form.welcomeId = e;
},
getList() {
this.landingLoading = true;
guidePageList(this.landingPage)
.then(res => {
const { result, totalCount } = res.data.result;
if (result) {
this.total = totalCount;
this.landingData = result;
this.landingForm = result ? result[0] : {};
this.form.pageId = result ? result[0].pageId : '';
}
})
.finally(_ => {
this.landingLoading = false;
});
},
getCurrentRow(row) {
console.log(row);
this.landingForm = row;
},
addTemp() {
this.$router.push('/ladingPageAdd');
},
disabledProperty(a, b, c, d) {
const args = [...arguments];
return args.filter(i => i == 1).length <= 1;
},
save() {
const data = JSON.parse(JSON.stringify(this.form));
data.customRuleJson = JSON.stringify(data.customRuleJson);
data.storeRuleJson = JSON.stringify(data.storeRuleJson);
data.wxEnterpriseId = this.wxEnterpriseId;
this.$refs.form.validate(val => {
if (!val) {
this.scrollToError(this);
return;
}
this.btnLoading = true;
if (this.isAdd) {
linkAdd(data)
.then(res => {
console.log(res);
})
.finally(_ => {
this.btnLoading = false;
});
} else {
linkUpdate(data)
.then(res => {
console.log(res);
})
.finally(_ => {
this.btnLoading = false;
});
}
});
}
} }
}; };
</script> </script>
<style lang="scss" scoped> <style lang="less" scoped>
.section { .section {
padding: 20px 0 40px 0; padding: 20px 0 40px 0;
.level { .level {
width: 1194px; width: 100%;
min-height: 94px; min-height: 94px;
background: #f7f8fa; background: #f7f8fa;
border-radius: 2px; border-radius: 2px;
...@@ -185,9 +349,9 @@ export default { ...@@ -185,9 +349,9 @@ export default {
margin: 16px 0 16px 56px; margin: 16px 0 16px 56px;
} }
.level3-2 { .level3-2 {
width: 1106px; width: calc(100% - 56px);
margin-left: 56px; margin-left: 56px;
border-bottom: 1px solid #dcdfe6; border-bottom: 1px dashed #dcdfe6;
padding-bottom: 16px; padding-bottom: 16px;
.level3-2-content { .level3-2-content {
margin-left: 20px; margin-left: 20px;
...@@ -211,6 +375,10 @@ export default { ...@@ -211,6 +375,10 @@ export default {
margin-top: 12px; margin-top: 12px;
} }
} }
.flex {
display: flex;
justify-content: flex-start;
}
.tips-info { .tips-info {
font-size: 12px; font-size: 12px;
color: #909399; color: #909399;
...@@ -225,4 +393,58 @@ export default { ...@@ -225,4 +393,58 @@ export default {
display: inline-block; display: inline-block;
} }
} }
.table {
width: 720px;
height: 560px;
border: 1px solid #dcdfe6;
padding: 12px;
position: relative;
box-sizing: border-box;
.search {
display: flex;
justify-content: space-between;
margin-bottom: 12px;
}
.paginationBox {
float: right;
}
}
.preview {
display: flex;
flex-direction: column;
align-items: center;
margin-left: 40px;
/deep/ .pageTitle {
position: absolute !important;
top: 44px !important;
}
.previewTitle {
font-weight: 500;
color: #303133;
line-height: 20px;
font-size: 14px;
width: 70px;
text-align: center;
margin-bottom: 20px;
}
.previewBottom {
font-size: 12px;
text-align: center;
width: 228px;
color: #909399;
line-height: 17px;
}
}
.footBtn {
width: 100%;
height: 56px;
background: #ffffff;
box-shadow: 1px -2px 8px 0px rgba(220, 223, 230, 0.6);
position: fixed;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
z-index: 100;
}
</style> </style>
...@@ -255,7 +255,7 @@ export default { ...@@ -255,7 +255,7 @@ export default {
console.log(row); console.log(row);
}, },
goDetail(row) { goDetail(row) {
console.log(row); this.$router.push(`attractFlowLinkInfo/${row.linkId}`);
}, },
goLink(row) { goLink(row) {
this.linkUrl = row.linkUrl; this.linkUrl = row.linkUrl;
...@@ -265,6 +265,7 @@ export default { ...@@ -265,6 +265,7 @@ export default {
}, },
goEdit(row) { goEdit(row) {
console.log(row); console.log(row);
this.$router.push(`attractFlowLinkEdit/${row.linkId}`);
} }
} }
}; };
......
<template>
<div class="app-detail-wrap p-20" v-loading="loading">
<div class="flex p-b-40">
<vue-qr id="qrImg" :text="link.linkUrl" :size="200" :margin="5" v-if="link.linkType == 2"></vue-qr>
<div class="m-l-30">
<el-descriptions :title="link.name">
<el-descriptions-item label="ID">{{ link.linkId }}</el-descriptions-item>
<el-descriptions-item label="code">{{ link.linkCode }}</el-descriptions-item>
<el-descriptions-item label="链接类型">
<el-tag size="mini">{{ link.linkType == 1 ? '专用链接' : '通用链接' }}</el-tag></el-descriptions-item
>
<el-descriptions-item label="创建人">{{ link.creatorName }}</el-descriptions-item>
<el-descriptions-item label="创建时间">{{ link.createTime }}</el-descriptions-item>
<el-descriptions-item label="链接标签">
<el-tag size="mini">{{ link.memberLabelName }}</el-tag>
</el-descriptions-item>
<el-descriptions-item label="链接描述">{{ link.remark }}</el-descriptions-item>
</el-descriptions>
<div>
<el-button icon="el-icon-download" plain @click="downloadQR">下载二维码</el-button>
<el-button v-if="link.linkType == 2" v-clipboard:text="link.linkUrl" plain>复制链接</el-button>
<el-button v-if="link.linkType == 2" plain @click="goEdit">修改</el-button>
</div>
</div>
</div>
<div class="fixed-tab" v-if="scrollTop > 300">
<el-tabs v-model="activeName" type="card">
<el-tab-pane label="详情信息" name="first"> <div></div> </el-tab-pane>
<el-tab-pane label="数据统计" name="second">
<div></div>
</el-tab-pane>
</el-tabs>
</div>
<el-tabs v-model="activeName" type="card">
<el-tab-pane label="详情信息" name="first">
<act-code-detail-info type="actLink" :enterprise-id="link.enterpriseId" :welcome-id="link.welcomeId"></act-code-detail-info>
<dm-sub-title type="line">落地页配置</dm-sub-title>
<div>
<div class="flex">
<div class="welcome-left-view">
<el-descriptions :column="1">
<el-descriptions-item label="页面标题">{{ page.pageTitle }}</el-descriptions-item>
<el-descriptions-item label="商户名称">{{ page.merchantName }}</el-descriptions-item>
<el-descriptions-item label="商户电话">{{ page.merchantPhoneNumber }}</el-descriptions-item>
<el-descriptions-item label="商户LOGO">
<img :src="page.merchantLogo" class="merchantLogo" />
</el-descriptions-item>
<el-descriptions-item label="引导语">{{ page.linkCode }}</el-descriptions-item>
</el-descriptions>
</div>
<div class="preview">
<p class="previewTitle">落地页预览</p>
<previewPage :data="page" />
<p class="previewBottom">此二维码只是样式预览效果,请勿直接使用</p>
</div>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="数据统计" name="second"> </el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import { linkDetail } from '@/api/actCode';
import actCodeDetailInfo from '../../components/actCodeDetailInfo.vue';
import previewPage from '@/components/preview-page.vue';
import { _throttle } from '@/common/js/public';
import VueQr from 'vue-qr';
export default {
name: 'actCodeDetail',
components: { actCodeDetailInfo, previewPage, VueQr },
props: {
hmId: {
type: String,
default: ''
}
},
data() {
return {
loading: false,
activeName: 'first',
codeStatusLis: [
{ value: '', style: '' },
{ value: '正常', style: 'success' },
{ value: '已作废', style: 'danger' },
{ value: '待生效', style: 'info' },
{ value: '正常-今日已达上限', style: 'warning' }
],
link: {
linkId: 419648718594129960,
customRuleJson: '{"fw_store":{"open":1,"zs":1,"dz":1,"dy":1},"xg_store":{"open":1,"zs":1,"dz":1,"dy":0}}',
linkType: 2,
memberLabelId: 'fd6b44967aa647bcadfad10706244c56',
name: '活码链接-711',
pageId: 418460224953786370,
remark: '说明',
linkUrl: 'www.baidu.com',
storeList: [
{
storeId: 'ff80808181e0effb0181e26a674c000e',
storeName: '测试有赞商城',
storeCode: '991001'
},
{
storeId: 'ff80808181e0effb0181e128d0b70000',
storeName: '达达店铺',
storeCode: 'DADA'
}
],
storeRuleJson: '{"store_type":2,"open":0,"store":{"dz":0,"dy":1,"ndz":0,"ndy":1}, "city_store":{"open":1,"dz":1,"dy":1}}',
welcomeId: '025867b7a01541979617229a4aca9551',
enterpriseId: 'ff8080815dacd3a2015dacd3ef5c0000',
wxEnterpriseId: 'ca66a01b79474c40b3e7c7f93daf1a3b'
},
page: {},
welcome: {},
scrollTop: 0
};
},
methods: {
downloadQR() {
const qrcode = document.getElementById('qrImg');
console.log(qrcode);
let img = qrcode.getElementsByTagName('img')[0];
let link = document.createElement('a');
let url = img.getAttribute('src');
link.setAttribute('href', url);
link.setAttribute('download', `${this.link.linkId}_${this.link.name}.png`);
link.click();
},
goEdit() {
this.$router.push(`attractFlowLinkEdit/${this.link.linkId}`);
},
async getDetail() {
this.loading = true;
linkDetail({ linkId: this.$route.params.id })
.then(res => {
const { result } = res.data;
if (result) {
const { link, page, welcome } = result;
this.link = link;
this.page = page;
this.welcome = welcome;
}
})
.catch(function(error) {
this.$message.error({
duration: 1000,
message: error.message
});
})
.finally(_ => {
this.loading = false;
});
},
scrollMethod: _throttle(function() {
// 节流会不自然 左右不滑动
this.scrollTop = document.getElementById('hb-layout-pager-one').scrollTop;
}, 100)
},
mounted() {
this.getDetail();
document.getElementById('hb-layout-pager-one').addEventListener('scroll', this.scrollMethod);
},
destroyed() {
document.getElementById('hb-layout-pager-one').removeEventListener('scroll', this.scrollMethod);
}
};
</script>
<style lang="less" scoped>
.app-detail-wrap {
// height: 100%;
background: #fff;
.p-b-40 {
padding-bottom: 40px;
}
}
.img-200 {
width: 200px;
height: 200px;
border-radius: 8px;
padding-right: 30px;
}
.height-22 {
height: 22px;
}
.text-ellipsis-white {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.fixed-tab {
position: absolute;
top: 80px;
z-index: 1;
padding-bottom: 0;
height: 40px;
background: white;
width: 100%;
// left: 50px;
}
.welcome-left-view {
width: 639px;
// margin-right: 120px;
}
.merchantLogo {
width: 120px;
height: 120px;
background: #ffffff;
border-radius: 2px;
border: 1px solid #dcdfe6;
}
.preview {
display: flex;
flex-direction: column;
align-items: center;
margin-left: 40px;
/deep/ .pageTitle {
position: absolute !important;
top: 44px !important;
}
.previewTitle {
font-weight: 500;
color: #303133;
line-height: 20px;
font-size: 14px;
width: 70px;
text-align: center;
margin-bottom: 20px;
}
.previewBottom {
font-size: 12px;
text-align: center;
width: 228px;
color: #909399;
line-height: 17px;
}
}
</style>
<template> <template>
<div> <div>
<div class="daily-set-content"> <div class="daily-set-content">
<el-form label-width="100px" ref="form" :model="form" :rules="rules" refs="form" class="form"> <el-form label-width="100px" ref="form" :model="form" :rules="rules" class="form">
<el-form-item label="模板名称" prop="pageName" required> <el-form-item label="模板名称" prop="pageName" required>
<el-input show-word-limit placeholder="请输入模板名称" type="text" v-model="form.pageName" maxlength="20" class="w-340"></el-input> <el-input show-word-limit placeholder="请输入模板名称" type="text" v-model="form.pageName" maxlength="20" class="w-340"></el-input>
</el-form-item> </el-form-item>
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
import singleUpload from '@/components/single-upload.vue'; import singleUpload from '@/components/single-upload.vue';
import previewPage from '@/components/preview-page.vue'; import previewPage from '@/components/preview-page.vue';
import { guidePageDetail, guidePageEdit, guidePageSave, wxEnterpriseList } from '@/api/actCode'; import { guidePageDetail, guidePageEdit, guidePageSave, wxEnterpriseList } from '@/api/actCode';
export default { export default {
components: { components: {
previewPage, previewPage,
...@@ -132,11 +133,14 @@ export default { ...@@ -132,11 +133,14 @@ export default {
}); });
}, },
save() { save() {
this.$refs.form.validate(val => {
if (!val) return;
if (this.isEdit) { if (this.isEdit) {
this.guidePageEdit(); this.guidePageEdit();
} else { } else {
this.guidePageSave(); this.guidePageSave();
} }
});
} }
} }
}; };
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="daily-set-content"> <div class="daily-set-content">
<div class="flex flex-space-between m-b-16"> <div class="flex flex-space-between m-b-16">
<div class="flex flex-align-center"> <div class="flex flex-align-center">
<el-input placeholder="请输入模板ID/名称、创建人" class="w-260" v-model="form.pageSearchText" @keyup.native="value => toInput(value, searchInput)" clearable @clear="getList"> <i slot="prefix" class="el-input__icon el-icon-search"></i> </el-input> <el-input placeholder="请输入模板ID/名称、创建人" class="w-260" v-model="form.pageSearchText" @keyup.native="toInput" clearable @clear="getList"> <i slot="prefix" class="el-input__icon el-icon-search"></i> </el-input>
<span style="font-size:14px;" class="m-l-10">模板创建时间:</span> <span style="font-size:14px;" class="m-l-10">模板创建时间:</span>
<el-date-picker class="m-l-10 w-256" v-model="form.dateRange" @change="getList" type="daterange" :value-format="'yyyy-MM-dd'" clearable @clear="getList" range-separator="~" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker> <el-date-picker class="m-l-10 w-256" v-model="form.dateRange" @change="getList" type="daterange" :value-format="'yyyy-MM-dd'" clearable @clear="getList" range-separator="~" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
</div> </div>
......
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
</div> </div>
</template> </template>
<script> <script>
import actCodeDetailInfo from './actCodeDetailInfo.vue'; import actCodeDetailInfo from '../../components/actCodeDetailInfo.vue';
import actCodeDetailStatistics from './actCodeDetailStatistics.vue'; import actCodeDetailStatistics from './actCodeDetailStatistics.vue';
import { _throttle } from '@/common/js/public'; import { _throttle } from '@/common/js/public';
import { getRequest, deleteRequest } from '@/api/api'; import { getRequest, deleteRequest } from '@/api/api';
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<preview-welcome :welcomeContent="welcomeData.welcomeContent" :mediaList="welcomeData.welcomeMediaList"></preview-welcome> <preview-welcome :welcomeContent="welcomeData.welcomeContent" :mediaList="welcomeData.welcomeMediaList"></preview-welcome>
</div> </div>
</div> </div>
<div> <div v-if="type == 'actCode'">
<div class="title flex"> <div class="title flex">
<div class="blue-block"></div> <div class="blue-block"></div>
<span class="font-w-500 color-303133">使用成员</span> <span class="font-w-500 color-303133">使用成员</span>
...@@ -89,6 +89,10 @@ export default { ...@@ -89,6 +89,10 @@ export default {
hmId: { hmId: {
type: String, type: String,
default: '' default: ''
},
type: {
type: String,
default: 'actCode'
} }
}, },
data() { data() {
...@@ -183,8 +187,10 @@ export default { ...@@ -183,8 +187,10 @@ export default {
} }
}, },
mounted() { mounted() {
let that = this; if (this.type == 'actCode') {
that.getUseTableList(); this.getUseTableList();
}
this.getwelcomeInfo();
}, },
watch: { watch: {
welcomeId: function(newData, oldData) { welcomeId: function(newData, oldData) {
......
...@@ -481,6 +481,9 @@ input:focus { ...@@ -481,6 +481,9 @@ input:focus {
.m-l-16 { .m-l-16 {
margin-left: 16px; margin-left: 16px;
} }
.m-l-30 {
margin-left: 30px;
}
.m-t-6{ .m-t-6{
margin-top: 6px; margin-top: 6px;
} }
......
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