diff --git a/src/api/course/course.js b/src/api/course/course.js
index 9b4c2fa..a7ce23f 100644
--- a/src/api/course/course.js
+++ b/src/api/course/course.js
@@ -44,6 +44,7 @@ export function deleteCourse (params) {
// 查询课程列表
export function getCourseList (params) {
+ if(params.tag) params.tag = params.tag.toString();
return request({
url: courseApi.list,
method: 'get',
diff --git a/src/components/SearchCom/index.vue b/src/components/SearchCom/index.vue
index 39d5e84..23ae735 100644
--- a/src/components/SearchCom/index.vue
+++ b/src/components/SearchCom/index.vue
@@ -7,15 +7,18 @@
-
+
{{ j.name }}
-
+
{{ j.name }}
+
+
+
diff --git a/src/utils/util.js b/src/utils/util.js
index 6ec26e0..eaf6311 100644
--- a/src/utils/util.js
+++ b/src/utils/util.js
@@ -86,6 +86,30 @@ export function listToTree(list, tree, parentId) {
return tree
}
+// 词典集合转树
+export function dictToTree(list, tree, parentId) {
+ list.forEach(item => {
+ if (item.parentid === parentId) {
+ let item_ = {};
+ item_.title = item.name;
+ item_.value = item.value;
+ item_.key = item.id;
+ const child = { ...item_, children: [] };
+
+ dictToTree(list, child.children, item.value);
+
+ if (child.children.length <= 0) {
+ delete child.children
+ }else{
+ child.selectable = false;
+ }
+
+ tree.push(child)
+ }
+ })
+ return tree
+}
+
//列表转🌲
// export function list2Tree(list, parentId) {
// let obj = []
diff --git a/src/views/course/CourseAdd.vue b/src/views/course/CourseAdd.vue
index 0e65736..373aa25 100644
--- a/src/views/course/CourseAdd.vue
+++ b/src/views/course/CourseAdd.vue
@@ -9,35 +9,27 @@
-
+
-
+
+
+
-
+
{{ dataValue }}分钟
@@ -91,14 +83,7 @@
-
+
上传
@@ -114,7 +99,7 @@
-
+
{{ item.name }}
@@ -132,6 +117,7 @@ import { courseAdd, getCourseDetails } from '@/api/course/course'
import storage from 'store'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import { dictionaryDropDown } from '@/api/sys/dictionaryItem'
+import { dictToTree } from '@/utils/util'
export default {
name: 'step1',
@@ -140,17 +126,17 @@ export default {
dataValue: 1,
form: {
coverPath: '',
- tags:[],
- courseTags:[]
+ tags: [],
+ courseTags: [],
},
url: '',
previewVisible: false,
fileList: [],
previewImage: [],
dictPerson: [],
- dictCourseType: [],
+ dictCourseType: [], // 课程类别
industry: [],
- dictCourseTag:[],
+ dictCourseTag: [],
}
},
components: {
@@ -161,21 +147,20 @@ export default {
this.dictionaryDropDown()
if (this.$route.query.id) {
getCourseDetails({ id: this.$route.query.id }).then((res) => {
- this.form = res.data;
- this.form.isRequired = this.form.isRequired + '';
+ this.form = res.data
+ this.form.isRequired = this.form.isRequired + ''
- this.form.tags = [];
- this.form.courseTags.forEach((item,index) => {
- this.form.tags.push(item.dictValue.toString());
- });
+ this.form.tags = []
+ this.form.courseTags.forEach((item, index) => {
+ this.form.tags.push(item.dictValue.toString())
+ })
})
}
},
methods: {
//显示页面上的数字
- onChange(dataValue) {
- },
+ onChange(dataValue) {},
save() {
courseAdd(this.form).then((res) => {
if (res.code == 200) {
@@ -194,17 +179,18 @@ export default {
})
// 课程类别
dictionaryDropDown({ dictionaryCode: '0006' }).then((res) => {
- this.dictCourseType = res.data
+ // 词典转树结构
+ this.dictCourseType = dictToTree(res.data, [], 0)
})
// 人员类型
dictionaryDropDown({ dictionaryCode: '0005' }).then((res) => {
this.dictPerson = res.data
})
// 标签项 默认选中的多选框
- dictionaryDropDown({dictionaryCode: '0008'}).then((res) => {
+ dictionaryDropDown({ dictionaryCode: '0008' }).then((res) => {
const tagList = res.data
- for ( let i = 0; i < tagList.length; i++) {
- tagList[i].value = tagList[i].value.toString()
+ for (let i = 0; i < tagList.length; i++) {
+ tagList[i].value = tagList[i].value.toString()
}
this.dictCourseTag = tagList
})
@@ -225,8 +211,7 @@ export default {
hreader[ACCESS_TOKEN] = storage.get(ACCESS_TOKEN)
return hreader
},
- onSuccess(file) {
- },
+ onSuccess(file) {},
handleCancel() {
this.previewVisible = false
},
@@ -246,7 +231,7 @@ export default {
//标签选择器
handleTagChange(value) {
- this.form.tags = value;
+ this.form.tags = value
},
},
}
diff --git a/src/views/course/CourseList.vue b/src/views/course/CourseList.vue
index fdd5323..a2fddfb 100644
--- a/src/views/course/CourseList.vue
+++ b/src/views/course/CourseList.vue
@@ -32,6 +32,7 @@
import { STable, SearchCom } from '@/components'
import { getCourseList, deleteCourse } from '@/api/course/course'
import { dictionaryDropDown } from '@/api/sys/dictionaryItem'
+import { dictToTree } from '@/utils/util'
export default {
components: {
@@ -41,10 +42,11 @@ export default {
data() {
return {
dictCourseTag: [],
- queryParam: { courseName: this.$route.query.courseName || '' },
+ queryParam: { courseName: this.$route.query.courseName || '', tag: [] },
queryOptions: [
{ type: 'input', placeholder: '课程名称', key: 'courseName' },
- { type: 'select', placeholder: '请选择标签', key: 'tag', options: [] },
+ { type: 'select-dic-tree', placeholder: '请选择课程类别', key: 'courseType' , options: [] },
+ { type: 'select-dic', placeholder: '请选择标签', key: 'tag', mode: 'multiple', options: [] },
],
loadData: (parameter) => {
return getCourseList(Object.assign(parameter, this.queryParam)).then((res) => {
@@ -54,6 +56,7 @@ export default {
columns: [
{ title: '课程编号', width: '160px', align: 'center', dataIndex: 'courseCode', key: 'courseCode' },
{ title: '课程名称', width: 'auto', align: 'center', dataIndex: 'courseName', key: 'courseName' },
+ { title: '课程类别', width: 'auto', align: 'center', dataIndex: 'courseType', key: 'courseType' },
{ title: '课时/分', width: '160px', align: 'center', dataIndex: 'hour', key: 'hour' },
{ title: '数量', width: '160px', align: 'center', dataIndex: 'questionCount', key: 'questionCount' },
{ title: '操作', key: 'operation', width: '300px', align: 'center', scopedSlots: { customRender: 'action' } },
@@ -68,13 +71,16 @@ export default {
dictionaryDropDown() {
this.formLoading = false
+ //课程类别
+ dictionaryDropDown({ dictionaryCode: '0006' }).then((res) => {
+ this.queryOptions[1].options = dictToTree(res.data, [], 0);
+ })
+
//课程标签字典
dictionaryDropDown({ dictionaryCode: '0008' }).then((res) => {
- const tagList = res.data
- for (let i = 0; i < tagList.length; i++) {
- tagList[i].id = tagList[i].value.toString()
- }
- this.queryOptions[1].options = tagList
+ this.queryOptions[2].options = res.data
+
+
})
},
handleRefresh() {