This commit is contained in:
caoqianming 2020-05-28 15:32:42 +08:00
commit 9c77679f92
11 changed files with 72 additions and 17 deletions

View File

@ -78,3 +78,9 @@ export function exportConsumer(query) {
params: query params: query
}) })
} }
export function unbindConsumer(id) {
return request({
url: `/crm/consumer/${id}/unbind`,
method: 'get',
})
}

View File

@ -63,3 +63,5 @@ export function deleteUser(id, data) {
data data
}) })
} }

View File

@ -132,7 +132,7 @@
<span>{{ scope.row.create_time }}</span> <span>{{ scope.row.create_time }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="操作" fixed="right"> <el-table-column align="center" label="操作" >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
type="primary" type="primary"
@ -150,6 +150,13 @@
:disabled="!checkPermission(['consumer_delete'])" :disabled="!checkPermission(['consumer_delete'])"
v-if="!scope.row.is_superconsumer" v-if="!scope.row.is_superconsumer"
></el-button> ></el-button>
<el-button
type="primary"
size="small"
@click="handleUnbind(scope)"
:disabled="!checkPermission(['consumer_unbind'])"
v-if="scope.row.username&&scope.row.openid"
>解绑微信</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -231,7 +238,8 @@ import {
updateConsumer, updateConsumer,
importConsumer, importConsumer,
exportConsumer, exportConsumer,
deleteConsumers deleteConsumers,
unbindConsumer
} from "@/api/crm"; } from "@/api/crm";
import { getSubjectAll } from "@/api/question"; import { getSubjectAll } from "@/api/question";
import { getWorkScopeAll } from "@/api/examtest"; import { getWorkScopeAll } from "@/api/examtest";
@ -399,6 +407,19 @@ export default {
this.$refs["consumerForm"].clearValidate(); this.$refs["consumerForm"].clearValidate();
}); });
}, },
handleUnbind(scope) {
unbindConsumer(scope.row.id).then(res => {
if(res.code>=200){
this.$message({
type: "success",
message: "解绑成功!"
});
this.getList()
}
}).catch(err => {
console.error(err)
})
},
handleDelete(scope) { handleDelete(scope) {
this.$confirm("确认删除该用户吗?将丢失数据!", "警告", { this.$confirm("确认删除该用户吗?将丢失数据!", "警告", {
confirmButtonText: "确认", confirmButtonText: "确认",

View File

@ -48,7 +48,7 @@
<el-table-column align="left" label="更新时间"> <el-table-column align="left" label="更新时间">
<template slot-scope="scope">{{ scope.row.update_time }}</template> <template slot-scope="scope">{{ scope.row.update_time }}</template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="操作"> <el-table-column align="center" label="操作" >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
v-show="scope.row.is_top" v-show="scope.row.is_top"

View File

@ -10,7 +10,7 @@
</view> </view>
<view class="page__bd"> <view class="page__bd">
<view class="weui-article"> <view class="weui-article">
<parser html="{{content}}" domain="{{domain}}"/> <parser html="{{content}}" domain="{{domain}}" selectable/>
</view> </view>
</view> </view>
</view> </view>

View File

@ -17,7 +17,7 @@ Page({
nowWork:null, nowWork:null,
msgList: [ msgList: [
{ title: "欢迎使用中科辐射学堂!" }, { title: "欢迎使用中科辐射学堂!" },
{ title: "如有疑问,请致电课程顾问师老师:18355135390" },] { title: "如有疑问,请致电课程顾问" },]
}, },
imgH: function (e) { imgH: function (e) {
let winWid = wx.getSystemInfoSync().windowWidth; //获取当前屏幕的宽度 let winWid = wx.getSystemInfoSync().windowWidth; //获取当前屏幕的宽度
@ -107,10 +107,17 @@ Page({
url: '/pages/lianxi/index', url: '/pages/lianxi/index',
}) })
}else{ }else{
wx.showToast({ wx.showModal({
title: '未开通权限\r\n请致电18355135390', title: '暂未开通权限!',
icon: 'none', content: '查看各地区课程顾问联系方式。',
duration: 2000 confirmText: '查看',
success(res) {
if (res.confirm) {
wx.navigateTo({
url: '/pages/article/detail?id=6',
})
}
}
}) })
} }
}, },
@ -166,10 +173,17 @@ Page({
url: '/pages/yati/index', url: '/pages/yati/index',
}) })
} else { } else {
wx.showToast({ wx.showModal({
title: '未开通权限\r\n请联系课程顾问', title: '暂未开通权限!',
icon: 'none', content: '查看各地区课程顾问联系方式。',
duration: 2000 confirmText: '查看',
success(res) {
if (res.confirm) {
wx.navigateTo({
url: '/pages/article/detail?id=6',
})
}
}
}) })
} }
}, },

View File

@ -50,7 +50,7 @@
</view> </view>
<view class="weui-footer weui-footer_fixed-bottom"> <view class="weui-footer weui-footer_fixed-bottom">
<!-- <view class="weui-footer__text" bindtap="intro">点击下载系统/小程序文档介绍</view> --> <!-- <view class="weui-footer__text" bindtap="intro">点击下载系统/小程序文档介绍</view> -->
<view class="weui-footer__text">更多服务请联系课程顾问师老师:18355135390</view> <view class="weui-footer__text">更多服务请联系课程顾问</view>
</view> </view>

View File

@ -244,6 +244,18 @@ class ConsumerViewSet(ModelViewSet):
path = export_consumer(serializer.data) path = export_consumer(serializer.data)
return Response({'path': path}) return Response({'path': path})
@action(methods=['get'], detail=True, url_name='consumer_unbind', perms_map=[{'*':'consumer_unbind'}])
def unbind(self, request, *args, **kwargs):
obj = self.get_object()
if obj.username and obj.openid:
obj.openid = None
obj.nickname = None
obj.avatar = None
obj.save()
return Response(status=status.HTTP_200_OK)
else:
return Response({"error":"不支持解绑!"})
class ConsumerMPLoginView(APIView): class ConsumerMPLoginView(APIView):
""" """
小程序登陆颁发token 小程序登陆颁发token

View File

@ -246,7 +246,7 @@ class ExamTestViewSet(ModelViewSet):
queryset = ExamTest.objects.filter(consumer=request.user) queryset = ExamTest.objects.filter(consumer=request.user)
ret = {} ret = {}
ret['total'] = queryset.count() ret['total'] = queryset.count()
ret['avg_score'] = round(queryset.aggregate(avg=Avg('score'))['avg']) ret['avg_score'] = round(queryset.aggregate(avg=Avg('score'))['avg']) if ret['total'] else 0
ret['pass_rate'] = round(((queryset.filter(is_pass=True).count())/ret['total'])*100) if ret['total'] else 0 ret['pass_rate'] = round(((queryset.filter(is_pass=True).count())/ret['total'])*100) if ret['total'] else 0
return Response(ret) return Response(ret)

View File

@ -38,4 +38,4 @@ urlpatterns = [
path('redirect/',redirect), path('redirect/',redirect),
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
path('docs/', include_docs_urls(title="答题平台接口文档",authentication_classes=[], permission_classes=[])), path('docs/', include_docs_urls(title="答题平台接口文档",authentication_classes=[], permission_classes=[])),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)