Commit 86eff9ff by chenxin

fix: 优化营销活动组件:问题以及调整对应使用的地方

parent 2ebaf6f3
......@@ -2,14 +2,12 @@
<div v-loading="readOnly && loading" :class="{ 'inline-block': onlySelect }">
<template v-if="!onlySelect">
<div v-if="!readOnly">
<span class="dm-input_label">营销活动<span v-if="colon"></span></span>
<el-select remote filterable clearable v-loadmore="getMore" :remote-method="remoteMethod" @change="updateActId" class="w250 act-select" size="small" v-model="marketingActivityId" :disabled="readOnly || disabled" placeholder="选择营销活动">
<el-option v-for="item in tableList" :key="item.marketingActivityId" :label="item.name" :value="item.marketingActivityId"></el-option>
</el-select>
<el-button type="text" class="ml10" @click="toAdd">去新建</el-button>
</div>
<div v-else>
<span class="dm-input_label">营销活动<span v-if="colon"></span></span>
<p class="inline-block">{{ info.name || '--' }} <span v-if="info.status === 0" class="fz12 gray ml10">当前计划使用的营销活动已删除</span></p>
</div>
</template>
......@@ -36,11 +34,6 @@ export default {
onlySelect: {
default: false,
type: Boolean
},
// 是否需要冒号
colon: {
default: false,
type: Boolean
}
},
data() {
......
......@@ -17,7 +17,9 @@
<el-form-item label="营销场景" v-if="!isAdd && form.sceneSettingName">
<el-input class="w250" disabled v-model="form.sceneSettingName"></el-input>
</el-form-item>
<activity-select class="ml30" :actId.sync="form.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
<el-form-item label="营销活动">
<activity-select :actId.sync="form.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
</el-form-item>
</div>
<div class="dm-form__wrap">
<h3 class="dm-title__label">会员设置</h3>
......@@ -144,7 +146,7 @@
</el-form>
</template>
<script>
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import { checkPutonMemberIds, saveUpdatePutonCard, getCardDetail, getCardPutonDetail } from '@/service/api/cardApi.js';
import { listTemplateVariables } from '@/service/api/msgApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
......
......@@ -13,15 +13,12 @@
<el-radio :label="1">选择时间段</el-radio>
</el-radio-group>
<br />
<el-date-picker v-if="ruleForm.effectiveMode" class="w300 mt10" v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions"></el-date-picker>
<el-date-picker v-if="ruleForm.effectiveMode" class="w250 mt10" v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions"></el-date-picker>
</el-form-item>
<el-form-item label="营销活动">
<activity-select v-if="!ruleForm.marketingActivityId" :actId.sync="ruleForm.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
<activity-select v-else ref="actSelect" :actId.sync="ruleForm.marketingActivityId" :readOnly="isInfo"></activity-select>
</el-form-item>
<!-- <el-form-item label="营销场景">
<el-select class="w300" v-model="ruleForm.sceneSettingId" placeholder="选择营销场景">
<el-option v-for="item in sceneSettingIdOptions" :key="item.sceneSettingId" :label="item.sceneName" :value="item.sceneSettingId"></el-option>
</el-select>
</el-form-item> -->
<activity-select v-if="!ruleForm.marketingActivityId" style="margin-left:71px;margin-bottom:22px;" :actId.sync="ruleForm.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
<activity-select v-else ref="actSelect" style="margin-left:71px;margin-bottom:22px;" :actId.sync="ruleForm.marketingActivityId" :readOnly="isInfo"></activity-select>
<el-form-item prop="cardIds" label="新增卡券">
<el-button @click="showCardDialog = true">添加卡券</el-button>
<el-table v-if="ruleForm.cardIds" class="mt20" :data="tableData" style="width: 100%">
......@@ -68,7 +65,7 @@
</template>
<script>
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import { saveCoupPackage, coupPackageDetail, getCoupListInfo } from '@/service/api/cardApi.js';
import { sceneSettingList } from '@/service/api/wechatApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
......
......@@ -43,7 +43,7 @@
</section>
</template>
<script>
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import { pageCoupPackage, deleteCoupPackage } from '@/service/api/cardApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
import talbeMethods from '@/mixins/tableMethods.js';
......
......@@ -3,9 +3,7 @@
<div class="pb22 clearfix">
<el-input v-model="listParams.search" class="w300" placeholder="请输入卡券包名称" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<!-- <el-input v-model="listParams.receiveCode" class="w300" placeholder="请输入投放渠道" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input> -->
<el-select class="dm-select w160" v-model="listParams.sceneSettingId" clearable placeholder="所有营销场景" @change="refresh">
<el-option v-for="item in sceneSettingIdOptions" :key="item.sceneSettingId" :label="item.sceneName" :value="item.sceneSettingId"></el-option>
</el-select>
<!-- <activity-select class="vertical-middle w150 mr5" :actId.sync="listParams.marketingActivityId" onlySelect @actUpdate="refresh"></activity-select> -->
</div>
<el-table tooltipEffect="light" :data="tableList" style="width: 100%">
<el-table-column :show-overflow-tooltip="true" min-width="100" align="left" prop="receiveTime" label="领取时间">
......@@ -30,14 +28,16 @@
<el-table-column :show-overflow-tooltip="true" min-width="120" align="left" prop="cardPackageName" label="卡券包名称"></el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="120" align="left" prop="receivePositionName" label="领取位置"></el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="120" align="left" prop="receiveName" label="投放渠道"></el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="120" align="left" prop="sceneSettingName" label="场景值"></el-table-column>
<!-- <el-table-column :show-overflow-tooltip="true" min-width="120" align="left" prop="marketingActivityName" label="营销活动">
<template slot-scope="scope">{{ scope.row.marketingActivityName || '--' }}</template>
</el-table-column> -->
</el-table>
<dm-pagination v-show="tableList.length" background class="dm-pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listParams.currentPage" :page-sizes="[20, 40, 60, 80]" :page-size="listParams.pageSize" layout="total, sizes, prev, pager, next" :total="total"></dm-pagination>
</section>
</template>
<script>
import activitySelect from '@/components/activity-select/index.vue';
import { pageCoupPackageLog } from '@/service/api/cardApi.js';
import { sceneSettingList } from '@/service/api/wechatApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
import talbeMethods from '@/mixins/tableMethods.js';
import filterAvater from '@/mixins/filterAvater.js';
......@@ -51,12 +51,12 @@ export default {
visible: false,
listParams: {
search: '',
marketingActivityId: '',
receiveCode: '',
sceneSettingId: '',
currentPage: 1,
pageSize: 20
},
sceneSettingIdOptions: [],
total: 0,
loading: false,
tableList: [],
......@@ -66,9 +66,11 @@ export default {
params: {} // 传递的参数
};
},
components: {
activitySelect
},
created() {
this.getTableList();
this.sceneSettingList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券包', path: '' }, { name: '卡券包领取记录', path: '' }]); // eslint-disable-line
},
methods: {
......@@ -83,10 +85,6 @@ export default {
this.$tips({ type: 'error', message: '加载列表失败' });
}
this.loading = false;
},
async sceneSettingList() {
let res = await sceneSettingList();
this.sceneSettingIdOptions = res.result || [];
}
}
};
......
......@@ -4,8 +4,8 @@
<el-form-item label="兑换码名称" prop="cdkeyName">
<dm-input :disabled="!canEdit" class="w400" v-model="ruleForm.cdkeyName" placeholder="请输入兑换码名称" :byteType="1" :maxlength="24"></dm-input>
</el-form-item>
<el-form-item prop="marketingActivityId">
<activity-select style="margin-left:-68px" class="activity" :actId.sync="ruleForm.marketingActivityId" :readOnly="!canEdit"></activity-select>
<el-form-item label="营销活动" prop="marketingActivityId">
<activity-select class="activity" :actId.sync="ruleForm.marketingActivityId" :readOnly="!canEdit"></activity-select>
</el-form-item>
<el-form-item prop="dateTime" label="有效期">
<el-date-picker :default-time="['00:00:00', '23:59:59']" :disabled="!canEdit" class="w400" v-model="dateTime" type="datetimerange" :picker-options="pickerOptions" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
......@@ -76,7 +76,7 @@
import axios from 'axios';
import file from '@/components/upload/file';
import { formatDateTimeByType } from '@/utils/index.js';
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import { cdkeyCheck, cdkeyPlanSave, cdkeyPlanEdit, cdkeyFailExport, cdkeyExport } from '@/service/api/cdKeyApi.js';
import { getCardDetail } from '@/service/api/cardApi.js';
import { _debounce } from '@/utils/index';
......
import { _debounce } from '@/utils/index';
import { getEcmInfo, saveEcmInfo } from '@/service/api/ecmApi.js';
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import { listTemplateVariables } from '@/service/api/msgApi.js';
import { klflStrategy } from '@/service/api/gameApi.js'; // 会员等级列表接口
import xxSysp_mix from '@/mixins/selector.js'; // 商品选择器方法mixins
......
......@@ -52,7 +52,9 @@
<el-form-item label="营销场景" v-if="!isAdd && form.sceneSettingName">
<el-input class="w400" disabled v-model="form.sceneSettingName"></el-input>
</el-form-item>
<activity-select style="margin-left:42px" :actId.sync="form.marketingActivityId" :readOnly="!isAdd"></activity-select>
<el-form-item label="营销活动" v-if="!isAdd && form.sceneSettingName">
<activity-select :actId.sync="form.marketingActivityId" :readOnly="!isAdd"></activity-select>
</el-form-item>
</section>
<!-- 消费触发配置 -->
<section class="dm-form__wrap" v-if="form.effectType == 0 && form.effectAction === 'consume'">
......
......@@ -43,7 +43,7 @@
</section>
</template>
<script>
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import { loadEcmList, deleteEcm, offlineEcmPlan } from '@/service/api/ecmApi.js';
const marketingTypeOptions = [{ value: '', label: '所有发送类型' }, { value: 'card', label: '卡券营销' }, { value: 'message', label: '短信营销' }, { value: 'teletext', label: '图文营销' }, { value: 'text', label: '文本营销' }, { value: 'teltask', label: '话务' }, { value: 'image', label: '微信图片' }]; // eslint-disable-line
export default {
......
......@@ -6,7 +6,9 @@
<el-form-item label="游戏名称" prop="gameName">
<dm-input v-model="form.gameName" class="w400" :disabled="isInfo" :maxlength="25"></dm-input>
</el-form-item>
<activity-select style="margin-left:32px" class="mb20" :actId.sync="form.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
<el-form-item label="营销活动">
<activity-select :actId.sync="form.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
</el-form-item>
<el-form-item label="游戏时间" prop="dateTime">
<el-date-picker :picker-options="pickerOptions" class="w400" :default-time="['00:00:00', '23:59:59']" v-model="form.dateTime" :disabled="isInfo" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item>
......@@ -145,7 +147,7 @@
<script>
import { _debounce } from '@/utils/index';
import adjustStock from '../common/adjust-stock';
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import { detailLottery, saveLottery, downloadWheelSkinPsd, updateGamePrize } from '@/service/api/gameApi.js';
import { numberToChinese, formatDateTimeByType, deepClone } from '@/utils/index.js';
import dmUploadAvatar from '@/components/upload/avatar';
......
......@@ -6,7 +6,9 @@
<el-form-item label="游戏名称" class="width50" prop="gameName">
<dm-input v-model="form.gameName" class="w400" :disabled="isInfo" :maxlength="25"></dm-input>
</el-form-item>
<activity-select style="margin-left:32px" class="mb20" :actId.sync="form.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
<el-form-item label="营销活动">
<activity-select :actId.sync="form.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
</el-form-item>
<el-form-item label="游戏时间" class="width50" prop="dateTime">
<el-date-picker class="w400" v-model="form.dateTime" :disabled="isInfo" :default-time="['00:00:00', '23:59:59']" :picker-options="pickerOptions" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
</el-form-item>
......@@ -129,7 +131,7 @@
<script>
import { _debounce } from '@/utils/index';
import adjustStock from '../common/adjust-stock';
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import { detailLottery, saveLottery, downloadWheelSkinPsd, updateGamePrize, deleteGamePrize } from '@/service/api/gameApi.js';
import { formatDateTimeByType, deepClone } from '@/utils/index.js';
import prizeMixins from '../common/prizeMixins.js';
......
......@@ -5,7 +5,9 @@
<el-form-item label="游戏名称" prop="gameName" class="width50">
<dm-input v-model="form.gameName" class="w400" :maxlength="10"></dm-input>
</el-form-item>
<activity-select style="margin-left:40px" class="mb20" :actId.sync="form.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
<el-form-item label="营销活动">
<activity-select :actId.sync="form.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
</el-form-item>
<el-form-item label="游戏背景" class="clearfix">
<div class="left-bg fl">
<div class="bg-head gray-bg">示例</div>
......@@ -195,7 +197,7 @@
<script>
import { _debounce } from '@/utils/index';
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import { klflDetail, klflSave, klflStrategyList, klflPrizeList, klflStrategySort, klflStrategyDel, klflDownTemp, getCouponStock } from '@/service/api/gameApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
import dmUploadImg from '@/components/upload/img';
......
......@@ -5,7 +5,9 @@
<el-form-item label="游戏名称" prop="gameName" class="width50">
<dm-input v-model="form.gameName" class="w400" :disabled="isInfo" :maxlength="25"></dm-input>
</el-form-item>
<activity-select style="margin-left:51px" class="mb20" :actId.sync="form.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
<el-form-item label="营销活动">
<activity-select :actId.sync="form.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
</el-form-item>
<el-form-item label="游戏时间" prop="dateTime" class="width50">
<el-date-picker class="w400" :disabled="isInfo" v-model="form.dateTime" :picker-options="pickerOptions" type="datetimerange" :default-time="['00:00:00', '23:59:59']" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
</el-form-item>
......@@ -107,7 +109,7 @@
<script>
import { _debounce } from '@/utils/index';
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import { ptyxDetail, savePtyx, getGameSystemMusic, downloadPtyxSkinPsd } from '@/service/api/gameApi.js';
import { numberToChinese, formatDateTimeByType } from '@/utils/index.js';
import dmUploadAvatar from '@/components/upload/avatar';
......
......@@ -5,7 +5,9 @@
<el-form-item label="游戏名称" prop="gameName" class="width50">
<dm-input v-model="form.gameName" class="w400" :maxlength="25"></dm-input>
</el-form-item>
<activity-select style="margin-left:32px" class="mb20" :actId.sync="form.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
<el-form-item label="营销活动">
<activity-select :actId.sync="form.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
</el-form-item>
<el-form-item label="LOGO上传" prop="logoImg" class="width50">
<dm-upload-avatar :model.sync="form.logoImg" width="auto" label="上传图片" tips=" 请上传高度为80px的PNG透明背景图片"></dm-upload-avatar>
</el-form-item>
......@@ -89,7 +91,7 @@
<script>
import { _debounce } from '@/utils/index';
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import { znmDetail, znmSave, znmStrategyList, znmStrategySort, znmStrategyDel } from '@/service/api/gameApi.js';
import { numberToChinese, formatDateTimeByType } from '@/utils/index.js';
import dmUploadAvatar from '@/components/upload/avatar';
......
......@@ -29,7 +29,8 @@
<span class="regular-font-color">{{ info.sceneSettingName }}</span>
</el-col>
<el-col :span="8">
<activity-select :actId.sync="info.marketingActivityId" readOnly colon></activity-select>
<span class="primary-font-color">营销活动:</span>
<activity-select style="display:inline-block" :actId.sync="info.marketingActivityId" readOnly></activity-select>
</el-col>
<el-col :span="24">
<span class="primary-font-color">短信模板:</span>
......@@ -104,7 +105,7 @@
</div>
</template>
<script>
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import { LoadMessageDetail, LoadMessageDetailList, exportSmsExcel } from '@/service/api/messageApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
import errorCodeDialog from './errorCode';
......
......@@ -2,7 +2,9 @@
<el-form v-loading="loading">
<section class="dm-form__wrap">
<h3 class="dm-title__label">场景设置</h3>
<activity-select class="mb20" :actId.sync="info.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
<el-form-item label="营销活动">
<activity-select :actId.sync="info.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
</el-form-item>
<el-form-item label="发送时间">
<el-select class="w250" v-model="info.sendType">
<el-option v-for="(v, i) in sendTypeOptions" :key="i" :value="v.value" :label="v.label"></el-option>
......@@ -45,7 +47,7 @@
</template>
<script>
import { _debounce } from '@/utils/index';
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import { saveSendSmsService, checkMessageSendCount } from '@/service/api/messageApi.js';
import smsTemp from '@/components/libs/smsTemp';
import { formatDateTimeByType } from '@/utils/index.js';
......
......@@ -39,7 +39,7 @@
</section>
</template>
<script>
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import { LoadMessageList, invalidsmsRecord } from '@/service/api/messageApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
import timeCounts from '@/components/timeCount/index.vue';
......
<template>
<div v-loading="loading">
<section class="dm-form__wrap">
<activity-select class="mb20" :actId.sync="info.marketingActivityId" colon :readOnly="isEdit || isInfo"></activity-select>
<div class="mb20">
<span class="dm-input_label mr8">营销活动:</span>
<activity-select class="inline-block" :actId.sync="info.marketingActivityId" :readOnly="isEdit || isInfo"></activity-select>
</div>
<div class="mb20" v-if="!isAdd && info.sceneSettingName">
<span class="dm-input_label mr8">营销场景:</span>
{{ info.sceneSettingName }}
......@@ -86,7 +89,7 @@
</template>
<script>
import { _debounce } from '@/utils/index';
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import dmImgText from '@/components/libs/imgTextTemp';
import dmImgBox from '@/components/libs/imgTemp/index-box.vue';
import { getIsShowSelf } from '@/service/api/commonApi.js';
......
......@@ -75,7 +75,7 @@
</section>
</template>
<script>
import activitySelect from '@/components/activity-select';
import activitySelect from '@/components/activity-select/index.vue';
import { sendRecordList, delWechatMarketingRecord, invalidWechatMarketingRecord } from '@/service/api/wechatApi.js';
import { getIsShowSelf } from '@/service/api/commonApi.js';
import dmDialog from './dialog';
......
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