@layout("/common/_container.html"){
|
<body>
|
<div id="app0" class="form-container">
|
<el-form :rules="rules" label-position="left" ref="formRef" label-width="120px" :model="huiminCard" size="small">
|
<el-form-item label="惠民卡名称" prop="huiMinName">
|
<el-input v-model="huiminCard.huiMinName"></el-input>
|
</el-form-item>
|
|
|
<!-- 惠民卡类型 -->
|
<el-form-item label="惠民卡类型" prop="huiMinType">
|
<el-radio-group v-model="huiminCard.huiMinType">
|
<el-radio :label="1">年度卡</el-radio>
|
<el-radio :label="2">年内卡</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
|
<!-- 售卖金额 -->
|
<el-form-item label="售卖金额" prop="salesMoney">
|
<el-input placeholder="请输入内容" v-model="huiminCard.salesMoney">
|
<template slot="append">¥</template>
|
</el-input>
|
</el-form-item>
|
|
<!-- 封面图片 -->
|
<el-row>
|
<el-form-item label="封面图片" prop="cover">
|
<el-col :span="12">
|
<div class="upload-area text-center">
|
<el-upload
|
:limit="1"
|
action="/tCouponManage/uploadPic"
|
list-type="picture-card"
|
:multiple="false"
|
accept="."
|
:on-success="handleUnBuyCoverSuccess"
|
:before-upload="beforeUpload"
|
:on-exceed="handleUnBuyCoverExceed"
|
:on-remove="handleUnBuyCoverRemove">
|
<i class="el-icon-plus avatar-uploader-icon"></i>
|
</el-upload>
|
<span>未购买封面</span>
|
</div>
|
|
</el-col>
|
<el-col :span="12">
|
<div class="upload-area text-center" style="display: flex">
|
<el-upload
|
:limit="1"
|
class="avatar-uploader"
|
action="/tCouponManage/uploadPic"
|
list-type="picture-card"
|
:multiple="false"
|
accept="."
|
:on-success="handleBuyCoverSuccess"
|
:before-upload="beforeUpload"
|
:on-remove="handleBuyCoverRemove">
|
<i class="el-icon-plus avatar-uploader-icon"></i>
|
</el-upload>
|
<span>已购买封面</span>
|
</div>
|
</el-col>
|
</el-form-item>
|
</el-row>
|
|
|
<!-- 使用说明 -->
|
<el-form-item label="使用说明" prop="unBuyRemark">
|
<el-input
|
type="textarea"
|
:autosize="{ minRows: 2, maxRows: 4}"
|
placeholder="请输入少于200字使用说明"
|
v-model="huiminCard.unBuyRemark">
|
</el-input>
|
</el-form-item>
|
|
|
<!-- 使用期限 -->
|
<el-form-item label="使用期限" prop="buyRemark">
|
<el-input
|
type="textarea"
|
:autosize="{ minRows: 2, maxRows: 4}"
|
placeholder="请输入少于200字使用说明"
|
v-model="huiminCard.buyRemark">
|
</el-input>
|
</el-form-item>
|
|
|
<!-- 轮播介绍图 -->
|
<el-form-item label="轮播介绍图" prop="banner">
|
<div class="upload-area">
|
<div class="d-flex align-items-center justify-content-between">
|
<el-upload
|
:limit="5"
|
class="avatar-uploader"
|
action="/tCouponManage/uploadPic"
|
list-type="picture-card"
|
accept="."
|
:on-success="handleSuccess"
|
:before-upload="beforeUpload"
|
:on-remove="handleRemove">
|
<i class="el-icon-plus avatar-uploader-icon"></i>
|
</el-upload>
|
<span>点击上传,最多5张</span>
|
</div>
|
</div>
|
</el-form-item>
|
|
|
<!-- 发放数量 -->
|
<el-form-item label="发放数量">
|
<el-input v-model="huiminCard.grantCount"></el-input>
|
</el-form-item>
|
|
|
<!-- 限购数量 -->
|
<el-form-item label="限购数量">
|
<el-input v-model="huiminCard.limitCount"></el-input>
|
</el-form-item>
|
|
|
<!-- 有效期 -->
|
<el-form-item label="有效期">
|
<el-date-picker
|
v-model="periodOfValidity"
|
format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
type="datetimerange"
|
start-placeholder="开始日期"
|
end-placeholder="结束日期"
|
:default-time="['12:00:00']">
|
</el-date-picker>
|
</el-form-item>
|
|
|
<!-- 可用时间 -->
|
<el-form-item label="可用时间" prop="weeks">
|
<el-card
|
shadow="never"
|
v-for="(weekGroup, groupIndex) in weeks"
|
:key="'weekGroup_' + groupIndex">
|
<div slot="header"
|
style="display: flex;
|
align-items: center;
|
height: 18px;
|
padding: 0 16px;">
|
<el-button type="text" v-on:click="addWeek()">添加</el-button>
|
</div>
|
|
<div class="form-group" style="display: flex; justify-content: space-between;">
|
<div
|
class="col-md-1"
|
style="flex: 1 0 calc(100% / 7);"
|
v-for="(day, dayIndex) in weekGroup.days"
|
:key="dayIndex">
|
<input
|
class="form-check-input"
|
type="checkbox"
|
:name="'week_'+''+groupIndex"
|
:value="day.value"
|
v-model="day.checked">
|
<label class="form-check-label">
|
{{ day.label }}
|
</label>
|
</div>
|
</div>
|
<!-- 时间输入和删除按钮 -->
|
<div class="row g-3">
|
<div class="col-md-6" style="display: flex">
|
<el-time-select
|
placeholder="起始时间"
|
v-model="weekGroup.startTime"
|
:picker-options="{
|
start: '00:00',
|
step: '01:00',
|
end: '23:00'}"
|
>
|
</el-time-select>
|
<el-time-select
|
placeholder="结束时间"
|
v-model="weekGroup.endTime"
|
:picker-options="{
|
start: '00:00',
|
step: '01:00',
|
end: '23:00',
|
minTime: weekGroup.startTime}">
|
</el-time-select>
|
</div>
|
<div class="col-md-6">
|
<button
|
type="button"
|
class="btn btn-danger"
|
style="float: right"
|
v-on:click="removeWeek(groupIndex)"
|
>
|
<i class="fa fa-trash"></i> 删除
|
</button>
|
</div>
|
</div>
|
</el-card>
|
</el-form-item>
|
|
<!-- 不可用时间 -->
|
<el-form-item label="不可用时间" prop="unUseTimes">
|
<el-button type="text" v-on:click="addUnUseTime()">添加</el-button>
|
<div v-for="(item, dayIndex) in unUseTimes"
|
:key="dayIndex"
|
class="date-picker-item mb-2">
|
<el-date-picker
|
v-model="item.date"
|
type="datetimerange"
|
start-placeholder="开始日期"
|
end-placeholder="结束日期"
|
:default-time="['12:00:00']">
|
</el-date-picker>
|
<button
|
type="button"
|
class="btn btn-danger btn-sm ml-2"
|
v-on:click="removeUnUseTime(dayIndex)">
|
删除
|
</button>
|
</div>
|
</el-form-item>
|
|
<!-- 适用范围 -->
|
<el-form-item label="适用范围" prop="useScope">
|
<el-radio v-model="huiminCard.useScope" label="1">指定门店</el-radio>
|
<el-radio v-model="huiminCard.useScope" label="2">指定场地</el-radio>
|
</el-form-item>
|
|
<!-- 指定门店 -->
|
<el-form-item label="指定门店" v-if="huiminCard.useScope === '1'" prop="storeIds">
|
<el-button type="text" v-on:click="handleSelectStore()">选择门店</el-button>
|
<el-table
|
:data="tableData"
|
height="250"
|
border>
|
<el-table-column
|
prop="province"
|
label="所在省市">
|
</el-table-column>
|
<el-table-column
|
prop="operatorName"
|
label="所属运营商">
|
</el-table-column>
|
<el-table-column
|
prop="storeName"
|
label="门店名称">
|
</el-table-column>
|
<el-table-column
|
prop="ids"
|
label="闸机ID">
|
</el-table-column>
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<template slot-scope="scope">
|
<el-button
|
size="mini"
|
type="text"
|
v-on:click="handleRemoveStore(scope.$index)"
|
icon="el-icon-delete"
|
>删除
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-form-item>
|
|
<!-- 指定场地 -->
|
<el-form-item label="指定场地" v-if="huiminCard.useScope === '2'" prop="siteIds">
|
<el-button type="text" v-on:click="handleSelectStore()">选择场地</el-button>
|
<el-table
|
:data="tableData"
|
height="250"
|
border>
|
<el-table-column
|
prop="province"
|
label="所在省市">
|
</el-table-column>
|
<el-table-column
|
prop="operatorName"
|
label="所属运营商">
|
</el-table-column>
|
<el-table-column
|
prop="storeName"
|
label="门店名称">
|
</el-table-column>
|
<el-table-column
|
prop="ids"
|
label="闸机ID">
|
</el-table-column>
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<template slot-scope="scope">
|
<el-button
|
size="mini"
|
type="text"
|
v-on:click="handleRemoveStore(scope.$index)"
|
icon="el-icon-delete"
|
>删除
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-form-item>
|
|
<!-- 惠民卡介绍 -->
|
<el-form-item label="惠民卡介绍" prop="introduce">
|
<textarea type="text/plain" v-model="introduces" id="editor_1"></textarea>
|
</el-form-item>
|
|
<!-- 排序 -->
|
<el-form-item label="排序">
|
<el-input v-model="huiminCard.sort"></el-input>
|
</el-form-item>
|
|
|
<!-- 操作按钮 -->
|
<div class="row mt-5">
|
<div class="col-sm-9 offset-sm-3">
|
<button type="button" v-on:click="submitForm('formRef')" class="btn btn-primary px-4">提交保存</button>
|
</div>
|
</div>
|
<!-- 选择门店 -->
|
<el-dialog
|
title="选择门店"
|
:visible.sync="dialogVisible2"
|
width="80%"
|
:before-close="handleStoreClose">
|
<el-form ref="form" :model="storeForm" label-width="80px">
|
<el-row :gutter="10">
|
<el-col :span="6">
|
<el-form-item label="所在省">
|
<el-select v-model="storeForm.provinceCode" size="mini" clearable filterable placeholder="请选择">
|
<el-option
|
v-for="item in provinces"
|
:key="item.code"
|
:label="item.name"
|
:value="item.code">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="所在市">
|
<el-select v-model="storeForm.cityCode" clearable size="mini" filterable placeholder="请选择">
|
<el-option
|
v-for="item in cities"
|
:key="item.citycode"
|
:label="item.name"
|
:value="item.citycode">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="所属运营商">
|
<el-select v-model="storeForm.operatorId" clearable size="mini" filterable placeholder="请选择">
|
<el-option
|
v-for="item in operations"
|
:key="item.id"
|
:label="item.name"
|
:value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="门店名称">
|
<el-input size="mini" v-model="storeForm.storeName" placeholder="请输入内容"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="24">
|
<el-button v-on:click="storeList" style="background-color:#1ab394;color: #ffffff" size="mini" icon="el-icon-search">
|
搜索
|
</el-button>
|
</el-col>
|
</el-row>
|
</el-form>
|
<el-table
|
v-loading="tableStoreLoading"
|
:data="tableStoreData"
|
height="250"
|
v-on:selection-change="handleSelectionChange"
|
border>
|
<el-table-column
|
type="selection"
|
width="55">
|
</el-table-column>
|
<el-table-column
|
prop="province"
|
label="所在省市">
|
</el-table-column>
|
<el-table-column
|
prop="operatorName"
|
label="所属运营商">
|
</el-table-column>
|
<el-table-column
|
prop="storeName"
|
label="门店名称">
|
</el-table-column>
|
<el-table-column
|
prop="ids"
|
label="闸机ID">
|
</el-table-column>
|
</el-table>
|
<el-pagination
|
background
|
layout="prev, pager, next"
|
v-on:pagination="storeList"
|
:page.sync="queryParams.pageNum"
|
:limit.sync="queryParams.pageSize"
|
:total="tableStoreTotal">
|
</el-pagination>
|
<span slot="footer" class="dialog-footer">
|
<el-button v-on:click="dialogVisible2 = false">取 消</el-button>
|
<el-button type="primary" v-on:click="handleStore">确 定</el-button>
|
</span>
|
</el-dialog>
|
|
<!-- 选择场地 -->
|
<el-dialog
|
title="选择场地"
|
:visible.sync="dialogVisible3"
|
width="80%"
|
:before-close="handleSiteClose">
|
|
<el-form ref="form" :model="siteForm" label-width="80px">
|
<el-row :gutter="10">
|
<el-col :span="6">
|
<el-form-item label="所在省">
|
<el-select v-model="siteForm.provinceCode" size="mini" clearable filterable placeholder="请选择">
|
<el-option
|
v-for="item in provinces"
|
:key="item.code"
|
:label="item.name"
|
:value="item.code">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="所在市">
|
<el-select v-model="siteForm.cityCode" clearable size="mini" filterable placeholder="请选择">
|
<el-option
|
v-for="item in cities"
|
:key="item.citycode"
|
:label="item.name"
|
:value="item.citycode">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="所属运营商">
|
<el-select v-model="siteForm.operatorId" clearable size="mini" filterable placeholder="请选择">
|
<el-option
|
v-for="item in operations"
|
:key="item.id"
|
:label="item.name"
|
:value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="6">
|
<el-form-item label="门店名称">
|
<el-input size="mini" v-model="siteForm.storeName" placeholder="请输入内容"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="24">
|
<el-button v-on:click="siteList" style="background-color:#1ab394;color: #ffffff" size="mini" icon="el-icon-search">
|
搜索
|
</el-button>
|
</el-col>
|
</el-row>
|
</el-form>
|
|
<el-table
|
v-loading="tableSiteLoading"
|
:data="tableSiteData"
|
height="250"
|
v-on:selection-change="handleSelectionChange"
|
border>
|
<el-table-column
|
type="selection"
|
width="55">
|
</el-table-column>
|
<el-table-column
|
prop="province"
|
label="所在省市">
|
</el-table-column>
|
<el-table-column
|
prop="operatorName"
|
label="所属运营商">
|
</el-table-column>
|
<el-table-column
|
prop="storeName"
|
label="门店名称">
|
|
</el-table-column>
|
<el-table-column
|
prop="siteName"
|
label="场地名称">
|
</el-table-column>
|
<el-table-column
|
prop="ids"
|
label="闸机ID2">
|
</el-table-column>
|
</el-table>
|
|
<pagination
|
v-show="tableSiteTotal>0"
|
:total="tableSiteTotal"
|
:page.sync="queryParams.pageNum"
|
:limit.sync="queryParams.pageSize"
|
v-on:pagination="siteList"></pagination>
|
|
<span slot="footer" class="dialog-footer">
|
<el-button v-on:click="dialogVisible3 = false">取 消</el-button>
|
<el-button type="primary" v-on:click="handleSite">确 定</el-button>
|
</span>
|
</el-dialog>
|
</el-form>
|
</div>
|
|
<style>
|
.form-container {
|
background: #ffffff;
|
border-radius: 12px;
|
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
|
padding: 2rem;
|
}
|
|
.upload-area {
|
border: 2px dashed #dee2e6;
|
border-radius: 8px;
|
padding: 1.5rem;
|
transition: all 0.3s;
|
cursor: pointer;
|
flex-direction: column;
|
align-items: center;
|
justify-content: center;
|
min-height: 200px; /* 设置一个最小高度,确保有足够的空间 */
|
position: relative; /* 为图片定位提供基准 */
|
overflow: hidden; /* 防止图片溢出 */
|
}
|
|
.upload-area:hover {
|
border-color: #4a90e2;
|
background: #f8f9fa;
|
}
|
|
.upload-area i {
|
margin-bottom: 10px;
|
}
|
|
input[type=file] {
|
display: none;
|
}
|
|
|
</style>
|
|
<script src="${ctxPath}/modular/system/tHuiminCard/tHuiminCard_info.js"></script>
|
<script src="${ctxPath}/js/vue/vue.js"></script>
|
<script src="${ctxPath}/js/elementui/index.js"></script>
|
<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
|
<script>
|
let vue = new Vue({
|
el: '#app0',
|
props: {
|
// 数量限制
|
limit: {
|
type: Number,
|
default: 2
|
},
|
},
|
data() {
|
return {
|
storeForm: {
|
provinceCode: null,
|
cityCode: null,
|
operatorId: null,
|
storeName: '',
|
},
|
siteForm: {
|
provinceCode: null,
|
cityCode: null,
|
operatorId: null,
|
storeName: '',
|
},
|
weeks: [
|
{
|
days: [ // 每个星期组的星期选项
|
{
|
value: '1',
|
label: '星期一',
|
checked: false,
|
},
|
{
|
value: '2',
|
label: '星期二',
|
checked: false,
|
},
|
{
|
value: '3',
|
label: '星期三',
|
checked: false,
|
},
|
{
|
value: '4',
|
label: '星期四',
|
checked: false,
|
},
|
{
|
value: '5',
|
label: '星期五',
|
checked: false,
|
},
|
{
|
value: '6',
|
label: '星期六',
|
checked: false,
|
},
|
{
|
value: '7',
|
label: '星期日',
|
checked: false,
|
}
|
],
|
},
|
],
|
provinces: [],
|
cities: [],
|
stores: [],
|
operations: [],
|
periodOfValidity: null,
|
autoUpload: true,//自动上传
|
previewImg: '',//模型数据,用于上传图片完成后图片预览
|
dialogVisible: false,
|
dialogVisible2: false,
|
dialogVisible3: false,
|
banners: [],
|
introduces: null,
|
multipleSelection1: [],
|
multipleSelection2: [],
|
unUseTimes: [
|
{}
|
],
|
huiminCard: {
|
id: null,
|
huiMinName: null,
|
huiMinType: null,
|
salesMoney: null,
|
buyCover: null,
|
unBuyCover: null,
|
buyRemark: null,
|
unBuyRemark: null,
|
grantCount: null,
|
limitCount: null,
|
banner: null,
|
endTime: null,
|
useWeeks: null,
|
useTimes: null,
|
introduce: null,
|
useScope: '1',
|
useIds: null,
|
sort: null,
|
storeId: null
|
},
|
tableData: [],
|
tableStoreData: [],
|
tableStoreTotal: 0,
|
tableStoreLoading: false,
|
tableSiteData: [],
|
tableSiteTotal: 0,
|
tableSiteLoading: false,
|
queryParams: {
|
pageNum: 1,
|
pageSize: 10,
|
},
|
|
rules: {
|
buyRemark: [{required: true, message: '请输入使用说明', trigger: 'blur'}],
|
cover: [{
|
validator: (rule, value, callback) => {
|
if (!this.huiminCard.unBuyCover) {
|
callback(new Error('请上传未购买封面'));
|
}
|
if (!this.huiminCard.buyCover) {
|
callback(new Error('请上传已购买封面'));
|
}
|
callback();
|
},
|
trigger: 'blur'
|
}],
|
buyCover: [{required: true, message: '已购买封面不能为空', trigger: 'blur'}],
|
huiMinName: [{required: true, message: '请输入惠民卡名称', trigger: 'blur'}],
|
huiMinType: [{required: true, message: '请选择惠民卡类型', trigger: 'change'}],
|
salesMoney: [{required: true, message: '请输入售卖金额', trigger: 'blur'}],
|
unBuyRemark: [{required: true, message: '请输入使用说明', trigger: 'blur'}],
|
banner: [{required: true, message: '请上传轮播图', trigger: 'blur'}],
|
limitCount: [{required: true, message: '请输入限购数量', trigger: 'blur'}],
|
weeks: [
|
{
|
required: true,
|
message: '请填写可用时间',
|
trigger: 'blur',
|
validator: (rule, value, callback) => {
|
const everyFalse = this.weeks.every(week =>
|
week.days.every(day =>
|
day.checked === false
|
)
|
);
|
if (everyFalse) {
|
callback(new Error('请选择可用星期'));
|
}
|
const everyNull = this.weeks.every(obj =>
|
obj.startTime === null ||
|
obj.endTime === null
|
);
|
if (everyNull) {
|
callback(new Error('请选择可用时间'));
|
}
|
callback();
|
},
|
}
|
],
|
storeIds: [
|
{
|
required: true,
|
trigger: 'blur',
|
validator: (rule, value, callback) => {
|
if (this.huiminCard.useIds === null || this.huiminCard.useIds.length === 0) {
|
callback(new Error('请选择指定门店'));
|
}
|
callback();
|
},
|
}
|
],
|
siteIds: [
|
{
|
required: true,
|
trigger: 'blur',
|
validator: (rule, value, callback) => {
|
if (this.huiminCard.useIds === null || this.huiminCard.useIds.length === 0) {
|
callback(new Error('请选择指定场地'));
|
}
|
callback();
|
},
|
}
|
],
|
introduce: [
|
{
|
required: true, validator: (rule, value, callback) => {
|
let content = UE.getEditor('editor_1').getContent();
|
console.log(content)
|
if (content.length === 0) {
|
callback(new Error('请输入详细介绍'));
|
} else {
|
callback();
|
}
|
}
|
}
|
],
|
},
|
}
|
},
|
methods: {
|
handleUnBuyCoverSuccess(res, file) {
|
this.huiminCard.unBuyCover = res;
|
},
|
handleUnBuyCoverExceed() {
|
Feng.error('最多上传一张图片');
|
},
|
handleUnBuyCoverRemove(file, fileList) {
|
this.huiminCard.unBuyCover = '';
|
},
|
handleBuyCoverSuccess(res, file) {
|
this.huiminCard.buyCover = res;
|
},
|
handleBuyCoverRemove(file, fileList) {
|
this.huiminCard.buyCover = '';
|
},
|
handleSuccess(res, file) {
|
this.banners.push(res)
|
this.huiminCard.banner = this.banners.join(',');
|
},
|
|
beforeUpload(file) {
|
const isLt2M = file.size / 1024 / 1024 < 10;
|
if (!isLt2M) {
|
Feng.error('上传图片大小不能超过 10MB!');
|
}
|
return isLt2M;
|
},
|
handleRemove(file, fileList) {
|
const fileUrl = file.response;
|
this.banners.forEach((item, index) => {
|
if (item === fileUrl) {
|
this.banners.splice(index, 1);
|
}
|
});
|
this.huiminCard.banner = this.banners.join(',');
|
},
|
addWeek() {
|
// 新增一个包含默认星期的组
|
this.weeks.push({
|
days: [
|
{
|
value: '1',
|
label: '星期一',
|
checked: false,
|
},
|
{
|
value: '2',
|
label: '星期二',
|
checked: false,
|
},
|
{
|
value: '3',
|
label: '星期三',
|
checked: false,
|
},
|
{
|
value: '4',
|
label: '星期四',
|
checked: false,
|
},
|
{
|
value: '5',
|
label: '星期五',
|
checked: false,
|
},
|
{
|
value: '6',
|
label: '星期六',
|
checked: false,
|
},
|
{
|
value: '7',
|
label: '星期日',
|
checked: false,
|
}
|
],
|
});
|
},
|
removeWeek(index) {
|
this.weeks.splice(index, 1);
|
console.log(this.weeks)
|
},
|
addUnUseTime() {
|
this.unUseTimes.push({});
|
},
|
removeUnUseTime(index) {
|
this.unUseTimes.splice(index, 1);
|
},
|
storeList() {
|
this.tableStoreLoading = true;
|
let vm = this;
|
let ajax = new $ax(Feng.ctxPath + "/tHuiminCard/storeList",
|
(data) => {
|
vm.tableStoreData = data.records; // 使用 vm 替代 this
|
vm.tableStoreTotal = data.total;
|
vm.tableStoreLoading = false;
|
console.log('成功获取数据:', vm.tableStoreData); // 验证数据
|
},
|
(data) => {
|
vm.tableStoreLoading = false;
|
Feng.error("请求失败: " + data.responseJSON.message);
|
}
|
);
|
this.storeForm.pageNum = vm.queryParams.pageNum;
|
this.storeForm.pageSize = vm.queryParams.pageSize
|
ajax.set(this.storeForm);
|
|
ajax.start();
|
},
|
siteList() {
|
this.tableSiteLoading = true;
|
let vm = this;
|
let ajax = new $ax(Feng.ctxPath + "/tHuiminCard/siteList",
|
(data) => {
|
vm.tableSiteData = data.records; // 使用 vm 替代 this
|
vm.tableSiteTotal = data.total;
|
vm.tableSiteLoading = false;
|
console.log('成功获取数据:', vm.tableSiteData); // 验证数据
|
},
|
(data) => {
|
vm.tableSiteLoading = false;
|
Feng.error("请求失败: " + data.responseJSON.message);
|
}
|
);
|
this.siteForm.pageNum = vm.queryParams.pageNum;
|
this.siteForm.pageSize = vm.queryParams.pageSize
|
ajax.set(this.siteForm);
|
ajax.start();
|
},
|
handleStoreClose() {
|
this.dialogVisible2 = false;
|
},
|
handleSiteClose() {
|
this.$confirm('确认关闭?1')
|
.then(_ => {
|
this.dialogVisible3 = false;
|
})
|
.catch(_ => {
|
});
|
},
|
handleSelectionChange(val) {
|
if (this.huiminCard.useScope === '1') {
|
this.multipleSelection1 = val;
|
} else if (this.huiminCard.useScope === '2') {
|
this.multipleSelection2 = val;
|
}
|
|
},
|
handleRemoveStore(index) {
|
this.tableData.splice(index, 1);
|
},
|
handleSelectStore() {
|
this.queryParams.pageNum = 1;
|
this.queryParams.pageSize = 10;
|
if (this.huiminCard.useScope === '1') {
|
this.dialogVisible2 = true;
|
this.storeList();
|
} else if (this.huiminCard.useScope === '2') {
|
this.dialogVisible3 = true;
|
this.siteList();
|
}
|
},
|
handleStore() {
|
if (this.multipleSelection1.length === 0) {
|
Feng.info('请选择数据');
|
return;
|
}
|
this.dialogVisible2 = false
|
this.tableData = this.multipleSelection1;
|
this.huiminCard.useIds = this.tableData.map(item => item.storeId).join(',');
|
},
|
handleSite() {
|
if (this.multipleSelection2.length === 0) {
|
Feng.info('请选择数据');
|
return;
|
}
|
this.dialogVisible3 = false
|
this.tableData = this.multipleSelection2;
|
this.huiminCard.useIds = this.tableData.map(item => item.siteId).join(',');
|
},
|
submitForm(formName) {
|
this.$refs[formName].validate(valid => {
|
console.log(valid)
|
if (valid) {
|
let data = this.huiminCard;
|
let weeks = this.weeks;
|
data.useWeeks = JSON.stringify(weeks)
|
data.introduce = UE.getEditor('editor_1').getContent();
|
//data
|
if (this.periodOfValidity){
|
data.startTime = this.periodOfValidity[0];
|
data.endTime = this.periodOfValidity[1];
|
}
|
|
if (this.unUseTimes){
|
data.unUseTimes = JSON.stringify(this.unUseTimes)
|
}
|
|
let vm = this;
|
let ajax = new $ax(Feng.ctxPath + "/tHuiminCard/add",
|
(data) => {
|
window.parent.parentVue.handleSearch();
|
THuiminCardInfoDlg.close();
|
},
|
(data) => {
|
vm.tableStoreLoading = false;
|
Feng.error("请求失败: " + data.responseJSON.message);
|
}
|
);
|
ajax.set(data)
|
ajax.start();
|
}
|
});
|
},
|
},
|
created() {
|
let editor_1 = UE.getEditor('editor_1');
|
|
|
let ajax = new $ax(Feng.ctxPath + "/base/region/getProvince",
|
(data) => {
|
this.provinces = data;
|
},
|
(data) => {
|
Feng.error("请求失败: " + data.responseJSON.message);
|
}
|
);
|
ajax.start();
|
|
let ajax2 = new $ax(Feng.ctxPath + "/base/region/getCity",
|
(data) => {
|
this.cities = data;
|
},
|
(data) => {
|
Feng.error("请求失败: " + data.responseJSON.message);
|
}
|
);
|
ajax2.start();
|
|
let ajax3 = new $ax(Feng.ctxPath + "/base/operator/getOperator",
|
(data) => {
|
this.operations = data;
|
},
|
(data) => {
|
Feng.error("请求失败: " + data.responseJSON.message);
|
}
|
);
|
ajax3.start();
|
|
|
},
|
});
|
|
|
|
</script>
|
|
|
</body>
|
@}
|