我还能继续跑 9 сар өмнө
parent
commit
4662783961

+ 22 - 2
src/api/work/totalscore/index.ts

@@ -5,8 +5,13 @@ export interface TotalScoreVO {
   id: number // id
   workName: string // 作品名
   overallRating: string // 总评分
+  workId: string // 作品id
+}
+// 人 VO
+export interface TotalScoreVOren {
+  score: string // 分数
+  username: string // 评分人
 }
-
 // 作品总分 API
 export const TotalScoreApi = {
   // 查询作品总分分页
@@ -38,4 +43,19 @@ export const TotalScoreApi = {
   exportTotalScore: async (params) => {
     return await request.download({ url: `/work/total-score/export-excel`, params })
   }
-}
+  ,
+  // 生成总分
+  jsscoreTotalScore: async () => {
+    return await request.post({ url: `/work/total-score/jsscore` })
+  }
+  ,
+  // 重置总分表和专家打分表
+  czscoreTotalScore: async (data: TotalScoreVO) => {
+    return await request.post({ url: `/work/total-score/czscore`, data })
+  }
+  ,
+  // 获取专家姓名和作品名称和打分
+  scorenameTotalScore: async (data: TotalScoreVOren) => {
+    return await request.post({ url: `/work/total-score/scorename`, data })
+  }
+}

+ 94 - 61
src/views/work/totalscore/TotalScoreForm.vue

@@ -1,34 +1,40 @@
 <template>
   <Dialog :title="dialogTitle" v-model="dialogVisible">
-    <el-form
-      ref="formRef"
-      :model="formData"
-      :rules="formRules"
-      label-width="100px"
-      v-loading="formLoading"
-    >
-      <el-form-item label="作品名" prop="workName">
-        <el-input v-model="formData.workName" placeholder="请输入作品名" />
-      </el-form-item>
-      <el-form-item label="总评分" prop="overallRating">
-        <el-input v-model="formData.overallRating" placeholder="请输入总评分" />
-      </el-form-item>
-    </el-form>
-    <template #footer>
-      <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
-      <el-button @click="dialogVisible = false">取 消</el-button>
-    </template>
+    <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
+      <!--      <el-table-column label="id" align="center" prop="id" />-->
+      <el-table-column label="评分人" align="center" prop="username" />
+      <el-table-column label="评分" align="center" prop="score" />
+    </el-table>
+<!--    <el-form-->
+<!--      ref="formRef"-->
+<!--      :model="formData"-->
+<!--      :rules="formRules"-->
+<!--      label-width="100px"-->
+<!--      v-loading="formLoading"-->
+<!--    >-->
+<!--      <el-form-item label="作品名" prop="workName">-->
+<!--        <el-input v-model="formData.workName" placeholder="请输入作品名" />-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="总评分" prop="overallRating">-->
+<!--        <el-input v-model="formData.overallRating" placeholder="请输入总评分" />-->
+<!--      </el-form-item>-->
+<!--    </el-form>-->
+<!--    <template #footer>-->
+<!--      <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>-->
+<!--      <el-button @click="dialogVisible = false">取 消</el-button>-->
+<!--    </template>-->
+
   </Dialog>
 </template>
 <script setup lang="ts">
-import { TotalScoreApi, TotalScoreVO } from '@/api/work/totalscore'
+import {TotalScoreApi, TotalScoreVO, TotalScoreVOren} from '@/api/work/totalscore'
 
 /** 作品总分 表单 */
 defineOptions({ name: 'TotalScoreForm' })
 
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
-
+const loading = ref(true) // 列表的加载中
 const dialogVisible = ref(false) // 弹窗的是否展示
 const dialogTitle = ref('') // 弹窗的标题
 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
@@ -38,6 +44,12 @@ const formData = ref({
   workName: undefined,
   overallRating: undefined
 })
+const csData = ref({
+  workId: undefined,
+  workName: undefined,
+  overallRating: undefined
+})
+const list = ref<TotalScoreVOren[]>([]) // 列表的数据
 const formRules = reactive({
 })
 const formRef = ref() // 表单 Ref
@@ -45,52 +57,73 @@ const formRef = ref() // 表单 Ref
 /** 打开弹窗 */
 const open = async (type: string, id?: number) => {
   dialogVisible.value = true
-  dialogTitle.value = t('action.' + type)
-  formType.value = type
-  resetForm()
-  // 修改时,设置数据
-  if (id) {
-    formLoading.value = true
-    try {
-      formData.value = await TotalScoreApi.getTotalScore(id)
-    } finally {
-      formLoading.value = false
-    }
+  csData.value = {
+    workName: undefined,
+    workId:id,
+    overallRating: undefined,
   }
+  loading.value = true
+  try {
+    const data = await TotalScoreApi.scorenameTotalScore(csData.value)
+    list.value = data
+  } finally {
+    loading.value = false
+  }
+  dialogTitle.value = "查看详情"
+  // formType.value = type
+  // resetForm()
+  // 修改时,设置数据
+  // if (id) {
+  //   formLoading.value = true
+  //   try {
+  //     formData.value = await TotalScoreApi.getTotalScore(id)
+  //   } finally {
+  //     formLoading.value = false
+  //   }
+  // }
 }
 defineExpose({ open }) // 提供 open 方法,用于打开弹窗
-
-/** 提交表单 */
-const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
-const submitForm = async () => {
-  // 校验表单
-  await formRef.value.validate()
-  // 提交请求
-  formLoading.value = true
+/** 查询列表 */
+const getList = async () => {
+  loading.value = true
   try {
-    const data = formData.value as unknown as TotalScoreVO
-    if (formType.value === 'create') {
-      await TotalScoreApi.createTotalScore(data)
-      message.success(t('common.createSuccess'))
-    } else {
-      await TotalScoreApi.updateTotalScore(data)
-      message.success(t('common.updateSuccess'))
-    }
-    dialogVisible.value = false
-    // 发送操作成功的事件
-    emit('success')
+    const data = await TotalScoreApi.scorenameTotalScore()
+    list.value = data.list
   } finally {
-    formLoading.value = false
+    loading.value = false
   }
 }
+// /** 提交表单 */
+// const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
+// const submitForm = async () => {
+//   // 校验表单
+//   await formRef.value.validate()
+//   // 提交请求
+//   formLoading.value = true
+//   try {
+//     const data = formData.value as unknown as TotalScoreVO
+//     if (formType.value === 'create') {
+//       await TotalScoreApi.createTotalScore(data)
+//       message.success(t('common.createSuccess'))
+//     } else {
+//       await TotalScoreApi.updateTotalScore(data)
+//       message.success(t('common.updateSuccess'))
+//     }
+//     dialogVisible.value = false
+//     // 发送操作成功的事件
+//     emit('success')
+//   } finally {
+//     formLoading.value = false
+//   }
+// }
 
-/** 重置表单 */
-const resetForm = () => {
-  formData.value = {
-    id: undefined,
-    workName: undefined,
-    overallRating: undefined
-  }
-  formRef.value?.resetFields()
-}
-</script>
+// /** 重置表单 */
+// const resetForm = () => {
+//   formData.value = {
+//     id: undefined,
+//     workName: undefined,
+//     overallRating: undefined
+//   }
+//   formRef.value?.resetFields()
+// }
+</script>

+ 63 - 23
src/views/work/totalscore/index.vue

@@ -43,20 +43,20 @@
         <el-button
           type="primary"
           plain
-          @click="openForm('create')"
-          v-hasPermi="['work:total-score:create']"
+          @click="sczf"
+          v-hasPermi="['work:total-score:jsscore']"
         >
-          <Icon icon="ep:plus" class="mr-5px" /> 新增
-        </el-button>
-        <el-button
-          type="success"
-          plain
-          @click="handleExport"
-          :loading="exportLoading"
-          v-hasPermi="['work:total-score:export']"
-        >
-          <Icon icon="ep:download" class="mr-5px" /> 导出
+          <Icon icon="ep:refresh" class="mr-5px" /> 生成总分
         </el-button>
+<!--        <el-button-->
+<!--          type="success"-->
+<!--          plain-->
+<!--          @click="handleExport"-->
+<!--          :loading="exportLoading"-->
+<!--          v-hasPermi="['work:total-score:export']"-->
+<!--        >-->
+<!--          <Icon icon="ep:download" class="mr-5px" /> 导出-->
+<!--        </el-button>-->
       </el-form-item>
     </el-form>
   </ContentWrap>
@@ -64,11 +64,11 @@
   <!-- 列表 -->
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-      <el-table-column label="id" align="center" prop="id" />
+<!--      <el-table-column label="id" align="center" prop="id" />-->
       <el-table-column label="作品名" align="center" prop="workName" />
       <el-table-column label="总评分" align="center" prop="overallRating" />
       <el-table-column
-        label="创建时间"
+        label="生成时间"
         align="center"
         prop="createTime"
         :formatter="dateFormatter"
@@ -79,19 +79,27 @@
           <el-button
             link
             type="primary"
-            @click="openForm('update', scope.row.id)"
-            v-hasPermi="['work:total-score:update']"
+            @click="openForm('update', scope.row.workId)"
+            v-hasPermi="['work:total-score:scorename']"
           >
-            编辑
+            查看详情
           </el-button>
           <el-button
             link
-            type="danger"
-            @click="handleDelete(scope.row.id)"
-            v-hasPermi="['work:total-score:delete']"
+            type="primary"
+            @click="cxdf(scope.row.workId)"
+            v-hasPermi="['work:total-score:czscore']"
           >
-            删除
+            重新打分
           </el-button>
+<!--          <el-button-->
+<!--            link-->
+<!--            type="danger"-->
+<!--            @click="handleDelete(scope.row.id)"-->
+<!--            v-hasPermi="['work:total-score:delete']"-->
+<!--          >-->
+<!--            删除-->
+<!--          </el-button>-->
         </template>
       </el-table-column>
     </el-table>
@@ -127,9 +135,15 @@ const queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
   workName: undefined,
+  workId:undefined,
   overallRating: undefined,
   createTime: []
 })
+const csdata = reactive({
+  workName: undefined,
+  workId:undefined,
+  overallRating: undefined,
+})
 const queryFormRef = ref() // 搜索的表单
 const exportLoading = ref(false) // 导出的加载中
 
@@ -144,7 +158,33 @@ const getList = async () => {
     loading.value = false
   }
 }
-
+//重新打分
+const cxdf = async (workId: number) => {
+  console.log(workId);
+  csdata.value = {
+    workName: undefined,
+    workId:workId,
+    overallRating: undefined,
+  }
+  await message.confirm("是否重新打分")
+  await TotalScoreApi.czscoreTotalScore(csdata.value);
+  message.success("打分记录移除成功")
+  // 刷新列表
+  await getList()
+  csdata.value = {
+    workName: undefined,
+    workId:undefined,
+    overallRating: undefined,
+  }
+}
+/** 生成总分按钮操作 */
+const sczf = async () => {
+  await message.confirm("是否生成总分")
+  const data = await TotalScoreApi.jsscoreTotalScore();
+  message.success("生成成功,共生成"+data+"条数据")
+  // 刷新列表
+  await getList()
+}
 /** 搜索按钮操作 */
 const handleQuery = () => {
   queryParams.pageNo = 1
@@ -195,4 +235,4 @@ const handleExport = async () => {
 onMounted(() => {
   getList()
 })
-</script>
+</script>