feat:修改活动直播任务签到时间

This commit is contained in:
lixg
2023-01-12 17:42:43 +08:00
parent 9a7c90af8d
commit d362e2a258
7 changed files with 812 additions and 719 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 B

View File

@@ -63,11 +63,10 @@ export default {
if (state.openList[0].href !== "/learningpath") { if (state.openList[0].href !== "/learningpath") {
state.openList.splice(key, 1); state.openList.splice(key, 1);
$router.push({ path: "/learningpath" }); $router.push({ path: "/learningpath" });
}else{ } else {
message.destroy(); message.destroy();
return message.warning("至少保留一个页面"); return message.warning("至少保留一个页面");
} }
} else { } else {
if (value.active) { if (value.active) {
if (key === state.openList.length - 1) { if (key === state.openList.length - 1) {
@@ -118,7 +117,6 @@ export default {
width: 50px; width: 50px;
height: 50px; height: 50px;
position: absolute; position: absolute;
display: flex; display: flex;
align-items: center; align-items: center;

View File

@@ -31,14 +31,13 @@
<div class="btnbox"> <div class="btnbox">
<a-input <a-input
v-model:value="inputV1" v-model:value="inputV1"
style="width: 400px; height: 40px; border-radius: 8px;" style="width: 400px; height: 40px; border-radius: 8px"
placeholder="请输入活动名称" placeholder="请输入活动名称"
maxlength="20" maxlength="20"
/> />
</div> </div>
</div> </div>
<div class="main_item"> <div class="main_item">
<div class="signbox"> <div class="signbox">
<div class="sign"> <div class="sign">
@@ -51,10 +50,11 @@
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-range-picker <a-range-picker
:disabled-date="disabledDate" :disabled-time="disabledRangeTime" :disabled-date="disabledDate"
:disabled-time="disabledRangeTime"
:show-time="{ format: 'HH:mm' }" :show-time="{ format: 'HH:mm' }"
format="YYYY-MM-DD HH:mm" format="YYYY-MM-DD HH:mm"
style="width: 400px; height: 40px; border-radius: 8px;" style="width: 400px; height: 40px; border-radius: 8px"
v-model:value="time" v-model:value="time"
:placeholder="[' 开始时间', ' 结束时间']" :placeholder="[' 开始时间', ' 结束时间']"
/> />
@@ -74,7 +74,7 @@
<a-input-number <a-input-number
:min="0" :min="0"
:precision="0" :precision="0"
style="width: 400px; height: 40px; border-radius: 8px;" style="width: 400px; height: 40px; border-radius: 8px"
v-model:value="inputV2" v-model:value="inputV2"
/> />
<span style="color: #999999; margin-left: 8px">分钟</span> <span style="color: #999999; margin-left: 8px">分钟</span>
@@ -93,7 +93,7 @@
<div class="btnbox"> <div class="btnbox">
<a-input <a-input
v-model:value="inputV3" v-model:value="inputV3"
style="width: 400px; height: 40px; border-radius: 8px;" style="width: 400px; height: 40px; border-radius: 8px"
placeholder="请输入活动地点" placeholder="请输入活动地点"
maxlength="100" maxlength="100"
/> />
@@ -109,13 +109,14 @@
</div> </div>
<span style="margin-right: 3px">活动公告</span> <span style="margin-right: 3px">活动公告</span>
</div> </div>
<div class="textarea" > <div class="textarea">
<a-textarea <a-textarea
v-model:value="textV1" v-model:value="textV1"
placeholder="请输入活动公告" placeholder="请输入活动公告"
allow-clear allow-clear
:rows="6" :rows="6"
show-count :maxlength="200" show-count
:maxlength="200"
/> />
</div> </div>
</div> </div>
@@ -129,7 +130,8 @@
placeholder="请输入活动说明" placeholder="请输入活动说明"
allow-clear allow-clear
:rows="6" :rows="6"
show-count :maxlength="200" show-count
:maxlength="200"
/> />
</div> </div>
</div> </div>
@@ -158,7 +160,9 @@
" "
v-model:value="inputV4" v-model:value="inputV4"
/> />
<span style="color: #999999; margin-left: 8px">分钟允许签到</span> <span style="color: #999999; margin-left: 8px"
>分钟允许签到</span
>
</div> </div>
<div class="timerbox"> <div class="timerbox">
<span>活动开始后</span> <span>活动开始后</span>
@@ -174,7 +178,9 @@
" "
v-model:value="inputV5" v-model:value="inputV5"
/> />
<span style="color: #999999; margin-left: 8px">分钟允许签到</span> <span style="color: #999999; margin-left: 8px"
>分钟允许签到</span
>
</div> </div>
</div> </div>
<!-- <div class="qdqtbox"> <!-- <div class="qdqtbox">
@@ -222,16 +228,13 @@
</div> </div>
</div>--> </div>-->
<div class="main_item" style="height:40px;"> <div class="main_item" style="height: 40px">
<div class="signbox"> <div class="signbox">
<span style="margin-right: 3px"></span> <span style="margin-right: 3px"></span>
</div> </div>
<div class="btnbox"> <div class="btnbox"></div>
</div> </div>
</div> </div>
</div>
</div> </div>
<div class="main_btns"> <div class="main_btns">
<button class="btn1" @click="closeDrawer1">取消</button> <button class="btn1" @click="closeDrawer1">取消</button>
@@ -318,7 +321,7 @@ export default {
textV2: "", textV2: "",
radioV1: "", radioV1: "",
time: "", time: "",
isClick: false isClick: false,
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:addactiveVisible", false); ctx.emit("update:addactiveVisible", false);
@@ -357,7 +360,8 @@ export default {
api api
.getActivity(props.EditActiveId) .getActivity(props.EditActiveId)
.then((res) => { .then((res) => {
//更新讨论信息 console.log("获取活动信息", res);
//获取活动信息
state.inputV1 = res.data.data.activityName; state.inputV1 = res.data.data.activityName;
state.textV1 = res.data.data.activityNotice; state.textV1 = res.data.data.activityNotice;
state.textV2 = res.data.data.activityExplain; state.textV2 = res.data.data.activityExplain;
@@ -387,7 +391,7 @@ export default {
}; };
const updateTask = async (res) => { const updateTask = async (res) => {
if (props.isLevel == 1) { if (props.isLevel == 1) {
if(!props.isactive){ if (!props.isactive) {
message.destroy(); message.destroy();
return message.warning("请先选中关卡"); return message.warning("请先选中关卡");
} }
@@ -466,10 +470,10 @@ export default {
return message.warning("请输入活动地址"); return message.warning("请输入活动地址");
} }
if(state.isClick){ if (state.isClick) {
message.destroy(); message.destroy();
message.error('请勿频繁点击') message.error("请勿频繁点击");
return return;
} }
state.isClick = true; state.isClick = true;
@@ -483,11 +487,12 @@ export default {
activityNotice: state.textV1, //活动公告 activityNotice: state.textV1, //活动公告
activityStartTime: dayjs(state.time[0]).format("YYYY-MM-DD HH:mm"), //活动开始时间 activityStartTime: dayjs(state.time[0]).format("YYYY-MM-DD HH:mm"), //活动开始时间
activityTag: "", //活动逻辑删除标识 activityTag: "", //活动逻辑删除标识
afterSignIn: state.inputV5, //活动开始后多少分钟签到 afterSignIn: state.inputV5 ? state.inputV5 : 0, //活动开始后多少分钟签到
beforeSignIn: state.inputV4, //活动开始前多少分钟签到 beforeSignIn: state.inputV4 ? state.inputV4 : 0, //活动开始前多少分钟签到
signOutTime: state.inputV6, //签退开始时间 signOutTime: state.inputV6, //签退开始时间
standardSettings: state.radioV1, //标准设置 standardSettings: state.radioV1, //标准设置
}; };
console.log("obj", obj);
if (props.edit) { if (props.edit) {
//更新编辑活动信息 //更新编辑活动信息
api api
@@ -536,8 +541,8 @@ export default {
}; };
const disabledDate = (current) => { const disabledDate = (current) => {
// Can not select days before today and today // Can not select days before today and today
console.log('1111', dayjs().endOf('day')) console.log("1111", dayjs().endOf("day"));
return current && current < dayjs().startOf('day'); return current && current < dayjs().startOf("day");
}; };
const disabledDateTime = () => { const disabledDateTime = () => {
@@ -556,9 +561,7 @@ export default {
cloradio1, cloradio1,
updateActivityInfo, updateActivityInfo,
disabledDateTime, disabledDateTime,
disabledDate disabledDate,
}; };
}, },
}; };
@@ -701,7 +704,6 @@ export default {
} }
.setbox { .setbox {
flex-wrap: wrap; flex-wrap: wrap;
margin-top: 10px; margin-top: 10px;
margin-bottom: 24px; margin-bottom: 24px;

View File

@@ -71,7 +71,8 @@
<div class="btnbox"> <div class="btnbox">
<a-range-picker <a-range-picker
:show-time="{ format: 'HH:mm' }" :show-time="{ format: 'HH:mm' }"
:disabled-date="disabledDate" :disabled-time="disabledRangeTime" :disabled-date="disabledDate"
:disabled-time="disabledRangeTime"
style="width: 400px; height: 40px; border-radius: 8px" style="width: 400px; height: 40px; border-radius: 8px"
v-model:value="time" v-model:value="time"
format="YYYY/MM/DD HH:mm" format="YYYY/MM/DD HH:mm"
@@ -486,7 +487,7 @@ export default {
switchC2: false, switchC2: false,
assessmentVisible: false, assessmentVisible: false,
assessmentName: "", assessmentName: "",
isClick: false isClick: false,
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:addliveVisible", false); ctx.emit("update:addliveVisible", false);
@@ -701,10 +702,10 @@ export default {
message.destroy(); message.destroy();
return message.warning("请输入直播公告"); return message.warning("请输入直播公告");
} }
if(state.isClick){ if (state.isClick) {
message.destroy(); message.destroy();
message.error('请勿频繁点击') message.error("请勿频繁点击");
return return;
} }
state.isClick = true; state.isClick = true;
@@ -722,8 +723,8 @@ export default {
"Y-M-D h:m" "Y-M-D h:m"
); );
state.obj = { state.obj = {
afterSignIn: state.inputV6, afterSignIn: state.inputV6 ? state.inputV6 : 0,
beforeSignIn: state.inputV7, beforeSignIn: state.inputV7 ? state.inputV7 : 0,
assessmentId: assessmentId:
state.assessmentId == null || state.assessmentId == "" state.assessmentId == null || state.assessmentId == ""
? 0 ? 0
@@ -898,8 +899,8 @@ export default {
}; };
const disabledDate = (current) => { const disabledDate = (current) => {
// Can not select days before today and today // Can not select days before today and today
console.log('1111', dayjs().endOf('day')) console.log("1111", dayjs().endOf("day"));
return current && current < dayjs().startOf('day'); return current && current < dayjs().startOf("day");
}; };
const disabledDateTime = () => { const disabledDateTime = () => {
@@ -927,7 +928,7 @@ export default {
showAssessment, showAssessment,
removePG, removePG,
disabledDateTime, disabledDateTime,
disabledDate disabledDate,
}; };
}, },
}; };

View File

@@ -64,8 +64,13 @@
</a-button> </a-button>
</a-col> </a-col>
<a-col :span="2"> <a-col :span="2">
<a-button class="cus-btn white" style="width: 100px" @click="reset" <a-button class="cus-btn white" style="width: 100px" @click="reset">
>重置 <template #icon>
<img
style="margin-right: 10px"
src="../../assets/images/leveladd/reset.png"
/></template>
重置
</a-button> </a-button>
</a-col> </a-col>
</a-row> </a-row>

View File

@@ -536,9 +536,8 @@
<div class="split"></div> <div class="split"></div>
<a-tabs> <a-tabs>
<!-- 2023-1-12 隐藏 后面放开 -->
<!-- <a-tab-pane key="1" tab="基本信息">
<a-tab-pane key="1" tab="基本信息">
<div class="sametab"> <div class="sametab">
<div class="Gcon"> <div class="Gcon">
<div class="pad"></div> <div class="pad"></div>
@@ -634,8 +633,7 @@
</div> </div>
</div> </div>
</div> </div>
</a-tab-pane> </a-tab-pane> -->
<a-tab-pane key="2" tab="共享文档"> <a-tab-pane key="2" tab="共享文档">
<div class="sametab"> <div class="sametab">
@@ -668,7 +666,13 @@
> >
<img <img
src="@/assets/images/basicinfo/cloud.png" src="@/assets/images/basicinfo/cloud.png"
style="cursor: pointer; width: 24px; height: 24px; margin-left: 8px;margin-bottom: 3px;" style="
cursor: pointer;
width: 24px;
height: 24px;
margin-left: 8px;
margin-bottom: 3px;
"
alt="" alt=""
/> />
</a-upload> </a-upload>
@@ -694,7 +698,6 @@
" "
class="docListStyle" class="docListStyle"
> >
<!-- <img <!-- <img
src="@/assets/images/basicinfo/download.png" src="@/assets/images/basicinfo/download.png"
style=" style="
@@ -705,26 +708,74 @@
" "
alt="" alt=""
/> --> /> -->
<img v-if=" <img
v-if="
item.name.indexOf('jpg') !== -1 || item.name.indexOf('jpg') !== -1 ||
item.name.indexOf('jpeg') !== -1 || item.name.indexOf('jpeg') !== -1 ||
item.name.indexOf('png') !== -1 item.name.indexOf('png') !== -1
" "
style="width: 27px;height: 32px;margin-right: 40px;" style="width: 27px; height: 32px; margin-right: 40px"
src="@/assets/images/coursewareManage/pngpic.png" /> src="@/assets/images/coursewareManage/pngpic.png"
/>
<div v-else> <div v-else>
<img v-if="item.name.indexOf('doc') !== -1" style="width: 27px;height: 32px;margin-right: 40px;" src="@/assets/images/coursewareManage/docpic.png" /> <img
v-if="item.name.indexOf('doc') !== -1"
style="
width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/docpic.png"
/>
<div v-else> <div v-else>
<img v-if="item.name.indexOf('xls') !== -1" style="width: 27px;height: 32px;margin-right: 40px;" src="@/assets/images/coursewareManage/xlspic.png" /> <img
v-if="item.name.indexOf('xls') !== -1"
style="
width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/xlspic.png"
/>
<div v-else> <div v-else>
<img v-if="item.name.indexOf('ppt') !== -1" style="width: 27px;height: 32px;margin-right: 40px;" src="@/assets/images/coursewareManage/pptpic.png" /> <img
v-if="item.name.indexOf('ppt') !== -1"
style="
width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/pptpic.png"
/>
<div v-else> <div v-else>
<img v-if="item.name.indexOf('pdf') !== -1" style="width: 27px;height: 32px;margin-right: 40px;" src="@/assets/images/coursewareManage/pdfpic.png" /> <img
v-if="item.name.indexOf('pdf') !== -1"
style="
width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/pdfpic.png"
/>
<div v-else> <div v-else>
<img v-if="item.name.indexOf('zip') !== -1" <img
style="width: 27px;height: 32px;margin-right: 40px;" v-if="item.name.indexOf('zip') !== -1"
src="@/assets/images/coursewareManage/zippic.png" /> style="
<img v-else style="width: 27px;height: 32px;margin-right: 40px;" src="@/assets/images/coursewareManage/docpic.png" /> width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/zippic.png"
/>
<img
v-else
style="
width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/docpic.png"
/>
</div> </div>
</div> </div>
</div> </div>
@@ -742,7 +793,11 @@
:title="item.name" :title="item.name"
>{{ item.name }}</span >{{ item.name }}</span
> >
<a :href="item.response?item.response.data:''" style="margin-left: 5px">下载</a> <a
:href="item.response ? item.response.data : ''"
style="margin-left: 5px"
>下载</a
>
<span <span
style="color: #4ea6ff; cursor: pointer" style="color: #4ea6ff; cursor: pointer"
@click="deFile(item.uid)" @click="deFile(item.uid)"
@@ -756,7 +811,6 @@
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
<a-modal <a-modal
@@ -1428,7 +1482,10 @@ export default {
evaluationLevelName: "", evaluationLevelName: "",
facestudent: "", facestudent: "",
locationHref: location.href.indexOf('http://') !== -1 ? 'http://111.231.196.214:12016/' : location.href.slice(0, location.href.indexOf('/m')) + '/upload/' locationHref:
location.href.indexOf("http://") !== -1
? "http://111.231.196.214:12016/"
: location.href.slice(0, location.href.indexOf("/m")) + "/upload/",
}); });
const levelList = reactive({ const levelList = reactive({
@@ -2048,7 +2105,7 @@ export default {
.then((res) => { .then((res) => {
console.log("router-list", res); console.log("router-list", res);
state.fileList = JSON.parse(res.data.data.routerInfo.attach); state.fileList = JSON.parse(res.data.data.routerInfo.attach);
console.log('asdasdasd-------->',state.fileList) console.log("asdasdasd-------->", state.fileList);
state.docChecked = state.docChecked =
res.data.data.routerInfo.attachSwitch == 1 ? true : false; res.data.data.routerInfo.attachSwitch == 1 ? true : false;
if (res.data.data.routerInfo.status == 1) { if (res.data.data.routerInfo.status == 1) {

View File

@@ -55,8 +55,13 @@
:placeholder="[' 开始时间', ' 结束时间']" :placeholder="[' 开始时间', ' 结束时间']"
/>--> />-->
<a-range-picker v-model:value="searchParam.valueDate" style="width: 420px" format="YYYY-MM-DD" separator="至" <a-range-picker
:placeholder="[' 开始时间', ' 结束时间']" /> v-model:value="searchParam.valueDate"
style="width: 420px"
format="YYYY-MM-DD"
separator="至"
:placeholder="[' 开始时间', ' 结束时间']"
/>
</div> </div>
<div style="display: flex; margin-bottom: 20px"> <div style="display: flex; margin-bottom: 20px">
<div class="btnn btn1" @click="searchSubmit"> <div class="btnn btn1" @click="searchSubmit">
@@ -113,13 +118,13 @@
style="background: linear-gradient(180deg, #ddeaff, #f0f8fe)" style="background: linear-gradient(180deg, #ddeaff, #f0f8fe)"
> >
<div class="leftt"> <div class="leftt">
<img src="../../assets/images/taskpage/left2.png"/> <img src="../../assets/images/taskpage/left2.png" />
</div> </div>
<div class="photo"> <div class="photo">
<img src="../../assets/images/projectadd/nopro.png"/> <img src="../../assets/images/projectadd/nopro.png" />
</div> </div>
<div class="rightt"> <div class="rightt">
<img src="../../assets/images/taskpage/right2.png"/> <img src="../../assets/images/taskpage/right2.png" />
</div> </div>
<div class="centerbox" style="color: rgba(78, 166, 255, 1)"> <div class="centerbox" style="color: rgba(78, 166, 255, 1)">
创建项目 创建项目
@@ -288,13 +293,13 @@
" "
> >
<div class="leftt"> <div class="leftt">
<img src="../../assets/images/taskpage/left2.png"/> <img src="../../assets/images/taskpage/left2.png" />
</div> </div>
<div class="photo"> <div class="photo">
<img src="../../assets/images/taskpage/picture4.png"/> <img src="../../assets/images/taskpage/picture4.png" />
</div> </div>
<div class="rightt"> <div class="rightt">
<img src="../../assets/images/taskpage/right2.png"/> <img src="../../assets/images/taskpage/right2.png" />
</div> </div>
<div class="centerbox" style="color: rgba(78, 166, 255, 1)"> <div class="centerbox" style="color: rgba(78, 166, 255, 1)">
单层子项目 单层子项目
@@ -308,13 +313,13 @@
" "
> >
<div class="leftt"> <div class="leftt">
<img src="../../assets/images/taskpage/left1.png"/> <img src="../../assets/images/taskpage/left1.png" />
</div> </div>
<div class="photo"> <div class="photo">
<img src="../../assets/images/taskpage/picture5.png"/> <img src="../../assets/images/taskpage/picture5.png" />
</div> </div>
<div class="rightt"> <div class="rightt">
<img src="../../assets/images/taskpage/right1.png"/> <img src="../../assets/images/taskpage/right1.png" />
</div> </div>
<div class="centerbox" style="color: rgba(255, 182, 78, 1)"> <div class="centerbox" style="color: rgba(255, 182, 78, 1)">
多层子项目 多层子项目
@@ -375,13 +380,13 @@
" "
> >
<div class="leftt"> <div class="leftt">
<img src="../../assets/images/taskpage/left2.png"/> <img src="../../assets/images/taskpage/left2.png" />
</div> </div>
<div class="photo"> <div class="photo">
<img src="../../assets/images/taskpage/picture6.png"/> <img src="../../assets/images/taskpage/picture6.png" />
</div> </div>
<div class="rightt"> <div class="rightt">
<img src="../../assets/images/taskpage/right2.png"/> <img src="../../assets/images/taskpage/right2.png" />
</div> </div>
<div class="centerbox" style="color: rgba(78, 166, 255, 1)"> <div class="centerbox" style="color: rgba(78, 166, 255, 1)">
单层{{ projectInfo.parentId ? "子" : "" }}项目 单层{{ projectInfo.parentId ? "子" : "" }}项目
@@ -400,13 +405,13 @@
" "
> >
<div class="leftt"> <div class="leftt">
<img src="../../assets/images/taskpage/left3.png"/> <img src="../../assets/images/taskpage/left3.png" />
</div> </div>
<div class="photo"> <div class="photo">
<img src="../../assets/images/taskpage/picture7.png"/> <img src="../../assets/images/taskpage/picture7.png" />
</div> </div>
<div class="rightt"> <div class="rightt">
<img src="../../assets/images/taskpage/right3.png"/> <img src="../../assets/images/taskpage/right3.png" />
</div> </div>
<div class="centerbox1" style="color: rgba(93, 201, 136, 1)"> <div class="centerbox1" style="color: rgba(93, 201, 136, 1)">
多层{{ projectInfo.parentId ? "子" : "" }}项目 多层{{ projectInfo.parentId ? "子" : "" }}项目
@@ -628,7 +633,7 @@
class="aeLoading" class="aeLoading"
:style="{ display: projectPubLoading ? 'flex' : 'none' }" :style="{ display: projectPubLoading ? 'flex' : 'none' }"
> >
<a-spin :spinning="projectPubLoading"/> <a-spin :spinning="projectPubLoading" />
</div> </div>
</a-modal> </a-modal>
<!-- 撤回路径弹窗 --> <!-- 撤回路径弹窗 -->
@@ -815,24 +820,24 @@
</div> </div>
</template> </template>
<script> <script>
import {reactive, toRefs, ref, watch} from "vue"; import { reactive, toRefs, ref, watch } from "vue";
import {message, Modal} from "ant-design-vue"; import { message, Modal } from "ant-design-vue";
import {useRouter} from "vue-router"; import { useRouter } from "vue-router";
import ProjOwnerShip from "../../components/drawers/ProjectOwn"; import ProjOwnerShip from "../../components/drawers/ProjectOwn";
import ProjPowerList from "../../components/drawers/ProjPowerList"; import ProjPowerList from "../../components/drawers/ProjPowerList";
import ProjCheckShip from "../../components/drawers/ProjCheckPower"; import ProjCheckShip from "../../components/drawers/ProjCheckPower";
import * as api from "../../api/index"; import * as api from "../../api/index";
import * as api1 from "../../api/index1"; import * as api1 from "../../api/index1";
import {storage} from "../../api/storage"; import { storage } from "../../api/storage";
import ProjectManager from "@/components/project/ProjectManagerNew"; import ProjectManager from "@/components/project/ProjectManagerNew";
// import ProjectClass from "@/components/project/ProjectClass"; // import ProjectClass from "@/components/project/ProjectClass";
import TrainClass from "@/components/project/TrainClass"; import TrainClass from "@/components/project/TrainClass";
import OrgClass from "@/components/project/OrgClass"; import OrgClass from "@/components/project/OrgClass";
import dayjs from "dayjs"; import dayjs from "dayjs";
import * as moment from "moment"; import * as moment from "moment";
import {changeOwnership} from "@/api/method"; import { changeOwnership } from "@/api/method";
import NameInput from "@/components/project/NameInput"; import NameInput from "@/components/project/NameInput";
import {validateName} from "@/api/index1"; import { validateName } from "@/api/index1";
//import { toDate } from "../../api/method"; //import { toDate } from "../../api/method";
export default { export default {
@@ -850,7 +855,7 @@ export default {
}, },
setup() { setup() {
const state = reactive({ const state = reactive({
tableLoading:false, tableLoading: false,
projectName: null, projectName: null,
selectTime: null, selectTime: null,
sonproject: false, sonproject: false,
@@ -923,12 +928,12 @@ export default {
// 数据接入 - start - // 数据接入 - start -
const router = useRouter(); const router = useRouter();
const sProjectStateList = ref([ const sProjectStateList = ref([
{value: 0, label: "草稿"}, { value: 0, label: "草稿" },
{value: 1, label: "进行中"}, { value: 1, label: "进行中" },
{value: 2, label: "已结束"}, { value: 2, label: "已结束" },
]); ]);
const searchReset = () => { const searchReset = () => {
state.searchParam = {pageNo: 1, pageSize: 10}; state.searchParam = { pageNo: 1, pageSize: 10 };
getTableDate(); getTableDate();
}; };
const searchSubmit = () => { const searchSubmit = () => {
@@ -994,7 +999,7 @@ export default {
state.currentPage = 1; state.currentPage = 1;
state.projectInfo.projectId || state.projectInfo.projectId ||
changeOwnership("project", res.data.data.projectId, [ changeOwnership("project", res.data.data.projectId, [
{id: res.data.data.createId, name: res.data.data.createName}, { id: res.data.data.createId, name: res.data.data.createName },
]); ]);
getTableDate(); getTableDate();
}); });
@@ -1050,13 +1055,15 @@ export default {
state.projectTasks = res.data.data.tasks; state.projectTasks = res.data.data.tasks;
}); });
//获取学员总数 //获取学员总数
api.projectStudentCount({ api
.projectStudentCount({
pid: object.projectId, pid: object.projectId,
type: 1 type: 1,
}).then((res) => {
state.projectStudentsNum = res.data.data
state.projectPubLoading = false;
}) })
.then((res) => {
state.projectStudentsNum = res.data.data;
state.projectPubLoading = false;
});
//获取阶段及任务总数 //获取阶段及任务总数
}; };
//确认发布项目 //确认发布项目
@@ -1212,7 +1219,7 @@ export default {
message.success("模版保存成功"); message.success("模版保存成功");
return; return;
} }
Modal.error({title: res.data.msg}); Modal.error({ title: res.data.msg });
}); });
}; };
//关闭存为模版弹窗 //关闭存为模版弹窗
@@ -1230,11 +1237,13 @@ export default {
}; };
//确认复制 //确认复制
const copyProject = () => { const copyProject = () => {
state.tableLoading = true state.tableLoading = true;
api.handleProject({ api
.handleProject({
projectId: state.copyProjectId, projectId: state.copyProjectId,
type: 2, type: 2,
}).then(() => getTableDate()) })
.then(() => getTableDate());
message.success("复制成功"); message.success("复制成功");
state.copyModal = false; state.copyModal = false;
}; };
@@ -1399,7 +1408,9 @@ export default {
// console.log("value", value.record.type, value.record.status); // console.log("value", value.record.type, value.record.status);
return ( return (
<div className="operation"> <div className="operation">
{value.record.status === 0 || value.record.status ===2 || value.record.status === -5 ? ( {value.record.status === 0 ||
value.record.status === 2 ||
value.record.status === -5 ? (
<span <span
onClick={() => { onClick={() => {
if (value.record.type === 1 || value.record.type === 2) { if (value.record.type === 1 || value.record.type === 2) {
@@ -1471,6 +1482,21 @@ export default {
) : ( ) : (
"" ""
)} )}
{value.record.status === 3 && value.record.type === 3 ? (
<div
onClick={() => {
router.push({
path: "/taskpage",
query: { projectId: value.record.projectId },
});
storage.set("projectId", value.record.projectId);
}}
>
管理
</div>
) : (
""
)}
{value.record.status === 3 && value.record.type === 3 ? ( {value.record.status === 3 && value.record.type === 3 ? (
<span <span
onClick={() => { onClick={() => {
@@ -1484,6 +1510,7 @@ export default {
) : ( ) : (
"" ""
)} )}
{/** {/**
//<!-- 2022-12-10注释 后面放开 --> //<!-- 2022-12-10注释 后面放开 -->
<div className="tableSelect"> <div className="tableSelect">
@@ -1542,7 +1569,7 @@ export default {
state.projectInfo = { state.projectInfo = {
parentName: value.record.name, parentName: value.record.name,
parentId: value.record.projectId, parentId: value.record.projectId,
name: '', name: "",
sourceBelongId: value.record.sourceBelongId, sourceBelongId: value.record.sourceBelongId,
sourceBelongName: value.record.sourceBelongName, sourceBelongName: value.record.sourceBelongName,
manager: value.record.manager, manager: value.record.manager,
@@ -1595,7 +1622,8 @@ export default {
复制 复制
</div> </div>
</a-select-option> </a-select-option>
{value.record.status!==3 ? <a-select-option value="删除" label="删除"> {value.record.status !== 3 ? (
<a-select-option value="删除" label="删除">
<div <div
onClick={() => { onClick={() => {
showDeleteModal(value.record.projectId); showDeleteModal(value.record.projectId);
@@ -1603,7 +1631,10 @@ export default {
> >
删除 删除
</div> </div>
</a-select-option>:''} </a-select-option>
) : (
""
)}
{value.record.type === 3 ? ( {value.record.type === 3 ? (
<a-select-option value="存为模版" label="存为模版"> <a-select-option value="存为模版" label="存为模版">
<div <div
@@ -1644,13 +1675,13 @@ export default {
) : ( ) : (
"" ""
)} )}
{value.record.type === 3 ? ( {value.record.status !== 3 && value.record.type === 3 ? (
<a-select-option value="基础信息" label="基础信息"> <a-select-option value="基础信息" label="基础信息">
<div <div
onClick={() => { onClick={() => {
router.push({ router.push({
path: "/taskpage", path: "/taskpage",
query: {projectId: value.record.projectId}, query: { projectId: value.record.projectId },
}); });
storage.set("projectId", value.record.projectId); storage.set("projectId", value.record.projectId);
}} }}
@@ -1668,15 +1699,15 @@ export default {
}, },
}, },
]); ]);
const getTableDate = () =>{ const getTableDate = () => {
state.tableLoading = true state.tableLoading = true;
api.getProjectList({ api
.getProjectList({
...state.searchParam, ...state.searchParam,
beginTime: beginTime:
state.searchParam.valueDate && state.searchParam.valueDate &&
state.searchParam.valueDate.length === 2 state.searchParam.valueDate.length === 2
? dayjs(state.searchParam.valueDate[0]).format("YYYY-MM-DD") ? dayjs(state.searchParam.valueDate[0]).format("YYYY-MM-DD")
: "", : "",
endTime: endTime:
state.searchParam.valueDate && state.searchParam.valueDate &&
@@ -1687,15 +1718,14 @@ export default {
.then((res) => { .then((res) => {
// console.log("搜索", res, state.searchParam); // console.log("搜索", res, state.searchParam);
state.tableDataTotal = Number(res.data.data.total); state.tableDataTotal = Number(res.data.data.total);
state.tableLoading = false state.tableLoading = false;
const data = res.data.data.rows; const data = res.data.data.rows;
initDataSublist("", data); initDataSublist("", data);
console.log(data); console.log(data);
tableData.value = data; tableData.value = data;
console.log("tableData", tableData); console.log("tableData", tableData);
}); });
} };
function initDataSublist(parentName, data) { function initDataSublist(parentName, data) {
if (data && data.length) { if (data && data.length) {
@@ -1795,10 +1825,10 @@ export default {
} }
); );
function managerChange(e, l, d, t,orgName) { function managerChange(e, l, d, t, orgName) {
state.projectInfo.sourceBelongId = d state.projectInfo.sourceBelongId = d;
state.projectInfo.sourceBelongName = t state.projectInfo.sourceBelongName = t;
state.projectInfo.sourceBelongFullName = orgName state.projectInfo.sourceBelongFullName = orgName;
} }
return { return {
@@ -1862,7 +1892,7 @@ export default {
okReminderModal, okReminderModal,
}; };
}, },
}; };
</script> </script>
<style lang="scss"> <style lang="scss">
.projectManage { .projectManage {