export xlsx clone paper

This commit is contained in:
caoqianming 2020-09-13 12:05:19 +08:00
parent 68887c2150
commit ef564842a0
5 changed files with 47 additions and 5 deletions

View File

@ -112,6 +112,13 @@ export function updatePaper(id, data) {
data
})
}
export function clonePaper(id) {
return request({
url: `/examtest/paper/${id}/clone/`,
method: 'put',
})
}
export function deletePaper(id) {
return request({
url: `/examtest/paper/${id}/`,

View File

@ -54,6 +54,12 @@
icon="el-icon-edit"
:disabled="!checkPermission(['paper_update'])"
></el-button>
<el-button
type="warning"
size="small"
@click="handleClone(scope)"
:disabled="!checkPermission(['paper_clone'])"
>克隆</el-button>
<el-button
type="danger"
size="small"
@ -75,7 +81,7 @@
</template>
<script>
import { getPaperList, deletePaper } from "@/api/examtest";
import { getPaperList, deletePaper, clonePaper } from "@/api/examtest";
import checkPermission from "@/utils/permission";
import Pagination from "@/components/Pagination";
@ -129,6 +135,15 @@ export default {
handleEdit(scope) {
this.$router.push({path:"/sjmanage/paper/update",query:{id:scope.row.id}})
},
handleClone(scope) {
const loading = this.$loading({
text: '克隆中..',
});
clonePaper(scope.row.id).then(res=>{
this.getList()
loading.close()
}).catch(e=>{loading.close()})
},
handleDelete(scope) {
this.$confirm('确认删除?', '提示', {
confirmButtonText: '确定',

View File

@ -14,11 +14,11 @@ def export_consumer(users):
wb = Workbook()
ws1 = wb.active
ws1.title = '用户表'
ws1.append(['姓名','手机号', '单位', '微信昵称', '工作类别', '创建日期'])
ws1.append(['姓名','手机号', '单位', '身份证号', '微信昵称', '工作类别', '用户角色', '创建日期', '所属账户'])
row = ws1.row_dimensions[1]
row.font = Font(bold=True)
for i in users:
ws1.append([i['name'], i['username'], i['company_name'], i['nickname'], i['workscope_name'], i['create_time']])
ws1.append([i['name'], i['username'], i['company_name'], i['ID_number1'], i['nickname'], i['workscope_name'], i['role_name'], i['create_time'], i['create_admin_name']])
filename = 'users' + datetime.now().strftime("%Y%m%d%H%M%S") +'.xlsx'
path = '/media/export/' + filename
wb.save((BASE_DIR + path).replace('\\', '/'))

View File

@ -39,6 +39,7 @@ class ConsumerSerializer(serializers.ModelSerializer):
workscope_name = serializers.StringRelatedField(source='workscope', read_only=True)
role_name = serializers.StringRelatedField(source='role', read_only=True)
create_admin_ = UserListSerializer(source='create_admin', read_only=True)
create_admin_name = serializers.StringRelatedField(source='create_admin', read_only=True)
class Meta:
model = Consumer
exclude = ('avatar','collects', 'process')

View File

@ -395,10 +395,29 @@ class PaperViewSet(ModelViewSet):
return Response(ret)
@action(methods=['put'], detail=True, url_path='clone', url_name='clone_paper',
authentication_classes=[],permission_classes=[],
perms_map=[{'put':'clone_paper'}])
def clone(self, request, pk=None):
'''
克隆试卷
'''
pass
paper = self.get_object()
obj = Paper()
obj.name = '克隆卷-'+paper.name
obj.workscope = paper.workscope
obj.limit = paper.limit
obj.total_score = paper.total_score
obj.pass_score = paper.pass_score
obj.danxuan_count = paper.danxuan_count
obj.danxuan_score = paper.danxuan_score
obj.duoxuan_count = paper.duoxuan_count
obj.duoxuan_score = paper.duoxuan_score
obj.panduan_count = paper.panduan_count
obj.panduan_score = paper.panduan_score
obj.save()
for i in PaperQuestions.objects.filter(paper=paper):
o = PaperQuestions()
o.paper = obj
o.question = i.question
o.total_score = i.total_score
o.save()
return Response(status=status.HTTP_200_OK)