|
@@ -223,9 +223,7 @@ function generateFileNodes(
|
|
|
|
|
|
|
|
function generateFileTree(question: NestedCodeItemVO) {
|
|
function generateFileTree(question: NestedCodeItemVO) {
|
|
|
const editableFiles = [...Object.keys(question.editable!)]
|
|
const editableFiles = [...Object.keys(question.editable!)]
|
|
|
- const editable = editableFiles.filter((filename, index) => {
|
|
|
|
|
- return !isImage(filename)
|
|
|
|
|
- }).reduce<IFolderTreeNodeProps[]>((nodes, filename) => {
|
|
|
|
|
|
|
+ const editable = editableFiles.reduce<IFolderTreeNodeProps[]>((nodes, filename) => {
|
|
|
const filePathList = filename
|
|
const filePathList = filename
|
|
|
.split('/')
|
|
.split('/')
|
|
|
.filter((name) => name.length > 0)
|
|
.filter((name) => name.length > 0)
|
|
@@ -287,6 +285,32 @@ export function getQuestion(examId: string, studentId: string) {
|
|
|
hide()
|
|
hide()
|
|
|
if (response.err === 0) {
|
|
if (response.err === 0) {
|
|
|
const question = response.res;
|
|
const question = response.res;
|
|
|
|
|
+ let editableImage: {
|
|
|
|
|
+ [key: string]: string} = {},
|
|
|
|
|
+ nextEditable: {
|
|
|
|
|
+ [key: string]: string} = {},
|
|
|
|
|
+ nextUnEditable: {
|
|
|
|
|
+ [key: string]: string} = {}
|
|
|
|
|
+ ;
|
|
|
|
|
+ question.codeList.forEach((code:NestedCodeItemVO) => {
|
|
|
|
|
+ if (code.editable) {
|
|
|
|
|
+ for (let key in code.editable){
|
|
|
|
|
+ if (isImage(key)) {
|
|
|
|
|
+ editableImage[key] = code.editable[key];
|
|
|
|
|
+ } else {
|
|
|
|
|
+ nextEditable[key] = code.editable[key];
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ question.codeList.forEach((code: NestedCodeItemVO) => {
|
|
|
|
|
+ if (code.editable){
|
|
|
|
|
+ code.editable = nextEditable;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (code.uneditable){
|
|
|
|
|
+ code.uneditable = Object.assign(nextUnEditable, code.uneditable, editableImage);
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
question.codeList.sort(function (a:NestedCodeItemVO, b:NestedCodeItemVO){if (a && b && a.questionId && b.questionId) return a.questionId - b.questionId; return -1;})
|
|
question.codeList.sort(function (a:NestedCodeItemVO, b:NestedCodeItemVO){if (a && b && a.questionId && b.questionId) return a.questionId - b.questionId; return -1;})
|
|
|
const current = store.getState().loadCurrentQuestion;
|
|
const current = store.getState().loadCurrentQuestion;
|
|
|
const pre = store.getState().loadQuestion;
|
|
const pre = store.getState().loadQuestion;
|