Commit e38509ec by chenxin

fix: 卡券新建;layout调整

parent 893c1a0b
...@@ -48,5 +48,6 @@ ...@@ -48,5 +48,6 @@
<script src="//web-1251519181.file.myqcloud.com/components/preview-img.1.0.3.js"></script><!-- 图片预览 --> <script src="//web-1251519181.file.myqcloud.com/components/preview-img.1.0.3.js"></script><!-- 图片预览 -->
<script src="//web-1251519181.file.myqcloud.com/components/delete.1.1.4.js"></script><!-- 删除轻弹窗 --> <script src="//web-1251519181.file.myqcloud.com/components/delete.1.1.4.js"></script><!-- 删除轻弹窗 -->
<script src="//web-1251519181.file.myqcloud.com/components/input-number.1.0.10.js"></script><!-- 输入框 --> <script src="//web-1251519181.file.myqcloud.com/components/input-number.1.0.10.js"></script><!-- 输入框 -->
<script src="//web-1251519181.file.myqcloud.com/components/acc-group-select.1.0.3.js"></script><!-- 账号分组组件 -->
</body> </body>
</html> </html>
...@@ -2,18 +2,16 @@ ...@@ -2,18 +2,16 @@
* 全局都会使用到的接口 * 全局都会使用到的接口
*/ */
import getFetch from './get-fetch.js'; import getFetch from './get-fetch.js';
import { commonPrefix, marketPrefix } from '@/config'; import { commonPrefix, marketPrefix, welfarePrefix } from '@/config';
// 公共接口 // 公共接口
let common = { let common = {
loginUserMenu: '/login-user-menu', // 获取用户信息 loginUserMenu: '/login-user-menu', // 获取用户信息
loginUserMenuOfApp: '/login-user-menu-of-app', // 根据appCode获取左侧信息 loginUserMenuOfApp: '/login-user-menu-of-app', // 根据appCode获取左侧信息
getSubappList: { };
// 获取域列表
url: '/{moduleCode}/area-list', let o2 = {
method: 'get', getSubappList: '/area/member-cards', // 获取域列表
rest: true,
},
}; };
// other // other
...@@ -26,10 +24,11 @@ let other = { ...@@ -26,10 +24,11 @@ let other = {
getMallShopList: '/outer/all-mall-shop', // 获取微商城店铺数据 没有入参 getMallShopList: '/outer/all-mall-shop', // 获取微商城店铺数据 没有入参
activityList: '/activity/list-marketing-page', // 数据对话分页列表 activityList: '/activity/list-marketing-page', // 数据对话分页列表
getActivityInfo: '/activity/get-marketing-activity', // 获取数据对话详情 getActivityInfo: '/activity/get-marketing-activity', // 获取数据对话详情
uploadUrl: marketPrefix + '/upload/upload-image' // 默认上传图片接口 uploadUrl: '/upload/upload-image' // 默认上传图片接口
}; };
o2 = getFetch(o2, welfarePrefix);
common = getFetch(common, commonPrefix); common = getFetch(common, commonPrefix);
other = getFetch(other, marketPrefix); other = getFetch(other, marketPrefix);
export default { ...common, ...other }; export default { ...common, ...other, ...o2 };
...@@ -8,136 +8,136 @@ import config, { marketPrefix } from '@/config'; ...@@ -8,136 +8,136 @@ import config, { marketPrefix } from '@/config';
// 卡券相关接口 // 卡券相关接口
let card = { let card = {
cardList: '/coupon-gic/gic-coupon-page', // 卡券列表 cardList: '/coupon-gic/gic-coupon-page', // 卡券列表 TODO:
addCard: { addCard: {
// 新增卡券 // 新增卡券
url: '/coupon-gic/save-gic-coupon', url: '/coupon/save-coupon',
method: 'post', method: 'post',
useFormData: true, useFormData: true,
}, },
updateCard: { updateCard: {
// 修改卡券 // 修改卡券 TODO:
url: '/coupon-gic/update-gic-coupon', url: '/coupon-gic/update-gic-coupon',
method: 'post', method: 'post',
useFormData: true, useFormData: true,
}, },
copyCard: '/coupon-gic/copy-gic-coupon', // 拷贝卡券 copyCard: '/coupon-gic/copy-gic-coupon', // 拷贝卡券 TODO:
cardInfo: '/coupon-gic/get-gic-coupon-detail', // 卡券详情 cardInfo: '/coupon-gic/get-gic-coupon-detail', // 卡券详情 TODO:
updateCardStock: '/coupon-gic/update-gic-coupon-stock', // 修改库存 updateCardStock: '/coupon-gic/update-gic-coupon-stock', // 修改库存 TODO:
deleteCard: '/coupon-gic/delete-gic-coupon', // 删除卡券 deleteCard: '/coupon-gic/delete-gic-coupon', // 删除卡券 TODO:
giveLogList: '/coupon-gic/gic-coupon-give-log-page', // 卡券转赠记录 giveLogList: '/coupon-gic/gic-coupon-give-log-page', // 卡券转赠记录 TODO:
groupSendAdd: { groupSendAdd: {
// 新建投放 // 新建投放 TODO:
url: '/coupon-gic/coupon-puton', url: '/coupon-gic/coupon-puton',
method: 'post', method: 'post',
useFormData: true, useFormData: true,
}, },
groupSendList: '/coupon-gic/coupon-plan-page', // 卡券投放列表 groupSendList: '/coupon-gic/coupon-plan-page', // 卡券投放列表 TODO:
groupSendInfo: '/coupon-gic/coupon-puton-detail', // 卡券投放详情 groupSendInfo: '/coupon-gic/coupon-puton-detail', // 卡券投放详情 TODO:
groupSendInfoLog: '/coupon-gic/coupon-puton-log-page', // 卡券投放记录 groupSendInfoLog: '/coupon-gic/coupon-puton-log-page', // 卡券投放记录 TODO:
couponPutonFailLogList: '/coupon-gic/coupon-puton-fail-log-page', // 卡券投放失败详情 couponPutonFailLogList: '/coupon-gic/coupon-puton-fail-log-page', // 卡券投放失败详情 TODO:
stopGroupSend: '/coupon-gic/stop-coupon-puton-timed-task', // 禁用投放 stopGroupSend: '/coupon-gic/stop-coupon-puton-timed-task', // 禁用投放 TODO:
codeErrorList: '/gic-coupon-code-error-page', // 查询导入券券码错误列表 codeErrorList: '/gic-coupon-code-error-page', // 查询导入券券码错误列表 TODO:
gicCardListByName: '/coupon-gic/list-coupon-names', // 根据name模糊查询卡券列表 gicCardListByName: '/coupon-gic/list-coupon-names', // 根据name模糊查询卡券列表 TODO:
checkDemoCode: { checkDemoCode: {
// 根据demo code // 根据demo code TODO:
url: '/coupon-gic/check-demo-code', url: '/coupon-gic/check-demo-code',
alertError: false alertError: false
}, },
cardDestoryList: '/destroy-plugin/page-destroy-plan', // 卡券销毁分页列表 cardDestoryList: '/destroy-plugin/page-destroy-plan', // 卡券销毁分页列表 TODO:
exportDestroyLogExcel: { exportDestroyLogExcel: {
// 卡券销毁记录导出 // 卡券销毁记录导出 TODO:
url: '/export-destroy-log-excel', url: '/export-destroy-log-excel',
method: 'post', method: 'post',
export: true, export: true,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}, },
saveCoupDestoryPlan: { saveCoupDestoryPlan: {
// 保存卡券销毁 // 保存卡券销毁 TODO:
url: '/destroy-plugin/save-destroy-plan', url: '/destroy-plugin/save-destroy-plan',
method: 'post', method: 'post',
useFormData: true, useFormData: true,
}, },
couponlogList: '/coupon-gic/coupon-log-page', // 会员领取记录 couponlogList: '/coupon-gic/coupon-log-page', // 会员领取记录 TODO:
exportCoupReceivedLog: { exportCoupReceivedLog: {
// 导出会员领取记录 // 导出会员领取记录 TODO:
url: '/export-coup-received-log-excel', url: '/export-coup-received-log-excel',
method: 'post', method: 'post',
export: true, export: true,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}, },
exportCoupGiveLog: { exportCoupGiveLog: {
// 导出转赠记录 // 导出转赠记录 TODO:
url: '/export-gic-coupon-give-log-excel', url: '/export-gic-coupon-give-log-excel',
method: 'post', method: 'post',
export: true, export: true,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}, },
exportCouponPutonLog: { exportCouponPutonLog: {
// 导出卡券投放详情 // 导出卡券投放详情 TODO:
url: '/export-coupon-puton-log-excel', url: '/export-coupon-puton-log-excel',
method: 'post', method: 'post',
export: true, export: true,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}, },
couponConsumeOrder: '/coupon-gic/coupon-consume-order', // 核销 - 订单信息 couponConsumeOrder: '/coupon-gic/coupon-consume-order', // 核销 - 订单信息 TODO:
couponConsume: '/coupon-gic/coupon-consume', // 核销 - 核销 couponConsume: '/coupon-gic/coupon-consume', // 核销 - 核销 TODO:
couponDestroy: '/coupon-gic/coupon-destroy', // 销毁 couponDestroy: '/coupon-gic/coupon-destroy', // 销毁 TODO:
}; };
// 卡券同步库存 // 卡券同步库存
let syncStock = { let syncStock = {
getCouponStockInfo: '/coupon-gic/get-coupon-stock-info', // 获取卡券同步信息 getCouponStockInfo: '/coupon-gic/get-coupon-stock-info', // 获取卡券同步信息 TODO:
returnStock: '/coupon-gic/return-welfare-coupon', // 卡券返还 returnStock: '/coupon-gic/return-welfare-coupon', // 卡券返还 TODO:
syncStock: '/coupon-gic/syn-welfare-coupon', // 卡券同步库存 syncStock: '/coupon-gic/syn-welfare-coupon', // 卡券同步库存 TODO:
getWelfareStock: '/coupon-gic/get-welfare-stock', // 获取福利库存 getWelfareStock: '/coupon-gic/get-welfare-stock', // 获取福利库存 TODO:
getSyncWelfareList: '/coupon-gic/syn-welfare-coupon-page', // 卡券同步记录列表 getSyncWelfareList: '/coupon-gic/syn-welfare-coupon-page', // 卡券同步记录列表 TODO:
}; };
// 卡券展架 // 卡券展架
let shelf = { let shelf = {
saveShelf: { saveShelf: {
// 保存(新增、更新) // 保存(新增、更新) TODO:
url: '/coupon-gic/save-shelf', url: '/coupon-gic/save-shelf',
method: 'post', method: 'post',
useFormData: true, useFormData: true,
}, },
getShelfList: '/coupon-gic/list-shelf-page', // 获取展架列表 getShelfList: '/coupon-gic/list-shelf-page', // 获取展架列表 TODO:
getShelfInfo: '/coupon-gic/shelf-detail', // 获取展架详情 getShelfInfo: '/coupon-gic/shelf-detail', // 获取展架详情 TODO:
delShelf: '/coupon-gic/delete-shelf', // 删除某个展架 delShelf: '/coupon-gic/delete-shelf', // 删除某个展架 TODO:
getShelfCoupon: '/coupon-gic/list-shelf-coupon', // 获取展架使用的卡券 getShelfCoupon: '/coupon-gic/list-shelf-coupon', // 获取展架使用的卡券 TODO:
}; };
// 卡券包 // 卡券包
let packages = { let packages = {
savePackages: { savePackages: {
// 新增、编辑卡券包 /coupon-package/save-package /coupon-package/edit-package // 新增、编辑卡券包 /coupon-package/save-package /coupon-package/edit-package TODO:
url: '/coupon-package/{type}-package', // edit add url: '/coupon-package/{type}-package', // edit add
method: 'post', method: 'post',
useFormData: true, useFormData: true,
rest: true rest: true
}, },
pageCouponPackage: '/coupon-package/page-coupon-package', // 获取卡券包列表 pageCouponPackage: '/coupon-package/page-coupon-package', // 获取卡券包列表 TODO:
pagePackageLog: '/coupon-package/page-package-log', // 卡券包领取记录 pagePackageLog: '/coupon-package/page-package-log', // 卡券包领取记录 TODO:
packageCouponReceiveLog: '/coupon-package/package-coupon-receive-log', // 卡券领取记录详情 packageCouponReceiveLog: '/coupon-package/package-coupon-receive-log', // 卡券领取记录详情 TODO:
getPackageDetail: '/coupon-package/get-package-detail', // 获取卡券包详情 getPackageDetail: '/coupon-package/get-package-detail', // 获取卡券包详情 TODO:
deletePackage: '/coupon-package/delete-package', // 删除某个卡券包 deletePackage: '/coupon-package/delete-package', // 删除某个卡券包 TODO:
optPackageStock: '/coupon-package/opt-package-stock', // 调整卡券包库存 optPackageStock: '/coupon-package/opt-package-stock', // 调整卡券包库存 TODO:
}; };
// 其他接口 // 其他接口
let other = { let other = {
auditList: '/coupon/audit-log-page', // 审核记录 auditList: '/coupon/audit-log-page', // 审核记录 TODO:
// 子应用相关配置↓ // 子应用相关配置↓
auditSettingInfo: '/coupon/audit-setting-info', // 子应用审核配置 auditSettingInfo: '/coupon/audit-setting-info', // 子应用审核配置 TODO:
auditSettingSave: { auditSettingSave: {
// 子应用保存更新 // 子应用保存更新 TODO:
url: '/coupon/audit-setting', url: '/coupon/audit-setting',
method: 'post', method: 'post',
useFormData: true useFormData: true
}, },
getCouponSendLogList: '/coupon-gic/coupon-send-log', // 卡券发放成功记录 getCouponSendLogList: '/coupon-gic/coupon-send-log', // 卡券发放成功记录 TODO:
getMarketAppcodes: '/market/market-appcodes', // 来源模块codeList getMarketAppcodes: '/market/market-appcodes', // 来源模块codeList TODO:
getCouponSendFailLogList: '/coupon-gic/coupon-send-fail-log', // 卡券发放失败记录 getCouponSendFailLogList: '/coupon-gic/coupon-send-fail-log', // 卡券发放失败记录 TODO:
}; };
card = getFetch(card, marketPrefix); card = getFetch(card, marketPrefix);
...@@ -149,8 +149,8 @@ other = getFetch(other, marketPrefix); ...@@ -149,8 +149,8 @@ other = getFetch(other, marketPrefix);
export default { ...card, ...other, ...syncStock, ...shelf, ...packages }; export default { ...card, ...other, ...syncStock, ...shelf, ...packages };
export const downloadCouponCSV = config.api + marketPrefix + '/download-code-csv-template'; // 下载导入GIC券号csv示例文件 export const downloadCouponCSV = config.api + marketPrefix + '/download-code-csv-template'; // 下载导入GIC券号csv示例文件 TODO:
export const importCode = config.api + marketPrefix + '/import-gic-custom-code'; // 导入券码 export const importCode = config.api + marketPrefix + '/import-gic-custom-code'; // 导入券码 TODO:
export const importDestoryCode = marketPrefix + '/destroy-plugin/import-destroy-code'; // 上传销毁code列表 export const importDestoryCode = marketPrefix + '/destroy-plugin/import-destroy-code'; // 上传销毁code列表 TODO:
export const downloadDestroyCodeTemplate = config.api + marketPrefix + '/destroy-plugin/download-destroy-code-template'; // 下载销毁模板示例 export const downloadDestroyCodeTemplate = config.api + marketPrefix + '/destroy-plugin/download-destroy-code-template'; // 下载销毁模板示例 TODO:
...@@ -100,35 +100,6 @@ body .damo-goods-selector{ ...@@ -100,35 +100,6 @@ body .damo-goods-selector{
} }
// 福利item的百分比
.wf-content {
display: flex;
> * {
overflow: hidden;
}
.it1 {
flex: 33;
}
.it2 {
flex: 17;
}
.it3 {
flex: 12.6;
}
.it4 {
flex: 24;
}
.it5 {
flex: 12.4;
}
[class^=it] {
> .el-row {
width: 100%;
margin: 0 auto !important;
}
}
}
// 上下结构 // 上下结构
.main-content { .main-content {
......
...@@ -25,9 +25,9 @@ ...@@ -25,9 +25,9 @@
</template> </template>
<script> <script>
import api from '@/api/activity'; import commonApi from '@/api/common';
import { formatDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
const { saveActivity, getActivityInfo } = api; const { saveActivity, getActivityInfo } = commonApi;
const defaultRuleform = { const defaultRuleform = {
name: '', name: '',
beginDate: '', beginDate: '',
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
</template> </template>
<script> <script>
import addActivityDialog from '@/components/activity-select/index.vue'; import addActivityDialog from './dialog.vue';
import commonApi from '@/api/common'; import commonApi from '@/api/common';
const { activityList, getActivityInfo } = commonApi; const { activityList, getActivityInfo } = commonApi;
export default { export default {
......
<template> <template>
<div>
<el-menu :default-active="activeIndex" @select="handleSelect" ref="asideMenu"> <el-menu :default-active="activeIndex" @select="handleSelect" ref="asideMenu">
<template v-for="el in menu"> <template v-for="el in menu">
<!-- 有子菜单 --> <!-- 有子菜单 -->
...@@ -27,7 +26,6 @@ ...@@ -27,7 +26,6 @@
</el-menu-item> </el-menu-item>
</template> </template>
</el-menu> </el-menu>
</div>
</template> </template>
<script> <script>
...@@ -134,15 +132,16 @@ export default { ...@@ -134,15 +132,16 @@ export default {
const mapping = { const mapping = {
'gic-card': 'w-gic-card', 'gic-card': 'w-gic-card',
'card-package': 'w-card-package', 'card-package': 'w-card-package',
'w-card-destory': 'w-card-destory'
}; };
const currentRoute = this.routePath.find(v => v.menuCode == mapping[project]).children; const currentRoute = this.routePath.find(v => v.menuCode == mapping[project]);
// 拿到菜单数据后,先把多维数组转为一维数组 return currentRoute ? currentRoute.children : [];
return currentRoute || [];
} }
}, },
watch: { watch: {
'menu': { 'menu': {
handler() { handler() {
// 拿到菜单数据后,先把多维数组转为一维数组
this.flat(this.menu.slice()); this.flat(this.menu.slice());
this.getActiveIndex(); this.getActiveIndex();
}, },
......
<template> <template>
<div> <div>
<dm-layout is-app :first-menu-code="menuCode" :class="{ 'hide-left': project == '' || project == 'index' }"> <dm-layout is-app :first-menu-code="menuCode" :force-show-aside="showLeft" :class="{ 'hide-left': !showLeft }">
<!-- maside插槽 替换asidemenu title --> <!-- maside插槽 替换asidemenu title -->
<div slot="maside"> <div slot="maside">
<!-- :hide-timeout="100000" --> <!-- :hide-timeout="100000" -->
...@@ -24,7 +24,8 @@ ...@@ -24,7 +24,8 @@
</div> </div>
<!-- bread插槽 --> <!-- bread插槽 -->
<div slot="bread"> <div slot="bread">
<app-info force-init ref="appInfo" /> <!-- <app-info force-init ref="appInfo" /> -->
<app-info :code="moduleCode" />
</div> </div>
</dm-layout> </dm-layout>
<el-dialog :visible="noAreaWarnVisible" append-to-body width="500px" :close-on-press-escape="false" :close-on-click-modal="true" :show-close="false" lock-scroll> <el-dialog :visible="noAreaWarnVisible" append-to-body width="500px" :close-on-press-escape="false" :close-on-click-modal="true" :show-close="false" lock-scroll>
...@@ -92,35 +93,10 @@ export default { ...@@ -92,35 +93,10 @@ export default {
// this.$store.commit('setDefaultSubAppId', areaId); // this.$store.commit('setDefaultSubAppId', areaId);
// }, // },
async init() { async init() {
return;
const moduleCode = this.moduleCode; const moduleCode = this.moduleCode;
// let appInfo = {};
// try {
// appInfo = await getAppInfo({ appCode: moduleCode });
// this.$refs.appInfo.dealRes(appInfo);
// } catch (error) {
// this.$store.commit('updateLock', true);
// return;
// }
// this.$store.commit('updateAppInfo', appInfo.result); // 设置应用信息
// document.title = appInfo.result.appName; // 设置页面的title layout里有设置,这里就不设置了
// const { serveStatus, limitFlag } = appInfo.result;
// if(serveStatus === 1 || serveStatus === 2 && limitFlag == 1) {
// // serveStatus 0正常 1未购买 2已过期 limitFlag 过期后1限制0不限制
// // 未购买 || 过期限制 更新lock禁止一切操作
// this.$store.commit('updateLock', true);
// return;
// } else {
// this.$store.commit('updateLock', false);
// }
// if(this.showLeft) {
// // 获取左侧菜单
// const aside = await loginUserMenuOfApp({ menuCode: this.$store.state.menuCode });
// this.$refs.asideMenu.getMenu(aside.result);
// }
// 获取域列表 // 获取域列表
const subApp = await getSubappList({}, { moduleCode }); const subApp = await getSubappList();
this.$store.commit('setSubAppList', subApp.result.result || []); this.$store.commit('setSubAppList', subApp.result.result || []);
if(this.areaSubList.length) { if(this.areaSubList.length) {
try { try {
...@@ -159,7 +135,10 @@ export default { ...@@ -159,7 +135,10 @@ export default {
'appInfo', 'appInfo',
'lock', 'lock',
'moduleCode' 'moduleCode'
]) ]),
showLeft() {
return !(this.project == '' || this.project == 'index');
}
}, },
}; };
</script> </script>
......
...@@ -7,7 +7,7 @@ Vue.use(Vuex); ...@@ -7,7 +7,7 @@ Vue.use(Vuex);
export default new Vuex.Store({ export default new Vuex.Store({
state: { state: {
lock: true, // 当没有权限或者过期限制时锁住所有操作 lock: false, // 当没有权限或者过期限制时锁住所有操作 -- 暂不使用该属性
loading: false, // 全局loading loading: false, // 全局loading
defaultAreaId: '', // 默认的子应用id defaultAreaId: '', // 默认的子应用id
currentAreaName: '', // 当前选中的子应用名称 currentAreaName: '', // 当前选中的子应用名称
...@@ -15,19 +15,6 @@ export default new Vuex.Store({ ...@@ -15,19 +15,6 @@ export default new Vuex.Store({
deleteFlag: false, // 当前选中的子应用是否被删除 deleteFlag: false, // 当前选中的子应用是否被删除
areaSubList: [], // 子应用列表 areaSubList: [], // 子应用列表
moduleCode: 'welfare', moduleCode: 'welfare',
// 应用信息
appInfo: {
// applicationId: "69894192219213824",
// serveId: "69895399008555008",
// appName: "短信营销",
// versionName: "达摩至尊版",
// expireTime: 1952870399000, //到期时间
// serveStatus: 0, // 0正常 1未购买 2已过期
// expireDays: 0, // 过期天数
// limitFlag: 1, // 过期后1限制0不限制
// remark: null,
// appType: 0, // 0gic 1好办
},
project: '', // 当前项目 project: '', // 当前项目
menu: {}, // 对应mapping里的值 menu: {}, // 对应mapping里的值
extraHideLeft: '', // 特殊页面控制 asidemenu显示隐藏 为hide的时候隐藏 其余不起作用,按照原本的moduleCode里的showLeft控制 extraHideLeft: '', // 特殊页面控制 asidemenu显示隐藏 为hide的时候隐藏 其余不起作用,按照原本的moduleCode里的showLeft控制
...@@ -44,10 +31,6 @@ export default new Vuex.Store({ ...@@ -44,10 +31,6 @@ export default new Vuex.Store({
updateLock(state, lock) { updateLock(state, lock) {
state.lock = lock; state.lock = lock;
}, },
// 更新app信息
updateAppInfo(state, info) {
state.appInfo = { ...info };
},
// 根据id更新某个子应用name // 根据id更新某个子应用name
updateAreaName(state, { areaId, areaName }) { updateAreaName(state, { areaId, areaName }) {
const idx = state.areaSubList.findIndex(v => { const idx = state.areaSubList.findIndex(v => {
...@@ -74,7 +57,7 @@ export default new Vuex.Store({ ...@@ -74,7 +57,7 @@ export default new Vuex.Store({
const curr = state.areaSubList.find(v => { const curr = state.areaSubList.find(v => {
return v.areaId === id; return v.areaId === id;
}) || {}; }) || {};
dealMkStorage(state.menu.moduleCode, 'set', id); // storage 默认子应用id dealMkStorage(state.moduleCode, 'set', id); // storage 默认子应用id
state.currentAreaId = curr.areaId || ''; state.currentAreaId = curr.areaId || '';
state.currentAreaName = curr.areaName || ''; state.currentAreaName = curr.areaName || '';
state.deleteFlag = curr.deleteFlag || false; state.deleteFlag = curr.deleteFlag || false;
......
...@@ -88,7 +88,7 @@ export const dealMkStorage = (keyName, type = 'get', value) => { ...@@ -88,7 +88,7 @@ export const dealMkStorage = (keyName, type = 'get', value) => {
return market[keyName]; return market[keyName];
} else if(type === 'set') { } else if(type === 'set') {
market[keyName] = value; market[keyName] = value;
window.localStorage.setItem('-ct-id', JSON.stringify(market)); window.localStorage.setItem('welfare-ct-id', JSON.stringify(market));
} }
}; };
......
...@@ -11,7 +11,7 @@ const whiteList = [ ...@@ -11,7 +11,7 @@ const whiteList = [
'/gic-auth-web/get-login-user-info', '/gic-auth-web/get-login-user-info',
'/api-marketing/enterprise-serve-info', '/api-marketing/enterprise-serve-info',
'/gic-auth-web/login-user-menu-of-app', '/gic-auth-web/login-user-menu-of-app',
'/api-marketing/{moduleCode}/area-list', '/api-welfare/area/member-cards',
'/gic-auth-web/login-collaborator-operation-item', '/gic-auth-web/login-collaborator-operation-item',
'/gic-auth-web/login-user-operation-item-of-app', '/gic-auth-web/login-user-operation-item-of-app',
'/gic-auth-web/login-collaborator-menu-of-app', '/gic-auth-web/login-collaborator-menu-of-app',
...@@ -44,7 +44,7 @@ function handlerErr(code) { ...@@ -44,7 +44,7 @@ function handlerErr(code) {
axios.defaults.baseURL = origin; axios.defaults.baseURL = origin;
const request = (opt, params, restObj) => { const request = (opt, params, restObj) => {
if ((!Store.state.project || (!Store.state.currentAreaId) || Store.state.lock) && !whiteList.includes(opt.url) ) { if ((!Store.state.project || (!Store.state.currentAreaId)) && !whiteList.includes(opt.url) ) {
// 有左侧但没有选中子应用id || 禁用 // 有左侧但没有选中子应用id || 禁用
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
reject(); reject();
......
...@@ -87,17 +87,23 @@ const _ruleForm1 = { ...@@ -87,17 +87,23 @@ const _ruleForm1 = {
// 转赠 start // 转赠 start
giveFlag: 0, giveFlag: 0,
giveContent: '', giveContent: '',
giveWxImage: '', giveWxImage: '', // 貌似没用
giveImage: '', giveImage: '',
giveImageField: '', giveImageField: '', // 貌似没用
bannerImage: '', giveBannerImage: '',
bannerImageField: '', giveBannerImageField: '',
useJumpFlag: '', giveBannerJumpFlag: '',
bannerJumpUrl: '', giveBannerJumpUrl: '',
giveRule: '1.卡券新老用户同享。2.用户使用卡券下单,订单取消后,卡券将自动失效', giveRule: '1.卡券新老用户同享。2.用户使用卡券下单,订单取消后,卡券将自动失效',
// 转赠 end // 转赠 end
goodsSearchId: '', // 兑换券 兑换商品 - 选择器id goodsSearchId: '', // 兑换券 兑换商品 - 选择器id
goodsSearchIdWaiting: true, // 兑换券 兑换商品 - 等待状态 goodsSearchIdWaiting: true, // 兑换券 兑换商品 - 等待状态
// 跳转配置
cardJumpFlag: 0,
cardJumpLink: '',
stockUseType: 0, // (0:占用,1:动态 , 2占用+动态)
operAuth: 1, // 1所有账号2部分账号3仅创建人
groupIds: []
}; };
const _ruleForm3 = { const _ruleForm3 = {
...@@ -218,6 +224,9 @@ export default { ...@@ -218,6 +224,9 @@ export default {
if (dateTime[0] < nowDate || dateTime[1] < nowDate) { if (dateTime[0] < nowDate || dateTime[1] < nowDate) {
callback(new Error('有效期范围必须大于当前时间')); callback(new Error('有效期范围必须大于当前时间'));
} }
if (new Date(dateTime[1]).getTime() - new Date(dateTime[0]).getTime() > 1000 * 60 * 60 * 24 * 365) {
callback(new Error('时间跨度不能大于一年'));
}
callback(); callback();
} else { } else {
callback(new Error('请填写有效期')); callback(new Error('请填写有效期'));
...@@ -263,12 +272,23 @@ export default { ...@@ -263,12 +272,23 @@ export default {
} }
}; };
const validStockType = (rule, value, callback) => {
if (!this.stockType.length) {
callback(new Error(rule.message));
return;
} else {
callback();
}
};
return { return {
loading: false, loading: false,
active: 1,
uploadUrl, uploadUrl,
zmImg: [], // 转图片 zmImg: [], // 转图片
stImg: [], // 首图图片 stImg: [], // 首图图片
active: 1, stockType: [], // 库存使用类型(0:占用,1:动态 , 2占用+动态)
prefix, prefix,
couponId: '', // gic-card 新建时就生成couponId couponId: '', // gic-card 新建时就生成couponId
copyId: this.$route.query.copyId, copyId: this.$route.query.copyId,
...@@ -297,16 +317,17 @@ export default { ...@@ -297,16 +317,17 @@ export default {
giveContent: { validator: validGiveContent, message: '请输入转赠对话框文字', trigger: 'blur' }, giveContent: { validator: validGiveContent, message: '请输入转赠对话框文字', trigger: 'blur' },
giveRule: { required: true, message: '请输入卡券转赠规则', trigger: 'blur' }, giveRule: { required: true, message: '请输入卡券转赠规则', trigger: 'blur' },
giveImage: { required: true, message: '请上传转赠封面', trigger: 'change' }, giveImage: { required: true, message: '请上传转赠封面', trigger: 'change' },
bannerImage: { required: true, message: '请上传转赠页面首图', trigger: 'change' }, giveBannerImage: { required: true, message: '请上传转赠页面首图', trigger: 'change' },
costValue: [ costValue: [
{ required: true, trigger: 'blur', message: '请输入成本' }, { required: true, trigger: 'blur', message: '请输入成本' },
{ validator: validMin0, trigger: 'change', message: '成本必须大于0' } { validator: validMin0, trigger: 'change', message: '成本必须大于0' }
], ],
cardEffectiveMode0: [ { message: '请输入有效期', validator: validTime, trigger: 'change' } ], cardEffectiveMode0: [ { validator: validTime, trigger: 'change' } ],
cardEffectiveMode1: [ { required: true, validator: validEffectTimeMode, trigger: 'change' } ], cardEffectiveMode1: [ { required: true, validator: validEffectTimeMode, trigger: 'change' } ],
customCode: { required: true, validator: validCustomCode, trigger: 'change' }, customCode: { required: true, validator: validCustomCode, trigger: 'change' },
codeFixed: { required: true, validator: validCodeFixed, trigger: 'blur' }, codeFixed: { required: true, validator: validCodeFixed, trigger: 'blur' },
bannerJumpUrl: { validator: validBannerJumpUrl, trigger: 'change' }, giveBannerJumpUrl: { validator: validBannerJumpUrl, trigger: 'change' },
stockType: { required: true, validator: validStockType, message: '请勾选库存消耗方式', trigger: 'change' },
}, },
rules2: { rules2: {
erpDemoCode: [ { validator: validDemoCode, trigger: 'blur' } ], erpDemoCode: [ { validator: validDemoCode, trigger: 'blur' } ],
...@@ -352,6 +373,7 @@ export default { ...@@ -352,6 +373,7 @@ export default {
// 转增 首图链接 // 转增 首图链接
linkData: {}, linkData: {},
checked: false, checked: false,
linkData2: {}, // 跳转配置
submitType: '', // 提交结果 1成功 失败 submitType: '', // 提交结果 1成功 失败
isAdd: this.$route.meta.type === 'add', isAdd: this.$route.meta.type === 'add',
isEdit: this.$route.meta.type === 'edit', isEdit: this.$route.meta.type === 'edit',
...@@ -482,6 +504,9 @@ export default { ...@@ -482,6 +504,9 @@ export default {
if (this.checked && !this.linkData.name && !this.linkData.url) { if (this.checked && !this.linkData.name && !this.linkData.url) {
reject({ message: '请设置首图链接' }); reject({ message: '请设置首图链接' });
} }
if (this.cardJumpLink && !this.linkData2.name && !this.linkData2.url) {
reject({ message: '请设置跳转配置' });
}
// 其他券 且选择导入券码 判断是否上传过csv // 其他券 且选择导入券码 判断是否上传过csv
if (customCodeFlag === 2 && this.fileList.length === 0) { if (customCodeFlag === 2 && this.fileList.length === 0) {
reject({ message: '请上传券码' }); reject({ message: '请上传券码' });
...@@ -604,6 +629,7 @@ export default { ...@@ -604,6 +629,7 @@ export default {
this.ruleForm1[key] = coupon[key]; this.ruleForm1[key] = coupon[key];
} }
}); });
this.stockType = coupon.stockUseType == 2 ? [ 0, 1 ] : [ coupon.stockUseType * 1 ];
this.ruleForm1.effectTimeMode = Number(coupon.effectTimeMode); // null的时候可以强转为0 this.ruleForm1.effectTimeMode = Number(coupon.effectTimeMode); // null的时候可以强转为0
// 处理useConditionLimit // 处理useConditionLimit
const _useConditionLimit = JSON.parse(coupon.useConditionLimit) || {}; const _useConditionLimit = JSON.parse(coupon.useConditionLimit) || {};
...@@ -612,8 +638,11 @@ export default { ...@@ -612,8 +638,11 @@ export default {
this.useConditionLimit.goodsDiscountCheckLower = !_useConditionLimit.goods_adapt_number_min_limit ? 0 : 1; this.useConditionLimit.goodsDiscountCheckLower = !_useConditionLimit.goods_adapt_number_min_limit ? 0 : 1;
this.useConditionLimit.goodsDiscountCheck = !_useConditionLimit.goods_adapt_number_max_limit ? 0 : 1; this.useConditionLimit.goodsDiscountCheck = !_useConditionLimit.goods_adapt_number_max_limit ? 0 : 1;
this.ruleForm1.getLimit = 1; // 领取限制由于和输入框的冲突,选择不赋值 this.ruleForm1.getLimit = 1; // 领取限制由于和输入框的冲突,选择不赋值
if (this.ruleForm1.giveFlag && this.ruleForm1.bannerJumpUrl) { if (this.ruleForm1.giveFlag && this.ruleForm1.giveBannerJumpUrl) {
this.onSave(this.ruleForm1.bannerJumpUrl); this.onSave(this.ruleForm1.giveBannerJumpUrl);
}
if (this.ruleForm1.cardJumpFlag) {
this.onSave2(this.ruleForm1.cardJumpLink);
} }
if (!coupon.cardEffectiveMode) { if (!coupon.cardEffectiveMode) {
if (coupon.startDate > new Date()) { if (coupon.startDate > new Date()) {
...@@ -626,7 +655,7 @@ export default { ...@@ -626,7 +655,7 @@ export default {
} }
if (coupon.giveFlag === 1) { if (coupon.giveFlag === 1) {
this.zmImg = [ { url: coupon.giveImage, fileId: coupon.giveImageField } ]; this.zmImg = [ { url: coupon.giveImage, fileId: coupon.giveImageField } ];
this.stImg = [ { url: coupon.bannerImage, fileId: coupon.bannerImageField } ]; this.stImg = [ { url: coupon.giveBannerImage, fileId: coupon.giveBannerImageField } ];
} }
// ruleForm2赋值 // ruleForm2赋值
this.ruleForm2.erpDemoCode = coupon.erpDemoCode || ''; this.ruleForm2.erpDemoCode = coupon.erpDemoCode || '';
...@@ -703,7 +732,8 @@ export default { ...@@ -703,7 +732,8 @@ export default {
delete params.expireTimeCount; delete params.expireTimeCount;
} }
delete params.dateTime; delete params.dateTime;
// 库存使用类型(0:占用,1:动态 , 2占用+动态)
params.stockUseType = this.stockType.length == 2 ? 2 : this.stockType[0];
if (params.customCodeFlag === 1) { if (params.customCodeFlag === 1) {
// 自定义号段 // 自定义号段
params.couponStock = params.codeEnd - params.codeBegin + 1; params.couponStock = params.codeEnd - params.codeBegin + 1;
...@@ -732,14 +762,14 @@ export default { ...@@ -732,14 +762,14 @@ export default {
delete params.giveWxImage; delete params.giveWxImage;
delete params.giveImage; delete params.giveImage;
delete params.giveImageField; delete params.giveImageField;
delete params.bannerImage; delete params.giveBannerImage;
delete params.bannerImageField; delete params.giveBannerImageField;
delete params.useJumpFlag; delete params.giveBannerJumpFlag;
delete params.bannerJumpUrl; delete params.giveBannerJumpUrl;
delete params.giveRule; delete params.giveRule;
} else { } else {
if (!this.checked) { if (!this.checked) {
delete params.bannerJumpUrl; // 不勾选则不跳转 不需要传 delete params.giveBannerJumpUrl; // 不勾选则不跳转 不需要传
} }
} }
...@@ -845,8 +875,8 @@ export default { ...@@ -845,8 +875,8 @@ export default {
}, },
stSuccess(obj) { stSuccess(obj) {
this.stImg = [ { url: obj.res.result.url, fileId: obj.res.result.fileId } ]; this.stImg = [ { url: obj.res.result.url, fileId: obj.res.result.fileId } ];
this.ruleForm1.bannerImage = obj.res.result.url; this.ruleForm1.giveBannerImage = obj.res.result.url;
this.ruleForm1.bannerImageField = obj.res.result.fileId; this.ruleForm1.giveBannerImageField = obj.res.result.fileId;
}, },
beforeUpload(file) { beforeUpload(file) {
if (file.size > 1024 * 1024) { if (file.size > 1024 * 1024) {
...@@ -880,25 +910,34 @@ export default { ...@@ -880,25 +910,34 @@ export default {
this.xxsy.storeFilterId = res.storeWidgetId || ''; this.xxsy.storeFilterId = res.storeWidgetId || '';
}, },
// ***********链接小工具*********** // ***********链接小工具***********
// -----首图链接-----
onShow(val) { onShow(val) {
this.checked = val; this.checked = val;
if(this.checked) { if(this.checked) {
this.$refs.link.onShow(); this.$refs.link.onShow();
} }
}, },
// 链接回显
onSave(linkData) { onSave(linkData) {
// 链接回显
this.linkData = JSON.parse(linkData); this.linkData = JSON.parse(linkData);
this.ruleForm1.bannerJumpUrl = linkData; this.ruleForm1.giveBannerJumpUrl = linkData;
this.checked = true; this.checked = true;
this.$refs.ruleForm1.validateField('bannerJumpUrl'); this.$refs.ruleForm1.validateField('giveBannerJumpUrl');
}, },
onHide() { onHide() {
if (!this.ruleForm1.bannerJumpUrl) { if (!this.ruleForm1.giveBannerJumpUrl) {
this.checked = false; this.checked = false;
this.$refs.ruleForm1.validateField('bannerJumpUrl'); this.$refs.ruleForm1.validateField('giveBannerJumpUrl');
} }
},
// ----首图链接-----
// -----跳转配置-----
onSave2(linkData) {
// 链接回显
this.linkData2 = JSON.parse(linkData);
this.ruleForm1.cardJumpLink = linkData;
} }
// -----跳转配置-----
}, },
computed: { computed: {
// 有效期 - 领取x天生效下拉 // 有效期 - 领取x天生效下拉
...@@ -924,8 +963,8 @@ export default { ...@@ -924,8 +963,8 @@ export default {
watch: { watch: {
ruleForm1: { ruleForm1: {
handler(val) { handler(val) {
const { giveFlag, giveContent, giveImage, bannerImage, giveRule } = val; const { giveFlag, giveContent, giveImage, giveBannerImage, giveRule } = val;
this.preview.disabled = giveFlag && giveContent && giveImage && bannerImage && giveRule; this.preview.disabled = giveFlag && giveContent && giveImage && giveBannerImage && giveRule;
}, },
deep: true deep: true
}, },
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
<!-- 折扣券 --> <!-- 折扣券 -->
<el-form-item prop="denomination" label="优惠折扣" v-if="ruleForm1.cardType === 1"> <el-form-item prop="denomination" label="优惠折扣" v-if="ruleForm1.cardType === 1">
<!-- <el-input-number class="wInput352" controls-position="right" v-model="ruleForm1.denomination" placeholder="请填写1-9.9之间的数字" :precision="1" :step="0.1" :max="9.9" :min="0" /> --> <!-- <el-input-number class="wInput352" controls-position="right" v-model="ruleForm1.denomination" placeholder="请填写1-9.9之间的数字" :precision="1" :step="0.1" :max="9.9" :min="0" /> -->
<dm-input-amount style="width:352px;" v-model="ruleForm1.denomination" :max="9.9" placeholder="请填写1-9.9之间的数字" :precision="1" :step="0.1" :min="0" ></dm-input-amount> <el-input-number style="width:120px;" v-model="ruleForm1.denomination" :max="9.9" placeholder="请填写1-9.9之间的数字" controls-position="right" :precision="1" :step="0.1" :min="0" ></el-input-number>
<span class="tips"></span> <span class="tips"></span>
</el-form-item> </el-form-item>
<!-- 兑换券 !!! 比微信卡券多的内容 --> <!-- 兑换券 !!! 比微信卡券多的内容 -->
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
</el-tooltip> </el-tooltip>
</el-radio> </el-radio>
<el-radio v-model="ruleForm1.customCodeFlag" :label="1">自定义号段</el-radio> <el-radio v-model="ruleForm1.customCodeFlag" :label="1">自定义号段</el-radio>
<el-radio v-model="ruleForm1.customCodeFlag" :label="2" @change="(v) => { if(v == 2) { importVisible = true } }"> <!-- <el-radio v-model="ruleForm1.customCodeFlag" :label="2" @change="(v) => { if(v == 2) { importVisible = true } }">
<span @click="ruleForm1.customCodeFlag = 2;importVisible = true">导入券码</span> <span @click="ruleForm1.customCodeFlag = 2;importVisible = true">导入券码</span>
<span class="gray03 cursor" v-if="fileList.length > 0"> <span class="gray03 cursor" v-if="fileList.length > 0">
<el-popover placement="top-start" title="已上传列表" width="250" trigger="hover"> <el-popover placement="top-start" title="已上传列表" width="250" trigger="hover">
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
<i slot="reference" class="el-icon-document ml5"></i> <i slot="reference" class="el-icon-document ml5"></i>
</el-popover> </el-popover>
</span> </span>
</el-radio> </el-radio> -->
</el-form-item> </el-form-item>
<el-form-item prop="customCode" label="code号段" key="customCode" v-if="ruleForm1.customCodeFlag === 1"> <el-form-item prop="customCode" label="code号段" key="customCode" v-if="ruleForm1.customCodeFlag === 1">
<!-- @blur="checkInputNumber(ruleForm1.codeBegin, 'codeBegin')" --> <!-- @blur="checkInputNumber(ruleForm1.codeBegin, 'codeBegin')" -->
...@@ -186,13 +186,13 @@ ...@@ -186,13 +186,13 @@
</div> </div>
<p class="tips">图片建议尺寸: 320*240px 的jpg/png图片,大小不超过1MB。</p> <p class="tips">图片建议尺寸: 320*240px 的jpg/png图片,大小不超过1MB。</p>
</el-form-item> </el-form-item>
<el-form-item label="转赠页面首图" prop="bannerImage"> <el-form-item label="转赠页面首图" prop="giveBannerImage">
<div class="st-img"> <div class="st-img">
<dm-upload-picture :use-transition="false" with-credentials :before-upload="beforeUpload" :headers="{ isControl: true }" project-name="marketing" :action-url="uploadUrl" :is-gic-four="true" :image-list="stImg" :max-image-length="1" @uploadOnSuccess="stSuccess" @deleteImage="() => { stImg = [];ruleForm1.bannerImage='';ruleForm1.bannerImageField=''; }" /> <dm-upload-picture :use-transition="false" with-credentials :before-upload="beforeUpload" :headers="{ isControl: true }" project-name="marketing" :action-url="uploadUrl" :is-gic-four="true" :image-list="stImg" :max-image-length="1" @uploadOnSuccess="stSuccess" @deleteImage="() => { stImg = [];ruleForm1.giveBannerImage='';ruleForm1.giveBannerImageField=''; }" />
</div> </div>
<p class="tips">图片建议尺寸: 640*210px 的jpg/png图片,大小不超过1MB。</p> <p class="tips">图片建议尺寸: 640*210px 的jpg/png图片,大小不超过1MB。</p>
</el-form-item> </el-form-item>
<el-form-item label="首图链接设置" prop="bannerJumpUrl"> <el-form-item label="首图链接设置" prop="giveBannerJumpUrl">
<el-checkbox v-model="checked" @change="onShow" /> <el-checkbox v-model="checked" @change="onShow" />
<span class="op-btn ml5" @click="onShow(true)">首图链接</span> <span class="op-btn ml5" @click="onShow(true)">首图链接</span>
<span v-if="checked && (linkData.name || linkData.url)" class="gray03 ml10" :title="linkData.url">{{ linkData.name || '--' }}】【{{ linkData.url || '--' }}</span> <span v-if="checked && (linkData.name || linkData.url)" class="gray03 ml10" :title="linkData.url">{{ linkData.name || '--' }}】【{{ linkData.url || '--' }}</span>
...@@ -202,6 +202,24 @@ ...@@ -202,6 +202,24 @@
</el-form-item> </el-form-item>
</template> </template>
</template> </template>
<el-form-item label="跳转配置">
<el-switch :active-value="1" :inactive-value="0" v-model="ruleForm1.cardJumpFlag"></el-switch>
<template v-if="ruleForm1.cardJumpFlag">
<el-button type="text" class="ml10" @click="$refs.link2.onShow()">设置链接</el-button>
<span v-if="(linkData2.name || linkData2.url)" class="gray03 ml10" :title="linkData2.url">{{ linkData2.name || '--' }}】【{{ linkData2.url || '--' }}</span>
</template>
<p class="tips">* 开启后小程序卡券详情将对应路径的跳转按钮</p>
</el-form-item>
<el-form-item label="库存消耗方式" prop="stockType">
<el-checkbox-group v-model="stockType">
<!-- (0:占用,1:动态 , 2占用+动态) -->
<el-checkbox :label="0">固定库存</el-checkbox>
<el-checkbox :label="1">实时库存</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="操作人权限">
<dm-acc-group-select :etype.sync="ruleForm1.operAuth" :group-ids.sync="ruleForm1.groupIds" />
</el-form-item>
<el-form-item class="pt10"> <el-form-item class="pt10">
<el-button class="w85" type="primary" @click="changeStep(2, 'ruleForm1')">下一步</el-button> <el-button class="w85" type="primary" @click="changeStep(2, 'ruleForm1')">下一步</el-button>
<el-button class="w85" v-if="ruleForm1.customCodeFlag === 0 && ruleForm1.giveFlag" :disabled="!preview.disabled" @click="preview.visible = true">转赠预览</el-button> <el-button class="w85" v-if="ruleForm1.customCodeFlag === 0 && ruleForm1.giveFlag" :disabled="!preview.disabled" @click="preview.visible = true">转赠预览</el-button>
...@@ -323,7 +341,11 @@ ...@@ -323,7 +341,11 @@
</result-dialog> </result-dialog>
<send-preview :data="ruleForm1" :visible.sync="preview.visible" /><!-- 转赠预览 --> <send-preview :data="ruleForm1" :visible.sync="preview.visible" /><!-- 转赠预览 -->
<import-code :coupon-id="couponId" :visible.sync="importVisible" open-type="blank" @success="(fileList)=> { fileList = fileList; }" /><!-- 导入券码 --> <import-code :coupon-id="couponId" :visible.sync="importVisible" open-type="blank" @success="(fileList)=> { fileList = fileList; }" /><!-- 导入券码 -->
<div style="opacity:0;height:1px;visiable:hidden;"><dm-link-tools :member-card-id="currentAreaId" v-if="currentAreaId" :data="ruleForm1.bannerJumpUrl" ref="link" @save="onSave" @onHide="onHide" /></div><!-- 链接小工具 --> <div style="opacity:0;height:1px;visiable:hidden;">
<!-- 链接小工具 -->
<dm-link-tools :member-card-id="currentAreaId" v-if="currentAreaId" :data="ruleForm1.giveBannerJumpUrl" ref="link" @save="onSave" @onHide="onHide" />
<dm-link-tools :member-card-id="currentAreaId" v-if="currentAreaId" :data="ruleForm1.cardJumpLink" ref="link2" @save="onSave2" />
</div>
</div> </div>
</template> </template>
......
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