用户自己选择工作类别

This commit is contained in:
caoqianming 2021-04-17 11:39:07 +08:00
parent bdd68f6b61
commit fd620df3df
12 changed files with 102 additions and 47 deletions

View File

@ -34,6 +34,12 @@
<el-tag type="warning" v-else></el-tag>
</template>
</el-table-column>
<el-table-column label="是否公开">
<template slot-scope="scope">
<el-tag v-if="scope.row.is_public"></el-tag>
<el-tag type="warning" v-else></el-tag>
</template>
</el-table-column>
<el-table-column label="排序">
<template slot-scope="scope">
<span>{{ scope.row.sortnum }}</span>

View File

@ -13,6 +13,9 @@
<el-form-item label="是否可组织考试" prop="can_exam" label-width="120px">
<el-switch v-model="Form.can_exam"></el-switch>
</el-form-item>
<el-form-item label="是否公开" prop="is_public" label-width="120px">
<el-switch v-model="Form.is_public"></el-switch>
</el-form-item>
<el-form-item label="所属学科" prop="subject">
<el-select v-model="Form.subject" placeholder="请选择所属学科" style="width:400px">
<el-option

View File

@ -13,6 +13,9 @@
<el-form-item label="是否可组织考试" prop="can_exam" label-width="120px">
<el-switch v-model="Form.can_exam"></el-switch>
</el-form-item>
<el-form-item label="是否公开" prop="is_public" label-width="120px">
<el-switch v-model="Form.is_public"></el-switch>
</el-form-item>
<el-form-item label="所属学科" prop="subject">
<el-select v-model="Form.subject" placeholder="请选择所属学科" style="width:400px">
<el-option

View File

@ -70,9 +70,9 @@ App({
globalData: {
userInfo: {},
userinfo: {}, // 服务器传回的消费者信息
host: 'https://apitest.ahctc.cn',
//host: 'https://apitest.ahctc.cn',
mediahost: 'https://apitest.ahctc.cn',
//host: 'http://127.0.0.1:8000',
host: 'http://127.0.0.1:8000',
//mediahost: 'http://127.0.0.1:8000',
token : '',
}

View File

@ -16,13 +16,7 @@ Page({
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
let userinfo = getApp().globalData.userinfo
if(userinfo.username){
userinfo.username = userinfo.username.replace(/(\d{3})(\d{4})(\d{4})/,"$1****$3")
}
this.setData({
userinfo: userinfo
})
},
/**
@ -36,6 +30,13 @@ Page({
* 生命周期函数--监听页面显示
*/
onShow: function () {
let userinfo = getApp().globalData.userinfo
if(userinfo.username){
userinfo.username = userinfo.username.replace(/(\d{3})(\d{4})(\d{4})/,"$1****$3")
}
this.setData({
userinfo: userinfo
})
api.request('/examtest/examtest/fx/', 'GET').then(res => {
this.setData(res.data)
})

View File

@ -28,7 +28,7 @@
</view>
<view class="weui-cells__title">统计分析</view>
<view class="weui-cells weui-cells_after-title">
<view class="weui-cell">
<navigator url="/pages/workscope/index" class="weui-cell weui-cell_access">
<view class="weui-cell__hd">
<image src="/images/class.svg" style="margin-right: 16px;vertical-align: middle;width:20px; height: 20px;">
</image>
@ -37,7 +37,7 @@
<view class="weui-cell__ft" style="font-weight:bold;color:darkblue" wx:if="{{userinfo.workscope_name}}">
{{userinfo.workscope_name}}</view>
<view class="weui-cell__ft" style="font-weight:bold;color:darkblue" wx:else>无</view>
</view>
</navigator>
<!-- <l-list title="模考次数" tag-content="{{total}}" tag-position="right"/> -->
<view class="weui-cell">
<view class="weui-cell__hd">

View File

@ -15,29 +15,29 @@ Page({
*/
onLoad: function (options) {
var that = this
try {
var value = wx.getStorageSync('nowSubject')
if (value.id) {
api.request('/examtest/workscope/', 'GET', { subject:value.id}).then(res => {
// try {
// var value = wx.getStorageSync('nowSubject')
// if (value.id) {
api.request('/examtest/workscope/', 'GET', {is_public:true}).then(res => {
that.setData({
workData:res.data
})
})
}else{
wx.showModal({
content: '请先选择学科!',
showCancel:false,
success(res) {
if (res.confirm) {
wx.redirectTo({
url: '/pages/subject/index',
})
}
}
})
}
} catch (e) {
}
// }else{
// wx.showModal({
// content: '请先选择学科!',
// showCancel:false,
// success(res) {
// if (res.confirm) {
// wx.redirectTo({
// url: '/pages/subject/index',
// })
// }
// }
// })
// }
// } catch (e) {
// }
},
@ -92,9 +92,17 @@ Page({
chooseWork: function (e) {
let work = e.currentTarget.dataset
wx.setStorageSync('nowWork', work)
api.request(`/examtest/workscope/${work.id}/chose/`, 'GET').then(res => {
//选择工作类别
// that.setData({
// workData:res.data
// })
getApp().globalData.userinfo.workscope = res.data.workscope
getApp().globalData.userinfo.workscope_name = res.data.workscope_name
wx.navigateBack({
})
})
//wx.setStorageSync('nowWork', work)
},
})

View File

@ -1,21 +1,18 @@
<!--pages/lianxi/index.wxml-->
<view class="page">
<view class="page__bd">
<view class="weui-panel__hd">所有工作类别</view>
<view class="weui-panel__bd">
<block wx:for="{{workData}}" wx:key="unique">
<view class="weui-media-box weui-media-box_appmsg" bindtap="chooseWork" data-id="{{item.id}}" data-name="{{item.name}}">
<view class="weui-media-box__hd">
<!-- <view class="weui-media-box__hd">
<image class="weui-media-box__thumb" src="/images/fushe.svg" alt></image>
</view>
</view> -->
<view class="weui-media-box__bd">
<h4 class="weui-media-box__title">{{item.name}}</h4>
<view class="weui-media-box__desc">
<span style="font-weight:bold;color:darkblue" >{{item.subject_name}}</span>
<span style="color:blue;border:1rpx solid blue;font-size:12px" wx:if="{{item.can_exam}}">公开可选</span>
该类别下包含<span style="color:darkblue">{{item.questioncat.length}}</span>个科目
</view>
</view>
</view>
</block>
</view>
</view>
</view>

View File

@ -18,9 +18,9 @@ function request(url, method, data) {
})
}
else {
var msg = ''
var msg = '请求错误'
if(res.data.msg){
msg = JSON.stringify(res.data.msg)
msg = res.data.msg
}
if (msg.indexOf('该操作的权限')!=-1){
msg = '权限不足或账户过期,请联系课程顾问'

View File

@ -0,0 +1,18 @@
# Generated by Django 3.0.4 on 2021-04-17 03:38
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('examtest', '0028_workscope_sortnum'),
]
operations = [
migrations.AddField(
model_name='workscope',
name='is_public',
field=models.BooleanField(default=True, verbose_name='是否公开'),
),
]

View File

@ -34,6 +34,7 @@ class WorkScope(CommonModel):
rule = models.ForeignKey(TestRule, on_delete=models.CASCADE, verbose_name='试卷结构')
can_exam = models.BooleanField('是否可组织考试', default=False)
sortnum = models.IntegerField('排序码', default=1)
is_public = models.BooleanField('是否公开', default=True)
# can_choose = models.BooleanField('客户是否可选择', default=False)
class Meta:

View File

@ -1,3 +1,4 @@
from crm.models import Candidate
from datetime import datetime
from django.db.models import Avg
@ -172,15 +173,15 @@ class WorkScopeViewSet(ModelViewSet):
工作类别增删改查
"""
perms_map = [
{'get': 'workscope_list'}, {'post': 'workscope_create'},
{'get': '*'}, {'post': 'workscope_create'},
{'put': 'workscope_update'}, {'delete': 'workscope_delete'}]
pagination_class = None
queryset = WorkScope.objects.filter(is_delete=0).all().order_by("id")
serializer_class = WorkScopeSerializer
ordering_fields = ('id',)
ordering = ['sortnum']
ordering = ['-can_exam', 'sortnum']
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
filterset_fields = ['subject', 'can_exam']
filterset_fields = ['subject', 'can_exam', 'is_public']
search_fields = ('name',)
def get_queryset(self):
@ -307,6 +308,23 @@ class WorkScopeViewSet(ModelViewSet):
ret['remain_count'] = user.remain_count
return Response(ret)
@action(methods=['get'], detail=True, perms_map=[{'get':'*'}])
def chose(self, request, *args, **kwargs):
"""
用户自己选择工作类别
"""
obj = self.get_object()
if obj.can_exam:
try:
Candidate.objects.get_or_create(consumer=request.user, workscope=request.user.workscope, defaults={'consumer':request.user, 'workscope':request.user.workscope})
except:
pass
request.user.workscope = obj
request.user.save()
return Response({'workscope':obj.pk, 'workscope_name':obj.name})
if Candidate.objects.filter(consumer=request.user, workscope=obj).exists():
return Response({'workscope':obj.pk, 'workscope_name':obj.name})
return Response({'error':'该类别不可选择,请咨询课程顾问'})
class BannerViewSet(ModelViewSet):
"""