From 1d8b7df974e1fbdacff7632b05bdc30d78a6a8c1 Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Mon, 25 Oct 2021 13:30:39 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/score_shop' into score_shop --- zq-erp/src/main/resources/templates/views/admin/activity/activity-sign.html | 463 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 399 insertions(+), 64 deletions(-) diff --git a/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign.html b/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign.html index cdf3c95..733e4da 100644 --- a/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign.html +++ b/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign.html @@ -24,45 +24,51 @@ th:src="@{/plugin/beditor/lang/zh-cn/zh-cn.js}"></script> <style> - .el-aside { - background-color: #D3DCE6; - color: #333; - text-align: center; - } - .el-main { - background-color: #E9EEF3; - color: #333; - } - body > .el-container { - margin-bottom: 1000px; - } - .button { - padding: 5px; - text-align: center; - } + .paginationStyle{ + background: #ffffff; + padding: 10px 10px; + margin: 0px 0px 10px 0px; + text-align: right; + } - .imageOne { - display: block; - height: 50px; - padding: 5px 5px; - text-align: center; - } - .imageTwo { - display: block; - height: 50px; - padding: 5px 5px; - text-align: center; - } - .imageThree { - display: block; - height: 50px; - padding: 5px 5px; - text-align: center; - } + .el-aside { + background-color: #D3DCE6; + color: #333; + text-align: center; + } + .el-main { + background-color: #E9EEF3; + color: #333; + } + body > .el-container { + margin-bottom: 1000px; + } + .button { + padding: 5px; + text-align: center; + } - .box-card { - padding: 5px 5px; - } + .imageOne { + display: block; + height: 50px; + padding: 5px 5px; + text-align: center; + } + .imageTwo { + display: block; + height: 280px; + padding: 5px 5px; + text-align: center; + } + .imageThree { + display: block; + padding: 5px 5px; + text-align: center; + } + + .box-card { + padding: 5px 5px; + } </style> </head> @@ -74,14 +80,16 @@ <el-container> <el-aside width="30%"> <el-card class="box-card" :body-style="{ padding: '10px 10px'}"> - <div @click="uploadImg()" class="imageOne"> + <!--<div @click="uploadImg()" class="imageOne"> <img v-if="imageUrlTitle" :src="imageUrlTitle" style="width: 100%;"> <el-button type="primary" v-show="imageUrlTitle == ''" round><span style="font-size: 20px;">标题</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button> - </div> - <div @click="uploadImg()" class="imageTwo" > - <img v-if="imageUrlHead" :src="imageUrlHead" style="width: 100%;"> - <el-button type="primary" v-show="imageUrlHead == ''" round><span style="font-size: 20px;">头部</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button> - </div> + </div>--> + <el-row> + <div @click="uploadImg()" class="imageTwo" > + <img v-if="imageUrlHead" :src="imageUrlHead" style="width: 100%;height: 100%"> + <el-button type="primary" v-show="imageUrlHead == ''" round><span style="font-size: 20px;">头部</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button> + </div> + </el-row> <el-row style="display:flex;"> <el-col> <div style="padding:5px;font-size: 15px;text-align: left;"><span>您已累计签到<span style="color: red;">3</span>天</span></div> @@ -90,16 +98,24 @@ <div style="padding:5px;font-size: 15px;text-align: right;"><span>签到提醒</span></div> </el-col> </el-row> + + <el-row> <div @click="uploadImg()"> <el-calendar :range="['2019-03-04', '2019-03-24']"></el-calendar> <img v-if="imageUrlState" :src="imageUrlState" style="width: 100%;"> - <el-button type="primary" v-show="imageUrlState == ''" round><span style="font-size: 20px;">日历签到背景</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button> + <!--<el-button type="primary" v-show="imageUrlState == ''" round><span style="font-size: 20px;">日历签到背景</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button>--> </div> + </el-row> + + <el-row> <div @click="uploadImg()" class="imageThree" > <el-button type="primary" v-show="imageUrlButton == ''" round><span style="font-size: 20px;">签到按钮</span><span style="padding:5px;font-size: 15px;color: red;">(上传图片)</span></span></el-button> <img v-if="imageUrlButton" :src="imageUrlButton" style="width: 100%;"> </div> + </el-row> + + <el-row> <div style="text-align: center;padding: 5px;" @click="gzsmSet()"> <div class="col-sm-8 col-sm-offset-2" style="text-align: left;"> <span style="padding:5px;font-size: 30px;">-- 规则说明--</span> @@ -117,12 +133,13 @@ <span style="padding:5px;font-size: 15px;">3、每7天重新开始计算</span> </div> </div> + </el-row> </el-card> </el-aside> <el-main width="70%"> <div> - <el-tabs v-model="activeName" > + <el-tabs v-model="activeName" @tab-click="clickSecondTab"> <el-tab-pane label="活动设置" name="first"> <div class="col-sm-8 col-sm-offset-1" style="padding: 10px"> <el-form-item label="活动名称" prop="actName"> @@ -131,7 +148,7 @@ </div> <div class="col-sm-8 col-sm-offset-1" style="padding: 10px"> <el-form-item label="活动编码" prop="actCode"> - <el-input v-model.number="ruleForm.actCode" placeholder="请输入最大开团数量"></el-input> + <el-input v-model.number="ruleForm.actCode" placeholder="请输入活动编码"></el-input> </el-form-item> </div> <div class="col-sm-4 col-sm-offset-1" style="padding: 10px"> @@ -152,7 +169,7 @@ <el-tab-pane label="奖品设置" name="second"> <el-row style="display:flex;"> <el-col :span="20"> - <el-tabs v-model="editableTabsValue" type="card" closable @tab-remove="removeTab"> + <el-tabs v-model="editableTabsValue" type="card" closable @tab-click="clickTab" @tab-remove="removeTab"> <el-tab-pane v-for="(item, index) in editableTabs" :key="item.name" :label="item.title" :name="item.name"> <el-row v-show="editableTabsValue !== '1'"> <el-form-item label="签到累计天数"> @@ -257,6 +274,15 @@ </el-col> </el-row> </div> + <div v-show="[1,3].includes(item.content.awardWay)"> + <el-row > + <el-col> + <el-form-item label="客服电话"> + <el-input v-model="item.content.customerPhone"></el-input> + </el-form-item> + </el-col> + </el-row> + </div> <div v-show="item.content.awardWay !== '2'"> <el-row > <el-col> @@ -287,30 +313,156 @@ <div v-show="item.content.awardType === '3'"> <el-row style="display:flex;"> <el-col> + <el-form-item label="优惠券名称"> + <el-input v-model="item.content.couponName"></el-input> + </el-form-item> + </el-col> + <el-col> <el-form-item label="优惠券"> <el-input v-model="item.content.couponId"></el-input> </el-form-item> </el-col> <el-col> - <el-button type="primary"> + <el-button type="primary" @click="chooseCoupon(item.content.couponName,item.name)"> 选择优惠券 </el-button> </el-col> </el-row> + + <el-drawer + title="选择商城优惠券" + :visible.sync="drawerCoupon" + :direction="directionCoupon" + size="90%"> + <el-row style="margin-left: 50px;"> + <el-col :span="24"> + <el-row> + <el-form ref="formCoupon" :model="formCoupon" inline > + <el-form-item prop="yhjmc"> + <el-input v-model="formCoupon.yhjmc" placeholder="请输入优惠券名称"></el-input> + </el-form-item> + <el-button type="primary" @click="searchFormCoupon" >搜索</el-button> + <el-button @click="resetFormCoupon('formCoupon')">重置</el-button> + </el-form> + </el-row> + + <el-row class="table-style" > + <el-table ref="multipleTable" + :data="couponList.rows" + :height="tableHeightCoupon" + stripe:true + style="width: 100%"> + <el-table-column + prop="cname" + label="优惠券名称" + show-overflow-tooltip> + </el-table-column> + <el-table-column + prop="endTime" + label="截止日期" + show-overflow-tooltip> + </el-table-column> + <el-table-column + prop="address" + label="操作"> + <template slot-scope="scope"> + <el-button type="primary" + size="mini" + @click="chooseOneCoupon(scope.row)">选择 + </el-button> + </template> + </el-table-column> + </el-table> + </el-row> + <el-row class="paginationStyle" > + <el-pagination background + @size-change="changePageSizeCoupon" + @current-change="changeCurrentPageCoupon" + :current-page="couponList.currentPage" + :page-sizes="[10, 20, 30, 50]" + :page-size="couponList.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="couponList.total"> + </el-pagination> + </el-row> + </el-col> + </el-row> + </el-drawer> </div> <div v-show="item.content.awardType === '4'"> <el-row style="display:flex;"> + <el-col> + <el-form-item label="品项名称"> + <el-input v-model="item.content.goodsName"></el-input> + </el-form-item> + </el-col> <el-col> <el-form-item label="品项"> <el-input v-model="item.content.goodsId"></el-input> </el-form-item> </el-col> <el-col> - <el-button type="primary"> + <el-button type="primary" @click="chooseGoods(item.content.goodsName,item.name)"> 选择品项 </el-button> </el-col> </el-row> + + <el-drawer + title="选择ERP产品" + :visible.sync="drawerGoods" + :direction="directionGoods" + size="90%"> + <el-row style="margin-left: 50px;"> + <el-col :span="24"> + <el-row> + <el-form ref="formGoods" :model="formGoods" inline > + <el-form-item prop="cpmc"> + <el-input v-model="formGoods.cpmc" placeholder="请输入产品名称"></el-input> + </el-form-item> + <el-button type="primary" @click="searchFormGoods" >搜索</el-button> + <el-button @click="resetFormGoods('formGoods')">重置</el-button> + </el-form> + </el-row> + + <el-row class="table-style" > + <el-table ref="multipleTable" + :data="goodsList.rows" + :height="tableHeightGoods" + stripe:true + style="width: 100%"> + <el-table-column + prop="name" + label="名称" + show-overflow-tooltip> + </el-table-column> + <el-table-column + prop="address" + label="操作"> + <template slot-scope="scope"> + <el-button type="primary" + size="mini" + @click="chooseOneGoods(scope.row)">选择 + </el-button> + </template> + </el-table-column> + </el-table> + </el-row> + <el-row class="paginationStyle" > + <el-pagination background + @size-change="changePageSizeGoods" + @current-change="changeCurrentPageGoods" + :current-page="goodsList.currentPage" + :page-sizes="[10, 20, 30, 50]" + :page-size="goodsList.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="goodsList.total"> + </el-pagination> + </el-row> + </el-col> + </el-row> + </el-drawer> + </div> </el-tab-pane> </el-tabs> @@ -324,7 +476,7 @@ </el-tab-pane> <el-tab-pane label="背景图片上传" name="third"> - <div class="col-sm-8 col-sm-offset-1" style="padding: 10px"> + <!--<div class="col-sm-8 col-sm-offset-1" style="padding: 10px"> <el-form-item label="标题"> <el-upload action="/admin/multipleUploadFile/doUpload" @@ -333,7 +485,7 @@ <img v-if="imageUrlTitle" :src="imageUrlTitle" style="max-width: 300px;"> </el-upload> </el-form-item> - </div> + </div>--> <div class="col-sm-8 col-sm-offset-1" style="padding: 10px"> <el-form-item label="头部"> <el-upload @@ -344,7 +496,7 @@ </el-upload> </el-form-item> </div> - <div class="col-sm-8 col-sm-offset-1" style="padding: 10px"> + <!--<div class="col-sm-8 col-sm-offset-1" style="padding: 10px"> <el-form-item label="日历签到背景"> <el-upload action="/admin/multipleUploadFile/doUpload" @@ -353,7 +505,7 @@ <img v-if="imageUrlState" :src="imageUrlState" style="max-width: 300px;"> </el-upload> </el-form-item> - </div> + </div>--> <div class="col-sm-8 col-sm-offset-1" style="padding: 10px"> <el-form-item label="签到按钮"> <el-upload @@ -379,11 +531,11 @@ <el-color-picker v-model="typographyColor"></el-color-picker> </el-form-item> <el-form-item label="字体大小" style="padding: 10px"> - <el-input-number v-model="typographyNum" :min="10" :max="20" label="描述文字"></el-input-number> + <el-input-number v-model="typographyNum" :min="10" :max="50" label="描述文字"></el-input-number> </el-form-item> - <el-form-item label="字体透明度" style="padding: 10px"> + <!--<el-form-item label="字体透明度" style="padding: 10px"> <el-input-number v-model="typographyLight" :min="1" :max="100" label="描述文字">%</el-input-number> - </el-form-item> + </el-form-item>--> </div> </el-tab-pane> </el-tabs> @@ -392,7 +544,7 @@ <div class="form-group "> <div class="col-sm-12 text-center"> <el-button type="primary" @click="dataSubmit('ruleForm')">保存</el-button> - <el-button type="danger" >关闭</el-button> + <el-button type="danger" @click="cancelSubmit">关闭</el-button> </div> </div> </el-main> @@ -413,6 +565,8 @@ <script type="text/javascript" th:src="@{/plugin/moment.min.js}"></script> <script> + //获取传输的活动对象 + var actId = $.query.get("actId"); const prize = { //奖品基本信息 cumulativeDay:'', @@ -423,23 +577,62 @@ awardInventoryCnt:'', awardDistributeCnt:'', awardWay:'1', - awardWayoperationTip:'', + operationTip:'', prizeAddress:'', prizeTime: '', wechatImg:'', scoreCnt:'', couponId:'', goodsId:'', + couponName:'', + customerPhone:'', + goodsName:'', } var app = new Vue({ el: '#app', data: { activeName: 'first', formLabelWidth: '120px', + + activeClickTab:0, + //优惠券搜索弹出 + drawerCoupon: false, + directionCoupon: 'rtl', + tableHeightCoupon: 500, + //--优惠券 + formCoupon:{ + yhjmc:'', + order:'', + sort:'' + }, + couponList:{ + rows:[], + total:0, + pageSize:10, + currentPage:1, + }, + + //品项搜索弹出 + drawerGoods: false, + directionGoods: 'rtl', + tableHeightGoods: 500, + //--品项 + formGoods:{ + cpmc:'', + order:'', + sort:'' + }, + goodsList:{ + rows:[], + total:0, + pageSize:10, + currentPage:1, + }, + //标题图片 imageUrlTitle: '', - imageUrlHead: '', - imageUrlButton: '', + imageUrlHead: "../../../images/sign/signHead.png", + imageUrlButton: "../../../images/sign/signButton.png", imageUrlState: '', //字体颜色 @@ -487,6 +680,125 @@ created: function () { }, methods: { + //选择优惠券 + chooseCoupon(val,name){ + let _this = this; + _this.drawerCoupon = true; + _this.activeClickTab = parseInt(name); + _this.formCoupon.yhjmc = val; + _this.loadCouponList(); + }, + //--优惠券 + loadCouponList() { + let _this = this; + let data=_this.getRequestParamCoupon(); + data.pageSize=_this.couponList.pageSize; + data.pageNum=_this.couponList.currentPage; + AjaxProxy.requst({ + app: _this, + data:data, + url: basePath + '/admin/activitySignAwardSet/selectCouponList', + callback: function (data) { + _this.couponList.rows = data.rows; + _this.couponList.total = data.total; + } + }); + }, + //查询参数 + getRequestParamCoupon(){ + let _this = this; + return { + yhjmc:_this.formCoupon.yhjmc, + order:_this.formCoupon.order, + sort:_this.formCoupon.sort, + } + }, + //查询 + searchFormCoupon:function(){ + this.couponList.currentPage=1; + this.loadCouponList(); + }, + //重置 + resetFormCoupon(formName) { + // this.formCoupon.yhjmc = '' + // console.log(this.$refs[formName].resetFields) + (this.$refs[formName])[0].resetFields(); + }, + changePageSizeCoupon(val) { + this.couponList.pageSize = val; + this.loadCouponList(); + }, + changeCurrentPageCoupon(val) { + this.couponList.currentPage = val; + this.loadCouponList(); + }, + //选择 + chooseOneCoupon(row) { + let _this = this; + _this.editableTabs[_this.activeClickTab-1].content.couponId = row.id; + _this.editableTabs[_this.activeClickTab-1].content.couponName = row.cname; + _this.drawerCoupon = false; + }, + + //选择品项 + chooseGoods(val,name){ + let _this = this; + _this.drawerGoods = true; + _this.activeClickTab = parseInt(name); + _this.formGoods.cpmc = val; + _this.loadGoodsList(); + }, + //--品项 + loadGoodsList() { + let _this = this; + let data=_this.getRequestParamGoods(); + data.pageSize=_this.goodsList.pageSize; + data.pageNum=_this.goodsList.currentPage; + AjaxProxy.requst({ + app: _this, + data:data, + url: basePath + '/admin/activitySignAwardSet/selectGoodsList', + callback: function (data) { + _this.goodsList.rows = data.rows; + _this.goodsList.total = data.total; + } + }); + }, + //查询参数 + getRequestParamGoods(){ + let _this = this; + return { + cpmc:_this.formCoupon.cpmc, + order:_this.formCoupon.order, + sort:_this.formCoupon.sort, + } + }, + //查询 + searchFormGoods:function(){ + this.goodsList.currentPage=1; + this.loadGoodsList(); + }, + //重置 + resetFormGoods(formName) { + (this.$refs[formName])[0].resetFields(); + }, + changePageSizeGoods(val) { + this.goodsList.pageSize = val; + this.loadGoodsList(); + }, + changeCurrentPageGoods(val) { + this.goodsList.currentPage = val; + this.loadGoodsList(); + }, + //选择 + chooseOneGoods(row) { + let _this = this; + _this.editableTabs[_this.activeClickTab-1].content.goodsId = row.id; + _this.editableTabs[_this.activeClickTab-1].content.goodsName = row.name; + _this.drawerGoods = false; + }, + + //保存 dataSubmit : function(formName) { const _this = this; let flag = false; @@ -525,8 +837,14 @@ let activitySignAwardSets = []; for (let i = 0; i < _this.editableTabs.length; i++) { let prize = _this.editableTabs[i].content; + let name = _this.editableTabs[i].title; + let awardRule = 2; + if(name == "签到日常奖励"){ + awardRule = 1; + } let activitySignAwardSet = { cumulativeDay: prize.cumulativeDay, + awardRule: awardRule, awardType: prize.awardType, awardName: prize.awardName, introduceImg: prize.introduceImg, @@ -534,12 +852,15 @@ awardInventoryCnt: prize.awardInventoryCnt, awardDistributeCnt: prize.awardDistributeCnt, awardWay: prize.awardWay, - awardWayoperationTip: prize.awardWayoperationTip, + operationTip: prize.operationTip, prizeAddress: prize.prizeAddress, wechatImg: prize.wechatImg, + customerPhone: prize.customerPhone, scoreCnt: prize.scoreCnt, couponId: prize.couponId, goodsId: prize.goodsId, + couponName: prize.couponName, + goodsName: prize.goodsName, prizeStartTime: prize.prizeTime[0], prizeEndTime: prize.prizeTime[1], } @@ -562,6 +883,7 @@ message: data.info, type: 'success', }); + parent.layer.close(parent.layer.getFrameIndex(window.name)); } }); }, @@ -574,6 +896,14 @@ content: JSON.parse(JSON.stringify(prize)), }); this.editableTabsValue = newTabName; + this.activeClickTab = parseInt(newTabName); + }, + clickSecondTab(targetName) { + this.activeClickTab = 1; + }, + clickTab(targetName) { + console.log(targetName.name); + this.activeClickTab = parseInt(targetName.name); }, removeTab(targetName) { let tabs = this.editableTabs; @@ -633,12 +963,17 @@ }, //奖品设置的图片介绍 introduceImgSuccess(res, file) { - this.editableTabs[this.tabIndex-1].content.introduceImg = res.path; - // this.prize.introduceImg = URL.createObjectURL(file.raw); + this.editableTabs[this.activeClickTab-1].content.introduceImg = res.path; }, //奖品设置的客服微信 wechatImgSuccess(res, file) { - this.editableTabs[this.tabIndex-1].content.wechatImg = res.path; + this.editableTabs[this.activeClickTab-1].content.wechatImg = res.path; + }, + cancelSubmit() { + this.closeFrame(); + }, + closeFrame() { + parent.layer.close(parent.layer.getFrameIndex(window.name)); }, } }) -- Gitblit v1.9.1