Răsfoiți Sursa

下载原图时,可以指定准考证号、科目代码、学习中心三类参数

luoshi 5 ani în urmă
părinte
comite
754aca238f
4 a modificat fișierele cu 50 adăugiri și 9 ștergeri
  1. 8 1
      source/lib/api.js
  2. 2 2
      source/lib/image.js
  3. 5 1
      source/view/image-download.html
  4. 35 5
      source/view/image.html

+ 8 - 1
source/lib/api.js

@@ -50,7 +50,7 @@ module.exports.getExams = function(pageNumber, pageSize, schoolId) {
     return execute(uri, 'GET');
 }
 
-module.exports.getStudents = function(examId, pageNumber, pageSize, upload, absent, withScoreDetail, withMarkTrack) {
+module.exports.getStudents = function(examId, pageNumber, pageSize, upload, absent, withScoreDetail, withMarkTrack, params) {
     let form = {
         examId: examId,
         pageNumber: pageNumber,
@@ -68,6 +68,13 @@ module.exports.getStudents = function(examId, pageNumber, pageSize, upload, abse
     if (withMarkTrack != undefined) {
         form.withMarkTrack = withMarkTrack
     }
+    if (params != undefined) {
+        for (let key in params) {
+            if (params[key] && params[key] != '') {
+                form[key] = params[key]
+            }
+        }
+    }
     return execute('/api/exam/students', 'POST', form);
 }
 

+ 2 - 2
source/lib/image.js

@@ -198,7 +198,7 @@ class executor extends EventEmitter {
         }
     }
 
-    async downloadSheet(dir, template, append, failover, watermark, showMarker) {
+    async downloadSheet(dir, template, append, failover, watermark, showMarker, params) {
         let bucket = env.server.bucketPrefix + '-sheet'
         let client = upyun(bucket, config.upyun.operator, config.upyun.password)
         if (env.server.upyunDomain && env.server.upyunDomain != '') {
@@ -216,7 +216,7 @@ class executor extends EventEmitter {
             for (;;) {
                 pageNumber++
 
-                let array = await api.getStudents(env.examId, pageNumber, 100, true, undefined, watermark === true, watermark === true)
+                let array = await api.getStudents(env.examId, pageNumber, 100, true, undefined, watermark === true, watermark === true, params)
                 if (array == undefined || array.length == 0) {
                     break
                 }

+ 5 - 1
source/view/image-download.html

@@ -96,7 +96,11 @@
                 $('#popup').show()
             })
             if (config.type == '1') {
-                imageUtil.downloadSheet(config.dir, config.template, config.append, config.failover, config.watermark, config.showMarker)
+                imageUtil.downloadSheet(config.dir, config.template, config.append, config.failover, config.watermark, config.showMarker, {
+                    examNumberIn: config.examNumber,
+                    subjectCode: config.subjectCode,
+                    campusName: config.campusName
+                })
             } else {
                 imageUtil.downloadPackage(config.dir, config.template, config.append, config.failover)
             }

+ 35 - 5
source/view/image.html

@@ -82,6 +82,19 @@
                             </div>
                         </td>
                     </tr>
+                    <tr id="examNumber-select" style="display: none">
+                        <th>准考证号:</th>
+                        <td><input id="examNumber-input" type="text" style="width: 600px" placeholder="多个准考证号用逗号分隔" /></td>
+                    </tr>
+                    <tr id="subjectCode-select" style="display: none">
+                        <th>科目代码:</th>
+                        <td><input id="subjectCode-input" type="text" style="width: 600px" /></td>
+                    </tr>
+                    <tr id="campusName-select" style="display: none">
+                        <th>学习中心:</th>
+                        <td><input id="campusName-input" type="text" style="width: 600px" /></td>
+                    </tr>
+
                     <tr id="message-tr" style="display: none">
                         <th></th>
                         <td>
@@ -119,19 +132,28 @@
             $('input:radio[name="type"]').change(() => {
                 let type = $('input:radio:checked').val()
                 if (type == '1') {
-                    $('#message-text').html('范例: ' + config.imageUrl.sheet)
+                    $('#message-text').html('转存规则范例: ' + config.imageUrl.sheet)
                     $('#message-tr').show()
                     $('#watermark-select').show()
                     $('#marker-select').show()
+                    $('#examNumber-select').show()
+                    $('#subjectCode-select').show()
+                    $('#campusName-select').show()
                 } else if (type == '2') {
-                    $('#message-text').html('范例: ' + config.imageUrl.package)
+                    $('#message-text').html('转存规则范例: ' + config.imageUrl.package)
                     $('#message-tr').show()
                     $('#watermark-select').hide()
                     $('#marker-select').hide()
+                    $('#examNumber-select').hide()
+                    $('#subjectCode-select').hide()
+                    $('#campusName-select').hide()
                 } else {
                     $('#message-tr').hide()
                     $('#watermark-select').hide()
                     $('#marker-select').hide()
+                    $('#examNumber-select').hide()
+                    $('#subjectCode-select').hide()
+                    $('#campusName-select').hide()
                 }
             })
 
@@ -139,8 +161,10 @@
                 dialog.showOpenDialog({
                     title: '请选择保存目录',
                     properties: ['openDirectory']
-                }, filePaths => {
-                    $('#path-text').val(filePaths[0])
+                }).then(result => {
+                    if (result && result.filePaths) {
+                        $('#path-text').val(result.filePaths[0])
+                    }
                 })
             })
 
@@ -150,6 +174,9 @@
                 let exceptionHandle = $('input:radio[name="exception"]:checked').val()
                 let watermark = $('input:radio[name="watermark"]:checked').val()
                 let showMarker = $('input:radio[name="showMarker"]:checked').val()
+                let examNumber = $('#examNumber-input').val()
+                let subjectCode = $('#subjectCode-input').val()
+                let campusName = $('#campusName-input').val()
                 let template = $('#template-input').val()
                 let dir = $('#path-text').val()
                 if (type == undefined || type == '') {
@@ -187,7 +214,10 @@
                     append: append == '1',
                     failover: exceptionHandle == '1',
                     watermark: watermark == '1',
-                    showMarker: showMarker == '1'
+                    showMarker: showMarker == '1',
+                    examNumber: examNumber,
+                    subjectCode: subjectCode,
+                    campusName: campusName
                 }))
                 window.location.href = 'image-download.html'
             })