Commit c25bea8d by damodmg

Merge branch 'dev' into 'master'

Dev

See merge request !12
parents 5941f15e 363651b6
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/css/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link href=/integral-mall/static/css/app.0bd27768f9a263265816d415aa08962e.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/integral-mall/static/js/manifest.003beacb9c9ae622c7f2.js></script><script type=text/javascript src=/integral-mall/static/js/vendor.b2d5add275329279664d.js></script><script type=text/javascript src=/integral-mall/static/js/app.b120b76a4aafe97f90e5.js></script></body></html> <!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/css/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link href=/integral-mall/static/css/app.8ed66e782953e710c2a9c492aaf2152a.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/integral-mall/static/js/manifest.003beacb9c9ae622c7f2.js></script><script type=text/javascript src=/integral-mall/static/js/vendor.7daf893687ed45264db9.js></script><script type=text/javascript src=/integral-mall/static/js/app.2a0ec541fa8773e957c8.js></script></body></html>
\ No newline at end of file \ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -1984,6 +1984,16 @@ ...@@ -1984,6 +1984,16 @@
"integrity": "sha1-ACwZkJEtDVlYDJO9NsBW3pnkJZo=", "integrity": "sha1-ACwZkJEtDVlYDJO9NsBW3pnkJZo=",
"dev": true "dev": true
}, },
"clipboard": {
"version": "2.0.4",
"resolved": "http://registry.npm.taobao.org/clipboard/download/clipboard-2.0.4.tgz",
"integrity": "sha1-g22v1mzw/qXXHOXVsL9ulYAJES0=",
"requires": {
"good-listener": "1.2.2",
"select": "1.1.2",
"tiny-emitter": "2.0.2"
}
},
"cliui": { "cliui": {
"version": "3.2.0", "version": "3.2.0",
"resolved": "http://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz", "resolved": "http://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz",
...@@ -2929,6 +2939,11 @@ ...@@ -2929,6 +2939,11 @@
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"dev": true "dev": true
}, },
"delegate": {
"version": "3.2.0",
"resolved": "http://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz",
"integrity": "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY="
},
"delegates": { "delegates": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz", "resolved": "http://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz",
...@@ -4558,6 +4573,14 @@ ...@@ -4558,6 +4573,14 @@
"minimatch": "3.0.4" "minimatch": "3.0.4"
} }
}, },
"good-listener": {
"version": "1.2.2",
"resolved": "http://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz",
"integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
"requires": {
"delegate": "3.2.0"
}
},
"google-material-color": { "google-material-color": {
"version": "1.3.1", "version": "1.3.1",
"resolved": "http://registry.npm.taobao.org/google-material-color/download/google-material-color-1.3.1.tgz", "resolved": "http://registry.npm.taobao.org/google-material-color/download/google-material-color-1.3.1.tgz",
...@@ -9890,6 +9913,11 @@ ...@@ -9890,6 +9913,11 @@
} }
} }
}, },
"select": {
"version": "1.1.2",
"resolved": "http://registry.npm.taobao.org/select/download/select-1.1.2.tgz",
"integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0="
},
"select-hose": { "select-hose": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "http://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", "resolved": "http://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz",
...@@ -10693,6 +10721,11 @@ ...@@ -10693,6 +10721,11 @@
"setimmediate": "1.0.5" "setimmediate": "1.0.5"
} }
}, },
"tiny-emitter": {
"version": "2.0.2",
"resolved": "http://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.0.2.tgz",
"integrity": "sha1-gtJ0aKylrejl/R5tIrV91D69+3w="
},
"tinymce": { "tinymce": {
"version": "4.8.5", "version": "4.8.5",
"resolved": "http://registry.npm.taobao.org/tinymce/download/tinymce-4.8.5.tgz", "resolved": "http://registry.npm.taobao.org/tinymce/download/tinymce-4.8.5.tgz",
...@@ -11229,6 +11262,14 @@ ...@@ -11229,6 +11262,14 @@
"resolved": "http://registry.npm.taobao.org/vue-axios/download/vue-axios-2.1.4.tgz", "resolved": "http://registry.npm.taobao.org/vue-axios/download/vue-axios-2.1.4.tgz",
"integrity": "sha1-qdKY9+h2+ah/6zNrN63LzjT/n58=" "integrity": "sha1-qdKY9+h2+ah/6zNrN63LzjT/n58="
}, },
"vue-clipboard2": {
"version": "0.2.1",
"resolved": "http://registry.npm.taobao.org/vue-clipboard2/download/vue-clipboard2-0.2.1.tgz",
"integrity": "sha1-nwZpCvHJiu80S+H8S+sAzcUwfuE=",
"requires": {
"clipboard": "2.0.4"
}
},
"vue-hot-reload-api": { "vue-hot-reload-api": {
"version": "2.3.1", "version": "2.3.1",
"resolved": "http://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.1.tgz", "resolved": "http://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.1.tgz",
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
"tinymce": "^4.8.5", "tinymce": "^4.8.5",
"vue": "^2.5.2", "vue": "^2.5.2",
"vue-axios": "^2.1.1", "vue-axios": "^2.1.1",
"vue-clipboard2": "^0.2.1",
"vue-router": "^3.0.1", "vue-router": "^3.0.1",
"vuedraggable": "^2.16.0", "vuedraggable": "^2.16.0",
"vuex": "^3.0.1" "vuex": "^3.0.1"
......
...@@ -18,7 +18,7 @@ request = axios.create({ ...@@ -18,7 +18,7 @@ request = axios.create({
request.interceptors.request.use( request.interceptors.request.use(
config => { config => {
config.params={ config.params={
requestProject:"mall", requestProject:"integral-mall",
...config.params ...config.params
} }
......
...@@ -10,6 +10,7 @@ import vueGicImgPreview from '@gic-test/vue-gic-img-preview' ...@@ -10,6 +10,7 @@ import vueGicImgPreview from '@gic-test/vue-gic-img-preview'
import vueGicStoreLinkage from '@gic-test/vue-gic-store-linkage/src/lib' import vueGicStoreLinkage from '@gic-test/vue-gic-store-linkage/src/lib'
import vueGicAsideMenu from '@/components/aside-menu' import vueGicAsideMenu from '@/components/aside-menu'
import vueGicUploadImage from '@gic-test/vue-gic-upload-image/src/lib' import vueGicUploadImage from '@gic-test/vue-gic-upload-image/src/lib'
import VueClipboard from 'vue-clipboard2'
import packele from 'packele' import packele from 'packele'
...@@ -22,6 +23,7 @@ Vue.use(vueGicAsideMenu) ...@@ -22,6 +23,7 @@ Vue.use(vueGicAsideMenu)
Vue.use(vueGicStoreLinkage) Vue.use(vueGicStoreLinkage)
Vue.use(vueGicImgPreview) Vue.use(vueGicImgPreview)
Vue.use(vueGicUploadImage) Vue.use(vueGicUploadImage)
Vue.use(VueClipboard)
Vue.prototype.axios = axios; Vue.prototype.axios = axios;
Vue.prototype.axios.withCredentials = true Vue.prototype.axios.withCredentials = true
window.$bus = new Vue(); window.$bus = new Vue();
......
<template>
<el-dialog title="商品链接" :visible.sync="modalData.show" width="450px">
<div class="dialog-body">
<div class="wechat-url" style="margin-bottom:30px;">
<p style="font-weight: 600;margin-bottom:15px">页面链接</p>
<div style="display:flex;align-items: center">
<el-input
type="textarea"
:rows="2"
v-model="modalData.pageUrl"
disabled>
</el-input>
<a
href="javaScript:void(0)"
style="width:40px;margin-left:20px"
v-clipboard:copy="modalData.pageUrl"
v-clipboard:success="onCopy"
v-clipboard:error="onError"
>
复制
</a>
</div>
</div>
<div class="wechat-img-box" v-loading="modalData.loading">
<p style="font-weight: 600;margin-bottom:15px">小程序二维码</p>
<img
:src="modalData.imgUrl"
class="wechat-img"
style="width:140px;height:140px;margin-left:130px">
</div>
</div>
</el-dialog>
</template>
<script>
import request from '../../../api/request.js'
import common from '../../../../static/js/common.js';
export default {
props:{
modalData:{
type:Object,
}
},
data() {
return {
// loading:true,
}
},
mounted(){
},
methods: {
onCopy(e){
this.$message.success("复制成功")
},
onError(e){
this.$message.error("复制失败")
}
}
}
</script>
<style scoped>
.wechat-img-box{
margin:0 auto;
text-align: center;
}
.wechat-img{
width:200px;
height:200px;
}
<style>
\ No newline at end of file
...@@ -5,10 +5,16 @@ ...@@ -5,10 +5,16 @@
<div class="singelinfo-img"><img width="100" height="100" :src="singleInfo.thirdImgUrl || defaultAvatar" alt=""></div> <div class="singelinfo-img"><img width="100" height="100" :src="singleInfo.thirdImgUrl || defaultAvatar" alt=""></div>
<div class="singelinfo-content pl10 pr10"> <div class="singelinfo-content pl10 pr10">
<span class="lheigt">{{ singleInfo.memberName }} <span class="lheigt">{{ singleInfo.memberName }}
<img :title="singleInfo.status == 0 ? '取消关注公众号' : singleInfo.status == 1 ? '已关注公众号' : '未关注公众号'" class="fr" <img :title="singleInfo.status == 0 ? '已取消关注公众号' : singleInfo.status == 1 ? '已关注公众号' : '未关注公众号'" class="fr"
:src="singleInfo.status == 0 ? gzhiconcanclegray : singleInfo.status == 1 ? gzhicon : gzhicongray" /> :src="singleInfo.status == 0 ? gzhiconcanclegray : singleInfo.status == 1 ? gzhicon : gzhicongray" style="margin-right:5px" />
<img :title="singleInfo.wxStatus == 0 ? '未使用小程序' : singleInfo.wxStatus == 1 ? '使用过小程序' : ''" class="channelicon fr mr6" <!-- <img :title="singleInfo.wxStatus == 0 ? '未使用小程序' : singleInfo.wxStatus == 1 ? '使用过小程序' : ''" class="channelicon fr mr6"
:src="singleInfo.wxStatus == 0 ? xcxicongray : singleInfo.wxStatus == 1 ? xcxicon : ''"/> :src="singleInfo.wxStatus == 0 ? xcxicongray : singleInfo.wxStatus == 1 ? xcxicon : ''"/> -->
<img :title="singleInfo.usedMiniProgram ? '使用过小程序' : '未使用小程序' " class="channelicon fr mr6"
:src="singleInfo.usedMiniProgram ? xcxicon : xcxicongray" style="margin-right:5px" />
<img :title="singleInfo.bindPhone ? '已绑定手机号' : '未绑定手机号' " class="channelicon fr mr6"
:src="singleInfo.bindPhone ? bphone : ubphone" style="margin-right:5px" />
<img :title="singleInfo.authStatus ? '已认证' : '未认证' " class="channelicon fr mr6"
:src="singleInfo.authStatus ? autoIcon : unAutoIcon" style="margin-right:5px"/>
</span> </span>
<p class="lheigt"> <p class="lheigt">
<span style="margin-right:5px;">{{ singleInfo.memberGender}}</span> <span style="margin-right:5px;">{{ singleInfo.memberGender}}</span>
...@@ -58,11 +64,15 @@ export default { ...@@ -58,11 +64,15 @@ export default {
return { return {
singleInfo:{}, singleInfo:{},
defaultAvatar:require('../../../assets/img/head_default.png'), defaultAvatar:require('../../../assets/img/head_default.png'),
gzhiconcanclegray:require('../../../assets/img/status@gzhcanclegray.png'), gzhiconcanclegray:require('../../../assets/img/status@gzhcanclegray.png'),//取消关注微信公众号
gzhicon:require('../../../assets/img/status@gzh.png'), gzhicon:require('../../../assets/img/status@gzh.png'),//已关注微信公众号
gzhicongray:require('../../../assets/img/status@gzhgray.png'), gzhicongray:require('../../../assets/img/status@gzhgray.png'),//未关注微信公众号
xcxicongray:require('../../../assets/img/status@xcxgray.png'), xcxicongray:require('../../../assets/img/status@xcxgray.png'),//未使用小程序
xcxicon:require('../../../assets/img/status@xcx.png'), xcxicon:require('../../../assets/img/status@xcx.png'),//已使用小程序
bphone:require('../../../assets/img/phone_icon.png'),//绑定手机
ubphone:require('../../../assets/img/phone_icon_gray.png'),//未绑定手机
autoIcon:require('../../../assets/img/member_icon.png'),//已认证
unAutoIcon:require('../../../assets/img/member_icon_gray.png'),//未认证
} }
}, },
methods:{ methods:{
......
...@@ -45,8 +45,9 @@ ...@@ -45,8 +45,9 @@
{{renderShowStatus(scope.row)}} {{renderShowStatus(scope.row)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="left"> <el-table-column label="操作" align="left" min-width="160px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="getLink(scope.row.integralMallProId)" style="display:none">推广</el-button>
<el-button type="text" @click="$router.push('/coupon/info/'+scope.row.integralMallProId)">编辑</el-button> <el-button type="text" @click="$router.push('/coupon/info/'+scope.row.integralMallProId)">编辑</el-button>
<dm-delete @confirm="delData(scope.row)" tips="是否删除该优惠券?"> <dm-delete @confirm="delData(scope.row)" tips="是否删除该优惠券?">
<el-button type="text">删除</el-button> <el-button type="text">删除</el-button>
...@@ -55,16 +56,21 @@ ...@@ -55,16 +56,21 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-pagination v-show="tableList.length" background class="dm-pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listParams.currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="listParams.pageSize" layout="total, sizes, prev, pager, next" :total="total"></el-pagination> <el-pagination v-show="tableList.length" background class="dm-pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listParams.currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="listParams.pageSize" layout="total, sizes, prev, pager, next" :total="total"></el-pagination>
<!-- 推广 -->
<eqCodeDialog :modalData="modalData"></eqCodeDialog>
</section> </section>
</template> </template>
<script> <script>
import { getPageCardsList, deleteProService } from '@/service/api/mallApi.js'; import { getPageCardsList, deleteProService } from '@/service/api/mallApi.js';
import updateCount from '../common/update-count'; import updateCount from '../common/update-count';
import {formateDateTimeByType,format} from '@/utils/index.js'; import {formateDateTimeByType,format} from '@/utils/index.js';
import eqCodeDialog from '../common/eqCode.vue'
import request from '../../../api/request.js'
export default { export default {
name: 'coupon-list', name: 'coupon-list',
components: { components: {
updateCount updateCount,
eqCodeDialog
}, },
data () { data () {
return { return {
...@@ -79,7 +85,12 @@ export default { ...@@ -79,7 +85,12 @@ export default {
currentPage:1, currentPage:1,
pageSize:20 pageSize:20
}, },
total:0 total:0,
modalData:{
show:false,
imgUrl:'',
loading:false
},
} }
}, },
created() { created() {
...@@ -223,7 +234,26 @@ export default { ...@@ -223,7 +234,26 @@ export default {
}).catch(err => { }).catch(err => {
this.$tips({type: 'error',message: '删除失败!'}); this.$tips({type: 'error',message: '删除失败!'});
}) })
} },
// 推广
getLink(mallProId){
this.modalData.loading=true
let params={
integralMallProId:mallProId,
type:"card"
}
this.modalData.show=true
request.get('/api-integral-mall/get-qRCode',{params}).then(res => {
if(res.data.errorCode===0){
this.modalData.show=true
this.modalData.pageUrl=res.data.result.page
this.modalData.imgUrl=res.data.result.url
this.modalData.loading=false
}else{
this.$message.error(res.data.message)
}
})
},
} }
} }
</script> </script>
......
...@@ -84,8 +84,9 @@ ...@@ -84,8 +84,9 @@
{{renderShowStatus(scope.row)}} {{renderShowStatus(scope.row)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="left" fixed="right"> <el-table-column label="操作" align="left" fixed="right" min-width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="getLink(scope.row.integralMallProId)" style="display:none">推广</el-button>
<el-button type="text" @click="$router.push('/gift/info/'+scope.row.integralMallProId)">编辑</el-button> <el-button type="text" @click="$router.push('/gift/info/'+scope.row.integralMallProId)">编辑</el-button>
<dm-delete @confirm="delData(scope.row)" tips="是否删除该优惠券?"> <dm-delete @confirm="delData(scope.row)" tips="是否删除该优惠券?">
<el-button type="text">删除</el-button> <el-button type="text">删除</el-button>
...@@ -94,16 +95,21 @@ ...@@ -94,16 +95,21 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-pagination v-show="tableList.length" background class="dm-pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listParams.currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="listParams.pageSize" layout="total, sizes, prev, pager, next" :total="total"></el-pagination> <el-pagination v-show="tableList.length" background class="dm-pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listParams.currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="listParams.pageSize" layout="total, sizes, prev, pager, next" :total="total"></el-pagination>
<!-- 推广 -->
<eqCodeDialog :modalData="modalData"></eqCodeDialog>
</section> </section>
</template> </template>
<script> <script>
import { getPageGiftList, getCategoryList, deleteProService ,setHotStatusService} from '@/service/api/mallApi.js'; import { getPageGiftList, getCategoryList, deleteProService ,setHotStatusService} from '@/service/api/mallApi.js';
import updateCount from '../common/update-count'; import updateCount from '../common/update-count';
import {formateDateTimeByType,format} from '@/utils/index.js'; import {formateDateTimeByType,format} from '@/utils/index.js';
import eqCodeDialog from '../common/eqCode.vue'
import request from '../../../api/request.js'
export default { export default {
name: 'gift-list', name: 'gift-list',
components: { components: {
updateCount updateCount,
eqCodeDialog
}, },
data () { data () {
return { return {
...@@ -127,6 +133,11 @@ export default { ...@@ -127,6 +133,11 @@ export default {
releaseTypeOptions:[{label:'所有兑换状态',value:-1},{label:'兑换',value:1},{label:'不可兑换',value:0}], releaseTypeOptions:[{label:'所有兑换状态',value:-1},{label:'兑换',value:1},{label:'不可兑换',value:0}],
changeTypeOptions:[{label:'所有兑换方式',value:-1},{label:'微信兑换',value:1},{label:'快递发货',value:2},{label:'在线发货',value:3}], changeTypeOptions:[{label:'所有兑换方式',value:-1},{label:'微信兑换',value:1},{label:'快递发货',value:2},{label:'在线发货',value:3}],
showStatusOptions:[{label:'所有显示状态',value:-1},{label:'显示',value:1},{label:'不显示',value:2}], showStatusOptions:[{label:'所有显示状态',value:-1},{label:'显示',value:1},{label:'不显示',value:2}],
modalData:{
show:false,
imgUrl:'',
loading:false
},
} }
}, },
created() { created() {
...@@ -281,6 +292,25 @@ export default { ...@@ -281,6 +292,25 @@ export default {
this.$tips({type: 'error',message: '删除失败!'}); this.$tips({type: 'error',message: '删除失败!'});
}) })
}, },
// 推广
getLink(mallProId){
this.modalData.loading=true
let params={
integralMallProId:mallProId,
type:"gift"
}
this.modalData.show=true
request.get('/api-integral-mall/get-qRCode',{params}).then(res => {
if(res.data.errorCode===0){
this.modalData.show=true
this.modalData.pageUrl=res.data.result.page
this.modalData.imgUrl=res.data.result.url
this.modalData.loading=false
}else{
this.$message.error(res.data.message)
}
})
},
// 热门推荐 // 热门推荐
changeHotFun(row) { changeHotFun(row) {
setHotStatusService({status:Number(row.proHot),integralMallProId:row.integralMallProId}).then(res => { setHotStatusService({status:Number(row.proHot),integralMallProId:row.integralMallProId}).then(res => {
......
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