Compare commits

...

46 Commits

Author SHA1 Message Date
lyc 5808798b95 模板修改 2024-11-26 14:55:14 +08:00
yangws 57fb6b9c75 Merge pull request 'fix:修改个人中心修改学科的时候不生效的问题;' (#66) from yws_dev into main
Reviewed-on: #66
2024-11-26 10:37:10 +08:00
小杨 1882fd0dae fix:修改个人中心修改学科的时候不生效的问题; 2024-11-26 10:36:41 +08:00
yangws 7f2cacffac Merge pull request 'add:新增第三方资源筛选;' (#65) from yws_dev into main
Reviewed-on: #65
2024-11-26 09:35:59 +08:00
小杨 e1caa441cb add:新增第三方资源筛选; 2024-11-26 09:35:25 +08:00
zouyf ca3f2658a7 Merge pull request '1' (#64) from zouyf_dev into main
Reviewed-on: #64
2024-11-25 11:19:34 +08:00
“zouyf” cd1fc036a2 1 2024-11-25 11:18:45 +08:00
zouyf 727299aac9 Merge pull request 'zouyf_dev' (#63) from zouyf_dev into main
Reviewed-on: #63
2024-11-25 11:07:13 +08:00
lyc 27b0457eef Merge pull request 'edit' (#62) from lyc-dev into main 2024-11-25 11:00:42 +08:00
“zouyf” 208f5d496f Merge branch 'main' into zouyf_dev 2024-11-25 10:59:40 +08:00
“zouyf” 122fb41690 [习题上传] - 章节下增加对应知识点数据 2024-11-25 10:59:27 +08:00
朱浩 eb4a58b306 Merge remote-tracking branch 'origin/main' 2024-11-25 10:54:33 +08:00
朱浩 a313a0e8b0 BUG修复 2024-11-25 10:54:16 +08:00
“zouyf” 630a7b4c50 1 2024-11-22 16:57:19 +08:00
zhengdegang 01dc5dc643 Merge pull request 'zdg_dev' (#61) from zdg_dev into main
Reviewed-on: #61
2024-11-22 15:57:35 +08:00
zdg 349bdbd181 Merge branch 'main' of http://27.128.240.72:3000/zhuhao/AIx_Smarttalk_WS into zdg_dev
# Conflicts:
#	src/renderer/index.html
#	src/renderer/src/views/model/index.vue
2024-11-22 15:55:44 +08:00
zdg 8707b54420 pptList 功能二开 2024-11-22 15:18:42 +08:00
朱浩 f08b5a8bee Merge remote-tracking branch 'origin/main' 2024-11-22 11:07:11 +08:00
朱浩 e2255544da BUG修复 2024-11-22 11:06:57 +08:00
zouyf 748a3c4b86 Merge pull request '增加根据用户id查询' (#60) from zouyf_dev into main
Reviewed-on: #60
2024-11-22 11:03:50 +08:00
“zouyf” c4c1115abb 增加根据用户id查询 2024-11-22 11:03:19 +08:00
zouyf eefc4d75f8 Merge pull request 'zouyf_dev' (#59) from zouyf_dev into main
Reviewed-on: #59
2024-11-22 10:50:57 +08:00
“zouyf” db99dbf0d8 Merge branch 'main' into zouyf_dev 2024-11-22 10:49:05 +08:00
“zouyf” 3b6878ece5 更新下划线格式化 2024-11-22 10:48:37 +08:00
朱浩 cbc6f21100 没有教材-的datasetid 2024-11-22 10:47:44 +08:00
朱浩 cefc29df6a 版本更新 2024-11-22 09:58:50 +08:00
朱浩 cb3485f10f Merge remote-tracking branch 'origin/main' 2024-11-22 09:58:09 +08:00
朱浩 cbb6a10c1d 窗口初始化最大化 2024-11-22 09:58:01 +08:00
zouyf 95c93f19ee Merge pull request 'zouyf_dev' (#58) from zouyf_dev into main
Reviewed-on: #58
2024-11-22 09:54:36 +08:00
“zouyf” dcd1a3bb05 1 2024-11-22 09:54:05 +08:00
“zouyf” 5ac33bd1ca 1 2024-11-22 09:53:15 +08:00
yangws dc36821366 Merge pull request 'fix:新增图标;' (#57) from yws_dev into main
Reviewed-on: #57
2024-11-22 09:52:48 +08:00
小杨 2641845ce0 fix:新增图标; 2024-11-22 09:52:21 +08:00
朱浩 e1a12ff0e0 个别文字说明修改 2024-11-22 09:48:43 +08:00
“zouyf” bd50a7cdf0 Merge branch 'main' into zouyf_dev 2024-11-22 09:42:15 +08:00
“zouyf” 94e609164a 替换菁优网填空标识 2024-11-22 09:41:58 +08:00
朱浩 4fbd77c40c Merge remote-tracking branch 'origin/main' 2024-11-22 09:34:38 +08:00
baigl dfe1a23327 Merge pull request 'baigl' (#56) from baigl into main
Reviewed-on: #56
2024-11-22 09:34:23 +08:00
白了个白 437bff2cdd Merge branch 'main' of http://27.128.240.72:3000/zhuhao/AIx_Smarttalk_WS into baigl 2024-11-22 09:33:32 +08:00
白了个白 6a6d932852 作业管理 2024-11-22 09:33:04 +08:00
朱浩 d3b5493810 Merge remote-tracking branch 'origin/main' 2024-11-22 09:18:02 +08:00
白了个白 2fd17df429 1 2024-11-21 17:35:52 +08:00
lyc fbf906f390 Merge pull request 'lyc-dev' (#55) from lyc-dev into main 2024-11-21 17:34:05 +08:00
朱浩 398de60dcd 关闭自动同步文件,超过150M文件不允许加入课程 2024-11-21 17:32:47 +08:00
zdg 82091fbef5 Merge branch 'main' of http://27.128.240.72:3000/zhuhao/AIx_Smarttalk_WS into zdg_dev 2024-11-19 17:26:11 +08:00
zdg 76a14264d7 屏蔽git原始信息 2024-11-19 17:25:57 +08:00
118 changed files with 754 additions and 116 deletions

View File

@ -1,6 +1,6 @@
{
"name": "aix-win-ws",
"version": "2.5.3",
"version": "2.5.4",
"description": "",
"main": "./out/main/index.js",
"author": "上海交大重庆人工智能研究院",

View File

@ -137,7 +137,7 @@ function createMainWindow() {
// mainWindow.setAlwaysOnTop(true, "screen-saver") // 将窗口设置为顶层窗口
// mainWindow.setVisibleOnAllWorkspaces(true) // 如果窗口在所有工作区都可见
// mainWindow.maximize();
mainWindow.maximize();
// 第三步: 开启remote服务
remote.enable(mainWindow.webContents)
}

View File

@ -8,7 +8,7 @@
http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:"
/> -->
<meta http-equiv="Content-Security-Policy" content="connect-src * blob: data:; default-src 'self'; script-src 'self' 'unsafe-eval' http://www.wiris.net; style-src 'self' 'unsafe-inline' http://www.wiris.net; media-src * blob:;img-src * 'self' data: blob:;font-src 'self' http://www.wiris.net;" />
<meta http-equiv="Content-Security-Policy" content="connect-src * blob: data:; default-src 'self'; script-src 'self' 'unsafe-eval' http://www.wiris.net 'unsafe-inline'; style-src 'self' 'unsafe-inline' http://www.wiris.net; media-src * blob:;img-src * 'self' data: blob:;font-src 'self' http://www.wiris.net;" />
</head>

View File

@ -13,12 +13,12 @@
importPPTXFile(files)
mainMenuVisible = false
}">
<PopoverMenuItem>导入 pptx 文件测试版</PopoverMenuItem>
<PopoverMenuItem>导入 pptx 文件</PopoverMenuItem>
</FileInput>
<PopoverMenuItem @click="setDialogForExport('pptx')">导出文件</PopoverMenuItem>
<PopoverMenuItem @click="resetSlides(); mainMenuVisible = false">重置幻灯片</PopoverMenuItem>
<PopoverMenuItem @click="goLink('https://github.com/pipipi-pikachu/PPTist/issues')">意见反馈</PopoverMenuItem>
<PopoverMenuItem @click="goLink('https://github.com/pipipi-pikachu/PPTist/blob/master/doc/Q&A.md')">常见问题</PopoverMenuItem>
<!-- <PopoverMenuItem @click="goLink('https://github.com/pipipi-pikachu/PPTist/issues')">意见反馈</PopoverMenuItem> -->
<!-- <PopoverMenuItem @click="goLink('https://github.com/pipipi-pikachu/PPTist/blob/master/doc/Q&A.md')">常见问题</PopoverMenuItem> -->
<PopoverMenuItem @click="mainMenuVisible = false; hotkeyDrawerVisible = true">快捷操作</PopoverMenuItem>
</template>
<div class="menu-item"><IconHamburgerButton class="icon" /></div>

View File

@ -2,12 +2,21 @@
import request from '@/utils/request'
// 查询知识点列表
export function listKnowlegepoint(query) {
return request({
url: '/point/list',
method: 'get',
params: query
})
}
return request({
url: '/point/list',
method: 'get',
params: query
})
}
// 查询知识点列表
export function listKnowlegepointFormat(query) {
return request({
url: '/point/formatList',
method: 'get',
params: query
})
}
// 查询一级知识点查下级所有层级

View File

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 4723712 */
src: url('iconfont.woff2?t=1732173266977') format('woff2'),
url('iconfont.woff?t=1732173266977') format('woff'),
url('iconfont.ttf?t=1732173266977') format('truetype');
src: url('iconfont.woff2?t=1732240267757') format('woff2'),
url('iconfont.woff?t=1732240267757') format('woff'),
url('iconfont.ttf?t=1732240267757') format('truetype');
}
.iconfont {
@ -13,6 +13,10 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-shangchuan:before {
content: "\e61b";
}
.icon-jiqiren_o:before {
content: "\eb62";
}

File diff suppressed because one or more lines are too long

View File

@ -5,6 +5,13 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "4942656",
"name": "上传",
"font_class": "shangchuan",
"unicode": "e61b",
"unicode_decimal": 58907
},
{
"icon_id": "5387814",
"name": "机器人_o",

View File

@ -0,0 +1,65 @@
<template>
<div id="aptContainer"></div>
</template>
<script>
export default {
props: {
modelValue:[Object,String], // json
width: { //
type: Number,
default: 0
},
height: { //
type: Number,
default: 0
},
domId: { // ID
type: String,
default: 'aptContainer'
}
},
data() {
return {
description: 'apt预览组件-konva',
// konva
konvaStage:null, konvaLayer:null
}
},
mounted() { //
this.initKonva()
},
watch: {
modelValue: {
immediate: true, //
handler(v) { // 12
!!v && this.loadJson()
}
}
},
methods: {
// Konva
initKonva() {
if(!this.width || !this.height) return false // 使
this.konvaStage = new Konva.Stage({
container: "aptContainer", // id of container <div>
width: this.width,
height: this.height,
});
},
//
loadJson(data = this.modelValue) {
if (!data) return false
this.konvaStage = Konva.Node.create(data, this.domId)
}
}
}
</script>
<style lang="scss" scoped>
.aptContainer{
height: 100%;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
}
</style>

View File

@ -0,0 +1,27 @@
<template>
<el-link :href="href" target="_blank" type="primary">
<slot name="content">{{content}}</slot>
</el-link>
</template>
<script>
export default {
props: {
href: { //
type: String,
default: 'https://beian.miit.gov.cn'
}
},
data() {
return {
description: '备案号-添加',
content: '备案号苏ICP备2024097972号-1'
}
},
methods: {
}
}
</script>
<style lang="less" scoped>
</style>

View File

@ -1,6 +1,5 @@
<template>
<!-- 表单-组件(自定义) -->
<slot>
<el-row v-bind="rows||{}">
<!-- 其他内容-start -->
<slot name="start"></slot>
@ -80,7 +79,6 @@
<!-- 其他内容-end -->
<slot name="end"></slot>
</el-row>
</slot>
</template>
<script>
export default {
@ -161,7 +159,9 @@ export default {
// --
confirm() {
const formRefs = this.$refs.form
const isBool = this.$attrs.confirm && typeof this.$attrs.confirm === 'function'
this.$emit('confirm', formRefs)
if (isBool) this.$attrs.confirm(formRefs)
},
//
resetFields() {

View File

@ -0,0 +1,44 @@
<template>
<el-pagination v-bind="pageOpt"
@change="(...agrs) => $emit('pageChange',...agrs)"
v-model:current-page="curPage" v-model:page-size="limit" />
</template>
<script>
// -
export default {
name: 'cPage',
props: {
page: { type: Object, required: true },
},
data() {
return {
def: {
// size: 'small',
background: false,
pageSizes: [10, 20, 30, 40, 50, 100],
layout: 'total, sizes, prev, pager, next',
// layout: 'total, sizes, prev, pager, next, jumper',
}
}
},
computed: {
pageOpt() {
return Object.assign({},this.def, this.page)
},
curPage: {
get() { return this.page.curPage },
set(val) { this.page.curPage = val }
},
limit: {
get() { return this.page.limit },
set(val) { this.page.limit = val }
},
},
created() {},
methods: {}
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,280 @@
<template>
<!-- 组件 -->
<div>
<slot name="top">
<div class="c-search" :hide="!isFold||isDef" v-if="fItems.length" :style="$attrs.style">
<transition name="el-zoom-in-top">
<c-form v-show="isFold" ref="search" v-if="!noSearch && search" :form="search"
:itemOption="fItems" :option="fOption" :onEnter="fOnEnter" :rows="fRows" :cols="fCols">
<template v-for="item in formSlots" #[item]="data">
<slot :name="`f${item}`" v-bind="data"></slot>
</template>
<template #append>
<slot name="topAdd" v-if="$slots.topAdd"></slot>
<slot name="search" v-if="!$attrs.searchBtnNe">
<el-col style="text-align: center;margin: 5px 0 15px;">
<el-button icon="Search" type="primary" @click="$emit('change','query')">查询</el-button>
<el-button type="warning" @click="$emit('change','reset')">重置</el-button>
</el-col>
</slot>
</template>
</c-form>
</transition>
<div v-if="!isDef" :class="['fold',{hide:!isFold}]" @click="isFold=!isFold">
<!-- <i :class="'el-icon-arrow-' + (isFold?'down':'up')"></i> -->
<el-icon><component :is="isFold?'ArrowUp':'ArrowDown'"></component></el-icon>
</div>
</div>
</slot>
<slot name="start"></slot>
<div :class="['m-list',{'ne':!isMain, hide:!isFold}]">
<slot name="tStart"></slot>
<el-table ref="table" v-bind="tAttrs" v-on="tOns">
<template #empty><slot name="empty">{{emptyText}}</slot></template>
<template #append><slot name="append"></slot></template>
<slot>
<template v-for="(item, index) in optionItems" :key="index">
<el-table-column v-bind="item">
<!-- -表头-自定义 -->
<template #header="{column, $index}">
<slot :name="item.prop+'_header'" :column="column" :$index="$index">
<slot name="header" :column="column" :$index="$index">{{ item.label }}</slot>
</slot>
</template>
<!-- 列内容-自定义 -->
<template #default="{row, column, $index}" v-if="item.type!='selection'">
<slot :name="item.prop" :row="row" :column="column" :$index="$index" :value="row[item.prop]">
<span v-if="item.attrs" v-bind="item.attrs">{{ defVal(row,item, $index, $attrs, column) }}</span>
<slot v-else :row="row" :column="column" :$index="$index" :value="row[item.prop]">{{ defVal(row,item, $index, $attrs, column) }}</slot>
</slot>
</template>
</el-table-column>
</template>
</slot>
</el-table>
<slot name="end"></slot>
<slot name="page">
<c-page v-if="!noPage" :page="page" v-on="$attrs" class="c-page" border="false"></c-page>
</slot>
</div>
</div>
</template>
<script>
import cForm from './cForm.vue'
export default {
// inheritAttrs: false,
components: { cForm },
name: 'cTable',
props: {
option: Array, //
search: Object, //
fItems: { //
type: Array,
default: () => []
},
fOption: { // -
type: Object,
default: () => ({ labelW: '80px' })
// default: () => ({ inline: true, labelW: '80px', size: 'small' })
},
fOnEnter: Function, // ---
fRows: { // -
type: Object,
default: _ => ({ gutter: 20 })
},
fCols: { // - inline
type: Object,
default: _ => ({ span: 8, xs: 24, sm: 12, md: 8, lg: 6 })
},
emptyText: {
type: String,
default: '暂无数据'
},
isDef: { // -
type: Boolean,
default: true
},
isMain: { //
type: Boolean,
default: true
},
fold: { //
type: Boolean,
default: true
},
data: Object, //
page: Object, //
noSearch: Boolean, //
noPage: Boolean, //
noDef: Boolean, //
isMaxHeight: Boolean, //
},
data() {
return {
// -
formSlots: [], isFold: this.fold, height: null,
}
},
computed: {
optionItems() { //
const list = this.option || []
return list.map(o => {
const def = { align: 'center', showOverflowTooltip: true }
if (o.width && o.showOverflowTooltip == undefined){
o.showOverflowTooltip = true //
}
return this.noDef ? o : Object.assign(def, o)
})
.filter(o => o.show ?? true) // -show
.filter(o => o.visible ?? true) // -visible
},
tAttrs() { // $attrs
const attrs = {...this.$attrs}
Object.keys(attrs).forEach(key => {
//
if (!attrs[key]??null) delete attrs[key]
//
else if (/^page.*/.test(key)) delete attrs[key]
})
// 'style', 'class', 't-style', 't-class'
const tArr = Object.keys(attrs).filter(k => k.startsWith('t-'))
if (tArr.length) tArr.forEach(k => attrs[k.slice(2)] = attrs[k])
else ['style', 'class'].forEach(k => delete attrs[k])
//
const hArrs = ['height', 'max-height', 'maxHeight']
const isH = Object.keys(attrs).some(k => hArrs.includes(k))
//
if (!isH) attrs[this.isMaxHeight?'max-height':'height'] = 500
//
if (this.data) attrs.data = this.data
return attrs
},
tOns() { // $on
const attrs = {...this.$attrs}
return Object.keys(attrs).reduce((p, c, a ) => {
if(typeof attrs[c]=='function')p[c]=attrs[c]; return p
}, {})
}
},
created() {},
mounted() {
this.getFormSlots()
},
methods: {
// --
getFormSlots() {
const props = this.fItems.map(o => o.prop)
const keys = Object.keys(this.$slots)
this.formSlots = keys.filter(k => {
const isForm = /^f.*/.test(k) //
const isProp = props.some(p => k.endsWith(p)) // -
return isForm && isProp
}).map(k => k.replace(/^f/, '')) //
},
//
defVal(row, item, rowInd, attr, column) {
switch (item.type) {
case 'index': { // -ind
const { curPage, limit, offset } = attr.page || attr
const start = offset || (curPage - 1) * limit || 0
return rowInd + 1 + start
}
default:
return item.format ? item.format(row[item.prop], row, column, rowInd) : row[item.prop]
}
}
},
}
</script>
<style lang="scss" scoped>
// @import '~@/assets/styles/cmixin';
// $w | $h | $bg | $tBr $tBg
@mixin scrollBar($w:8px,$h:8px,$tBr:20px,
$bg:#d3dce6,$tBg:#99a9bf, $tHbg: #409eff) {
&::-webkit-scrollbar-track-piece {
background: $bg;
}
&::-webkit-scrollbar {
width: $w;
height: $h;
}
&::-webkit-scrollbar-thumb {
background: $tBg;
border-radius: $tBr;
@if $tHbg {
&:hover{
background: $tHbg;
}
}
}
}
:deep(.el-table){
.el-table__expand-column{
overflow: hidden;
}
.el-table__body-wrapper{
@include scrollBar;
}
}
// css
.c-search{
--bg: #fff;
padding-top: 10px;
// padding: 20px 20px 0;
background: var(--bg);
margin-bottom: 30px;
border-radius: 4px;
&[hide=true]{
margin: 0;
padding: 0;
}
.fold{
--box-color: rgba(24,144,255,0.2);
--box-hover-color: rgba(24,144,255,0.6);
width: 100px;
height: 20px;
cursor: pointer;
display: inline-block;
text-align: center;
position: absolute;
background: var(--bg);
border-radius: 0 0 50px 50px;
left: 50%;
transform: translate(-50%,5px);
box-shadow: 0px 3px 3px var(--box-color);
i{font-size: inherit;}
&:hover{
box-shadow: 0px 3px 3px var(--box-hover-color);
i{color: #1890ff;}
}
&.hide{
top: 12px;
border-radius: 50px 50px 0 0;
box-shadow: 0 -3px 3px var(--box-color);
&:hover{box-shadow: 0 -3px 3px var(--box-hover-color);}
}
}
:deep(.el-form){
.el-form-item{
margin-bottom: 10px;
}
}
}
//
.m-list{
padding: 20px;
border-radius: 4px;
&.ne{padding: 0;}
&.hide{
margin-top: 20px;
}
}
.c-page{
background: #fff;
margin-top: 10px;
justify-content: flex-end;
}
</style>

View File

@ -71,4 +71,9 @@ defineExpose({
justify-content: flex-end;
box-sizing: border-box;
}
:deep(.format-work-desc > :is(div):first-child){
display: inline-block;
}
</style>

View File

@ -103,7 +103,7 @@ const getCompletion = async (val) => {
type: 'robot',
msg: answer,
})
} finally {
loaded.value = false
}
@ -121,11 +121,11 @@ onMounted(() => {
let data = sessionStore.get('subject.curNode')
Object.assign(curNode, data);
let text = props.modeType == 1 ? '课标': props.modeType == 2 ? '教材' : '考试'
let text = props.modeType == 1||props.modeType == 2 ? '课标' : '考试'
let jsonKey = `${text}-${data.edustage}-${data.edusubject}`
console.log(jsonKey)
params.dataset_id = dataSetJson[jsonKey]
})
</script>
@ -156,7 +156,7 @@ onMounted(() => {
width: 100%;
justify-content: flex-start;
flex-direction: column;
}
.chart-item {
border-radius: 5px;
@ -261,4 +261,4 @@ onMounted(() => {
transform: scale(0.01);
}
}
</style>
</style>

View File

@ -187,10 +187,10 @@ const init = reactive({
min_height: props.minHeight,
draggable_modal: true,
extended_valid_elements: '*[.*]',
external_plugins: {
tiny_mce_wiris: `/tinymce/tool/@wiris/mathtype-tinymce6/plugin.min.js`,
//tiny_mce_wiris: `https://www.wiris.net/demo/plugins/tiny_mce/plugin.js`,
},
// external_plugins: {
// tiny_mce_wiris: getStaticUrl('/tinymce/tool/wiris/mathtype-tinymce6/plugin.min.js'),
// //tiny_mce_wiris: `https://www.wiris.net/demo/plugins/tiny_mce/plugin.js`,
// },
// setup: function (editor) {
// },

View File

@ -6,7 +6,7 @@
:style="type == 'design' ? ['top: 10px', 'justify-content: space-between'] : ['bottom: 10px', 'justify-content: center']">
<div class="left">
<!-- 前进回退 -->
<div class="blockBox" v-if="!readonly && width >= 1000">
<div class="blockBox" v-if="!readonly && (width >= 1000 || width==='100%')">
<el-tooltip effect="light" content="回退" placement="top">
<el-button :icon="RefreshLeft" circle :disabled="!canUndo" @click="undo" />
</el-tooltip>
@ -15,7 +15,7 @@
</el-tooltip>
</div>
<div class="blockBox">
<el-button @click="currentType = 'selection'"><el-image src="/src/assets/images/mouse-pointer.png"
<el-button @click="currentType = 'selection'"><el-image src="../../../src/assets/images/mouse-pointer.png"
style="width: 14px; height: 14px; color: silver" /></el-button>
</div>
<template v-if="type == 'design'">
@ -123,7 +123,7 @@
<!-- 边框样式 -->
<div class="blockBox">
<el-dropdown @command="updateStyle('lineDash', $event)" placement="top">
<el-button><el-image src="/src/assets/images/borderstyle.png"
<el-button><el-image src="../../../src/assets/images/borderstyle.png"
style="width: 14px; height: 14px"></el-image></el-button>
<template #dropdown>
<el-dropdown-menu>
@ -145,7 +145,7 @@
<!-- 边框粗细 -->
<div class="blockBox">
<el-dropdown @command="updateStyle('lineWidth', $event)" placement="top">
<el-button><el-image src="/src/assets/images/borderwidth.png"
<el-button><el-image src="../../../src/assets/images/borderwidth.png"
style="width: 14px; height: 14px"></el-image></el-button>
<template #dropdown>
<el-dropdown-menu>
@ -180,7 +180,7 @@
</div>
</template>
<!-- 滚动 -->
<div v-if="width >= 1000" class="blockBox">
<div v-if="width >= 1000 || width==='100%'" class="blockBox">
<template v-if="type == 'design'">
<el-tooltip effect="light" content="滚动至中心" placement="top">
<el-button icon="Operation" @click="scrollToCenter" />
@ -202,7 +202,7 @@
</div> -->
<!-- 橡皮擦显示网格清空 -->
<div v-if="width >= 1000" class="blockBox">
<div v-if="width >= 1000 || width==='100%'" class="blockBox">
<!-- 橡皮擦 -->
<el-tooltip effect="light" :content="currentType === 'eraser' ? '关闭橡皮擦' : '橡皮擦'" placement="top">
<el-button v-if="!readonly" :icon="Remove" circle :type="currentType === 'eraser' ? 'primary' : null"

View File

@ -59,14 +59,14 @@ export const processList = (row, aloneOption=false) => {
for(; j<workDescArr.length; j++){
const char = String.fromCharCode(65+j);
if (aloneOption) {
tmp += `<div style='width:100%;display:flex;padding: 2px 0'>${char}.${workDescArr[j]}</div>`;
tmp += `<div class="format-work-desc" style='width:100%;display:flex;padding: 2px 0'>${char}.${workDescArr[j]}</div>`;
}
else {
if(j%2 == 0){
tmp += `<div style='width:100%;display:flex;'>`;
}
tmp += `<div style='padding-left:10px;width:50%;overflow:hidden;text-overflow:ellipsis;font-size:0.9em;'>${char}.${workDescArr[j]}</div>`;
tmp += `<div class="format-work-desc" style='padding-left:10px;width:50%;overflow:hidden;text-overflow:ellipsis;font-size:0.9em;'>${char}.${workDescArr[j]}</div>`;
if(j%2 == 1){
tmp += '</div>';
}
@ -153,14 +153,14 @@ export const processList = (row, aloneOption=false) => {
for(; j<optionsArr.length; j++){
const char = String.fromCharCode(65+j);
if (aloneOption) {
tmp += `<div style='width:100%;display:flex;padding: 2px 0'>${char}.${optionsArr[j]}</div>`;
tmp += `<div class="format-work-desc" style='width:100%;display:flex;padding: 2px 0'>${char}.${optionsArr[j]}</div>`;
}
else {
if(j%2 == 0){
tmp += `<div style='width:100%;display:flex;'>`;
}
tmp += `<div style='padding-left: 10px; width: 50%'>${char}.${optionsArr[j]}</div>`;
tmp += `<div class="format-work-desc" style='padding-left: 10px; width: 50%'>${char}.${optionsArr[j]}</div>`;
if(j%2 == 1){
tmp += '</div>';
}
@ -280,14 +280,14 @@ export const processList = (row, aloneOption=false) => {
for(; j<workDescArr.length; j++){
const char = String.fromCharCode(65+j);
if (aloneOption) {
tmp += `<div style='width:100%;display:flex;padding: 2px 0'>${char}.${workDescArr[j]}</div>`;
tmp += `<div class="format-work-desc" style='width:100%;display:flex;padding: 2px 0'>${char}.${workDescArr[j]}</div>`;
}
else {
if(j%2 == 0){
tmp += `<div style='width:100%;display:flex;'>`;
}
tmp += `<div style='padding-left: 10px; width: 50%'>${char}.${workDescArr[j]}</div>`;
tmp += `<div class="format-work-desc" style='padding-left: 10px; width: 50%'>${char}.${workDescArr[j]}</div>`;
if(j%2 == 1){
tmp += '</div>';
}

View File

@ -117,4 +117,8 @@ export const coursewareTypeList = [
label:'素材',
value:6
},
{
label:'视频',
value:12
},
]

Some files were not shown because too many files have changed in this diff Show More