export xlsx clone paper
This commit is contained in:
parent
68887c2150
commit
ef564842a0
|
@ -112,6 +112,13 @@ export function updatePaper(id, data) {
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
export function clonePaper(id) {
|
||||||
|
return request({
|
||||||
|
url: `/examtest/paper/${id}/clone/`,
|
||||||
|
method: 'put',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function deletePaper(id) {
|
export function deletePaper(id) {
|
||||||
return request({
|
return request({
|
||||||
url: `/examtest/paper/${id}/`,
|
url: `/examtest/paper/${id}/`,
|
||||||
|
|
|
@ -54,6 +54,12 @@
|
||||||
icon="el-icon-edit"
|
icon="el-icon-edit"
|
||||||
:disabled="!checkPermission(['paper_update'])"
|
:disabled="!checkPermission(['paper_update'])"
|
||||||
></el-button>
|
></el-button>
|
||||||
|
<el-button
|
||||||
|
type="warning"
|
||||||
|
size="small"
|
||||||
|
@click="handleClone(scope)"
|
||||||
|
:disabled="!checkPermission(['paper_clone'])"
|
||||||
|
>克隆</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="danger"
|
type="danger"
|
||||||
size="small"
|
size="small"
|
||||||
|
@ -75,7 +81,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getPaperList, deletePaper } from "@/api/examtest";
|
import { getPaperList, deletePaper, clonePaper } from "@/api/examtest";
|
||||||
import checkPermission from "@/utils/permission";
|
import checkPermission from "@/utils/permission";
|
||||||
import Pagination from "@/components/Pagination";
|
import Pagination from "@/components/Pagination";
|
||||||
|
|
||||||
|
@ -129,6 +135,15 @@ export default {
|
||||||
handleEdit(scope) {
|
handleEdit(scope) {
|
||||||
this.$router.push({path:"/sjmanage/paper/update",query:{id:scope.row.id}})
|
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) {
|
handleDelete(scope) {
|
||||||
this.$confirm('确认删除?', '提示', {
|
this.$confirm('确认删除?', '提示', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
|
|
|
@ -14,11 +14,11 @@ def export_consumer(users):
|
||||||
wb = Workbook()
|
wb = Workbook()
|
||||||
ws1 = wb.active
|
ws1 = wb.active
|
||||||
ws1.title = '用户表'
|
ws1.title = '用户表'
|
||||||
ws1.append(['姓名','手机号', '单位', '微信昵称', '工作类别', '创建日期'])
|
ws1.append(['姓名','手机号', '单位', '身份证号', '微信昵称', '工作类别', '用户角色', '创建日期', '所属账户'])
|
||||||
row = ws1.row_dimensions[1]
|
row = ws1.row_dimensions[1]
|
||||||
row.font = Font(bold=True)
|
row.font = Font(bold=True)
|
||||||
for i in users:
|
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'
|
filename = 'users' + datetime.now().strftime("%Y%m%d%H%M%S") +'.xlsx'
|
||||||
path = '/media/export/' + filename
|
path = '/media/export/' + filename
|
||||||
wb.save((BASE_DIR + path).replace('\\', '/'))
|
wb.save((BASE_DIR + path).replace('\\', '/'))
|
||||||
|
|
|
@ -39,6 +39,7 @@ class ConsumerSerializer(serializers.ModelSerializer):
|
||||||
workscope_name = serializers.StringRelatedField(source='workscope', read_only=True)
|
workscope_name = serializers.StringRelatedField(source='workscope', read_only=True)
|
||||||
role_name = serializers.StringRelatedField(source='role', read_only=True)
|
role_name = serializers.StringRelatedField(source='role', read_only=True)
|
||||||
create_admin_ = UserListSerializer(source='create_admin', 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:
|
class Meta:
|
||||||
model = Consumer
|
model = Consumer
|
||||||
exclude = ('avatar','collects', 'process')
|
exclude = ('avatar','collects', 'process')
|
||||||
|
|
|
@ -395,10 +395,29 @@ class PaperViewSet(ModelViewSet):
|
||||||
return Response(ret)
|
return Response(ret)
|
||||||
|
|
||||||
@action(methods=['put'], detail=True, url_path='clone', url_name='clone_paper',
|
@action(methods=['put'], detail=True, url_path='clone', url_name='clone_paper',
|
||||||
authentication_classes=[],permission_classes=[],
|
|
||||||
perms_map=[{'put':'clone_paper'}])
|
perms_map=[{'put':'clone_paper'}])
|
||||||
def clone(self, request, pk=None):
|
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