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

chore: update

上级 eb0b4cc7
......@@ -51,7 +51,7 @@ const handleCopy = () => {
</div>
</div>
</el-form-item>
<el-form-item label="主图视频">
<el-form-item label="主图视频" v-if="false">
<div class="form-tips">有机会在搜索、推荐等场景展示,提升转化</div>
<Upload v-model="form.video_url" accept="video/*" tips="主图视频" isVideo></Upload>
<div class="upload-tips" style="margin-left: 20px">
......
......@@ -11,10 +11,17 @@ const userStore = useUserStore()
const designVisible = ref(false)
const data = reactive({
list: [],
count: 0,
list: [
{ designId: 1, thumbUrl: 'https://webapp-pub.ezijing.com/upload/saas-dml-pro/design/1.JPG' },
{ designId: 2, thumbUrl: 'https://webapp-pub.ezijing.com/upload/saas-dml-pro/design/2.JPG' },
{ designId: 3, thumbUrl: 'https://webapp-pub.ezijing.com/upload/saas-dml-pro/design/3.JPG' },
{ designId: 4, thumbUrl: 'https://webapp-pub.ezijing.com/upload/saas-dml-pro/design/4.JPG' },
{ designId: 5, thumbUrl: 'https://webapp-pub.ezijing.com/upload/saas-dml-pro/design/5.JPG' },
{ designId: 6, thumbUrl: 'https://webapp-pub.ezijing.com/upload/saas-dml-pro/design/6.JPG' },
],
})
async function fetchList() {
return false
const res = await getChuanKitDesignList({
user_flag: userStore.user.id,
kind_id: 29,
......@@ -46,7 +53,7 @@ async function handleSubmit() {
<template>
<el-dialog title="图库选择" :close-on-click-modal="false" @closed="$emit('update:modelValue', false)" width="860px">
<div class="image-design">
<el-button type="primary" @click="designVisible = true">打开编辑器</el-button>
<el-button type="primary" @click="designVisible = true" v-if="false">打开编辑器</el-button>
<ul>
<li
v-for="item in data.list"
......@@ -73,7 +80,6 @@ async function handleSubmit() {
margin: 30px auto;
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 30px;
}
li {
......@@ -88,6 +94,8 @@ async function handleSubmit() {
}
img {
width: 100%;
height: 100%;
object-fit: cover;
}
}
</style>
import httpRequest from '@/utils/axios'
// 获取直播成绩详情
export function getScoreDetail(params?: { id: string }) {
// return {
// code: 0,
// message: 'OK',
// data: {
// detail: {
// id: '7391764086012248064',
// experiment_id: '7028276368903241728',
// student_id: '6954620265695281152',
// sso_id: '6911878751345180672',
// status: '1',
// commit_time: '2025-11-05 17:28:21',
// total_score: null,
// score_details: null,
// checker_id: '6911878751345180672',
// check_time: null,
// comment: null,
// created_time: '2025-11-05 17:11:30',
// updated_time: '2025-11-05 17:28:22',
// student_name: '李四',
// specialty_id: '6961130172380610560',
// specialty_name: '2023大赛专业',
// class_id: '6963792833715109888',
// class_name: '陈双喜测试3',
// status_name: '已提交',
// live_data: {
// commodity_types: [
// {
// id: '7391776484496506880',
// experiment_id: '7028276368903241728',
// name: 'abc',
// pid: '0',
// level: '0',
// status: '1',
// created_operator: '6911878751345180672',
// updated_operator: '6911878751345180672',
// created_time: '2025-11-05 18:00:46',
// updated_time: '2025-11-05 18:00:46',
// children: [
// {
// id: '7391776536967249920',
// experiment_id: '7028276368903241728',
// name: 'qwe',
// pid: '7391776484496506880',
// level: '1',
// status: '1',
// created_operator: '6911878751345180672',
// updated_operator: '6911878751345180672',
// created_time: '2025-11-05 18:00:58',
// updated_time: '2025-11-05 18:00:58',
// children: [],
// },
// ],
// },
// ],
// commodity_attrs: [
// {
// id: '7391778517379186688',
// experiment_id: '7028276368903241728',
// name: '123',
// live_commodity_type_id: '7260532289816231936',
// is_importance: '0',
// is_essential: '0',
// status: '1',
// created_operator: '6911878751345180672',
// updated_operator: '6911878751345180672',
// created_time: '2025-11-05 18:08:51',
// updated_time: '2025-11-05 18:08:51',
// live_commodity_type_full_name: '男装',
// },
// ],
// commodities: [
// {
// id: '7391773963229069312',
// experiment_id: '7028276368903241728',
// live_commodity_type_id: '7260533071559000064',
// title: '商品标题',
// shopping_guide_short_title: '导购短标题',
// live_commodity_attrs:
// '{"importance_attrs": [{"id": "7260540571196850176", "value": "L", "attr_name": "大小"}], "unimportance_attrs": [{"id": "7260539754020601856", "value": "黑色", "attr_name": "颜色"}, {"id": "7260540486702596096", "value": "123", "attr_name": "功能"}]}',
// picture_addreses:
// '[{"url": "https://webapp-pub.ezijing.com/upload/saas-lab/8e04b573ec12b658b2584f56d3272c37.png", "name": "image-14_d89dc93.png", "size": 1241703, "type": "image/png", "upload_time": "2025-11-05 17:50:13"}, {"url": "https://webapp-pub.ezijing.com/upload/saas-lab/e2ac8faee61cea295917892170209916.jpg", "name": "p2371864015.jpg", "size": 463116, "type": "image/jpeg", "upload_time": "2025-11-06 13:17:42"}, {"url": "https://webapp-pub.ezijing.com/upload/saas-lab/5d9354ef327f9565f49f13649dc4d6d8.jpg", "name": "p2517001827.jpg", "size": 112763, "type": "image/jpeg", "upload_time": "2025-11-06 13:17:46"}, {"url": "https://webapp-pub.ezijing.com/upload/saas-lab/9618c22ecdc19c135f13554f108685a6.jpg", "name": "p2517001827.jpg", "size": 112763, "type": "image/jpeg", "upload_time": "2025-11-06 13:18:03"}, {"url": "https://webapp-pub.ezijing.com/upload/saas-lab/c52d0fd3ff52db3e03950455345db338.jpeg", "name": "Bliss.jpeg", "size": 1028346, "type": "image/jpeg", "upload_time": "2025-11-06 13:18:14"}]',
// picture_34_addreses:
// '[{"url": "https://webapp-pub.ezijing.com/upload/saas-lab/8e04b573ec12b658b2584f56d3272c37.png", "name": "image-14_d89dc93.png", "size": 1241703, "type": "image/png", "upload_time": "2025-11-05 17:50:13"}, {"url": "https://webapp-pub.ezijing.com/upload/saas-lab/e2ac8faee61cea295917892170209916.jpg", "name": "p2371864015.jpg", "size": 463116, "type": "image/jpeg", "upload_time": "2025-11-06 13:17:42"}, {"url": "https://webapp-pub.ezijing.com/upload/saas-lab/5d9354ef327f9565f49f13649dc4d6d8.jpg", "name": "p2517001827.jpg", "size": 112763, "type": "image/jpeg", "upload_time": "2025-11-06 13:17:46"}, {"url": "https://webapp-pub.ezijing.com/upload/saas-lab/9618c22ecdc19c135f13554f108685a6.jpg", "name": "p2517001827.jpg", "size": 112763, "type": "image/jpeg", "upload_time": "2025-11-06 13:18:03"}, {"url": "https://webapp-pub.ezijing.com/upload/saas-lab/c52d0fd3ff52db3e03950455345db338.jpeg", "name": "Bliss.jpeg", "size": 1028346, "type": "image/jpeg", "upload_time": "2025-11-06 13:18:14"}]',
// video_url: 'https://webapp-pub.ezijing.com/upload/saas-lab/f267dffd02eec005f922699ec69bbd47.mp4',
// info: '{"sku": [{"price": "100", "specs": ["黑色", "L"], "stock": 200}, {"price": "100", "specs": ["黑色", "M"], "stock": 200}, {"price": "100", "specs": ["白色", "L"], "stock": 200}, {"price": "100", "specs": ["白色", "M"], "stock": 200}], "specs": [{"name": "颜色", "values": ["黑色", "白色"]}, {"name": "大小", "values": ["L", "M"]}], "delivery_mode": "1", "delivery_time": "1", "reference_price": "100", "order_stock_count": "1", "shipping_template": "1", "after_sales_policy": "3"}',
// created_operator: '6911878751345180672',
// updated_operator: '6602032005293015040',
// created_time: '2025-11-05 17:50:45',
// updated_time: '2025-11-06 13:18:55',
// live_commodity_type_full_name: '男装/短裤',
// },
// ],
// speeches: [
// {
// id: '7391774388816707584',
// experiment_id: '7028276368903241728',
// name: '123',
// live_commodity_id: '7391773963229069312',
// selling_point:
// '商品标题:智能恒温电热水壶 \n\n卖点:精准控温;一键烧水;防干烧保护;304不锈钢内胆;大容量设计;静音沸腾',
// marketing_campaign:
// '商品标题:智能恒温保温杯——喝出健康好温度 \n\n精准控温,暖你每一刻; \n职场精英专属礼遇; \n24小时锁温挑战赛; \n买一赠一限时抢; \n直播间秒杀半价起',
// duration: '15',
// content:
// ' <p>\n <span\n style="\n padding: 0 5px;\n display: inline-block;\n background-color: rgba(25, 102, 255, 0.08);\n color: rgb(25, 102, 255);\n "\n >1.开场欢迎:</span>\n </p>\n <p>\n "大家好,欢迎来到我的直播间!我是[你的名字],今天我们将一起分享/探讨/体验[直播主题]。如果你喜欢我们今天的内容,别忘了点赞和关注哦!"\n </p>\n <p>\n <span\n style="\n padding: 0 5px;\n display: inline-block;\n background-color: rgba(25, 102, 255, 0.08);\n color: rgb(25, 102, 255);\n "\n >2.互动提问:</span>\n </p>\n <p>\n "我看到评论区有很多小伙伴在问我关于[话题]的问题,我现在就来一一为大家解答。如果你也有问题,可以在评论区留言,我会尽快回复大家!"\n </p>\n <p>\n <span\n style="\n padding: 0 5px;\n display: inline-block;\n background-color: rgba(25, 102, 255, 0.08);\n color: rgb(25, 102, 255);\n "\n >3.产品介绍:</span>\n </p>\n <p>\n "接下来我要给大家介绍的这款产品,它的特点是[特点],使用起来非常[方便/舒适/有效]。我自己也是它的忠实粉丝,今天就来给大家详细展示一下它的使用方法和效果。"\n </p>\n <p>\n <span\n style="\n padding: 0 5px;\n display: inline-block;\n background-color: rgba(25, 102, 255, 0.08);\n color: rgb(25, 102, 255);\n "\n >4.引导互动:</span>\n </p>\n <p>\n "我知道大家都很聪明,那么我来出一个小问题考考大家,第一个答对的小伙伴将获得我们的小礼物一份,准备好了吗?问题是……"\n </p>',
// created_operator: '6911878751345180672',
// updated_operator: '6911878751345180672',
// created_time: '2025-11-05 17:52:26',
// updated_time: '2025-11-05 17:52:26',
// live_commodity_title: '商品标题',
// live_commodity_type_full_name: '男装/短裤',
// },
// ],
// practices: [
// {
// id: '7391774560946749440',
// experiment_id: '7028276368903241728',
// live_commodity_id: '7391773963229069312',
// live_speech_id: '7391774388816707584',
// duration: '2',
// upload_way: '1',
// created_operator: '6911878751345180672',
// updated_operator: '6911878751345180672',
// created_time: '2025-11-05 17:53:07',
// updated_time: '2025-11-05 17:53:07',
// live_commodity_title: '商品标题',
// live_commodity_type_full_name: '男装/短裤',
// },
// ],
// practice_records: [
// {
// id: '7391774604890472448',
// live_practice_id: '7391774560946749440',
// live_practice_info:
// '{"id": "7391774560946749440", "duration": "2", "upload_way": "1", "live_speech": {"id": "7391774388816707584", "name": "123", "content": " <p>\\n <span\\n style=\\"\\n padding: 0 5px;\\n display: inline-block;\\n background-color: rgba(25, 102, 255, 0.08);\\n color: rgb(25, 102, 255);\\n \\"\\n >1.开场欢迎:</span>\\n </p>\\n <p>\\n \\"大家好,欢迎来到我的直播间!我是[你的名字],今天我们将一起分享/探讨/体验[直播主题]。如果你喜欢我们今天的内容,别忘了点赞和关注哦!\\"\\n </p>\\n <p>\\n <span\\n style=\\"\\n padding: 0 5px;\\n display: inline-block;\\n background-color: rgba(25, 102, 255, 0.08);\\n color: rgb(25, 102, 255);\\n \\"\\n >2.互动提问:</span>\\n </p>\\n <p>\\n \\"我看到评论区有很多小伙伴在问我关于[话题]的问题,我现在就来一一为大家解答。如果你也有问题,可以在评论区留言,我会尽快回复大家!\\"\\n </p>\\n <p>\\n <span\\n style=\\"\\n padding: 0 5px;\\n display: inline-block;\\n background-color: rgba(25, 102, 255, 0.08);\\n color: rgb(25, 102, 255);\\n \\"\\n >3.产品介绍:</span>\\n </p>\\n <p>\\n \\"接下来我要给大家介绍的这款产品,它的特点是[特点],使用起来非常[方便/舒适/有效]。我自己也是它的忠实粉丝,今天就来给大家详细展示一下它的使用方法和效果。\\"\\n </p>\\n <p>\\n <span\\n style=\\"\\n padding: 0 5px;\\n display: inline-block;\\n background-color: rgba(25, 102, 255, 0.08);\\n color: rgb(25, 102, 255);\\n \\"\\n >4.引导互动:</span>\\n </p>\\n <p>\\n \\"我知道大家都很聪明,那么我来出一个小问题考考大家,第一个答对的小伙伴将获得我们的小礼物一份,准备好了吗?问题是……\\"\\n </p>", "duration": "15", "created_time": "2025-11-05 17:52:26", "updated_time": "2025-11-05 17:52:26", "experiment_id": "7028276368903241728", "selling_point": "商品标题:智能恒温电热水壶 \\n\\n卖点:精准控温;一键烧水;防干烧保护;304不锈钢内胆;大容量设计;静音沸腾", "created_operator": {"id": "6911878751345180672", "avatar": "", "nickname": "李四", "username": "ZJ_6911878751345180672", "real_name": "李四"}, "updated_operator": {"id": "6911878751345180672", "avatar": "", "nickname": "李四", "username": "ZJ_6911878751345180672", "real_name": "李四"}, "live_commodity_id": "7391773963229069312", "marketing_campaign": "商品标题:智能恒温保温杯——喝出健康好温度 \\n\\n精准控温,暖你每一刻; \\n职场精英专属礼遇; \\n24小时锁温挑战赛; \\n买一赠一限时抢; \\n直播间秒杀半价起", "live_commodity_title": "商品标题", "live_commodity_type_id": "7260533071559000064", "live_commodity_type_name": "短裤", "live_commodity_type_full_name": "男装 > 短裤"}, "created_time": "2025-11-05 17:53:07", "current_user": {"id": "6911878751345180672", "avatar": "", "nickname": "李四", "username": "ZJ_6911878751345180672", "real_name": "李四"}, "updated_time": "2025-11-05 17:53:07", "experiment_id": "7028276368903241728", "live_commodity": {"id": "7391773963229069312", "info": "{\\"sku\\": [{\\"price\\": \\"100\\", \\"specs\\": [\\"黑色\\"], \\"stock\\": 290}], \\"specs\\": [{\\"name\\": \\"颜色\\", \\"values\\": [\\"黑色\\"]}], \\"delivery_mode\\": \\"1\\", \\"delivery_time\\": \\"1\\", \\"reference_price\\": \\"100\\", \\"order_stock_count\\": \\"1\\", \\"shipping_template\\": \\"1\\", \\"after_sales_policy\\": \\"3\\"}", "title": "商品标题", "video_url": "", "created_time": "2025-11-05 17:50:45", "updated_time": "2025-11-05 17:50:45", "experiment_id": "7028276368903241728", "created_operator": {"id": "6911878751345180672", "avatar": "", "nickname": "李四", "username": "ZJ_6911878751345180672", "real_name": "李四"}, "picture_addreses": "[{\\"url\\": \\"https://webapp-pub.ezijing.com/upload/saas-lab/8e04b573ec12b658b2584f56d3272c37.png\\", \\"name\\": \\"image-14_d89dc93.png\\", \\"size\\": 1241703, \\"type\\": \\"image/png\\", \\"upload_time\\": \\"2025-11-05 17:50:13\\"}]", "updated_operator": {"id": "6911878751345180672", "avatar": "", "nickname": "李四", "username": "ZJ_6911878751345180672", "real_name": "李四"}, "picture_34_addreses": "[{\\"url\\": \\"https://webapp-pub.ezijing.com/upload/saas-lab/8e04b573ec12b658b2584f56d3272c37.png\\", \\"name\\": \\"image-14_d89dc93.png\\", \\"size\\": 1241703, \\"type\\": \\"image/png\\", \\"upload_time\\": \\"2025-11-05 17:50:13\\"}]", "live_commodity_attrs": "{\\"importance_attrs\\": [{\\"id\\": \\"7260540571196850176\\", \\"value\\": \\"L\\", \\"attr_name\\": \\"大小\\"}], \\"unimportance_attrs\\": [{\\"id\\": \\"7260539754020601856\\", \\"value\\": \\"黑色\\", \\"attr_name\\": \\"颜色\\"}]}", "live_commodity_type_id": "7260533071559000064", "live_commodity_type_name": "短裤", "shopping_guide_short_title": "导购短标题", "live_commodity_type_full_name": "男装 > 短裤"}, "live_speech_id": "7391774388816707584", "practice_count": 0, "created_operator": {"id": "6911878751345180672", "avatar": "", "nickname": "李四", "username": "ZJ_6911878751345180672", "real_name": "李四"}, "updated_operator": {"id": "6911878751345180672", "avatar": "", "nickname": "李四", "username": "ZJ_6911878751345180672", "real_name": "李四"}, "live_commodity_id": "7391773963229069312", "live_commodity_type_id": "7260533071559000064", "live_commodity_type_name": "短裤", "live_commodity_type_full_name": "男装 > 短裤"}',
// live_speech_info:
// '{"id": "7391774388816707584", "name": "123", "content": " <p>\\n <span\\n style=\\"\\n padding: 0 5px;\\n display: inline-block;\\n background-color: rgba(25, 102, 255, 0.08);\\n color: rgb(25, 102, 255);\\n \\"\\n >1.开场欢迎:</span>\\n </p>\\n <p>\\n \\"大家好,欢迎来到我的直播间!我是[你的名字],今天我们将一起分享/探讨/体验[直播主题]。如果你喜欢我们今天的内容,别忘了点赞和关注哦!\\"\\n </p>\\n <p>\\n <span\\n style=\\"\\n padding: 0 5px;\\n display: inline-block;\\n background-color: rgba(25, 102, 255, 0.08);\\n color: rgb(25, 102, 255);\\n \\"\\n >2.互动提问:</span>\\n </p>\\n <p>\\n \\"我看到评论区有很多小伙伴在问我关于[话题]的问题,我现在就来一一为大家解答。如果你也有问题,可以在评论区留言,我会尽快回复大家!\\"\\n </p>\\n <p>\\n <span\\n style=\\"\\n padding: 0 5px;\\n display: inline-block;\\n background-color: rgba(25, 102, 255, 0.08);\\n color: rgb(25, 102, 255);\\n \\"\\n >3.产品介绍:</span>\\n </p>\\n <p>\\n \\"接下来我要给大家介绍的这款产品,它的特点是[特点],使用起来非常[方便/舒适/有效]。我自己也是它的忠实粉丝,今天就来给大家详细展示一下它的使用方法和效果。\\"\\n </p>\\n <p>\\n <span\\n style=\\"\\n padding: 0 5px;\\n display: inline-block;\\n background-color: rgba(25, 102, 255, 0.08);\\n color: rgb(25, 102, 255);\\n \\"\\n >4.引导互动:</span>\\n </p>\\n <p>\\n \\"我知道大家都很聪明,那么我来出一个小问题考考大家,第一个答对的小伙伴将获得我们的小礼物一份,准备好了吗?问题是……\\"\\n </p>", "duration": "15", "created_time": "2025-11-05 17:52:26", "updated_time": "2025-11-05 17:52:26", "experiment_id": "7028276368903241728", "selling_point": "商品标题:智能恒温电热水壶 \\n\\n卖点:精准控温;一键烧水;防干烧保护;304不锈钢内胆;大容量设计;静音沸腾", "created_operator": {"id": "6911878751345180672", "avatar": "", "nickname": "李四", "username": "ZJ_6911878751345180672", "real_name": "李四"}, "updated_operator": {"id": "6911878751345180672", "avatar": "", "nickname": "李四", "username": "ZJ_6911878751345180672", "real_name": "李四"}, "live_commodity_id": "7391773963229069312", "marketing_campaign": "商品标题:智能恒温保温杯——喝出健康好温度 \\n\\n精准控温,暖你每一刻; \\n职场精英专属礼遇; \\n24小时锁温挑战赛; \\n买一赠一限时抢; \\n直播间秒杀半价起", "live_commodity_title": "商品标题", "live_commodity_type_id": "7260533071559000064", "live_commodity_type_name": "短裤", "live_commodity_type_full_name": "男装 > 短裤"}',
// live_video_addres:
// 'https://saas-lab-api.ezijing.com/files/c7092077591b3df475519e01699b6814_RTC6911878751345180672.mp4?file_path=/var/log/files&file_name=c7092077591b3df475519e01699b6814_RTC6911878751345180672.mp4',
// live_video_size: '2014426',
// live_duration: '5.828',
// live_start_time: '2025-11-05 17:53:12',
// live_end_time: '2025-11-05 17:53:18',
// live_info:
// '{"messages":[{"id":"YbtQN7yD5oe3-wA0FjhhC","currentTime":0,"timestamp":1762336392207,"type":"join","content":"来了","user":{"id":"HFgs","name":"用户_HFgs","avatar":"/live/avatar/7.jpeg"}},{"id":"Mln7LgSBbvEx_XtVXy15Q","currentTime":0,"timestamp":1762336392207,"type":"join","content":"来了","user":{"id":"mlHf","name":"用户_mlHf","avatar":"/live/avatar/5.jpeg"}},{"id":"KQqGQrzswDS7Kqslv2ehH","currentTime":0,"timestamp":1762336392207,"type":"join","content":"来了","user":{"id":"cAgU","name":"用户_cAgU","avatar":"/live/avatar/5.jpeg"}},{"id":"_xwOtqDqHdE9qsjrtwDkd","currentTime":0,"timestamp":1762336392207,"type":"join","content":"来了","user":{"id":"v-97","name":"用户_v-97","avatar":"/live/avatar/2.png"}},{"id":"p61DenOIpJssCZsAd46ul","currentTime":0,"timestamp":1762336392208,"type":"join","content":"来了","user":{"id":"EDAF","name":"用户_EDAF","avatar":"/live/avatar/10.jpeg"}},{"id":"0kSeTddyKldULi33wesJi","currentTime":0,"timestamp":1762336392208,"type":"join","content":"来了","user":{"id":"sfQv","name":"用户_sfQv","avatar":"/live/avatar/8.jpeg"}},{"id":"heTJzjNaC__5b4apX9GeL","currentTime":0,"timestamp":1762336392208,"type":"join","content":"来了","user":{"id":"5_NK","name":"用户_5_NK","avatar":"/live/avatar/12.jpeg"}},{"id":"9gip64bh4DlxPzgmi8Xjm","currentTime":0,"timestamp":1762336392208,"type":"join","content":"来了","user":{"id":"rPS_","name":"用户_rPS_","avatar":"/live/avatar/10.jpeg"}},{"id":"xCBphLGgIBEVvv10Ga1Mz","currentTime":0,"timestamp":1762336392208,"type":"join","content":"来了","user":{"id":"EcET","name":"用户_EcET","avatar":"/live/avatar/3.png"}},{"id":"WCNWhvPXqlUvYqmm9SAd9","currentTime":0,"timestamp":1762336392208,"type":"join","content":"来了","user":{"id":"1cN7","name":"用户_1cN7","avatar":"/live/avatar/2.png"}},{"id":"6cYGqIcpfP4rTmSHbEczB","currentTime":0,"timestamp":1762336392208,"type":"join","content":"来了","user":{"id":"KVMb","name":"用户_KVMb","avatar":"/live/avatar/6.jpeg"}},{"id":"BBZJ47KFnZD7tBpM3CTvy","currentTime":0,"timestamp":1762336392208,"type":"join","content":"来了","user":{"id":"UVZb","name":"用户_UVZb","avatar":"/live/avatar/8.jpeg"}},{"id":"AGS5d6hT_5-h48FREVSbR","currentTime":0,"timestamp":1762336392209,"type":"join","content":"来了","user":{"id":"ZjT3","name":"用户_ZjT3","avatar":"/live/avatar/5.jpeg"}},{"id":"HeVYB-kGXJtRXkgcDCn9t","currentTime":0,"timestamp":1762336392209,"type":"join","content":"来了","user":{"id":"Z-8k","name":"用户_Z-8k","avatar":"/live/avatar/2.png"}},{"id":"RQamvgYXWB-EoimcUtSQ9","currentTime":0,"timestamp":1762336392209,"type":"join","content":"来了","user":{"id":"odAe","name":"用户_odAe","avatar":"/live/avatar/5.jpeg"}},{"id":"_7sa7I_Z1_B7U3i6E9vJu","currentTime":0,"timestamp":1762336392209,"type":"join","content":"来了","user":{"id":"xUa1","name":"用户_xUa1","avatar":"/live/avatar/9.jpeg"}},{"id":"5RWpS81g_CsgAjT5sRMRq","currentTime":0,"timestamp":1762336392209,"type":"join","content":"来了","user":{"id":"ZuIy","name":"用户_ZuIy","avatar":"/live/avatar/4.jpeg"}},{"id":"vJI3Ufqe2Fp5ADPTlyc96","currentTime":0,"timestamp":1762336392209,"type":"join","content":"来了","user":{"id":"3y0l","name":"用户_3y0l","avatar":"/live/avatar/5.jpeg"}},{"id":"8lfgCLBIFLRAtXyMqrMsS","currentTime":0,"timestamp":1762336392209,"type":"join","content":"来了","user":{"id":"VEbm","name":"用户_VEbm","avatar":"/live/avatar/10.jpeg"}},{"id":"fUyY7IwDutHxl7UNz0PHa","currentTime":0,"timestamp":1762336392209,"type":"join","content":"来了","user":{"id":"ZT2i","name":"用户_ZT2i","avatar":"/live/avatar/6.jpeg"}},{"id":"e2kiuv-wrT_bc0bBlpw2K","currentTime":0,"timestamp":1762336394210,"type":"join","content":"来了","user":{"id":"L0r5","name":"用户_L0r5","avatar":"/live/avatar/11.jpeg"}},{"id":"hcQbpOM_SEGCAF32_3bzU","currentTime":0,"timestamp":1762336394210,"type":"leave","content":"离开了","user":{"id":"5Wt_","name":"用户_5Wt_","avatar":"/live/avatar/7.jpeg"}},{"id":"wCKi4WczH022nHcRqBgfJ","currentTime":0,"timestamp":1762336394210,"type":"gift","content":"送了一个鲜花","user":{"id":"sfQv","name":"用户_sfQv","avatar":"/live/avatar/8.jpeg"}},{"id":"HnuZoPSlweidAWrDP0_ZX","currentTime":0,"timestamp":1762336394210,"type":"like","content":"点赞了","user":{"id":"ZT2i","name":"用户_ZT2i","avatar":"/live/avatar/6.jpeg"}},{"id":"jSwxXquwtho5QqscuEs9W","currentTime":0,"timestamp":1762336395210,"type":"join","content":"来了","user":{"id":"_VsY","name":"用户__VsY","avatar":"/live/avatar/11.jpeg"}},{"id":"huvyorltBb41DbMdTLoaj","currentTime":0,"timestamp":1762336395210,"type":"leave","content":"离开了","user":{"id":"GlCP","name":"用户_GlCP","avatar":"/live/avatar/13.jpeg"}},{"id":"CL244JXoO5q23h3CsnELz","currentTime":0,"timestamp":1762336395210,"type":"gift","content":"送了一个棒棒糖","user":{"id":"5_NK","name":"用户_5_NK","avatar":"/live/avatar/12.jpeg"}},{"id":"t0CHJdsdEGHTfh5LN-fNg","currentTime":0,"timestamp":1762336395210,"type":"like","content":"点赞了","user":{"id":"sfQv","name":"用户_sfQv","avatar":"/live/avatar/8.jpeg"}},{"id":"BsNRvhbsALKBT459RjMQf","currentTime":0,"timestamp":1762336396210,"type":"join","content":"来了","user":{"id":"i1Nm","name":"用户_i1Nm","avatar":"/live/avatar/11.jpeg"}},{"id":"utBUjGTZNomaoILuU5uru","currentTime":0,"timestamp":1762336396210,"type":"leave","content":"离开了","user":{"id":"9O5E","name":"用户_9O5E","avatar":"/live/avatar/10.jpeg"}},{"id":"t_9tq1iUWK1gK1a96x9-p","currentTime":0,"timestamp":1762336396210,"type":"gift","content":"送了一个兔耳朵","user":{"id":"5_NK","name":"用户_5_NK","avatar":"/live/avatar/12.jpeg"}},{"id":"7o0q2qpigzetPAM5WdVRl","currentTime":0,"timestamp":1762336396210,"type":"like","content":"点赞了","user":{"id":"5_NK","name":"用户_5_NK","avatar":"/live/avatar/12.jpeg"}},{"id":"id2icmHNPMdhBYBv16-he","currentTime":0,"timestamp":1762336397210,"type":"join","content":"来了","user":{"id":"NAmT","name":"用户_NAmT","avatar":"/live/avatar/8.jpeg"}},{"id":"TTFk2PBchwGt19Ed8FY0R","currentTime":0,"timestamp":1762336397210,"type":"leave","content":"离开了","user":{"id":"FbCt","name":"用户_FbCt","avatar":"/live/avatar/1.png"}},{"id":"Cb_7BMjHiqsO99fd12MDO","currentTime":0,"timestamp":1762336397210,"type":"gift","content":"送了一个鲜花","user":{"id":"cAgU","name":"用户_cAgU","avatar":"/live/avatar/5.jpeg"}},{"id":"AsKvB8LYadrgPp1uCbYC1","currentTime":0,"timestamp":1762336397210,"type":"like","content":"点赞了","user":{"id":"odAe","name":"用户_odAe","avatar":"/live/avatar/5.jpeg"}}],"stats":{"totalViewers":24,"peakViewers":24,"totalGifts":4,"totalLikes":4,"totalGiftViewers":4}}',
// created_operator: '6911878751345180672',
// updated_operator: '6911878751345180672',
// created_time: '2025-11-05 17:53:18',
// updated_time: '2025-11-05 17:54:02',
// ai_status: '2',
// ai_level: '',
// subtitle:
// '{"TaskId":"4291bff52d34400fb5c2eb896f2247b1","RequestId":"81457C30-9DD8-56D5-BA11-3343E4431ED2","StatusText":"SUCCESS_WITH_NO_VALID_FRAGMENT","BizDuration":0,"SolveTime":0,"RequestTime":0,"StatusCode":21050003}',
// task_id: '',
// illegal_word: '',
// order_count: '0',
// improvement_plan: null,
// },
// ],
// reports: [],
// orders: [],
// },
// },
// },
// }
return httpRequest.get('/api/lab/v1/experiment/live-student-record/detail', { params })
}
// 获取直播成绩列表
export function getScoreList(params?: { name?: string }) {
return httpRequest.get('/api/lab/v1/experiment/live-student-record/list', { params })
}
// 导出成绩
export function exportScore(params?: { name?: string }) {
return httpRequest.get('/api/lab/v1/experiment/live-student-record/export', { params })
}
// 更新成绩
export function updateScore(data: { id: string; score_status: number; total_score: number; score_details: string }) {
return httpRequest.post('/api/lab/v1/experiment/live-student-record/score', data)
}
export function studentSubmit() {
return httpRequest.post('/api/lab/v1/experiment/live-student-record/submit')
}
import httpRequest from '@/utils/axios'
// 获取直播成绩详情
export function getScoreDetail(params?: { id: string }) {
return httpRequest.get('/api/lab/v1/experiment/live-student-record/detail', { params })
}
// 获取直播成绩列表
export function getScoreList(params?: { name?: string }) {
return httpRequest.get('/api/lab/v1/experiment/live-student-record/list', { params })
}
// 导出成绩
export function exportScore(params?: { name?: string }) {
return httpRequest.get('/api/lab/v1/experiment/live-student-record/export', { params })
}
// 更新成绩
export function updateScore(data: { id: string; check_status: number; total_score: number; score_details: string }) {
return httpRequest.post('/api/lab/v1/experiment/live-student-record/score', data)
}
// 一键发布成绩
export function publishAll() {
return httpRequest.post('/api/lab/v1/experiment/live-student-record/publish-all')
}
......@@ -55,7 +55,7 @@ const firstLivePractice = computed(() => {
})
const firstLivePracticeRecord = computed(() => {
return props.detail.live_data.practice_records.find((item) => item.live_practice_id === firstLivePractice.value?.id)
return firstLivePractice.value?.records[0]
})
const secondLivePractice = computed(() => {
......@@ -63,7 +63,7 @@ const secondLivePractice = computed(() => {
})
const secondLivePracticeRecord = computed(() => {
return props.detail.live_data.practice_records.find((item) => item.live_practice_id === secondLivePractice.value?.id)
return secondLivePractice.value?.records[0]
})
// 商品类别
......@@ -205,7 +205,7 @@ const handleNext = () => {
<el-tab-pane label="商品品类管理" :name="1">
<ScoreCard
:maxScore="5"
:hasSaveButton="detail.status != '2'"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.commodity_type.score"
v-model:comment="scoreDetails.commodity_type.comment"
@save="$emit('save')"
......@@ -220,7 +220,7 @@ const handleNext = () => {
<el-tab-pane label="商品属性管理" :name="2" lazy>
<ScoreCard
:maxScore="5"
:hasSaveButton="detail.status != '2'"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.commodity_attr.score"
v-model:comment="scoreDetails.commodity_attr.comment"
@save="$emit('save')"
......@@ -231,7 +231,7 @@ const handleNext = () => {
<el-tab-pane label="商品管理" :name="3" lazy>
<ScoreCard
:maxScore="15"
:hasSaveButton="detail.status != '2'"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.commodity.score"
v-model:comment="scoreDetails.commodity.comment"
@save="$emit('save')"
......@@ -288,7 +288,7 @@ const handleNext = () => {
<el-tab-pane label="直播话术管理" :name="4" lazy>
<ScoreCard
:maxScore="15"
:hasSaveButton="detail.status != '2'"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.speech.score"
v-model:comment="scoreDetails.speech.comment"
@save="$emit('save')"
......@@ -315,7 +315,7 @@ const handleNext = () => {
<el-tab-pane label="首次直播演练" :name="5" lazy>
<ScoreCard
:maxScore="20"
:hasSaveButton="detail.status != '2'"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.practice_record1.score"
v-model:comment="scoreDetails.practice_record1.comment"
@save="$emit('save')"
......@@ -330,7 +330,7 @@ const handleNext = () => {
<el-tab-pane label="直播复盘分析" :name="6" lazy>
<ScoreCard
:maxScore="10"
:hasSaveButton="detail.status != '2'"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.improvement_plan.score"
v-model:comment="scoreDetails.improvement_plan.comment"
@save="$emit('save')"
......@@ -346,7 +346,7 @@ const handleNext = () => {
<el-tab-pane label="二次直播演练" :name="7" lazy>
<ScoreCard
:maxScore="15"
:hasSaveButton="detail.status != '2'"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.practice_record2.score"
v-model:comment="scoreDetails.practice_record2.comment"
@save="$emit('save')"
......@@ -361,7 +361,7 @@ const handleNext = () => {
<el-tab-pane label="直播总结汇报" :name="8" lazy>
<ScoreCard
:maxScore="15"
:hasSaveButton="detail.status != '2'"
:hasSaveButton="detail.check_status != '2'"
:hasNextButton="false"
v-model:score="scoreDetails.report.score"
v-model:comment="scoreDetails.report.comment"
......
......@@ -56,7 +56,7 @@ const firstLivePractice = computed(() => {
})
const firstLivePracticeRecord = computed(() => {
return props.detail.live_data.practice_records.find((item) => item.live_practice_id === firstLivePractice.value?.id)
return firstLivePractice.value?.records[0]
})
const secondLivePractice = computed(() => {
......@@ -64,7 +64,7 @@ const secondLivePractice = computed(() => {
})
const secondLivePracticeRecord = computed(() => {
return props.detail.live_data.practice_records.find((item) => item.live_practice_id === secondLivePractice.value?.id)
return secondLivePractice.value?.records[0]
})
// 商品类别
......@@ -206,7 +206,7 @@ const handleNext = () => {
<el-tab-pane label="商品品类管理" :name="1">
<ScoreCard
:maxScore="3"
:hasSaveButton="detail.status != '2'"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.commodity_type.score"
v-model:comment="scoreDetails.commodity_type.comment"
@save="$emit('save')"
......@@ -221,7 +221,7 @@ const handleNext = () => {
<el-tab-pane label="商品属性管理" :name="2" lazy>
<ScoreCard
:maxScore="2"
:hasSaveButton="detail.status != '2'"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.commodity_attr.score"
v-model:comment="scoreDetails.commodity_attr.comment"
@save="$emit('save')"
......@@ -232,7 +232,7 @@ const handleNext = () => {
<el-tab-pane label="商品管理" :name="3" lazy>
<ScoreCard
:maxScore="10"
:hasSaveButton="detail.status != '2'"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.commodity.score"
v-model:comment="scoreDetails.commodity.comment"
@save="$emit('save')"
......@@ -289,7 +289,7 @@ const handleNext = () => {
<el-tab-pane label="直播话术管理" :name="4" lazy>
<ScoreCard
:maxScore="15"
:hasSaveButton="detail.status != '2'"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.speech.score"
v-model:comment="scoreDetails.speech.comment"
@save="$emit('save')"
......@@ -316,7 +316,7 @@ const handleNext = () => {
<el-tab-pane label="首次直播演练" :name="5" lazy>
<ScoreCard
:maxScore="15"
:hasSaveButton="detail.status != '2'"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.practice_record1.score"
v-model:comment="scoreDetails.practice_record1.comment"
@save="$emit('save')"
......@@ -331,7 +331,7 @@ const handleNext = () => {
<el-tab-pane label="直播复盘分析" :name="6" lazy>
<ScoreCard
:maxScore="10"
:hasSaveButton="detail.status != '2'"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.improvement_plan.score"
v-model:comment="scoreDetails.improvement_plan.comment"
@save="$emit('save')"
......@@ -347,7 +347,7 @@ const handleNext = () => {
<el-tab-pane label="二次直播演练" :name="7" lazy>
<ScoreCard
:maxScore="30"
:hasSaveButton="detail.status != '2'"
:hasSaveButton="detail.check_status != '2'"
v-model:score="scoreDetails.practice_record2.score"
v-model:comment="scoreDetails.practice_record2.comment"
@save="$emit('save')"
......@@ -362,7 +362,7 @@ const handleNext = () => {
<el-tab-pane label="直播总结汇报" :name="8" lazy>
<ScoreCard
:maxScore="10"
:hasSaveButton="detail.status != '2'"
: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.status != '2'" @next="handleNext" @save="$emit('save')">
<ModuleCard :maxScore="20" :hasSaveButton="detail.check_status != '2'" @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.status != '2'" @next="handleNext" @save="$emit('save')">
<ModuleCard :maxScore="55" :hasSaveButton="detail.check_status != '2'" @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.status != '2'" @next="handleNext" @save="$emit('save')">
<ModuleCard :maxScore="20" :hasSaveButton="detail.check_status != '2'" @next="handleNext" @save="$emit('save')">
<ScoreCardSub
title="作品(或产品)发布的运营计划,上述全媒体综合文稿拟分发的媒体平台,并逐一说明理由(10分)"
:maxScore="10"
......
<script setup>
import Demo from '../../test/components/Demo.vue'
import RecordView from '../../test/components/RecordView.vue'
import Demo from '@/modules/live/test/components/Demo.vue'
import RecordView from '@/modules/live/test/components/RecordView.vue'
defineProps({ livePracticeId: { type: String }, recordId: { type: String } })
</script>
......
......@@ -10,6 +10,14 @@ const routes: RouteRecordRaw[] = [
{ path: 'view', component: () => import('./views/View.vue') },
],
},
{
path: '/operations/score',
component: Layout,
children: [
{ path: '', component: () => import('./views/Index.vue'), props: { hasAI: false } },
{ path: 'view', component: () => import('./views/View.vue') },
],
},
]
export { routes }
......@@ -500,9 +500,7 @@ ${JSON.stringify(data.speeches)}
export const generatePracticeRecordPrompt = (data: any) => {
const firstLivePractice = data.practices[0]
const firstLivePracticeRecord = data.practice_records.find(
(item: any) => item.live_practice_id === firstLivePractice?.id
)
const firstLivePracticeRecord = firstLivePractice?.records[0]
return `请根据选手提交的内容进行评分(满分20分)
选手提交内容:
${JSON.stringify(firstLivePracticeRecord)}
......@@ -511,9 +509,7 @@ export const generatePracticeRecordPrompt = (data: any) => {
export const generateImprovementPlanPrompt = (data: any) => {
const firstLivePractice = data.practices[0]
const firstLivePracticeRecord = data.practice_records.find(
(item: any) => item.live_practice_id === firstLivePractice?.id
)
const firstLivePracticeRecord = firstLivePractice?.records[0]
return `请根据选手提交的改进方案进行评分(满分10分):
选手提交的改进方案:
${JSON.stringify(firstLivePracticeRecord?.improvement_plan)}
......@@ -527,9 +523,7 @@ export const generateImprovementPlanPrompt = (data: any) => {
export const generatePracticeRecord2Prompt = (data: any) => {
const secondLivePractice = data.practices[1]
const secondLivePracticeRecord = data.practice_records.find(
(item: any) => item.live_practice_id === secondLivePractice?.id
)
const secondLivePracticeRecord = secondLivePractice?.records[0]
return `
请根据选手提交的二次直播演练内容进行评分(满分15分)
选手提交内容:
......
......@@ -263,9 +263,7 @@ ${JSON.stringify(data.speeches)}
export const generatePracticeRecordPrompt = (data: any) => {
const firstLivePractice = data.practices[0]
const firstLivePracticeRecord = data.practice_records.find(
(item: any) => item.live_practice_id === firstLivePractice?.id
)
const firstLivePracticeRecord = firstLivePractice?.records[0]
return `请根据选手提交的内容进行评分(满分15分)
选手提交内容:
${JSON.stringify(firstLivePracticeRecord)}
......@@ -412,9 +410,7 @@ export const generatePracticeRecordPrompt = (data: any) => {
export const generateImprovementPlanPrompt = (data: any) => {
const firstLivePractice = data.practices[0]
const firstLivePracticeRecord = data.practice_records.find(
(item: any) => item.live_practice_id === firstLivePractice?.id
)
const firstLivePracticeRecord = firstLivePractice?.records[0]
return `请根据选手提交的改进方案进行评分(满分10分):
选手提交的改进方案:
${JSON.stringify(firstLivePracticeRecord?.improvement_plan)}
......@@ -436,9 +432,7 @@ export const generateImprovementPlanPrompt = (data: any) => {
export const generatePracticeRecord2Prompt = (data: any) => {
const secondLivePractice = data.practices[1]
const secondLivePracticeRecord = data.practice_records.find(
(item: any) => item.live_practice_id === secondLivePractice?.id
)
const secondLivePracticeRecord = secondLivePractice?.records[0]
return `
请根据选手提交的二次直播演练内容进行评分(满分30分)
选手提交内容:
......
<script setup>
import LiveProductCategory from '@/components/LiveProductCategory.vue'
import { getScoreList } from '../api'
import { getScoreList, getScoreDetail, publishAll, updateScore } from '../api'
import { ElMessage } from 'element-plus'
import { useChat } from '@ezijing/ai-vue'
import { generatePrompt } from '../prompt'
import { generatePrompt as generatePrompt2 } from '../prompt2'
import { useIntervalFn } from '@vueuse/core'
const route = useRoute()
const appList = ref(null)
defineProps({ hasAI: { type: Boolean, default: true } })
// 刷新
const handleRefresh = () => {
appList.value?.refetch()
......@@ -24,6 +31,7 @@ const listOptions = computed(() => {
{ label: '暂未评分', value: '0' },
{ label: '评分中', value: '1' },
{ label: '已评分', value: '2' },
{ label: 'AI评分完成', value: '3' },
],
},
],
......@@ -43,30 +51,74 @@ const listOptions = computed(() => {
}
})
// const handleSubmit = () => {
// studentSubmit().then(() => {
// handleRefresh()
// })
// }
const handleExport = () => {
window.open(`/api/lab/v1/experiment/live-student-record/export?experiment_id=${route.query.experiment_id}`)
}
const { isLoading, generateText } = useChat({ provider: 'siliconflow' })
const handleAIScore = async () => {
console.log('AI一键评分')
const res = await getScoreList({ 'per-page': 200, check_status: 0 })
const list = res.data.list
list.forEach(async (item) => {
const detailRes = await getScoreDetail({ id: item.id })
const detail = detailRes.data.detail
const prompt =
detail.competition_rule?.questions == 1 ? generatePrompt(detail.live_data) : generatePrompt2(detail.live_data)
// 修改为评分中
updateScore({ id: item.id, check_status: 1 })
const result = await generateText({ prompt, response_format: { type: 'json_object' } })
console.log(result)
try {
const parsed = JSON.parse(result.content)
console.log(parsed)
const totalScore = Object.values(parsed).reduce((acc, curr) => acc + (curr.score || 0), 0)
updateScore({
id: item.id,
check_status: 3,
total_score: totalScore.value,
score_details: JSON.stringify(parsed),
}).then(() => {
console.log('AI评分完成')
})
} catch (error) {
console.log('评分失败', error)
}
})
}
const handlePublishScore = () => {
publishAll().then(() => {
ElMessage.success('发布成绩成功')
handleRefresh()
})
}
useIntervalFn(() => {
handleRefresh()
}, 5000)
</script>
<template>
<AppCard title="成绩管理">
<AppList v-bind="listOptions" ref="appList">
<template #header-buttons>
<!-- <el-button type="primary" @click="handleSubmit">提交成绩</el-button> -->
<el-button type="primary" @click="handleExport">导出成绩</el-button>
<el-row justify="space-between">
<el-button type="primary" @click="handleExport">导出成绩</el-button>
<div>
<el-button type="primary" @click="handleAIScore" :loading="isLoading" v-if="hasAI">AI一键评分</el-button>
<el-button type="primary" @click="handlePublishScore" v-if="false">一键发布成绩</el-button>
</div>
</el-row>
</template>
<template #filter-category>
<LiveProductCategory v-model="listParams.live_commodity_type_id" @change="handleRefresh"></LiveProductCategory>
</template>
<template #table-x="{ row }">
<el-button text type="primary">
<el-button text type="primary" v-if="row.check_status != '2'">
<router-link :to="{ path: '/live/score/view', query: { ...$route.query, id: row.id } }">评分</router-link>
</el-button>
</template>
......
......@@ -11,7 +11,7 @@ const CompetitionOperations = defineAsyncComponent(() => import('../components/C
const route = useRoute()
const id = route.query.id
const { isLoading, generateText } = useChat({ provider: 'volcano' })
const { isLoading, generateText } = useChat({ provider: 'siliconflow' })
const detail = ref(null)
......@@ -41,7 +41,7 @@ const handleAIScore = async () => {
try {
const parsed = JSON.parse(result.content)
Object.assign(scoreDetails, parsed)
commitScore().then(() => {
commitScore(1).then(() => {
ElMessage.success('保存成功')
})
} catch (error) {
......@@ -96,7 +96,9 @@ const handlePublishScore = () => {
v-if="detail.competition_rule?.competition == 1"
>AI一键评分</el-button
>
<el-button type="primary" :disabled="detail.check_status == '2'" @click="handlePublishScore">发布成绩</el-button>
<el-button type="primary" :disabled="detail.check_status == '2'" @click="handlePublishScore"
>发布成绩</el-button
>
</el-form-item>
</el-form>
<div class="score-box">
......
......@@ -418,7 +418,7 @@ const adminMenus: IMenuItem[] = [
{ id: 401, name: '创意策划方案', path: '/operations/plan', icon: markRaw(RiLightbulbLine) },
{ id: 402, name: '视听运营', path: '/operations/audiovisual', icon: markRaw(RiSoundModuleLine) },
{ id: 403, name: '流量运营', path: '/operations/flow', icon: markRaw(RiLineChartLine) },
{ id: 404, name: '成绩管理', path: '/live/score', icon: markRaw(RiFileChartLine), role: [5, 6] },
{ id: 404, name: '成绩管理', path: '/operations/score', icon: markRaw(RiFileChartLine), role: [5, 6] },
],
},
]
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论