Преглед на файлове

Merge branch 'develop5.0-tmd' of http://106.12.23.251:10080/TEAMMODEL/TEAMModelOS into develop5.0-tmd

CrazyIter_Bin преди 4 години
родител
ревизия
c374d37eb4

+ 2 - 0
TEAMModelOS/ClientApp/src/api/index.js

@@ -28,6 +28,7 @@ import serviceDriveAuth from './serviceDriveAuth'
 import spaceAuth from './spaceAuth'
 import room from './room'
 import mark from './mark'
+import openMgmt from './openMgmt';
 
 export default {
     accessToken,
@@ -57,6 +58,7 @@ export default {
     spaceAuth,
     room,
     mark,
+    openMgmt,
 
     // 获取登录跳转链接
     getLoginLink: function (data) {

+ 25 - 3
TEAMModelOS/ClientApp/src/api/openMgmt.js

@@ -1,11 +1,33 @@
-import { } from '@/api/http';
+import { post } from '@/api/http';
 
 export default{
     /**
      * 开放平台列表
-     * @param {any} data
+     * @param {code: "学校编码"} data
      */
     getOpenList: function (data) {
-        return post('', data)
+        return post('/open-api/find-app', data)
+    },
+    /**
+     * 获取token
+     * @param {id: "应用id", code: "学校编码"} data
+     */
+    getToken: function (data) {
+        return post('/open-api/create-token', data)
+    },
+    /**
+     * 获取api
+     * @param {} data
+     */
+    getApiList: function (data) {
+        return post('/open-api/get', data)
+    },
+    /**
+     * 新增/编辑
+     * @param {} data  新增
+     * @param {id: "应用id"} data  编辑
+     */
+    editOpenInfo: function (data) {
+        return post('/open-api/upsert-app', data)
     }
 }

+ 23 - 2
TEAMModelOS/ClientApp/src/components/selflearn/ExerciseList.vue

@@ -158,8 +158,8 @@
                     <span class="item-tools-info">难度:{{ exersicesDiff[item.level - 1] }}</span>
                     <span class="item-tools-info">使用次数:{{ item.usageCount || 0 }} 次</span>
 
-                    <Button type="text" @click.stop="chooseExercise(item)" icon="md-add" style="margin-right: 10px">
-                        选题
+                    <Button type="text" @click.stop="chooseExercise(item)" :icon="ids.indexOf(item.id) > -1 ? 'md-remove' : 'md-add'" style="margin-right: 10px">
+                        {{ids.indexOf(item.id) > -1 ? '移除' : '选题'}}
                     </Button>
                 </div>
             </div>
@@ -209,12 +209,27 @@ export default {
             curAudioName: "",
             curVideoSrc: "",
             curVideoName: "",
+            selectItems: []
         };
     },
     created() {
         this.getSchoolInfo()
     },
     methods: {
+        /**挑选试题 */
+        chooseExercise(item) {
+            if(this.ids.indexOf(item.id) == -1){
+                this.selectItems.push(item) //添加题目
+            }else{
+                for(let i = 0; i < this.selectItems.length; i++){
+                    if(this.selectItems[i].id == item.id){
+                        this.selectItems.splice(i,1) //移除
+                        break
+                    }
+                }
+            }
+            this.$emit('chooseQuChange',this.selectItems)
+        },
         /* 音频弹窗切换事件 */
         onAudioModalChange(val) {
             if (!val) {
@@ -569,6 +584,12 @@ export default {
         hasSchool() {
             return this.$store.state.userInfo.hasSchool;
         },
+        //已选题目的id
+        ids() {
+            return this.selectItems.map(item => {
+                return item.id
+            })
+        }
     },
 };
 </script>

+ 5 - 10
TEAMModelOS/ClientApp/src/components/selflearn/NewChooseContent.vue

@@ -109,7 +109,7 @@
             <TabPane label="题目" name="question" v-if="showQuestion" tab="chooseContent">
                 <div class="tab-wrap">
                     <vuescroll>
-                        <ExerciseList></ExerciseList>
+                        <ExerciseList @chooseQuChange="chooseQuChange"></ExerciseList>
                     </vuescroll>
                 </div>
             </TabPane>
@@ -270,6 +270,10 @@ export default {
         }
     },
     methods: {
+        //选择题目
+        chooseQuChange(qus){
+            this.$emit('quChange',qus)
+        },
         //初始化数据
         initData() {
             this.questionFilter.code = this.$store.state.userInfo.TEAMModelId
@@ -383,15 +387,6 @@ export default {
                 }, 500)
             })
         },
-        /**
-         * 查询当前页题目
-         */
-        getCurrentPageData(pageNum) {
-            this.queryQuestionByPage()
-        },
-        selectQuestion(data) {
-            this.$emit('on-select-question', data)
-        },
         //Tab切换事件
         clickTab(name) {
             switch (name) {

+ 6 - 6
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentTypeTemplate/LessonTestReport.vue

@@ -170,7 +170,7 @@
                                 <!-- 作答结果 -->
                                 <div class="TitleRec1"><span style="margin:5px;color:#1472c7">{{$t("studentWeb.exam.report.ansRes")}}:</span></div>
                                 <br />
-                                <div v-if="ansData[index]" style="margin-left:10px" v-html="ansData[index].length > 0 ? ansData[index][0] : $t('studentWeb.exam.report.noAns')"></div>
+                                <div v-if="ansData[index]" style="margin-left:10px" v-html="ansData[index].length > 0 ? ansData[index].join(' ') : $t('studentWeb.exam.report.noAns')"></div>
                             </div>
                         </div>
                         <!-- 参考答案、解析 -->
@@ -507,11 +507,11 @@
                             paper.push(exam[i])
                         }
                     }
-               }
-               this.paperData = [...paper]
-               if (this.paperData.length) {
-                   this.ansData = await this.getItem(this.examInfo.stuAns[0])
-               }
+                }
+                this.paperData = [...paper]
+                if (this.paperData.length) {
+                    this.ansData= await this.getItem(this.examInfo.stuAns[0])
+                }
             },
             closeDetail() {
                 this.closeAnsDetail = !this.closeAnsDetail;

+ 2 - 2
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentTypeTemplate/PaperTest.vue

@@ -474,7 +474,7 @@
                     let req = {
                         id: this.getItemTitle.id,
                         answer: this.checkers,
-                        studentId: this.userInfo.sub,
+                        studentId: this.getUserInfo.studentId,
                         classId: this.getExamInfo.allClass,
                         subjectId: this.getExamInfo.subject.id,
                         multipleRule: this.getExamInfo.multipleRule,
@@ -589,7 +589,7 @@
                 "getPaperInfo",
                 "getCurrentSubject",
                 "getExamInfo",
-                "userInfo"
+                "getUserInfo"
             ]),
             completeRate() {
                 if (this.examInfo.length) {

+ 9 - 2
TEAMModelOS/ClientApp/src/components/syllabus/DragTree.less

@@ -73,9 +73,16 @@
     overflow: hidden;
     color: #fff;
   }
+  
+  .ivu-modal-footer{
+	  border: none;
+	  display: flex;
+	  justify-content: center;
+  }
   .ivu-modal-body {
-    height: 400px;
+	max-height: 650px;
     padding: 20px;
+	overflow: hidden;
   }
   .ivu-modal-header {
     border-bottom: none;
@@ -110,7 +117,7 @@
     margin-top: 30px;
   }
   .choose-content {
-    height: 85%;
+    // height: 85%;
   }
 }
 /*修改iview Tab标签页样式重写*/

+ 4 - 4
TEAMModelOS/ClientApp/src/components/syllabus/DragTree.vue

@@ -6,7 +6,7 @@
 				<span class="custom-tree-node" slot-scope="{ node, data }">
 					<span class="tree-node-lable">
 						{{data.title}}
-						<Icon type="md-cube" title="有关联资源" v-if="data.rnodes.length"/>
+						<!-- <Icon type="md-cube" title="有关联资源" v-if="data.rnodes.length"/> -->
 					</span>
 					<span class="custom-tree-tools" v-if="editable">
 						<Icon type="md-create" size="16" title="编辑" @click="onEditItem(node,data,$event)" />
@@ -26,7 +26,7 @@
 				<p class="node-title">节点名称</p>
 				<Input v-model="nodeInfo.title" placeholder="请输入节点名称..." style="width: 100%" />
 			</div>
-			<Button @click="onSubmitNode" class="modal-btn">确认</Button>
+			<Button @click="onSubmitNode" class="modal-btn" style="width: 88%;margin-left: 6%;margin-bottom: 20px;">确认</Button>
 		</Modal>
 	</div>
 </template>
@@ -36,13 +36,11 @@
 	import BaseResource from '@/view/syllabus/newSyllabus/operation/BaseResource'
 	import BaseKnowledge from '@/view/syllabus/newSyllabus/operation/BaseKnowledge'
 	import BaseQuestionList from '@/common/BaseQuestionList'
-	import ChooseContent from '@/components/selflearn/NewChooseContent'
 	export default {
 		props: ['volume', 'treeData', 'editable'],
 		components: {
 			BaseResource,
 			BaseKnowledge,
-			ChooseContent,
 			BaseQuestionList
 		},
 		data() {
@@ -66,6 +64,7 @@
 				currentParentData: null,
 				currentResources: [],
 				currentItems: [],
+				curNode:null,
 				nodeInfo: {
 					id: null,
 					title: '',
@@ -86,6 +85,7 @@
 		methods: {
 			onNodeClick(data, node) {
 				console.log(data, node)
+				this.curNode = data
 			},
 			// 拖拽完成回调
 			handleDrop(draggingNode, dropNode, dropType) {

+ 1 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/settings.js

@@ -55,6 +55,7 @@ export default {
 	apiName: '接口名称',
 	apiAddress: '接口地址',
 	apiMethod: '请求方法',
+	apiParams: '参数示例',
 	openKeep: '保存平台',
 	unedit: '取消编辑',
 }

+ 7 - 1
TEAMModelOS/ClientApp/src/view/learnactivity/CreateSchoolEva.vue

@@ -263,7 +263,13 @@ export default {
                 return item[0]
             }))
             graIds = Array.from(graIds)
-            this.evaluationInfo.grades = graIds //
+
+            this.evaluationInfo.grades = graIds.map(item => {
+                return {
+                    id: item + '',
+                    name: this.curGrades[item]
+                }
+            })
             // this.evaluationInfo.grades = this.curGrades.filter(item => {
             //     return graIds.indexOf(item.id) >= 0
             // })

+ 0 - 2
TEAMModelOS/ClientApp/src/view/learnactivity/PaperScore.vue

@@ -600,7 +600,6 @@ export default {
         },
         paperInfo: {
             handler(newPaper) {
-                console.log('试卷数据', newPaper)
                 if (newPaper && newPaper.item) {
                     this.dataLoading = true
                     let that = this
@@ -634,7 +633,6 @@ export default {
                                 }
                             })
                         })
-                        console.log('题型顺序', this.groupList)
                     }
                     this.dataLoading = false
                 }

+ 123 - 69
TEAMModelOS/ClientApp/src/view/settings/OpenMgmt2.vue

@@ -67,16 +67,16 @@
                                 ></Input>
                             </FormItem>
                             <FormItem :label="$t('settings.des')">
-                                <Input v-model="openMgInfo.des"
+                                <Input v-model="openMgInfo.descr"
                                        type="textarea"
                                        :autosize="{ minRows: 2, maxRows: 10 }"
                                        :class="isEdit ? '' : 'open-info-disabled'"
                                        :readonly="isEdit ? false : true"></Input>
                             </FormItem>
                             <FormItem :label="$t('settings.openStatus')">
-                                <RadioGroup v-model="openMgInfo.type">
-                                    <Radio label="1" :disabled="isEdit ? false : true">{{ $t("settings.enable") }}</Radio>
-                                    <Radio label="0" :disabled="isEdit ? false : true">{{ $t("settings.disable") }}</Radio>
+                                <RadioGroup v-model="openMgInfo.status">
+                                    <Radio :label="1" :disabled="isEdit ? false : true">{{ $t("settings.enable") }}</Radio>
+                                    <Radio :label="0" :disabled="isEdit ? false : true">{{ $t("settings.disable") }}</Radio>
                                 </RadioGroup>
                             </FormItem>
                         </Form>
@@ -87,7 +87,11 @@
                     <!-- <div class="open-api-header">
                         <span>Api列表</span>
                     </div> -->
-                    <Table ref="selection" :columns="apiListCol" :data="apiList"></Table>
+                    <Table ref="selection"
+                           :columns="apiListCol"
+                           :data="isEdit ? apiList : apiListNow"
+                           @on-select="select"
+                    ></Table>
                     <Page :total="pageTotal" :page-size-opts="pageSizeOpts" size="small" show-sizer show-total />
                 </div>
             </div>
@@ -97,31 +101,19 @@
 
 <script>
 export default {
+    name: "OpenMgmt",
     data() {
         return {
             // 开放平台列表
-            openList: [
-                {
-                    name: "fvrhrthtyjhtyhregr",
-                },
-                {
-                    name: "mfghgjyj",
-                }
-            ],
+            openList: [],
             // 平台信息
-            openMgInfo:{
-                school: "XXXXXXXXXX学校",
-                name: "哈哈哈哈哈哈哈哈哈",
-                des: "屏幕看了上面的几个wfegrh逆回购将",
-                type: "1",
-                token: "zcnjkdfjoiwfjergerghwfhefvsojfoergjorhbnfbkdnvjeroiguitrghbfdvneavnesvbnrbnkbnbrgeirgre"
-            },
+            openMgInfo: {},
             // api表头
             apiListCol: [
                 {
                     type: 'selection',
                     width: 80,
-                    align: 'center'
+                    align: 'center',
                 },
                 {
                     title: this.$t("settings.apiName"),
@@ -129,98 +121,157 @@ export default {
                 },
                 {
                     title: this.$t("settings.apiAddress"),
-                    key: "address",
+                    key: "url",
                 },
                 {
                     title: this.$t("settings.apiMethod"),
                     key: "method",
                 },
                 {
-                    title: this.$t("settings.des"),
-                    key: "des",
+                    title: this.$t("settings.apiParams"),
+                    key: "descr",
                 },
             ],
             // api列表
-            apiList: [
-                {
-                    name: "vdfvd",
-                    address: "fvrhtyjuyjgjg",
-                    method: "get",
-                    des: "侧福晋而破格饿哦通过方能听你提过rfretrhjrtzo南非方恒包括v你的恐怖活动飞机二十分你大概v哪些不能代表的版本太高i不耐烦"
-                },
-                {
-                    name: "vdfvd",
-                    address: "fvrhtyjuyjgjg",
-                    method: "get",
-                    des: "侧福晋而破格饿哦通过方能听你提过"
-                },
-                {
-                    name: "vdfvd",
-                    address: "fvrhtyjuyjgjg",
-                    method: "get",
-                    des: "侧福晋而破格饿哦通过方能听你提过"
-                },
-                {
-                    name: "vdfvd",
-                    address: "fvrhtyjuyjgjg",
-                    method: "get",
-                    des: "侧福晋而破格饿哦通过方能听你提过rfretrhjrtzo南非方恒包括v你的恐怖活动飞机二十分你大概v哪些不能代表的版本太高i不耐烦"
-                },
-                {
-                    name: "vdfvd",
-                    address: "fvrhtyjuyjgjg",
-                    method: "get",
-                    des: "侧福晋而破格饿哦通过方能听你提过"
-                },
-                {
-                    name: "vdfvd",
-                    address: "fvrhtyjuyjgjg",
-                    method: "get",
-                    des: "侧福晋而破格饿哦通过方能听你提过"
-                }
-            ],
+            apiList: [],
+            // 当前应用已有的api 列表
+            apiListNow: [],
             pageTotal: 0,
             pageSizeOpts:[5, 10, 20, 30, 40],
             // 当前下标
             nowIndex: 0,
             isEdit: false, //编辑状态
+            isAdd: false, // 编辑/新增
         }
     },
     mounted () {
-        // this.getOpenList()  
+        // this.getApiList()
+        this.getOpenList()
     },
     methods: {
+        // 获取应用列表
         getOpenList() {
-            let req = {}
-            this.$api.openMgmt.getOpenList(req).then()
+            let list = []
+            let req = {code: this.$store.state.userInfo.schoolCode}
+            this.$api.openMgmt.getOpenList(req).then(
+                res => {
+                    if (res) {
+                        list = res.apps
+                        this.openList = list
+                        this.list(0)
+                    }
+                }, err => {
+                    this.$Message.warning("api获取失败")
+                    setTimeout(() => {
+                        this.isLoading = false
+                    }, 1000)
+            })
+        },
+        // 获取api 列表
+        getApiList() {
+            let reqs = {}
+            this.$api.openMgmt.getApiList(reqs).then(res => {
+                    if (res) {
+                        let list = res.apis
+                        if(list.length > 0) {
+                            list.sort((a, b) => {
+                                return a.auth - b.auth
+                            })
+                        }
+                        this.apiList = list
+                    }
+                }, err => {
+                    this.$Message.warning("api获取失败")
+                    setTimeout(() => {
+                        this.isLoading = false
+                    }, 1000)
+            })
         },
         editOpen (isEdit, isAdd) {
             this.isEdit = isEdit
+            this.isAdd = isAdd
+            this.getApiList()
+            var list = this.apiList
             // 是新增
             if(isAdd) {
-                this.openMgInfo = {type: "0",}
+                var defaultInfo = {
+                    auths: [],
+                    code: "",
+                    descr: null,
+                    icon: null,
+                    id: "",
+                    name: "开放平台应用",
+                    pk: "",
+                    school: this.$store.state.userInfo.schoolCode,
+                    status: 0,
+                    token: "",
+                    ttl: -1
+                }
+                this.openList.unshift(defaultInfo)
+                this.openMgInfo = defaultInfo
+            } else {
             }
         },
         delOpen () {
             this.$Modal.confirm({
                 title: "您确定删除XXXXXX平台吗?",
                 onOk: () => {
-                    this.$Message.info('Clicked ok');
+                    this.$Message.info('删除成功');
                 },
                 onCancel: () => {
-                    this.$Message.info('Clicked cancel');
+                    this.$Message.info('已取消删除');
                 },
             })
         },
         list (index) {
             this.nowIndex = index
+            var info = this.openList[index]
+            this.openMgInfo = info
         },
         // 编辑平台信息
         editMgmt (type) {
+            var that = this
             this.isEdit = type
+            if(type) {
+                let req = {}
+                if(!this.isAdd) {
+                    req = {id: this.openMgInfo.id}
+                }
+                console.log(req);
+                this.$api.openMgmt.editOpenInfo(req).then(res => {
+                        if (res) {
+                            console.log(res)
+                            that.$Message.success("保存成功!");
+                        }
+                    }, err => {
+                        this.$Message.warning("保存失败")
+                        setTimeout(() => {
+                            this.isLoading = false
+                        }, 1000)
+                })
+            } else {
+                console.log(this.openList.filter(i => !i.id).length);
+                this.openList.filter(i => !i.id)
+            }            
         },
         refresh() {
-
+            var that = this
+            let req = {
+                id: this.openMgInfo.id,
+                code: this.openMgInfo.school
+            }
+            this.$api.openMgmt.getToken(req).then(res => {
+                    if (res) {
+                        console.log(res)
+                        this.openMgInfo.token = res.auth_token
+                        that.$Message.success("刷新成功!");
+                    }
+                }, err => {
+                    this.$Message.warning("刷新失败")
+                    setTimeout(() => {
+                        this.isLoading = false
+                    }, 1000)
+            })
         },
         copyToken() {
             var that = this;
@@ -233,6 +284,9 @@ export default {
                 }
             );
         },
+        select() {
+
+        },
     }
 }
 </script>

+ 9 - 3
TEAMModelOS/ClientApp/src/view/student-account/ImportStudent.vue

@@ -76,7 +76,7 @@
                     <p :class="(excelValid.reaptIds.length == 0 || excelValid.reaptIds.indexOf(row.id) == -1) ? 'account-success-tips':'account-warning-tips'">{{(excelValid.reaptIds.length == 0 || excelValid.reaptIds.indexOf(row.id) == -1)?"": $t('stuAccount.idWarning') }}</p>
                     <p :class="row.seatRepeat? 'account-error-tips':''">{{row.seatRepeat ? $t('stuAccount.setNoErr'):"" }}</p>
                     <p :class="(excelValid.gradeIds.length == 0 || excelValid.gradeIds.indexOf(row.id) == -1) ? 'account-success-tips':'account-warning-tips'">{{(excelValid.gradeIds.length == 0 || excelValid.gradeIds.indexOf(row.id) == -1)?"": $t('stuAccount.gradeWarning') }}</p>
-                    
+
                 </template>
             </Table>
             <p style="margin-top:15px;">{{$t('stuAccount.passwordTips')}}</p>
@@ -444,7 +444,7 @@ export default {
                     title: this.$t('stuAccount.classroomCode'),
                     key: 'classId'
                 },
-                
+
                 {
                     title: this.$t('stuAccount.abnormalStatus'),
                     slot: 'status'
@@ -543,7 +543,13 @@ export default {
     mounted() {
     },
     watch: {
-
+        period:{
+            handler(n,o){
+                this.tableData.forEach(item=>{
+                    item.periodId = this.period
+                })
+            }
+        }
     }
 }
 </script>

+ 9 - 0
TEAMModelOS/ClientApp/src/view/syllabus/Syllabus.less

@@ -8,6 +8,7 @@
 	flex-direction: column;
 	font-family: 'NotoSerif', '微软正黑体', 'Microsoft JhengHei UI', 'Microsoft JhengHei', Sans-serif;
 	.syllabus-header{
+		position: relative;
 		height:60px;
 		width: 100%;
 		border-bottom: 1px solid @borderColor;
@@ -30,6 +31,14 @@
 				background-color: #1fb06d;
 			}
 		}
+		
+		.btn-save-modify{
+			position: absolute;
+			right: 20px;
+			background-color: #1fb06d;
+			color: #fff;
+			border: none;
+		}
 	}
 	
 	.syllabus-content{

+ 29 - 4
TEAMModelOS/ClientApp/src/view/syllabus/Syllabus.vue

@@ -13,6 +13,7 @@
 				  subjectIndex == activeSubjectIndex ? 'item-active' : '',
 				]" @click="onSubjectChange(subject,subjectIndex)">{{ subject.name }}</span>
 			</div>
+			<Button @click="onSaveSyllabus" class="btn-save-modify" icon="md-folder" v-if="$access.can('admin.*|Syllabus_Edit') && hasModify">存储变更</Button>
 		</div>
 		<div class="syllabus-content">
 			<div class="syllabus-left">
@@ -45,7 +46,6 @@
 					<span>课纲目录</span>
 					<span class="syllabus-content-header-tools">
 						<Icon type="md-add" @click="isAddTreeModal = true"/>
-						<Button @click="onSaveSyllabus" size="small" icon="md-folder" v-if="$access.can('admin.*|Syllabus_Edit') && hasModify">存储变更</Button>
 					</span>
 				</div>
 				<div class="syllabus-tree-box">
@@ -56,6 +56,12 @@
 			<div class="syllabus-right">
 				<div class="syllabus-content-header">
 					<span>关联资源</span>
+					<span class="syllabus-content-header-tools">
+						<Icon type="md-add" @click="isRelateContentModal = true"/>
+					</span>
+				</div>
+				<div class="syllabus-tree-box">
+					<EmptyData :top="100"></EmptyData>
 				</div>
 			</div>
 		</div>
@@ -90,6 +96,7 @@
 			</div>
 		</Modal>
 		
+		<!-- 新增课纲节点弹窗 -->
 		<Modal v-model="isAddTreeModal" width="500" footer-hide class="tree-modal add-volume-modal">
 		    <div class="modal-header" slot="header">新增节点</div>
 		    <div class="modal-content">
@@ -97,16 +104,23 @@
 		        <Input v-model="curVolume.name" style="width: 100%" disabled />
 		        <p class="node-title">节点名称</p>
 		        <Input v-model="nodeInfo.title" placeholder="请输入节点名称..." style="width: 100%" />
-		    </div>
-		    <Button @click="onAddTreeNode" style="width: 88%;margin-left: 6%;" class="modal-btn">确认</Button>
+		    </div> 
+		    <Button @click="onAddTreeNode" style="width: 88%;margin-left: 6%;margin-bottom: 20px;" class="modal-btn">确认</Button>
+		</Modal>
+	
+		<!-- 新增课纲节点弹窗 -->
+		<Modal v-model="isRelateContentModal" width="900" class="tree-modal add-volume-modal">
+		    <ChooseContent @on-file-change="onSelectFile" :showSyllabus="false"></ChooseContent>
+			<Button slot="footer" @click="onRelateContent" style="margin-bottom: 20px;" class="modal-btn">确认</Button>
 		</Modal>
 	</div>
 </template>
 
 <script>
 	import Tree from "@/components/syllabus/DragTree";
+	import ChooseContent from '@/components/selflearn/NewChooseContent'
 	export default {
-		components:{ Tree },
+		components:{ Tree , ChooseContent },
 		data() {
 			return {
 				hasModify:false,
@@ -114,6 +128,7 @@
 				isAddLoading:false,
 				isAddTreeModal:false,
 				isAddVolumeModal:false,
+				isRelateContentModal:false,
 				isEditVolume:false,
 				isSchool:false,
 				currentPeriodIndex: 0,
@@ -319,6 +334,16 @@
 				});
 			},
 			
+			onSelectFile(val){
+				this.relateFiles = val
+			},
+			
+			// 拿到当前选择的资源内容 进行节点关联
+			onRelateContent(){
+				console.log(this.relateFiles)
+				console.log(this.$refs.treeRef.curNode)
+			},
+			
 			/* 提交新增册别 */
 			handleSubmit(){
 				this.isAddLoading = true

+ 32 - 14
TEAMModelOS/ClientApp/src/view/task/index.vue

@@ -201,8 +201,7 @@
                                 <ProgPie></ProgPie>
                             </div>
                         </div>
-                        
-                        
+
                         <!-- 异常 -->
                         <div class="setting-block">
                             <p class="block-title">异常卷</p>
@@ -341,17 +340,36 @@ export default {
          * mode 0:按题 1:按人
          * stuId 学生id
          */
-        toMarkView(mode,stuId) {
+        async toMarkView(mode, stuId) {
             sessionStorage.setItem('markFrom', this.$route.name)
+            let sas = this.$store.state.user.schoolProfile.blob_sas //目前只有校本评测安排阅卷任务
+            let blobUrl = JSON.parse(decodeURIComponent(localStorage.school_profile, "utf-8")).blob_uri //目前只有校本评测安排阅卷任务
+            let stuInfo = this.markData.attr.find(item => {
+                return item.stuId == stuId
+            })
+            let answer, fullPaper, score
+            if (stuInfo) {
+                answer = await this.$tools.getFile(`${blobUrl}/exam/${stuInfo.info.ans}?${sas}`)
+                score = stuInfo.info.score
+                fullPaper = await this.$evTools.getFullPaper({
+                    blob: this.markData.paper
+                }, 'school')
+
+                console.log(answer)
+            }
 
-            this.getNextStu(stuId)
-            // this.$router.push({
-            //     name: 'MarkView',
-            //     params: {
-            //         type: mode,
-            //         from: this.$route.name
-            //     }
-            // })
+            // this.getNextStu(stuId)
+
+            this.$router.push({
+                name: 'MarkView',
+                params: {
+                    type: mode,
+                    from: this.$route.name,
+                    answer,
+                    fullPaper,
+                    score
+                }
+            })
         },
         /**
          * 批阅下个学生
@@ -363,7 +381,7 @@ export default {
                 id: this.markList[this.curTaskIndex].id,
                 subjectId: this.markList[this.curTaskIndex].subject,
                 tmdId: this.$store.state.userInfo.TEAMModelId,
-                stuId:'hbcn070201'
+                stuId: 'hbcn070201'
             }
             this.$api.mark.FindNextStu(requestData).then(
                 res => {
@@ -461,7 +479,7 @@ export default {
         //当前阅卷任务已阅学生信息
         marked() {
             if (this.markData && this.markData.attr) {
-                return this.markData.attr.filter(item=>{
+                return this.markData.attr.filter(item => {
                     return item.info.score.indexOf(-1) == -1
                 })
             } else {
@@ -471,7 +489,7 @@ export default {
         //当前阅卷任务进行中学生信息
         marking() {
             if (this.markData && this.markData.attr) {
-                return this.markData.attr.filter(item=>{
+                return this.markData.attr.filter(item => {
                     return item.info.score.indexOf(-1) !== -1
                 })
             } else {