mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-09 19:06:45 +08:00
改bug
This commit is contained in:
@@ -111,6 +111,7 @@ export default {
|
||||
line-height: 36px;
|
||||
cursor: pointer;
|
||||
flex-shrink: 0;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.close {
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<a-drawer
|
||||
:visible="openCourseVisible"
|
||||
class="drawerStyle addonlineDrawer"
|
||||
:width="1000"
|
||||
title="开课"
|
||||
:width="1300"
|
||||
:closable="false"
|
||||
placement="right">
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
@@ -148,6 +148,8 @@
|
||||
@blur="onBlurStart"
|
||||
@focus="onFocusStart"
|
||||
@select="onDateSelect"
|
||||
:open="openStart"
|
||||
@ok="onOkStart"
|
||||
/>
|
||||
|
||||
<span style="margin: 0 10px;">至</span>
|
||||
@@ -164,6 +166,8 @@
|
||||
@focus="onFocusEnd"
|
||||
@blur="onBlurEnd"
|
||||
@select="onDateEnd"
|
||||
:open="openEnd"
|
||||
@ok="onOkEnd"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -304,7 +308,7 @@
|
||||
:check-value="1"
|
||||
:un-check-value="0"
|
||||
@change="toggleCheckboxes('projectSignFlag')">
|
||||
<span style="color: #6d7584">允许项目内人员临时到场参加(不在本场次培训的人员可以临时签到参加)</span>
|
||||
<span style="color: #6d7584">允许项目内人员临时到场参加(不在本场次培训的人员可以临时签到评估)</span>
|
||||
</CheckBox>
|
||||
<CheckBox v-model="formData.outSignFlag"
|
||||
:check-value="1"
|
||||
@@ -412,7 +416,7 @@
|
||||
</a-drawer>
|
||||
</template>
|
||||
<script setup lang="jsx">
|
||||
import {defineProps, ref, nextTick, computed} from "vue";
|
||||
import {defineProps, ref, nextTick, computed,defineEmits } from "vue";
|
||||
import {Form, message} from "ant-design-vue";
|
||||
import FJUpload from "@/components/common/FJUpload";
|
||||
import CheckBox from "@/components/common/CheckBox";
|
||||
@@ -422,7 +426,7 @@ import AddHomework from "@/components/drawers/CommonHomework.vue";
|
||||
import AddTest from "@/components/drawers/CommonTest.vue";
|
||||
import NameInput from "@/components/project/NameInput";
|
||||
import AssessmentList from "@/components/drawers/AssessmentList.vue";
|
||||
import {COURSE_PLAN_EDIT, COURSE_PLAN_PAGE, DEL_PLAN, EXAM_DETAIL, WORK_DETAIL,PROJECT_DETAIL_MODIFY} from "@/api/apis";
|
||||
import {COURSE_PLAN_EDIT, COURSE_PLAN_PAGE, DEL_PLAN, EXAM_DETAIL, WORK_DETAIL,PROJECT_DETAIL_MODIFY,PROJECT_RELEASE} from "@/api/apis";
|
||||
import dayjs from "dayjs";
|
||||
import BaseTable from "@/components/common/BaseTable";
|
||||
import {request,useRowsPageNoInit} from "@/api/request";
|
||||
@@ -646,18 +650,23 @@ function timeChange(timeStr) {
|
||||
// formData.value.duration = durationText.value
|
||||
// formData.value.duration || (formData.value.duration = dayjs(timeStr[1]).diff(dayjs(timeStr[0]),'minute'))
|
||||
}
|
||||
function onDateSelect(date) {
|
||||
const month = String(date.$M+1).padStart(2, '0')
|
||||
const day = String(date.$D).padStart(2, '0')
|
||||
const hour = String(date.$D).padStart(2, '0')
|
||||
const minute = String(date.$D).padStart(2, '0')
|
||||
dateTime.value[0]=date.$y+'-'+month+'-'+day+' '+hour+':'+minute
|
||||
}
|
||||
function onBlurStart(){
|
||||
|
||||
console.log(dateTime.value[0],'111')
|
||||
function onDateSelect(date) {
|
||||
const month = String(date.$M+1).padStart(2, '0')
|
||||
const day = String(date.$D).padStart(2, '0')
|
||||
const hour = String(date.$D).padStart(2, '0')
|
||||
const minute = String(date.$D).padStart(2, '0')
|
||||
dateTime.value[0]=date.$y+'-'+month+'-'+day+' '+hour+':'+minute
|
||||
}
|
||||
const openStart = ref(false)
|
||||
const onOkStart = ()=>{
|
||||
openStart.value = false
|
||||
}
|
||||
function onBlurStart(e){
|
||||
dateTime.value[0]=e.target.value
|
||||
openStart.value = false
|
||||
}
|
||||
function onFocusStart(){
|
||||
openStart.value = true
|
||||
if(!dateTime.value[0]){
|
||||
let now=new Date()
|
||||
let start=new Date(now.setFullYear(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0))
|
||||
@@ -670,6 +679,14 @@ function onFocusStart(){
|
||||
function timeChangeEnd(timeStr){
|
||||
formData.value.endTime = timeStr;
|
||||
}
|
||||
const openEnd = ref(false)
|
||||
const onOkEnd = ()=>{
|
||||
openEnd.value = false
|
||||
}
|
||||
function onBlurEnd(e){
|
||||
dateTime.value[1]=e.target.value
|
||||
openEnd.value = false
|
||||
}
|
||||
function onDateEnd(date) {
|
||||
const month = String(date.$M+1).padStart(2, '0')
|
||||
const day = String(date.$D).padStart(2, '0')
|
||||
@@ -678,6 +695,7 @@ function onDateEnd(date) {
|
||||
dateTime.value[1]=date.$y+'-'+month+'-'+day+' '+hour+':'+minute
|
||||
}
|
||||
function onFocusEnd(){
|
||||
openEnd.value = true
|
||||
if(!dateTime.value[1]){
|
||||
let now=new Date()
|
||||
let start=new Date()
|
||||
@@ -712,12 +730,17 @@ const closeDrawer = () => {
|
||||
};
|
||||
const route = useRoute();
|
||||
const projectInfo = ref({});
|
||||
const emit = defineEmits(['call-parent-method']);
|
||||
const confirm = async()=>{
|
||||
closeDrawer();
|
||||
await api.getDraftTask({projectId: route.query.projectId}).then((res) => {
|
||||
projectInfo.value = res.data.data
|
||||
});
|
||||
request(PROJECT_DETAIL_MODIFY, { ...projectInfo.value });
|
||||
//projectInfo.value.projectInfo.status=3
|
||||
//request(PROJECT_RELEASE, {projectId: route.query.projectId})
|
||||
|
||||
emit('call-parent-method');
|
||||
}
|
||||
|
||||
const createNewCourse = () => {
|
||||
@@ -763,6 +786,7 @@ const del = (id,record) => {
|
||||
};
|
||||
|
||||
async function coursePlanConfirm() {
|
||||
|
||||
if(!dateTime.value[0]){
|
||||
message.info('开始时间未填写')
|
||||
return
|
||||
|
||||
@@ -115,14 +115,13 @@
|
||||
:infoType="type"
|
||||
@finash="submitCall"
|
||||
>
|
||||
<a-button class="cus-btn" style="background: #4ea6ff; color: #fff">
|
||||
<template #icon><img style="margin-right: 10px" src="../../../assets/images/courseManage/add0.png"/>
|
||||
</template>
|
||||
添加学员
|
||||
</a-button>
|
||||
<div :class="{ 'notClick': courseSelectRows.length > 0 }" class="btn btn1">
|
||||
<div class="img3"></div>
|
||||
<div class="wz">添加学员</div>
|
||||
</div>
|
||||
</CommonStudent>
|
||||
<CommonImport @change="change" title="导入学员" :template-url="stuTemplateUrl" :data="{ targetId: offcoursePlanId, type:3 }" :url="`/admin/student/importStudent`" name="uploadFile">
|
||||
<div class="btn btn1" style="margin-right: 20px;margin-left: 20px">
|
||||
<div :class="{ 'notClick': courseSelectRows.length > 0 }" class="btn btn1" style="margin-right: 20px;margin-left: 20px">
|
||||
<div class="img1"></div>
|
||||
<div class="wz">导入学员</div>
|
||||
</div>
|
||||
@@ -292,7 +291,7 @@ const columns = ref([
|
||||
ellipsis: true,
|
||||
className: "h",
|
||||
customRender: (text) =>
|
||||
<span>{text.record.signStatus ? "签到" : text.record.leaveStatus ? "请假" : inAttendanceTime.value ? "-" : "缺勤"}</span>
|
||||
<span>{text.record.signStatus ? "签到" : text.record.leaveStatus ? "请假" : inAttendanceTime.value ? "未签到" : "缺勤"}</span>
|
||||
},
|
||||
{
|
||||
title: "签到状态",
|
||||
@@ -303,7 +302,7 @@ const columns = ref([
|
||||
ellipsis: true,
|
||||
className: "h",
|
||||
customRender: (text) =>
|
||||
<span>{(text.record.signStatus || text.record.leaveStatus) ? "正常" : inAttendanceTime.value ? "-" : "异常"}</span>
|
||||
<span>{(text.record.signStatus || text.record.leaveStatus) ? "正常" : inAttendanceTime.value ? "未签到" : "异常"}</span>
|
||||
},
|
||||
{
|
||||
title: "考勤情况",
|
||||
@@ -483,12 +482,12 @@ const change = (e) => {
|
||||
.notClick{
|
||||
// cursor: pointer;
|
||||
// pointer-events: none;
|
||||
// width: 100px;
|
||||
// height: 40px;
|
||||
// border: 1px solid #3b3c3c !important;
|
||||
// border-radius: 8px;
|
||||
// color: #fff !important;
|
||||
// background-color: #3b3c3c !important;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border: 1px solid #d7d7d7 !important;
|
||||
border-radius: 8px;
|
||||
color: #fff !important;
|
||||
background-color: #d7d7d7 !important;
|
||||
}
|
||||
|
||||
.me {
|
||||
@@ -735,6 +734,13 @@ const change = (e) => {
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
.img3 {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url(../../../assets/images/courseManage/add0.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn1 {
|
||||
@@ -780,6 +786,13 @@ const change = (e) => {
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
.img3 {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
background-image: url(../../../assets/images/courseManage/add0.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn1 {
|
||||
|
||||
@@ -15,7 +15,7 @@ import 'element-plus/dist/index.css'
|
||||
// import zhCn from 'element-plus/es/locale/lang/zh-cn'
|
||||
import "@/assets/scss/common.scss"
|
||||
import Antd from 'ant-design-vue';
|
||||
import 'ant-design-vue/dist/antd.css';
|
||||
import 'ant-design-vue/dist/reset.css';
|
||||
import {request} from "@/api/request";
|
||||
import {USER_INFO, USER_PERMISSION, VALIDATE_TOKEN} from "@/api/apis";
|
||||
import * as api1 from "@/api/index1";
|
||||
|
||||
@@ -965,6 +965,8 @@
|
||||
@blur="onBlurStart"
|
||||
@focus="onFocusStart"
|
||||
@select="onDateSelect"
|
||||
:open="openStart"
|
||||
@ok="onOkStart"
|
||||
/>
|
||||
<span style="margin: 0 10px;">至</span>
|
||||
<a-date-picker
|
||||
@@ -979,6 +981,8 @@
|
||||
@focus="onFocusEnd"
|
||||
@blur="onBlurEnd"
|
||||
@select="onDateEnd"
|
||||
:open="openEnd"
|
||||
@ok="onOkEnd"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -2898,11 +2902,16 @@ export default defineComponent({
|
||||
const minute = String(date.$D).padStart(2, '0')
|
||||
state.xjkkinputV3[0]=date.$y+'-'+month+'-'+day+' '+hour+':'+minute
|
||||
}
|
||||
function onBlurStart(){
|
||||
onFocusStart()
|
||||
console.log(state.xjkkinputV3[0],'dateTime')
|
||||
const openStart = ref(false)
|
||||
const onOkStart = ()=>{
|
||||
openStart.value = false
|
||||
}
|
||||
function onBlurStart(e){
|
||||
state.xjkkinputV3[0]=e.target.value
|
||||
openStart.value = false
|
||||
}
|
||||
function onFocusStart(){
|
||||
openStart.value = true
|
||||
if(!state.xjkkinputV3[0]){
|
||||
let now=new Date()
|
||||
let start=new Date(now.setFullYear(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0))
|
||||
@@ -2922,7 +2931,16 @@ function onDateEnd(date) {
|
||||
const minute = String(date.$D).padStart(2, '0')
|
||||
state.xjkkinputV3[1]=date.$y+'-'+month+'-'+day+' '+hour+':'+minute
|
||||
}
|
||||
const openEnd = ref(false)
|
||||
const onOkEnd = ()=>{
|
||||
openEnd.value = false
|
||||
}
|
||||
function onBlurEnd(e){
|
||||
state.xjkkinputV3[1]=e.target.value
|
||||
openEnd.value = false
|
||||
}
|
||||
function onFocusEnd(){
|
||||
openEnd.value = true
|
||||
if(!state.xjkkinputV3[1]){
|
||||
let now=new Date()
|
||||
let start=new Date()
|
||||
@@ -5216,11 +5234,16 @@ function onFocusEnd(){
|
||||
editBeginClass,
|
||||
|
||||
onDateSelect,
|
||||
onOkStart,
|
||||
openStart,
|
||||
onBlurStart,
|
||||
onFocusStart,
|
||||
// timeChangeEnd,
|
||||
onDateEnd,
|
||||
openEnd,
|
||||
onOkEnd,
|
||||
onFocusEnd,
|
||||
onBlurEnd,
|
||||
inputWeightChange,
|
||||
totalWeightSum,
|
||||
inputAdd,
|
||||
|
||||
@@ -637,13 +637,14 @@
|
||||
</a-menu>
|
||||
</template>
|
||||
</a-dropdown>
|
||||
</div>
|
||||
<div class="operations_dropdown" v-if="item.assessmentIds.filter(id => id !== null).length==1&&item.type == 2">
|
||||
<a class="ant-dropdown-link" @click="qrcodeAssement(item)">
|
||||
<div v-if="item.assessmentIds.filter(id => id !== null).length==1&&item.type == 2">
|
||||
<a class="ant-dropdown-link" @click="qrcodeAssement(item)">
|
||||
评估二维码
|
||||
<DownOutlined />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="operations_dropdown" v-if="item.assessmentIds.length!=1">
|
||||
<a-dropdown :getPopupContainer='(triggerNode) => triggerNode.parentNode' v-if="item.type == 2" :trigger="['click']" v-model:visible="visibleEwm[item.id]">
|
||||
<a class="ant-dropdown-link" @click="qrcodeVisible(item)">
|
||||
@@ -2342,7 +2343,7 @@
|
||||
/>
|
||||
<!-- 换组弹窗 -->
|
||||
<!-- 面授课开课弹框 -->
|
||||
<AddOpenCourse ref="coursePlanRef" :type="1"/>
|
||||
<AddOpenCourse @call-parent-method="getTaskListAll" ref="coursePlanRef" :type="1"/>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="jsx">
|
||||
@@ -2403,6 +2404,8 @@ import ChangeGroupModal from "@/components/student/ChangeGroupModal.vue";
|
||||
import { checkPer,fixDoublePer } from "@/utils/utils";
|
||||
import ImpoterGroupLeader from "@/components/drawers/project/ImpoterGroupLeader.vue";
|
||||
import qrCode from "@/utils/qrCode";
|
||||
import {request} from "@/api/request";
|
||||
import { PROJECT_RELEASE} from "@/api/apis";
|
||||
export default {
|
||||
name: "taskPage",
|
||||
components: {
|
||||
@@ -3198,6 +3201,14 @@ export default {
|
||||
return store.state.orgtreeList ? store.state.orgtreeList : [];
|
||||
});
|
||||
//任务大纲渲染
|
||||
const getTaskListAll = () =>{
|
||||
// request(PROJECT_RELEASE, {projectId: route.query.projectId})
|
||||
getTaskList();
|
||||
getTaskInfo();
|
||||
getGroup();
|
||||
getOverview();
|
||||
reget();
|
||||
}
|
||||
const getTaskList = () => {
|
||||
let objtl = {
|
||||
projectId: state.projectId,
|
||||
@@ -5137,6 +5148,7 @@ export default {
|
||||
showCodeModal,
|
||||
tabsChange,
|
||||
getTaskList,
|
||||
getTaskListAll,
|
||||
rankTimeChange,
|
||||
getbillboard,
|
||||
rankSearch,
|
||||
@@ -5227,7 +5239,8 @@ export default {
|
||||
handleMenuClickpg,
|
||||
coursePlanRef,
|
||||
openCourse,
|
||||
exportScore
|
||||
exportScore,
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6657,7 +6670,7 @@ export default {
|
||||
flex-shrink: 0;
|
||||
margin-right: 24px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
// flex-wrap: wrap;
|
||||
align-items: center;
|
||||
padding: 25px 0px;
|
||||
margin-left: 22px;
|
||||
@@ -6735,7 +6748,7 @@ export default {
|
||||
}
|
||||
|
||||
.progress {
|
||||
width: 168px;
|
||||
width: 60px;
|
||||
margin-left: 10px;
|
||||
margin-right: 50px;
|
||||
flex-grow: 1;
|
||||
@@ -6743,9 +6756,9 @@ export default {
|
||||
cursor: pointer;
|
||||
width: 16px;
|
||||
height: 18px;
|
||||
background-image: url(@/assets/images/coursewareManage/export1.png);
|
||||
background-image: url(@/assets/images/coursewareManage/export.png);
|
||||
background-size: 100% 100%;
|
||||
background-color: #4ea6ff;
|
||||
// background-color: #4ea6ff;
|
||||
margin-left: 7px;
|
||||
}
|
||||
.progresstext {
|
||||
|
||||
Reference in New Issue
Block a user