mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-17 14:56:46 +08:00
Merge branch '250213-prod-master_1202-gx' into test20250220
This commit is contained in:
21
package-lock.json
generated
21
package-lock.json
generated
@@ -3727,8 +3727,6 @@
|
|||||||
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz",
|
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz",
|
||||||
"integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
|
"integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fast-deep-equal": "^3.1.1",
|
"fast-deep-equal": "^3.1.1",
|
||||||
"json-schema-traverse": "^1.0.0",
|
"json-schema-traverse": "^1.0.0",
|
||||||
@@ -3740,9 +3738,7 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
|
||||||
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
|
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true,
|
|
||||||
"peer": true
|
|
||||||
},
|
},
|
||||||
"node_modules/ajv-keywords": {
|
"node_modules/ajv-keywords": {
|
||||||
"version": "3.5.2",
|
"version": "3.5.2",
|
||||||
@@ -14457,6 +14453,7 @@
|
|||||||
"integrity": "sha512-yl+5qhpjd8e1G4cMXfORkkBlvtPCIgmRf3IYCWYDKIQ7m+PPa5iTm4feiNmCMD6yGqQWMhhK/7M3oWGL9boKwg==",
|
"integrity": "sha512-yl+5qhpjd8e1G4cMXfORkkBlvtPCIgmRf3IYCWYDKIQ7m+PPa5iTm4feiNmCMD6yGqQWMhhK/7M3oWGL9boKwg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
|
"@babel/core": "^7.12.16",
|
||||||
"@babel/helper-compilation-targets": "^7.12.16",
|
"@babel/helper-compilation-targets": "^7.12.16",
|
||||||
"@babel/helper-module-imports": "^7.12.13",
|
"@babel/helper-module-imports": "^7.12.13",
|
||||||
"@babel/plugin-proposal-class-properties": "^7.12.13",
|
"@babel/plugin-proposal-class-properties": "^7.12.13",
|
||||||
@@ -14469,6 +14466,7 @@
|
|||||||
"@vue/babel-plugin-jsx": "^1.0.3",
|
"@vue/babel-plugin-jsx": "^1.0.3",
|
||||||
"@vue/babel-preset-jsx": "^1.1.2",
|
"@vue/babel-preset-jsx": "^1.1.2",
|
||||||
"babel-plugin-dynamic-import-node": "^2.3.3",
|
"babel-plugin-dynamic-import-node": "^2.3.3",
|
||||||
|
"core-js": "^3.8.3",
|
||||||
"core-js-compat": "^3.8.3",
|
"core-js-compat": "^3.8.3",
|
||||||
"semver": "^7.3.4"
|
"semver": "^7.3.4"
|
||||||
},
|
},
|
||||||
@@ -15334,14 +15332,15 @@
|
|||||||
"resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz",
|
"resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz",
|
||||||
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
|
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {},
|
"requires": {
|
||||||
|
"ajv": "^8.0.0"
|
||||||
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ajv": {
|
"ajv": {
|
||||||
"version": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz",
|
"version": "8.12.0",
|
||||||
|
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz",
|
||||||
"integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
|
"integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"peer": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"fast-deep-equal": "^3.1.1",
|
"fast-deep-equal": "^3.1.1",
|
||||||
"json-schema-traverse": "^1.0.0",
|
"json-schema-traverse": "^1.0.0",
|
||||||
@@ -15353,9 +15352,7 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
|
"resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
|
||||||
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
|
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true,
|
|
||||||
"peer": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -75,6 +75,13 @@ export const affiliationDelById = (id)=>http.post(`/admin/affiliation/delById?id
|
|||||||
export const isEnable = (obj) => http.post(`/admin/affiliation/isEnable`,obj)
|
export const isEnable = (obj) => http.post(`/admin/affiliation/isEnable`,obj)
|
||||||
//撤回培训发生组织
|
//撤回培训发生组织
|
||||||
export const affiliatIsConfirm = (id) => http.post(`/admin/affiliation/isConfirm?id=${id}`)
|
export const affiliatIsConfirm = (id) => http.post(`/admin/affiliation/isConfirm?id=${id}`)
|
||||||
|
//删除 待提交 ,拒绝 的培训发生组织
|
||||||
|
export const affiliatRemoveById = (id) => http.post(`/admin/affiliation/removeById?id=${id}`)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//讲师费统计详情
|
//讲师费统计详情
|
||||||
export const expenseSummaryById = (obj) => http.get( `/admin/expenseSummary/queryById?id=${obj.id}&name=${obj.name}&trainOrgId=${obj.trainOrgId||''}&pageNo=${obj.pageNo}&pageSize=${obj.pageSize}`)
|
export const expenseSummaryById = (obj) => http.get( `/admin/expenseSummary/queryById?id=${obj.id}&name=${obj.name}&trainOrgId=${obj.trainOrgId||''}&pageNo=${obj.pageNo}&pageSize=${obj.pageSize}`)
|
||||||
//撤回讲师费统计详情
|
//撤回讲师费统计详情
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export const addTeacherFee= (obj) => http.post('/admin/teacherExpense/addTeacher
|
|||||||
export const deleteInTeacher= (obj) => http.post(`/admin/teacher/delByIdr?id=${obj}`)
|
export const deleteInTeacher= (obj) => http.post(`/admin/teacher/delByIdr?id=${obj}`)
|
||||||
//修改讲师费信息
|
//修改讲师费信息
|
||||||
export const updateTeacherFee= (obj) => http.post('/admin/teacherExpense/editTeacherExpense',obj)
|
export const updateTeacherFee= (obj) => http.post('/admin/teacherExpense/editTeacherExpense',obj)
|
||||||
//修改讲师费状态提交
|
//修改讲师费状态提交/admin/expenseBill
|
||||||
export const updateStatusSubmit= (obj) => http.post('/admin/teacherExpense/confirm',obj)
|
export const updateStatusSubmit= (obj) => http.post('/admin/teacherExpense/confirm',obj)
|
||||||
//修改讲师费状态撤回
|
//修改讲师费状态撤回
|
||||||
export const approveTeacherFee= (obj) => http.post('/admin/teacherExpense/withdraw',obj)
|
export const approveTeacherFee= (obj) => http.post('/admin/teacherExpense/withdraw',obj)
|
||||||
@@ -57,5 +57,7 @@ export const CreateSummary= () => http.post('/admin/expenseBill/CreateSummary')
|
|||||||
export const queryExpnseByBillId= (obj) => http.get('/admin/expenseBill/queryExpnseByBillId',{params:obj})
|
export const queryExpnseByBillId= (obj) => http.get('/admin/expenseBill/queryExpnseByBillId',{params:obj})
|
||||||
//
|
//
|
||||||
export const CreateSummaryAgain= (id) => http.post(`/admin/expenseBill/createSummaryAgain?billId=${id}`)
|
export const CreateSummaryAgain= (id) => http.post(`/admin/expenseBill/createSummaryAgain?billId=${id}`)
|
||||||
|
//删除 费用审批删除
|
||||||
|
export const expenseBillDelById = (id)=>http.post(`/admin/expenseBill/delById?id=${id}`)
|
||||||
//
|
//
|
||||||
export const submitApproval= (obj) => http.post('/admin/expenseBill/submitApproval',obj)
|
export const submitApproval= (obj) => http.post('/admin/expenseBill/submitApproval',obj)
|
||||||
@@ -195,7 +195,11 @@ watch(()=>props.visible,(val)=>{
|
|||||||
}
|
}
|
||||||
).then(res=>{
|
).then(res=>{
|
||||||
if(res.data.code === 200){
|
if(res.data.code === 200){
|
||||||
forData.value = res.data.data
|
forData.value = res.data.data;
|
||||||
|
//todo1 , 只有一个处理 初始化 处理数据 ,进行 激活处理
|
||||||
|
if(forData.value.length == 1){
|
||||||
|
activeList.value.push(0);
|
||||||
|
}
|
||||||
forData.value.forEach((item,i) => {
|
forData.value.forEach((item,i) => {
|
||||||
searchConditions.value.push({ nameUserNo: '', dateValue: [] });
|
searchConditions.value.push({ nameUserNo: '', dateValue: [] });
|
||||||
expenseList.value.push(forData.value[i]?.expenseList || [])
|
expenseList.value.push(forData.value[i]?.expenseList || [])
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,91 +1,106 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-select
|
<a-select
|
||||||
:getPopupContainer="
|
:getPopupContainer="
|
||||||
(triggerNode) => {
|
(triggerNode) => {
|
||||||
return triggerNode.parentNode || document.body;
|
return triggerNode.parentNode || document.body;
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
v-model:value="managerArray"
|
v-model:value="managerArray"
|
||||||
:placeholder="placeholder"
|
:placeholder="placeholder"
|
||||||
:filterOption="false"
|
:filterOption="false"
|
||||||
:options="isOpen?options:selectOptions"
|
:options="isOpen ? options : selectOptions"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
showSearch
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
@popupScroll="memberScroll"
|
@popupScroll="memberScroll"
|
||||||
@search="searchMember"
|
@search="searchMember"
|
||||||
:open="isOpen"
|
:open="isOpen"
|
||||||
@change="change"
|
@change="change"
|
||||||
@blur="blur"
|
@blur="blur"
|
||||||
:show-arrow="false"
|
:show-arrow="false"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
>
|
>
|
||||||
<template v-if="loading" #notFoundContent>
|
<template v-if="loading" #notFoundContent>
|
||||||
<a-spin size="small"/>
|
<a-spin size="small" />
|
||||||
</template>
|
</template>
|
||||||
</a-select>
|
</a-select>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import {computed, defineEmits, defineProps, onMounted, ref, watch} from "vue";
|
import { computed, defineEmits, defineProps, onMounted, ref, watch } from "vue";
|
||||||
import {useThrottlePage} from "@/api/request";
|
import { useThrottlePage } from "@/api/request";
|
||||||
import { getTeacherList } from "@/api/Lecturer";
|
import { getTeacherList } from "@/api/Lecturer";
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
value: {
|
value: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: "",
|
||||||
},
|
},
|
||||||
name: {
|
name: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: "",
|
||||||
|
},
|
||||||
|
supplier: {
|
||||||
|
type: String,
|
||||||
|
default: ""
|
||||||
},
|
},
|
||||||
mobile: {
|
mobile: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: "",
|
||||||
},
|
},
|
||||||
disabled: Boolean,
|
disabled: Boolean,
|
||||||
placeholder: {
|
placeholder: {
|
||||||
type: String,
|
type: String,
|
||||||
default: "请输入搜索关键字",
|
default: "请输入搜索关键字",
|
||||||
},
|
},
|
||||||
mode: String
|
mode: String,
|
||||||
})
|
});
|
||||||
|
|
||||||
const selectOptions = ref([])
|
const selectOptions = ref([]);
|
||||||
|
|
||||||
const managerArray = computed(() => props.value === '' ? null : props.value)
|
const supplier = ref('')
|
||||||
|
|
||||||
const emit = defineEmits({})
|
|
||||||
|
|
||||||
const isOpen = ref(false)
|
const managerArray = computed(() => (props.value === "" ? null : props.value));
|
||||||
|
|
||||||
|
const emit = defineEmits({});
|
||||||
|
|
||||||
|
const isOpen = ref(false);
|
||||||
function debounce(func, wait) {
|
function debounce(func, wait) {
|
||||||
let timeout;
|
let timeout;
|
||||||
return function(...args) {
|
return function (...args) {
|
||||||
clearTimeout(timeout);
|
clearTimeout(timeout);
|
||||||
timeout = setTimeout(() => func.apply(this, args), wait);
|
timeout = setTimeout(() => func.apply(this, args), wait);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
const memberParam = ref({name: '', pageNo:1, pageSize: 999,teacherType:2 ,status:1})
|
const memberParam = ref({
|
||||||
|
name: "",
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 999,
|
||||||
|
teacherType: 2,
|
||||||
|
status: 1,
|
||||||
|
});
|
||||||
|
|
||||||
const userList = ref([])
|
const userList = ref([]);
|
||||||
const loading = ref(false)
|
const loading = ref(false);
|
||||||
const getOutTeacher = () => {
|
const getOutTeacher = () => {
|
||||||
getTeacherList(memberParam.value).then(res=>{
|
getTeacherList(memberParam.value).then((res) => {
|
||||||
if(res.data.code == 200){
|
if (res.data.code == 200) {
|
||||||
userList.value = res.data.data.records
|
userList.value = res.data.data.records;
|
||||||
loading.value = false
|
loading.value = false;
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
const options = computed(() => userList.value.map(e => ({
|
const options = computed(() =>
|
||||||
|
userList.value.map((e) => ({
|
||||||
|
// label: e.name + '(' + e.userNo + ')' + e.organizationName,
|
||||||
|
label: e.name + "/" + e.supplier,
|
||||||
|
value: e.name,
|
||||||
|
supplier: e.supplier,
|
||||||
|
...e,
|
||||||
|
audienceList: null,
|
||||||
|
}))
|
||||||
|
);
|
||||||
|
|
||||||
// label: e.name + '(' + e.userNo + ')' + e.organizationName,
|
watch(props, init);
|
||||||
label:e.name+ '(' +e.supplier + ')',
|
|
||||||
value: e.name,
|
|
||||||
...e,
|
|
||||||
audienceList: null
|
|
||||||
})))
|
|
||||||
|
|
||||||
watch(props, init)
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
//第一次进来 编辑赋值
|
//第一次进来 编辑赋值
|
||||||
@@ -95,46 +110,47 @@ function init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
console.log('onMounted')
|
console.log("onMounted");
|
||||||
init()
|
init();
|
||||||
getOutTeacher()
|
getOutTeacher();
|
||||||
})
|
});
|
||||||
|
|
||||||
|
const memberScroll = ({
|
||||||
const memberScroll = ({target: {scrollHeight, scrollTop, clientHeight}}) => {
|
target: { scrollHeight, scrollTop, clientHeight },
|
||||||
scrollHeight === (clientHeight + scrollTop) && memberParam.value.pageNo++
|
}) => {
|
||||||
|
scrollHeight === clientHeight + scrollTop && memberParam.value.pageNo++;
|
||||||
};
|
};
|
||||||
const debounceObject = debounce(getOutTeacher,1000)
|
const debounceObject = debounce(getOutTeacher, 1000);
|
||||||
//搜索学员
|
//搜索学员
|
||||||
const searchMember = (keyword) => {
|
const searchMember = (keyword) => {
|
||||||
console.log('searchMember', keyword)
|
console.log("searchMember", keyword);
|
||||||
loading.value = true
|
loading.value = true;
|
||||||
isOpen.value = true
|
isOpen.value = true;
|
||||||
userList.value = []
|
userList.value = [];
|
||||||
memberParam.value.pageNo = 1
|
memberParam.value.pageNo = 1;
|
||||||
memberParam.value.teacherType=2
|
memberParam.value.teacherType = 2;
|
||||||
memberParam.value.name = keyword
|
memberParam.value.name = keyword;
|
||||||
console.log('searchMember', memberParam.value)
|
console.log("searchMember", memberParam.value);
|
||||||
debounceObject()
|
debounceObject();
|
||||||
};
|
};
|
||||||
|
|
||||||
function blur() {
|
function blur() {
|
||||||
isOpen.value = false
|
isOpen.value = false;
|
||||||
memberParam.value.name = ''
|
memberParam.value.name = "";
|
||||||
memberParam.value.pageNo = 1
|
memberParam.value.pageNo = 1;
|
||||||
memberParam.value.teacherType=2
|
memberParam.value.teacherType = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
function change(e, l) {
|
function change(e, l) {
|
||||||
memberParam.value.name = ''
|
memberParam.value.name = "";
|
||||||
memberParam.value.teacherType=2
|
memberParam.value.teacherType = 2;
|
||||||
memberParam.value.pageNo = 1
|
memberParam.value.pageNo = 1;
|
||||||
isOpen.value = false
|
isOpen.value = false;
|
||||||
Array.isArray(l) && (selectOptions.value = l)
|
Array.isArray(l) && (selectOptions.value = l);
|
||||||
Array.isArray(selectOptions.value) && emit('onChange', e, l)
|
Array.isArray(selectOptions.value) && emit("onChange", e, l);
|
||||||
emit('update:name', l?.label)
|
emit("update:name", l?.label);
|
||||||
emit('update:value', l?.value)
|
emit("update:value", l?.value);
|
||||||
emit('update:mobile', l?.label)
|
emit("update:supplier", l?.supplier);
|
||||||
|
emit("update:mobile", l?.label);
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -78,11 +78,11 @@
|
|||||||
</a-tabs>
|
</a-tabs>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnn" v-if="formData?.status==1||formData?.status==4">
|
<!-- <div class="btnn" v-if="formData?.status==1||formData?.status==4"> -->
|
||||||
<!-- <button class="btn2" @click="closeDrawer">取消</button>
|
<!-- <button class="btn2" @click="closeDrawer">取消</button>
|
||||||
<button class="btn2" @click="closeDrawer">确定</button> -->
|
<button class="btn2" @click="closeDrawer">确定</button> -->
|
||||||
<button class="btn2" @click="confirm">撤销编辑内容</button>
|
<!-- <button class="btn2" @click="confirm">撤销编辑内容</button> -->
|
||||||
</div>
|
<!-- </div> -->
|
||||||
</div>
|
</div>
|
||||||
<a-modal :footer="null" width="800px" v-model:visible="visibleModal" title="审批记录详情">
|
<a-modal :footer="null" width="800px" v-model:visible="visibleModal" title="审批记录详情">
|
||||||
<div style="margin: 20px;padding-bottom: 20px;">
|
<div style="margin: 20px;padding-bottom: 20px;">
|
||||||
|
|||||||
@@ -9,34 +9,30 @@
|
|||||||
<!-- <a-input v-model:value="searchParam.userNo" style="width: 276px; height: 40px; border-radius: 8px"
|
<!-- <a-input v-model:value="searchParam.userNo" style="width: 276px; height: 40px; border-radius: 8px"
|
||||||
placeholder="请输入工号/讲师姓名进行检索" allowClear showSearch>
|
placeholder="请输入工号/讲师姓名进行检索" allowClear showSearch>
|
||||||
</a-input> -->
|
</a-input> -->
|
||||||
<a-input style="width: 235px; height: 40px; border-radius: 8px" placeholder="请输入姓名/手机号进行检索" showSearch
|
<a-input style="width: 235px; height: 40px; border-radius: 8px" placeholder="请输入姓名进行检索" showSearch allowClear
|
||||||
allowClear v-model:value="searchParam.name"
|
v-model:value="searchParam.name" v-on:keydown.enter="enterPressHadlerSearch"></a-input>
|
||||||
v-on:keydown.enter="enterPressHadlerSearch"></a-input>
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item class="select">
|
<a-form-item class="select">
|
||||||
<a-select style="width: 235px ;margin-bottom:20px" v-model:value="searchParam.supplier" placeholder="请输入供应商" :options="supperList" allowClear
|
<a-select style="width: 235px ;margin-bottom:20px" v-model:value="searchParam.supplier" placeholder="请输入供应商"
|
||||||
v-on:keydown.enter="enterPressHadlerSearch" showSearch >
|
:options="supperList" allowClear v-on:keydown.enter="enterPressHadlerSearch" showSearch>
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item class="select">
|
<a-form-item class="select">
|
||||||
<a-input v-model:value="searchParam.courseName" style="width: 235px; height: 40px; border-radius: 8px"
|
<a-input v-model:value="searchParam.courseName" style="width: 235px; height: 40px; border-radius: 8px"
|
||||||
placeholder="请输入课程名称进行搜索" allowClear showSearch
|
placeholder="请输入课程名称进行搜索" allowClear showSearch v-on:keydown.enter="enterPressHadlerSearch">
|
||||||
v-on:keydown.enter="enterPressHadlerSearch">
|
|
||||||
</a-input>
|
</a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item class="select ">
|
<a-form-item class="select ">
|
||||||
<!-- <div class="select addTimeBox">
|
<!-- <div class="select addTimeBox">
|
||||||
<div class="addTime">授课日期:</div> -->
|
<div class="addTime">授课日期:</div> -->
|
||||||
<a-range-picker v-model:value="searchdate" style="width: 340px !important;" format="YYYY-MM-DD" valueFormat="YYYY-MM-DD"
|
<a-range-picker v-model:value="searchdate" style="width: 340px !important;" format="YYYY-MM-DD"
|
||||||
separator="至" :placeholder="['授课日期开始时间', '授课日期结束时间']
|
valueFormat="YYYY-MM-DD" separator="至" :placeholder="['授课日期开始时间', '授课日期结束时间']
|
||||||
"
|
" v-on:keydown.enter="enterPressHadlerSearch" />
|
||||||
v-on:keydown.enter="enterPressHadlerSearch" />
|
|
||||||
<!-- </div> -->
|
<!-- </div> -->
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item class="select">
|
<a-form-item class="select">
|
||||||
<a-select style="width: 200px ;margin-bottom:20px" v-model:value="searchParam.createFrom" placeholder="录入类型"
|
<a-select style="width: 200px ;margin-bottom:20px" v-model:value="searchParam.createFrom" placeholder="录入类型"
|
||||||
:options="entryTypeList" allowClear
|
:options="entryTypeList" allowClear v-on:keydown.enter="enterPressHadlerSearch">
|
||||||
v-on:keydown.enter="enterPressHadlerSearch">
|
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item class="select">
|
<a-form-item class="select">
|
||||||
@@ -47,14 +43,12 @@
|
|||||||
}" allow-clear :getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
|
}" allow-clear :getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
|
||||||
v-model:value="searchParam.courseTypeId" show-search
|
v-model:value="searchParam.courseTypeId" show-search
|
||||||
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="请选择内容分类" tree-default-expand-all
|
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="请选择内容分类" tree-default-expand-all
|
||||||
:tree-data="sysTypeOptions"
|
:tree-data="sysTypeOptions" v-on:keydown.enter="enterPressHadlerSearch">
|
||||||
v-on:keydown.enter="enterPressHadlerSearch">
|
|
||||||
</a-tree-select>
|
</a-tree-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item class="select">
|
<a-form-item class="select">
|
||||||
<a-select style="width: 200px" v-model:value="searchParam.courseStatus" placeholder="开课状态"
|
<a-select style="width: 200px" v-model:value="searchParam.courseStatus" placeholder="开课状态"
|
||||||
:options="AuthenticationStatusList" allowClear
|
:options="AuthenticationStatusList" allowClear v-on:keydown.enter="enterPressHadlerSearch">
|
||||||
v-on:keydown.enter="enterPressHadlerSearch">
|
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<div style="display: flex; margin-bottom: 20px">
|
<div style="display: flex; margin-bottom: 20px">
|
||||||
@@ -105,8 +99,10 @@
|
|||||||
<template v-if="column.key === 'operation'">
|
<template v-if="column.key === 'operation'">
|
||||||
<a-space>
|
<a-space>
|
||||||
<a-button type="link" @click="() => handleLook(record, String(record.courseform))">查看</a-button>
|
<a-button type="link" @click="() => handleLook(record, String(record.courseform))">查看</a-button>
|
||||||
<a-button type="link" @click="() => handleModify(record, String(record.courseform))" v-if="record.createFrom == 1&&checkMenu('lecturerRecordsEdit')">编辑</a-button>
|
<a-button type="link" @click="() => handleModify(record, String(record.courseform))"
|
||||||
<a-button v-if="record.isSuperPermission==='true'&&checkMenu('lecturerRecordsDel')" type="link" @click="() => deleteModal(record, String(record.courseform))">删除</a-button>
|
v-if="record.createFrom == 1 && checkMenu('lecturerRecordsEdit')">编辑</a-button>
|
||||||
|
<a-button v-if="record.isSuperPermission === 'true' && checkMenu('lecturerRecordsDel')" type="link"
|
||||||
|
@click="() => deleteModal(record, String(record.courseform))">删除</a-button>
|
||||||
</a-space>
|
</a-space>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
@@ -116,63 +112,53 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="tableBox ">
|
<div class="tableBox ">
|
||||||
<div class="pa">
|
<div class="pa">
|
||||||
<a-pagination
|
<a-pagination v-if="tableDataTotal > 10" :showSizeChanger="true" :showQuickJumper="false"
|
||||||
v-if="tableDataTotal > 10"
|
:hideOnSinglePage="false" :pageSize="searchParam.pageSize" :current="searchParam.pageNo"
|
||||||
:showSizeChanger="true"
|
:total="tableDataTotal" class="pagination" @change="changePagination" />
|
||||||
:showQuickJumper="false"
|
<!-- :show-total="total => `共 ${total} 条数据`" -->
|
||||||
:hideOnSinglePage="false"
|
|
||||||
:pageSize="searchParam.pageSize"
|
|
||||||
:current="searchParam.pageNo"
|
|
||||||
:total="tableDataTotal"
|
|
||||||
class="pagination"
|
|
||||||
@change="changePagination"
|
|
||||||
/>
|
|
||||||
<!-- :show-total="total => `共 ${total} 条数据`" -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 弹窗组件 -->
|
<!-- 弹窗组件 -->
|
||||||
<a-drawer class="largeDrawerInside" v-model:visible="teacherdialog" placement="right" :maskClosable="false" :closable="false"
|
<a-drawer class="largeDrawerInside" v-model:visible="teacherdialog" placement="right" :maskClosable="false"
|
||||||
width="60%" :title="false">
|
:closable="false" width="60%" :title="false">
|
||||||
<div style="padding:24px;">
|
<div style="padding:24px;">
|
||||||
<div class="headers" style="margin-top:-24px;">
|
<div class="headers" style="margin-top:-24px;">
|
||||||
<div class="headerTitle">{{ teacherdialogtitle }}</div>
|
<div class="headerTitle">{{ teacherdialogtitle }}</div>
|
||||||
<img
|
<img style="width: 29px; height: 29px; cursor: pointer" src="@/assets/images/basicinfo/close.png"
|
||||||
style="width: 29px; height: 29px; cursor: pointer"
|
@click="cancelTeacherDialog" />
|
||||||
src="@/assets/images/basicinfo/close.png"
|
|
||||||
@click="cancelTeacherDialog"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<a-form :model="formParam" layout="vertical" ref="formRef">
|
<a-form :model="formParam" layout="vertical" ref="formRef">
|
||||||
<!--讲师名称 teacherName 内容分类 coursetypeid -->
|
<!--讲师名称 teacherName 内容分类 coursetypeid -->
|
||||||
<a-row :gutter="16">
|
<a-row :gutter="16">
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
|
|
||||||
<a-form-item name="teacherName">
|
<a-form-item name="teacherName">
|
||||||
<template v-slot:label>
|
<template v-slot:label>
|
||||||
<img
|
<img style="margin-right:4px;width: 7px;height: 7px"
|
||||||
style="margin-right:4px;width: 7px;height: 7px"
|
src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
讲师名称todo
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
讲师名称
|
|
||||||
</template>
|
</template>
|
||||||
<ProjectManagerOutTeacher v-model:value="formParam.name"
|
<!-- TODO GX01 -->
|
||||||
v-model:name="formParam.teacherName"
|
<ProjectManagerOutTeacher v-model:value="formParam.name" v-model:name="formParam.teacherName"
|
||||||
placeholder="请输入工号/讲师姓名进行检索"
|
placeholder="请输入工号/讲师姓名进行检索" @onChange="managerChange"></ProjectManagerOutTeacher>
|
||||||
@onChange="managerChange"></ProjectManagerOutTeacher>
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
<!-- <a-input v-model:value="formParam.teacherName" allowClear showSearch class="draitem"
|
<a-col :span="12">
|
||||||
placeholder="请输入讲师姓名"></a-input> -->
|
<a-form-item name="supplier">
|
||||||
|
<template v-slot:label>
|
||||||
|
<img style="margin-right:4px;width: 7px;height: 7px"
|
||||||
|
src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||||
|
供应商
|
||||||
|
</template>
|
||||||
|
<!-- TODO GX01 -->
|
||||||
|
<a-input class="draitem" v-model:value="formParam.name" disabled :maxlength="20" showCount @blur="sendName">
|
||||||
|
</a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item name="courseTypeId">
|
<a-form-item name="courseTypeId">
|
||||||
<template v-slot:label>
|
<template v-slot:label>
|
||||||
<img
|
<img style="margin-right:4px;width: 7px;height: 7px"
|
||||||
style="margin-right:4px;width: 7px;height: 7px"
|
src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
内容分类
|
内容分类
|
||||||
</template>
|
</template>
|
||||||
<a-tree-select :fieldNames="{
|
<a-tree-select :fieldNames="{
|
||||||
@@ -181,9 +167,8 @@
|
|||||||
value: 'code',
|
value: 'code',
|
||||||
}" allow-clear :getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
|
}" allow-clear :getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
|
||||||
v-model:value="formParam.courseTypeId" show-search
|
v-model:value="formParam.courseTypeId" show-search
|
||||||
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="请选择内容分类" tree-default-expand-all
|
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="请选择内容分类"
|
||||||
:tree-data="sysTypeOptions"
|
tree-default-expand-all :tree-data="sysTypeOptions" @change="treetype">
|
||||||
@change="treetype">
|
|
||||||
</a-tree-select>
|
</a-tree-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -193,14 +178,12 @@
|
|||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item name="courseName">
|
<a-form-item name="courseName">
|
||||||
<template v-slot:label>
|
<template v-slot:label>
|
||||||
<img
|
<img style="margin-right:4px;width: 7px;height: 7px"
|
||||||
style="margin-right:4px;width: 7px;height: 7px"
|
src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
课程名称
|
课程名称
|
||||||
</template>
|
</template>
|
||||||
<a-input class="draitem" v-model:value="formParam.courseName" :maxlength="20" showCount placeholder="请输入课程名称" @blur="sendName" allowClear showSearch>
|
<a-input class="draitem" v-model:value="formParam.courseName" :maxlength="20" showCount
|
||||||
|
placeholder="请输入课程名称" @blur="sendName" allowClear showSearch>
|
||||||
</a-input>
|
</a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -215,15 +198,12 @@
|
|||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item name="teachingDate">
|
<a-form-item name="teachingDate">
|
||||||
<template v-slot:label>
|
<template v-slot:label>
|
||||||
<img
|
<img style="margin-right:4px;width: 7px;height: 7px"
|
||||||
style="margin-right:4px;width: 7px;height: 7px"
|
src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
授课/课程日期 :
|
授课/课程日期 :
|
||||||
</template>
|
</template>
|
||||||
<a-date-picker class="draitem" v-model:value="teachingDate" style="width:100%" format="YYYY-MM-DD HH:mm" :show-time="{ format: 'HH:mm' }"
|
<a-date-picker class="draitem" v-model:value="teachingDate" style="width:100%" format="YYYY-MM-DD HH:mm"
|
||||||
placeholder="请选择课程日期" />
|
:show-time="{ format: 'HH:mm' }" placeholder="请选择课程日期" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
@@ -233,16 +213,12 @@
|
|||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item name="teaching">
|
<a-form-item name="teaching">
|
||||||
<template v-slot:label>
|
<template v-slot:label>
|
||||||
<img
|
<img style="margin-right:4px;width: 7px;height: 7px"
|
||||||
style="margin-right:4px;width: 7px;height: 7px"
|
src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
授课时长
|
授课时长
|
||||||
</template>
|
</template>
|
||||||
<a-input v-model:value="formParam.teaching" style="width:100%; height: 40px; border-radius: 8px; "
|
<a-input v-model:value="formParam.teaching" style="width:100%; height: 40px; border-radius: 8px; "
|
||||||
placeholder="请输入授课时长" allowClear showSearch suffix="分钟"
|
placeholder="请输入授课时长" allowClear showSearch suffix="分钟" :maxLength="8" @change="clearNonNumber">
|
||||||
:maxLength="8" @change="clearNonNumber">
|
|
||||||
</a-input>
|
</a-input>
|
||||||
<!-- <span style="margin-left: 5px ;" v-if="formParam.teaching != null">{{ (formParam.teaching / 60
|
<!-- <span style="margin-left: 5px ;" v-if="formParam.teaching != null">{{ (formParam.teaching / 60
|
||||||
).toFixed(2) }}小时</span>
|
).toFixed(2) }}小时</span>
|
||||||
@@ -252,15 +228,12 @@
|
|||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item name="studys">
|
<a-form-item name="studys">
|
||||||
<template v-slot:label>
|
<template v-slot:label>
|
||||||
<img
|
<img style="margin-right:4px;width: 7px;height: 7px"
|
||||||
style="margin-right:4px;width: 7px;height: 7px"
|
src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
参训人数
|
参训人数
|
||||||
</template>
|
</template>
|
||||||
<a-input v-model:value="formParam.studys" class="draitem" placeholder="请输入参训人数" allowClear showSearch :maxLength="8"
|
<a-input v-model:value="formParam.studys" class="draitem" placeholder="请输入参训人数" allowClear showSearch
|
||||||
@blur="clearstudysNumber">
|
:maxLength="8" @blur="clearstudysNumber">
|
||||||
</a-input>
|
</a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -271,17 +244,14 @@
|
|||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item name="score">
|
<a-form-item name="score">
|
||||||
<template v-slot:label>
|
<template v-slot:label>
|
||||||
<img
|
<img style="margin-right:4px;width: 7px;height: 7px"
|
||||||
style="margin-right:4px;width: 7px;height: 7px"
|
src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
评分
|
评分
|
||||||
</template>
|
</template>
|
||||||
<!-- <a-input class="draitem" v-model:value="formParam.score" @blur="clearscoreNumber" placeholder="" allowClear showSearch>
|
<!-- <a-input class="draitem" v-model:value="formParam.score" @blur="clearscoreNumber" placeholder="" allowClear showSearch>
|
||||||
</a-input> -->
|
</a-input> -->
|
||||||
<a-input-number @blur="blurScore" @focus="focusScore" v-model:value="formParam.score" :precision="2" :min="1" :max="100"
|
<a-input-number @blur="blurScore" @focus="focusScore" v-model:value="formParam.score" :precision="2"
|
||||||
style="width:100%; height: 40px; border-radius: 8px ; " placeholder="请输入评分" />
|
:min="1" :max="100" style="width:100%; height: 40px; border-radius: 8px ; " placeholder="请输入评分" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
@@ -289,8 +259,7 @@
|
|||||||
<a-row :gutter="16">
|
<a-row :gutter="16">
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="备注">
|
<a-form-item label="备注">
|
||||||
<a-textarea v-model:value="formParam.remark" showCount :maxlength="200"
|
<a-textarea v-model:value="formParam.remark" showCount :maxlength="200" @blur="sendRemark"
|
||||||
@blur="sendRemark"
|
|
||||||
style="width: 100%; height: 100px; border-radius: 8px" placeholder="请输入" />
|
style="width: 100%; height: 100px; border-radius: 8px" placeholder="请输入" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -314,36 +283,36 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-drawer>
|
</a-drawer>
|
||||||
<!-- 查看授课记录 -->
|
<!-- 查看授课记录 -->
|
||||||
<a-drawer class="largeDrawerInside" v-model:visible="teachingdialog" placement="right" :maskClosable="true" :closable="false"
|
<a-drawer class="largeDrawerInside" v-model:visible="teachingdialog" placement="right" :maskClosable="true"
|
||||||
width="60%" :title="false">
|
:closable="false" width="60%" :title="false">
|
||||||
<div style="padding:24px;">
|
<div style="padding:24px;">
|
||||||
<div class="headers" style="margin-top:-24px;">
|
<div class="headers" style="margin-top:-24px;">
|
||||||
<div class="headerTitle">查看讲师授课记录</div>
|
<div class="headerTitle">查看讲师授课记录</div>
|
||||||
<img
|
<img style="width: 29px; height: 29px; cursor: pointer" src="@/assets/images/basicinfo/close.png"
|
||||||
style="width: 29px; height: 29px; cursor: pointer"
|
@click="cancelTeachingDialog" />
|
||||||
src="@/assets/images/basicinfo/close.png"
|
|
||||||
@click="cancelTeachingDialog"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<a-descriptions bordered :column="2" :contentStyle="rowCenter" :labelStyle="{'width':'160px'}">
|
<a-descriptions bordered :column="2" :contentStyle="rowCenter" :labelStyle="{ 'width': '160px' }">
|
||||||
<a-descriptions-item label="讲师名称">{{ formParam.teacherName ||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="讲师名称">{{ formParam.teacherName || '-' }}</a-descriptions-item>
|
||||||
<a-descriptions-item label="手机号码">{{ formParam.mobile ||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="手机号码">{{ formParam.mobile || '-' }}</a-descriptions-item>
|
||||||
<a-descriptions-item label="课程类型">{{ formParam.type == 0 ? '在线课' : formParam.type == 1 ? '面授课' : formParam.type == 2 ? '手动录入' : '-'
|
<a-descriptions-item label="课程类型">{{ formParam.type == 0 ? '在线课' : formParam.type == 1 ? '面授课' :
|
||||||
}}</a-descriptions-item>
|
formParam.type ==
|
||||||
<a-descriptions-item label="课程名称">{{ formParam.courseName ||'-'}}</a-descriptions-item>
|
2 ? '手动录入' : '-'
|
||||||
|
}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="课程名称">{{ formParam.courseName || '-' }}</a-descriptions-item>
|
||||||
<a-descriptions-item label="开课状态">{{ formParam.courseStatus == 0 ? '未开课' : formParam.courseStatus == 1
|
<a-descriptions-item label="开课状态">{{ formParam.courseStatus == 0 ? '未开课' : formParam.courseStatus == 1
|
||||||
? '已开课' : '-' }}</a-descriptions-item>
|
? '已开课' : '-' }}</a-descriptions-item>
|
||||||
<a-descriptions-item label="内容分类 ">{{ formParam.courseTypeName ||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="内容分类 ">{{ formParam.courseTypeName || '-' }}</a-descriptions-item>
|
||||||
<a-descriptions-item label="授课/课程日期 ">{{ formParam.teachingDate ||'-' }}
|
<a-descriptions-item label="授课/课程日期 ">{{ formParam.teachingDate || '-' }}
|
||||||
|
|
||||||
</a-descriptions-item>
|
</a-descriptions-item>
|
||||||
<a-descriptions-item label="授课时长 "> <span > {{ formParam.teaching }} 分钟</span>
|
<a-descriptions-item label="授课时长 "> <span> {{ formParam.teaching }} 分钟</span>
|
||||||
<span style="margin-left: 10px ;" v-if="formParam.teaching != '0'">({{ (formParam.teaching / 60
|
<span style="margin-left: 10px ;" v-if="formParam.teaching != '0'">({{ (formParam.teaching / 60
|
||||||
).toFixed(2) }}小时)</span>
|
).toFixed(2) }}小时)</span>
|
||||||
</a-descriptions-item>
|
</a-descriptions-item>
|
||||||
<a-descriptions-item label="评分 ">{{ formParam.score?Number(formParam.score).toFixed(0)==0?'-':Number(formParam.score).toFixed(2)+'分':'-'}}</a-descriptions-item>
|
<a-descriptions-item label="评分 ">{{
|
||||||
<a-descriptions-item label="参训人数 ">{{ formParam.studys ? formParam.studys+'人' :'-'}}</a-descriptions-item>
|
formParam.score ? Number(formParam.score).toFixed(0) == 0 ? '-' : Number(formParam.score).toFixed(2) +'分':'-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="备注 " :span="2">{{ formParam.remark ||'-' }}</a-descriptions-item>
|
<a-descriptions-item label="参训人数 ">{{ formParam.studys ? formParam.studys + '人' : '-' }}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="备注 " :span="2">{{ formParam.remark || '-' }}</a-descriptions-item>
|
||||||
</a-descriptions>
|
</a-descriptions>
|
||||||
<!-- <div :style="{
|
<!-- <div :style="{
|
||||||
position: 'absolute',
|
position: 'absolute',
|
||||||
@@ -389,12 +358,13 @@
|
|||||||
</a-modal>
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div> <ImageUpload/> </div> -->
|
<!-- <div> <ImageUpload/> </div> -->
|
||||||
<ImportWork v-model:showWork="showWork" :template="'外部讲师授课记录导入模版-20250115.xlsx'" :url="'/admin/export/importOutTeacherRecord'" :title="title"></ImportWork>
|
<ImportWork v-model:showWork="showWork" :template="'外部讲师授课记录导入模版-20250115.xlsx'"
|
||||||
|
:url="'/admin/export/importOutTeacherRecord'" :title="title"></ImportWork>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import { reactive, toRefs, ref, computed,onMounted } from "vue";
|
import { reactive, toRefs, ref, computed, onMounted ,watch} from "vue";
|
||||||
import { useRouter ,useRoute} from "vue-router";
|
import { useRouter, useRoute } from "vue-router";
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
import {
|
import {
|
||||||
RightOutlined,
|
RightOutlined,
|
||||||
@@ -408,7 +378,7 @@ import { message } from "ant-design-vue";
|
|||||||
import ProjectManager from "@/components/project/ProjectManagerNew";
|
import ProjectManager from "@/components/project/ProjectManagerNew";
|
||||||
import ProjectManagerOutTeacher from "@/components/project/ProjectManagerOutTeacher";
|
import ProjectManagerOutTeacher from "@/components/project/ProjectManagerOutTeacher";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { getTeacherCourseList, updateInTeacherCourse, getNewInTeacherCourseList, deleteInTeacherCourse, insertInTeacherCourse,selectSupplier } from "../../api/Teaching";
|
import { getTeacherCourseList, updateInTeacherCourse, getNewInTeacherCourseList, deleteInTeacherCourse, insertInTeacherCourse, selectSupplier } from "../../api/Teaching";
|
||||||
// import {getProjSt} from "../../api/indexProjStu";
|
// import {getProjSt} from "../../api/indexProjStu";
|
||||||
import { checkMenu } from '@/utils/utils'
|
import { checkMenu } from '@/utils/utils'
|
||||||
// import AddTeacher from "../../components/drawers/project/AddTeacher"
|
// import AddTeacher from "../../components/drawers/project/AddTeacher"
|
||||||
@@ -427,7 +397,7 @@ export default {
|
|||||||
setup() {
|
setup() {
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
const search = sessionStorage.getItem('searchExter')
|
const search = sessionStorage.getItem('searchExter')
|
||||||
if(route.query.activeKey == 2&&search){
|
if (route.query.activeKey == 2 && search) {
|
||||||
state.searchParam = JSON.parse(search)
|
state.searchParam = JSON.parse(search)
|
||||||
}
|
}
|
||||||
searchSubmit()
|
searchSubmit()
|
||||||
@@ -456,12 +426,14 @@ export default {
|
|||||||
teachingDate: undefined, //选择时间
|
teachingDate: undefined, //选择时间
|
||||||
tableDataTotal: -1,//table列表总条数
|
tableDataTotal: -1,//table列表总条数
|
||||||
formParam: {
|
formParam: {
|
||||||
|
name: null,
|
||||||
|
supplier: null,
|
||||||
courseStatus: '1',
|
courseStatus: '1',
|
||||||
createFrom: 1,
|
createFrom: 1,
|
||||||
teaching: null,
|
teaching: null,
|
||||||
teachingDate: null,
|
teachingDate: null,
|
||||||
teacherId:null,
|
teacherId: null,
|
||||||
mobile:null,
|
mobile: null,
|
||||||
score: null
|
score: null
|
||||||
},
|
},
|
||||||
searchdate: undefined, //选择时间
|
searchdate: undefined, //选择时间
|
||||||
@@ -503,8 +475,17 @@ export default {
|
|||||||
|
|
||||||
//获取内容分类
|
//获取内容分类
|
||||||
const sysTypeOptions = computed(() => store.state.content_type);
|
const sysTypeOptions = computed(() => store.state.content_type);
|
||||||
const treetype =(val,lab)=>{
|
|
||||||
state.formParam.courseTypeName =lab.toString()
|
watch(() => state.formParam.name, (val) => {
|
||||||
|
console.log(val, 'name gx data')
|
||||||
|
})
|
||||||
|
|
||||||
|
watch(() => state.formParam.teacherName, (val) => {
|
||||||
|
console.log(val, 'teacherName gx data')
|
||||||
|
})
|
||||||
|
|
||||||
|
const treetype = (val, lab) => {
|
||||||
|
state.formParam.courseTypeName = lab.toString()
|
||||||
}
|
}
|
||||||
const OnTheJobStatusList = ref([
|
const OnTheJobStatusList = ref([
|
||||||
{ value: 1, label: "项目开课" },
|
{ value: 1, label: "项目开课" },
|
||||||
@@ -512,13 +493,13 @@ export default {
|
|||||||
{ value: 3, label: "面授开课" },
|
{ value: 3, label: "面授开课" },
|
||||||
])
|
])
|
||||||
const supperList = ref([])
|
const supperList = ref([])
|
||||||
const getSupplier = ()=>{
|
const getSupplier = () => {
|
||||||
selectSupplier().then(res=>{
|
selectSupplier().then(res => {
|
||||||
if(res.data.code == 200){
|
if (res.data.code == 200) {
|
||||||
supperList.value = res.data.data.map(item=>{
|
supperList.value = res.data.data.map(item => {
|
||||||
return {
|
return {
|
||||||
value:item,
|
value: item,
|
||||||
label:item
|
label: item
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
supperList.value.unshift({
|
supperList.value.unshift({
|
||||||
@@ -529,12 +510,12 @@ export default {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const AuthenticationStatusList = ref([
|
const AuthenticationStatusList = ref([
|
||||||
{ value: '', label: "全部" },
|
{ value: '', label: "全部" },
|
||||||
{ value: '0', label: "未开课" },
|
{ value: '0', label: "未开课" },
|
||||||
{ value: '1', label: "已开课" },
|
{ value: '1', label: "已开课" },
|
||||||
])
|
])
|
||||||
const entryTypeList = ref([
|
const entryTypeList = ref([
|
||||||
{ value: '', label: "全部" },
|
{ value: '', label: "全部" },
|
||||||
{ value: '0', label: "系统生成" },
|
{ value: '0', label: "系统生成" },
|
||||||
{ value: '1', label: "手动录入" },
|
{ value: '1', label: "手动录入" },
|
||||||
])
|
])
|
||||||
@@ -560,7 +541,7 @@ export default {
|
|||||||
key: 'supplier',
|
key: 'supplier',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "center",
|
||||||
width: 150,
|
width: 150,
|
||||||
customRender: ({text})=> text||'-'
|
customRender: ({ text }) => text || '-'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '课程名称 ',
|
title: '课程名称 ',
|
||||||
@@ -585,16 +566,16 @@ export default {
|
|||||||
width: 120,
|
width: 120,
|
||||||
customRender: (value) => {
|
customRender: (value) => {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{String(value.record.type)
|
{ String(value.record.type)
|
||||||
? {
|
? {
|
||||||
"0": "在线课",
|
"0": "在线课",
|
||||||
"1": "面授课",
|
"1": "面授课",
|
||||||
"2": "手动录入",
|
"2": "手动录入",
|
||||||
}[value.record.type + ""]
|
}[value.record.type + ""]
|
||||||
: "-"}
|
: "-" }
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -606,7 +587,7 @@ export default {
|
|||||||
customRender: (value) => {
|
customRender: (value) => {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{value.record?.teachingDate?dayjs(value.record?.teachingDate).format("YYYY-MM-DD HH:mm"):'-'}
|
{ value.record?.teachingDate ? dayjs(value.record?.teachingDate).format("YYYY-MM-DD HH:mm") : '-' }
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -627,12 +608,12 @@ export default {
|
|||||||
customRender: (value) => {
|
customRender: (value) => {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{value.record.courseStatus == 0 || value.record.courseStatus == 1
|
{ value.record.courseStatus == 0 || value.record.courseStatus == 1
|
||||||
? {
|
? {
|
||||||
"0": "未开课",
|
"0": "未开课",
|
||||||
"1": "已开课",
|
"1": "已开课",
|
||||||
}[value.record.courseStatus + ""] || ""
|
}[value.record.courseStatus + ""] || ""
|
||||||
: "-"}
|
: "-" }
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -666,7 +647,7 @@ export default {
|
|||||||
customRender: (value) => {
|
customRender: (value) => {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{value.record?.teaching ? value.record.teaching + '分钟' : '-'}
|
{ value.record?.teaching ? value.record.teaching + '分钟' : '-' }
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -677,8 +658,8 @@ export default {
|
|||||||
key: 'studys',
|
key: 'studys',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "center",
|
||||||
width: 120,
|
width: 120,
|
||||||
customRender: ({text})=>{
|
customRender: ({ text }) => {
|
||||||
return text ? text+'人' : '-'
|
return text ? text + '人' : '-'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -690,7 +671,7 @@ export default {
|
|||||||
customRender: (value) => {
|
customRender: (value) => {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{value.record.score?Number(value.record.score).toFixed(0)==0?'-':Number(value.record.score).toFixed(2)+'分' : '-'}
|
{ value.record.score ? Number(value.record.score).toFixed(0) == 0 ? '-' : Number(value.record.score).toFixed(2) + '分' : '-' }
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -704,12 +685,12 @@ export default {
|
|||||||
customRender: (value) => {
|
customRender: (value) => {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{value.record.createFrom == "0" || value.record.createFrom == "1"
|
{ value.record.createFrom == "0" || value.record.createFrom == "1"
|
||||||
? {
|
? {
|
||||||
"0": "系统生成",
|
"0": "系统生成",
|
||||||
"1": "手动录入",
|
"1": "手动录入",
|
||||||
}[value.record.createFrom + ""] || ""
|
}[value.record.createFrom + ""] || ""
|
||||||
: "-"}
|
: "-" }
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -785,9 +766,9 @@ export default {
|
|||||||
state.tableLoading = false
|
state.tableLoading = false
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
state.tableLoading = false
|
state.tableLoading = false
|
||||||
message.error(err.data.msg)
|
message.error(err.data.msg)
|
||||||
})
|
})
|
||||||
|
|
||||||
};
|
};
|
||||||
getTableDate()
|
getTableDate()
|
||||||
@@ -802,7 +783,7 @@ export default {
|
|||||||
cancel()
|
cancel()
|
||||||
state.teacherdialog = true;
|
state.teacherdialog = true;
|
||||||
state.teacherdialogtitle = '添加授课记录'
|
state.teacherdialogtitle = '添加授课记录'
|
||||||
state.formParam.createFrom='1'
|
state.formParam.createFrom = '1'
|
||||||
state.vf = true
|
state.vf = true
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -829,12 +810,12 @@ export default {
|
|||||||
//保存
|
//保存
|
||||||
const createTeacherDialog = async () => {
|
const createTeacherDialog = async () => {
|
||||||
state.formParam.teachingDate = state.teachingDate ? dayjs(state.teachingDate).format("YYYY-MM-DD HH:mm").toString() : ""
|
state.formParam.teachingDate = state.teachingDate ? dayjs(state.teachingDate).format("YYYY-MM-DD HH:mm").toString() : ""
|
||||||
if(state.formParam.studys==0){
|
if (state.formParam.studys == 0) {
|
||||||
state.formParam.studys = null
|
state.formParam.studys = null
|
||||||
}
|
}
|
||||||
if(state.formParam.score||state.formParam.score==0){
|
if (state.formParam.score || state.formParam.score == 0) {
|
||||||
state.formParam.score = String(state.formParam.score)
|
state.formParam.score = String(state.formParam.score)
|
||||||
}else{
|
} else {
|
||||||
state.formParam.score = null
|
state.formParam.score = null
|
||||||
}
|
}
|
||||||
state.formParam.courseStatus = String(state.formParam.courseStatus)
|
state.formParam.courseStatus = String(state.formParam.courseStatus)
|
||||||
@@ -915,7 +896,7 @@ export default {
|
|||||||
score: null,
|
score: null,
|
||||||
remark: null,
|
remark: null,
|
||||||
teachingDate: null,
|
teachingDate: null,
|
||||||
teacherId:null
|
teacherId: null
|
||||||
}
|
}
|
||||||
state.teachingDate = null
|
state.teachingDate = null
|
||||||
}
|
}
|
||||||
@@ -946,18 +927,20 @@ export default {
|
|||||||
const TeacherSystem = () => {
|
const TeacherSystem = () => {
|
||||||
getTeacherCourseList({ id: state.lookTeacherId }).then((res) => {
|
getTeacherCourseList({ id: state.lookTeacherId }).then((res) => {
|
||||||
state.formParam = res.data.data
|
state.formParam = res.data.data
|
||||||
state.teachingDate = res.data.data.teachingDate ? dayjs(res.data.data.teachingDate, 'YYYY-MM-DD HH:mm'):'',
|
state.teachingDate = res.data.data.teachingDate ? dayjs(res.data.data.teachingDate, 'YYYY-MM-DD HH:mm') : '',
|
||||||
state.formParam.name=state.formParam.teacherName
|
state.formParam.name = state.formParam.teacherName
|
||||||
state.formParam.teachingDate = state.teachingDate ? dayjs(state.teachingDate).format("YYYY-MM-DD HH:mm").toString() : ""
|
state.formParam.teachingDate = state.teachingDate ? dayjs(state.teachingDate).format("YYYY-MM-DD HH:mm").toString() : ""
|
||||||
state.formParam.courseStatus = String(state.formParam.courseStatus)
|
state.formParam.courseStatus = String(state.formParam.courseStatus)
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function managerChange(e, l, d, t, orgName) {
|
function managerChange(e, l, d, t, orgName) {
|
||||||
|
console.log("managerChange e l",e,l)
|
||||||
// console.log(e, l, d, t, orgName,'e, l, d, t, orgName');
|
// console.log(e, l, d, t, orgName,'e, l, d, t, orgName');
|
||||||
state.formParam.mobile=e?l.mobile:''
|
state.formParam.mobile = e ? l.mobile : '';
|
||||||
state.formParam.teacherId=e?l.id:''
|
state.formParam.teacherId = e ? l.id : '';
|
||||||
|
state.formParam.supplier = e ? l.supplier : '';
|
||||||
// state.searchParam.userNo = d;
|
// state.searchParam.userNo = d;
|
||||||
// state.searchParam.name = t;
|
// state.searchParam.name = t;
|
||||||
// state.searchParam.trainorgName=orgName
|
// state.searchParam.trainorgName=orgName
|
||||||
@@ -972,7 +955,7 @@ export default {
|
|||||||
//导出功能
|
//导出功能
|
||||||
const handleExport = () => {
|
const handleExport = () => {
|
||||||
window.open(
|
window.open(
|
||||||
`${process.env.VUE_APP_BASE_API}/admin/export/exportOutTeacherRecord?recordType=2&name=${state.searchParam.name || ""}&courseName=${state.searchParam.courseName || ""}&createFrom=${state.searchParam.createFrom || ""}&beginTime=${state.searchParam.beginTime|| ""}&endTime=${state.searchParam.endTime || ""}&courseTypeId=${state.searchParam.courseTypeId || ""}&courseStatus=${state.searchParam.courseStatus || ""}&supplier=${state.searchParam.supplier || ""}`
|
`${process.env.VUE_APP_BASE_API}/admin/export/exportOutTeacherRecord?recordType=2&name=${state.searchParam.name || ""}&courseName=${state.searchParam.courseName || ""}&createFrom=${state.searchParam.createFrom || ""}&beginTime=${state.searchParam.beginTime || ""}&endTime=${state.searchParam.endTime || ""}&courseTypeId=${state.searchParam.courseTypeId || ""}&courseStatus=${state.searchParam.courseStatus || ""}&supplier=${state.searchParam.supplier || ""}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
const clearstudysNumber = () => {
|
const clearstudysNumber = () => {
|
||||||
@@ -981,14 +964,14 @@ export default {
|
|||||||
const clearscoreNumber = () => {
|
const clearscoreNumber = () => {
|
||||||
state.formParam.score = state.formParam.score.replace(/\D/g, '');
|
state.formParam.score = state.formParam.score.replace(/\D/g, '');
|
||||||
}
|
}
|
||||||
//回车
|
//回车
|
||||||
const enterPressHadlerSearch = e => {
|
const enterPressHadlerSearch = e => {
|
||||||
if (e.keyCode === 13) {
|
if (e.keyCode === 13) {
|
||||||
searchSubmit()
|
searchSubmit()
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const sendName=()=>{
|
const sendName = () => {
|
||||||
state.formParam.courseName = state.formParam.courseName.replace(/\s/g, '');
|
state.formParam.courseName = state.formParam.courseName.replace(/\s/g, '');
|
||||||
}
|
}
|
||||||
const blurScore = () => {
|
const blurScore = () => {
|
||||||
@@ -997,7 +980,7 @@ const sendName=()=>{
|
|||||||
const focusScore = () => {
|
const focusScore = () => {
|
||||||
// state.formParam.score == 0 && (state.formParam.score = null)
|
// state.formParam.score == 0 && (state.formParam.score = null)
|
||||||
}
|
}
|
||||||
const sendRemark=()=>{
|
const sendRemark = () => {
|
||||||
state.formParam.remark = state.formParam.remark.replace(/\s/g, '');
|
state.formParam.remark = state.formParam.remark.replace(/\s/g, '');
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
@@ -1050,10 +1033,11 @@ const sendName=()=>{
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped >
|
<style lang="scss" scoped>
|
||||||
.select .ant-picker {
|
.select .ant-picker {
|
||||||
width: 410px !important;
|
width: 410px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.headers {
|
.headers {
|
||||||
height: 73px;
|
height: 73px;
|
||||||
border-bottom: 1px solid #e8e8e8;
|
border-bottom: 1px solid #e8e8e8;
|
||||||
@@ -1072,6 +1056,7 @@ const sendName=()=>{
|
|||||||
// margin-left: 24px;
|
// margin-left: 24px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.addTimeBox {
|
.addTimeBox {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -1343,6 +1328,7 @@ const sendName=()=>{
|
|||||||
margin-right: 14px;
|
margin-right: 14px;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
.search {
|
.search {
|
||||||
width: 15px;
|
width: 15px;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -50,10 +50,20 @@
|
|||||||
<!-- <OrgClass @enter="searchSubmit()" v-model:value="searchParam.orgId" :placeholder="'请选择讲师组织'"
|
<!-- <OrgClass @enter="searchSubmit()" v-model:value="searchParam.orgId" :placeholder="'请选择讲师组织'"
|
||||||
style="width: 235px"
|
style="width: 235px"
|
||||||
></OrgClass> -->
|
></OrgClass> -->
|
||||||
<a-select style="width: 235px ;margin-bottom:20px" v-model:value="searchParam.trainOrgId" placeholder="请选择培训发生组织" allowClear
|
<!-- TODO GX02-->
|
||||||
:options="orgListSearch"
|
<a-select
|
||||||
v-on:keydown.enter="enterPressHadlerSearch">
|
style="width: 235px ;
|
||||||
</a-select>
|
margin-bottom:20px"
|
||||||
|
v-model:value="searchParam.trainOrgId"
|
||||||
|
placeholder="请选择培训发生组织"
|
||||||
|
allowClear
|
||||||
|
showSearch
|
||||||
|
:filter-option="false"
|
||||||
|
:options="filterOrgListSearch"
|
||||||
|
@search="handleOrgSearch"
|
||||||
|
@change="changeOrg"
|
||||||
|
v-on:keydown.enter="enterPressHadlerSearch">
|
||||||
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item class="select" v-if="moreid == 2">
|
<a-form-item class="select" v-if="moreid == 2">
|
||||||
<a-select style="width: 200px;margin-bottom:20px" placeholder="是否生成讲师费" v-model:value="searchParam.createdFee"
|
<a-select style="width: 200px;margin-bottom:20px" placeholder="是否生成讲师费" v-model:value="searchParam.createdFee"
|
||||||
@@ -284,8 +294,14 @@
|
|||||||
/>
|
/>
|
||||||
培训发生组织
|
培训发生组织
|
||||||
</template>
|
</template>
|
||||||
<a-select v-model:value="formParam.trainOrgId" placeholder="请选择培训发生组织" allowClear
|
<!-- TODO5 授课讲师 -->
|
||||||
:options="orgList" @change="changeOrg">
|
<a-select v-model:value="formParam.trainOrgId" placeholder="请选择培训发生组织"
|
||||||
|
allowClear
|
||||||
|
showSearch
|
||||||
|
:filter-option="false"
|
||||||
|
:options="filterOrgListSearch"
|
||||||
|
@search="handleOrgSearch"
|
||||||
|
@change="changeOrg">
|
||||||
</a-select>
|
</a-select>
|
||||||
<!-- <OrgClass v-model:value="formParam.sourceBelongId" v-model:name="formParam.sourceBelongFullName"></OrgClass> -->
|
<!-- <OrgClass v-model:value="formParam.sourceBelongId" v-model:name="formParam.sourceBelongFullName"></OrgClass> -->
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -413,27 +429,28 @@
|
|||||||
<span style="font-weight:600;">讲师信息</span>
|
<span style="font-weight:600;">讲师信息</span>
|
||||||
<a-descriptions style="margin-top:15px;" bordered :column="2" :contentStyle="{'maxWidth':'300px'}" :labelStyle="{'width':'160px'}">
|
<a-descriptions style="margin-top:15px;" bordered :column="2" :contentStyle="{'maxWidth':'300px'}" :labelStyle="{'width':'160px'}">
|
||||||
<a-descriptions-item label="讲师名称"><div style="user-select: text">{{ formParam.teacherName ||'-'}}/{{ formParam.userNo||'-' }}</div></a-descriptions-item>
|
<a-descriptions-item label="讲师名称"><div style="user-select: text">{{ formParam.teacherName ||'-'}}/{{ formParam.userNo||'-' }}</div></a-descriptions-item>
|
||||||
|
|
||||||
<!-- <a-descriptions-item label="讲师组织">{{ formParam.orgName||'-' }}</a-descriptions-item> -->
|
|
||||||
<a-descriptions-item label="培训发生组织">{{ formParam.trainOrgName||'-' }}</a-descriptions-item>
|
|
||||||
<!-- <a-descriptions-item label="讲师体系">{{ formParam.tsystemName||'-' }}</a-descriptions-item> -->
|
|
||||||
<!-- <a-descriptions-item label="讲师级别">{{ formParam.tlevelName||'-'}}</a-descriptions-item> -->
|
|
||||||
<a-descriptions-item label="数据来源">
|
|
||||||
{{ formParam.createFrom == 0 ? '系统生成' : formParam.createFrom == 1 ? '手动录入' : '-' }}</a-descriptions-item>
|
|
||||||
<a-descriptions-item label="课程类型">{{ formParam.type == 0 ? '在线课' : formParam.type == 1 ? '面授课' : formParam.type == 2 ? '手动录入' : '-'
|
|
||||||
}}</a-descriptions-item>
|
|
||||||
<a-descriptions-item label="课程名称"><div style="user-select: text">{{ formParam.courseName||'-' }}</div></a-descriptions-item>
|
<a-descriptions-item label="课程名称"><div style="user-select: text">{{ formParam.courseName||'-' }}</div></a-descriptions-item>
|
||||||
|
<a-descriptions-item label="课程类型">
|
||||||
|
{{ formParam.type == 0 ? '在线课' : formParam.type == 1 ? '面授课' : formParam.type == 5 ? '手动录入' : '-'
|
||||||
|
}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="授课/课程日期"><div style="user-select: text">{{ formParam.teachingDate||'-' }}</div></a-descriptions-item>
|
||||||
<a-descriptions-item label="开课状态">{{ formParam.courseStatus == 0 ? '未开课' : formParam.courseStatus == 1
|
<a-descriptions-item label="开课状态">{{ formParam.courseStatus == 0 ? '未开课' : formParam.courseStatus == 1
|
||||||
? '已开课' : '-' }}</a-descriptions-item>
|
? '已开课' : '-' }}</a-descriptions-item>
|
||||||
<a-descriptions-item label="授课/课程时长 ">
|
<a-descriptions-item label="授课/课程时长(分钟)">
|
||||||
<span> {{ formParam.teaching }} 分钟</span>
|
<span> {{ formParam.teaching }} 分钟</span>
|
||||||
<span style="margin-left: 10px ;" v-if="formParam.teaching != '0'">({{ (formParam.teaching / 60
|
<span style="margin-left: 10px ;" v-if="formParam.teaching != '0'">({{ (formParam.teaching / 60
|
||||||
).toFixed(2) }}小时)</span> </a-descriptions-item>
|
).toFixed(2) }}小时)</span> </a-descriptions-item>
|
||||||
<a-descriptions-item label="授课/课程日期"><div style="user-select: text">{{ formParam.teachingDate||'-' }}</div></a-descriptions-item>
|
<a-descriptions-item label="参训人数 ">{{ formParam.studys?formParam.studys+'人':'-' }}</a-descriptions-item>
|
||||||
<a-descriptions-item label="参训人数 ">{{ formParam.studys?formParam.studys+'人':'-' }}</a-descriptions-item>
|
<a-descriptions-item label="评分 ">{{ formParam.score?Number(formParam.score).toFixed(0)==0?'-':Number(formParam.score).toFixed(2)+'分':'-' }}</a-descriptions-item>
|
||||||
<a-descriptions-item label="评分 ">{{ formParam.score?Number(formParam.score).toFixed(0)==0?'-':Number(formParam.score).toFixed(2)+'分':'-' }}</a-descriptions-item>
|
<!-- <a-descriptions-item label="讲师组织">{{ formParam.orgName||'-' }}</a-descriptions-item> -->
|
||||||
|
<a-descriptions-item label="培训发生组织">{{ formParam.trainOrgName||'-' }}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="是否生成讲师费">{{{0:'否',1:'是'}[formParam.createdFee]}}</a-descriptions-item>
|
||||||
|
<!-- <a-descriptions-item label="讲师体系">{{ formParam.tsystemName||'-' }}</a-descriptions-item> -->
|
||||||
|
<!-- <a-descriptions-item label="讲师级别">{{ formParam.tlevelName||'-'}}</a-descriptions-item> -->
|
||||||
|
<!-- <a-descriptions-item label="数据来源">
|
||||||
|
{{ formParam.createFrom == 0 ? '系统生成' : formParam.createFrom == 1 ? '手动录入' : '-' }}</a-descriptions-item> -->
|
||||||
<!-- <a-descriptions-item label="内容分类">{{ formParam.courseTypeName||'-' }}</a-descriptions-item> -->
|
<!-- <a-descriptions-item label="内容分类">{{ formParam.courseTypeName||'-' }}</a-descriptions-item> -->
|
||||||
<a-descriptions-item label="是否生成讲师费">{{{0:'否',1:'是'}[formParam.createdFee]}}</a-descriptions-item>
|
|
||||||
<a-descriptions-item label="备注 ">{{ formParam.remark||'-' }}</a-descriptions-item>
|
<a-descriptions-item label="备注 ">{{ formParam.remark||'-' }}</a-descriptions-item>
|
||||||
</a-descriptions>
|
</a-descriptions>
|
||||||
<div v-if="formParam.createFrom == '0'">
|
<div v-if="formParam.createFrom == '0'">
|
||||||
@@ -560,6 +577,7 @@ export default {
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
orgListSearch: [],
|
orgListSearch: [],
|
||||||
|
filterOrgListSearch: [],
|
||||||
moreid: 1,
|
moreid: 1,
|
||||||
title: '导入内部授课记录',
|
title: '导入内部授课记录',
|
||||||
vf: false,
|
vf: false,
|
||||||
@@ -803,7 +821,7 @@ export default {
|
|||||||
? {
|
? {
|
||||||
"0": "在线课",
|
"0": "在线课",
|
||||||
"1": "面授课",
|
"1": "面授课",
|
||||||
"2": "手动录入",
|
"5": "手动录入",
|
||||||
}[value.record.type + ""]
|
}[value.record.type + ""]
|
||||||
: "-"}
|
: "-"}
|
||||||
</div>
|
</div>
|
||||||
@@ -890,25 +908,25 @@ export default {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: '数据来源',
|
// title: '数据来源',
|
||||||
dataIndex: 'createFrom',
|
// dataIndex: 'createFrom',
|
||||||
key: 'createFrom',
|
// key: 'createFrom',
|
||||||
ellipsis: true, align: "center",
|
// ellipsis: true, align: "center",
|
||||||
width: 120,
|
// width: 120,
|
||||||
customRender: (value) => {
|
// customRender: (value) => {
|
||||||
return (
|
// return (
|
||||||
<div>
|
// <div>
|
||||||
{value.record.createFrom == "0" || value.record.createFrom == "1"
|
// {value.record.createFrom == "0" || value.record.createFrom == "1"
|
||||||
? {
|
// ? {
|
||||||
"0": "系统生成",
|
// "0": "系统生成",
|
||||||
"1": "手动录入",
|
// "1": "手动录入",
|
||||||
}[value.record.createFrom + ""] || ""
|
// }[value.record.createFrom + ""] || ""
|
||||||
: "-"}
|
// : "-"}
|
||||||
</div>
|
// </div>
|
||||||
)
|
// )
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
title: '培训发生组织 ',
|
title: '培训发生组织 ',
|
||||||
dataIndex: 'trainOrgName',
|
dataIndex: 'trainOrgName',
|
||||||
@@ -963,6 +981,7 @@ export default {
|
|||||||
pageSize:50
|
pageSize:50
|
||||||
}
|
}
|
||||||
queryTrainOrgPor(obj).then((res) => {
|
queryTrainOrgPor(obj).then((res) => {
|
||||||
|
|
||||||
state.orgList = res.data.data?.map(item=>{
|
state.orgList = res.data.data?.map(item=>{
|
||||||
return{
|
return{
|
||||||
label: item.affiliationName,
|
label: item.affiliationName,
|
||||||
@@ -978,9 +997,19 @@ export default {
|
|||||||
state.orgListSearch.unshift({
|
state.orgListSearch.unshift({
|
||||||
label: '全部', value: ''
|
label: '全部', value: ''
|
||||||
})
|
})
|
||||||
|
state.filterOrgListSearch = state.orgListSearch;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
//TODO5
|
||||||
const changeOrg = (e,l) => {
|
const changeOrg = (e,l) => {
|
||||||
|
console.log("changeOrg e",e);
|
||||||
|
console.log("changeOrg l",l);
|
||||||
|
if(l == undefined || l == null){
|
||||||
|
state.filterOrgListSearch = state.orgListSearch;
|
||||||
|
}
|
||||||
state.formParam.trainOrgName = l?.label
|
state.formParam.trainOrgName = l?.label
|
||||||
}
|
}
|
||||||
const rules = {
|
const rules = {
|
||||||
@@ -1489,6 +1518,16 @@ export default {
|
|||||||
const sendRemark = () => {
|
const sendRemark = () => {
|
||||||
state.formParam.remark = state.formParam.remark.replace(/\s/g, '');
|
state.formParam.remark = state.formParam.remark.replace(/\s/g, '');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO5
|
||||||
|
const handleOrgSearch = (value) => {
|
||||||
|
let temp = JSON.parse(JSON.stringify(state.orgListSearch));
|
||||||
|
//选择数据
|
||||||
|
state.filterOrgListSearch = temp.filter(item => item.label.includes(value))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
sendName,
|
sendName,
|
||||||
@@ -1548,7 +1587,8 @@ export default {
|
|||||||
// editTimeChange,
|
// editTimeChange,
|
||||||
scoreChange,
|
scoreChange,
|
||||||
locale,
|
locale,
|
||||||
checkMenu
|
checkMenu,
|
||||||
|
handleOrgSearch
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,26 +1,26 @@
|
|||||||
<!-- 讲师费管理 -->
|
<!-- 讲师费管理 -->
|
||||||
<template>
|
<template>
|
||||||
<div class="LecturerFeeManagement">
|
<div class="LecturerFeeManagement">
|
||||||
<div style="margin: 20px;margin-top:0;" >
|
<div style="margin: 20px;margin-top:0;">
|
||||||
<a-tabs v-model:activeKey="activeKey" >
|
<a-tabs v-model:activeKey="activeKey">
|
||||||
<a-tab-pane key="1" tab="讲师费管理">
|
<a-tab-pane key="1" tab="讲师费管理">
|
||||||
<LecturerFee />
|
<LecturerFee :activeKeyFn="activeKeyFn"/>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<!-- v-if="lecturerAdmin('lecturer-admin')" -->
|
<!-- v-if="lecturerAdmin('lecturer-admin')" -->
|
||||||
<a-tab-pane key="2" tab="审批中心">
|
<a-tab-pane key="2" tab="审批中心">
|
||||||
<LecturerApproval/>
|
<LecturerApproval :activeKeyProps="activeKey"/>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
</a-tabs>
|
</a-tabs>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import { reactive, toRefs, ref, watch,onMounted,computed } from "vue";
|
import { reactive, toRefs, ref, watch, onMounted, computed } from "vue";
|
||||||
import LecturerFee from "../lecturer/LecturerFee.vue"
|
import LecturerFee from "../lecturer/LecturerFee.vue"
|
||||||
import LecturerApproval from "../lecturer/LecturerApproval.vue"
|
import LecturerApproval from "../lecturer/LecturerApproval.vue"
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
import {useStore} from 'vuex'
|
import { useStore } from 'vuex'
|
||||||
export default {
|
export default {
|
||||||
name: "LecturerFeeManagement",
|
name: "LecturerFeeManagement",
|
||||||
components: {
|
components: {
|
||||||
LecturerFee,
|
LecturerFee,
|
||||||
@@ -28,36 +28,43 @@ import {useStore} from 'vuex'
|
|||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
const userInfo = computed(()=> store.state.userInfo)
|
const userInfo = computed(() => store.state.userInfo)
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
activeKey:'1',
|
activeKey: '1',
|
||||||
})
|
})
|
||||||
const lecturerAdmin = (admin)=>{
|
//
|
||||||
const roleCode = userInfo.value.roleList.map((item)=>item.roleCode)
|
const lecturerAdmin = (admin) => {
|
||||||
if (admin){
|
const roleCode = userInfo.value.roleList.map((item) => item.roleCode)
|
||||||
|
if (admin) {
|
||||||
return roleCode.some(t => t == admin)
|
return roleCode.some(t => t == admin)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
watch(
|
|
||||||
)
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if(route.query.activeKey){
|
if (route.query.activeKey) {
|
||||||
state.activeKey = '2'
|
state.activeKey = '2'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return {
|
|
||||||
|
const activeKeyFn = () => {
|
||||||
|
state.activeKey = '2'
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
lecturerAdmin,
|
lecturerAdmin,
|
||||||
|
activeKeyFn
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
::v-deep .ant-tabs-tab{
|
::v-deep .ant-tabs-tab {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
.LecturerFeeManagement {
|
|
||||||
|
.LecturerFeeManagement {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
@@ -1,54 +1,55 @@
|
|||||||
<!-- 讲师列表 -->
|
<!-- 讲师列表 -->
|
||||||
<template>
|
<template>
|
||||||
<div class="LecturerList">
|
<div class="LecturerList">
|
||||||
<div style="margin: 20px;margin-top:0;" >
|
<div style="margin: 20px;margin-top:0;">
|
||||||
<a-tabs v-model:activeKey="activeKey">
|
<a-tabs v-model:activeKey="activeKey">
|
||||||
<a-tab-pane key="1" tab="内部讲师">
|
<a-tab-pane key="1" tab="内部讲师">
|
||||||
<InsideLecturer/>
|
<InsideLecturer />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane key="2" tab="外部讲师">
|
<a-tab-pane key="2" tab="外部讲师">
|
||||||
<ExternalLecturer/>
|
<ExternalLecturer />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
</a-tabs>
|
</a-tabs>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import { reactive, toRefs, ref, watch,onMounted,nextTick } from "vue";
|
import { reactive, toRefs, ref, watch, onMounted, nextTick } from "vue";
|
||||||
import InsideLecturer from "../lecturer/InsideLecturer.vue"
|
import InsideLecturer from "../lecturer/InsideLecturer.vue"
|
||||||
import ExternalLecturer from "../lecturer/ExternalLecturer.vue"
|
import ExternalLecturer from "../lecturer/ExternalLecturer.vue"
|
||||||
import { useRoute } from 'vue-router'
|
import { useRoute } from 'vue-router'
|
||||||
import { useStore } from 'vuex'
|
import { useStore } from 'vuex'
|
||||||
export default {
|
export default {
|
||||||
name: "LecturerList",
|
name: "LecturerList",
|
||||||
components: {
|
components: {
|
||||||
InsideLecturer,
|
InsideLecturer,
|
||||||
ExternalLecturer
|
ExternalLecturer
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
activeKey:'1'
|
activeKey: '1'
|
||||||
})
|
})
|
||||||
watch(
|
watch(
|
||||||
)
|
)
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if(route.query.activeKey){
|
if (route.query.activeKey) {
|
||||||
state.activeKey = route.query.activeKey
|
state.activeKey = route.query.activeKey
|
||||||
}
|
|
||||||
})
|
|
||||||
return {
|
|
||||||
...toRefs(state),
|
|
||||||
}
|
}
|
||||||
},
|
})
|
||||||
};
|
return {
|
||||||
</script>
|
...toRefs(state),
|
||||||
<style lang="scss" scoped>
|
}
|
||||||
::v-deep .ant-tabs-tab{
|
},
|
||||||
font-weight: 600;
|
};
|
||||||
}
|
</script>
|
||||||
.LecturerList {
|
<style lang="scss" scoped>
|
||||||
|
::v-deep .ant-tabs-tab {
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.LecturerList {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -321,4 +322,3 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1679
src/views/lecturer/OrganizationApproval.vue
Normal file
1679
src/views/lecturer/OrganizationApproval.vue
Normal file
File diff suppressed because it is too large
Load Diff
1661
src/views/lecturer/OrganizationList.vue
Normal file
1661
src/views/lecturer/OrganizationList.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,45 +1,46 @@
|
|||||||
<!-- 授课记录 -->
|
<!-- 授课记录 -->
|
||||||
<template>
|
<template>
|
||||||
<div class="TeachingRecord" >
|
<div class="TeachingRecord">
|
||||||
<div style="margin: 20px;margin-top:0;" >
|
<div style="margin: 20px;margin-top:0;">
|
||||||
<a-tabs v-model:activeKey="activeKey">
|
<a-tabs v-model:activeKey="activeKey">
|
||||||
<a-tab-pane key="1" tab="内部讲师授课记录">
|
<a-tab-pane key="1" tab="内部讲师授课记录">
|
||||||
<InsideTeaching/>
|
<InsideTeaching />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane key="2" tab="外部讲师授课记录">
|
<a-tab-pane key="2" tab="外部讲师授课记录">
|
||||||
<ExternalTeaching/>
|
<ExternalTeaching />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
</a-tabs>
|
</a-tabs>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="jsx">
|
<script lang="jsx">
|
||||||
import { reactive, toRefs, ref, watch } from "vue";
|
import { reactive, toRefs, ref, watch } from "vue";
|
||||||
import InsideTeaching from "../lecturer/InsideTeaching.vue"
|
import InsideTeaching from "../lecturer/InsideTeaching.vue"
|
||||||
import ExternalTeaching from "../lecturer/ExternalTeaching.vue"
|
import ExternalTeaching from "../lecturer/ExternalTeaching.vue"
|
||||||
export default {
|
export default {
|
||||||
name: "TeachingRecord",
|
name: "TeachingRecord",
|
||||||
components: {
|
components: {
|
||||||
InsideTeaching,
|
InsideTeaching,
|
||||||
ExternalTeaching,
|
ExternalTeaching,
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
activeKey:'1'
|
activeKey: '1'
|
||||||
})
|
})
|
||||||
watch(
|
watch(
|
||||||
)
|
)
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
::v-deep .ant-tabs-tab {
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
::v-deep .ant-tabs-tab{
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
.TeachingRecord {
|
.TeachingRecord {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|||||||
Reference in New Issue
Block a user