feat:合并

This commit is contained in:
lixg
2022-12-14 15:48:40 +08:00
6 changed files with 180 additions and 164 deletions

View File

@@ -1,46 +1,54 @@
<!--
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-12-14 15:46:36
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-12-14 15:47:48
* @FilePath: /fe-manage/src/components/project/ProjectClass.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<!-- 评估管理-创建评估页面 -->
<template>
<a-select
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
v-model:value="id"
placeholder="请选择分类"
style="width: 100%"
:options="options"
allowClear
@change="change"
:disabled="disabled"
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
v-model:value="id"
placeholder="请选择分类"
style="width: 100%"
:options="options"
allowClear
@change="change"
:disabled="disabled"
>
</a-select>
</template>
<script setup>
import {computed, defineEmits, defineProps, onMounted, ref} from "vue";
import {useStore} from "vuex";
import { computed, defineEmits, defineProps } from "vue";
import { useStore } from "vuex";
const store = useStore();
const props = defineProps({
value: String,
disabled: String
})
const emit = defineEmits({})
disabled: String,
});
const emit = defineEmits({});
const options = ref([])
const options = computed(() =>
store.state.projectClass.map((e) => ({
value: parseInt(e.dictCode),
label: e.dictName,
}))
);
const id = computed(() => {
return props.value
})
onMounted(() => {
options.value = store.state.projectClass.map(e => ({value: parseInt(e.dictCode), label: e.dictName}))
})
return props.value;
});
function change(key, obj) {
emit('update:name', obj[0])
emit('update:value', key)
emit("update:name", obj[0]);
emit("update:value", key);
}
</script>

View File

@@ -1,27 +1,34 @@
<!--
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-12-14 15:46:36
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-12-14 15:47:21
* @FilePath: /fe-manage/src/components/project/ProjectLevel.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<template v-if="tag">
<div>{{ options?.find(e => e.value == id)?.label || '' }}</div>
<div>{{ options?.find((e) => e.value == id)?.label || "" }}</div>
</template>
<template v-else>
<a-select
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
v-model:value="id"
:options="options"
style="width: 100%"
placeholder="请选择项目级别"
@change="change"
:disabled="disabled"
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
v-model:value="id"
:options="options"
style="width: 100%"
placeholder="请选择项目级别"
@change="change"
:disabled="disabled"
/>
</template>
</template>
<script setup>
import {computed, defineEmits, defineProps, onMounted, ref} from "vue";
import {useStore} from "vuex";
import { computed, defineEmits, defineProps } from "vue";
import { useStore } from "vuex";
const store = useStore();
const props = defineProps({
@@ -29,23 +36,24 @@ const props = defineProps({
disabled: String,
tag: {
type: Boolean,
default: false
}
})
default: false,
},
});
const id = computed(() => {
return props.value || null
})
return props.value || null;
});
const emit = defineEmits({})
const emit = defineEmits({});
const options = ref([])
onMounted(() => {
options.value = store.state.projectLevel.map(e => ({value: parseInt(e.dictCode), label: e.dictName}))
})
const options = computed(() =>
store.state.projectLevel.map((e) => ({
value: parseInt(e.dictCode),
label: e.dictName,
}))
);
function change(key) {
emit('update:value', key)
emit("update:value", key);
}
</script>

View File

@@ -1,27 +1,34 @@
<!--
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-12-14 15:46:36
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-12-14 15:47:46
* @FilePath: /fe-manage/src/components/project/TrainClass.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<template v-if="tag">
<div>{{ options.find(e => e.value == id)?.label || '' }}</div>
<div>{{ options.find((e) => e.value == id)?.label || "" }}</div>
</template>
<template v-else>
<a-select
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
v-model:value="id"
:options="options"
style="width: 100%"
placeholder="请选择分类"
@change="change"
:disabled="disabled"
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
v-model:value="id"
:options="options"
style="width: 100%"
placeholder="请选择分类"
@change="change"
:disabled="disabled"
/>
</template>
</template>
<script setup>
import {computed, defineEmits, defineProps, onMounted, ref} from "vue";
import {useStore} from "vuex";
import { computed, defineEmits, defineProps } from "vue";
import { useStore } from "vuex";
const store = useStore();
@@ -30,24 +37,24 @@ const props = defineProps({
disabled: String,
tag: {
type: Boolean,
default: false
}
})
default: false,
},
});
const id = computed(() => {
return props.value
})
return props.value;
});
const emit = defineEmits({})
const emit = defineEmits({});
const options = ref([])
onMounted(() => {
options.value = store.state.projectSys.map(e => ({value: parseInt(e.dictCode), label: e.dictName}))
})
const options = computed(() =>
store.state.projectSys.map((e) => ({
value: parseInt(e.dictCode),
label: e.dictName,
}))
);
function change(key) {
emit('update:value', key)
emit("update:value", key);
}
</script>

View File

@@ -538,24 +538,6 @@
}}</span>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>项目说明</span></div>
<div class="setc_main">
<span style="color: #999999">{{
projectInfo.remark
}}</span>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>同步学习记录</span></div>
<div class="setc_main">
<a-radio v-model:checked="projectInfo.courseSyncFlag"
><span style="color: #333333"
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-radio
>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>项目级别</span></div>
<div class="setc_main">
@@ -568,14 +550,32 @@
<TrainClass :value="projectInfo.systemId" :tag="true"></TrainClass>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>同步学习记录</span></div>
<div class="setc_main">
<a-radio v-model:checked="projectInfo.courseSyncFlag" :disabled="true"
><span style="color: #333333"
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-radio
>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>是否BOEU实施</span></div>
<div class="setc_main">
<a-radio v-model:checked="projectInfo.boeFlag"
<a-radio v-model:checked="projectInfo.boeFlag" :disabled="true"
><span style="color: #333333">BOEU实施</span></a-radio
>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>项目说明</span></div>
<div class="setc_main">
<span style="color: #999999">{{
projectInfo.remark
}}</span>
</div>
</div>
</div>
</div>
</a-tab-pane>

View File

@@ -1146,29 +1146,13 @@
<span style="color: #999999">{{ sourceBelong }}</span>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>项目说明:</span></div>
<div class="setc_main">
<span style="color: #999999">{{ remark }}</span>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>同步学习记录:</span></div>
<div class="setc_main">
<a-radio v-model:checked="checkedSty" :disabled="true"
><span style="color: #333333"
>同步课程学习记录(如学员在课程库中拥有课程的学习记录,自动免修该课程)</span
></a-radio
>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>项目级别:</span></div>
<div class="setc_main">
<span style="color: #999999"
><ProjectLevel
v-model:value="level"
:disabled="true"
:tag="true"
></ProjectLevel
></span>
</div>
@@ -1179,11 +1163,21 @@
<span style="color: #999999"
><TrainClass
v-model:value="systemId"
:disabled="true"
:tag="true"
></TrainClass
></span>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>同步学习记录:</span></div>
<div class="setc_main">
<a-radio v-model:checked="checkedSty" :disabled="true"
><span style="color: #333333"
>同步课程学习记录(如学员在课程库中拥有课程的学习记录,自动免修该课程)</span
></a-radio
>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>是否BOEU实施</span></div>
<div class="setc_main">
@@ -1192,6 +1186,12 @@
>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>项目说明:</span></div>
<div class="setc_main">
<span style="color: #999999">{{ remark }}</span>
</div>
</div>
<div class="set_content" v-if="isPass">
<div class="setc_name"><span>审核意见:</span></div>
<div class="setc_main">

View File

@@ -31,18 +31,6 @@
/>
</div>
</div>
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">分类</div>
</div>
<div class="in select">
<ProjectClass v-model:value="projectInfo.category"></ProjectClass>
</div>
</div>
<div class="name" style="align-items: flex-start">
<div class="namebox" style="margin-top: 10px">
<img
@@ -132,37 +120,6 @@
></OrgClass>
</div>
</div>
<div class="name name2">
<div class="namebox">
<div class="inname" style="margin-top: 13px">模板说明</div>
</div>
<div class="in">
<a-textarea
v-model:value="projectInfo.remark"
style="height: 80px"
placeholder="请输入说明"
show-count
:maxlength="200"
/>
</div>
</div>
<div class="name name2">
<div class="namebox">
<div class="inname">同步学习记录</div>
</div>
<div class="in">
<a-checkbox v-model:checked="projectInfo.courseSyncFlag"
><span
style="
width: 100%;
color: rgba(109, 117, 132, 1);
font-size: 14px;
"
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-checkbox
>
</div>
</div>
<div class="name">
<div class="namebox">
<img
@@ -202,6 +159,39 @@
</a-radio-group>
</div>
</div>
<div class="name name2">
<div class="namebox">
<div class="inname">同步学习记录</div>
</div>
<div class="in">
<a-checkbox
v-model:checked="courseSyncFlag"
:disabled="viewDetail ? true : false"
><span
style="
width: 100%;
color: rgba(109, 117, 132, 1);
font-size: 14px;
"
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-checkbox
>
</div>
</div>
<div class="name name2">
<div class="namebox">
<div class="inname" style="margin-top: 13px">模板说明</div>
</div>
<div class="in">
<a-textarea
v-model:value="projectInfo.remark"
style="height: 80px"
placeholder="请输入说明"
show-count
:maxlength="200"
/>
</div>
</div>
</div>
</div>
<div class="footer">
@@ -220,7 +210,7 @@ import { ref, onMounted, watch } from "vue";
import { message } from "ant-design-vue";
import { useRouter, useRoute } from "vue-router";
import * as api from "../../api/indexTemplate";
import ProjectClass from "@/components/project/ProjectClass";
// import ProjectClass from "@/components/project/ProjectClass";
import TrainClass from "@/components/project/TrainClass";
import OrgClass from "@/components/project/OrgClass";
import ProjectManager from "@/components/project/ProjectManagerNew";
@@ -231,7 +221,7 @@ const router = useRouter();
const store = useStore();
const projectInfo = ref({});
const projectPic = ref([]);
const courseSyncFlag = ref(false);
onMounted(() => {
getDetail();
projectPic.value = store.state.projectPic.map((e) => ({
@@ -255,6 +245,7 @@ const getDetail = () =>
projectInfo.value.beginTime,
projectInfo.value.endTime,
];
projectInfo.value.courseSyncFlag = !!projectInfo.value.courseSyncFlag;
});
const backPage = () => {
@@ -290,6 +281,7 @@ const createProject = () => {
return;
}
}
projectInfo.value.courseSyncFlag = courseSyncFlag.value ? 1 : 0;
api
.templateEdit({
...projectInfo.value,
@@ -311,6 +303,7 @@ function managerChange(e, l, d, t) {
.active {
border: 2px solid rgba(78, 166, 255, 1);
}
.projectAdd {
width: 100%;
// height: inherit;