讲师管理bug

This commit is contained in:
zhangsir
2024-11-26 19:21:13 +08:00
parent 67c904c693
commit 62688a0185
16 changed files with 100 additions and 55 deletions

View File

@@ -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";

View File

@@ -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)
// 删除归属组织 // 删除归属组织

View File

@@ -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 ){

View File

@@ -134,7 +134,7 @@ const props = defineProps({
} }
}); });
onMounted(()=>{ onMounted(()=>{
onlineLearningList() // onlineLearningList()
}) })
const courseList = ref([]) const courseList = ref([])
const onlineLearningList = () =>{ const onlineLearningList = () =>{

View File

@@ -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

View File

@@ -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)
}) })
} }
}) })

View File

@@ -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)

View File

@@ -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)

View File

@@ -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
}) })
} }
}) })

View File

@@ -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>

View File

@@ -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>
@@ -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,

View File

@@ -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}) => {

View File

@@ -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>
@@ -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,

View File

@@ -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>

View File

@@ -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{

View File

@@ -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="新增培训发生组织"