刘洋 1 year ago
parent
commit
493f252f8e

+ 2 - 2
server.config.ts

@@ -3,11 +3,11 @@ import type { ServerOptions } from 'vite'
 const server: ServerOptions = {
   proxy: {
     '^/?(api|file)/': {
-      // target: 'http://192.168.10.41:8200',
+      target: 'http://192.168.10.41:8200',
       // target: 'http://192.168.10.178:8200',
       // target: 'http://192.168.10.108:8200',
       // target: 'http://cet-test.markingtool.cn',
-      target: 'http://192.168.10.136:80',
+      // target: 'http://192.168.10.136:80',
       // target: 'http://cet-dev.markingtool.cn:8200',
     },
   },

+ 2 - 2
src/api/api-types/marking.d.ts

@@ -15,7 +15,7 @@ export namespace Marking {
     /** 评卷员id */
     markerId?: number
     /** 小组号 */
-    markingGroupNumber?: number | string
+    markingGroupNumbers?: any
     /** 分数截止 */
     scoreEnd?: number
     /** 分数开始 */
@@ -49,7 +49,7 @@ export namespace Marking {
   }
   type GetCustomQueryTasks = BaseDefine<MultipleQuery<CustomQuery>, MultipleResult<CustomQueryTask>>
 
-  type SetCustomQueryConfig = BaseDefine<{ name: string; params: CustomQuery }>
+  type SetCustomQueryConfig = BaseDefine<{ name: string; params: any }>
 
   type GetCustomQueryConfigList = BaseDefine<{ name: string }, { name: string; params: CustomQuery }[]>
   type DeleteCustomQuery = BaseDefine<any, any>

+ 2 - 2
src/api/api-types/system.d.ts

@@ -108,7 +108,7 @@ export namespace System {
   /** 任务设置 - 按小组追加 */
   type MarkGroupUpdateCount = BaseDefine<{
     markCount?: number
-    markingGroupNumber?: number | string
+    markingGroupNumbers?: any
     mainNumber?: number | string
     subjectCode?: string
   }>
@@ -131,7 +131,7 @@ export namespace System {
   type GetUnMarkTasks = BaseDefine<
     {
       mainNumber?: number | string
-      markingGroupNumber?: number | string
+      markingGroupNumbers?: number | string
       subjectCode?: string
     },
     {

+ 43 - 14
src/modules/admin-data/task-setting/index.vue

@@ -50,18 +50,20 @@ type FormParams = ExtractApiParams<'markerSetCount'> &
 
 const refresh = ref<number>(0)
 
-const { subjectList, mainQuestionList, groupList, changeModelValue, dataModel } = useOptions([
-  'subject',
-  'question',
-  'group',
-])
+const { subjectList, mainQuestionList, groupList, groupListWithAll, changeModelValue, dataModel } = useOptions(
+  ['subject', 'question', 'group'],
+  undefined,
+  true,
+  true,
+  true
+)
 
 const { formRef, elFormRef, defineColumn, _ } = useForm()
 
 const taskSettingModel = reactive<FormParams>({
   subjectCode: dataModel.subject,
   mainNumber: dataModel.question,
-  markingGroupNumber: dataModel.group,
+  markingGroupNumbers: dataModel.group,
   markCount: void 0,
   markDayCount: void 0,
   markTotalCount: void 0,
@@ -87,13 +89,13 @@ watch(
 )
 
 watch(
-  () => taskSettingModel.markingGroupNumber,
+  () => taskSettingModel.markingGroupNumbers,
   () => {
-    if (taskSettingModel.markingGroupNumber) {
+    if (taskSettingModel.markingGroupNumbers) {
       getUnMarkTasks({
         subjectCode: taskSettingModel.subjectCode,
         mainNumber: taskSettingModel.mainNumber,
-        markingGroupNumber: taskSettingModel.markingGroupNumber,
+        markingGroupNumbers: taskSettingModel.markingGroupNumbers,
       })
     }
   }
@@ -102,10 +104,33 @@ watch(
 watch(dataModel, () => {
   taskSettingModel.subjectCode = dataModel.subject
   taskSettingModel.mainNumber = dataModel.question
-  taskSettingModel.markingGroupNumber = dataModel.group
+  taskSettingModel.markingGroupNumbers = dataModel.group
 })
 
 const Span7 = defineColumn(_, '', { span: 7 })
+const customGroupChange = (v: any) => {
+  if (groupListWithAll.value.find((item: any) => item.value == undefined)) {
+    if (taskSettingModel.markingGroupNumbers?.includes(undefined)) {
+      taskSettingModel.markingGroupNumbers = [void 0]
+      changeModelValue('group')(taskSettingModel.markingGroupNumbers)
+    } else {
+      changeModelValue('group')(v)
+    }
+  } else {
+    changeModelValue('group')(v)
+  }
+}
+const transGroupOptions = computed(() => {
+  return (taskSettingModel.markingGroupNumbers || []).includes(undefined)
+    ? (groupListWithAll.value || []).map((item: any) => {
+        item.value != undefined && (item.disabled = true)
+        return item
+      })
+    : groupListWithAll.value.map((item: any) => {
+        item.disabled = false
+        return item
+      })
+})
 
 const items = computed<EpFormItem[]>(() => [
   Span7({
@@ -137,12 +162,16 @@ const items = computed<EpFormItem[]>(() => [
   Span7({
     rowKey: 'row-2',
     label: '小组',
-    prop: 'markingGroupNumber',
+    prop: 'markingGroupNumbers',
     slotType: 'select',
     hidden: !isGroupSetting.value,
     slot: {
-      options: groupList.value,
-      onChange: changeModelValue('group'),
+      // options: groupList.value,
+      // onChange: changeModelValue('group'),
+      // multiple: true,
+      options: transGroupOptions.value,
+      onChange: customGroupChange,
+      multiple: true,
     },
   }),
   Span7({
@@ -193,7 +222,7 @@ const rules = computed<EpFormRules>(() => {
     mainNumber: [{ required: true, message: '请选择大题' }],
   }
   if (isGroupSetting.value) {
-    obj['markingGroupNumber'] = [{ required: true, message: '请选择小组' }]
+    // obj['markingGroupNumbers'] = [{ required: true, message: '请选择小组' }]
     obj['markCount'] = [{ required: true, message: '请设置统一追加量' }]
   } else {
     obj['markTotalCount'] = [

+ 61 - 22
src/modules/marking/inquiry/index.vue

@@ -96,7 +96,7 @@ const {
   isLeader,
   getMainQuestionList,
   getQuestionGroupList,
-} = useOptions(['subject', 'question', 'group'])
+} = useOptions(['subject', 'question', 'group'], undefined, true, true, true)
 
 const { formRef, elFormRef, defineColumn, _ } = useForm()
 
@@ -105,7 +105,7 @@ type FormModel = Omit<ExtractApiParams<'setCustomQueryConfig'>['params'], 'timeS
 const model = reactive<FormModel>({
   subjectCode: dataModel.subject,
   mainNumber: dataModel.question,
-  markingGroupNumber: dataModel.group,
+  markingGroupNumbers: dataModel.group,
   checked: false,
   arbitration: false,
   markerId: void 0,
@@ -121,11 +121,6 @@ const model = reactive<FormModel>({
   objectiveScoreEnd: void 0,
 })
 
-// watch(dataModel, () => {
-//   model.subjectCode = dataModel.subject
-//   model.mainNumber = dataModel.question
-//   model.markingGroupNumber = dataModel.group
-// })
 watch(
   () => dataModel.subject,
   () => {
@@ -141,7 +136,7 @@ watch(
 watch(
   () => dataModel.group,
   () => {
-    model.markingGroupNumber = dataModel.group
+    model.markingGroupNumbers = dataModel.group
   }
 )
 watch(
@@ -157,24 +152,38 @@ watch(
   }
 )
 watch(
-  () => model.markingGroupNumber,
+  () => model.markingGroupNumbers,
   () => {
-    dataModel.group = model.markingGroupNumber
+    dataModel.group = model.markingGroupNumbers
   }
 )
 
 const { fetch: getCustomQueryConfigList, result: customQueryConfigList } = useFetch('getCustomQueryConfigList')
 const { fetch: setCustomQueryConfig, loading: saving } = useFetch('setCustomQueryConfig')
-const { fetch: getMarkerList, result: markerList } = useFetch('getMarkerList')
+// const { fetch: getMarkerList, result: markerList } = useFetch('getMarkerList')
+const { fetch: getMarkerList, result: allMarkerList } = useFetch('getMarkerList')
+const markerList = computed(() => {
+  let mgn = model.markingGroupNumbers
+  if (typeof mgn == 'number') {
+    mgn = [mgn]
+  }
+  if ((mgn || []).includes(undefined) || typeof mgn === 'undefined' || (Array.isArray(mgn) && !mgn.length)) {
+    return allMarkerList?.value || []
+  } else {
+    return (allMarkerList?.value || []).filter((item) => {
+      return (mgn || []).includes(item.markingGroupNumber)
+    })
+  }
+})
 
 watch(
-  () => [model.subjectCode, model.mainNumber, model.markingGroupNumber],
+  () => [model.subjectCode, model.mainNumber, model.markingGroupNumbers],
   () => {
     if (model.subjectCode && model.mainNumber) {
       getMarkerList({
         subjectCode: model.subjectCode,
         mainNumber: model.mainNumber,
-        markingGroupNumber: model.markingGroupNumber,
+        // markingGroupNumber: model.markingGroupNumber,
       }).then(() => {
         if (resetMarkerId.value) {
           model.markerId = resetMarkerId.value
@@ -233,8 +242,8 @@ const fastParamChange = async (index: number) => {
         if (shortQueryConfig.markerId) {
           resetMarkerId.value = shortQueryConfig.markerId
         }
-        if (!shortQueryConfig.hasOwnProperty('markingGroupNumber')) {
-          shortQueryConfig.markingGroupNumber = undefined
+        if (!shortQueryConfig.hasOwnProperty('markingGroupNumbers')) {
+          shortQueryConfig.markingGroupNumbers = undefined
         }
         console.log('shortQueryConfig:', shortQueryConfig)
         Object.assign(model, omit(shortQueryConfig, 'timeStart', 'timeEnd'), {
@@ -260,6 +269,29 @@ const rules: EpFormRules = {
   subjectCode: [{ required: true, message: '请选择科目' }],
   mainNumber: [{ required: true, message: '请选择大题' }],
 }
+const customGroupChange = (v: any) => {
+  if (groupListWithAll.value.find((item: any) => item.value == undefined)) {
+    if (model.markingGroupNumbers.includes(undefined)) {
+      model.markingGroupNumbers = [void 0]
+      changeModelValue('group')(model.markingGroupNumbers)
+    } else {
+      changeModelValue('group')(v)
+    }
+  } else {
+    changeModelValue('group')(v)
+  }
+}
+const transGroupOptions = computed(() => {
+  return (model.markingGroupNumbers || []).includes(undefined)
+    ? (groupListWithAll.value || []).map((item: any) => {
+        item.value != undefined && (item.disabled = true)
+        return item
+      })
+    : groupListWithAll.value.map((item: any) => {
+        item.disabled = false
+        return item
+      })
+})
 
 const items = computed<EpFormItem[]>(() => [
   OneRow({
@@ -285,13 +317,14 @@ const items = computed<EpFormItem[]>(() => [
     },
   }),
   TwoRow({
-    prop: 'markingGroupNumber',
+    prop: 'markingGroupNumbers',
     label: '小组',
     slotType: 'select',
     slot: {
       placeholder: '评卷小组',
-      options: groupListWithAll.value,
-      onChange: changeModelValue('group'),
+      options: transGroupOptions.value,
+      onChange: customGroupChange,
+      multiple: true,
     },
   }),
   ThreeRow({
@@ -383,10 +416,16 @@ const items = computed<EpFormItem[]>(() => [
       slotType: 'select',
       prop: 'markerId',
       slot: {
-        options: markerList?.value?.map((marker) => ({
-          value: marker.id,
-          label: marker.loginName ? `${marker.loginName}-${marker.name}` : marker.name,
-        })),
+        // options: markerList?.value?.map((marker) => ({
+        //   value: marker.id,
+        //   label: marker.loginName ? `${marker.loginName}-${marker.name}` : marker.name,
+        // })),
+        options: [
+          ...(markerList?.value || []).map((marker) => ({
+            value: marker.id,
+            label: marker.loginName ? `${marker.loginName}-${marker.name}` : marker.name,
+          })),
+        ],
         filterable: true,
         clearable: true,
       },

+ 7 - 7
src/modules/marking/mark/index.vue

@@ -484,13 +484,13 @@ const onConfirmSubmitProblem = async () => {
 /** 返回 */
 const onBack = () => {
   /** 回评时返回到正评, 否则返回到评卷员主页 */
-  if (currentTaskType.value === 'remarking') {
-    getNextTask()
-  } else {
-    replace({
-      name: 'MarkingNav',
-    })
-  }
+  // if (currentTaskType.value === 'remarking') {
+  //   getNextTask()
+  // } else {
+  replace({
+    name: 'MarkingNav',
+  })
+  // }
 }
 const clearTaskView = () => {
   currentTaskPool = currentTaskPool.filter((item: any) => {