export xlsx clone paper
This commit is contained in:
parent
68887c2150
commit
ef564842a0
|
@ -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}/`,
|
||||
|
|
|
@ -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: '确定',
|
||||
|
|
|
@ -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('\\', '/'))
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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)
|
Loading…
Reference in New Issue