Compare commits

...

No commits in common. 'master' and 'yh' have entirely different histories.
master ... yh

  1. 8
      .babelrc
  2. 4
      .env.development
  3. 6
      .env.production
  4. 4
      README.md
  5. 3
      build/utils.js
  6. 10
      config/index.js
  7. 2
      index.html
  8. BIN
      src/assets/img/avatar.jpg
  9. 0
      src/assets/img/avatar1 (2).png
  10. BIN
      src/assets/img/login_bg.png
  11. 0
      src/assets/img/login_bg2.jpg
  12. 24
      src/store/index.js
  13. 9
      src/store/modules/common.js
  14. 6
      src/utils/httpRequest.js
  15. 2
      src/views/allocation/allocationList.vue
  16. 14
      src/views/banner/bannerList.vue
  17. 11
      src/views/common/login.vue
  18. 100
      src/views/enterprise/enterprise.vue
  19. 64
      src/views/main-navbar.vue
  20. 595
      src/views/mission/mission.vue
  21. 4
      src/views/mission/missionAdd.vue
  22. 2
      src/views/mission/system.vue
  23. 4
      src/views/user/userDetail.vue
  24. 38
      src/views/user/userList.vue

8
.babelrc

@ -9,11 +9,5 @@
{
"libraryName": "element-ui"
}
]]],
"env": {
"test": {
"presets": ["env", "stage-2"],
"plugins": ["transform-es2015-modules-commonjs", "dynamic-import-node"]
}
}
]]]
}

4
.env.development

@ -0,0 +1,4 @@
ENV = 'development'
# 接口地址
VUE_APP_BASE_API = 'http://192.168.1.111:8891/sqx_fast/'

6
.env.production

@ -0,0 +1,6 @@
ENV = 'production'
# 接口地址
VUE_APP_BASE_API = 'http://waimai.admin.service.cyjyyjy.com/sqx_fast/'
VUE_APP_WS_API = 'ws:///127.0.0.1:8001'

4
README.md

@ -1,5 +1,5 @@
## 省钱兄霸王餐系统
- 省钱兄霸王餐系统基于vue、element-ui构建开发,实现省外卖外卖系统前端功能,提供一套更优的前端解决方案
## 番茄饭团后台系统
- 番茄饭团后台系统基于vue、element-ui构建开发,实现省外卖外卖系统前端功能,提供一套更优的前端解决方案
- 前后端分离,通过token进行数据交互,可独立部署
- 主题定制,通过scss变量统一一站式定制
- 动态菜单,通过菜单管理统一管理访问路由

3
build/utils.js

@ -47,7 +47,8 @@ exports.cssLoaders = function (options) {
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader'
fallback: 'vue-style-loader',
publicPath:'../../'
})
} else {
return ['vue-style-loader'].concat(loaders)

10
config/index.js

@ -14,9 +14,9 @@ module.exports = {
// 代理列表, 是否开启代理通过[./dev.env.js]配置
proxyTable: devEnv.OPEN_PROXY === false ? {} : {
'/proxyApi': {
// target: 'http://192.168.1.17:8891/sqx_fast/',
target: 'http://192.168.1.111:8891/sqx_fast/',
// target: 'https://admin.canmoujiang.com/sqx_fast/', //admin.canmoujiang.com
target: 'http://waimai.admin.service.cyjyyjy.com/sqx_fast/', //admin.canmoujiang.com
// target: 'http://waimai.admin.service.cyjyyjy.com/sqx_fast/', //admin.canmoujiang.com
changeOrigin: true,
pathRewrite: {
'^/proxyApi': ''
@ -32,9 +32,9 @@ module.exports = {
},
// Various Dev Server settings
host: 'localhost', // can be overwritten by process.env.HOST
port: 8001, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: true,
host: '0.0.0.0', // can be overwritten by process.env.HOST
port: 8003, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: false,
errorOverlay: true,
notifyOnErrors: true,
poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-

2
index.html

@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<!-- <script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=miP4RMG1yZoROVRSqTPghvUaRb68iGUB"></script> -->
<title>省钱兄霸王餐系统</title>
<title>番茄饭团后台系统</title>
<% if (process.env.NODE_ENV === 'production') { %>
<!-- 生产环境 -->
<script>document.write('<script src="./config/index.js?t=' + new Date().getTime() + '"><\/script>');</script>

BIN
src/assets/img/avatar.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 917 KiB

0
src/assets/img/avatar.png → src/assets/img/avatar1 (2).png

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

BIN
src/assets/img/login_bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 KiB

0
src/assets/img/login_bg.jpg → src/assets/img/login_bg2.jpg

Before

Width:  |  Height:  |  Size: 416 KiB

After

Width:  |  Height:  |  Size: 416 KiB

24
src/store/index.js

@ -3,10 +3,15 @@ import Vuex from 'vuex'
import cloneDeep from 'lodash/cloneDeep'
import common from './modules/common'
import user from './modules/user'
import httpRequest from '@/utils/httpRequest' // api: https://github.com/axios/axios
Vue.use(Vuex)
export default new Vuex.Store({
state: {
goodsCount: 0,
goodsMerchantCount: 0,
orderCount: 0
},
modules: {
common,
user
@ -17,6 +22,23 @@ export default new Vuex.Store({
Object.keys(state).forEach((key) => {
state[key] = cloneDeep(window.SITE_CONFIG['storeState'][key])
})
},
updateMessage(state, data){
state.goodsCount = data.goodsCount
state.goodsMerchantCount = data.goodsMerchantCount
}
},
actions:{
getMessage(context,payload){
httpRequest({ url: httpRequest.adornUrl(`goodsMerchant/unExaminedInfo`), method: 'get'}).then((res)=>{
if(res.data.code == 0){
context.commit('updateMessage', {
goodsCount: res.data.data.goodsCount,
goodsMerchantCount:res.data.data.goodsMerchantCount,
orderCount: res.data.data.orderCount,
})
}
})
}
},
strict: process.env.NODE_ENV !== 'production'

9
src/store/modules/common.js

@ -16,7 +16,8 @@ export default {
contentIsNeedRefresh: false,
// 主入口标签页
mainTabs: [],
mainTabsActiveName: ''
mainTabsActiveName: '',
},
mutations: {
updateDocumentClientHeight (state, height) {
@ -45,6 +46,8 @@ export default {
},
updateMainTabsActiveName (state, name) {
state.mainTabsActiveName = name
}
}
},
},
}

6
src/utils/httpRequest.js

@ -43,8 +43,10 @@ http.interceptors.response.use(response => {
http.adornUrl = (actionName) => {
// 非生产环境 && 开启代理, 接口前缀统一使用[/proxyApi/]前缀做代理拦截!
// return (process.env.NODE_ENV !== 'production' && process.env.OPEN_PROXY ? '/proxyApi/' : window.SITE_CONFIG.baseUrl) + actionName
// return 'http://192.168.1.17:8891/sqx_fast/' + actionName
return 'http://waimai.admin.service.cyjyyjy.com/sqx_fast/' + actionName //bwcadmin.xianmxkj.com
// console.log(process.env)
return process.env.NODE_ENV === 'production' ? 'http://waimai.admin.service.cyjyyjy.com/sqx_fast/'+ actionName : 'http://192.168.0.111:8891/sqx_fast/'+ actionName
// return 'http://192.168.1.111:8891/sqx_fast/' + actionName
// return 'http://waimai.admin.service.cyjyyjy.com/sqx_fast/' + actionName //bwcadmin.xianmxkj.com
}
http.adornUrl2 = (actionName) => {

2
src/views/allocation/allocationList.vue

@ -247,7 +247,7 @@
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="form.value"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess">
<img v-if="form.value" :src="form.value" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />

14
src/views/banner/bannerList.vue

@ -60,7 +60,7 @@
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="imageUrl"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess">
<img v-if="imageUrl" :src="imageUrl" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
@ -146,7 +146,7 @@
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="imageUrl"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess">
<img v-if="imageUrl" :src="imageUrl" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
@ -238,7 +238,7 @@
<el-upload
class="avatar-uploader"
v-model="imageUrl"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload"
:show-file-list="false"
:on-success="handleAvatarSuccess"
>
@ -325,7 +325,7 @@
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="imageUrl"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess">
<img v-if="imageUrl" :src="imageUrl" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
@ -424,7 +424,7 @@
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="imageUrl"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess">
<img v-if="imageUrl" :src="imageUrl" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
@ -502,7 +502,7 @@
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="imageUrl"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess">
<img v-if="imageUrl" :src="imageUrl" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
@ -535,7 +535,7 @@
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="imageUrl"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess2">
<img v-if="form.imageUrl" :src="form.imageUrl" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />

11
src/views/common/login.vue

@ -3,7 +3,7 @@
<div class="site-content__wrapper">
<div class="site-content">
<div class="login-main">
<h3 class="login-title">省钱兄霸王餐系统</h3>
<h3 class="login-title">番茄饭团后台系统</h3>
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" status-icon>
<el-form-item prop="userName">
<el-input v-model="dataForm.userName" placeholder="帐号"></el-input>
@ -112,7 +112,7 @@
width: 100%;
height: 100%;
content: "";
background-image: url(~@/assets/img/login_bg.jpg);
background-image: url(~@/assets/img/login_bg.png);
background-size: cover;
}
.site-content__wrapper {
@ -150,8 +150,8 @@
.login-main {
position: absolute;
top:50%;
left: 50%;
margin-left: -200px;
left: 64%;
// margin-left: -200px;
margin-top: -150px;
padding: 20px 30px;
width: 400px;
@ -162,6 +162,7 @@
font-size: 20px;
text-align:center;
margin-top:10px;
color: #FB6666;
}
.login-captcha {
overflow: hidden;
@ -173,6 +174,8 @@
.login-btn-submit {
width: 100%;
margin-top: 38px;
background: #F96D6E !important;
border-color: #F96D6E !important;
}
}
</style>

100
src/views/enterprise/enterprise.vue

@ -140,7 +140,7 @@
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="merchantLogo"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess2">
<img v-if="merchantLogo" :src="merchantLogo" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
@ -160,7 +160,7 @@
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="mtImg"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess3">
<img v-if="mtImg" :src="mtImg" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
@ -178,14 +178,13 @@
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="eleImg"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess4">
<img v-if="eleImg" :src="eleImg" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</div>
<div style="margin-bottom: 10px;">
<span style="width: 200px;display: inline-block;text-align: right;">饿了么小程序跳转链接</span>
@ -356,7 +355,7 @@
</el-table-column>
<el-table-column fixed="right" label="操作" width="250" align="center">
<template slot-scope="scope">
<el-button size="mini" type="primary" v-if="scope.row.status==0" @click="shenhe1(scope.row)">审核</el-button>
<el-button size="mini" type="warning" v-if="scope.row.status==0" @click="shenhe1(scope.row)">审核</el-button>
<el-button size="mini" type="primary" v-else @click="jiedan(scope.row)">接单列表</el-button>
<el-button size="mini" type="primary" :disabled="!isAuth('enterprise:update')" @click="addmerchant(scope.row)">修改</el-button>
<el-button size="mini" type="danger" :disabled="!isAuth('enterprise:delete')" v-if="scope.row.status!=0" @click="deldates2(scope.row)">删除</el-button>
@ -388,7 +387,7 @@
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="titleImg"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess1">
<img v-if="titleImg" :src="titleImg" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
@ -405,7 +404,7 @@
</span>
</div>
<div class="imgs" style="width: 50%;">
<el-upload action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" list-type="picture-card"
<el-upload action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" list-type="picture-card"
:show-file-list="false" :on-success="handleRemove">
<i class="el-icon-plus"></i>
</el-upload>
@ -454,7 +453,7 @@
<!-- <el-checkbox v-for="(item,index) in fromTypes" :label="item.id" :key="index">{{item.classifyName}}
</el-checkbox> -->
<span v-for="(item,index) in fromTypes" :key="index" style="margin-right: 20px;">
<el-checkbox v-if="item.state==1" :label="item.id">{{item.classifyName}}
<el-checkbox v-if="item.state==1" :label="item.id+ ''">{{item.classifyName}}
</el-checkbox>
</span>
</el-checkbox-group>
@ -644,15 +643,24 @@
style="display: inline-table;width:45%;height: 100px;border: 1px solid #efefef;padding: 10px;"
placeholder="请输入审批意见"></textarea>
</div>
<div style="margin-bottom: 10px;" v-if="shstatus==1">
<!-- <div style="margin-bottom: 10px;" v-if="shstatus==1">
<span style="width: 200px;display: inline-block;text-align: right;">商铺返现</span>
<span>{{merchantMoney}}</span>
</div> -->
<div style="margin-bottom: 10px;" v-if="shstatus==1">
<span style="width: 200px;display: inline-block;text-align: right;">商铺返现</span>
<span> </span>
<el-input v-model="memberPrice" style="width:200px;" placeholder=""
type="number" min="0" disabled></el-input>
<span> </span>
<el-input v-model="merchantMoney" style="width:200px;" placeholder=""
type="number" min="0" disabled></el-input>
</div>
<div style="margin-bottom: 10px;" v-if="shstatus==1">
<span style="width: 200px;display: inline-block;text-align: right;">会员满返</span>
<span> </span>
<el-input v-model="memberPrice" style="width:200px;" placeholder="请输入金额要求"
type="number" min="0"></el-input>
type="number" min="0" disabled></el-input>
<span> </span>
<el-input v-model="memberMoney" style="width:200px;" placeholder="请输入优惠金额"
type="number" min="0"></el-input>
@ -661,7 +669,7 @@
<span style="width: 200px;display: inline-block;text-align: right;">普通用户满返</span>
<span> </span>
<el-input v-model="price" style="width:200px;" placeholder="请输入金额要求"
type="number" min="0"></el-input>
type="number" min="0" disabled></el-input>
<span> </span>
<el-input v-model="money" style="width:200px;" placeholder="请输入优惠金额"
type="number" min="0"></el-input>
@ -673,7 +681,7 @@
<div style="margin-bottom: 10px;" v-if="shstatus==1">
<span style="width: 200px;display: inline-block;text-align: right;">任务分类</span>
<el-checkbox-group v-model="activityIds" @change="handleCheckedCitiesChange1" style="display: initial;">
<el-checkbox v-for="(item,index) in fromTypes" :label="item.id" :key="index">{{item.classifyName}}
<el-checkbox v-for="(item,index) in fromTypes" :label="item.id+ ''" :key="index">{{item.classifyName}}
</el-checkbox>
</el-checkbox-group>
</div>
@ -727,14 +735,14 @@
<div v-if="scope.row.status==5">放弃任务</div>
</template>
</el-table-column>
<el-table-column label="操作" width="180">
<!-- <el-table-column label="操作" width="180">
<template slot-scope="scope">
<el-button size="mini" type="primary" v-if="scope.row.status==2" @click="classifyStair1(scope.row)">审核
</el-button>
<!-- <el-button size="mini" type="danger" @click="deleteStair1(scope.row)">删除
</el-button> -->
<el-button size="mini" type="danger" @click="deleteStair1(scope.row)">删除
</el-button>
</template>
</el-table-column>
</el-table-column> -->
</el-table>
<div style="text-align: center;margin-top: 10px;">
<el-pagination @size-change="handleSizeChange3" @current-change="handleCurrentChange3"
@ -863,7 +871,7 @@
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="classifyIcon"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess">
<img v-if="classifyIcon" :src="classifyIcon" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
@ -1426,10 +1434,11 @@
this.ids = this.multipleSelection.toString()
console.log('this.ids',this.ids)
this.dialogFormVisible2 = true
this.$store.dispatch('getMessage')
},
//
lists(row) {
this.dialogFormVisible3 = true
this.merchantId = row.merchantId
this.selectList(row.merchantId)
@ -1523,23 +1532,54 @@
this.goodsId = row.goodsId
this.category();
this.merchantMoney = row.merchantMoney
this.dialogFormVisible5 = true
this.shstatus = 0
this.auditContent=''
this.memberPrice=''
this.memberMoney=''
this.price=''
this.money=''
this.activityIds=[]
this.isGoods=''
this.remark = ''
this.remark = row.remark
if(row.memberPrice){
this.memberPrice = row.memberPrice
}
if(row.memberMoney){
this.memberMoney = row.memberMoney
}
if(row.price){
this.price = row.price
}
if(row.money){
this.money = row.money
}
if(row.url){
this.url = row.url
}
if(row.activityIds!='' && row.activityIds){
console.log(row.activityIds.split(','),'row.activityIds.split(',')')
this.activityIds = row.activityIds.split(',')
}else{
var arr = 8
this.activityIds.push(8)
}
if(row.isGoodss){
this.isGoodss = row.isGoods
}
this.$http({
url: this.$http.adornUrl('goodsMerchant/selectGoodsMerchantById'),
method: 'get',
params: this.$http.adornParams({
'merchantId':row.merchantId
})
}).then(({
data
}) => {
// console.log('', data.data)
if (data && data.code === 0) {
this.urlsData.mtUrl = data.data.mtUrl
this.urlsData.eleUrl = data.data.eleUrl
if(row.classify==1){
this.url = this.urlsData.mtUrl
}
if(row.classify==2){
this.url = this.urlsData.eleUrl
}
}
})
this.dialogFormVisible5 = true
},
//
shengheQ1() {
@ -1675,6 +1715,7 @@
this.selectList(this.merchantId)
}
})
this.$store.dispatch('getMessage')
} else {
this.$notify({
title: '提示',
@ -2395,7 +2436,6 @@
}
//
//
var marker = new qq.maps.Marker({
position: myLatlng,

64
src/views/main-navbar.vue

@ -2,9 +2,9 @@
<nav class="site-navbar" :class="'site-navbar--' + navbarLayoutType">
<div class="site-navbar__header">
<h1 class="site-navbar__brand" @click="$router.push({ name: 'home' })">
<a class="site-navbar__brand-lg" href="javascript:;">省钱兄霸王餐系统</a>
<a class="site-navbar__brand-lg" href="javascript:;">番茄饭团后台系统</a>
<a class="site-navbar__brand-mini" href="javascript:;">
<img src="~@/assets/img/avatar.png" style="width: 25px;border-radius: 50%;">
<img src="~@/assets/img/avatar.jpg" style="width: 25px;border-radius: 50%;">
</a>
</h1>
</div>
@ -26,10 +26,32 @@
</el-badge>
</template>
</el-menu-item> -->
<el-menu-item index="1">
<el-dropdown :show-timeout="0" placement="bottom">
<el-badge :value="goodsMerchantCount > 0 || goodsCount> 0 ? goodsCount + goodsMerchantCount : ''">
<i class="el-icon-message-solid"></i>
</el-badge>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="$router.push({ name: 'enterprise' })">
商家审核
<el-badge class="mark" :value="goodsMerchantCount" />
</el-dropdown-item>
<el-dropdown-item @click.native="$router.push({ name: 'mission' })">
商家任务
<el-badge class="mark" :value="goodsCount" />
</el-dropdown-item>
<el-dropdown-item @click.native="$router.push({ name: 'mission' })">
接单管理
<el-badge class="mark" :value="orderCount" />
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-menu-item>
<el-menu-item class="site-navbar__avatar" index="3">
<el-dropdown :show-timeout="0" placement="bottom">
<span class="el-dropdown-link">
<img src="~@/assets/img/avatar.png" :alt="userName">{{ userName }}
<img src="~@/assets/img/avatar.jpg" :alt="userName">{{ userName }}
</span>
<el-dropdown-menu slot="dropdown">
<!-- <el-dropdown-item @click.native="updatePasswordHandle()">修改密码</el-dropdown-item> -->
@ -50,7 +72,9 @@
export default {
data () {
return {
updatePassowrdVisible: false
updatePassowrdVisible: false,
n: 0,
timer: null,
}
},
components: {
@ -70,9 +94,36 @@
},
userName: {
get () { return this.$store.state.user.name }
},
goodsCount(){
return this.$store.state.goodsCount;
},
goodsMerchantCount(){
return this.$store.state.goodsMerchantCount;
},
orderCount(){
return this.$store.state.orderCount;
}
},
mounted(){
this.$store.dispatch('getMessage')
this.timer = setInterval(()=>{
setTimeout(()=>{
this.$store.dispatch('getMessage')
},0)
},1000*60*3)
},
methods: {
//
// getMessage(){
// console.log(this.n++)
// this.$http({ url: this.$http.adornUrl(`goodsMerchant/unExaminedInfo`), method: 'get'}).then((res)=>{
// if(res.data.code == 0){
// this.goodsCount = res.data.data.goodsCount
// this.goodsMerchantCount = res.data.data.goodsMerchantCount
// }
// })
// },
//
updatePasswordHandle () {
this.updatePassowrdVisible = true
@ -101,6 +152,9 @@
})
}).catch(() => {})
}
}
},
beforeDestroy(){
clearInterval(this.timer)
},
}
</script>

595
src/views/mission/mission.vue

@ -1,7 +1,126 @@
<template>
<el-tabs v-model="activeName" @tab-click="handleClick">
<!-- 派单管理 -->
<el-tab-pane label="任务管理" name="first">
<!-- 商家任务接单管理 -->
<el-tab-pane label="商家任务接单管理" name="five">
<div style="display: inline-block;">
<span>状态</span>
<el-select v-model="status" style="width:150px;margin-left: 10px;" @change="animeDat2(status)">
<el-option v-for="item in taskstates" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>&nbsp;&nbsp;&nbsp;
<div style="position: relative;display: inline-block;">
<span>验证手机号:</span>
<el-input style="width: 200px;" @keydown.enter.native="phoneSelect" placeholder="请输入手机号" v-model.trim="phone">
</el-input>&nbsp;&nbsp;
</div>
<!-- <div style="position: relative;display: inline-block;">
<span>渠道商昵称</span>
<el-input style="width: 200px;" @keydown.enter.native="phoneSelect" placeholder="请输入渠道商昵称" v-model.trim="nickName">
</el-input>&nbsp;&nbsp;
</div> -->
<div style="position: relative;display: inline-block;">
<span>标题名称</span>
<el-input style="width: 200px;" @keydown.enter.native="phoneSelect" placeholder="请输入标题名称" v-model.trim="content">
</el-input>&nbsp;&nbsp;
</div>
<div style="position: relative;display: inline-block;">
<span>时间段</span>
<span class="block">
<el-date-picker v-model="value2" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator=""
start-placeholder="开始日期" end-placeholder="结束日期" @change="changeaa1">
</el-date-picker>
</span>
</div>
<el-button style="margin:10px;" size="mini" type="primary" icon="document" @click="phoneSelect">查询
</el-button>
<el-button style="margin:10px;" size="mini" type="primary" icon="document" @click="cleans2">重置</el-button>
<el-button style='margin:10px;' size="mini" type="success" icon="document" @click="derive2">导出Excel</el-button>
</div>
<el-table v-loading="tableDataLoading" :data="tableData2.list">
<el-table-column prop="orderId" label="编号" fixed="left">
</el-table-column>
<el-table-column prop="merchantName" label="商铺名" width="150">
<template slot-scope="scope">
<span style="color: #4f9dec;cursor: pointer;" @click="updates(scope.row,2,)">
{{ scope.row.merchantName}}
</span>
</template>
</el-table-column>
<el-table-column prop="nickName" label="接单用户姓名" width="150">
<template slot-scope="scope">
<span style="color: #4f9dec;cursor: pointer;" @click="updates(scope.row,0,)">
{{ scope.row.nickName ? scope.row.nickName : '未绑定' }}
</span>
</template>
</el-table-column>
<el-table-column prop="nickName" label="用户是否为会员" width="120" align="center">
<template slot-scope="scope">
<span v-if="scope.row.member==0">非会员</span>
<span v-if="scope.row.member==1">会员</span>
</template>
</el-table-column>
<!-- <el-table-column prop="channelName" label="渠道商" width="100">
<template slot-scope="scope">
<span style="color: #4f9dec;cursor: pointer;" v-if="scope.row.channelName"
@click="updates(scope.row,1)">{{scope.row.channelName}}</span>
<span v-else>非渠道商</span>
</template>
</el-table-column> -->
<el-table-column prop="goodsTitle" label="标题" width="160"></el-table-column>
<el-table-column prop="site" label="logo图" align="center" width="180">
<template slot-scope="scope">
<img v-if="scope.row.titleImg" :src="scope.row.titleImg" alt="" width="100" height="100">
<span v-else>暂无</span>
</template>
</el-table-column>
<el-table-column prop="userType" label="平台" width="100">
<template slot-scope="scope">
<span v-if="scope.row.classify == 1">饿了么</span>
<span v-if="scope.row.classify == 2">美团</span>
</template>
</el-table-column>
<el-table-column prop="integral" label="返佣积分">
</el-table-column>
<el-table-column prop="money" label="任务金额"></el-table-column>
<el-table-column prop="phone" label="验证手机号" width="160"></el-table-column>
<el-table-column prop="site" label="验证图" width="200" align="center">
<template slot-scope="scope">
<img v-for="(item,index) in scope.row.imgs" :key="index" :src="item" alt="" width="80" height="80"
style="display: inline-block;margin-left: 10px;" @click="refund(scope.row)">
</template>
</el-table-column>
<el-table-column prop="createTime" label="接单时间" width="150"></el-table-column>
<el-table-column prop="submitTime" label="提交时间" width="160"></el-table-column>
<el-table-column prop="endTime" label="结束时间" width="150"></el-table-column>
<el-table-column prop="auditContent" label="审核内容" width="100">
</el-table-column>
<el-table-column prop="auditTime" label="审核时间"></el-table-column>
<el-table-column fixed="right" prop="status" label="状态" width="100">
<template slot-scope="scope">
<span style="color: #4f9dec;" v-if="scope.row.status === 1 ">待提交</span>
<span style="color: #4f9dec;" v-if="scope.row.status === 2 ">待审核</span>
<span style="color: #4f9dec;" v-if="scope.row.status === 3 ">审核成功</span>
<span style="color: #4f9dec;" v-if="scope.row.status === 4 ">审核失败</span>
<span style="color: #4f9dec;" v-if="scope.row.status === 5 ">放弃任务</span>
</template>
</el-table-column>
<!-- <el-table-column fixed="right" label="操作" width="180">
<template slot-scope="scope">
<el-button v-if="scope.row.status == 2" size="mini" type="primary" :disabled="!isAuth('mission:sold')"
@click="examineClick(scope.row)">审核
</el-button>
<el-button @click="deldatesOder(scope.row)" size="mini" type="danger">删除</el-button>
</template>
</el-table-column> -->
</el-table>
<div style="text-align: center;margin-top: 10px;">
<el-pagination @size-change="handleSizeChange3" @current-change="handleCurrentChange3"
:page-sizes="[10, 20, 30, 40]" :page-size="limit" :current-page="page" layout="total,sizes, prev, pager, next,jumper"
:total="tableData2.totalCount">
</el-pagination>
</div>
</el-tab-pane>
<!-- 任务管理 -->
<!-- <el-tab-pane label="任务管理" name="first">
<div style="display: inline-block;">
<span>平台</span>
<el-select v-model="classify" style="width:150px;margin: 10px;" @change="animeDat(classify)">
@ -166,9 +285,9 @@
:total="tableData.totalCount">
</el-pagination>
</div>
</el-tab-pane>
</el-tab-pane> -->
<!-- 接单管理 -->
<el-tab-pane label="接单管理" name="fourthly">
<!-- <el-tab-pane label="接单管理" name="fourthly">
<div style="display: inline-block;">
<span>状态</span>
<el-select v-model="status" style="width:150px;margin-left: 10px;" @change="animeDat2(status)">
@ -179,11 +298,11 @@
<el-option v-for="item in channelnum" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>&nbsp;&nbsp;&nbsp;&nbsp;
<!-- <div style="position: relative;display: inline-block;">
<div style="position: relative;display: inline-block;">
<span>用户手机号:</span>
<el-input style="width: 200px;" @keydown.enter.native="phoneSelect" placeholder="请输入手机号" v-model="myPhone">
</el-input>&nbsp;&nbsp;
</div> -->
</div>
<div style="position: relative;display: inline-block;">
<span>验证手机号:</span>
<el-input style="width: 200px;" @keydown.enter.native="phoneSelect" placeholder="请输入手机号" v-model.trim="phone">
@ -229,8 +348,8 @@
</span>
</template>
</el-table-column>
<!-- <el-table-column prop="myPhone" label="用户手机号" width="120" align="center">
</el-table-column> -->
<el-table-column prop="myPhone" label="用户手机号" width="120" align="center">
</el-table-column>
<el-table-column prop="nickName" label="用户是否为会员" width="120" align="center">
<template slot-scope="scope">
<span v-if="scope.row.member==0">非会员</span>
@ -251,9 +370,9 @@
</template>
</el-table-column>
<el-table-column prop="integral" label="返佣积分">
<!-- <template slot-scope="scope">
<template slot-scope="scope">
<span v-if="scope.row.status == 3">{{scope.row.integral}}</span>
</template> -->
</template>
</el-table-column>
<el-table-column prop="money" label="任务金额"></el-table-column>
<el-table-column prop="phone" label="验证手机号" width="160"></el-table-column>
@ -283,8 +402,8 @@
<el-button v-if="scope.row.status == 2" size="mini" type="primary" :disabled="!isAuth('mission:sold')"
@click="examineClick(scope.row)">审核
</el-button>
<!-- <el-button size="mini" type="primary" @click="refund(scope.row)">
详情</el-button> -->
<el-button size="mini" type="primary" @click="refund(scope.row)">
详情</el-button>
<el-button @click="deldatesOder(scope.row)" :disabled="!isAuth('mission:delete')" size="mini" v-if="scope.row.status != 1 " type="danger">删除</el-button>
</template>
</el-table-column>
@ -295,129 +414,8 @@
:total="tableData2.totalCount">
</el-pagination>
</div>
</el-tab-pane>
<!-- 分类管理 -->
<el-tab-pane label="分类管理" name="third">
<div style="display: inline-block;float: right;">
<el-button style="margin:0 0 20px 20px;" :disabled="!isAuth('mission:add')" size="mini" type="primary"
icon="document" @click="classifyStair()">添加分类</el-button>
</div>
<el-table v-loading="tableDataLoading" :data="classifyData">
<el-table-column prop="id" label="编号"></el-table-column>
<el-table-column prop="classifyName" label="名称">
</el-table-column>
<el-table-column prop="classifyIcon" label="图标">
<template slot-scope="scope">
<img :src="scope.row.classifyIcon" width="40" height="40" style="border-radius: 50%;"/>
</template>
</el-table-column>
<el-table-column prop="classifyIcon" label="类型">
<template slot-scope="scope">
<span v-if="scope.row.state==1">任务分类</span>
<span v-if="scope.row.state==2">跳转链接</span>
</template>
</el-table-column>
<el-table-column prop="classifyUrl" label="链接">
</el-table-column>
<el-table-column prop="describes" label="描述">
</el-table-column>
<el-table-column label="操作" width="220">
<template slot-scope="scope">
<el-button size="mini" type="primary" :disabled="!isAuth('mission:update')"
@click="compile(scope.$index, scope.row)">编辑
</el-button>
<el-button size="mini" type="danger" :disabled="!isAuth('mission:delete')" @click="deleteStair(scope.row)">
删除
</el-button>
<!-- <el-button size="mini" type="primary" :disabled="!isAuth('mission:update')"
@click="compile(scope.$index, scope.row)">添加
</el-button> -->
</template>
</el-table-column>
</el-table>
<!-- <div style="text-align: center;margin-top: 10px;">
<el-pagination @size-change="handleSizeChange2" @current-change="handleCurrentChange2"
:page-sizes="[10, 20, 30, 40]" :page-size="limit" :current-page="page" layout="total,sizes, prev, pager, next,jumper"
:total="classifyData.length">
</el-pagination>
</div> -->
<!-- 添加一级分类 -->
<el-dialog title="添加分类" :visible.sync="dialogFormVisible" center>
<div style="margin-bottom: 10px;">
<span style="width: 200px;display: inline-block;text-align: right;">分类名称</span>
<el-input style="width:50%;" v-model="classifyName" type="text" placeholder="请输入分类名称"></el-input>
</div>
<div style="margin-bottom: 10px;">
<span style="width: 200px;display: inline-block;text-align: right;">分类类型</span>
<el-radio-group v-model="classStatus" style="text-align: center;">
<el-radio :label="1">任务分类</el-radio>
<el-radio :label="2">跳转链接</el-radio>
</el-radio-group>
</div>
<div style="margin-bottom: 10px;">
<span style="width: 200px;display: inline-block;text-align: right;">分类链接</span>
<el-input style="width:50%;" v-model="classifyUrl" type="text" placeholder="请输入分类链接"></el-input>
</div>
<div style="margin-bottom: 10px;">
<span style="width: 200px;display: inline-block;text-align: right;">分类描述</span>
<el-input style="width:50%;" v-model="describes" type="text" placeholder="请输入分类描述"></el-input>
</div>
<div style="margin-bottom: 10px;display:flex;">
<span style="width: 200px;display: inline-block;text-align: right;">分类图标</span>
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="classifyIcon"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess">
<img v-if="classifyIcon" :src="classifyIcon" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="StairNoticeTo()"> </el-button>
</div>
</el-dialog>
<!-- 修改分类 -->
<el-dialog title="编辑分类" :visible.sync="dialogFormVisible2" center>
<el-form :model="form">
<el-form-item label="分类名称:" :label-width="formLabelWidth">
<el-input v-model="form.classifyName" style="width:65%;"></el-input>
</el-form-item>
<div style="margin-bottom: 10px;">
<span style="width: 200px;display: inline-block;text-align: right;">分类类型</span>
<el-radio-group v-model="classStatus" style="text-align: center;">
<el-radio :label="1">任务分类</el-radio>
<el-radio :label="2">跳转链接</el-radio>
</el-radio-group>
</div>
<el-form-item label="分类链接:" :label-width="formLabelWidth" >
<el-input v-model="form.classifyUrl" style="width:65%;"></el-input>
</el-form-item>
<el-form-item label="分类描述:" :label-width="formLabelWidth">
<el-input v-model="form.describes" style="width:65%;"></el-input>
</el-form-item>
<el-form-item label="分类图标:" :label-width="formLabelWidth">
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="classifyIcon"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess2">
<img v-if="form.classifyIcon" :src="form.classifyIcon" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible2 = false"> </el-button>
<el-button type="primary" @click="CompileNoticeTo()"> </el-button>
</div>
</el-dialog>
</el-tab-pane>
</el-tab-pane> -->
<!-- 商家任务 -->
<el-tab-pane label="商家任务" name="four">
<div style="display: inline-block;">
@ -500,7 +498,7 @@
</el-switch>
</template>
</el-table-column>
<el-table-column prop="channelName" label="渠道商" width="100">
<!-- <el-table-column prop="channelName" label="渠道商" width="100">
<template slot-scope="scope">
<span style="color: #4f9dec;cursor: pointer;" v-if="scope.row.channelName"
@click="updates(scope.row,1)">{{scope.row.channelName}}</span>
@ -512,7 +510,7 @@
<span v-if="scope.row.channelMoney">{{scope.row.channelMoney}}</span>
<span v-else></span>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column prop="merchantGoodsMoney" label="商品发布总金额(元)" width="100">
<template slot-scope="scope">
<span v-if="scope.row.merchantGoodsMoney">{{scope.row.merchantGoodsMoney}}</span>
@ -582,7 +580,7 @@
</el-table-column>
<el-table-column fixed="right" label="操作" width="150">
<template slot-scope="scope">
<el-button style="margin: 10px 0;" size="mini" type="primary" v-if="scope.row.status==0" @click="shenhe1(scope.row)">审核</el-button>
<el-button style="margin: 10px 0;" size="mini" type="warning" v-if="scope.row.status==0" @click="shenhe1(scope.row)">审核</el-button>
<el-button style="margin: 10px 0;" size="mini" type="primary"
@click="xiangqng(scope.row)">详情</el-button>
<el-button style="margin: 10px 0;" @click="adddates(scope.row)" size="mini" :disabled="!isAuth('mission:update')" type="primary">修改</el-button>
@ -599,124 +597,127 @@
</el-pagination>
</div>
</el-tab-pane>
<!-- 商家任务接单管理 -->
<el-tab-pane label="商家任务接单管理" name="five">
<div style="display: inline-block;">
<span>状态</span>
<el-select v-model="status" style="width:150px;margin-left: 10px;" @change="animeDat2(status)">
<el-option v-for="item in taskstates" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>&nbsp;&nbsp;&nbsp;
<div style="position: relative;display: inline-block;">
<span>验证手机号:</span>
<el-input style="width: 200px;" @keydown.enter.native="phoneSelect" placeholder="请输入手机号" v-model.trim="phone">
</el-input>&nbsp;&nbsp;
</div>
<div style="position: relative;display: inline-block;">
<span>渠道商昵称</span>
<el-input style="width: 200px;" @keydown.enter.native="phoneSelect" placeholder="请输入渠道商昵称" v-model.trim="nickName">
</el-input>&nbsp;&nbsp;
</div>
<div style="position: relative;display: inline-block;">
<span>标题名称</span>
<el-input style="width: 200px;" @keydown.enter.native="phoneSelect" placeholder="请输入标题名称" v-model.trim="content">
</el-input>&nbsp;&nbsp;
</div>
<div style="position: relative;display: inline-block;">
<span>时间段</span>
<span class="block">
<el-date-picker v-model="value2" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator=""
start-placeholder="开始日期" end-placeholder="结束日期" @change="changeaa1">
</el-date-picker>
</span>
</div>
<el-button style="margin:10px;" size="mini" type="primary" icon="document" @click="phoneSelect">查询
</el-button>
<el-button style="margin:10px;" size="mini" type="primary" icon="document" @click="cleans2">重置</el-button>
<el-button style='margin:10px;' size="mini" type="success" icon="document" @click="derive2">导出Excel</el-button>
<!-- 分类管理 -->
<el-tab-pane label="分类管理" name="third">
<div style="display: inline-block;float: right;">
<el-button style="margin:0 0 20px 20px;" :disabled="!isAuth('mission:add')" size="mini" type="primary"
icon="document" @click="classifyStair()">添加分类</el-button>
</div>
<el-table v-loading="tableDataLoading" :data="tableData2.list">
<el-table-column prop="orderId" label="编号" fixed="left">
</el-table-column>
<el-table-column prop="merchantName" label="商铺名" width="150">
<template slot-scope="scope">
<span style="color: #4f9dec;cursor: pointer;" @click="updates(scope.row,2,)">
{{ scope.row.merchantName}}
</span>
</template>
</el-table-column>
<el-table-column prop="nickName" label="接单用户姓名" width="150">
<template slot-scope="scope">
<span style="color: #4f9dec;cursor: pointer;" @click="updates(scope.row,0,)">
{{ scope.row.nickName ? scope.row.nickName : '未绑定' }}
</span>
</template>
</el-table-column>
<el-table-column prop="nickName" label="用户是否为会员" width="120" align="center">
<template slot-scope="scope">
<span v-if="scope.row.member==0">非会员</span>
<span v-if="scope.row.member==1">会员</span>
</template>
</el-table-column>
<el-table-column prop="channelName" label="渠道商" width="100">
<template slot-scope="scope">
<span style="color: #4f9dec;cursor: pointer;" v-if="scope.row.channelName"
@click="updates(scope.row,1)">{{scope.row.channelName}}</span>
<span v-else>非渠道商</span>
</template>
</el-table-column>
<el-table-column prop="goodsTitle" label="标题" width="160"></el-table-column>
<el-table-column prop="site" label="logo图" align="center" width="180">
<template slot-scope="scope">
<img v-if="scope.row.titleImg" :src="scope.row.titleImg" alt="" width="100" height="100">
<span v-else>暂无</span>
</template>
<el-table v-loading="tableDataLoading" :data="classifyData">
<el-table-column prop="id" label="编号"></el-table-column>
<el-table-column prop="classifyName" label="名称">
</el-table-column>
<el-table-column prop="userType" label="平台" width="100">
<el-table-column prop="classifyIcon" label="图标">
<template slot-scope="scope">
<span v-if="scope.row.classify == 1">饿了么</span>
<span v-if="scope.row.classify == 2">美团</span>
<img :src="scope.row.classifyIcon" width="40" height="40" style="border-radius: 50%;"/>
</template>
</el-table-column>
<el-table-column prop="integral" label="返佣积分">
</el-table-column>
<el-table-column prop="money" label="任务金额"></el-table-column>
<el-table-column prop="phone" label="验证手机号" width="160"></el-table-column>
<el-table-column prop="site" label="验证图" width="200" align="center">
<el-table-column prop="classifyIcon" label="类型">
<template slot-scope="scope">
<img v-for="(item,index) in scope.row.imgs" :key="index" :src="item" alt="" width="80" height="80"
style="display: inline-block;margin-left: 10px;" @click="refund(scope.row)">
<span v-if="scope.row.state==1">任务分类</span>
<span v-if="scope.row.state==2">跳转链接</span>
</template>
</el-table-column>
<el-table-column prop="createTime" label="接单时间" width="150"></el-table-column>
<el-table-column prop="submitTime" label="提交时间" width="160"></el-table-column>
<el-table-column prop="endTime" label="结束时间" width="150"></el-table-column>
<el-table-column prop="auditContent" label="审核内容" width="100">
<el-table-column prop="classifyUrl" label="链接">
</el-table-column>
<el-table-column prop="auditTime" label="审核时间"></el-table-column>
<el-table-column fixed="right" prop="status" label="状态" width="100">
<template slot-scope="scope">
<span style="color: #4f9dec;" v-if="scope.row.status === 1 ">待提交</span>
<span style="color: #4f9dec;" v-if="scope.row.status === 2 ">待审核</span>
<span style="color: #4f9dec;" v-if="scope.row.status === 3 ">审核成功</span>
<span style="color: #4f9dec;" v-if="scope.row.status === 4 ">审核失败</span>
<span style="color: #4f9dec;" v-if="scope.row.status === 5 ">放弃任务</span>
</template>
<el-table-column prop="describes" label="描述">
</el-table-column>
<el-table-column fixed="right" label="操作" width="180">
<el-table-column label="操作" width="220">
<template slot-scope="scope">
<el-button v-if="scope.row.status == 2" size="mini" type="primary" :disabled="!isAuth('mission:sold')"
@click="examineClick(scope.row)">审核
<el-button size="mini" type="primary" :disabled="!isAuth('mission:update')"
@click="compile(scope.$index, scope.row)">编辑
</el-button>
<!-- <el-button @click="deldatesOder(scope.row)" size="mini" type="danger">删除</el-button> -->
<el-button size="mini" type="danger" :disabled="!isAuth('mission:delete')" @click="deleteStair(scope.row)">
删除
</el-button>
<!-- <el-button size="mini" type="primary" :disabled="!isAuth('mission:update')"
@click="compile(scope.$index, scope.row)">添加
</el-button> -->
</template>
</el-table-column>
</el-table>
<div style="text-align: center;margin-top: 10px;">
<el-pagination @size-change="handleSizeChange3" @current-change="handleCurrentChange3"
<!-- <div style="text-align: center;margin-top: 10px;">
<el-pagination @size-change="handleSizeChange2" @current-change="handleCurrentChange2"
:page-sizes="[10, 20, 30, 40]" :page-size="limit" :current-page="page" layout="total,sizes, prev, pager, next,jumper"
:total="tableData2.totalCount">
:total="classifyData.length">
</el-pagination>
</div> -->
<!-- 添加一级分类 -->
<el-dialog title="添加分类" :visible.sync="dialogFormVisible" center>
<div style="margin-bottom: 10px;">
<span style="width: 200px;display: inline-block;text-align: right;">分类名称</span>
<el-input style="width:50%;" v-model="classifyName" type="text" placeholder="请输入分类名称"></el-input>
</div>
<div style="margin-bottom: 10px;">
<span style="width: 200px;display: inline-block;text-align: right;">分类类型</span>
<el-radio-group v-model="classStatus" style="text-align: center;">
<el-radio :label="1">任务分类</el-radio>
<el-radio :label="2">跳转链接</el-radio>
</el-radio-group>
</div>
<div style="margin-bottom: 10px;">
<span style="width: 200px;display: inline-block;text-align: right;">分类链接</span>
<el-input style="width:50%;" v-model="classifyUrl" type="text" placeholder="请输入分类链接"></el-input>
</div>
<div style="margin-bottom: 10px;">
<span style="width: 200px;display: inline-block;text-align: right;">分类描述</span>
<el-input style="width:50%;" v-model="describes" type="text" placeholder="请输入分类描述"></el-input>
</div>
<div style="margin-bottom: 10px;display:flex;">
<span style="width: 200px;display: inline-block;text-align: right;">分类图标</span>
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="classifyIcon"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess">
<img v-if="classifyIcon" :src="classifyIcon" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="StairNoticeTo()"> </el-button>
</div>
</el-dialog>
<!-- 修改分类 -->
<el-dialog title="编辑分类" :visible.sync="dialogFormVisible2" center>
<el-form :model="form">
<el-form-item label="分类名称:" :label-width="formLabelWidth">
<el-input v-model="form.classifyName" style="width:65%;"></el-input>
</el-form-item>
<div style="margin-bottom: 10px;">
<span style="width: 200px;display: inline-block;text-align: right;">分类类型</span>
<el-radio-group v-model="classStatus" style="text-align: center;">
<el-radio :label="1">任务分类</el-radio>
<el-radio :label="2">跳转链接</el-radio>
</el-radio-group>
</div>
<el-form-item label="分类链接:" :label-width="formLabelWidth" >
<el-input v-model="form.classifyUrl" style="width:65%;"></el-input>
</el-form-item>
<el-form-item label="分类描述:" :label-width="formLabelWidth">
<el-input v-model="form.describes" style="width:65%;"></el-input>
</el-form-item>
<el-form-item label="分类图标:" :label-width="formLabelWidth">
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="classifyIcon"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess2">
<img v-if="form.classifyIcon" :src="form.classifyIcon" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible2 = false"> </el-button>
<el-button type="primary" @click="CompileNoticeTo()"> </el-button>
</div>
</el-dialog>
</el-tab-pane>
<!-- 任务拒绝弹框 -->
<el-dialog title="任务拒绝" :visible.sync="dialogFormVisible7" center>
@ -812,15 +813,24 @@
style="display: inline-table;width:45%;height: 100px;border: 1px solid #efefef;padding: 10px;"
placeholder="请输入审批意见"></textarea>
</div>
<div style="margin-bottom: 10px;" v-if="shstatus==1">
<!-- <div style="margin-bottom: 10px;" v-if="shstatus==1">
<span style="width: 200px;display: inline-block;text-align: right;">商铺返现</span>
<span>{{merchantMoney}}</span>
</div> -->
<div style="margin-bottom: 10px;" v-if="shstatus==1">
<span style="width: 200px;display: inline-block;text-align: right;">商铺返现</span>
<span> </span>
<el-input v-model="memberPrice" style="width:200px;" placeholder=""
type="number" min="0" disabled></el-input>
<span> </span>
<el-input v-model="merchantMoney" style="width:200px;" placeholder=""
type="number" min="0" disabled></el-input>
</div>
<div style="margin-bottom: 10px;" v-if="shstatus==1">
<span style="width: 200px;display: inline-block;text-align: right;">会员满返</span>
<span> </span>
<el-input v-model="memberPrice" style="width:200px;" placeholder="请输入金额要求"
type="number" min="0"></el-input>
type="number" min="0" disabled></el-input>
<span> </span>
<el-input v-model="memberMoney" style="width:200px;" placeholder="请输入优惠金额"
type="number" min="0"></el-input>
@ -829,7 +839,7 @@
<span style="width: 200px;display: inline-block;text-align: right;">普通用户满返</span>
<span> </span>
<el-input v-model="price" style="width:200px;" placeholder="请输入金额要求"
type="number" min="0"></el-input>
type="number" min="0" disabled></el-input>
<span> </span>
<el-input v-model="money" style="width:200px;" placeholder="请输入优惠金额"
type="number" min="0"></el-input>
@ -842,7 +852,7 @@
<span style="width: 200px;display: inline-block;text-align: right;">任务分类</span>
<el-checkbox-group v-model="activityIds" @change="handleCheckedCitiesChange1" style="display: initial;">
<span v-for="(item,index) in fromTypes" :key="index" style="margin-right: 10px;">
<el-checkbox v-if="item.state ==1" :label="item.id" >{{item.classifyName}}
<el-checkbox v-if="item.state ==1" :label="item.id + ''" >{{item.classifyName}}
</el-checkbox>
</span>
@ -1036,7 +1046,7 @@
classifyName: '',
classifyDeatilsName: '',
formLabelWidth: '200px',
activeName: 'first',
activeName: 'five',
tableDataLoading: false,
dialogFormVisible: false,
// dialogFormVisible1: false,
@ -1998,6 +2008,7 @@
},
//
shenhe1(row){
console.log(row,'roweeweqw')
this.goodsId = row.goodsId
this.category();
this.merchantMoney = row.merchantMoney
@ -2018,6 +2029,7 @@
this.url = row.url
}
if(row.activityIds!='' && row.activityIds){
console.log(row.activityIds.split(','),'row.activityIds.split(',')')
this.activityIds = row.activityIds.split(',')
}else{
var arr = 8
@ -2070,42 +2082,42 @@
return
}
if(this.shstatus == 1){
if (this.memberPrice == '') {
this.$notify({
title: '提示',
duration: 1800,
message: '请输入会员满金额',
type: 'warning'
});
return
}
if (this.memberMoney == '') {
this.$notify({
title: '提示',
duration: 1800,
message: '请输入会员返金额',
type: 'warning'
});
return
}
if (this.price == '') {
this.$notify({
title: '提示',
duration: 1800,
message: '请输入普通用户满金额',
type: 'warning'
});
return
}
if (this.money == '') {
this.$notify({
title: '提示',
duration: 1800,
message: '请输入普通用户返金额',
type: 'warning'
});
return
}
// if (this.memberPrice == '') {
// this.$notify({
// title: '',
// duration: 1800,
// message: '',
// type: 'warning'
// });
// return
// }
// if (this.memberMoney == '') {
// this.$notify({
// title: '',
// duration: 1800,
// message: '',
// type: 'warning'
// });
// return
// }
// if (this.price == '') {
// this.$notify({
// title: '',
// duration: 1800,
// message: '',
// type: 'warning'
// });
// return
// }
// if (this.money == '') {
// this.$notify({
// title: '',
// duration: 1800,
// message: '',
// type: 'warning'
// });
// return
// }
if (this.url == '') {
this.$notify({
title: '提示',
@ -2115,15 +2127,15 @@
});
return
}
if (this.activityIds.length == 0) {
this.$notify({
title: '提示',
duration: 1800,
message: '请选择任务分类',
type: 'warning'
});
return
}
// if (this.activityIds.length == 0) {
// this.$notify({
// title: '',
// duration: 1800,
// message: '',
// type: 'warning'
// });
// return
// }
if (this.isGoodss == '') {
this.$notify({
title: '提示',
@ -2182,6 +2194,7 @@
this.dataSelect()
}
})
this.$store.dispatch('getMessage')
} else {
this.$notify({
title: '提示',
@ -2202,9 +2215,13 @@
},
mounted() {
var p =Number(sessionStorage.getItem('page'))
if(p!=1&&p!=null){
if(p!= 0 && p!=null){
this.page = p
}
this.page = 1
this.limit = 10
this.isMerchant = 0
this.taskdataSelect()
this.dataSelect()
this.task()
this.category()

4
src/views/mission/missionAdd.vue

@ -33,7 +33,7 @@
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="titleImg"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess" :on-progress="onprogress">
<img v-if="titleImg!=''&&percentage==100" :src="titleImg" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
@ -51,7 +51,7 @@
</span>
</div>
<div class="imgs" style="width: 50%;">
<el-upload action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" list-type="picture-card"
<el-upload action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" list-type="picture-card"
:show-file-list="false" :on-success="handleRemove" :on-progress="onprogress1">
<el-progress v-if="percentage1>0 && percentage1<100" type="circle" :percentage="percentage1"></el-progress>
<i v-else class="el-icon-plus"></i>

2
src/views/mission/system.vue

@ -461,7 +461,7 @@
<el-table-column
label="图像">
<template slot-scope="scope">
<img v-if="scope.row.imageUrl==null" src="~@/assets/img/avatar.png" alt="" width="40" height="40">
<img v-if="scope.row.imageUrl==null" src="~@/assets/img/avatar.jpg" alt="" width="40" height="40">
<img v-else :src="scope.row.imageUrl" alt="" width="40" height="40">
</template>
</el-table-column>

4
src/views/user/userDetail.vue

@ -504,7 +504,7 @@
<div
style=" width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class="avatar-uploader" v-model="titleImg"
action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" :show-file-list="false"
action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" :show-file-list="false"
:on-success="handleAvatarSuccess">
<img v-if="titleImg" :src="titleImg" class="avatar"
style="border-radius: 6px;width: 148px;height: 148px;" />
@ -521,7 +521,7 @@
</span>
</div>
<div class="imgs" style="width: 50%;">
<el-upload action="https://bwcadmin.xianmxkj.com/sqx_fast/alioss/upload" list-type="picture-card"
<el-upload action="https://fanqie.app.cyjyyjy.com/sqx_fast/alioss/upload" list-type="picture-card"
:show-file-list="false" :on-success="handleRemove">
<i class="el-icon-plus"></i>
</el-upload>

38
src/views/user/userList.vue

@ -6,11 +6,11 @@
<span>手机号:</span>
<el-input style="width: 150px;" @keydown.enter.native="select" clearable placeholder="请输入手机号" v-model="phone">
</el-input>&nbsp;&nbsp;&nbsp;&nbsp;
<span>渠道筛选</span>
<!-- <span>渠道筛选</span>
<el-select v-model="isChannel" style="width:150px;margin: 10px;" @change="animeDat(isChannel)">
<el-option v-for="item in channelnum" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>&nbsp;&nbsp;&nbsp;&nbsp;
</el-select>&nbsp;&nbsp;&nbsp;&nbsp; -->
</div>
<!-- <div style="position: relative;display: inline-block;">
<span>地区</span>
@ -31,7 +31,7 @@
</el-table-column>
<el-table-column label="图像">
<template slot-scope="scope">
<img v-if="scope.row.imageUrl==null" src="~@/assets/img/avatar.png" alt="" width="40" height="40">
<img v-if="scope.row.imageUrl==null" src="~@/assets/img/avatar.jpg" alt="" width="40" height="40">
<img v-else :src="scope.row.imageUrl" alt="" width="40" height="40">
</template>
</el-table-column>
@ -122,11 +122,11 @@
<span>地区</span>
<el-input style="width: 200px;" @keydown.enter.native="select" placeholder="请输入地区" v-model="address"></el-input>
&nbsp;&nbsp;
<span>渠道筛选</span>
<!-- <span>渠道筛选</span>
<el-select v-model="isChannel" style="width:150px;margin: 10px;" @change="animeDat(isChannel)">
<el-option v-for="item in channelnum" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>&nbsp;&nbsp;&nbsp;&nbsp;
</el-select>&nbsp;&nbsp;&nbsp;&nbsp; -->
</div>
<div style="display: inline-block;">
@ -143,7 +143,7 @@
</el-table-column>
<el-table-column label="图像">
<template slot-scope="scope">
<img v-if="scope.row.imageUrl==null" src="~@/assets/img/avatar.png" alt="" width="40" height="40">
<img v-if="scope.row.imageUrl==null" src="~@/assets/img/avatar.jpg" alt="" width="40" height="40">
<img v-else :src="scope.row.imageUrl" alt="" width="40" height="40">
</template>
</el-table-column>
@ -228,11 +228,11 @@
<span>地区</span>
<el-input style="width: 200px;" @keydown.enter.native="select" placeholder="请输入地区" v-model="address"></el-input>
&nbsp;&nbsp;
<span>渠道筛选</span>
<!-- <span>渠道筛选</span>
<el-select v-model="isChannel" style="width:150px;margin: 10px;" @change="animeDat(isChannel)">
<el-option v-for="item in channelnum" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>&nbsp;&nbsp;&nbsp;&nbsp;
</el-select>&nbsp;&nbsp;&nbsp;&nbsp; -->
</div>
<div style="display: inline-block;">
<el-button style='margin-left:15px;' size="mini" type="primary" icon="document" @click="select">查询</el-button>
@ -248,7 +248,7 @@
</el-table-column>
<el-table-column label="图像">
<template slot-scope="scope">
<img v-if="scope.row.imageUrl==null" src="~@/assets/img/avatar.png" alt="" width="40" height="40">
<img v-if="scope.row.imageUrl==null" src="~@/assets/img/avatar.jpg" alt="" width="40" height="40">
<img v-else :src="scope.row.imageUrl" alt="" width="40" height="40">
</template>
</el-table-column>
@ -272,7 +272,7 @@
<span v-if="scope.row.member==0">非会员</span>
</template>
</el-table-column>
<el-table-column prop="teamName " label="团长">
<!-- <el-table-column prop="teamName " label="团长">
<template slot-scope="scope">
<span v-if="scope.row.teamName">{{scope.row.teamName}}</span>
<span v-else>非团长</span>
@ -283,7 +283,7 @@
<span v-if="scope.row.isChannel==1"></span>
<span v-else></span>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column prop="zhifubaoName" label="支付宝名称">
<template slot-scope="scope">
<span>{{scope.row.zhifubaoName ? scope.row.zhifubaoName : '未绑定'}}</span>
@ -321,7 +321,7 @@
</el-pagination>
</div>
</el-tab-pane>
<el-tab-pane label="渠道用户" name="four">
<!-- <el-tab-pane label="渠道用户" name="four">
<div style="margin:2% 0;display: inline-block;">
<span>手机号:</span>
<el-input style="width: 150px;" @keydown.enter.native="select" clearable placeholder="请输入手机号" v-model="phone">
@ -346,7 +346,7 @@
</el-table-column>
<el-table-column label="图像">
<template slot-scope="scope">
<img v-if="scope.row.imageUrl==null" src="~@/assets/img/avatar.png" alt="" width="40" height="40">
<img v-if="scope.row.imageUrl==null" src="~@/assets/img/avatar.jpg" alt="" width="40" height="40">
<img v-else :src="scope.row.imageUrl" alt="" width="40" height="40">
</template>
</el-table-column>
@ -424,8 +424,8 @@
:page-size="limit" :current-page="page" layout="total,sizes, prev, pager, next,jumper" :total="tableData.totalCount">
</el-pagination>
</div>
</el-tab-pane>
<el-tab-pane label="团长用户" name="five">
</el-tab-pane> -->
<!-- <el-tab-pane label="团长用户" name="five">
<div style="margin:2% 0;display: inline-block;">
<span>手机号:</span>
<el-input style="width: 150px;" @keydown.enter.native="select" clearable placeholder="请输入手机号" v-model="phone">
@ -455,7 +455,7 @@
</el-table-column>
<el-table-column label="图像">
<template slot-scope="scope">
<img v-if="scope.row.imageUrl==null" src="~@/assets/img/avatar.png" alt="" width="40" height="40">
<img v-if="scope.row.imageUrl==null" src="~@/assets/img/avatar.jpg" alt="" width="40" height="40">
<img v-else :src="scope.row.imageUrl" alt="" width="40" height="40">
</template>
</el-table-column>
@ -536,7 +536,7 @@
:page-size="limit" :current-page="page" layout="total,sizes, prev, pager, next,jumper" :total="tableData.totalCount">
</el-pagination>
</div>
</el-tab-pane>
</el-tab-pane> -->
<!-- 商户用户 -->
<el-tab-pane label="商户用户" name="six">
<div style="margin:2% 0;display: inline-block;">
@ -556,14 +556,14 @@
</el-button>
</div>
<el-table v-loading="tableDataLoading" :data="tableData.list">
<el-table-column fixed prop="nickName" label="昵称" width="150">
<el-table-column prop="nickName" label="昵称" width="150">
<template slot-scope="scope">
<span style="color: #f56c6c;">{{scope.row.nickName ? scope.row.nickName : '未绑定'}}</span>
</template>
</el-table-column>
<el-table-column label="图像">
<template slot-scope="scope">
<img v-if="scope.row.imageUrl==null" src="~@/assets/img/avatar.png" alt="" width="40" height="40">
<img v-if="scope.row.imageUrl==null" src="~@/assets/img/avatar.jpg" alt="" width="40" height="40">
<img v-else :src="scope.row.imageUrl" alt="" width="40" height="40">
</template>
</el-table-column>

Loading…
Cancel
Save