mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-06 17:36:44 +08:00
Merge branch '250213-prod-master_1202-gx' into master_1202
This commit is contained in:
@@ -92,7 +92,9 @@
|
||||
</a-button>
|
||||
</a-col>
|
||||
<a-col>
|
||||
<a-button class="cus-btn" style="background: #4ea6ff; color: #fff; width: 150px" @click="exportStudy">
|
||||
<a-button class="cus-btn" style="background: #4ea6ff; color: #fff; width: 150px"
|
||||
:disabled="exportDisabled"
|
||||
@click="exportStudy">
|
||||
导出详细学习记录
|
||||
</a-button>
|
||||
</a-col>
|
||||
@@ -329,11 +331,16 @@ function reset() {
|
||||
function exportStu() {
|
||||
window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportOnlineStudent?type=3&&thirdType=8&pid=${searchParams.value.pid}`);
|
||||
}
|
||||
function exportStudy() {
|
||||
|
||||
let exportDisabled = ref(false)
|
||||
|
||||
const exportStudy = async () => {
|
||||
if(studentList.value.length == 0){
|
||||
return message.warning('暂无可导出的学习记录')
|
||||
}
|
||||
downLoadXlsx(`${process.env.VUE_APP_BASE_API}/admin/student/exportOnlineStudentDetail?type=4&&thirdType=8&pid=${searchParams.value.pid}`,'在线课学员学习记录')
|
||||
exportDisabled.value = true;
|
||||
await downLoadXlsx(`${process.env.VUE_APP_BASE_API}/admin/student/exportOnlineStudentDetail?type=4&&thirdType=8&pid=${searchParams.value.pid}`,'在线课学员学习记录');
|
||||
exportDisabled.value = false;
|
||||
}
|
||||
defineExpose({
|
||||
searchStu,
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
import axios from 'axios'
|
||||
import {getCookieForName} from "@/api/method";
|
||||
|
||||
|
||||
const mimeMap = {
|
||||
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
||||
zip: 'application/zip'
|
||||
}
|
||||
export function downLoadXlsx(str, filename) {
|
||||
axios({
|
||||
method: 'get',
|
||||
url: str,
|
||||
responseType: 'blob',
|
||||
headers: { 'Authorization': 'Bearer ' + getCookieForName("token") }
|
||||
}).then(res => {
|
||||
export const downLoadXlsx = async (str, filename) => {
|
||||
const res = await axios({
|
||||
method: 'get',
|
||||
url: str,
|
||||
responseType: 'blob',
|
||||
headers: { 'Authorization': 'Bearer ' + getCookieForName("token") }
|
||||
});
|
||||
resolveBlob(res, mimeMap.xlsx,filename)
|
||||
})
|
||||
}
|
||||
const baseUrl = process.env.VUE_APP_ACT_API
|
||||
export function downLoadZip(str, filename) {
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
v-model:value="xzinputV1"
|
||||
v-model:validated="validated"
|
||||
:id="offcourseId"
|
||||
:maxlength="20"
|
||||
:maxlength="50"
|
||||
show-count
|
||||
:type="2"
|
||||
></NameInput>
|
||||
|
||||
@@ -571,7 +571,6 @@ export default {
|
||||
let objA = { ...state.searchParam };
|
||||
objA.beginTime = state.searchdate ? dayjs(state.searchdate[0]).format("YYYY-MM-DD") : "",
|
||||
objA.endTime = state.searchdate ? dayjs(state.searchdate[1]).format("YYYY-MM-DD") : "",
|
||||
delete objA.searchdate
|
||||
expenseBillList(objA)
|
||||
.then((res) => {
|
||||
tableData.value = res.data.data.records
|
||||
@@ -1101,14 +1100,14 @@ export default {
|
||||
}
|
||||
|
||||
//TODO1
|
||||
watchEffect(() => {
|
||||
console.log('Item changed:', props.activeKeyProps);
|
||||
if(props.activeKeyProps == 2){
|
||||
state.searchParam.pageNo = 1;
|
||||
getTableDate()
|
||||
}
|
||||
// 在这里你可以根据 props.item 进行一些操作
|
||||
});
|
||||
// watchEffect(() => {
|
||||
// console.log('Item changed:', props.activeKeyProps);
|
||||
// if(props.activeKeyProps == 2){
|
||||
// state.searchParam.pageNo = 1;
|
||||
// getTableDate()
|
||||
// }
|
||||
// // 在这里你可以根据 props.item 进行一些操作
|
||||
// });
|
||||
|
||||
|
||||
return {
|
||||
|
||||
@@ -65,10 +65,10 @@
|
||||
<UploadOutlined />导出
|
||||
</a-button>
|
||||
<a-button v-if="checkMenu('lecturerMonthDown')" class="resetbtn-mo" @click="handleFeeMonthlyDown" type="primary">
|
||||
<UploadOutlined />讲师月度费用下载
|
||||
<UploadOutlined />讲师费月度汇总
|
||||
</a-button>
|
||||
<a-button v-if="checkMenu('lecturerMonthDetailDown')" class="resetbtn-mo" @click="handleFeeMonthlyDetail" type="primary">
|
||||
<UploadOutlined />讲师费用详情下载
|
||||
<UploadOutlined />讲师费月度详情
|
||||
</a-button>
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
@@ -318,7 +318,7 @@ export default {
|
||||
align: "center",
|
||||
width: 140,
|
||||
customRender: ({ text }) => {
|
||||
return text ? text + '分钟' : '-'
|
||||
return text ? (text/60).toFixed(2) + '小时' : '-'
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -329,7 +329,7 @@ export default {
|
||||
align: "center",
|
||||
width: 140,
|
||||
customRender: ({ text }) => {
|
||||
return text ? text + '分钟' : '-'
|
||||
return text ? (text/60).toFixed(2) + '小时' : '-'
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -340,7 +340,7 @@ export default {
|
||||
align: "center",
|
||||
width: 120,
|
||||
customRender: ({ text }) => {
|
||||
return text ? text + '分钟' : '-'
|
||||
return text ? (text/60).toFixed(2) + '小时' : '-'
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
</a-tab-pane>
|
||||
<!-- v-if="lecturerAdmin('lecturer-admin')" -->
|
||||
<a-tab-pane key="2" tab="审批中心">
|
||||
<OrganizationApproval/>
|
||||
<OrganizationApproval ref="organizationApprovalRef" :organizationActive="organizationActive"/>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</div>
|
||||
@@ -34,18 +34,24 @@ export default {
|
||||
|
||||
const state = reactive({
|
||||
activeKey: '1',
|
||||
organizationActive:"0"
|
||||
});
|
||||
|
||||
|
||||
const organizationApprovalRef = ref(null)
|
||||
onMounted(() => {
|
||||
if (route.query.activeKey) {
|
||||
state.activeKey = '2'
|
||||
state.activeKey = '2';
|
||||
state.organizationActive = "1"
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
const activeKeyFn = () => {
|
||||
state.activeKey = '2'
|
||||
setTimeout(() => {
|
||||
state.activeKey = '2';
|
||||
organizationApprovalRef.value.getTableDate()
|
||||
}, 5000);
|
||||
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
@@ -27,9 +27,9 @@
|
||||
<a-select-option :value="0">全部</a-select-option>
|
||||
<a-select-option :value="1">待提交</a-select-option>
|
||||
<a-select-option :value="2">审核中</a-select-option>
|
||||
<a-select-option :value="3">审核通过</a-select-option>
|
||||
<a-select-option :value="4">拒绝</a-select-option>
|
||||
<a-select-option :value="5">撤回</a-select-option>
|
||||
<!-- <a-select-option :value="3">已完成</a-select-option> -->
|
||||
<a-select-option :value="4">审核失败</a-select-option>
|
||||
<!-- <a-select-option :value="5">撤回</a-select-option> -->
|
||||
</a-select>
|
||||
</div>
|
||||
</a-form-item>
|
||||
@@ -534,7 +534,10 @@ export default {
|
||||
lockLecturer,
|
||||
AddApprover,
|
||||
},
|
||||
setup() {
|
||||
props: {
|
||||
organizationActive: String
|
||||
},
|
||||
setup(props) {
|
||||
const formRef = ref();
|
||||
|
||||
const state = reactive({
|
||||
@@ -754,6 +757,7 @@ export default {
|
||||
const tableData = ref([]);
|
||||
// List接口数据
|
||||
const getTableDate = (obj) => {
|
||||
console.log("执行 gx getTableDate 111111111111111111111")
|
||||
state.tableLoading = true;
|
||||
let objA = {
|
||||
...state.searchParam ,
|
||||
@@ -762,17 +766,7 @@ export default {
|
||||
approvalType:1,
|
||||
moduleType:1
|
||||
};
|
||||
|
||||
if(objA.status == 0){
|
||||
objA.approvalType = null; //全部数据
|
||||
objA.status = null;
|
||||
}
|
||||
|
||||
if(objA.status == 3){ //审核通过
|
||||
objA.approvalType = 0;
|
||||
|
||||
}
|
||||
|
||||
console.log("执行 gx getTableDate objA",objA);
|
||||
queryTrainOrg(objA).then((res) => {
|
||||
tableData.value = res.data.data.records;
|
||||
state.tableDataTotal = Number(res.data.data.total);
|
||||
@@ -1048,6 +1042,16 @@ export default {
|
||||
state.formParam.affiliationName = record.affiliationName;
|
||||
state.formParam.remark = record.remark;
|
||||
};
|
||||
|
||||
watch(
|
||||
() => props.organizationActive,
|
||||
(val) => {
|
||||
console.log("organizationActive gx val",val)
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
|
||||
const cancel = () => {
|
||||
state.formParam = {
|
||||
orglistName: null,
|
||||
|
||||
@@ -147,14 +147,26 @@
|
||||
<a-radio :style="radioStyle" :value="0">否</a-radio>
|
||||
</a-radio-group>
|
||||
</div>
|
||||
<div class="num" style="flex:3" v-if="projectInfo.boeFlag === 1">
|
||||
<!-- <div class="num" style="flex:3" v-if="projectInfo.boeFlag === 1">
|
||||
<div class="num_text">项目编号:</div>
|
||||
<div class="num_input">
|
||||
<div class="num_input"> -->
|
||||
<!-- <a-input style="border-radius: 8px;" show-count allowClear maxlength="30" v-model:value="projectInfo.numValue" placeholder="请输入项目编号" /> -->
|
||||
<ProjectNumber v-model:value="projectInfo.numValue"></ProjectNumber>
|
||||
<!-- <ProjectNumber v-model:value="projectInfo.numValue"></ProjectNumber>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="name name2 num" style="flex:3" v-if="projectInfo.boeFlag === 1">
|
||||
<div class="namebox">
|
||||
<div class="num_text">项目编号:</div>
|
||||
</div>
|
||||
<div class="in ggysxz">
|
||||
<div class="num_input">
|
||||
<!-- <a-input style="border-radius: 8px;" show-count allowClear maxlength="30" v-model:value="projectInfo.numValue" placeholder="请输入项目编号" /> -->
|
||||
<ProjectNumber v-model:value="projectInfo.numValue"></ProjectNumber>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="name name2">
|
||||
<div class="namebox">
|
||||
<div class="inname">同步学习记录</div>
|
||||
@@ -338,6 +350,7 @@ export default {
|
||||
});
|
||||
|
||||
watch(routers.query, () => {
|
||||
state.projectInfo.name = routers.query.name;
|
||||
state.projectInfo.id = routers.query.id;
|
||||
state.projectInfo.parentName = routers.query.parentName;
|
||||
state.projectInfo.parentId = routers.query.parentId;
|
||||
@@ -349,6 +362,7 @@ export default {
|
||||
})
|
||||
|
||||
function getProjectInfo() {
|
||||
state.projectInfo.name = routers.query.name;
|
||||
state.projectInfo.parentName = routers.query.parentName;
|
||||
state.projectInfo.parentId = routers.query.parentId;
|
||||
state.projectInfo.id = routers.query.projectId;
|
||||
|
||||
@@ -1577,9 +1577,11 @@ export default {
|
||||
}
|
||||
function handleEdit(record) {
|
||||
if (record.type === 1 || record.type === 2) {
|
||||
state.doublepro = true;
|
||||
console.log("state.record gx",record)
|
||||
state.projectInfo = record;
|
||||
console.log("state.projectInfo gx",state.projectInfo)
|
||||
state.onceName = record.name;
|
||||
state.doublepro = true;
|
||||
} else {
|
||||
router.push({
|
||||
path: "/projectadd",
|
||||
|
||||
@@ -304,11 +304,13 @@
|
||||
<NameInput
|
||||
placeholder="请输入项目名称"
|
||||
v-model:value="projectInfo.name"
|
||||
v-model:name="projectInfo.name"
|
||||
v-model:validated="projectInfo.validated"
|
||||
:type="1"
|
||||
:maxlength="30"
|
||||
show-count
|
||||
:onceName="onceName"
|
||||
:name="projectInfo.name"
|
||||
:id="projectInfo.projectId"
|
||||
></NameInput>
|
||||
</div>
|
||||
@@ -1576,14 +1578,24 @@ export default {
|
||||
}
|
||||
}
|
||||
function handleEdit(record) {
|
||||
console.log("handleEdit gx 项目中心-项目" ,record);
|
||||
if (record.type === 1 || record.type === 2) {
|
||||
state.doublepro = true;
|
||||
state.projectInfo = record;
|
||||
state.onceName = record.name;
|
||||
console.log("handleEdit gx 项目中心-项目 进入 edit record" ,record);
|
||||
console.log("handleEdit gx 项目中心-项目 进入 edit state.doublepro" ,state.doublepro);
|
||||
console.log("handleEdit gx 项目中心-项目 进入 edit state.projectInfo" ,state.projectInfo);
|
||||
console.log("handleEdit gx 项目中心-项目 进入 edit state.onceName" ,state.onceName);
|
||||
} else {
|
||||
console.log("handleEdit gx 项目中心-项目 进入 add record" ,record);
|
||||
console.log("handleEdit gx 项目中心-项目 进入 add state.doublepro" ,state.doublepro);
|
||||
console.log("handleEdit gx 项目中心-项目 进入 add state.projectInfo" ,state.projectInfo);
|
||||
console.log("handleEdit gx 项目中心-项目 进入 add state.onceName" ,state.onceName);
|
||||
router.push({
|
||||
path: "/projectadd",
|
||||
query: {
|
||||
name: record.name,
|
||||
projectId: record.id,
|
||||
parentId: record.parentId,
|
||||
parentName: record.parentName,
|
||||
|
||||
Reference in New Issue
Block a user