ソースを参照

7月评审问题处理

刘洋 1 年間 前
コミット
8a248d34b9
30 ファイル変更120 行追加52 行削除
  1. BIN
      src/assets/images/status-marking.png
  2. BIN
      src/assets/images/status-remarking.png
  3. BIN
      src/assets/images/status-sample-a.png
  4. BIN
      src/assets/images/status-sample-b.png
  5. 10 1
      src/assets/styles/element/custom.scss
  6. 1 1
      src/components/shared/ScoringPanel.vue
  7. 1 1
      src/components/shared/message/MessageList.vue
  8. 1 1
      src/components/shared/message/MessageSend.vue
  9. 1 0
      src/components/shared/message/MessageWindow.vue
  10. 25 0
      src/hooks/useTableCheck.ts
  11. 40 17
      src/modules/admin-user/edit-user/index.vue
  12. 1 1
      src/modules/analysis/group-monitoring-detail/index.vue
  13. 1 1
      src/modules/analysis/view-marked-detail/index.vue
  14. 1 1
      src/modules/expert/assess/index.vue
  15. 1 1
      src/modules/expert/expert/index.vue
  16. 1 1
      src/modules/expert/sample/index.vue
  17. 1 1
      src/modules/expert/standard/index.vue
  18. 1 1
      src/modules/expert/training/index.vue
  19. 1 1
      src/modules/marking/arbitration/index.vue
  20. 1 1
      src/modules/marking/inquiry-result/index.vue
  21. 12 8
      src/modules/marking/inquiry/index.vue
  22. 9 5
      src/modules/marking/mark/index.vue
  23. 1 1
      src/modules/marking/problem/index.vue
  24. 1 1
      src/modules/marking/repeat/index.vue
  25. 2 2
      src/modules/marking/similar/index.vue
  26. 1 1
      src/modules/marking/view-sample/index.vue
  27. 1 1
      src/modules/monitor/system-check/index.vue
  28. 1 1
      src/modules/monitor/training-monitoring-detail/index.vue
  29. 2 0
      src/modules/monitor/training-monitoring/index.vue
  30. 2 2
      src/modules/quality/subjective-check/index.vue

BIN
src/assets/images/status-marking.png


BIN
src/assets/images/status-remarking.png


BIN
src/assets/images/status-sample-a.png


BIN
src/assets/images/status-sample-b.png


+ 10 - 1
src/assets/styles/element/custom.scss

@@ -223,7 +223,16 @@ button.el-button {
 }
 
 .el-table.el-table--small .el-table__body {
-  font-size: 13px;
+  font-size: 14px;
+}
+// .el-table.el-table--small .el-table__header{
+//   font-size:13px;
+// }
+.el-table__header .el-table__cell{
+  background:#f1f3f6 !important;
+}
+.el-table .el-table__cell{
+  text-align:center !important;
 }
 
 #app {

+ 1 - 1
src/components/shared/ScoringPanel.vue

@@ -198,7 +198,7 @@ const onFocused = (index: number) => {
 
 const onBlur = (index: number) => {
   if (activeIndex.value === index) {
-    activeIndex.value = null
+    // activeIndex.value = null
   }
 }
 

+ 1 - 1
src/components/shared/message/MessageList.vue

@@ -347,7 +347,7 @@ onUnmounted(() => {
     }
     .msg-content-box {
       height: 100px;
-      font-size: 12px;
+      font-size: 13px;
       border: 1px solid #0091ff;
       .limit-tip {
         text-align: right;

+ 1 - 1
src/components/shared/message/MessageSend.vue

@@ -403,7 +403,7 @@ const toggleHistory = () => {
       }
       .message-info-content {
         border: 1px solid $color--primary;
-        font-size: $SmallFont;
+        font-size: 13px;
         ::v-deep(textarea.el-textarea__inner) {
           height: 100%;
         }

+ 1 - 0
src/components/shared/message/MessageWindow.vue

@@ -116,6 +116,7 @@ const leftMsgClick = (msg: any) => {
   width: 100%;
   height: 100%;
   position: relative;
+  font-weight: bold;
   .el-dialog__header {
     border-radius: 0 6px 0 0 !important;
   }

+ 25 - 0
src/hooks/useTableCheck.ts

@@ -108,6 +108,28 @@ const useTableCheck = <T extends TableDataType<InputDataType>>(data: T, auto = t
     }
     // elTableRef?.value?.scrollTo(0, (current.value?.index || 0) * 36)
   }
+  const prevRow = () => {
+    console.log('current.value?.index:', current.value?.index)
+    if (current.value?.index > 0) {
+      const index = current.value?.index
+      elTableRef?.value?.setCurrentRow(tableData.value[index - 1])
+      const tBodyDomWrap: any = elTableRef?.value?.$refs.bodyWrapper
+      if (tBodyDomWrap) {
+        if (index % tableData.value.length == 0) {
+          elTableRef?.value?.scrollTo({ left: 0, top: 0, behavior: 'smooth' })
+        } else {
+          const wrap = tBodyDomWrap.getElementsByClassName('el-scrollbar__wrap')[0]
+          const oHeight = wrap.offsetHeight
+          const sTop = wrap.scrollTop
+          const sHeight = wrap.scrollHeight
+          const targetRowAsHeight = 36 * (current.value?.index || 0)
+          if (targetRowAsHeight - 36 < sTop) {
+            elTableRef?.value?.scrollTo({ left: 0, top: targetRowAsHeight - 36, behavior: 'smooth' })
+          }
+        }
+      }
+    }
+  }
   const arrowDownToNextRow = (e: any) => {
     if (e.target.tagName === 'INPUT' || (e.target.className || '').includes('contenteditable-ele')) {
       return false
@@ -117,6 +139,9 @@ const useTableCheck = <T extends TableDataType<InputDataType>>(data: T, auto = t
     if (e.key === 'ArrowDown') {
       e.preventDefault()
       nextRow()
+    } else if (e.key === 'ArrowUp') {
+      e.preventDefault()
+      prevRow()
     }
   }
   onMounted(() => {

+ 40 - 17
src/modules/admin-user/edit-user/index.vue

@@ -95,24 +95,44 @@ const { subjectList, mainQuestionList, groupList, dataModel, changeModelValue }
 //     model.subjectCode = dataModel.subject || '全部'
 //   }
 // })
-watch(
-  () => model.role,
-  () => {
-    if (model.role === 'EXPERT') {
-      model.subjectCode = '全部'
-      model.mainNumber = '全部'
-      model.markingGroupNumber = '全部'
-    } else if (model.role === 'SECTION_LEADER') {
-      model.subjectCode = ''
-      model.mainNumber = '全部'
-      model.markingGroupNumber = '全部'
-    } else {
-      model.subjectCode = ''
-      model.mainNumber = void 0
-      model.markingGroupNumber = void 0
-    }
+// watch(
+//   () => model.role,
+//   () => {
+//     if (model.role === 'EXPERT') {
+//       model.subjectCode = '全部'
+//       model.mainNumber = '全部'
+//       model.markingGroupNumber = '全部'
+//     } else if (model.role === 'SECTION_LEADER') {
+//       model.subjectCode = ''
+//       model.mainNumber = '全部'
+//       model.markingGroupNumber = '全部'
+//     } else {
+//       model.subjectCode = ''
+//       model.mainNumber = void 0
+//       model.markingGroupNumber = void 0
+//     }
+//   }
+// )
+
+const resetModel = (r: any, result?: any) => {
+  let role = r || model.role
+  if (role === 'EXPERT') {
+    model.subjectCode = '全部'
+    model.mainNumber = '全部'
+    model.markingGroupNumber = '全部'
+  } else if (role === 'SECTION_LEADER') {
+    model.subjectCode = result ? result.subjectCode : ''
+    model.mainNumber = '全部'
+    model.markingGroupNumber = '全部'
+  } else {
+    model.subjectCode = result ? result.subjectCode : ''
+    model.mainNumber = result ? result.mainNumber : void 0
+    model.markingGroupNumber = result ? result.mainNumber : void 0
   }
-)
+}
+const roleChange = (val: any) => {
+  resetModel(val)
+}
 
 const items = computed<EpFormItem[]>(() => {
   return [
@@ -132,6 +152,7 @@ const items = computed<EpFormItem[]>(() => {
         options: ROLE_OPTION.value,
         placeholder: '设置用户角色',
         disabled: isEdit,
+        onChange: roleChange,
       },
     },
     {
@@ -227,7 +248,9 @@ if (isEdit) {
     }).then(() => {
       changeModelValue('group')(markingGroupNumber)
     })
+
     Object.assign(model, { subjectCode, markingGroupNumber, mainNumber, role, loginName, name, enable, id })
+    resetModel(role, result)
   })
 }
 

+ 1 - 1
src/modules/analysis/group-monitoring-detail/index.vue

@@ -157,7 +157,7 @@ const { tableRef, current, onCurrentChange, tableData, next } = useTableCheck(da
 
 /** 抽查详情表格配置 */
 const tableColumn: EpTableColumn<ExtractMultipleApiResponse<'getGroupMonitorDetail'>>[] = [
-  { label: '密号', prop: 'secretNumber', width: 100, fixed: 'left' },
+  { label: '密号', prop: 'secretNumber', width: 110, fixed: 'left' },
   { label: '评卷员', prop: 'markerName' },
   { label: '给分', prop: 'markerScore', width: 50 },
   { label: '组长给分', prop: 'headerScore', width: 70 },

+ 1 - 1
src/modules/analysis/view-marked-detail/index.vue

@@ -220,7 +220,7 @@ const columns: EpTableColumn<RowType>[] = [
   {
     label: '密号',
     prop: 'secretNumber',
-    minWidth: 100,
+    minWidth: 110,
   },
   { label: '给分', prop: 'markerScore', minWidth: 70 },
   { label: '客观分', prop: 'objectiveScore', minWidth: 70 },

+ 1 - 1
src/modules/expert/assess/index.vue

@@ -226,7 +226,7 @@ const formItems = computed<EpFormItem[]>(() => [
 
 const columns: EpTableColumn<RowType>[] = [
   { label: '序号', type: 'index', width: 60 },
-  { label: '密号', prop: 'secretNumber', minWidth: 100 },
+  { label: '密号', prop: 'secretNumber', minWidth: 110 },
   { label: '标准分', prop: 'score', minWidth: 70 },
   { label: '分组', prop: 'forceGroupNumber', minWidth: 90 },
   { label: '提交时间', prop: 'createTime', minWidth: 130 },

+ 1 - 1
src/modules/expert/expert/index.vue

@@ -299,7 +299,7 @@ const formItems = computed<EpFormItem[]>(() => {
 
 const columns: EpTableColumn<RowType>[] = [
   { label: '序号', type: 'index', width: 60 },
-  { label: '密号', prop: 'secretNumber', minWidth: 100 },
+  { label: '密号', prop: 'secretNumber', minWidth: 110 },
   { label: '标准分', prop: 'score', minWidth: 60 },
   { label: '提交人', prop: 'createName', minWidth: 100 },
   { label: '角色', prop: 'roleName', minWidth: 70 },

+ 1 - 1
src/modules/expert/sample/index.vue

@@ -202,7 +202,7 @@ const formItems = computed<EpFormItem[]>(() => [
 
 /** RF卷 */
 const columns: EpTableColumn<RowType>[] = [
-  { label: '密号', prop: 'secretNumber', minWidth: 100, fixed: 'left' },
+  { label: '密号', prop: 'secretNumber', minWidth: 110, fixed: 'left' },
   { label: '分数', prop: 'score', minWidth: 60 },
   { label: '档次', prop: 'scoreLevel', minWidth: 90 },
   { label: '提交人', prop: 'createName', minWidth: 100 },

+ 1 - 1
src/modules/expert/standard/index.vue

@@ -185,7 +185,7 @@ const formItems = computed<EpFormItem[]>(() => [
 
 /** 标准卷列表 */
 const columns: EpTableColumn<RowType>[] = [
-  { label: '密号', prop: 'secretNumber', minWidth: 100, fixed: 'left' },
+  { label: '密号', prop: 'secretNumber', minWidth: 110, fixed: 'left' },
   { label: '分数', prop: 'score', minWidth: 60 },
   { label: '提交人', prop: 'createName', minWidth: 100 },
   { label: '提交时间', prop: 'createTime', minWidth: 130 },

+ 1 - 1
src/modules/expert/training/index.vue

@@ -186,7 +186,7 @@ const formItems = computed<EpFormItem[]>(() => [
 
 const columns: EpTableColumn<RowType>[] = [
   { label: '序号', type: 'index', width: 60 },
-  { label: '密号', prop: 'secretNumber', minWidth: 100 },
+  { label: '密号', prop: 'secretNumber', minWidth: 110 },
   { label: '标准分', prop: 'score', minWidth: 60 },
   { label: '分组', prop: 'type', minWidth: 90 },
   { label: '提交时间', prop: 'createTime', minWidth: 130 },

+ 1 - 1
src/modules/marking/arbitration/index.vue

@@ -209,7 +209,7 @@ const formItems = computed<EpFormItem[]>(() => [
 /** 查询仲裁卷列表 */
 
 const columns: EpTableColumn[] = [
-  { label: '密号', prop: 'secretNumber', minWidth: 100, fixed: 'left' },
+  { label: '密号', prop: 'secretNumber', minWidth: 110, fixed: 'left' },
   { label: '客观分', prop: 'objectiveScore', minWidth: 60 },
   { label: '组员给分', prop: 'markerScore', minWidth: 70 },
   { label: '组员', prop: 'markerName', minWidth: 90 },

+ 1 - 1
src/modules/marking/inquiry-result/index.vue

@@ -225,7 +225,7 @@ const columns: EpTableColumn<RowType>[] = [
   {
     label: '密号',
     prop: 'secretNumber',
-    minWidth: 100,
+    minWidth: 110,
     fixed: 'left',
     formatter(row: any) {
       return (

+ 12 - 8
src/modules/marking/inquiry/index.vue

@@ -8,14 +8,18 @@
           <el-button type="primary" @click="toggleVisible(true)">保存为快捷查询</el-button>
         </template>
         <template #form-item-short>
-          <base-select
-            v-model="shortQueryConfigIndex"
-            clearable
-            value-key="secretNumber"
-            :options="customQueryConfigList?.map((v, i) => ({ label: v.name, value: i }))"
-            @clear="fastParamClear"
-            @change="fastParamChange"
-          ></base-select>
+          <div class="flex items-center" style="width: 100%">
+            <span style="color: #666; width: 60px; font-size: 12px">快捷方式</span>
+            <base-select
+              v-model="shortQueryConfigIndex"
+              class="flex-1"
+              clearable
+              value-key="secretNumber"
+              :options="customQueryConfigList?.map((v, i) => ({ label: v.name, value: i }))"
+              @clear="fastParamClear"
+              @change="fastParamChange"
+            ></base-select>
+          </div>
         </template>
       </base-form>
     </div>

+ 9 - 5
src/modules/marking/mark/index.vue

@@ -26,7 +26,7 @@
         <span class="mark-status">
           <img :src="statusIcon" alt="" />
         </span>
-        <span class="preview" @click="onPreview">
+        <span class="preview" :style="{ left: previewLeft }" @click="onPreview">
           <svg-icon name="preview"></svg-icon>
         </span>
         <div ref="imgWrap" :class="{ 'text-center': center }" class="img-wrap scroll-auto">
@@ -528,6 +528,9 @@ bus.on('mark-prev', async () => {
     historyTaskChange(markHistory.markHistoryList[0])
   }
 })
+const previewLeft = computed(() => {
+  return currentTaskType.value === 'SAMPLE_A' || currentTaskType.value === 'SAMPLE_B' ? '128px' : '100px'
+})
 </script>
 
 <style scoped lang="scss">
@@ -554,22 +557,23 @@ bus.on('mark-prev', async () => {
     }
     .mark-status {
       display: inline-block;
-      width: 24px;
+      // width: 24px;
+      height: 38px;
       position: absolute;
       cursor: pointer;
       top: 20px;
       left: 20px;
       z-index: 100;
       img {
-        max-width: 100%;
+        // max-width: 100%;
+        max-height: 100%;
       }
     }
     .preview {
       position: absolute;
       cursor: pointer;
       z-index: 100;
-      top: 20px;
-      left: 60px;
+      top: 25px;
       font-size: 24px;
     }
   }

+ 1 - 1
src/modules/marking/problem/index.vue

@@ -254,7 +254,7 @@ const formItems = computed<EpFormItem[]>(() => [
 
 /** 查询问题卷列表 */
 const columns: EpTableColumn[] = [
-  { label: '密号', prop: 'secretNumber', minWidth: 100, fixed: 'left' },
+  { label: '密号', prop: 'secretNumber', minWidth: 110, fixed: 'left' },
   { label: '提交人', prop: 'markerName', minWidth: 75 },
   { label: '问题类型', prop: 'problemTypeName', minWidth: 90 },
   { label: '客观分', prop: 'objectiveScore', minWidth: 55 },

+ 1 - 1
src/modules/marking/repeat/index.vue

@@ -216,7 +216,7 @@ const formItems = computed<EpFormItem[]>(() => [
 
 /** 查询重评卷列表 */
 const columns: EpTableColumn[] = [
-  { label: '密号', prop: 'secretNumber', minWidth: 100, fixed: 'left' },
+  { label: '密号', prop: 'secretNumber', minWidth: 110, fixed: 'left' },
   { label: '评卷员', prop: 'markerName', minWidth: 80 },
   { label: '给分', prop: 'markerScore', minWidth: 54 },
   // { label: '重评时间', prop: 'reMarkTime', width: 160 },

+ 2 - 2
src/modules/marking/similar/index.vue

@@ -152,8 +152,8 @@ const formItems = computed<EpFormItem[]>(() => [
 
 /** 雷同卷卷列表 */
 const columns: EpTableColumn<RowType>[] = [
-  { label: '密号', prop: 'secretNumber', minWidth: 100, fixed: 'left' },
-  { label: '雷同密号', prop: 'sameSecretNumber', minWidth: 100 },
+  { label: '密号', prop: 'secretNumber', minWidth: 110, fixed: 'left' },
+  { label: '雷同密号', prop: 'sameSecretNumber', minWidth: 110 },
   { label: '评卷员', prop: 'markerName', minWidth: 100 },
   {
     label: '雷同判定',

+ 1 - 1
src/modules/marking/view-sample/index.vue

@@ -104,7 +104,7 @@ const onOperationClick: OperationClick = ({ type, value }) => {
 
 /** 样卷 */
 const columns: EpTableColumn<RowType>[] = [
-  { label: '密号', prop: 'secretNumber', width: 100, fixed: 'left' },
+  { label: '密号', prop: 'secretNumber', width: 110, fixed: 'left' },
   { label: '题目', prop: 'mainTitle' },
   { label: '分数', prop: 'score', width: 50 },
   { label: '提交人', prop: 'markerName' },

+ 1 - 1
src/modules/monitor/system-check/index.vue

@@ -290,7 +290,7 @@ const columns: EpTableColumn[] = [
   {
     label: '密号',
     prop: 'secretNumber',
-    minWidth: 100,
+    minWidth: 110,
     fixed: 'left',
     formatter(row: any) {
       return (

+ 1 - 1
src/modules/monitor/training-monitoring-detail/index.vue

@@ -133,7 +133,7 @@ const columns: EpTableColumn<RowType>[] = [
   {
     label: '密号',
     prop: 'secretNumber',
-    width: 100,
+    width: 110,
     fixed: 'left',
     formatter(row: any) {
       return (

+ 2 - 0
src/modules/monitor/training-monitoring/index.vue

@@ -259,7 +259,9 @@ onOptionInit(onSearch)
       position: '-webkit-sticky';
       top: 0;
       width: 100%;
+      font-weight: bold;
       z-index: 3;
+      color: #333;
     }
     .status-box {
       height: 24px;

+ 2 - 2
src/modules/quality/subjective-check/index.vue

@@ -315,7 +315,7 @@ const formItems = computed<EpFormItem[]>(() => [
 /** 主观题校验 */
 const columns: EpTableColumn<RowType>[] = [
   { label: '序号', type: 'index', width: 60 },
-  { label: '密号', prop: 'secretNumber', minWidth: 100 },
+  { label: '密号', prop: 'secretNumber', minWidth: 110 },
   { label: '大题名称', prop: 'mainName', minWidth: 100 },
   {
     label: '成绩',
@@ -331,7 +331,7 @@ const columns: EpTableColumn<RowType>[] = [
 ]
 
 const subColumns: EpTableColumn<RowType>[] = [
-  { label: '密号', prop: 'secretNumber', minWidth: 100 },
+  { label: '密号', prop: 'secretNumber', minWidth: 110 },
   { label: '大题名称', prop: 'mainName', minWidth: 100 },
   { label: '当前成绩', prop: 'markScore', minWidth: 100 },
   { label: '修改成绩', prop: 'headerScore', minWidth: 100 },