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

bump deps

上级 edc74df4
{
"globals": {
"$": true,
"$$": true,
"$computed": true,
"$customRef": true,
"$ref": true,
"$shallowRef": true,
"$toRef": true,
"Component": true,
"ComponentPublicInstance": true,
"ComputedRef": true,
"EffectScope": true,
"ExtractDefaultPropTypes": true,
"ExtractPropTypes": true,
"ExtractPublicPropTypes": true,
"InjectionKey": true,
"PropType": true,
"Ref": true,
"VNode": true,
"WritableComputedRef": true,
"asyncComputed": true,
"autoResetRef": true,
"computed": true,
......@@ -106,6 +103,7 @@
"toReactive": true,
"toRef": true,
"toRefs": true,
"toValue": true,
"triggerRef": true,
"tryOnBeforeMount": true,
"tryOnBeforeUnmount": true,
......@@ -297,7 +295,6 @@
"watchThrottled": true,
"watchTriggerable": true,
"watchWithFilter": true,
"whenever": true,
"toValue": true
"whenever": true
}
}
/* eslint-disable */
/* prettier-ignore */
// @ts-nocheck
// noinspection JSUnusedGlobalSymbols
// Generated by unplugin-auto-import
export {}
declare global {
const $: typeof import('vue/macros')['$']
const $$: typeof import('vue/macros')['$$']
const $computed: typeof import('vue/macros')['$computed']
const $customRef: typeof import('vue/macros')['$customRef']
const $ref: typeof import('vue/macros')['$ref']
const $shallowRef: typeof import('vue/macros')['$shallowRef']
const $toRef: typeof import('vue/macros')['$toRef']
const EffectScope: typeof import('vue')['EffectScope']
const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
const autoResetRef: typeof import('@vueuse/core')['autoResetRef']
......@@ -300,5 +294,6 @@ declare global {
// for type re-export
declare global {
// @ts-ignore
export type { Component, ComponentPublicInstance, ComputedRef, InjectionKey, PropType, Ref, VNode } from 'vue'
export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
import('vue')
}
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -14,9 +14,9 @@
"cert": "node ./cert.js"
},
"dependencies": {
"@element-plus/icons-vue": "^2.0.10",
"@element-plus/icons-vue": "^2.3.1",
"@tinymce/tinymce-vue": "^5.0.0",
"@vant/area-data": "^1.4.0",
"@vant/area-data": "^1.5.1",
"@vueuse/core": "^9.13.0",
"@vueuse/head": "^1.0.26",
"@vueuse/integrations": "^9.13.0",
......@@ -26,23 +26,24 @@
"blueimp-md5": "^2.19.0",
"countup.js": "^2.6.2",
"dayjs": "^1.11.7",
"element-plus": "^2.2.32",
"element-plus": "^2.4.4",
"file-saver": "^2.0.5",
"filesize": "^10.0.7",
"html-to-image": "^1.11.11",
"html2pdf.js": "^0.10.1",
"lodash-es": "^4.17.21",
"pinia": "^2.1.4",
"pinia": "^2.1.7",
"print-js": "^1.6.0",
"ua-parser-js": "^1.0.33",
"universal-cookie": "^4.0.4",
"video.js": "^7.21.1",
"vue": "^3.3.4",
"vue-router": "^4.2.2",
"vue": "^3.4.24",
"vue-router": "^4.3.2",
"vuedraggable": "^4.1.0"
},
"devDependencies": {
"@rushstack/eslint-patch": "^1.2.0",
"@tsconfig/node20": "^20.1.4",
"@types/ali-oss": "^6.16.8",
"@types/blueimp-md5": "^2.18.0",
"@types/file-saver": "^2.0.5",
......@@ -50,17 +51,18 @@
"@types/node": "^20.3.1",
"@types/ua-parser-js": "^0.7.36",
"@types/video.js": "^7.3.52",
"@vitejs/plugin-vue": "^4.2.3",
"@vue/eslint-config-typescript": "^11.0.3",
"@vue/tsconfig": "^0.1.3",
"@vitejs/plugin-vue": "^4.6.2",
"@vue-macros/reactivity-transform": "^0.4.4",
"@vue/eslint-config-typescript": "^12.0.0",
"@vue/tsconfig": "^0.5.1",
"chalk": "^5.2.0",
"eslint": "^8.34.0",
"eslint-plugin-vue": "^9.9.0",
"eslint-plugin-vue": "^9.25.0",
"sass": "^1.58.3",
"typescript": "~4.9.5",
"unplugin-auto-import": "^0.16.4",
"vite": "^4.3.9",
"vite-plugin-checker": "^0.6.0",
"vue-tsc": "^1.6.5"
"typescript": "~5.4.5",
"unplugin-auto-import": "^0.17.5",
"vite": "^4.5.3",
"vite-plugin-checker": "^0.6.4",
"vue-tsc": "^1.8.27"
}
}
......@@ -56,7 +56,7 @@ const qaURL = import.meta.env.VITE_QA_CENTER_URL
</script>
<template>
<el-dialog title="评分" :close-on-click-modal="false" width="700px" @update:modelValue="$emit('update:modelValue')">
<el-dialog title="评分" :close-on-click-modal="false" width="700px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form label-suffix=":" v-if="detail">
<el-form-item label="赛项名称">{{ detail.competition_id_name }}</el-form-item>
<el-form-item label="选手姓名">{{ detail.student_name }}</el-form-item>
......
......@@ -118,7 +118,7 @@ function handleUpdate() {
</script>
<template>
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="$emit('update:modelValue')">
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="报名赛项">
<el-input v-model="form.competition_name" :disabled="isUpdate" />
......
......@@ -78,7 +78,7 @@ function handleSubmit() {
</script>
<template>
<el-dialog title="大赛训练答疑" :close-on-click-modal="false" @update:modelValue="$emit('update:modelValue')">
<el-dialog title="大赛训练答疑" :close-on-click-modal="false" @update:modelValue="value => $emit('update:modelValue', value)">
<div class="discuss-scroll" ref="scrollRef">
<DiscussItem :info="detail.info" :list="detail.list" v-if="detail.info"></DiscussItem>
<div class="tips" v-if="isLoading">
......@@ -90,13 +90,7 @@ function handleSubmit() {
<div class="tips" v-if="!hasMore">没有更多了</div>
</div>
<el-form
ref="formRef"
:rules="rules"
:model="form"
style="margin-top: 40px"
v-permission="'v1-teacher-discussion-comment'"
>
<el-form ref="formRef" :rules="rules" :model="form" style="margin-top: 40px" v-permission="'v1-teacher-discussion-comment'">
<el-form-item prop="content">
<el-input type="textarea" v-model="form.content" :autosize="{ minRows: 4, maxRows: 6 }" :maxlength="200" />
</el-form-item>
......
......@@ -97,7 +97,7 @@ function handleUpdate() {
</script>
<template>
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="$emit('update:modelValue')">
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
<el-form-item label="所属部门/学校" prop="organization_id">
<el-select v-model="form.organization_id" style="width: 100%" :disabled="isUpdate">
......
......@@ -247,7 +247,7 @@ function handleDateRangeChange(value: any) {
</script>
<template>
<el-dialog :title="title" :close-on-click-modal="false" align-center width="600px" @update:modelValue="$emit('update:modelValue')">
<el-dialog :title="title" :close-on-click-modal="false" align-center width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="110px">
<el-form-item label="赛项名称" prop="name">
<el-input v-model="form.name" :disabled="isUpdate" />
......
......@@ -53,7 +53,7 @@ function handleSubmit() {
</script>
<template>
<el-dialog title="添加专家" width="500px" @update:modelValue="$emit('update:modelValue')">
<el-dialog title="添加专家" width="500px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-position="right" label-width="100px" label-suffix=":">
<el-form-item label="赛项名称">{{ detail.name }}</el-form-item>
<el-form-item label="角色" prop="role">
......
......@@ -100,7 +100,7 @@ function handleRemoveClass(index: number) {
</script>
<template>
<el-dialog title="评分专家列表" :close-on-click-modal="false" @update:modelValue="$emit('update:modelValue')">
<el-dialog title="评分专家列表" :close-on-click-modal="false" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form :disabled="disabled">
<AppList v-bind="listOptions" ref="appList">
<template #header-buttons>
......
......@@ -106,11 +106,7 @@ function handleUpdate(params: ContestBookUpdateParams) {
</script>
<template>
<el-dialog
title="编辑评分细则"
:close-on-click-modal="false"
width="600px"
@update:modelValue="$emit('update:modelValue')">
<el-dialog title="编辑评分细则" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="124px" :disabled="disabled">
<el-form-item label="评分细则文件" prop="files">
<AppUpload
......
......@@ -149,7 +149,7 @@ function handleRatioChange(row: any, index: number) {
</script>
<template>
<el-dialog title="评分规则" :close-on-click-modal="false" width="800px" @update:modelValue="$emit('update:modelValue')">
<el-dialog title="评分规则" :close-on-click-modal="false" width="800px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="170px" :disabled="disabled">
<el-form-item label="赛项名称">
<el-input v-model="form.name" disabled />
......
......@@ -119,7 +119,7 @@ getPlatformKeysList()
</script>
<template>
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="$emit('update:modelValue')">
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="124px">
<el-form-item label="训练指导书文件" prop="files">
<AppUpload
......@@ -127,8 +127,7 @@ getPlatformKeysList()
:limit="1"
:beforeUpload="handleBeforeUpload"
accept=".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,.pdf,application/pdf,.ppt,.pptx,application/vnd.ms-powerpoint,.csv,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
@success="handleUploadSuccess"
>
@success="handleUploadSuccess">
<template #tip>训练指导书文件支持格式包含:doc docx xls xlsx pdf ppt pptx,大小不超过50M</template>
</AppUpload>
</el-form-item>
......@@ -141,9 +140,7 @@ getPlatformKeysList()
</el-form-item>
<el-form-item label="关联实验">
<el-radio-group v-model="form.platform_key">
<el-radio v-for="item in platformKeys" :key="item.platform_key" :label="item.platform_key">{{
item.name
}}</el-radio>
<el-radio v-for="item in platformKeys" :key="item.platform_key" :label="item.platform_key">{{ item.name }}</el-radio>
<!-- <el-radio :key="1" label="1">商业数据分析实验</el-radio>
<el-radio :key="1" label="2">数字营销实操</el-radio> -->
</el-radio-group>
......
......@@ -65,7 +65,7 @@ function handleUpdate(params: any) {
</script>
<template>
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="$emit('update:modelValue')">
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="90px">
<el-form-item label="考试类型" prop="type">
<el-radio-group v-model="form.type" :disabled="isUpdate">
......
......@@ -77,7 +77,7 @@ function handleUpdate(params: any) {
</script>
<template>
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="$emit('update:modelValue')">
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="90px">
<el-form-item label="试卷类型" prop="type">
<el-radio-group v-model="form.type">
......
......@@ -119,7 +119,7 @@ getPlatformKeysList()
</script>
<template>
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="$emit('update:modelValue')">
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="124px">
<el-form-item label="大赛试题文件" prop="files">
<AppUpload
......@@ -140,9 +140,7 @@ getPlatformKeysList()
</el-form-item>
<el-form-item label="关联实验">
<el-radio-group v-model="form.platform_key">
<el-radio v-for="item in platformKeys" :key="item.platform_key" :label="item.platform_key">{{
item.name
}}</el-radio>
<el-radio v-for="item in platformKeys" :key="item.platform_key" :label="item.platform_key">{{ item.name }}</el-radio>
<!-- <el-radio :key="1" label="1">商业数据分析实验</el-radio>
<el-radio :key="1" label="2">数字营销实操</el-radio> -->
</el-radio-group>
......
......@@ -59,10 +59,7 @@ const title = $computed(() => {
function handleBeforeUpload() {
if (form.source_id) {
return ElMessageBox.confirm(
'系统仅支持1个训练操作视频,此操作将覆盖原有训练操作视频文件,确认上传新文件吗?',
'提示'
)
return ElMessageBox.confirm('系统仅支持1个训练操作视频,此操作将覆盖原有训练操作视频文件,确认上传新文件吗?', '提示')
}
return true
}
......@@ -96,7 +93,7 @@ function handleUpdate(params: ContestVideoUpdateParams) {
</script>
<template>
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="$emit('update:modelValue')">
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="140px">
<el-form-item label="训练操作视频文件" prop="source_id">
<UploadVideo :beforeUpload="handleBeforeUpload" @success="handleUploadSuccess">
......
<script setup lang="ts">
import type { ContestScoreItem } from '../types'
import { ElMessage } from 'element-plus'
import { publishScore } from '../api'
interface Props {
data: ContestScoreItem
import type { ContestScoreItem } from '../types'
import { ElMessage } from 'element-plus'
import { publishScore } from '../api'
interface Props {
data: ContestScoreItem
}
const props = defineProps<Props>()
const emit = defineEmits<{
(e: 'update'): void
(e: 'update:modelValue', visible: boolean): void
}>()
// 发布
function handleSubmit() {
publishScore({ id: props.data.id }).then(() => {
ElMessage.success('发布成功')
emit('update')
emit('update:modelValue', false)
})
}
</script>
<template>
<el-dialog title="发布成绩" width="500px" :close-on-click-modal="false" @update:modelValue="value => $emit('update:modelValue', value)">
<div class="content">
<p>请确认赛项成绩之后再进行发布成绩!</p>
<p>
赛项名称:<b>{{ data.name }}</b>
</p>
<br />
<p>
<span>报名人数:{{ data.all_competitor_count }}</span>
<span>完赛人数:{{ data.complete_competitor_count }}</span>
<span>已评分人数:{{ data.checked_competitor_count }}</span>
</p>
<br />
<p>请确认是否发布成绩!</p>
</div>
<el-row justify="center" style="margin-top: 40px">
<el-button type="primary" round auto-insert-space @click="handleSubmit">发布</el-button>
<el-button round auto-insert-space @click="$emit('update:modelValue', false)">取消</el-button>
</el-row>
</el-dialog>
</template>
<style lang="scss" scoped>
.content {
text-align: center;
p {
margin: 10px 0;
}
const props = defineProps<Props>()
const emit = defineEmits<{
(e: 'update'): void
(e: 'update:modelValue', visible: boolean): void
}>()
// 发布
function handleSubmit() {
publishScore({ id: props.data.id }).then(() => {
ElMessage.success('发布成功')
emit('update')
emit('update:modelValue', false)
})
b {
color: var(--main-color);
}
</script>
<template>
<el-dialog
title="发布成绩"
width="500px"
:close-on-click-modal="false"
@update:modelValue="$emit('update:modelValue')">
<div class="content">
<p>请确认赛项成绩之后再进行发布成绩!</p>
<p>
赛项名称:<b>{{ data.name }}</b>
</p>
<br />
<p>
<span>报名人数:{{ data.all_competitor_count }}</span>
<span>完赛人数:{{ data.complete_competitor_count }}</span>
<span>已评分人数:{{ data.checked_competitor_count }}</span>
</p>
<br />
<p>请确认是否发布成绩!</p>
</div>
<el-row justify="center" style="margin-top: 40px">
<el-button type="primary" round auto-insert-space @click="handleSubmit">发布</el-button>
<el-button round auto-insert-space @click="$emit('update:modelValue', false)">取消</el-button>
</el-row>
</el-dialog>
</template>
<style lang="scss" scoped>
.content {
text-align: center;
p {
margin: 10px 0;
}
b {
color: var(--main-color);
}
span + span {
margin-left: 40px;
}
span + span {
margin-left: 40px;
}
</style>
\ No newline at end of file
}
</style>
......@@ -105,7 +105,7 @@ function handleUpdate(params: BookCreateItem) {
</script>
<template>
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="$emit('update:modelValue')">
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="124px">
<el-form-item label="实验指导书文件" prop="files">
<AppUpload
......
......@@ -112,7 +112,7 @@ function handleUpdate(params: CaseUpdateItem) {
</script>
<template>
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="$emit('update:modelValue')">
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="124px">
<el-form-item label="案例原文文件" prop="files">
<AppUpload
......
......@@ -78,7 +78,7 @@ function handleSubmit() {
</script>
<template>
<el-dialog title="实验话题讨论" :close-on-click-modal="false" @update:modelValue="$emit('update:modelValue')">
<el-dialog title="实验话题讨论" :close-on-click-modal="false" @update:modelValue="value => $emit('update:modelValue', value)">
<div class="discuss-scroll" ref="scrollRef">
<DiscussItem :info="detail.info" :list="detail.list" v-if="detail.info"></DiscussItem>
<div class="tips" v-if="isLoading">
......@@ -90,13 +90,7 @@ function handleSubmit() {
<div class="tips" v-if="!hasMore">没有更多了</div>
</div>
<el-form
ref="formRef"
:rules="rules"
:model="form"
style="margin-top: 40px"
v-permission="'v1-teacher-discussion-comment'"
>
<el-form ref="formRef" :rules="rules" :model="form" style="margin-top: 40px" v-permission="'v1-teacher-discussion-comment'">
<el-form-item prop="content">
<el-input type="textarea" v-model="form.content" :autosize="{ minRows: 4, maxRows: 6 }" :maxlength="200" />
</el-form-item>
......
......@@ -118,7 +118,7 @@ function handleSubmit() {
</script>
<template>
<el-dialog title="配置数字营销实验" :close-on-click-modal="false" width="600px" @update:modelValue="$emit('update:modelValue')">
<el-dialog title="配置数字营销实验" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" label-suffix=":">
<el-row justify="space-between">
<el-form-item label="实验名称">{{ data.name }}</el-form-item>
......
......@@ -111,7 +111,7 @@ function handleUpdate(params: ExperimentCreateItem) {
</script>
<template>
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="$emit('update:modelValue')">
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="145px">
<el-form-item label="实验所属部门/学校" prop="organ_id">
<el-select v-model="form.organ_id" style="width: 100%" :disabled="isUpdate" @change="handleOrgChange">
......@@ -143,40 +143,16 @@ function handleUpdate(params: ExperimentCreateItem) {
<el-input-number v-model="form.score" :min="1" :max="150" step-strictly style="width: 100%" />
</el-form-item>
<el-form-item label="实验目的" prop="purpose">
<el-input
v-model="form.purpose"
:autosize="{ minRows: 4 }"
type="textarea"
maxlength="200"
show-word-limit
placeholder="请输入实验目的" />
<el-input v-model="form.purpose" :autosize="{ minRows: 4 }" type="textarea" maxlength="200" show-word-limit placeholder="请输入实验目的" />
</el-form-item>
<el-form-item label="实验要求" prop="requirements">
<el-input
v-model="form.requirements"
:autosize="{ minRows: 4 }"
type="textarea"
maxlength="200"
show-word-limit
placeholder="请输入实验要求" />
<el-input v-model="form.requirements" :autosize="{ minRows: 4 }" type="textarea" maxlength="200" show-word-limit placeholder="请输入实验要求" />
</el-form-item>
<el-form-item label="实验内容及原理" prop="content">
<el-input
v-model="form.content"
:autosize="{ minRows: 4 }"
type="textarea"
maxlength="200"
show-word-limit
placeholder="请输入实验内容及原理" />
<el-input v-model="form.content" :autosize="{ minRows: 4 }" type="textarea" maxlength="200" show-word-limit placeholder="请输入实验内容及原理" />
</el-form-item>
<el-form-item label="实验步骤及过程" prop="procedure">
<el-input
v-model="form.procedure"
:autosize="{ minRows: 4 }"
type="textarea"
maxlength="200"
show-word-limit
placeholder="请输入实验步骤及过程" />
<el-input v-model="form.procedure" :autosize="{ minRows: 4 }" type="textarea" maxlength="200" show-word-limit placeholder="请输入实验步骤及过程" />
</el-form-item>
<el-form-item label="有效状态" prop="status">
<el-radio-group v-model="form.status">
......
......@@ -19,12 +19,7 @@ const selectAnswer = ['302', '202']
</script>
<template>
<el-dialog
title="2023商业数据分析大赛决赛试题"
:close-on-click-modal="false"
width="50%"
@update:modelValue="$emit('update:modelValue')"
>
<el-dialog title="2023商业数据分析大赛决赛试题" :close-on-click-modal="false" width="50%" @update:modelValue="value => $emit('update:modelValue', value)">
<el-card class="box-card" v-for="(item, index) in list" :key="item.id">
<template #header>
<div class="card-header">
......@@ -32,9 +27,7 @@ const selectAnswer = ['302', '202']
<el-form-item label="本题分值" style="margin: 0"> {{ item.score }} </el-form-item>
</div>
</template>
<div class="text item">
正确答案:{{ ['302', '202'].includes(item.type) ? item.answer_info?.name : item?.answer || '上传成功' }}
</div>
<div class="text item">正确答案:{{ ['302', '202'].includes(item.type) ? item.answer_info?.name : item?.answer || '上传成功' }}</div>
</el-card>
</el-dialog>
</template>
......
......@@ -42,13 +42,11 @@ function handleSubmit() {
}
</script>
<template>
<el-dialog title="关联班级" @update:modelValue="$emit('update:modelValue')">
<el-dialog title="关联班级" @update:modelValue="value => $emit('update:modelValue', value)">
<p>所属机构/学校:{{ detail.organ_id_name }}</p>
<AppList v-bind="listOptions" @selection-change="handleSelectionChange"></AppList>
<el-row justify="center">
<el-button type="primary" round :disabled="!multipleSelection.length" @click="handleSubmit"
>关联选择班级</el-button
>
<el-button type="primary" round :disabled="!multipleSelection.length" @click="handleSubmit">关联选择班级</el-button>
<el-button round auto-insert-space @click="$emit('update:modelValue', false)">取消</el-button>
</el-row>
</el-dialog>
......
......@@ -42,12 +42,10 @@ function handleSubmit() {
}
</script>
<template>
<el-dialog title="添加小组成员" @update:modelValue="$emit('update:modelValue')">
<el-dialog title="添加小组成员" @update:modelValue="value => $emit('update:modelValue', value)">
<AppList v-bind="listOptions" @selection-change="handleSelectionChange"></AppList>
<el-row justify="center">
<el-button type="primary" round :disabled="!multipleSelection.length" @click="handleSubmit"
>添加选择学生</el-button
>
<el-button type="primary" round :disabled="!multipleSelection.length" @click="handleSubmit">添加选择学生</el-button>
<el-button round auto-insert-space @click="$emit('update:modelValue', false)">取消</el-button>
</el-row>
</el-dialog>
......
......@@ -38,11 +38,7 @@ const handleCreate = () => {
</script>
<template>
<el-dialog
title="新增实验分组"
:close-on-click-modal="false"
width="600px"
@update:modelValue="$emit('update:modelValue')">
<el-dialog title="新增实验分组" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="110px">
<el-form-item label="实验名称">{{ detail.name }}</el-form-item>
<el-form-item label="实验小组名称" prop="name">
......
......@@ -149,7 +149,7 @@ function getOperationUrl(type: number) {
</script>
<template>
<el-dialog title="学生实验评分" :close-on-click-modal="false" width="800px" @update:modelValue="$emit('update:modelValue')">
<el-dialog title="学生实验评分" :close-on-click-modal="false" width="800px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form label-width="120px" label-suffix=":" v-if="detail">
<el-row>
<el-col :span="12">
......@@ -212,7 +212,7 @@ function getOperationUrl(type: number) {
<el-table-column label="操作" prop="commit_score" align="center">
<template #default="{ row }">
<template v-if="row.type === 1">
<el-button text type="primary" @click="$emit('update:modelValue')" v-if="experiment.report_upload_way === 2">
<el-button text type="primary" v-if="experiment.report_upload_way === 2">
<a :href="getOperationUrl(row.type)" target="_blank">批改</a>
</el-button>
<template v-if="experiment.report_upload_way === 1">
......
......@@ -65,10 +65,7 @@ const title = $computed(() => {
function handleBeforeUpload() {
if (form.source_id) {
return ElMessageBox.confirm(
'系统仅支持1个实验操作视频,此操作将覆盖原有实验操作视频文件,确认上传新文件吗?',
'提示'
)
return ElMessageBox.confirm('系统仅支持1个实验操作视频,此操作将覆盖原有实验操作视频文件,确认上传新文件吗?', '提示')
}
return true
}
......@@ -102,7 +99,7 @@ function handleUpdate(params: VideoCreateItem) {
</script>
<template>
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="$emit('update:modelValue')">
<el-dialog :title="title" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-width="140px">
<el-form-item label="实验操作视频文件" prop="source_id">
<UploadVideo :beforeUpload="handleBeforeUpload" @success="handleUploadSuccess">
......
......@@ -56,11 +56,7 @@ const update = () => {
</script>
<template>
<el-dialog
title="上传实验报告"
:close-on-click-modal="false"
width="600px"
@update:modelValue="$emit('update:modelValue')">
<el-dialog title="上传实验报告" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules">
<el-form-item label="实验报告文件" prop="files">
<AppUpload
......
......@@ -49,7 +49,7 @@ function handleRemove(row) {
</script>
<template>
<el-dialog append-to-body title="关联截图" width="800px" @update:modelValue="$emit('update:modelValue')">
<el-dialog append-to-body title="关联截图" width="800px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-table :data="currentPictures" stripe>
<el-table-column prop="name">
<template #default="{ row }">
......
......@@ -48,12 +48,7 @@ const update = () => {
</script>
<template>
<el-dialog
append-to-body
title="实验准备"
:close-on-click-modal="false"
width="800px"
@update:modelValue="$emit('update:modelValue')">
<el-dialog append-to-body title="实验准备" :close-on-click-modal="false" width="800px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-suffix=":">
<el-form-item label="实验名称">{{ data.name }} </el-form-item>
<el-form-item prop="detail">
......
......@@ -45,11 +45,7 @@ const update = () => {
</script>
<template>
<el-dialog
title="上传实验报告"
:close-on-click-modal="false"
width="600px"
@update:modelValue="$emit('update:modelValue')">
<el-dialog title="上传实验报告" :close-on-click-modal="false" width="600px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules">
<el-form-item label="实验报告文件" prop="files">
<AppUpload
......
......@@ -48,12 +48,7 @@ const update = () => {
</script>
<template>
<el-dialog
append-to-body
title="实验结果"
:close-on-click-modal="false"
width="800px"
@update:modelValue="$emit('update:modelValue')">
<el-dialog append-to-body title="实验结果" :close-on-click-modal="false" width="800px" @update:modelValue="value => $emit('update:modelValue', value)">
<el-form ref="formRef" :model="form" :rules="rules" label-suffix=":">
<el-form-item label="实验名称">{{ data.name }} </el-form-item>
<el-form-item prop="detail">
......
{
"extends": "@vue/tsconfig/tsconfig.node.json",
"include": ["vite.config.*", "vitest.config.*", "cypress.config.*"],
"extends": "@tsconfig/node20/tsconfig.json",
"include": ["vite.config.*", "vitest.config.*", "cypress.config.*", "playwright.config.*"],
"compilerOptions": {
"composite": true,
"types": ["node"]
......
{
"extends": "@vue/tsconfig/tsconfig.web.json",
"extends": "@vue/tsconfig/tsconfig.json",
"include": ["auto-imports.d.ts", "env.d.ts", "src/**/*", "src/**/*.vue"],
"compilerOptions": {
"allowJs": true,
......@@ -7,7 +7,7 @@
"paths": {
"@/*": ["./src/*"]
},
"types": ["element-plus/global"]
"types": ["element-plus/global", "@vue-macros/reactivity-transform/macros-global"]
},
"references": [
......
......@@ -6,16 +6,18 @@ import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// import checker from 'vite-plugin-checker'
import AutoImport from 'unplugin-auto-import/vite'
import ReactivityTransform from '@vue-macros/reactivity-transform/vite'
export default defineConfig(({ mode }) => ({
base: mode === 'prod' ? 'https://webapp-pub.ezijing.com/website/prod/saas-lab/' : '/',
plugins: [
vue({ reactivityTransform: true, script: { defineModel: true } }),
AutoImport({
imports: ['vue', 'vue/macros', 'vue-router', '@vueuse/core', '@vueuse/math'],
imports: ['vue', 'vue-router', '@vueuse/core', '@vueuse/math'],
dts: true,
eslintrc: { enabled: true }
})
}),
ReactivityTransform()
// checker({ vueTsc: true, eslint: { lintCommand: 'eslint "./src/**/*.{vue,js,jsx,ts,tsx}"' } })
],
server: {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论