提交 d2da6f61 authored 作者: 王鹏飞's avatar 王鹏飞

chore: update

上级 4d082ef4
......@@ -16,13 +16,15 @@ interface Props {
data?: any[]
hasPagination?: boolean
limit?: number
hasLoading?: boolean
}
const props = withDefaults(defineProps<Props>(), {
hasPagination: true,
hasLoading: true,
limit: 10,
filters: () => [],
columns: () => [],
data: () => []
data: () => [],
})
const filterFormRef = ref()
......@@ -137,8 +139,7 @@ defineExpose({ refetch, tableRef })
v-bind="item"
clearable
@change="search"
v-if="item.type === 'input'"
/>
v-if="item.type === 'input'" />
<!-- select -->
<el-select
v-model="params[item.prop]"
......@@ -146,14 +147,12 @@ defineExpose({ refetch, tableRef })
filterable
clearable
@change="search"
v-if="item.type === 'select'"
>
v-if="item.type === 'select'">
<el-option
v-for="(option, index) in item.options"
:label="option[item.labelKey] || option.label || option"
:value="option[item.valueKey] || option.value || option"
:key="index"
/>
:key="index" />
</el-select>
</template>
</el-form-item>
......@@ -174,10 +173,9 @@ defineExpose({ refetch, tableRef })
<el-table
:header-cell-style="{ background: '#ededed' }"
:data="dataList"
v-loading="loading"
v-loading="loading && hasLoading"
v-bind="$attrs"
ref="tableRef"
>
ref="tableRef">
<el-table-column align="center" v-bind="item || {}" v-for="item in columns" :key="item.prop">
<template #default="scope" v-if="item.slots || item.computed">
<slot :name="item.slots" v-bind="scope" v-if="item.slots"></slot>
......@@ -203,8 +201,7 @@ defineExpose({ refetch, tableRef })
@size-change="pageSizeChange"
@current-change="fetchList()"
:hide-on-single-page="true"
v-if="hasPagination"
>
v-if="hasPagination">
</el-pagination>
</div>
</div>
......
......@@ -211,7 +211,6 @@ const handleNext = () => {
<el-tab-pane label="商品品类管理" :name="1">
<ScoreCard
:maxScore="5"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.commodity_type.score"
v-model:comment="scoreDetails.commodity_type.comment"
@save="$emit('save')"
......@@ -226,7 +225,6 @@ const handleNext = () => {
<el-tab-pane label="商品属性管理" :name="2" lazy>
<ScoreCard
:maxScore="5"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.commodity_attr.score"
v-model:comment="scoreDetails.commodity_attr.comment"
@save="$emit('save')"
......@@ -237,7 +235,6 @@ const handleNext = () => {
<el-tab-pane label="商品管理" :name="3" lazy>
<ScoreCard
:maxScore="15"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.commodity.score"
v-model:comment="scoreDetails.commodity.comment"
@save="$emit('save')"
......@@ -294,7 +291,6 @@ const handleNext = () => {
<el-tab-pane label="直播话术管理" :name="4" lazy>
<ScoreCard
:maxScore="15"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.speech.score"
v-model:comment="scoreDetails.speech.comment"
@save="$emit('save')"
......@@ -321,7 +317,6 @@ const handleNext = () => {
<el-tab-pane label="首次直播演练" :name="5" lazy>
<ScoreCard
:maxScore="20"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.practice_record1.score"
v-model:comment="scoreDetails.practice_record1.comment"
@save="$emit('save')"
......@@ -336,7 +331,6 @@ const handleNext = () => {
<el-tab-pane label="直播复盘分析" :name="6" lazy>
<ScoreCard
:maxScore="10"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.improvement_plan.score"
v-model:comment="scoreDetails.improvement_plan.comment"
@save="$emit('save')"
......@@ -352,7 +346,6 @@ const handleNext = () => {
<el-tab-pane label="二次直播演练" :name="7" lazy>
<ScoreCard
:maxScore="15"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.practice_record2.score"
v-model:comment="scoreDetails.practice_record2.comment"
@save="$emit('save')"
......@@ -367,7 +360,6 @@ const handleNext = () => {
<el-tab-pane label="直播总结汇报" :name="8" lazy>
<ScoreCard
:maxScore="15"
:hasSaveButton="detail.check_status != '2'"
:hasNextButton="false"
v-model:score="scoreDetails.report.score"
v-model:comment="scoreDetails.report.comment"
......
......@@ -212,7 +212,6 @@ const handleNext = () => {
<el-tab-pane label="商品品类管理" :name="1">
<ScoreCard
:maxScore="3"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.commodity_type.score"
v-model:comment="scoreDetails.commodity_type.comment"
@save="$emit('save')"
......@@ -227,7 +226,6 @@ const handleNext = () => {
<el-tab-pane label="商品属性管理" :name="2" lazy>
<ScoreCard
:maxScore="2"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.commodity_attr.score"
v-model:comment="scoreDetails.commodity_attr.comment"
@save="$emit('save')"
......@@ -238,7 +236,6 @@ const handleNext = () => {
<el-tab-pane label="商品管理" :name="3" lazy>
<ScoreCard
:maxScore="10"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.commodity.score"
v-model:comment="scoreDetails.commodity.comment"
@save="$emit('save')"
......@@ -295,7 +292,6 @@ const handleNext = () => {
<el-tab-pane label="直播话术管理" :name="4" lazy>
<ScoreCard
:maxScore="15"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.speech.score"
v-model:comment="scoreDetails.speech.comment"
@save="$emit('save')"
......@@ -322,7 +318,6 @@ const handleNext = () => {
<el-tab-pane label="首次直播演练" :name="5" lazy>
<ScoreCard
:maxScore="15"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.practice_record1.score"
v-model:comment="scoreDetails.practice_record1.comment"
@save="$emit('save')"
......@@ -337,7 +332,6 @@ const handleNext = () => {
<el-tab-pane label="直播复盘分析" :name="6" lazy>
<ScoreCard
:maxScore="10"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.improvement_plan.score"
v-model:comment="scoreDetails.improvement_plan.comment"
@save="$emit('save')"
......@@ -353,7 +347,6 @@ const handleNext = () => {
<el-tab-pane label="二次直播演练" :name="7" lazy>
<ScoreCard
:maxScore="30"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.practice_record2.score"
v-model:comment="scoreDetails.practice_record2.comment"
@save="$emit('save')"
......@@ -368,7 +361,6 @@ const handleNext = () => {
<el-tab-pane label="直播总结汇报" :name="8" lazy>
<ScoreCard
:maxScore="10"
:hasSaveButton="detail.check_status != '2'"
:hasNextButton="false"
v-model:score="scoreDetails.report.score"
v-model:comment="scoreDetails.report.comment"
......
......@@ -61,7 +61,7 @@ const handleNext = () => {
<template>
<el-tabs stretch v-model="activeTab" class="score-tabs">
<el-tab-pane label="创意策划方案" :name="1">
<ModuleCard :maxScore="20" :hasSaveButton="detail.check_status != '2'" @next="handleNext" @save="$emit('save')">
<ModuleCard :maxScore="20" @next="handleNext" @save="$emit('save')">
<ScoreCardSub
title="全媒体运营的主题(方向)描述(3分)"
:maxScore="3"
......@@ -93,7 +93,7 @@ const handleNext = () => {
</ModuleCard>
</el-tab-pane>
<el-tab-pane label="视听运营" :name="2">
<ModuleCard :maxScore="55" :hasSaveButton="detail.check_status != '2'" @next="handleNext" @save="$emit('save')">
<ModuleCard :maxScore="55" @next="handleNext" @save="$emit('save')">
<ScoreCardSub
title="综合稿件标题(5分)"
:maxScore="5"
......@@ -140,7 +140,7 @@ const handleNext = () => {
</ModuleCard>
</el-tab-pane>
<el-tab-pane label="流量运营" :name="3">
<ModuleCard :maxScore="20" :hasSaveButton="detail.check_status != '2'" @next="handleNext" @save="$emit('save')">
<ModuleCard :maxScore="20" @next="handleNext" @save="$emit('save')">
<ScoreCardSub
title="作品(或产品)发布的运营计划,上述全媒体综合文稿拟分发的媒体平台,并逐一说明理由(10分)"
:maxScore="10"
......
......@@ -33,7 +33,6 @@ const listOptions = computed(() => {
{ label: '暂未评分', value: '0' },
{ label: '评分中', value: '1' },
{ label: '已评分', value: '2' },
{ label: 'AI评分完成', value: '3' },
],
},
],
......@@ -115,7 +114,7 @@ const handleAIScore = async () => {
updateScore({
id: item.id,
check_status: 3,
check_status: 2,
total_score: totalAverageScore,
score_details: JSON.stringify(scores),
}).then(() => {
......@@ -136,12 +135,12 @@ const handlePublishScore = () => {
useIntervalFn(() => {
handleRefresh()
}, 5000)
}, 2000)
</script>
<template>
<AppCard title="成绩管理">
<AppList v-bind="listOptions" ref="appList">
<AppList v-bind="listOptions" :hasLoading="false" ref="appList">
<template #header-buttons>
<el-row justify="space-between">
<el-button type="primary" @click="handleExport">导出成绩</el-button>
......@@ -156,7 +155,7 @@ useIntervalFn(() => {
<LiveProductCategory v-model="listParams.live_commodity_type_id" @change="handleRefresh"></LiveProductCategory>
</template>
<template #table-x="{ row }">
<el-button text type="primary" v-if="row.check_status != '2'">
<el-button text type="primary" v-if="row.check_status != '1'">
<router-link :to="{ path: '/live/score/view', query: { ...$route.query, id: row.id } }">评分</router-link>
</el-button>
</template>
......
<script setup>
import { getScoreDetail, updateScore } from '../api'
import { ElMessageBox, ElMessage } from 'element-plus'
import { ElMessage } from 'element-plus'
import { useChat } from '@ezijing/ai-vue'
import { generatePrompt } from '../prompt'
import { generatePrompt as generatePrompt2 } from '../prompt2'
......@@ -92,23 +92,24 @@ const commitScore = (status = 1, isAI = false) => {
const totalAverageScore = validScores.reduce((acc, curr) => acc + (curr.total_score || 0), 0) / validScores.length
return updateScore({
id: route.query.id,
id,
check_status: status,
total_score: totalAverageScore,
score_details: JSON.stringify(scores),
})
}
const handlePublishScore = () => {
ElMessageBox.confirm('确定要发布成绩吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(async () => {
await commitScore(2)
await fetchDetail()
ElMessage.success('发布成绩成功')
})
const handlePublishScore = async () => {
await commitScore(2)
ElMessage.success('发布成绩成功')
}
onMounted(() => {
updateScore({ id, check_status: 1 })
})
onBeforeUnmount(() => {
updateScore({ id, check_status: 2 })
})
</script>
<template>
<AppCard title="成绩管理" v-if="detail">
......@@ -122,15 +123,12 @@ const handlePublishScore = () => {
<el-form-item>
<el-button
type="primary"
:disabled="detail.check_status == '2'"
:loading="isLoading"
@click="handleAIScore"
v-if="detail.competition_rule?.competition == 1"
>AI一键评分</el-button
>
<el-button type="primary" :disabled="detail.check_status == '2'" @click="handlePublishScore" v-if="false"
>发布成绩</el-button
>
<el-button type="primary" @click="handlePublishScore" v-if="false">发布成绩</el-button>
</el-form-item>
</el-form>
<div class="score-box">
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论