mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-11 03:46:45 +08:00
讲师管理bug
This commit is contained in:
@@ -29,7 +29,7 @@ export const USER_LIST_PAGE = "/admin/thirdApi/user/list";
|
|||||||
export const USER_LIST = "/admin/thirdApi/user/list";
|
export const USER_LIST = "/admin/thirdApi/user/list";
|
||||||
export const ORG_LIST = "/admin/thirdApi/org/list";
|
export const ORG_LIST = "/admin/thirdApi/org/list";
|
||||||
export const ORG_CHILD_LIST = "/admin/thirdApi/org/info";
|
export const ORG_CHILD_LIST = "/admin/thirdApi/org/info";
|
||||||
export const USER_LIST_NEW = '/xboe/teacher/name'
|
export const USER_LIST_NEW = '/admin/teacher/selectTeacher'
|
||||||
export const AUDIENCE_LIST = "/admin/thirdApi/audience/userAudiences";
|
export const AUDIENCE_LIST = "/admin/thirdApi/audience/userAudiences";
|
||||||
export const USER_PERMISSION = "/admin/thirdApi/permission/listByUser";
|
export const USER_PERMISSION = "/admin/thirdApi/permission/listByUser";
|
||||||
export const VALIDATE_TOKEN = "/admin/thirdApi/validateToken";
|
export const VALIDATE_TOKEN = "/admin/thirdApi/validateToken";
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import http from "./config";
|
import http from "./config";
|
||||||
// 列表查看归属组织
|
// 列表查看归属组织
|
||||||
export const queryTrainOrg = (obj) => http.get( '/admin/affiliation/list', {params: obj})
|
export const queryTrainOrg = (obj) => http.get( '/admin/affiliation/list', {params: obj})
|
||||||
|
export const queryTrainOrgPor = (obj) => http.get( '/admin/affiliation/getAapprovallist', {params: obj})
|
||||||
//新增归属组织
|
//新增归属组织
|
||||||
export const addReviewer = (obj) => http.post('/admin/affiliation/addAffiliation', obj)
|
export const addReviewer = (obj) => http.post('/admin/affiliation/addAffiliation', obj)
|
||||||
// 删除归属组织
|
// 删除归属组织
|
||||||
|
|||||||
@@ -360,17 +360,18 @@ export function usePage(_url, params, init = true,listing = false) {
|
|||||||
...params
|
...params
|
||||||
});
|
});
|
||||||
|
|
||||||
watch(() => params.keyword, throttle(fetch, 600));
|
watch(() => params.name, throttle(fetch, 600));
|
||||||
watch(() => params.page, fetch);
|
watch(() => params.page, fetch);
|
||||||
|
|
||||||
function fetch() {
|
function fetch() {
|
||||||
state.loading = true;
|
state.loading = true;
|
||||||
if (!params.keyword) {
|
if (!params.name) {
|
||||||
state.loading = false;
|
state.loading = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return request(_url, params).then(r => {
|
return request(_url, params).then(r => {
|
||||||
state.data = params.pageNo === 1 ? r.data.list : [...state.data, ...r.data.list];
|
console.log(r,'rrrrrrrrrrrrrrrr')
|
||||||
|
state.data = params.pageNo === 1 ? r.data : [...state.data, ...r.data];
|
||||||
state.totalPage = r.data.total/10 || 1;
|
state.totalPage = r.data.total/10 || 1;
|
||||||
state.total = r.data.total;
|
state.total = r.data.total;
|
||||||
state.loading = false;
|
state.loading = false;
|
||||||
@@ -497,7 +498,7 @@ export async function request(_url, params) {
|
|||||||
}).then(res => {
|
}).then(res => {
|
||||||
return JSONBigIntStr.parse(res);
|
return JSONBigIntStr.parse(res);
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
if (res.code === 0 || res.code === 200) {
|
if (res.code === 0 || res.code === 200 || res.status === 200) {
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
if (res.code === 4 ){
|
if (res.code === 4 ){
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ const props = defineProps({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
onMounted(()=>{
|
onMounted(()=>{
|
||||||
onlineLearningList()
|
// onlineLearningList()
|
||||||
})
|
})
|
||||||
const courseList = ref([])
|
const courseList = ref([])
|
||||||
const onlineLearningList = () =>{
|
const onlineLearningList = () =>{
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<div style="margin-bottom: 20px;font-size: 18px;font-weight: 700;">选择讲师费汇总:<span style="color:red;margin-left:20px;">{{payableExpense||0}}元</span></div>
|
<div style="margin-bottom: 20px;font-size: 18px;font-weight: 700;">选择讲师费汇总:<span style="color:red;margin-left:20px;">{{payableExpense||0}}元</span></div>
|
||||||
<div class="table">
|
<div class="table" style="padding-bottom:72px;">
|
||||||
<a-table
|
<a-table
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
:data-source="tableData"
|
:data-source="tableData"
|
||||||
@@ -72,6 +72,9 @@ watch(()=>props.visible,(val)=>{
|
|||||||
message.error(err.data.msg)
|
message.error(err.data.msg)
|
||||||
loading.value = false
|
loading.value = false
|
||||||
})
|
})
|
||||||
|
}else{
|
||||||
|
selectedRowKeys.value = []
|
||||||
|
selectsData.value = []
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
@@ -90,7 +93,7 @@ const payableExpense = ref(0)
|
|||||||
watch(()=>selectsData.value.length,(val)=>{
|
watch(()=>selectsData.value.length,(val)=>{
|
||||||
if(val){
|
if(val){
|
||||||
payableExpense.value = selectsData.value.reduce((a,b)=>{
|
payableExpense.value = selectsData.value.reduce((a,b)=>{
|
||||||
return a + b.payableExpense
|
return Number(a) + Number(b.payableExpense)
|
||||||
},0)
|
},0)
|
||||||
}else{
|
}else{
|
||||||
payableExpense.value = 0
|
payableExpense.value = 0
|
||||||
|
|||||||
@@ -23,8 +23,8 @@
|
|||||||
<div class="text">汇总金额</div>
|
<div class="text">汇总金额</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="org" :title="item?.trainOrgName">{{item?.trainOrgName}}</div>
|
<div class="org" :title="item?.trainOrgName">{{item?.trainOrgName||'-'}}</div>
|
||||||
<div class="text org" :title="item?.summaryTotal">{{item?.summaryTotal}}</div>
|
<div class="text org" :title="item?.summaryTotal">{{item?.summaryTotal||'-'}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -148,17 +148,20 @@ const handleConfirm = () => {
|
|||||||
message.success('提交成功')
|
message.success('提交成功')
|
||||||
close()
|
close()
|
||||||
closeDrawer()
|
closeDrawer()
|
||||||
|
emit('visibleFalse',false)
|
||||||
}).catch(err=>{
|
}).catch(err=>{
|
||||||
message.destroy()
|
message.destroy()
|
||||||
message.error(err.data.msg)
|
message.error(err.data.msg)
|
||||||
close()
|
close()
|
||||||
closeDrawer()
|
closeDrawer()
|
||||||
|
emit('visibleFalse',false)
|
||||||
})
|
})
|
||||||
}).catch(err=>{
|
}).catch(err=>{
|
||||||
message.destroy()
|
message.destroy()
|
||||||
message.error(err.data.msg)
|
message.error(err.data.msg)
|
||||||
close()
|
close()
|
||||||
closeDrawer()
|
closeDrawer()
|
||||||
|
emit('visibleFalse',false)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const forData = ref()
|
const forData = ref()
|
||||||
@@ -187,6 +190,7 @@ watch(()=>props.visible,(val)=>{
|
|||||||
expenseList.value = res.data.data[indexList.value]?.expenseList || []
|
expenseList.value = res.data.data[indexList.value]?.expenseList || []
|
||||||
}
|
}
|
||||||
loadingData.value = false
|
loadingData.value = false
|
||||||
|
resetData()
|
||||||
}).catch(()=>{
|
}).catch(()=>{
|
||||||
message.error('获取数据失败,请重新尝试')
|
message.error('获取数据失败,请重新尝试')
|
||||||
loadingData.value = false
|
loadingData.value = false
|
||||||
@@ -236,7 +240,7 @@ const searchData = (val) => {
|
|||||||
const startDateTimestamp = new Date(dateValue.value[0]).getTime();
|
const startDateTimestamp = new Date(dateValue.value[0]).getTime();
|
||||||
const endDateTimestamp = new Date(dateValue.value[1]).getTime();
|
const endDateTimestamp = new Date(dateValue.value[1]).getTime();
|
||||||
const isDateInRange = teachingDateTimestamp >= startDateTimestamp && teachingDateTimestamp <= endDateTimestamp;
|
const isDateInRange = teachingDateTimestamp >= startDateTimestamp && teachingDateTimestamp <= endDateTimestamp;
|
||||||
return isNameMatch || isDateInRange;
|
return isNameMatch && isDateInRange;
|
||||||
});
|
});
|
||||||
searchList.value = filteredList;
|
searchList.value = filteredList;
|
||||||
}
|
}
|
||||||
@@ -378,6 +382,12 @@ const qureyDrawer = () => {
|
|||||||
console.log(res,'resssss')
|
console.log(res,'resssss')
|
||||||
message.success('提交成功')
|
message.success('提交成功')
|
||||||
closeDrawer()
|
closeDrawer()
|
||||||
|
emit('visibleFalse',false)
|
||||||
|
}).catch(err=>{
|
||||||
|
message.destroy()
|
||||||
|
message.error(err.data.msg)
|
||||||
|
closeDrawer()
|
||||||
|
emit('visibleFalse',false)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
<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 {USER_LIST} from "@/api/apis";
|
import {USER_LIST_NEW} from "@/api/apis";
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
value: {
|
value: {
|
||||||
@@ -56,12 +56,12 @@ const emit = defineEmits({})
|
|||||||
|
|
||||||
const isOpen = ref(false)
|
const isOpen = ref(false)
|
||||||
|
|
||||||
const memberParam = ref({keyword: '', pageNo:1, pageSize: 20})
|
const memberParam = ref({name: '', pageNo:1, pageSize: 20})
|
||||||
|
|
||||||
const {data: userList, loading} = useThrottlePage(USER_LIST, memberParam.value, false)
|
const {data: userList, loading} = useThrottlePage(USER_LIST_NEW, memberParam.value, false)
|
||||||
|
|
||||||
const options = computed(() => userList.value.filter(e => !(props.value + '').includes(e.id)).map(e => ({
|
const options = computed(() => userList.value.filter(e => !(props.value + '').includes(e.id)).map(e => ({
|
||||||
label: e.realName + e.userNo,
|
label: e.name + e.mobile,
|
||||||
value: e.id //,
|
value: e.id //,
|
||||||
// ...e,
|
// ...e,
|
||||||
// audienceList: null
|
// audienceList: null
|
||||||
@@ -93,18 +93,18 @@ const searchMember = (keyword) => {
|
|||||||
isOpen.value = true
|
isOpen.value = true
|
||||||
userList.value = []
|
userList.value = []
|
||||||
memberParam.value.pageNo = 1
|
memberParam.value.pageNo = 1
|
||||||
memberParam.value.keyword = keyword
|
memberParam.value.name = keyword
|
||||||
console.log('searchMember', memberParam.value)
|
console.log('searchMember', memberParam.value)
|
||||||
};
|
};
|
||||||
|
|
||||||
function blur() {
|
function blur() {
|
||||||
isOpen.value = false
|
isOpen.value = false
|
||||||
memberParam.value.keyword = ''
|
memberParam.value.name = ''
|
||||||
memberParam.value.pageNo = 1
|
memberParam.value.pageNo = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
function change(e, l) {
|
function change(e, l) {
|
||||||
memberParam.value.keyword = ''
|
memberParam.value.name = ''
|
||||||
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)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
<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 {USER_LIST} from "@/api/apis";
|
import {USER_LIST_NEW} from "@/api/apis";
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
value: {
|
value: {
|
||||||
@@ -56,12 +56,12 @@ const emit = defineEmits({})
|
|||||||
|
|
||||||
const isOpen = ref(false)
|
const isOpen = ref(false)
|
||||||
|
|
||||||
const memberParam = ref({keyword: '', pageNo:1, pageSize: 20})
|
const memberParam = ref({name: '', pageNo:1, pageSize: 20})
|
||||||
|
|
||||||
const {data: userList, loading} = useThrottlePage(USER_LIST, memberParam.value, false)
|
const {data: userList, loading} = useThrottlePage(USER_LIST_NEW, memberParam.value, false)
|
||||||
|
|
||||||
const options = computed(() => userList.value.filter(e => !(props.value + '').includes(e.id)).map(e => ({
|
const options = computed(() => userList.value.filter(e => !(props.value + '').includes(e.id)).map(e => ({
|
||||||
label: e.realName + e.userNo,
|
label: e.name + e.mobile,
|
||||||
value: e.id // ,
|
value: e.id // ,
|
||||||
// ...e,
|
// ...e,
|
||||||
// audienceList: null
|
// audienceList: null
|
||||||
@@ -93,18 +93,18 @@ const searchMember = (keyword) => {
|
|||||||
isOpen.value = true
|
isOpen.value = true
|
||||||
userList.value = []
|
userList.value = []
|
||||||
memberParam.value.pageNo = 1
|
memberParam.value.pageNo = 1
|
||||||
memberParam.value.keyword = keyword
|
memberParam.value.name = keyword
|
||||||
console.log('searchMember', memberParam.value)
|
console.log('searchMember', memberParam.value)
|
||||||
};
|
};
|
||||||
|
|
||||||
function blur() {
|
function blur() {
|
||||||
isOpen.value = false
|
isOpen.value = false
|
||||||
memberParam.value.keyword = ''
|
memberParam.value.name = ''
|
||||||
memberParam.value.pageNo = 1
|
memberParam.value.pageNo = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
function change(e, l) {
|
function change(e, l) {
|
||||||
memberParam.value.keyword = ''
|
memberParam.value.name = ''
|
||||||
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)
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ watch(visible, (val)=>{
|
|||||||
formData.value.two = filterList(formData.value.affiliationUserList,2)
|
formData.value.two = filterList(formData.value.affiliationUserList,2)
|
||||||
formData.value.three = filterList(formData.value.affiliationUserList,3)
|
formData.value.three = filterList(formData.value.affiliationUserList,3)
|
||||||
formData.value.tableData = res.data.data.affiliationOrgList
|
formData.value.tableData = res.data.data.affiliationOrgList
|
||||||
formData.value.tableDataTwo = res.data.data.affiliationOrgList
|
// formData.value.tableDataTwo = res.data.data.affiliationOrgList
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -394,7 +394,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
<ImportWork v-model:showWork="showWork" :url="'/admin/export/importInTeacherRecord'" :title="title"></ImportWork>
|
<ImportWork v-model:showWork="showWork" :template="'内部授课记录导入模板'" :url="'/admin/export/importInTeacherRecord'" :title="title"></ImportWork>
|
||||||
<!-- <div> <Upload/> </div> -->
|
<!-- <div> <Upload/> </div> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="desc">
|
<div class="desc">
|
||||||
<a-descriptions :column="2" bordered>
|
<a-descriptions :column="2" bordered>
|
||||||
<a-descriptions-item label="审批编号">{{formData?.code||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="审批编号">{{formData?.approvalNumber||'-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="培训发生组名称">{{formData?.trainOrgName||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="培训发生组名称">{{formData?.trainOrgName||'-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="提交时间">{{formData?.summaryTime||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="提交时间">{{formData?.summaryTime||'-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="汇总金额">{{formData?.summaryTotal||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="汇总金额">{{formData?.summaryTotal||'-'}}</a-descriptions-item>
|
||||||
@@ -54,6 +54,11 @@
|
|||||||
:scroll="{ x: 'max-content' }"
|
:scroll="{ x: 'max-content' }"
|
||||||
:pagination="pagination"
|
:pagination="pagination"
|
||||||
>
|
>
|
||||||
|
<template #orgName="{record}">
|
||||||
|
<div :title="record?.orgName" style="maxWidth:200px;overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;">{{flipData(record.orgName)||'-'}}</div>
|
||||||
|
</template>
|
||||||
<template #appEdit="{ record }">
|
<template #appEdit="{ record }">
|
||||||
<a-button type="link" :disabled="record.createFrom==1 ?false :true" @click="edit(record)">编辑</a-button>
|
<a-button type="link" :disabled="record.createFrom==1 ?false :true" @click="edit(record)">编辑</a-button>
|
||||||
<a-button type="link" @click="recome(record)">移除</a-button>
|
<a-button type="link" @click="recome(record)">移除</a-button>
|
||||||
@@ -186,7 +191,7 @@
|
|||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="授课时长" name="teachingTime">
|
<a-form-item label="授课时长" name="teachingTime">
|
||||||
<a-input v-model:value="formParam.teachingTime" style="width:80%; height: 40px; border-radius: 8px; "
|
<a-input v-model:value="formParam.teachingTime" style="width:80%; height: 40px; border-radius: 8px; "
|
||||||
@blur="clearNonNumber" placeholder="请输入授课分钟数" allowClear showSearch suffix="分钟">
|
@change="clearNonNumber" placeholder="请输入授课分钟数" allowClear showSearch suffix="分钟">
|
||||||
</a-input>
|
</a-input>
|
||||||
<span style="margin-left: 5px ;" v-if="formParam.teachingTime != null">{{
|
<span style="margin-left: 5px ;" v-if="formParam.teachingTime != null">{{
|
||||||
(formParam.teachingTime / 60).toFixed(2) }}小时</span>
|
(formParam.teachingTime / 60).toFixed(2) }}小时</span>
|
||||||
@@ -195,7 +200,7 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="参训人数" name="studys">
|
<a-form-item label="参训人数" name="studys">
|
||||||
<a-input v-model:value="formParam.studys" class="draitem" @blur="clearstudysNumber"
|
<a-input v-model:value="formParam.studys" class="draitem" @blur="clearstudysNumber"
|
||||||
placeholder="请输入参训人数" allowClear showSearch >
|
placeholder="请输入参训人数" allowClear showSearch >
|
||||||
</a-input>
|
</a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -308,7 +313,7 @@ import { useRouter,useRoute } from 'vue-router'
|
|||||||
import dialog from '@/utils/dialog'
|
import dialog from '@/utils/dialog'
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { message } from 'ant-design-vue';
|
import { message } from 'ant-design-vue';
|
||||||
import { queryTrainOrg,} from "../../api/organization";
|
import { queryTrainOrgPor,} from "../../api/organization";
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
SearchTeacher,
|
SearchTeacher,
|
||||||
@@ -424,7 +429,7 @@ export default {
|
|||||||
}
|
}
|
||||||
const searchResetPrevious = () => {
|
const searchResetPrevious = () => {
|
||||||
dialog({
|
dialog({
|
||||||
content: '正在重新汇总数据,请稍后...',
|
content: '确定要重新汇总数据吗?',
|
||||||
ok: () => {
|
ok: () => {
|
||||||
CreateSummaryAgain(route.query.id).then(res=>{
|
CreateSummaryAgain(route.query.id).then(res=>{
|
||||||
queryById({id: state.paramsId}).then(res=>{
|
queryById({id: state.paramsId}).then(res=>{
|
||||||
@@ -457,10 +462,13 @@ export default {
|
|||||||
}
|
}
|
||||||
const clearstudysNumber = () => {
|
const clearstudysNumber = () => {
|
||||||
state.formParam.studys = state.formParam?.studys?.replace(/\D/g, '');
|
state.formParam.studys = state.formParam?.studys?.replace(/\D/g, '');
|
||||||
|
state.formParam.studys = state.formParam.studys?.slice(0,8)
|
||||||
}
|
}
|
||||||
const clearNonNumber = () => {
|
const clearNonNumber = () => {
|
||||||
state.formParam.teachingTime = state.formParam?.teachingTime?.replace(/\D/g, '');
|
state.formParam.teachingTime = state.formParam.teachingTime?.replace(/\D/g, '');
|
||||||
state.formParam.expense = state.formParam?.levelPay*state.formParam?.teachingTime
|
state.formParam.teachingTime = state.formParam.teachingTime?.slice(0,8);
|
||||||
|
state.formParam.teachingTime == 0 && (state.formParam.teachingTime = null);
|
||||||
|
state.formParam.teachingTime && state.formParam.levelPay && (state.formParam.expense = (state.formParam.levelPay*(state.formParam.teachingTime/60)).toFixed(2));
|
||||||
}
|
}
|
||||||
const courseTypeList = ref([
|
const courseTypeList = ref([
|
||||||
{ value: '0', label: "在线" },
|
{ value: '0', label: "在线" },
|
||||||
@@ -496,7 +504,7 @@ export default {
|
|||||||
pageNo:1,
|
pageNo:1,
|
||||||
pageSize:50
|
pageSize:50
|
||||||
}
|
}
|
||||||
queryTrainOrg(obj).then((res) => {
|
queryTrainOrgPor(obj).then((res) => {
|
||||||
console.log(res,'rssssss')
|
console.log(res,'rssssss')
|
||||||
state.orgList = res.data.data?.records?.map(item=>{
|
state.orgList = res.data.data?.records?.map(item=>{
|
||||||
return{
|
return{
|
||||||
@@ -601,7 +609,7 @@ export default {
|
|||||||
}
|
}
|
||||||
const paramsDrawer = () => {
|
const paramsDrawer = () => {
|
||||||
dialog({
|
dialog({
|
||||||
content: '是否确定提交',
|
content: '请仔细核对讲师费信息,确认无误后,将自动进入(BPM系统)审批流程',
|
||||||
ok: ()=>{
|
ok: ()=>{
|
||||||
isConfirm({
|
isConfirm({
|
||||||
id: route.query.id,
|
id: route.query.id,
|
||||||
@@ -618,6 +626,13 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const flipData = (val) => {
|
||||||
|
if(val){
|
||||||
|
const parts = val.split('/');
|
||||||
|
const reversedParts = parts.reverse();
|
||||||
|
return reversedParts.join('/');
|
||||||
|
}
|
||||||
|
}
|
||||||
watch(() => state.formParam.orgNames, (val) => {
|
watch(() => state.formParam.orgNames, (val) => {
|
||||||
if(val){
|
if(val){
|
||||||
const parts = val.split('/');
|
const parts = val.split('/');
|
||||||
@@ -693,6 +708,7 @@ export default {
|
|||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width: 200,
|
width: 200,
|
||||||
|
slots: { customRender: "orgName" },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '讲师体系',
|
title: '讲师体系',
|
||||||
@@ -830,6 +846,7 @@ export default {
|
|||||||
closeDrawer,
|
closeDrawer,
|
||||||
paramsDrawer,
|
paramsDrawer,
|
||||||
edit,
|
edit,
|
||||||
|
flipData,
|
||||||
rules,
|
rules,
|
||||||
recome,
|
recome,
|
||||||
validateField,
|
validateField,
|
||||||
|
|||||||
@@ -133,10 +133,10 @@
|
|||||||
<span class="line"></span>
|
<span class="line"></span>
|
||||||
<span>讲师费用详情</span>
|
<span>讲师费用详情</span>
|
||||||
<a-descriptions bordered :column="2" :contentStyle="rowCenter" :labelStyle="rowCenter">
|
<a-descriptions bordered :column="2" :contentStyle="rowCenter" :labelStyle="rowCenter">
|
||||||
<a-descriptions-item label="审批编号">{{formParam?.teacherName||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="审批编号">{{formParam?.approvalNumber||'-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="培训发生组织">{{formParam?.trainOrgName||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="培训发生组织">{{formParam?.trainOrgName||'-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item v-if="activeKey==2" label="汇总周期" >{{formParam?.summaryDate||'-'}}</a-descriptions-item>
|
<a-descriptions-item v-if="activeKey==2" label="汇总周期" >{{formParam?.summaryDate||'-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="提交时间">{{formParam?.approval_submit_time||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="提交时间">{{formParam?.approvalSubmitTime||'-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="汇总金额">{{formParam?.summaryTotal||'-'}}</a-descriptions-item>
|
<a-descriptions-item label="汇总金额">{{formParam?.summaryTotal||'-'}}</a-descriptions-item>
|
||||||
<a-descriptions-item label="状态">{{{0:'待确认' ,1:'待提交' ,2:'审核中', 3:'已完成', 4:'拒绝',5:'待提交'}[formParam?.status]}}</a-descriptions-item>
|
<a-descriptions-item label="状态">{{{0:'待确认' ,1:'待提交' ,2:'审核中', 3:'已完成', 4:'拒绝',5:'待提交'}[formParam?.status]}}</a-descriptions-item>
|
||||||
</a-descriptions>
|
</a-descriptions>
|
||||||
@@ -256,7 +256,10 @@
|
|||||||
FolderAddOutlined,//图标--新增
|
FolderAddOutlined,//图标--新增
|
||||||
ProjectManager,
|
ProjectManager,
|
||||||
},
|
},
|
||||||
setup() {
|
setup(props,emit) {
|
||||||
|
watch(()=>props.key,(val)=>{
|
||||||
|
console.log(val,'valllllll')
|
||||||
|
})
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
tableDataParams:{
|
tableDataParams:{
|
||||||
@@ -334,7 +337,7 @@
|
|||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
let arr = res.data.data;
|
let arr = res.data.data;
|
||||||
let array = [];
|
let array = [];
|
||||||
arr.map((value) => {
|
arr?.map((value) => {
|
||||||
let obj = {
|
let obj = {
|
||||||
value: value.kid,
|
value: value.kid,
|
||||||
label: value.systemName,
|
label: value.systemName,
|
||||||
@@ -345,7 +348,7 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
LecturerSystemLista()
|
// LecturerSystemLista()
|
||||||
const trainOrglist=ref([])
|
const trainOrglist=ref([])
|
||||||
//获取培训发生组织
|
//获取培训发生组织
|
||||||
const trainOrglista =() => {
|
const trainOrglista =() => {
|
||||||
@@ -430,8 +433,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '汇总时间 ',
|
title: '汇总时间 ',
|
||||||
dataIndex: 'summaryDate',
|
dataIndex: 'summaryTime',
|
||||||
key: 'summaryDate',
|
key: 'summaryTime',
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
width:200
|
width:200
|
||||||
@@ -446,8 +449,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '提交时间',
|
title: '提交时间',
|
||||||
dataIndex: 'approval_submit_time',
|
dataIndex: 'approvalSubmitTime',
|
||||||
key: 'approval_submit_time',
|
key: 'approvalSubmitTime',
|
||||||
ellipsis: true, align: "center",
|
ellipsis: true, align: "center",
|
||||||
width: 200,
|
width: 200,
|
||||||
customRender: ({text, record}) => {
|
customRender: ({text, record}) => {
|
||||||
|
|||||||
@@ -275,7 +275,7 @@
|
|||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="授课时长" name="teachingTime">
|
<a-form-item label="授课时长" name="teachingTime">
|
||||||
<a-input v-model:value="formParam.teachingTime" style="width:80%; height: 40px; border-radius: 8px; "
|
<a-input v-model:value="formParam.teachingTime" style="width:80%; height: 40px; border-radius: 8px; "
|
||||||
@blur="clearNonNumber" placeholder="请输入授课分钟数" allowClear showSearch suffix="分钟">
|
@change="clearNonNumber" placeholder="请输入授课分钟数" allowClear showSearch suffix="分钟">
|
||||||
</a-input>
|
</a-input>
|
||||||
<span style="margin-left: 5px ;" v-if="formParam.teachingTime != null">{{
|
<span style="margin-left: 5px ;" v-if="formParam.teachingTime != null">{{
|
||||||
(formParam.teachingTime / 60).toFixed(2) }}小时</span>
|
(formParam.teachingTime / 60).toFixed(2) }}小时</span>
|
||||||
@@ -284,7 +284,7 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="参训人数" name="studys">
|
<a-form-item label="参训人数" name="studys">
|
||||||
<a-input v-model:value="formParam.studys" class="draitem" @blur="clearstudysNumber"
|
<a-input v-model:value="formParam.studys" class="draitem" @blur="clearstudysNumber"
|
||||||
placeholder="请输入参训人数" allowClear showSearch >
|
placeholder="请输入参训人数" allowClear showSearch >
|
||||||
</a-input>
|
</a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -440,7 +440,7 @@
|
|||||||
<ImportWork v-model:showWork="showWork" :template="'讲师费导入模板'" :url="'/admin/export/importTeacherExpense'" :fileName="uploadFile" :title="title"></ImportWork>
|
<ImportWork v-model:showWork="showWork" :template="'讲师费导入模板'" :url="'/admin/export/importTeacherExpense'" :fileName="uploadFile" :title="title"></ImportWork>
|
||||||
</div>
|
</div>
|
||||||
<!-- 一键确认讲师费 -->
|
<!-- 一键确认讲师费 -->
|
||||||
<ConfirmLecturer :ids="selectsIds" v-model:visible="visibleConfirm" :name="'确认讲师费'" />
|
<ConfirmLecturer @visibleFalse="visibleAll" :ids="selectsIds" v-model:visible="visibleConfirm" :name="'确认讲师费'" />
|
||||||
<!-- 批量确认讲师费 -->
|
<!-- 批量确认讲师费 -->
|
||||||
<BatchLecturer @selectedRowKeys="selectedRowKey" v-model:visible="allFeedialog" :name="'批量审批'" />
|
<BatchLecturer @selectedRowKeys="selectedRowKey" v-model:visible="allFeedialog" :name="'批量审批'" />
|
||||||
</template>
|
</template>
|
||||||
@@ -464,7 +464,7 @@
|
|||||||
// import AddTeacher from "../../components/drawers/project/AddTeacher"
|
// import AddTeacher from "../../components/drawers/project/AddTeacher"
|
||||||
import ConfirmLecturer from "@/components/project/ConfirmLecturer"
|
import ConfirmLecturer from "@/components/project/ConfirmLecturer"
|
||||||
import BatchLecturer from "@/components/project/BatchLecturer"
|
import BatchLecturer from "@/components/project/BatchLecturer"
|
||||||
import { queryTrainOrg,} from "../../api/organization";
|
import { queryTrainOrgPor,} from "../../api/organization";
|
||||||
import dialog from '@/utils/dialog';
|
import dialog from '@/utils/dialog';
|
||||||
import OrgClass from "@/components/project/OrgClass";
|
import OrgClass from "@/components/project/OrgClass";
|
||||||
export default {
|
export default {
|
||||||
@@ -566,9 +566,9 @@
|
|||||||
pageNo:1,
|
pageNo:1,
|
||||||
pageSize:50
|
pageSize:50
|
||||||
}
|
}
|
||||||
queryTrainOrg(obj).then((res) => {
|
queryTrainOrgPor(obj).then((res) => {
|
||||||
console.log(res,'rssssss')
|
console.log(res,'rssssss')
|
||||||
state.orgList = res.data.data?.records?.map(item=>{
|
state.orgList = res.data.data?.map(item=>{
|
||||||
return{
|
return{
|
||||||
label: item.affiliationName,
|
label: item.affiliationName,
|
||||||
value: item.id
|
value: item.id
|
||||||
@@ -1260,6 +1260,7 @@ getAllLevelList().then((res) => {
|
|||||||
}
|
}
|
||||||
const clearstudysNumber = () => {
|
const clearstudysNumber = () => {
|
||||||
state.formParam.studys = state.formParam.studys.replace(/\D/g, '');
|
state.formParam.studys = state.formParam.studys.replace(/\D/g, '');
|
||||||
|
state.formParam.studys = state.formParam.studys?.slice(0,8)
|
||||||
}
|
}
|
||||||
const clearscoreNumber= () => {
|
const clearscoreNumber= () => {
|
||||||
state.formParam.score = state.formParam.score?.replace(/\D/g, '');
|
state.formParam.score = state.formParam.score?.replace(/\D/g, '');
|
||||||
@@ -1305,6 +1306,9 @@ getAllLevelList().then((res) => {
|
|||||||
const allFee=()=>{
|
const allFee=()=>{
|
||||||
state.allFeedialog=true
|
state.allFeedialog=true
|
||||||
}
|
}
|
||||||
|
const visibleAll = (val) => {
|
||||||
|
state.allFeedialog = val
|
||||||
|
}
|
||||||
const selectedRowKey = (val) => {
|
const selectedRowKey = (val) => {
|
||||||
state.selectsIds = val?.join(',');
|
state.selectsIds = val?.join(',');
|
||||||
state.visibleConfirm = true;
|
state.visibleConfirm = true;
|
||||||
@@ -1591,6 +1595,7 @@ const column = ref([
|
|||||||
canceleditTeacherDialog,
|
canceleditTeacherDialog,
|
||||||
allFee,
|
allFee,
|
||||||
selectedRowKey,
|
selectedRowKey,
|
||||||
|
visibleAll,
|
||||||
column,
|
column,
|
||||||
tableDatas,
|
tableDatas,
|
||||||
tlevelChange,
|
tlevelChange,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="LecturerFeeManagement">
|
<div class="LecturerFeeManagement">
|
||||||
<div style="margin: 20px;" >
|
<div style="margin: 20px;" >
|
||||||
<a-tabs v-model:activeKey="activeKey">
|
<a-tabs v-model:activeKey="activeKey" :destroyInactiveTabPane="true">
|
||||||
<a-tab-pane key="1" tab="讲师费管理">
|
<a-tab-pane key="1" tab="讲师费管理">
|
||||||
<LecturerFee />
|
<LecturerFee />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
|
|||||||
@@ -443,7 +443,7 @@ export default{
|
|||||||
// getSysTypeMap()
|
// getSysTypeMap()
|
||||||
const handleup = ()=>{
|
const handleup = ()=>{
|
||||||
window.open (
|
window.open (
|
||||||
`${process.env.VUE_APP_BASE_API}/teacherUpload/teacherDownload?teacherId= ${state.id}`
|
`${process.env.VUE_APP_BOE_API_URL}/upload${state.formParam.certification}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return{
|
return{
|
||||||
|
|||||||
@@ -300,7 +300,7 @@ export default{
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
placeData()
|
// placeData()
|
||||||
const PlaceOfPayListTwo = ref([])
|
const PlaceOfPayListTwo = ref([])
|
||||||
const selectRadio = (val)=>{
|
const selectRadio = (val)=>{
|
||||||
if(val.target.value == 1){
|
if(val.target.value == 1){
|
||||||
@@ -355,7 +355,7 @@ export default{
|
|||||||
customRender: ({text})=>{
|
customRender: ({text})=>{
|
||||||
switch (text) {
|
switch (text) {
|
||||||
case '1':
|
case '1':
|
||||||
return <span>待审核</span>;
|
return <span>待提交</span>;
|
||||||
case '2':
|
case '2':
|
||||||
return <span>审核中</span>;
|
return <span>审核中</span>;
|
||||||
case '3':
|
case '3':
|
||||||
@@ -520,6 +520,11 @@ const getTableDate = (obj) => {
|
|||||||
state.deleteInTeacherdialog = false
|
state.deleteInTeacherdialog = false
|
||||||
state.editTeacher = false
|
state.editTeacher = false
|
||||||
};
|
};
|
||||||
|
watch(()=>state.teacherdialog,(val)=>{
|
||||||
|
if(val){
|
||||||
|
placeData()
|
||||||
|
}
|
||||||
|
})
|
||||||
const addTeacher=()=>{
|
const addTeacher=()=>{
|
||||||
state.teacherdialog=true ,
|
state.teacherdialog=true ,
|
||||||
state.teacherdialogtitle="新增培训发生组织"
|
state.teacherdialogtitle="新增培训发生组织"
|
||||||
|
|||||||
Reference in New Issue
Block a user