小班、自考证书合并列表导出功能,培训班管理可在3个app中选择显示模块

This commit is contained in:
liuyuan
2025-06-27 15:05:41 +08:00
parent 2c89e36035
commit 4f52d8377d
6 changed files with 395 additions and 119 deletions

View File

@@ -81,6 +81,7 @@ const mainRoutes = {
{ path: '/course-taihumedList', component: _import('modules/course/taihumedList'), name: 'course-taihumedList', meta: { title: '太湖标签', isTab: true } },
{ path: '/courses-list', component: _import('modules/talents/courses-list'), name: 'courses-list', meta: { title: '查看课程', isTab: true } },
{ path: '/mergeList', component: _import('modules/certificate/mergeList'), name: 'mergeList', meta: { title: '小班、自考证书', isTab: true } },
],
beforeEnter (to, from, next) {
let token = Vue.cookie.get('token')

View File

@@ -0,0 +1,223 @@
<template>
<div class="mod-config">
<el-form>
<el-form-item>
<el-button type="primary" @click="exportHandle()">全部导出</el-button>
</el-form-item>
</el-form>
<el-table
:data="dataList"
border
v-loading="dataListLoading"
style="width: 100%"
>
<el-table-column
label="序号"
type="index"
align="center"
width="80">
</el-table-column>
<el-table-column label="姓名" align="center" width="240">
<template slot-scope="scope">{{ scope.row.name }}</template>
</el-table-column>
<el-table-column label="电话" align="center" width="240">
<template slot-scope="scope">{{ scope.row.tel }}</template>
</el-table-column>
<el-table-column label="证书总数" align="center" width="200">
<template slot-scope="scope">{{ scope.row.count }}</template>
</el-table-column>
<el-table-column label="证书名称" align="center">
<template slot-scope="scope">
<div style=" max-height: 500px; overflow-y: scroll;">
<div v-for="(item,index) in scope.row.certificate" :key="index" style=" text-align: left; font-size: 12px; line-height: 22px;">
{{ index+1 }}. {{ item.title }} - 编号{{ item.certificateNo }}
</div>
</div>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[20, 40, 60, 80, 100]"
:page-size="pageSize"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
>
</el-pagination>
</div>
</template>
<script>
import global from "../../common/common.vue"; //引入共用组间
import debounce from "lodash/debounce"; //导入lodash中的debounce
export default {
data() {
return {
baseUrl: global.baseUrl,
dataList: [],
pageIndex: 1,
pageSize: 20,
total: 0,
dataListLoading: false
};
},
components: {
},
activated(){
this.getDataList();
},
methods: {
// 获取数据列表
getDataList() {
this.dataListLoading = true;
this.$http({
url: this.$http.adornUrl("/master/userCertificate/userClassAndZKCertificateList"),
method: "post",
data: this.$http.adornData({
current: this.pageIndex,
limit: this.pageSize
}),
}).then(({ data }) => {
if (data && data.code === 0) {
this.dataList = data.certificateList.records;
this.total = data.certificateList.total;
}
this.dataListLoading = false;
});
},
// 每页数
sizeChangeHandle(val) {
this.pageSize = val;
this.pageIndex = 1;
this.getDataList();
},
// 当前页
currentChangeHandle(val) {
this.pageIndex = val;
this.getDataList();
},
//全部导出
exportHandle(){
this.dataListLoading = true;
try {
this.$http({
url: this.$http.adornUrl("/master/userCertificate/exportUserClassAndZKCertificate"),
method: "post",
data: this.$http.adornData({}),
responseType: "blob"
}).then(res => {
const blob = new Blob([res.data], {
type:
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
});
const link = document.createElement("a");
link.href = window.URL.createObjectURL(blob);
link.download = '小班、自考证书全部文件';
link.click();
window.URL.revokeObjectURL(link.href); // 释放内存
this.dataListLoading = false;
this.$message({
message: "文件导出成功,请注意查看!",
type: "success",
duration: 3000,
showClose: true
});
});
} catch (err) {
this.$message.error("文件下载失败!");
this.dataListLoading = false;
}
}
},
};
</script>
<style lang="less" >
::v-deep.custom-height {
height: 370px;
}
.avatar-uploader {
height: 1px;
}
.general_editor {
height: 420px;
width: 1060px !important;
}
.editor_form {
height: 500px;
}
.dialog_box {
.el-form-item__content {
width: calc(100% - 120px) !important;
}
.form_item {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.el-form-item {
width: 290px;
}
}
}
.checkbox-group .el-checkbox{
margin-left: 0;
margin-right: 20px;
.el-checkbox__label{
padding-left: 6px;
font-size: 13px;
}
}
.hufen_block{
display: flex;
align-items: center;
span{
width: 70px;
display: inline-block;
}
.el-input{
width: 90%;
line-height: 34px;
}
.el-input__inner{
width: 220px;
height: 30px;
line-height: 34px;
padding: 0 8px;
}
.el-input__inner::placeholder {
font-size: 12px;
}
}
.custom-flatpickr .el-range-input{
margin-left: 5px;
}
::v-deep.el-form-item__label{
width: 110px;
}
.editBtn{
margin-left: 10px;
width: 70px;
border-color: #17B3A3;
color: #17B3A3;
}
.addFormBox {
overflow: hidden;
.form_item {
width: 33%;
float: left;
}
}
</style>

View File

@@ -6,24 +6,30 @@
<el-tab-pane label="电子书" name="1"> </el-tab-pane>
<el-tab-pane label="充值订单" name="2"></el-tab-pane>
</el-tabs> -->
<el-radio-group size="mini" v-model="tabChange.tabActiveName" style="margin-bottom: 10px;">
<div style=" display: flex; margin-bottom: 15px;">
<el-radio-group size="mini" v-model="tabChange.tabActiveName">
<el-radio-button label="">全部</el-radio-button>
<el-radio-button label="0">待付款</el-radio-button>
<el-radio-button label="1">待发货</el-radio-button>
<el-radio-button label="2">已发货</el-radio-button>
<el-radio-button label="3">已完成</el-radio-button>
</el-radio-group>
<div class="order_type_block" style=" display: none;">
<span>订单类型</span>
<el-select v-model="orderType" placeholder="请选择" style=" padding-left: 10px;">
<el-option label="VIP订单" value="1">VIP订单</el-option>
<el-option label="名医精彩订单" value="2">名医精彩订单</el-option>
<el-option label="普通订单" value="3">普通订单</el-option>
</el-select>
</div>
</div>
<div style="margin-bottom: 10px;">
<el-radio-group size="mini" v-model="tabChange.isPrint" v-if="tabChange.tabActiveName == 2">
<el-radio-button label="0">已发货订单</el-radio-button>
<el-radio-button label="1">打印面单</el-radio-button>
</el-radio-group>
<!-- <el-radio v-model="tabChange.isPrint" label="" border size="mini">全部</el-radio> -->
<!-- <el-radio v-model="tabChange.isPrint" label="1" border size="mini">已打印</el-radio>
<el-radio v-model="tabChange.isPrint" label="2" border size="mini">未打印</el-radio> -->
<!-- <el-button style="margin-left: 10px;" size="mini" v-if="isAuth('book:buyorder:delete')" type="primary" @click="printHandle(dataListSelections)"
:disabled="dataListSelections.length <= 0" >批量打印</el-button> -->
</div>
<div style="margin-bottom: 10px; float:left; margin-right: 15px"
v-if="tabChange.isPrint == '1' && tabChange.tabActiveName == 2">
@@ -36,17 +42,11 @@
@keyup.enter.native="getDataList()">
<el-form-item>
<div class="block">
<!-- <el-date-picker size="mini" value-format="timestamp" v-model="" type="datetimerange" :picker-options="timePickerOptions"
range-separator="" start-placeholder="开始日期" end-placeholder="结束日期" align="right" @change="test">
</el-date-picker> -->
<el-date-picker v-model="MdDataForm.date" type="date" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</div>
</el-form-item>
<!-- <el-form-item>
<el-input style="width:200px" v-model="MdDataForm.key" placeholder="订单编号/运单编号" clearable></el-input>
</el-form-item> -->
<el-form-item>
<el-button @click="pageIndex = 1;getPrintSheetList()">查询</el-button>
</el-form-item>
@@ -85,13 +85,6 @@
</el-form-item>
</el-form>
<div class="buttonGroup">
<!-- <el-checkbox :disabled="multipleDisabled" :indeterminate="checkboxGroup.isIndeterminate"
v-model="checkboxGroup.checkAll" v-if="tabChange.tabActiveName == 1" class="checkAll showLabel"
@change="handleCheckAllChange">全选</el-checkbox> -->
<!-- <span v-if="tabChange.tabActiveName == 0||tabChange.tabActiveName == 1" style="display: inline-block;margin-bottom: 20px;">
<el-button size="mini" v-if="isAuth('book:buyorder:delete')" type="danger" @click="deleteHandle()"
:disabled="dataListSelections.length <= 0">{{tabChange.tabActiveName}}批量删除</el-button>
</span> -->
<span style="" v-if="tabChange.tabActiveName == 1" style="display: inline-block;margin-bottom: 20px;">
<el-badge :value="mergeList.length" class="item">
<router-link :to="{ path: 'buyorder-mergeorder', query: {} }">
@@ -100,10 +93,6 @@
</router-link>
</el-badge>
</span>
<!-- <span style="" v-if="tabChange.tabActiveName == 1">
<el-button style="margin-left: 10px;" size="mini" v-if="isAuth('book:buyorder')" type="primary"
:disabled="checkedOrders.length <= 0" @click="checkDeliver">批量发货</el-button>
</span> -->
<span style="" v-if="tabChange.tabActiveName == 2 && tabChange.isPrint == 1">
<el-button style="margin-left: 10px;" size="mini" v-if="isAuth('book:buyorder')" type="warning"
:disabled="SheetSelectionList.length <= 0" @click="printHandle(null,null,'piliang')">批量打印</el-button>
@@ -127,14 +116,9 @@
</el-table-column>
<el-table-column width="280" label="操作">
<template slot-scope="scope">
<!-- <el-button type="text" size="mini" >查看面单</el-button> -->
<el-button size="mini" type="warning" plain @click="showAnyDialog(scope.row)">查看面单</el-button>
<!-- <router-link :to="{ path: 'buyorder-print', query: { orderId: scope.row.orderId } }">
<el-button size="mini" type="primary" plain>打印面单</el-button> 跳转到详情页面
</router-link> -->
<el-button size="mini" type="primary" plain
@click="printHandle(scope.row.expressOrderSn,scope.row)">打印面单</el-button>
<!-- <el-button size="mini" type="danger" plain @click="deleteVoid">面单作废</el-button> -->
</template>
</el-table-column>
</el-table>
@@ -175,13 +159,8 @@
</el-col>
<el-col :span="6">
<div class="tip">
<div v-if="fitem.isSend == 1" class="hasSplit"><span style="color:#999">该订单已被拆分发货</span>
<!-- <el-button type="text" @click="showOrderSheet(fitem.orderId)" size="mini">查看面单</el-button> -->
<div v-if="fitem.isSend == 1" class="hasSplit"><span style="color:#999">该订单已被拆分发货</span> -->
</div>
<!-- <icon-svg name="zhuyi"></icon-svg> 订单存在可合并发货项 -->
<!-- <router-link :to="{ path: 'order-buyorderdetail', query: { orderId: fitem.orderId , ordertype: fitem.orderStatus} }">
<el-button type="primary" style="color: #515a6e;" size="mini">订单详情</el-button>
</router-link> -->
</div>
</el-col>
</el-row>
@@ -232,7 +211,6 @@
<div><span>{{ fitem.realMoney }}</span> × 1 </div>
</div>
</div>
<!-- <img v-if="fitem.orderType == 'vip'" src="../../../../static/img/oder_vip.png" width="60px" height="60px"> -->
</div>
<div class="total td2 xcenter">
<div class="tabName">商品合计<em>{{ fitem.orderMoney }}</em></div>
@@ -240,7 +218,6 @@
<div class="tabName">实收<em>{{ fitem.realMoney }}</em></div>
<div class="tabContent">
<div></div>
<!-- <div>含快递费10.00优惠券{{ fitem.couponName }}积分抵扣-10.00</div> -->
<div></div>
<div v-if="fitem.paymentMethod == 1"><icon-svg name="weixin"></icon-svg> 微信支付</div>
<div v-if="fitem.paymentMethod == 2"><icon-svg name="zhifubao"></icon-svg> 支付宝支付</div>
@@ -248,27 +225,9 @@
height="22px">天医币支付</div>
</div>
<div>
<!-- <span v-if="fitem.user.vip==1">
<img style="width: 20px;height: 20px;" src="../../../assets/img/vip.png" alt="">
<el-tag size="mini" type="warning" style="font-weight: bold;" effect="dark">超级VIP</el-tag>
</span>
<span v-if="fitem.user.vip==2">
<img style="width: 20px;height: 20px;" src="../../../assets/img/wumen.png" alt="">
<el-tag size="mini" style="font-weight: bold;">吴门医述</el-tag>
</span>
<span v-if="fitem.user.vip==3">
<img style="width: 20px;height: 20px;" src="../../../assets/img/zm.png" alt="">
<el-tag size="mini" type="success" style="font-weight: bold;" >众秒之门</el-tag>
</span> -->
<span v-if="!fitem.user.userVips||fitem.user.userVips.length==0">-</span>
<span v-else v-html="computedVipType(fitem.user.userVips)">
<!-- <img style="width: 25px;height: 25px;" src="../../../assets/img/vip.png" alt=""> -->
</span>
<span v-else v-html="computedVipType(fitem.user.userVips)"></span>
</div>
</div>
<div class="buier td3 xcenter">
@@ -281,37 +240,24 @@
</div>
<div style="margin-bottom:10px">
<el-button @click="changeAddressShow(fitem)" type="primary" size="mini" plain>修改收货信息</el-button>
<!-- <a href="#" v-if="fitem.orderStatus <= 1"><i class="el-icon-edit"></i>修改收货信息</a> -->
</div>
</div>
<div class="tabContent">
<!-- <div>用户id{{ fitem.userId }}</div> -->
<!-- <div>收货地址{{ fitem.address }}</div> -->
<!-- <div class="buier_tip">买家备注尽快发货</div> -->
</div>
</div>
<div class="buier td4 xcenter flexbox" style="align-items: center; justify-content: center;">
<div>
<div class="orderStatus">待发货</div>
<!-- <div class="tabContent">
<div class="time">支付时间2023-02-09 14:16:08</div>
</div> -->
<div><el-button style=" line-height: 6px;" type="primary" size="mini"
@click="orderDeliver(fitem)">发货</el-button>
</div>
</div>
</div>
<div class="td5 flexbox" style="justify-content: center; align-items: center; width: 150px; text-align:center">
<!-- <div class="tabName" style="">备注信息
<br/>
<span :style="fitem.remark != '' ? 'color: red' : 'color: #999'">{{ fitem.remark != '' ? fitem.remark : '无' }}</span></div> -->
<div style="margin-bottom: 15px; text-align: center;">
<div class="tabContent">
<span class="tabName">备注</span>
<!-- <el-button v-if="fitem.remark" size="mini" type="text"
@click="openShutManager(this, 'box' + index)">查看</el-button> -->
<span @click="editBeizhu(fitem)">
<icon-svg name="beizhu"
style="width: 14px; height:14px; margin-left: 10px; cursor: pointer;"></icon-svg>
@@ -334,11 +280,6 @@
v-loading="dataListLoading" @selection-change="selectionChangeHandle" style="width: 100%;">
<el-table-column type="selection" header-align="center" align="center" width="50">
</el-table-column>
<!-- <el-table-column label="序号" width="70" align="center">
<template slot-scope="scope">
{{ (pageIndex - 1) * pageSize + scope.$index + 1 }}
</template>
</el-table-column> -->
<el-table-column prop="orderSn" header-align="center" align="center" label="订单编号" width="150">
</el-table-column>
<el-table-column prop="userName" header-align="center" align="center" label="VIP" width="140">
@@ -346,22 +287,8 @@
<span v-if="!scope.row.user.userVips||scope.row.user.userVips.length==0">-</span>
<span v-else v-html="computedVipType(scope.row.user.userVips)">
<!-- <img style="width: 25px;height: 25px;" src="../../../assets/img/vip.png" alt=""> -->
</span>
<!-- <span v-if="scope.row.user.vip==2">
<img style="width: 25px;height: 25px;" src="../../../assets/img/wumen.png" alt="">
<el-tag size="mini" style="font-weight: bold;">吴门医述</el-tag>
</span>
<span v-if="scope.row.user.vip==3">
<img style="width: 25px;height: 25px;" src="../../../assets/img/zm.png" alt="">
<el-tag size="mini" type="success" style="font-weight: bold;" >众秒之门</el-tag>
</span> -->
</template>
</el-table-column>
<el-table-column prop="shippingUser" header-align="center" align="center" label="收货人信息">
@@ -743,7 +670,8 @@
SheetSelectionList: [],
addressLoad: false, // 省份加载动画
booksShow: false, // 展示包含书籍信息
currBookLIst: []
currBookLIst: [],
orderType: '', //订单类型
}
},
components: {
@@ -1747,4 +1675,16 @@ this.pageIndex = 1
.fengbi {
margin-left: 0 !important;
}
.order_type_block{
display: flex;
align-items: center;
justify-content: center;
margin-left: 40px;
}
/deep/ .order_type_block .el-input__inner{
height: 28px;
line-height: 28px;
font-size: 12px;
}
</style>

View File

@@ -89,6 +89,13 @@
label="商品价格"
>
</el-table-column>
<el-table-column
prop="productStock"
header-align="center"
align="center"
label="库存剩余"
>
</el-table-column>
<el-table-column header-align="center" align="center" label="商品图">
<template slot-scope="scope">
<img

View File

@@ -27,6 +27,13 @@
<el-option label="线下" value="2">线下</el-option>
</el-select>
</el-form-item>
<el-form-item label="App名称">
<el-select v-model="dataForm.displayApp" placeholder="请选择">
<el-option label="众妙之门" value="1">众妙之门</el-option>
<el-option label="吴门医述" value="2">吴门医述</el-option>
<el-option label="心灵空间" value="3">心灵空间</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
@click="
@@ -74,11 +81,6 @@
<el-table-column label="标题" align="center" width="160">
<template slot-scope="scope">{{ scope.row.title }}</template>
</el-table-column>
<el-table-column label="海报" align="center" width="90">
<template slot-scope="scope">
<img width="50px" :src="scope.row.icon" v-if="scope.row.icon" alt="" />
</template>
</el-table-column>
<el-table-column label="年份" align="center" prop="year" width="90"></el-table-column>
<el-table-column label="原价" align="center" width="80">
<template slot-scope="scope">{{ scope.row.fee }}</template>
@@ -95,6 +97,11 @@
五星湖粉 {{ scope.row.fiveHuFee }}
</template>
</el-table-column>
<el-table-column label="App名称" align="center" width="90">
<template slot-scope="scope">
{{ getAppNames(scope.row.displayApp) }}
</template>
</el-table-column>
<el-table-column label="活动类型" align="center" prop="type" width="90">
<template slot-scope="scope">
<span v-if="scope.row.type==1">线上</span>
@@ -116,7 +123,7 @@
</el-switch>
</template>
</el-table-column>
<el-table-column label="是否上架" align="center" width="200">
<!-- <el-table-column label="是否上架" align="center" width="200">
<template slot-scope="scope">
<el-switch
@change="changeDisplayFlag(scope.row)"
@@ -129,7 +136,7 @@
inactive-text="下架">
</el-switch>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column label="排序" align="center" prop="sort" width="90"></el-table-column>
@@ -227,6 +234,11 @@
</div>
</el-form-item>
<el-form-item label="选择App">
<el-checkbox-group v-model="appType" @change="handleCheckedApp" class="checkbox-group">
<el-checkbox v-for="item in appList" :label="item.type" :key="item.type">{{item.title}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="活动类型" prop="type">
<el-radio-group v-model="addForm.type">
<el-radio :label="1">线上</el-radio>
@@ -245,7 +257,7 @@
>
</el-switch>
</el-form-item>
<el-form-item label="是否上架" prop="displayFlag">
<!-- <el-form-item label="是否上架" prop="displayFlag">
<el-switch
v-model="addForm.displayFlag"
active-color="#13ce66"
@@ -256,7 +268,7 @@
active-text="上架"
>
</el-switch>
</el-form-item>
</el-form-item> -->
<el-form-item label="上传海报" prop="icon">
<el-upload
:limit="1"
@@ -310,6 +322,7 @@ export default {
trainingDate: '',
singupFlag: '', //1可报名 0不可报名
displayFlag: '', //0上架 1下架
displayApp: ''
},
addForm: {
id: "", //新增不传
@@ -328,6 +341,7 @@ export default {
fiveHuFee: '',
singupFlag: 1, //1可报名 0不可报名
displayFlag: 0, //0上架 1下架
displayApp: '',
sort: ''
},
editId: "",
@@ -367,14 +381,30 @@ export default {
//保存数据
vipList: [],
svipList: [],
appList: [
{
type: '1',
title: '众妙之门'
},
{
type: '2',
title: '吴门医述'
},
{
type: '3',
title: '心灵空间'
}
],
//勾选值
vipType: [],
svipType: [],
appType: [],
//日期排序
sortParams: {
date1: '',
date2: ''
}
},
//疯子读书-0 众妙之门-1 吴门医述-2 心灵空间-3 太湖云医-4
};
},
activated(){
@@ -382,6 +412,18 @@ export default {
this.getVipData();
},
methods: {
//app名称展示的逻辑
getAppNames(displayApp) {
if (!displayApp) return ''
return displayApp.split(',')
.map(code => code.trim())
.filter(code => code !== '')
.map(code => {
const app = this.appList.find(item => item.type === code);
return app ? app.title : '';
})
.join(' ');
},
//排序变化事件
handleSortChange({ column, prop, order }) {
// 更新当前列的排序状态
@@ -426,7 +468,8 @@ export default {
type: this.dataForm.type,
year: this.dataForm.year,
singupFlag: this.dataForm.singupFlag,
displayFlag: this.dataForm.displayFlag
//displayFlag: this.dataForm.displayFlag,
displayApp: this.dataForm.displayApp
}),
}).then(({ data }) => {
if (data && data.code === 0) {
@@ -461,6 +504,7 @@ export default {
vipType: '',
vipFee: '',
svipType: '',
appType: '',
svipFee: '',
threeHuFee: '',
fiveHuFee: '',
@@ -471,6 +515,7 @@ export default {
this.fileList = [];
this.vipType = [];
this.svipType = [];
this.appType = [];
this.$nextTick(() => {
this.$refs.addFormRef.clearValidate();
});
@@ -502,9 +547,24 @@ export default {
//修改
submitData(data){
var icon = '';
var vipType = '';
var svipType = '';
var appType = '';
if(this.fileList&&this.fileList.length>0){
icon = this.fileList[0].url
}
console.log('vipType-submit', this.vipType)
console.log('svipType-submit', this.svipType)
console.log('appType-submit', this.appType)
if(this.vipType&&this.vipType.length>0){
vipType = String(this.vipType);
}
if(this.svipType&&this.svipType.length>0){
svipType = String(this.svipType);
}
if(this.appType&&this.appType.length>0){
appType = String(this.appType);
}
this.$http({
url: this.$http.adornUrl("/master/trainingClass/editTrainingClass"),
method: "post",
@@ -516,12 +576,13 @@ export default {
trainingDate: data.trainingDate,
endDate: data.endDate,
singupFlag: data.singupFlag,
displayFlag: data.displayFlag,
//displayFlag: data.displayFlag,
icon: icon,
fee: data.fee,
vipType: String(this.vipType),
vipType: vipType,
vipFee: data.vipFee,
svipType: String(this.svipType),
svipType: svipType,
displayApp: appType,
svipFee: data.svipFee,
threeHuFee: data.threeHuFee,
fiveHuFee: data.fiveHuFee,
@@ -555,9 +616,21 @@ export default {
this.$refs["addFormRef"].validate(valid => {
if (valid) {
var icon = '';
var vipType = '';
var svipType = '';
var appType = '';
if(this.fileList&&this.fileList.length>0){
icon = this.fileList[0].url
}
if(this.vipType&&this.vipType.length>0){
vipType = String(this.vipType);
}
if(this.svipType&&this.svipType.length>0){
svipType = String(this.svipType);
}
if(this.appType&&this.appType.length>0){
appType = String(this.appType);
}
this.$http({
url: this.$http.adornUrl("/master/trainingClass/addTrainingClass"),
method: "post",
@@ -568,12 +641,13 @@ export default {
trainingDate: this.addForm.trainingDate,
endDate: this.addForm.endDate,
singupFlag: String(this.addForm.singupFlag),
displayFlag: String(this.addForm.displayFlag),
//displayFlag: String(this.addForm.displayFlag),
icon: icon,
fee: this.addForm.fee,
vipType: String(this.vipType),
vipType: vipType,
vipFee: this.addForm.vipFee,
svipType: String(this.svipType),
svipType: svipType,
displayApp: appType,
svipFee: this.addForm.svipFee,
threeHuFee: this.addForm.threeHuFee,
fiveHuFee: this.addForm.fiveHuFee,
@@ -609,7 +683,7 @@ export default {
this.addForm.trainingDate = data.trainingDate;
this.addForm.endDate = data.endDate;
this.addForm.singupFlag = Number(data.singupFlag);
this.addForm.displayFlag = Number(data.displayFlag);
//this.addForm.displayFlag = Number(data.displayFlag);
this.addForm.icon = data.icon;
//图片赋值
if(data.icon){
@@ -618,9 +692,23 @@ export default {
});
}
this.addForm.fee = data.fee;
this.vipType = data.vipType.split(',').map(item => parseInt(item, 10));
this.addForm.vipFee = data.vipFee;
if(data.vipType){
this.vipType = data.vipType.split(',').map(item => parseInt(item, 10));
}else{
this.vipType = [];
}
if(data.svipType){
this.svipType = data.svipType.split(',').map(item => parseInt(item, 10));
}else{
this.svipType = [];
}
if(data.displayApp){
this.appType = data.displayApp.split(',').map(item => item.trim());
}else{
this.appType = [];
}
this.addForm.svipFee = data.svipFee;
this.addForm.threeHuFee = data.threeHuFee;
this.addForm.fiveHuFee = data.fiveHuFee;
@@ -675,6 +763,10 @@ export default {
handleCheckedSvip(value){
console.log('svip的值', value)
},
//勾选app
handleCheckedApp(value){
console.log('app的值', value)
}
},
};
</script>

View File

@@ -61,7 +61,12 @@
</el-table-column>
<el-table-column label="用户身份" align="center">
<template slot-scope="scope">
{{ scope.row.identity }}
{{ splitIdentity(scope.row.identity).type }}
</template>
</el-table-column>
<el-table-column label="费用" align="center">
<template slot-scope="scope">
{{ splitIdentity(scope.row.identity).price ? `¥${splitIdentity(scope.row.identity).price}` : '' }}
</template>
</el-table-column>
@@ -183,6 +188,13 @@ export default {
this.getDataList();
},
methods: {
splitIdentity(identity) {
const match = identity.match(/([^\d]+)()([\d.]+)/);
return {
type: match ? match[1].trim() : identity,
price: match ? match[3] : ''
};
},
//排序变化事件
handleSortChange({ column, prop, order }) {
this.sortParams.date = order
@@ -354,13 +366,12 @@ export default {
},
//导出
handleExport() {
this.dataListLoading = true;
try {
this.$http({
url: this.$http.adornUrl("/master/trainingClass/exportTrainingClassUser"),
method: "post",
data: this.$http.adornData({
current: this.pageIndex,
limit: this.pageSize,
trainingId: this.trainingId,
tel: this.dataForm.tel,
createTimeSort: this.sortParams.date
@@ -378,6 +389,7 @@ export default {
link.click();
window.URL.revokeObjectURL(link.href); // 释放内存
this.dataListLoading = false;
this.$message({
message: "培训班用户数据文件下载完成,请注意查看!",
type: "success",
@@ -388,6 +400,7 @@ export default {
});
} catch (err) {
this.$message.error("文件下载失败!");
this.dataListLoading = true;
}
},
},