--fix 内容分类 改成从字典取值

This commit is contained in:
yuping
2023-01-13 18:17:07 +08:00
parent 05e9732e3d
commit 29582b6beb
6 changed files with 829 additions and 955 deletions

View File

@@ -32,6 +32,7 @@ export default createStore({
projectSys: [],//培训分类
pathmapPic: [],//学习路径背景图
memberInitInfo: [],//学员默认
sysType: [],//学员默认
},
getters: {},
mutations: {

View File

@@ -54,7 +54,7 @@
tree-default-expand-all
:fieldNames="{
children: 'children',
label: 'name',
label: 'dictCode',
value: 'dictName',
}"
:tree-data="sysTypeOptions"

View File

@@ -5,11 +5,11 @@
width="80%" @cancel="handleCancel" @ok="handleCancel">
<div class="modalHeader">
<div class="headerLeft">
<img style="width: 17px; height: 18px; margin-right: 8px" src="@/assets/images/basicinfo/add.png" />
<img style="width: 17px; height: 18px; margin-right: 8px" src="@/assets/images/basicinfo/add.png"/>
<span class="headerLeftText">预览</span>
</div>
<div style="margin-right: 57px; cursor: pointer">
<img @click="handleCancel" style="width: 22px; height: 22px" src="@/assets/images/basicinfo/close22.png" />
<img @click="handleCancel" style="width: 22px; height: 22px" src="@/assets/images/basicinfo/close22.png"/>
</div>
</div>
<div class="modalMain">
@@ -20,7 +20,7 @@
<div class="mbl_items">
<div class="item_nam">
<div class="asterisk_icon">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="img" />
<img src="@/assets/images/coursewareManage/asterisk.png" alt="img"/>
</div>
<span style="margin-right: 14px">课程名称</span>
</div>
@@ -33,17 +33,17 @@
<div class="mbl_items2">
<div class="item_nam">
<div class="asterisk_icon">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="img" />
<img src="@/assets/images/coursewareManage/asterisk.png" alt="img"/>
</div>
<span style="margin-right: 14px">封面图</span>
</div>
<img :src="detail.picUrl" alt="img" style="width: 100px; height: 100px" />
<img :src="detail.picUrl" alt="img" style="width: 100px; height: 100px"/>
</div>
<div class="mbl_items">
<div class="item_nam">
<div class="asterisk_icon">
<img style="width: 10px; height: 10px" src="@/assets/images/coursewareManage/asterisk.png"
alt="img" />
alt="img"/>
</div>
<span style="margin-right: 14px">目标人群</span>
</div>
@@ -66,13 +66,13 @@
<div class="mbl_items">
<div class="item_nam">
<div class="asterisk_icon">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="img" />
<img src="@/assets/images/coursewareManage/asterisk.png" alt="img"/>
</div>
<span style="margin-right: 14px">内容分类</span>
</div>
<div class="item_inp">
<div class="select i6_input">
{{ filterClassTxt(detail.categoryId) }}
{{ categoryName }}
</div>
</div>
</div>
@@ -99,7 +99,7 @@
<div class="mbl_items">
<div class="item_nam">
<div class="asterisk_icon">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="asterisk" />
<img src="@/assets/images/coursewareManage/asterisk.png" alt="asterisk"/>
</div>
<span style="margin-right: 14px">授课教师</span>
</div>
@@ -112,7 +112,7 @@
<div class="mbl_items2" v-if="detail.intro">
<div class="item_nam">
<div class="asterisk_icon">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="asterisk" />
<img src="@/assets/images/coursewareManage/asterisk.png" alt="asterisk"/>
</div>
<span style="margin-right: 14px">课程简介</span>
</div>
@@ -129,19 +129,19 @@
item.indexOf('jpg') !== -1 ||
item.indexOf('jpeg') !== -1 ||
item.indexOf('png') !== -1
" src="@/assets/images/coursewareManage/pngpic.png" />
" src="@/assets/images/coursewareManage/pngpic.png"/>
<div v-else>
<img v-if="item.indexOf('doc') !== -1" src="@/assets/images/coursewareManage/docpic.png" />
<img v-if="item.indexOf('doc') !== -1" src="@/assets/images/coursewareManage/docpic.png"/>
<div v-else>
<img v-if="item.indexOf('xls') !== -1" src="@/assets/images/coursewareManage/xlspic.png" />
<img v-if="item.indexOf('xls') !== -1" src="@/assets/images/coursewareManage/xlspic.png"/>
<div v-else>
<img v-if="item.indexOf('ppt') !== -1" src="@/assets/images/coursewareManage/pptpic.png" />
<img v-if="item.indexOf('ppt') !== -1" src="@/assets/images/coursewareManage/pptpic.png"/>
<div v-else>
<img v-if="item.indexOf('pdf') !== -1" src="@/assets/images/coursewareManage/pdfpic.png" />
<img v-if="item.indexOf('pdf') !== -1" src="@/assets/images/coursewareManage/pdfpic.png"/>
<div v-else>
<img v-if="item.indexOf('zip') !== -1"
src="@/assets/images/coursewareManage/zippic.png" />
<img v-else src="@/assets/images/coursewareManage/docpic.png" />
src="@/assets/images/coursewareManage/zippic.png"/>
<img v-else src="@/assets/images/coursewareManage/docpic.png"/>
</div>
</div>
</div>
@@ -169,7 +169,7 @@
item.lastIndexOf("-")
) + item.slice(item.lastIndexOf("."))
: item
}}
}}
</span>
</div>
@@ -196,7 +196,7 @@
</div>
<div class="fotarea">
<div style="border: 1px solid #ccc">
<div v-html="detail.outline" />
<div v-html="detail.outline"/>
</div>
</div>
</div>
@@ -211,8 +211,9 @@
</a-modal>
</template>
<script>
import { reactive, toRefs, defineComponent, ref } from "vue";
import {reactive, toRefs, defineComponent, ref, watch, computed} from "vue";
import * as api1 from "../../../api/index1";
import {useStore} from "vuex";
export default defineComponent({
props: {
@@ -222,11 +223,13 @@ export default defineComponent({
},
detail: {
type: Object,
default: () => { },
default: () => ({}),
},
},
setup(props, { emit }) {
setup(props, {emit}) {
console.log("props", props);
const store = useStore();
const state = reactive({
imgList: [],
options2222: [
@@ -359,15 +362,25 @@ export default defineComponent({
],
}
],
categoryName: '',
ceshi: "https://u-pre.boe.com/upload/测试下载ppt2-1671002026755.pptx",
ceshi2: "http://111.231.196.214:12016/测试下载ppt3-1671001683026.pptx",
locationHref: location.href.indexOf('http://') !== -1 ? 'http://111.231.196.214:12016/' : location.href.slice(0, location.href.indexOf('/m')) + '/upload/'
});
// item.slice(
// item.lastIndexOf("/") + 1,
// item.indexOf("-")
// ) + item.slice(item.lastIndexOf("."))
const sysTypeOptions = computed(() => store.state.sysType);
watch(() => props.detail.categoryId, () => {
state.categoryName = findClassFullName(sysTypeOptions.value)
})
function findClassFullName(list, name = '') {
return list && list.length && list
.map(e => props.detail.categoryId == e.dictCode ? name ? name + '-' + e.dictName : e.dictName : findClassFullName(e.children, name ? name + '-' + e.dictName : e.dictName))
.filter(name => name)
.join('') || ''
}
const filterTxt = (txt) => {
if (txt) {
return txt;
@@ -375,49 +388,6 @@ export default defineComponent({
return "-";
}
};
const filterClassTxt = (txt) => {
let str = "-";
if (txt) {
for (let i = 0; i < options2.value.length; i++) {
for (let j = 0; j < options2.value[i].children.length; j++) {
str = changeTreeSelectValue(String(txt))
// if (String(options2.value[i].children[j].value) === String(txt)) {
// str = options2.value[i].children[j].title;
// }
}
}
}
return str;
};
// 格式化树型结构选择数据
const changeTreeSelectValue = (values) => {
let data = state.options2222;
console.log(values, data)
let str = ''
for (let i = 0; i < data.length; i++) {
if (data[i].value == values) {
str = data[i].title
} else {
for (let j = 0; j < data[i].children.length; j++) {
if (data[i].children[j].value == values) {
str = data[i].title + '/' + data[i].children[j].title
} else {
if (data[i].children[j].children) {
for (let k = 0; k < data[i].children[j].children.length; k++) {
if (data[i].children[j].children[k].value == values) {
str = data[i].title + '/' + data[i].children[j].title + '/' + data[i].children[j].children[k].title
}
}
}
}
}
}
}
console.log('str-str-str-str', str)
state.fen_lei1 = str;
return str;
}
const filterSenceTxt = (txt) => {
let str = "-";
@@ -483,7 +453,6 @@ export default defineComponent({
return {
...toRefs(state),
filterTxt,
filterClassTxt,
filterSenceTxt,
handleCancel,
};

View File

@@ -138,26 +138,15 @@
</div>
<div class="item_inp">
<div class="select i6_input">
<!-- <a-select-->
<!-- :getPopupContainer="-->
<!-- (triggerNode) => {-->
<!-- return triggerNode.parentNode || document.body;-->
<!-- }-->
<!-- "-->
<!-- v-model:value="fen_lei"-->
<!-- dropdownClassName="dropdown-style"-->
<!-- style="width: 440px"-->
<!-- placeholder="请选择"-->
<!-- :options="options2"-->
<!-- allowClear-->
<!-- showSearch-->
<!-- />-->
<a-tree-select style="width: 440px" placeholder="请选择内容分类" :treeDefaultExpandAll="true"
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
" @change="changeTreeSelectValue" v-model:value="fen_lei" :tree-data="options2222">
:getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
v-model:value="fen_lei"
:tree-data="sysTypeOptions"
:fieldNames="{
children: 'children',
label: 'dictName',
value: 'dictCode',
}">
</a-tree-select>
</div>
</div>
@@ -326,8 +315,7 @@ import {
defineComponent,
ref,
shallowRef,
// onMounted,
onUnmounted,
onUnmounted, computed, watch,
} from "vue";
import { validateName } from "@/api/index1";
import { message } from "ant-design-vue";
@@ -336,11 +324,11 @@ import { fileUp } from "../../api/indexEval";
import * as api1 from "../../api/index1";
import "@wangeditor/editor/dist/css/style.css";
import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
//import ProjectManager from "@/components/project/ProjectManagerNew";
import NameInput from "@/components/project/NameInput";
import FJUpload from "@/components/common/FJUpload";
import * as moment from "moment";
import * as api2 from "../../api/indexAudit";
import {useStore} from "vuex";
export default defineComponent({
components: {
@@ -348,7 +336,6 @@ export default defineComponent({
Toolbar,
FJUpload,
NameInput,
//ProjectManager,
},
props: {
xzinputV1: {
@@ -514,6 +501,19 @@ export default defineComponent({
}
],
});
const store = useStore();
const sysTypeOptions = computed(() => store.state.sysType);
watch(()=>state.fen_lei,()=>{
state.fen_lei1 = findClassFullName(sysTypeOptions.value)
})
function findClassFullName(list,name=''){
return list && list.length && list.map(e=>{
return state.fen_lei == e.dictCode ? name?name+'-'+e.dictName:e.dictName : findClassFullName(e.children,name?name+'-'+e.dictName:e.dictName)
}).filter(name=>name).join('')
}
// 删除文件返回参数
const changevalue = (e) => {
@@ -855,8 +855,7 @@ export default defineComponent({
state.feng_mian_1 = item.picUrl;
state.qdms_inputV2 = item.targetUser;
state.qdms_inputV3 = item.meaning;
state.fen_lei = String(item.categoryId);
state.fen_lei1 = changeTreeSelectValue(String(item.categoryId));
state.fen_lei = item.categoryId;
state.chang_jin = String(item.sceneContent ? item.sceneContent : '');
state.tags_val = item.tips ? item.tips.split(",") : [];
state.qdms_inputV6 = item.intro;
@@ -911,37 +910,9 @@ export default defineComponent({
});
};
// 格式化树型结构选择数据
const changeTreeSelectValue = (values) => {
let data = state.options2222;
console.log(values, data)
let str = ''
for (let i = 0; i < data.length; i++) {
if (data[i].value == values) {
str = data[i].title
} else {
for (let j = 0; j < data[i].children.length; j++) {
if (data[i].children[j].value == values) {
str = data[i].title + '/' + data[i].children[j].title
} else {
if (data[i].children[j].children) {
for (let k = 0; k < data[i].children[j].children.length; k++) {
if (data[i].children[j].children[k].value == values) {
str = data[i].title + '/' + data[i].children[j].title + '/' + data[i].children[j].children[k].title
}
}
}
}
}
}
}
console.log('str-str-str-str', str)
state.fen_lei1 = str;
return str;
}
return {
...toRefs(state),
sysTypeOptions,
moment,
options2,
options3,
@@ -963,7 +934,6 @@ export default defineComponent({
handleCreated,
choicePic,
changevalue,
changeTreeSelectValue
};
},
});

View File

@@ -107,9 +107,10 @@
</div>
</template>
<script>
import { reactive, toRefs, onMounted } from "vue";
import {reactive, toRefs, onMounted, computed} from "vue";
import { courseListView } from "../../api/indexAudit";
import * as api1 from "@/api/index1";
import {useStore} from "vuex";
export default {
name: "CoursereViewed",
@@ -398,48 +399,19 @@ export default {
],
});
// 课程三级分类回显
const sHX = (data) => {
let str = '-'
let sdata = state.options2222
for (let i = 0; i < sdata.length; i++) {
for (let j = 0; j < sdata[i].children.length; j++) {
str = changeTreeSelectValue(String(data))
{/* if (String(sdata[i].children[j].value) === String(data)) {
str = sdata[i].children[j].title;
} */}
}
}
return str
const store = useStore();
const sysTypeOptions = computed(() => store.state.sysType);
function findClassFullName(list,classify,name=''){
return list && list.length && list.map(e=>{
return classify == e.dictCode ? name?name+'-'+e.dictName:e.dictName : findClassFullName(e.children,classify,name?name+'-'+e.dictName:e.dictName)
}).filter(name=>name).join('')
}
// 格式化树型结构选择数据
const changeTreeSelectValue = (values) => {
let data = state.options2222;
console.log(values, data)
let str = ''
for (let i = 0; i < data.length; i++) {
if (data[i].value == values) {
str = data[i].title
} else {
for (let j = 0; j < data[i].children.length; j++) {
if (data[i].children[j].value == values) {
str = data[i].title + '/' + data[i].children[j].title
} else {
if (data[i].children[j].children) {
for (let k = 0; k < data[i].children[j].children.length; k++) {
if (data[i].children[j].children[k].value == values) {
str = data[i].title + '/' + data[i].children[j].title + '/' + data[i].children[j].children[k].title
}
}
}
}
}
}
}
console.log('str-str-str-str', str)
state.fen_lei1 = str;
return str;
// 课程三级分类回显
const sHX = (classify) => {
return findClassFullName(sysTypeOptions.value,classify) || '-'
}
const getList = () => {

View File

@@ -22,16 +22,8 @@
...calssifyList,
]"
/>-->
<a-tree-select :getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
" v-model:value="valueproj" show-search :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
<a-tree-select :getPopupContainer="triggerNode => triggerNode.parentNode || document.body" v-model:value="valueproj" show-search :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
placeholder="请选择内容分类" tree-default-expand-all :tree-data="options2222">
<template #title="{ value: val, title }">
<b v-if="val === '11111'" style="color: #08c">sss</b>
<template v-else>{{ title }}</template>
</template>
</a-tree-select>
</div>
<div class="inpbox1">
@@ -130,12 +122,13 @@
</div>
</template>
<script>
import { reactive, toRefs, onMounted, ref } from "vue";
import {reactive, toRefs, onMounted, ref, computed} from "vue";
import { list, courseAuditView, courseDetail } from "../../api/indexAudit";
import { message } from "ant-design-vue";
import SeeModal from "../courselibrary/components/seeModal.vue";
import { iframeUrl } from "../../api/method";
import * as api1 from "@/api/index1";
import {useStore} from "vuex";
export default {
name: "CoursereViewedN",
@@ -171,7 +164,7 @@ export default {
chooseCreater: null,
chooseOffId: null,
lookCourseModal: false, //预览
faceDetailObj: null,
faceDetailObj: {},
columns1: [
// {
// title: "序号",
@@ -257,7 +250,6 @@ export default {
<span
onClick={() => {
getFaceDetail(value.record.offId);
console.log(value.record);
}}
style="cursor:pointer;color:#387DF7"
>
@@ -406,20 +398,19 @@ export default {
}
],
});
const store = useStore();
const sysTypeOptions = computed(() => store.state.sysType);
function findClassFullName(list,classify,name=''){
return list && list.length && list.map(e=>{
return classify == e.dictCode ? name?name+'-'+e.dictName:e.dictName : findClassFullName(e.children,classify,name?name+'-'+e.dictName:e.dictName)
}).filter(name=>name).join('')
}
// 课程三级分类回显
const sHX = (data) => {
let str = '-'
let sdata = state.options2222
for (let i = 0; i < sdata.length; i++) {
for (let j = 0; j < sdata[i].children.length; j++) {
str = changeTreeSelectValue(String(data))
// if (String(sdata[i].children[j].value) === String(data)) {
// str = sdata[i].children[j].title;
// }
}
}
return str
const sHX = (classify) => {
return findClassFullName(sysTypeOptions.value,classify) || '-'
}
/*
@@ -642,35 +633,6 @@ export default {
}));
});
// 格式化树型结构选择数据
const changeTreeSelectValue = (values) => {
let data = state.options2222;
console.log(values, data)
let str = ''
for (let i = 0; i < data.length; i++) {
if (data[i].value == values) {
str = data[i].title
} else {
for (let j = 0; j < data[i].children.length; j++) {
if (data[i].children[j].value == values) {
str = data[i].title + '/' + data[i].children[j].title
} else {
if (data[i].children[j].children) {
for (let k = 0; k < data[i].children[j].children.length; k++) {
if (data[i].children[j].children[k].value == values) {
str = data[i].title + '/' + data[i].children[j].title + '/' + data[i].children[j].children[k].title
}
}
}
}
}
}
}
console.log('str-str-str-str', str)
state.fen_lei1 = str;
return str;
}
// 禁止用户编辑文本框内容
const onEditorFocus = (event) => {
event.enable(false);