【修改】修改试卷任务班级分配,试题的标题位置 #7

Merged
hyc merged 1 commits from hyc into master 2025-11-17 18:53:02 +08:00
14 changed files with 980 additions and 92 deletions

View File

@@ -439,56 +439,57 @@
<CodeEditor v-model="formData.analysis" :rows="10" /> <CodeEditor v-model="formData.analysis" :rows="10" />
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="keyword"> <el-tab-pane name="keyword">
<template #label> <template #label>
<div class="custom-tabs-label"> <div class="custom-tabs-label">
<p>关键字</p> <p>关键字</p>
<el-dropdown> <el-dropdown>
<span class="el-dropdown-link" @click.stop="false"> <span class="el-dropdown-link" @click.stop="false">
<div class="setting_icon"></div> <div class="setting_icon"></div>
</span> </span>
<template #dropdown> <template #dropdown>
<el-dropdown-menu> <el-dropdown-menu>
<el-dropdown-item @click="editKeyword('create')">新建</el-dropdown-item> <el-dropdown-item @click="editKeyword('create')">新建</el-dropdown-item>
<el-dropdown-item @click="editKeyword('delete')">删除</el-dropdown-item> <el-dropdown-item @click="editKeyword('update')">编辑</el-dropdown-item>
<el-dropdown-item @click="editKeyword('deleteall')" <el-dropdown-item @click="editKeyword('delete')">删除</el-dropdown-item>
>删除全部</el-dropdown-item <el-dropdown-item @click="editKeyword('deleteall')"
> >删除全部</el-dropdown-item
</el-dropdown-menu> >
</template> </el-dropdown-menu>
</el-dropdown> </template>
</div> </el-dropdown>
</template>
<div class="block">
<el-table
:data="formData.keywords"
style="width: 100%"
height="410"
@selection-change="handleKeywordSelectionChange"
>
<el-table-column type="index" width="50" />
<el-table-column type="selection" width="55" />
<el-table-column prop="keyword" label="关键字" />
</el-table>
<el-dialog
v-model="keyVisible"
title="编辑关键字"
width="50%"
style="height: auto"
:before-close="keyDialogClose"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<div class="main" style="width: 100%; height: 100%">
<el-input v-model="keyWordInput" placeholder="请输入关键字" size="large" />
<div class="dialog-footer" style="margin-top: 20px">
<el-button @click="keyDialogClose">取消</el-button>
<el-button type="primary" @click="confirmKeyDialogVisible"> 确定 </el-button>
</div> </div>
</template>
<div class="block">
<el-table
:data="keywordList"
style="width: 100%"
@selection-change="handleKeywordSelectionChange"
>
<el-table-column type="index" width="50" />
<el-table-column type="selection" width="55" />
<el-table-column prop="keyword" label="关键字" />
</el-table>
<el-dialog
v-model="keyVisible"
title="编辑关键字"
width="50%"
:before-close="keyDialogClose"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<div class="main" style="width: 100%; height: 30%">
<el-input v-model="keyWord" placeholder="请输入关键字" size="large" />
<div class="dialog-footer" style="margin-top: 20px;">
<el-button @click="keyDialogClose">取消</el-button>
<el-button type="primary" @click="confirmKeyDialogVisible">
确定
</el-button>
</div>
</div>
</el-dialog>
</div> </div>
</el-dialog> </el-tab-pane>
</div>
</el-tab-pane>
<el-tab-pane name="media"> <el-tab-pane name="media">
<template #label> <template #label>
<div class="custom-tabs-label"> <div class="custom-tabs-label">
@@ -1069,49 +1070,83 @@ const addKeywordFromSelection = () => {
} }
/** 关键字 Tab 相关 */ /** 关键字 Tab 相关 */
const multipleKeywordSelection = ref<any[]>([]) // 关键字
const keywordList = ref([] as any)
const multipleKeywordSelection = ref([] as any)
const handleKeywordSelectionChange = (val: any) => { const handleKeywordSelectionChange = (val: any) => {
multipleKeywordSelection.value = val multipleKeywordSelection.value = val
} }
const keyVisible = ref(false) const keyVisible = ref(false)
const keyEditType = ref('') const keyEditType = ref('')
const keyWordInput = ref('')
const keyWord = ref('')
const editKeyword = (key: string) => { const editKeyword = (key: string) => {
keyEditType.value = key keyEditType.value = key
if (key === 'create') { if (key === 'create') {
keyWordInput.value = '' keyWord.value = ''
keyVisible.value = true
} else if (key === 'update') {
if (multipleKeywordSelection.value.length === 0) {
ElMessage.warning('请先选择一个要编辑的关键字')
return
}
keyWord.value = multipleKeywordSelection.value[0].keyword
keyVisible.value = true keyVisible.value = true
} else if (key === 'delete') { } else if (key === 'delete') {
if (multipleKeywordSelection.value.length === 0) { if (multipleKeywordSelection.value.length === 0) {
message.warning('请选择要删除的关键字') ElMessage.warning('请选择要删除的关键字')
return return
} }
ElMessageBox.confirm('确定要删除选中的关键字吗?').then(() => { keywordList.value = keywordList.value.filter(
const selectedKeywords = multipleKeywordSelection.value.map((item) => item.keyword) item => !multipleKeywordSelection.value.includes(item)
formData.value.keywords = formData.value.keywords.filter( )
(item) => !selectedKeywords.includes(item.keyword) ElMessage.success('已删除选中项')
)
})
} else if (key === 'deleteall') { } else if (key === 'deleteall') {
ElMessageBox.confirm('确定要删除所有关键字吗?').then(() => { keywordList.value = []
formData.value.keywords = [] ElMessage.success('已清空关键字列表')
})
} }
updateKeywordsToForm()
} }
const updateKeywordsToForm = () => {
const keywordStr = keywordList.value
.map(item => item.keyword)
.filter(k => k && k.trim() !== '')
.join(',')
formData.value.keywords = keywordStr
console.log(formData.value.keywords+"formData.value.keywords")
}
function setKao() {
kaoDialogVisible.value = true
}
const keyDialogClose = () => { const keyDialogClose = () => {
keyVisible.value = false keyVisible.value = false
} }
const confirmKeyDialogVisible = () => { const confirmKeyDialogVisible = () => {
if (keyEditType.value === 'create' && keyWordInput.value) { if (keyEditType.value === 'create') {
if (formData.value.keywords.some((item) => item.keyword === keyWordInput.value)) { keywordList.value.push({
message.warning('关键字已存在') keyword: keyWord.value
return })
} } else if (keyEditType.value === 'update') {
formData.value.keywords.push({ keyword: keyWordInput.value }) multipleKeywordSelection.value.forEach(item => {
item.keyword = keyWord.value
})
} else if (keyEditType.value === 'delete') {
keywordList.value = keywordList.value.filter(
item => !multipleKeywordSelection.value.includes(item)
)
} else if (keyEditType.value === 'deleteall') {
keywordList.value = []
} }
updateKeywordsToForm()
keyVisible.value = false keyVisible.value = false
} }
@@ -1249,7 +1284,6 @@ const openPoints = async () => {
:deep(.el-dialog) { :deep(.el-dialog) {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 85vh;
.el-dialog__header { .el-dialog__header {
border-bottom: 1px solid #ededed; border-bottom: 1px solid #ededed;
} }

View File

@@ -179,7 +179,7 @@
<template #dropdown> <template #dropdown>
<el-dropdown-menu> <el-dropdown-menu>
<el-dropdown-item @click="editKeyword('create')">新建</el-dropdown-item> <el-dropdown-item @click="editKeyword('create')">新建</el-dropdown-item>
<el-dropdown-item @click="editKeyword('create')">编辑</el-dropdown-item> <el-dropdown-item @click="editKeyword('update')">编辑</el-dropdown-item>
<el-dropdown-item @click="editKeyword('delete')">删除</el-dropdown-item> <el-dropdown-item @click="editKeyword('delete')">删除</el-dropdown-item>
<el-dropdown-item @click="editKeyword('deleteall')" <el-dropdown-item @click="editKeyword('deleteall')"
>删除全部</el-dropdown-item >删除全部</el-dropdown-item
@@ -367,12 +367,53 @@ const handleKeywordSelectionChange = (val: any) => {
const keyVisible = ref(false) const keyVisible = ref(false)
const keyEditType = ref('') const keyEditType = ref('')
const keyWord = ref([null]) const keyWord = ref('')
const editKeyword = (key) => {
const editKeyword = (key: string) => {
keyEditType.value = key keyEditType.value = key
keyVisible.value = true
if (key === 'create') {
keyWord.value = ''
keyVisible.value = true
} else if (key === 'update') {
if (multipleKeywordSelection.value.length === 0) {
ElMessage.warning('请先选择一个要编辑的关键字')
return
}
keyWord.value = multipleKeywordSelection.value[0].keyword
keyVisible.value = true
} else if (key === 'delete') {
if (multipleKeywordSelection.value.length === 0) {
ElMessage.warning('请先选择要删除的关键字')
return
}
keywordList.value = keywordList.value.filter(
item => !multipleKeywordSelection.value.includes(item)
)
ElMessage.success('已删除选中项')
} else if (key === 'deleteall') {
keywordList.value = []
ElMessage.success('已清空关键字列表')
}
updateKeywordsToForm()
} }
const updateKeywordsToForm = () => {
const keywordStr = keywordList.value
.map(item => item.keyword)
.filter(k => k && k.trim() !== '')
.join(',')
formData.value.keywords = keywordStr
console.log(formData.value.keywords+"formData.value.keywords")
}
function setKao() {
kaoDialogVisible.value = true
}
const keyDialogClose = () => { const keyDialogClose = () => {
keyVisible.value = false keyVisible.value = false
} }
@@ -381,8 +422,19 @@ const confirmKeyDialogVisible = () => {
keywordList.value.push({ keywordList.value.push({
keyword: keyWord.value keyword: keyWord.value
}) })
} else if (keyEditType.value === 'update') {
multipleKeywordSelection.value.forEach(item => {
item.keyword = keyWord.value
})
} else if (keyEditType.value === 'delete') {
keywordList.value = keywordList.value.filter(
item => !multipleKeywordSelection.value.includes(item)
)
} else if (keyEditType.value === 'deleteall') {
keywordList.value = []
} }
updateKeywordsToForm()
keyVisible.value = false keyVisible.value = false
} }

View File

@@ -109,6 +109,57 @@
<Editor v-model="formData.analysis" height="150px" /> <Editor v-model="formData.analysis" height="150px" />
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="keyword">
<template #label>
<div class="custom-tabs-label">
<p>关键字</p>
<el-dropdown>
<span class="el-dropdown-link" @click.stop="false">
<div class="setting_icon"></div>
</span>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="editKeyword('create')">新建</el-dropdown-item>
<el-dropdown-item @click="editKeyword('update')">编辑</el-dropdown-item>
<el-dropdown-item @click="editKeyword('delete')">删除</el-dropdown-item>
<el-dropdown-item @click="editKeyword('deleteall')"
>删除全部</el-dropdown-item
>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
</template>
<div class="block">
<el-table
:data="keywordList"
style="width: 100%"
@selection-change="handleKeywordSelectionChange"
>
<el-table-column type="index" width="50" />
<el-table-column type="selection" width="55" />
<el-table-column prop="keyword" label="关键字" />
</el-table>
<el-dialog
v-model="keyVisible"
title="编辑关键字"
width="50%"
:before-close="keyDialogClose"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<div class="main" style="width: 100%; height: 100%">
<el-input v-model="keyWord" placeholder="请输入关键字" size="large" />
<div class="dialog-footer" style="margin-top: 20px;">
<el-button @click="keyDialogClose">取消</el-button>
<el-button type="primary" @click="confirmKeyDialogVisible">
确定
</el-button>
</div>
</div>
</el-dialog>
</div>
</el-tab-pane>
<el-tab-pane name="answer"> <el-tab-pane name="answer">
<template #label> <template #label>
<div class="custom-tabs-label"> <div class="custom-tabs-label">
@@ -492,16 +543,11 @@ const rightActiveName = ref('annex')
const rightHandleClick = (tab, e) => { const rightHandleClick = (tab, e) => {
rightActiveName.value = tab.paneName.value rightActiveName.value = tab.paneName.value
} }
// 关键字
const multipleKeywordSelection = ref([] as any)
const handleKeywordSelectionChange = (val: any) => {
multipleKeywordSelection.value = val
}
const selections = ref([]) const selections = ref([])
const handleSelectionChange = (rows) => { const handleSelectionChange = (rows) => {
selections.value = rows selections.value = rows
} }
const keyWord = ref([null])
/** 添加/修改操作 */ /** 添加/修改操作 */
const FileRef = ref() const FileRef = ref()
@@ -713,6 +759,88 @@ const openPoints = async () => {
await getTree() await getTree()
dialogVisiblePoints.value = true dialogVisiblePoints.value = true
} }
// 关键字
const keywordList = ref([] as any)
const multipleKeywordSelection = ref([] as any)
const handleKeywordSelectionChange = (val: any) => {
multipleKeywordSelection.value = val
}
const keyVisible = ref(false)
const keyEditType = ref('')
const keyWord = ref('')
const editKeyword = (key: string) => {
keyEditType.value = key
if (key === 'create') {
keyWord.value = ''
keyVisible.value = true
} else if (key === 'update') {
if (multipleKeywordSelection.value.length === 0) {
ElMessage.warning('请先选择一个要编辑的关键字')
return
}
keyWord.value = multipleKeywordSelection.value[0].keyword
keyVisible.value = true
} else if (key === 'delete') {
if (multipleKeywordSelection.value.length === 0) {
ElMessage.warning('请先选择要删除的关键字')
return
}
keywordList.value = keywordList.value.filter(
item => !multipleKeywordSelection.value.includes(item)
)
ElMessage.success('已删除选中项')
} else if (key === 'deleteall') {
keywordList.value = []
ElMessage.success('已清空关键字列表')
}
updateKeywordsToForm()
}
const updateKeywordsToForm = () => {
const keywordStr = keywordList.value
.map(item => item.keyword)
.filter(k => k && k.trim() !== '')
.join(',')
formData.value.keywords = keywordStr
console.log(formData.value.keywords+"formData.value.keywords")
}
function setKao() {
kaoDialogVisible.value = true
}
const keyDialogClose = () => {
keyVisible.value = false
}
const confirmKeyDialogVisible = () => {
if (keyEditType.value === 'create') {
keywordList.value.push({
keyword: keyWord.value
})
} else if (keyEditType.value === 'update') {
multipleKeywordSelection.value.forEach(item => {
item.keyword = keyWord.value
})
} else if (keyEditType.value === 'delete') {
keywordList.value = keywordList.value.filter(
item => !multipleKeywordSelection.value.includes(item)
)
} else if (keyEditType.value === 'deleteall') {
keywordList.value = []
}
updateKeywordsToForm()
keyVisible.value = false
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.edit-dialog { .edit-dialog {

View File

@@ -110,6 +110,57 @@
<Editor v-model="formData.analysis" height="150px" /> <Editor v-model="formData.analysis" height="150px" />
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="keyword">
<template #label>
<div class="custom-tabs-label">
<p>关键字</p>
<el-dropdown>
<span class="el-dropdown-link" @click.stop="false">
<div class="setting_icon"></div>
</span>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="editKeyword('create')">新建</el-dropdown-item>
<el-dropdown-item @click="editKeyword('update')">编辑</el-dropdown-item>
<el-dropdown-item @click="editKeyword('delete')">删除</el-dropdown-item>
<el-dropdown-item @click="editKeyword('deleteall')"
>删除全部</el-dropdown-item
>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
</template>
<div class="block">
<el-table
:data="keywordList"
style="width: 100%"
@selection-change="handleKeywordSelectionChange"
>
<el-table-column type="index" width="50" />
<el-table-column type="selection" width="55" />
<el-table-column prop="keyword" label="关键字" />
</el-table>
<el-dialog
v-model="keyVisible"
title="编辑关键字"
width="50%"
:before-close="keyDialogClose"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<div class="main" style="width: 100%; height: 100%">
<el-input v-model="keyWord" placeholder="请输入关键字" size="large" />
<div class="dialog-footer" style="margin-top: 20px;">
<el-button @click="keyDialogClose">取消</el-button>
<el-button type="primary" @click="confirmKeyDialogVisible">
确定
</el-button>
</div>
</div>
</el-dialog>
</div>
</el-tab-pane>
<el-tab-pane name="answer"> <el-tab-pane name="answer">
<template #label> <template #label>
<div class="custom-tabs-label"> <div class="custom-tabs-label">
@@ -418,16 +469,11 @@ const rightActiveName = ref('annex')
const rightHandleClick = (tab, e) => { const rightHandleClick = (tab, e) => {
rightActiveName.value = tab.paneName.value rightActiveName.value = tab.paneName.value
} }
// 关键字
const multipleKeywordSelection = ref([] as any)
const handleKeywordSelectionChange = (val: any) => {
multipleKeywordSelection.value = val
}
const selections = ref([]) const selections = ref([])
const handleSelectionChange = (rows) => { const handleSelectionChange = (rows) => {
selections.value = rows selections.value = rows
} }
const keyWord = ref([null])
/** 添加/修改操作 */ /** 添加/修改操作 */
const FileRef = ref() const FileRef = ref()
@@ -623,6 +669,89 @@ const openPoints = async () => {
await getTree() await getTree()
dialogVisiblePoints.value = true dialogVisiblePoints.value = true
} }
// 关键字
const keywordList = ref([] as any)
const multipleKeywordSelection = ref([] as any)
const handleKeywordSelectionChange = (val: any) => {
multipleKeywordSelection.value = val
}
const keyVisible = ref(false)
const keyEditType = ref('')
const keyWord = ref('')
const editKeyword = (key: string) => {
keyEditType.value = key
if (key === 'create') {
keyWord.value = ''
keyVisible.value = true
} else if (key === 'update') {
if (multipleKeywordSelection.value.length === 0) {
ElMessage.warning('请先选择一个要编辑的关键字')
return
}
keyWord.value = multipleKeywordSelection.value[0].keyword
keyVisible.value = true
} else if (key === 'delete') {
if (multipleKeywordSelection.value.length === 0) {
ElMessage.warning('请先选择要删除的关键字')
return
}
keywordList.value = keywordList.value.filter(
item => !multipleKeywordSelection.value.includes(item)
)
ElMessage.success('已删除选中项')
} else if (key === 'deleteall') {
keywordList.value = []
ElMessage.success('已清空关键字列表')
}
updateKeywordsToForm()
}
const updateKeywordsToForm = () => {
const keywordStr = keywordList.value
.map(item => item.keyword)
.filter(k => k && k.trim() !== '')
.join(',')
formData.value.keywords = keywordStr
console.log(formData.value.keywords+"formData.value.keywords")
}
function setKao() {
kaoDialogVisible.value = true
}
const keyDialogClose = () => {
keyVisible.value = false
}
const confirmKeyDialogVisible = () => {
if (keyEditType.value === 'create') {
keywordList.value.push({
keyword: keyWord.value
})
} else if (keyEditType.value === 'update') {
multipleKeywordSelection.value.forEach(item => {
item.keyword = keyWord.value
})
} else if (keyEditType.value === 'delete') {
keywordList.value = keywordList.value.filter(
item => !multipleKeywordSelection.value.includes(item)
)
} else if (keyEditType.value === 'deleteall') {
keywordList.value = []
}
updateKeywordsToForm()
keyVisible.value = false
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.edit-dialog { .edit-dialog {

View File

@@ -110,6 +110,59 @@
<Editor v-model="formData.analysis" height="150px" /> <Editor v-model="formData.analysis" height="150px" />
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="keyword">
<template #label>
<div class="custom-tabs-label">
<p>关键字</p>
<el-dropdown>
<span class="el-dropdown-link" @click.stop="false">
<div class="setting_icon"></div>
</span>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="editKeyword('create')">新建</el-dropdown-item>
<el-dropdown-item @click="editKeyword('update')">编辑</el-dropdown-item>
<el-dropdown-item @click="editKeyword('delete')">删除</el-dropdown-item>
<el-dropdown-item @click="editKeyword('deleteall')"
>删除全部</el-dropdown-item
>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
</template>
<div class="block">
<el-table
:data="keywordList"
style="width: 100%"
@selection-change="handleKeywordSelectionChange"
>
<el-table-column type="index" width="50" />
<el-table-column type="selection" width="55" />
<el-table-column prop="keyword" label="关键字" />
</el-table>
<el-dialog
v-model="keyVisible"
title="编辑关键字"
width="50%"
:before-close="keyDialogClose"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<div class="main" style="width: 100%; height: 100%">
<el-input v-model="keyWord" placeholder="请输入关键字" size="large" />
<div class="dialog-footer" style="margin-top: 20px;">
<el-button @click="keyDialogClose">取消</el-button>
<el-button type="primary" @click="confirmKeyDialogVisible">
确定
</el-button>
</div>
</div>
</el-dialog>
</div>
</el-tab-pane>
<el-tab-pane name="answer"> <el-tab-pane name="answer">
<template #label> <template #label>
<div class="custom-tabs-label"> <div class="custom-tabs-label">
@@ -470,6 +523,91 @@ const submitForm = async () => {
} }
} }
// 关键字
const keywordList = ref([] as any)
const multipleKeywordSelection = ref([] as any)
const handleKeywordSelectionChange = (val: any) => {
multipleKeywordSelection.value = val
}
const keyVisible = ref(false)
const keyEditType = ref('')
const keyWord = ref('')
const editKeyword = (key: string) => {
keyEditType.value = key
if (key === 'create') {
keyWord.value = ''
keyVisible.value = true
} else if (key === 'update') {
if (multipleKeywordSelection.value.length === 0) {
ElMessage.warning('请先选择一个要编辑的关键字')
return
}
keyWord.value = multipleKeywordSelection.value[0].keyword
keyVisible.value = true
} else if (key === 'delete') {
if (multipleKeywordSelection.value.length === 0) {
ElMessage.warning('请先选择要删除的关键字')
return
}
keywordList.value = keywordList.value.filter(
item => !multipleKeywordSelection.value.includes(item)
)
ElMessage.success('已删除选中项')
} else if (key === 'deleteall') {
keywordList.value = []
ElMessage.success('已清空关键字列表')
}
updateKeywordsToForm()
}
const updateKeywordsToForm = () => {
const keywordStr = keywordList.value
.map(item => item.keyword)
.filter(k => k && k.trim() !== '')
.join(',')
formData.value.keywords = keywordStr
console.log(formData.value.keywords+"formData.value.keywords")
}
function setKao() {
kaoDialogVisible.value = true
}
const keyDialogClose = () => {
keyVisible.value = false
}
const confirmKeyDialogVisible = () => {
if (keyEditType.value === 'create') {
keywordList.value.push({
keyword: keyWord.value
})
} else if (keyEditType.value === 'update') {
multipleKeywordSelection.value.forEach(item => {
item.keyword = keyWord.value
})
} else if (keyEditType.value === 'delete') {
keywordList.value = keywordList.value.filter(
item => !multipleKeywordSelection.value.includes(item)
)
} else if (keyEditType.value === 'deleteall') {
keywordList.value = []
}
updateKeywordsToForm()
keyVisible.value = false
}
/** 重置表单 */ /** 重置表单 */
const resetForm = () => { const resetForm = () => {
formData.value = { formData.value = {

View File

@@ -110,6 +110,57 @@
<Editor v-model="formData.analysis" height="150px" /> <Editor v-model="formData.analysis" height="150px" />
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="keyword">
<template #label>
<div class="custom-tabs-label">
<p>关键字</p>
<el-dropdown>
<span class="el-dropdown-link" @click.stop="false">
<div class="setting_icon"></div>
</span>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="editKeyword('create')">新建</el-dropdown-item>
<el-dropdown-item @click="editKeyword('update')">编辑</el-dropdown-item>
<el-dropdown-item @click="editKeyword('delete')">删除</el-dropdown-item>
<el-dropdown-item @click="editKeyword('deleteall')"
>删除全部</el-dropdown-item
>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
</template>
<div class="block">
<el-table
:data="keywordList"
style="width: 100%"
@selection-change="handleKeywordSelectionChange"
>
<el-table-column type="index" width="50" />
<el-table-column type="selection" width="55" />
<el-table-column prop="keyword" label="关键字" />
</el-table>
<el-dialog
v-model="keyVisible"
title="编辑关键字"
width="50%"
:before-close="keyDialogClose"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<div class="main" style="width: 100%; height: 100%">
<el-input v-model="keyWord" placeholder="请输入关键字" size="large" />
<div class="dialog-footer" style="margin-top: 20px;">
<el-button @click="keyDialogClose">取消</el-button>
<el-button type="primary" @click="confirmKeyDialogVisible">
确定
</el-button>
</div>
</div>
</el-dialog>
</div>
</el-tab-pane>
<el-tab-pane name="answer"> <el-tab-pane name="answer">
<template #label> <template #label>
<div class="custom-tabs-label"> <div class="custom-tabs-label">
@@ -891,6 +942,87 @@ const openPoints = async () => {
await getTree() await getTree()
dialogVisiblePoints.value = true dialogVisiblePoints.value = true
} }
// 关键字
const keywordList = ref([] as any)
const multipleKeywordSelection = ref([] as any)
const handleKeywordSelectionChange = (val: any) => {
multipleKeywordSelection.value = val
}
const keyVisible = ref(false)
const keyEditType = ref('')
const keyWord = ref('')
const editKeyword = (key: string) => {
keyEditType.value = key
if (key === 'create') {
keyWord.value = ''
keyVisible.value = true
} else if (key === 'update') {
if (multipleKeywordSelection.value.length === 0) {
ElMessage.warning('请先选择一个要编辑的关键字')
return
}
keyWord.value = multipleKeywordSelection.value[0].keyword
keyVisible.value = true
} else if (key === 'delete') {
if (multipleKeywordSelection.value.length === 0) {
ElMessage.warning('请先选择要删除的关键字')
return
}
keywordList.value = keywordList.value.filter(
item => !multipleKeywordSelection.value.includes(item)
)
ElMessage.success('已删除选中项')
} else if (key === 'deleteall') {
keywordList.value = []
ElMessage.success('已清空关键字列表')
}
updateKeywordsToForm()
}
const updateKeywordsToForm = () => {
const keywordStr = keywordList.value
.map(item => item.keyword)
.filter(k => k && k.trim() !== '')
.join(',')
formData.value.keywords = keywordStr
console.log(formData.value.keywords+"formData.value.keywords")
}
function setKao() {
kaoDialogVisible.value = true
}
const keyDialogClose = () => {
keyVisible.value = false
}
const confirmKeyDialogVisible = () => {
if (keyEditType.value === 'create') {
keywordList.value.push({
keyword: keyWord.value
})
} else if (keyEditType.value === 'update') {
multipleKeywordSelection.value.forEach(item => {
item.keyword = keyWord.value
})
} else if (keyEditType.value === 'delete') {
keywordList.value = keywordList.value.filter(
item => !multipleKeywordSelection.value.includes(item)
)
} else if (keyEditType.value === 'deleteall') {
keywordList.value = []
}
updateKeywordsToForm()
keyVisible.value = false
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.edit-dialog { .edit-dialog {

View File

@@ -110,6 +110,57 @@
<Editor v-model="formData.analysis" height="150px" /> <Editor v-model="formData.analysis" height="150px" />
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="keyword">
<template #label>
<div class="custom-tabs-label">
<p>关键字</p>
<el-dropdown>
<span class="el-dropdown-link" @click.stop="false">
<div class="setting_icon"></div>
</span>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="editKeyword('create')">新建</el-dropdown-item>
<el-dropdown-item @click="editKeyword('update')">编辑</el-dropdown-item>
<el-dropdown-item @click="editKeyword('delete')">删除</el-dropdown-item>
<el-dropdown-item @click="editKeyword('deleteall')"
>删除全部</el-dropdown-item
>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
</template>
<div class="block">
<el-table
:data="keywordList"
style="width: 100%"
@selection-change="handleKeywordSelectionChange"
>
<el-table-column type="index" width="50" />
<el-table-column type="selection" width="55" />
<el-table-column prop="keyword" label="关键字" />
</el-table>
<el-dialog
v-model="keyVisible"
title="编辑关键字"
width="50%"
:before-close="keyDialogClose"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<div class="main" style="width: 100%; height: 100%">
<el-input v-model="keyWord" placeholder="请输入关键字" size="large" />
<div class="dialog-footer" style="margin-top: 20px;">
<el-button @click="keyDialogClose">取消</el-button>
<el-button type="primary" @click="confirmKeyDialogVisible">
确定
</el-button>
</div>
</div>
</el-dialog>
</div>
</el-tab-pane>
<el-tab-pane name="answer"> <el-tab-pane name="answer">
<template #label> <template #label>
<div class="custom-tabs-label"> <div class="custom-tabs-label">
@@ -908,6 +959,89 @@ const openPoints = async () => {
await getTree() await getTree()
dialogVisiblePoints.value = true dialogVisiblePoints.value = true
} }
// 关键字
const keywordList = ref([] as any)
const multipleKeywordSelection = ref([] as any)
const handleKeywordSelectionChange = (val: any) => {
multipleKeywordSelection.value = val
}
const keyVisible = ref(false)
const keyEditType = ref('')
const keyWord = ref('')
const editKeyword = (key: string) => {
keyEditType.value = key
if (key === 'create') {
keyWord.value = ''
keyVisible.value = true
} else if (key === 'update') {
if (multipleKeywordSelection.value.length === 0) {
ElMessage.warning('请先选择一个要编辑的关键字')
return
}
keyWord.value = multipleKeywordSelection.value[0].keyword
keyVisible.value = true
} else if (key === 'delete') {
if (multipleKeywordSelection.value.length === 0) {
ElMessage.warning('请先选择要删除的关键字')
return
}
keywordList.value = keywordList.value.filter(
item => !multipleKeywordSelection.value.includes(item)
)
ElMessage.success('已删除选中项')
} else if (key === 'deleteall') {
keywordList.value = []
ElMessage.success('已清空关键字列表')
}
updateKeywordsToForm()
}
const updateKeywordsToForm = () => {
const keywordStr = keywordList.value
.map(item => item.keyword)
.filter(k => k && k.trim() !== '')
.join(',')
formData.value.keywords = keywordStr
console.log(formData.value.keywords+"formData.value.keywords")
}
function setKao() {
kaoDialogVisible.value = true
}
const keyDialogClose = () => {
keyVisible.value = false
}
const confirmKeyDialogVisible = () => {
if (keyEditType.value === 'create') {
keywordList.value.push({
keyword: keyWord.value
})
} else if (keyEditType.value === 'update') {
multipleKeywordSelection.value.forEach(item => {
item.keyword = keyWord.value
})
} else if (keyEditType.value === 'delete') {
keywordList.value = keywordList.value.filter(
item => !multipleKeywordSelection.value.includes(item)
)
} else if (keyEditType.value === 'deleteall') {
keywordList.value = []
}
updateKeywordsToForm()
keyVisible.value = false
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.edit-dialog { .edit-dialog {

View File

@@ -109,6 +109,57 @@
<div class="block"> <div class="block">
<Editor v-model="formData.analysis" height="150px" /> <Editor v-model="formData.analysis" height="150px" />
</div> </div>
</el-tab-pane>
<el-tab-pane name="keyword">
<template #label>
<div class="custom-tabs-label">
<p>关键字</p>
<el-dropdown>
<span class="el-dropdown-link" @click.stop="false">
<div class="setting_icon"></div>
</span>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="editKeyword('create')">新建</el-dropdown-item>
<el-dropdown-item @click="editKeyword('update')">编辑</el-dropdown-item>
<el-dropdown-item @click="editKeyword('delete')">删除</el-dropdown-item>
<el-dropdown-item @click="editKeyword('deleteall')"
>删除全部</el-dropdown-item
>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
</template>
<div class="block">
<el-table
:data="keywordList"
style="width: 100%"
@selection-change="handleKeywordSelectionChange"
>
<el-table-column type="index" width="50" />
<el-table-column type="selection" width="55" />
<el-table-column prop="keyword" label="关键字" />
</el-table>
<el-dialog
v-model="keyVisible"
title="编辑关键字"
width="50%"
:before-close="keyDialogClose"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<div class="main" style="width: 100%; height: 100%">
<el-input v-model="keyWord" placeholder="请输入关键字" size="large" />
<div class="dialog-footer" style="margin-top: 20px;">
<el-button @click="keyDialogClose">取消</el-button>
<el-button type="primary" @click="confirmKeyDialogVisible">
确定
</el-button>
</div>
</div>
</el-dialog>
</div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="answer"> <el-tab-pane name="answer">
<template #label> <template #label>
@@ -969,6 +1020,90 @@ const openPoints = async () => {
await getTree() await getTree()
dialogVisiblePoints.value = true dialogVisiblePoints.value = true
} }
// 关键字
const keywordList = ref([] as any)
const multipleKeywordSelection = ref([] as any)
const handleKeywordSelectionChange = (val: any) => {
multipleKeywordSelection.value = val
}
const keyVisible = ref(false)
const keyEditType = ref('')
const keyWord = ref('')
const editKeyword = (key: string) => {
keyEditType.value = key
if (key === 'create') {
keyWord.value = ''
keyVisible.value = true
} else if (key === 'update') {
if (multipleKeywordSelection.value.length === 0) {
ElMessage.warning('请先选择一个要编辑的关键字')
return
}
keyWord.value = multipleKeywordSelection.value[0].keyword
keyVisible.value = true
} else if (key === 'delete') {
if (multipleKeywordSelection.value.length === 0) {
ElMessage.warning('请先选择要删除的关键字')
return
}
keywordList.value = keywordList.value.filter(
item => !multipleKeywordSelection.value.includes(item)
)
ElMessage.success('已删除选中项')
} else if (key === 'deleteall') {
keywordList.value = []
ElMessage.success('已清空关键字列表')
}
updateKeywordsToForm()
}
const updateKeywordsToForm = () => {
const keywordStr = keywordList.value
.map(item => item.keyword)
.filter(k => k && k.trim() !== '')
.join(',')
formData.value.keywords = keywordStr
console.log(formData.value.keywords+"formData.value.keywords")
}
function setKao() {
kaoDialogVisible.value = true
}
const keyDialogClose = () => {
keyVisible.value = false
}
const confirmKeyDialogVisible = () => {
if (keyEditType.value === 'create') {
keywordList.value.push({
keyword: keyWord.value
})
} else if (keyEditType.value === 'update') {
multipleKeywordSelection.value.forEach(item => {
item.keyword = keyWord.value
})
} else if (keyEditType.value === 'delete') {
keywordList.value = keywordList.value.filter(
item => !multipleKeywordSelection.value.includes(item)
)
} else if (keyEditType.value === 'deleteall') {
keywordList.value = []
}
updateKeywordsToForm()
keyVisible.value = false
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.edit-dialog { .edit-dialog {

View File

@@ -123,7 +123,8 @@ const confirmSelection = () => {
// 发送请求,包含 taskId 和选中的选项 // 发送请求,包含 taskId 和选中的选项
const requestData = { const requestData = {
taskId: selectedTaskId.value, // 选中的 taskId taskId: selectedTaskId.value, // 选中的 taskId
options: selectedOptions.value // 选中的复选框内容 options: selectedOptions.value, // 选中的复选框内容
taskType:'1'
}; };
submitSelection(requestData) submitSelection(requestData)

View File

@@ -122,7 +122,8 @@ const confirmSelection = () => {
// 发送请求,包含 taskId 和选中的选项 // 发送请求,包含 taskId 和选中的选项
const requestData = { const requestData = {
taskId: selectedTaskId.value, // 选中的 taskId taskId: selectedTaskId.value, // 选中的 taskId
options: selectedOptions.value // 选中的复选框内容 options: selectedOptions.value, // 选中的复选框内容
taskType:'2'
}; };
submitSelection(requestData) submitSelection(requestData)

View File

@@ -122,7 +122,8 @@ const confirmSelection = () => {
// 发送请求,包含 taskId 和选中的选项 // 发送请求,包含 taskId 和选中的选项
const requestData = { const requestData = {
taskId: selectedTaskId.value, // 选中的 taskId taskId: selectedTaskId.value, // 选中的 taskId
options: selectedOptions.value // 选中的复选框内容 options: selectedOptions.value ,// 选中的复选框内容
taskType:'5'
}; };
submitSelection(requestData) submitSelection(requestData)

View File

@@ -122,7 +122,8 @@ const confirmSelection = () => {
// 发送请求,包含 taskId 和选中的选项 // 发送请求,包含 taskId 和选中的选项
const requestData = { const requestData = {
taskId: selectedTaskId.value, // 选中的 taskId taskId: selectedTaskId.value, // 选中的 taskId
options: selectedOptions.value // 选中的复选框内容 options: selectedOptions.value, // 选中的复选框内容
taskType:'4'
}; };
submitSelection(requestData) submitSelection(requestData)

View File

@@ -122,7 +122,8 @@ const confirmSelection = () => {
// 发送请求,包含 taskId 和选中的选项 // 发送请求,包含 taskId 和选中的选项
const requestData = { const requestData = {
taskId: selectedTaskId.value, // 选中的 taskId taskId: selectedTaskId.value, // 选中的 taskId
options: selectedOptions.value // 选中的复选框内容 options: selectedOptions.value, // 选中的复选框内容
taskType:'3'
}; };
submitSelection(requestData) submitSelection(requestData)

View File

@@ -122,7 +122,8 @@ const confirmSelection = () => {
// 发送请求,包含 taskId 和选中的选项 // 发送请求,包含 taskId 和选中的选项
const requestData = { const requestData = {
taskId: selectedTaskId.value, // 选中的 taskId taskId: selectedTaskId.value, // 选中的 taskId
options: selectedOptions.value // 选中的复选框内容 options: selectedOptions.value, // 选中的复选框内容
taskType:'0'
}; };
submitSelection(requestData) submitSelection(requestData)