Commit dad313b6 authored by zhengke's avatar zhengke
parents 35f0ea4f 348eb54e
......@@ -153,6 +153,11 @@
},
Update(){
this.UpdateLoading = true
for(let i =0;i<this.datas.JumpAppIdList.length;i++){
if(this.datas.JumpAppIdList[i]=='' || this.datas.JumpAppIdList[i] ==undefined){
this.datas.JumpAppIdList.splice(i,1)
}
}
this.apipost("/api/Tenant/UpdateJumpAppId", this.datas, res => {
this.UpdateLoading = false
......
......@@ -38,6 +38,7 @@
<el-form-item label="有效期范围" prop="value" class="is-required" v-if="msg.IndateType==2">
<el-date-picker
@input="daterangeChange"
style="padding: 3px 10px;width: 450px;height: 32px"
v-model="msg.value"
type="datetimerange"
......@@ -152,7 +153,6 @@
this.msg.value.push(res.data.data.StartDate.replace("T", " "))
this.msg.value.push(res.data.data.EndDate.replace("T", " "))
}
console.log(this.msg.value)
if(res.data.data.TotalNum!=-1){
this.checked=false
}
......@@ -191,6 +191,13 @@
}
});
},
daterangeChange(e){
let _this =this
_this.$nextTick(() => {
_this.$set(_this.msg, "value", [e[0], e[1]]);
_this.$forceUpdate();
});
},
openChangeDig(){
this.changeState=true;
setTimeout(()=>{
......
......@@ -89,8 +89,9 @@
<el-form-item label="有效期范围" prop="value" class="is-required" v-if="msg.IndateType==2" >
<el-date-picker
@input="daterangeChange"
style="padding: 3px 10px;width: 450px;height: 32px"
v-model="msg.value"
v-model.trim="msg.value"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
......@@ -363,7 +364,6 @@
},
created(){
this.getMemberGradeList()
this.getProductCategoryTreeList()
......@@ -379,6 +379,8 @@
})
})
this.getProductCategoryTreeList()
},
getDiscountCouponDetail(ID){
this.apipost("/api/Coupon/GetDiscountCouponDetail",{'ID':ID} , res => {
......@@ -403,6 +405,12 @@
this.zhongxin=true
}
this.msg.MemberLevelList=res.data.data.MemberLevelList?res.data.data.MemberLevelList:[];
if(this.msg.MemberLevelList){ //设置全选状态
if(this.msg.MemberLevelList.length == this.cities.length){
this.checkAll=true
}
}
if(res.data.data.UseType==1){
let ProductList = res.data.data.ProductList;
let newData = []
......@@ -584,6 +592,13 @@
this.commodity =true
}
},
daterangeChange(e){
let _this =this
_this.$nextTick(() => {
_this.$set(_this.msg, "value", [e[0], e[1]]);
_this.$forceUpdate();
});
},
getUseType2(){
this.checkedkeys=[]
},
......
<template>
<div class="uploadSettings">
<div class="el-card__body">
<div style="margin-bottom: 20px;">
<el-button size="small" @click="dialogVisible=true">添加存储位置</el-button>
<el-button size="small">选取账户存储</el-button>
<div style="margin-top: 20px"><div>商城创建者:T1219561424</div> <div>商城当前上传设置:腾讯云COS</div></div>
<div class='table-body'>
<el-table
:data="tableData"
:v-loading="loading"
border
style="width: 1705px">
<el-table-column
fixed
prop="Bucket"
label="存储位置"
width="569">
</el-table-column>
<el-table-column
fixed
label="使用中"
width="568">
<template slot-scope="scope">
<div v-if="scope.row.StoreType==1">
<div>空间名称(Bucket):{{scope.row.Bucket}}</div>
<div>所属地域:{{scope.row.Region}}</div>
<div>自定义域名:{{scope.row.CustomDomain}}</div>
<div>SecretId:{{scope.row.SecretId}}</div>
<div>SecretKey:{{scope.row.SecretKey}}</div>
</div>
<div v-if="scope.row.StoreType==2">
<div>存储空间名称(Bucket):{{scope.row.Bucket}}</div>
<div>绑定域名:{{scope.row.Region}}</div>
<div>AccessKey(AK):{{scope.row.SecretId}}</div>
<div>SecretKey(SK):{{scope.row.SecretKey}}</div>
<div>图片样式接口:{{scope.row.ImgStyle}}</div>
</div>
</template>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
>
<template slot-scope="scope">
<el-tooltip class="item" effect="dark" content="编辑" placement="top" >
<img src="../../assets/img/setup/edit.png" alt="" class="imgstyle" @click="Edit(scope.row)">
</el-tooltip>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
<el-dialog title="小程序码" :visible.sync="dialogVisible" width="1024px">
<el-form :model="addMsg" :rules="addstoragerules" ref="addMsg" >
<el-form-item label="存储位置" class="is-required" >
<div>
<el-radio v-model="addMsg.StoreType" label="1" border>腾讯云COS</el-radio>
<el-radio v-model="addMsg.StoreType" label="2" border>七牛云存储</el-radio>
</div>
</el-form-item>
<template v-if="addMsg.StoreType==1">
<el-form-item prop="Bucket">
<p><span class="cred">*</span>空间名称(Bucket)</p>
<el-input v-model="addMsg.Bucket"></el-input>
<div>示例:<span class="cred">xxxxxx-125000000</span></div>
</el-form-item>
<el-form-item prop="Region">
<p><span class="cred">*</span>所属地域</p>
<el-input v-model="addMsg.Region"></el-input>
<div>示例: <span class="cred">ap-shanghai</span><span class="cred">ap-shenzhen</span><span
class="cred">ap-xxxxxx</span></div>
</el-form-item>
<el-form-item>
<p>自定义域名</p>
<el-input v-model="addMsg.CustomDomain"></el-input>
<div>示例: <span class="cred">http://mydomain.com</span></div>
</el-form-item>
<el-form-item prop="SecretId">
<p><span class="cred">*</span>SecretId</p>
<el-input v-model="addMsg.SecretId"></el-input>
</el-form-item>
<el-form-item prop="SecretKey">
<p><span class="cred">*</span>SecretKey</p>
<el-input v-model="addMsg.SecretKey"></el-input>
</el-form-item>
</template>
<template v-if="addMsg.StoreType==2">
<el-form-item prop="Bucket">
<p><span class="cred">*</span>存储空间名称(Bucket)</p>
<el-input v-model="addMsg.Bucket"></el-input>
</el-form-item>
<el-form-item prop="Region">
<p><span class="cred">*</span>绑定域名</p>
<el-input v-model="addMsg.Region"></el-input>
<div>示例: <span class="cred">http://mydomain.com</span><span
class="cred">http://xxxxxx.bkt.clouddn.com</span></div>
</el-form-item>
<el-form-item prop="SecretId">
<p><span class="cred">*</span>AccessKey(AK)</p>
<el-input v-model="addMsg.SecretId"></el-input>
</el-form-item>
<el-form-item prop="SecretKey">
<p><span class="cred">*</span>SecretKey(SK)</p>
<el-input v-model="addMsg.SecretKey"></el-input>
</el-form-item>
<el-form-item >
<p>图片样式接口(选填)</p>
<el-input v-model="addMsg.ImgStyle"></el-input>
<div>示例: <span class="cred">?imageView2/0/w/1080/h/1080/q/85|imageslim</span></div>
</el-form-item>
</template>
</el-form>
<el-button type="primary" @click="addstorage('addMsg')" :loading="addloading">保存</el-button>
</el-dialog>
</div>
</template>
<script>
export default {
name: "uploadSettings",
data(){
return{
dialogVisible:false,
addloading:false,
loading:false,
addMsg:{
StoreType :0,
Bucket:'',
Region:'',
CustomDomain:'',
SecretId:'',
SecretKey:'',
ImgStyle:'',
},
msg:{
pageIndex:1,
pageSize:20,
},
total:0,
tableData:[],
addstoragerules:{
Bucket:[
{required: true, message: "不能为空", trigger: "blur"}
],
Region:[
{required: true, message: "不能为空", trigger: "blur"}
],
SecretId:[
{required: true, message: "不能为空", trigger: "blur"}
],
SecretKey:[
{required: true, message: "不能为空", trigger: "blur"}
],
},
}
},
created(){
this.getDateList();
this.getFileStoreDetail()
},
methods:{
getDateList(){
this.loading=true;
this.apipost("/api/MallBase/GetFileStoreList", this.msg, res => {
this.loading=false;
if(res.data.resultCode==1){
this.tableData = res.data.data;
this.total = res.data.data.count;
}else {
this.Info(res.data.message);
}
})
},
addstorageseat(){
},
addstorage(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
if(this.addMsg.StoreType==0){
this.Info('请先选择存储位置');
return
}
this.addloading = true
this.apipost("/api/MallBase/AddOrUpdateFileStore",this.addMsg , res => {
this.addloading = false
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.dialogVisible = false;
} else {
this.Info(res.data.message);
}
})
} else {
return false;
}
});
},
getFileStoreDetail(show=false){
this.apipost("/api/MallBase/GetFileStoreDetail", {}, res => {
if(show==true){
this.dialogVisible=true
}
if(res.data.resultCode==1){
this.addMsg = res.data.data
this.addMsg.StoreType = res.data.data.StoreType.toString()
}else {
this.Info(res.data.message);
}
})
},
Edit(row){
this.getFileStoreDetail(true)
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getDateList();
},
}
}
</script>
<style>
.uploadSettings {
border: 1px solid #EBEEF5;
background-color: #FFF;
color: #303133;
-webkit-transition: .3s;
transition: .3s;
}
.uploadSettings .el-card__body{
padding: 20px;
}
.uploadSettings .cred {
color: #F56C6C;
margin-right: 4px;
font-size: 12px;
}
</style>
<template>
<div class="grantStatistics" v-loading="loading">
<div class="el-card__header">
<span>积分收支</span>
<div style="display: flex;flex-direction: row;align-items: center">
<el-button type="primary" class="el-button--small" @click="Export">导出全部</el-button>
</div>
</div>
<div class="content">
<div style="display: flex;flex-direction: row;align-items: center">
<el-select class="w100" @change="getList" style="margin-right: 10px;" v-model="msg.PlatformType" size="small" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.Id"
:label="item.Name"
:value="item.Id">
</el-option>
</el-select>
<el-select class="w100" style="margin-right: 10px;" size="small" v-model="Coupon" placeholder="请选择">
<el-option
v-for="item in options2"
:key="item.Id"
:label="item.Name"
:value="item.Id">
</el-option>
</el-select>
<div class="block">
<el-date-picker
style="padding: 3px 10px;width: 380px;height: 32px"
v-model="value"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
@change="change"
align="right">
</el-date-picker>
</div>
<el-tabs v-model="activeName" @tab-click="handleClick" style="margin-left: 20px">
<el-tab-pane label="7日" name="first"></el-tab-pane>
<el-tab-pane label="30日" name="second"></el-tab-pane>
</el-tabs>
<span style="color: #92959B;margin-left: 35px;cursor: pointer;font-size: 15px;" @click="empty">清空筛选</span>
</div>
</div>
<div style="margin: 10px 0;">
<div class="zong">
总成交
</div>
<div class="zongshow">
<div class="num-info">
<div class="num-info-item">
<div>{{Totaldata.Income!=null ?Totaldata.Income:0 }}</div>
<div class="info-item-name">发放总数</div>
</div>
<div class="num-info-item">
<div>{{Totaldata.Expend!=null ?Totaldata.Expend:0 }}</div>
<div class="info-item-name">已使用总数</div>
</div>
<div class="num-info-item">
<div>{{Totaldata.Expend!=null ?Totaldata.Expend:0 }}</div>
<div class="info-item-name">未使用总数</div>
</div>
<div class="num-info-item">
<div>{{Totaldata.Expend!=null ?Totaldata.Expend:0 }}</div>
<div class="info-item-name">已失效总数</div>
</div>
</div>
</div>
</div>
<div style="padding: 20px;background: #fff;margin-top: 10px">
<el-table
:data="tableData"
header-cell-class-name="headClass"
style="width: 1698px;"
:default-sort = "{prop: 'date', order: 'descending'}"
>
<el-table-column
prop="CreateDate"
label="日期"
width="283">
</el-table-column>
<el-table-column
prop="Name"
label="优惠券名称"
width="283">
</el-table-column>
<el-table-column
prop="IsSued"
sortable
label="发放数量"
width="283">
</el-table-column>
<el-table-column
prop="Used"
sortable
label="已使用数量"
width="283">
</el-table-column>
<el-table-column
prop="UnUsed"
sortable
label="未使用数量"
width="283">
</el-table-column>
<el-table-column
prop="Voksi"
sortable
label="已失效数量"
>
</el-table-column>
</el-table>
<el-pagination style="text-align:right"
background
@current-change="handleCurrentChange"
:page-size="msg.pageSize"
layout="prev, pager, next"
:total="count">
</el-pagination>
</div>
</div>
</template>
<script>
export default {
name: "grantStatistics",
data(){
return{
msg:{
pageIndex:1,
pageSize:20,
PlatformType:0,
StartDate:'',
EndDate:'',
},
options:[],
options2:[{Name: "优惠券", Id: 0}],
Coupon:0,
tableData:[],
count:0,
value:'',
activeName:'',
loading:false,
Totaldata:{
Expend:0,
Income:0,
},
}
},
created(){
this.getplat();
this.getIntegraStatisticslList()
},
methods:{
getplat(){
this.apipost("/api/User/GetMemberUserSourceEnumList", {}, res => {
if(res.data.resultCode==1){
this.options = res.data.data;
this.options.unshift({Name: "全部平台", Id: 0})
}
})
},
change(val){
this.activeName=''
this.getIntegraStatisticslList()
},
getIntegraStatisticslList(){
this.loading=true;
if(this.value!=''){
this.msg.StartDate = this.value[0];
this.msg.EndDate = this.value[1];
}
this.apipost("/api/Coupon/GetCouponStatisticslList", this.msg, res => {
this.loading=false;
if(res.data.resultCode==1){
this.tableData = res.data.data.pageData;
this.count = res.data.data.count;
}else {
this.Info(res.data.message);
}
})
let Totalmsg = {
PlatformType:this.msg.PlatformType,
StartDate :this.msg.StartDate ,
EndDate :this.msg.EndDate,
}
this.apipost("/api/Coupon/GetTotalCoupon", Totalmsg, res => {
this.loading=false;
if(res.data.resultCode==1){
this.Totaldata = res.data.data;
}else {
this.Info(res.data.message);
}
})
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getIntegraStatisticslList();
},
Export(){
let msg = {
PlatformType:this.msg.PlatformType,
StartDate :this.msg.StartDate ,
EndDate :this.msg.EndDate,
}
msg = JSON.parse(JSON.stringify(msg));
this.JavaGetLocalFile(
"/api/Integral/GetIntegralListToExcel",
msg,
"积分收支.xls"
);
},
empty(){
this.msg.PlatformType=0;
this.msg.StartDate='';
this.msg.EndDate='';
this.value='';
this.activeName='';
},
handleClick(tab, event) {
if(tab.name=='first'){
this.fun_date(7)
}else if(tab.name=='second'){
this.fun_date(30)
}
},
fun_date(num){
let that= this
let date1 = new Date();
//今天时间
let time1 = date1.getFullYear() + "-" + (date1.getMonth() + 1) + "-" + date1.getDate()
let date2 = new Date(date1);
date2.setDate(date1.getDate() - num);
//num是正数表示之后的时间,num负数表示之前的时间,0表示今天
let time2 = date2.getFullYear() + "-" + (date2.getMonth() + 1) + "-" + date2.getDate();
let data = []
data.push(time2)
data.push(time1)
that.value = data;
this.getIntegraStatisticslList()
},
getList(){
this.msg.pageIndex=1
this.getIntegraStatisticslList()
}
},
mounted(){
}
}
</script>
<style >
.grantStatistics .el-card__header{
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
background: #fff;
}
.grantStatistics .el-button--small{
padding: 9px 15px;
}
.grantStatistics .content .searchInput{
border: 1px solid #DCDFE6;
border-radius: 4px;
}
.grantStatistics .content .searchInput .el-input__inner{
border:none;outline:none;
height: 30px;
line-height: 30px;
}
.grantStatistics .content .searchInput{
line-height: normal;
display: inline-table;
border-collapse: separate;
border-spacing: 0;
width:250px;
margin-right: 20px;
}
.grantStatistics .content{
background: #fff;
margin-top:10px;
padding: 15px;
box-sizing: border-box;
}
.grantStatistics .el-icon-date{
line-height: 24px;
}
.grantStatistics .el-range-separator{
line-height: 24px;
}
.grantStatistics .zong{
width: 100%;
height: 57px;
padding: 18px 20px;
border-bottom: 1px solid #EBEEF5;
background: white;
}
.grantStatistics .zongshow{
padding: 20px;
background: white;
}
.grantStatistics .num-info {
display: flex;
width: 100%;
height: 60px;
font-size: 24px;
color: #303133;
margin: 20px 0;
}
.grantStatistics .num-info .num-info-item {
text-align: center;
flex-grow: 1;
}
.grantStatistics .info-item-name {
font-size: 14px;
color: #92959B;
}
</style>
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