bzkf3 2 роки тому
батько
коміт
275fac47d7
4 змінених файлів з 75 додано та 15 видалено
  1. 4 0
      auto-imports.d.ts
  2. 19 0
      components.d.ts
  3. 2 2
      public/config.js
  4. 50 13
      src/pages/step/[id].vue

+ 4 - 0
auto-imports.d.ts

@@ -12,6 +12,8 @@ declare global {
   const $shallowRef: typeof import('vue/macros')['$shallowRef']
   const $toRef: typeof import('vue/macros')['$toRef']
   const EffectScope: typeof import('vue')['EffectScope']
+  const ElMessage: typeof import('element-plus/es')['ElMessage']
+  const ElMessageBox: typeof import('element-plus/es')['ElMessageBox']
   const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
   const autoResetRef: typeof import('@vueuse/core')['autoResetRef']
   const computed: typeof import('vue')['computed']
@@ -298,6 +300,8 @@ declare module 'vue' {
     readonly $shallowRef: UnwrapRef<typeof import('vue/macros')['$shallowRef']>
     readonly $toRef: UnwrapRef<typeof import('vue/macros')['$toRef']>
     readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
+    readonly ElMessage: UnwrapRef<typeof import('element-plus/es')['ElMessage']>
+    readonly ElMessageBox: UnwrapRef<typeof import('element-plus/es')['ElMessageBox']>
     readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']>
     readonly autoResetRef: UnwrapRef<typeof import('@vueuse/core')['autoResetRef']>
     readonly computed: UnwrapRef<typeof import('vue')['computed']>

+ 19 - 0
components.d.ts

@@ -11,10 +11,15 @@ declare module '@vue/runtime-core' {
   export interface GlobalComponents {
     Bjqk: typeof import('./src/components/step/link/bjqk.vue')['default']
     BreadCrumb: typeof import('./src/components/BreadCrumb/index.vue')['default']
+    Cjfb: typeof import('./src/components/step/btn/cjfb.vue')['default']
     CommonFooter: typeof import('./src/components/commonFooter/index.vue')['default']
     ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
     ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
     ElButton: typeof import('element-plus/es')['ElButton']
+    ElCarousel: typeof import('element-plus/es')['ElCarousel']
+    ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem']
+    ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
+    ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
     ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
     ElDialog: typeof import('element-plus/es')['ElDialog']
@@ -22,9 +27,20 @@ declare module '@vue/runtime-core' {
     ElFormItem: typeof import('element-plus/es')['ElFormItem']
     ElIcon: typeof import('element-plus/es')['ElIcon']
     ElInput: typeof import('element-plus/es')['ElInput']
+    ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
+    ElLink: typeof import('element-plus/es')['ElLink']
     ElOption: typeof import('element-plus/es')['ElOption']
     ElPagination: typeof import('element-plus/es')['ElPagination']
+    ElRadio: typeof import('element-plus/es')['ElRadio']
+    ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
     ElSelect: typeof import('element-plus/es')['ElSelect']
+    ElStep: typeof import('element-plus/es')['ElStep']
+    ElSteps: typeof import('element-plus/es')['ElSteps']
+    ElTable: typeof import('element-plus/es')['ElTable']
+    ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
+    ElUpload: typeof import('element-plus/es')['ElUpload']
+    'I:mdi:horizontalLine': typeof import('~icons/mdi/horizontal-line')['default']
+    'I:mdi:tick': typeof import('~icons/mdi/tick')['default']
     LeftSider: typeof import('./src/components/leftSider/index.vue')['default']
     LeftSiderStu: typeof import('./src/components/leftSiderStu/index.vue')['default']
     NavHeader: typeof import('./src/components/NavHeader/index.vue')['default']
@@ -36,4 +52,7 @@ declare module '@vue/runtime-core' {
     TinymceVue: typeof import('./src/components/TinymceVue/index.vue')['default']
     Xgstda: typeof import('./src/components/step/link/xgstda.vue')['default']
   }
+  export interface ComponentCustomProperties {
+    vLoading: typeof import('element-plus/es')['ElLoadingDirective']
+  }
 }

+ 2 - 2
public/config.js

@@ -19,7 +19,7 @@ const development = {
   yzy: 'https://yzy.dev.bozedu.net/',
   api:'https://openapi.dev.bozedu.net/',
   uc: 'https://uc.dev.bozedu.net/',
-  base:'/webapps/page/liankao'
+  base:'/webapps/page/'
 }
 
 // // 正式服环境
@@ -30,7 +30,7 @@ const production = {
   yzy: 'https://yzy.bozedu.net/',
   api:'https://openapi.bozedu.net/',
   uc: 'https://uc.bozedu.net/',
-  base:'/webapps/page/liankao'
+  base:'/webapps/page/'
 }
 
 function isWhich() {

+ 50 - 13
src/pages/step/[id].vue

@@ -419,6 +419,7 @@ function handleCompleteTask(gid: number, pid: number, cid: number, val?: unknown
 }
 
 function handleJumpTask(gid: number, pid: number, idy: number) {
+  // todo: 验证任务是否完成
   if (judgeStepCompleted(stepsReactiveMap[gid][pid][idy])) {
     return ElMessage({
       message: '该任务已完成',
@@ -445,39 +446,75 @@ function handleCompleteTaskAuto() {
 }
 
 const TaskEventMap: { [key: string]: () => void } = {
-  附件出题: () => {
+  '附件出题': () => {
     routerPush({ name: 'process-fjct-ze_id-zs_id', params: { ze_id: ykl_lc.ze_id, zs_id: ykl_lc.zs_id } })
   },
-  预划考号区域: () => {
-    windowPushState(`${window.GLOBAL_CONFIG.base}/dtk/index.html`)
+  '预划考号区域': () => {
+    windowPushState(`${window.GLOBAL_CONFIG.base}/liankao/dtk/index.html`)
   },
-  制作答题卡: () => {
-    windowPushState(`${window.GLOBAL_CONFIG.base}/dtk/index.html`)
+  '制作答题卡': () => {
+    windowPushState(`${window.GLOBAL_CONFIG.base}/liankao/dtk/index.html`)
+  },
+  '考场设置(可选)': () => {
+    windowPushState(`${window.GLOBAL_CONFIG.base}/exam-room-set.html?id=${ykl_lc.ze_id}`)
   },
   // 先上传后划块
-  答题卡扫描: () => {
+  '答题卡扫描': () => {
     window.open(`BozeduYuejuan://${user.value.token},${ykl_lc.ze_id},${window.GLOBAL_CONFIG.yzy},upload_papers`, '_blank')
     handleCompleteTaskAuto()
   },
-  答题卡二次扫描: () => {
+  '答题卡二次扫描': () => {
     window.open(`BozeduYuejuan://${user.value.token},${ykl_lc.ze_id},${window.GLOBAL_CONFIG.yzy},review_papers`, '_blank')
     handleCompleteTaskAuto()
   },
   // 先划块后上传 老流程
-  启动客户端: () => {
+  '启动客户端': () => {
     window.open(`BozeduYuejuan://${user.value.token},${ykl_lc.ze_id},${window.GLOBAL_CONFIG.yzy}`, '_blank')
     handleCompleteTaskAuto()
   },
-  平台接收试卷确认: () => {
+  '平台接收试卷确认': () => {
     handleCompleteTaskAuto()
   },
-  批阅任务分配: () => {
+  '批阅任务分配': () => {
   },
-  阅卷: () => {
+  '阅卷': () => {
   },
-  成绩发布: () => {
+  '成绩发布': () => {
+    ElMessageBox.confirm('选择实时发布时需等待浏览器处理结束;正常发布则无需等待', '选择发布成绩的方式', {
+      confirmButtonText: '实时发布',
+      cancelButtonText: '正常发布',
+      type: 'info',
+    }).then(() => {
+      request({
+        url: '/yzy/kmksyjlc/save',
+        data: {
+          ykl_id,
+          yk: {
+            ykl_lc: JSON.stringify({
+              ...ykl_lc,
+              ykl_lc_cjfb: 1,
+            }),
+          },
+        },
+      }).then((res) => {
+        if (res.code === '1') {
+          ElMessage({
+            message: '操作成功',
+            type: 'success',
+            grouping: true,
+          })
+          ykl_lc.ykl_lc_cjfb = 1
+        }
+      }).catch(() => {
+        ElMessage({
+          message: '操作失败',
+          type: 'error',
+          grouping: true,
+        })
+      })
+    })
   },
-  考试关闭: () => {
+  '考试关闭': () => {
     ElMessageBox({
       title: '提示',
       message: '确定要关闭考试吗?',