feat:项目 路径图发布撤回结束复制存为模板

This commit is contained in:
宋文超
2022-11-17 10:00:32 +08:00
parent d6ea4ddccc
commit c926de3526
5 changed files with 1392 additions and 201 deletions

View File

@@ -48,11 +48,14 @@
<span style="margin-right: 3px">选择课程</span> <span style="margin-right: 3px">选择课程</span>
</div> </div>
<div class="btnbox" @click="showDrawerSelFacet"> <div class="btnbox" @click="showDrawerSelFacet">
<button class="xkbtn">选择课程</button> <button class="xkbtn">授课课程</button>
</div> </div>
<!-- 选择面授侧弹窗 --> <!-- 选择面授侧弹窗 -->
<div> <div>
<sel-facet v-model:selfacetVisible="selfacetvisible" /> <sel-facet
v-model:selfacetVisible="selfacetvisible"
@getData="upDateTable"
/>
</div> </div>
<!-- 选择面授侧弹窗 --> <!-- 选择面授侧弹窗 -->
</div> </div>
@@ -152,8 +155,15 @@
<div class="timerbox"> <div class="timerbox">
<span>开始前</span> <span>开始前</span>
<a-input-number <a-input-number
:min="0" :max="30" :precision="0" :min="0"
style="width: 88px; height: 32px;border-radius: 8px;overflow: hidden;" :max="30"
:precision="0"
style="
width: 88px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
:v-model:value="inputV5" :v-model:value="inputV5"
></a-input-number> ></a-input-number>
<span style="color: #999999; margin-left: 8px">分钟</span> <span style="color: #999999; margin-left: 8px">分钟</span>
@@ -161,29 +171,43 @@
<div class="timerbox"> <div class="timerbox">
<span>开始后</span> <span>开始后</span>
<a-input-number <a-input-number
:min="0" :max="30" :precision="0" :min="0"
style="width: 88px; height: 32px;border-radius: 8px;overflow: hidden;" :max="30"
:precision="0"
style="
width: 88px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
:v-model:value="inputV6" :v-model:value="inputV6"
></a-input-number> ></a-input-number>
<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">
<div class="qtbtn"><div class="btntext">签退</div></div> <div class="qtbtn"><div class="btntext">签退</div></div>
</div> </div> -->
<div class="setbox"> <!-- <div class="setbox">
<div class="timerbox"> <div class="timerbox">
<span>结束前</span> <span>结束前</span>
<a-input-number <a-input-number
:min="0" :max="30" :precision="0" :min="0"
style="width: 88px; height: 32px;border-radius: 8px;overflow: hidden;" :max="30"
:precision="0"
style="
width: 88px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
:v-model:value="inputV7" :v-model:value="inputV7"
></a-input-number> ></a-input-number>
<span style="color: #999999; margin-left: 8px" <span style="color: #999999; margin-left: 8px"
>分钟提前签退则记为早退</span >分钟提前签退则记为早退</span
> >
</div> </div>
</div> </div> -->
</div> </div>
</div> </div>
<div class="main_item"> <div class="main_item">
@@ -192,7 +216,9 @@
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-radio-group v-model:value="radioV1"> <a-radio-group v-model:value="radioV1">
<a-radio v-model:checked="checked" :value="1" @click="cloradio1">仅签到</a-radio> <a-radio v-model:checked="checked" :value="1" @click="cloradio1"
>仅签到</a-radio
>
<a-radio v-model:checked="checked" :value="2" @click="cloradio1" <a-radio v-model:checked="checked" :value="2" @click="cloradio1"
>签到签退全部完成</a-radio >签到签退全部完成</a-radio
> >
@@ -215,7 +241,9 @@
</div> </div>
<div class="btnbox2"> <div class="btnbox2">
<a-radio-group v-model:value="radioV2"> <a-radio-group v-model:value="radioV2">
<a-radio v-model:checked="checked" :value="1" @click="cloradio2">允许项目内人员临时到场参加</a-radio> <a-radio v-model:checked="checked" :value="1" @click="cloradio2"
>允许项目内人员临时到场参加</a-radio
>
<a-radio v-model:checked="checked" :value="2" @click="cloradio2" <a-radio v-model:checked="checked" :value="2" @click="cloradio2"
>允许项目外人员临时到场参加</a-radio >允许项目外人员临时到场参加</a-radio
> >
@@ -228,7 +256,7 @@
</div> </div>
<div class="btnbox2"> <div class="btnbox2">
<a-checkbox v-model:checked="checked">需要评估</a-checkbox> <a-checkbox v-model:checked="checked">需要评估</a-checkbox>
<button class="xkbtn">选择课程</button> <button class="xkbtn">选择评估</button>
</div> </div>
</div> </div>
</div> </div>
@@ -271,13 +299,13 @@
</div> </div>
<div class="main_btns"> <div class="main_btns">
<button class="btn1">取消</button> <button class="btn1">取消</button>
<button class="btn2" @click ="updateFaceTeach">确定</button> <button class="btn2" @click="updateFaceTeach">确定</button>
</div> </div>
</div> </div>
</a-drawer> </a-drawer>
</template> </template>
<script> <script>
import { reactive, toRefs} from "vue"; import { reactive, toRefs } from "vue";
import SelFacet from "../../components/drawers/SelFacet.vue"; import SelFacet from "../../components/drawers/SelFacet.vue";
import AddHomework from "../../components/drawers/AddHomework.vue"; import AddHomework from "../../components/drawers/AddHomework.vue";
import AddTest from "../../components/drawers/AddTest.vue"; import AddTest from "../../components/drawers/AddTest.vue";
@@ -359,7 +387,7 @@ export default {
}; };
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
console.log("state", bool); console.log("state", bool);
if(bool){ if (bool) {
queryFaceTeach(); queryFaceTeach();
} }
}; };
@@ -381,19 +409,16 @@ export default {
if (value != "") { if (value != "") {
state.radioV2 = ""; state.radioV2 = "";
} }
} };
//查询面授 //查询面授
const queryFaceTeach=()=>{ const queryFaceTeach = () => {};
//更新任务列表
} const updateTask = () => {};
//更新任务列表 //新建或编辑面授
const updateTask=()=>{ const updateFaceTeach = () => {};
const upDateTable = (data) => {
} console.log("选择了课程", data);
//新建或编辑面授 };
const updateFaceTeach=()=>{
}
return { return {
...toRefs(state), ...toRefs(state),
showDrawerSelFacet, showDrawerSelFacet,
@@ -405,6 +430,7 @@ export default {
cloradio2, cloradio2,
updateFaceTeach, updateFaceTeach,
updateTask, updateTask,
upDateTable,
// change, // change,
}; };
}, },
@@ -443,115 +469,115 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
margin-top: 32px; margin-top: 32px;
margin-bottom: 32px; margin-bottom: 32px;
.signbox { .signbox {
width: 120px; width: 120px;
display: flex; display: flex;
justify-content: end; justify-content: end;
align-items: center; align-items: center;
.sign { .sign {
margin-right: 5px; margin-right: 5px;
}
}
.btnbox {
display: flex;
flex: 1;
align-items: center;
.xkbtn {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
border-radius: 8px;
border: 0;
margin-right: 8px;
color: #fff;
}
} }
} }
.main_item2 { .btnbox {
display: flex; display: flex;
align-items: flex-start; flex: 1;
margin-bottom: 32px; align-items: center;
.signbox { .xkbtn {
width: 120px; cursor: pointer;
display: flex; width: 130px;
justify-content: end; height: 40px;
align-items: center; background: #388be1;
border-radius: 8px;
border: 0;
margin-right: 8px;
color: #fff;
} }
}
.kqszbox { }
.qdqtbox {
margin-left: 5px; .main_item2 {
cursor: pointer; display: flex;
align-items: flex-start;
// margin-bottom: 32px;
.signbox {
width: 120px;
display: flex;
justify-content: end;
align-items: center;
}
.kqszbox {
.qdqtbox {
margin-left: 5px;
cursor: pointer;
}
.qdbtn,
.qtbtn {
width: 75px;
height: 24px;
background: rgba(56, 139, 225, 0.16);
border-radius: 2px;
border: 1px solid #387df7;
display: flex;
align-items: center;
justify-content: center;
.btntext {
color: #387df7;
} }
}
.qdbtn,
.qtbtn { .setbox {
width: 75px; display: flex;
height: 24px; flex-wrap: wrap;
background: rgba(56, 139, 225, 0.16); margin-top: 10px;
border-radius: 2px; // margin-bottom: 24px;
border: 1px solid #387df7;
.timerbox {
margin-top: 6px;
margin-right: 32px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; flex-wrap: nowrap;
.btntext {
color: #387df7;
}
}
.setbox {
display: flex;
flex-wrap: wrap;
margin-top: 10px;
margin-bottom: 24px;
.timerbox {
margin-top: 6px;
margin-right: 32px;
display: flex;
align-items: center;
flex-wrap: nowrap;
}
}
}
.btnbox2 {
display: flex;
flex-direction: column;
justify-content: flex-start;
.xkbtn {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
border-radius: 8px;
border: 0;
margin-right: 16px 8px 32px 0;
color: #fff;
margin-top: 16px;
margin-bottom: 60px;
} }
} }
} }
.btnbox2 {
display: flex;
flex-direction: column;
justify-content: flex-start;
.xkbtn {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
border-radius: 8px;
border: 0;
margin-right: 16px 8px 32px 0;
color: #fff;
margin-top: 16px;
margin-bottom: 60px;
}
} }
}
.main_right { }
width: 337px;
.main_right {
.main_item { width: 337px;
display: flex;
align-items: center; .main_item {
margin-top: 32px; display: flex;
align-items: center;
margin-top: 32px;
margin-bottom: 32px; margin-bottom: 32px;
.signbox { .signbox {
width: 120px; width: 120px;

View File

@@ -63,7 +63,11 @@
:row-class-name=" :row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null) (_record, index) => (index % 2 === 1 ? 'table-striped' : null)
" "
:row-selection="rowSelection" :row-selection="{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
type: 'radio',
}"
:columns="columns1" :columns="columns1"
:data-source="classTableData" :data-source="classTableData"
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
@@ -86,7 +90,7 @@
</div> </div>
<div class="main_btns"> <div class="main_btns">
<button class="btn1">取消</button> <button class="btn1">取消</button>
<button class="btn2">确定</button> <button class="btn2" @click="closeDrawer">确定</button>
</div> </div>
</div> </div>
</a-drawer> </a-drawer>
@@ -150,22 +154,7 @@ const columns1 = [
align: "center", align: "center",
}, },
]; ];
const rowSelection = ref({
checkStrictly: false,
onChange: (selectedRowKeys, selectedRows) => {
console.log(
`selectedRowKeys: ${selectedRowKeys}`,
"selectedRows: ",
selectedRows
);
},
onSelect: (record, selected, selectedRows) => {
console.log(record, selected, selectedRows);
},
onSelectAll: (selected, selectedRows, changeRows) => {
console.log(selected, selectedRows, changeRows);
},
});
export default { export default {
name: "SelFacet", name: "SelFacet",
props: { props: {
@@ -219,9 +208,19 @@ export default {
pageSize: 10, pageSize: 10,
valueClass: null, //课程编号 valueClass: null, //课程编号
valueContent: null, //内容分类 valueContent: null, //内容分类
selectedRows: [], //选择的数据
selectedRowKeys: [],
}); });
const onSelectChange = (selectedRowKeys, selectedRows) => {
console.log("selectedRowKeys changed: ", selectedRowKeys);
state.selectedRowKeys = selectedRowKeys;
state.selectedRows = selectedRows;
console.log(selectedRows);
};
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:selfacetVisible", false); ctx.emit("update:selfacetVisible", false);
ctx.emit("getData", state.selectedRows);
}; };
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
console.log("state", bool); console.log("state", bool);
@@ -313,13 +312,13 @@ export default {
closeDrawer, closeDrawer,
options1, options1,
columns1, columns1,
rowSelection,
getClassData, getClassData,
handleChange, handleChange,
reset, reset,
getClassList, getClassList,
search, search,
changePaginationStu, changePaginationStu,
onSelectChange,
// change, // change,
}; };
}, },

View File

@@ -40,11 +40,11 @@
<div style="display: flex; margin-bottom: 20px"> <div style="display: flex; margin-bottom: 20px">
<div class="btn btn1" @click="searchLearnPath"> <div class="btn btn1" @click="searchLearnPath">
<div class="search"></div> <div class="search"></div>
<div class="btnText" >搜索</div> <div class="btnText">搜索</div>
</div> </div>
<div class="btnn btn2" @click="resetLearnPath"> <div class="btnn btn2" @click="resetLearnPath">
<div class="search"></div> <div class="search"></div>
<div class="btnText" >重置</div> <div class="btnText">重置</div>
</div> </div>
</div> </div>
</div> </div>
@@ -196,7 +196,7 @@
@click="chooseImg(item)" @click="chooseImg(item)"
v-for="item in imgData" v-for="item in imgData"
:key="item.key" :key="item.key"
class="learnBgItem" class="learnBgItem"
:style="{ :style="{
border: border:
learnPathBg === item.id learnPathBg === item.id
@@ -263,7 +263,7 @@
v-model:value="pathName" v-model:value="pathName"
maxlength="20" maxlength="20"
style="border-radius: 4px" style="border-radius: 4px"
placeholder="请输入学习路径名称" placeholder="请输入学习路径名称"
/> />
<div class="showcount">{{ pathName.length }}/20</div> <div class="showcount">{{ pathName.length }}/20</div>
</div> </div>
@@ -431,10 +431,10 @@
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
<div class="del_btn btn1" @click="delete_exit"> <div class="del_btn btn1" @click="delete_exit">
<div class="btnText" >取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="del_btn btn2" @click="delete_exit"> <div class="del_btn btn2" @click="delete_exit">
<div class="btnText" >确定</div> <div class="btnText">确定</div>
</div> </div>
</div> </div>
</div> </div>
@@ -465,16 +465,16 @@
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
<div class="del_btn btn1" @click="closeStopModal"> <div class="del_btn btn1" @click="closeStopModal">
<div class="btnText" >取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="del_btn btn2" @click="stopLearnPath"> <div class="del_btn btn2" @click="stopLearnPath">
<div class="btnText" >确定</div> <div class="btnText">确定</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</a-modal> </a-modal>
<!-- 结束路径弹窗 --> <!-- 删除路径弹窗 -->
<a-modal <a-modal
v-model:visible="deleteModal" v-model:visible="deleteModal"
:footer="null" :footer="null"
@@ -495,10 +495,10 @@
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
<div class="del_btn btn1" @click="closeDeleteModal"> <div class="del_btn btn1" @click="closeDeleteModal">
<div class="btnText" >取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="del_btn btn2" @click="deleteLearnPath"> <div class="del_btn btn2" @click="deleteLearnPath">
<div class="btnText" >确定</div> <div class="btnText">确定</div>
</div> </div>
</div> </div>
</div> </div>
@@ -525,10 +525,10 @@
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
<div class="del_btn btn1" @click="delete_exit"> <div class="del_btn btn1" @click="delete_exit">
<div class="btnText" >取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="del_btn btn2" @click="delete_exit"> <div class="del_btn btn2" @click="delete_exit">
<div class="btnText" >确定</div> <div class="btnText">确定</div>
</div> </div>
</div> </div>
</div> </div>
@@ -556,10 +556,10 @@
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
<div class="del_btn btn1" @click="closeBackModal"> <div class="del_btn btn1" @click="closeBackModal">
<div class="btnText" >取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="del_btn btn2" @click="recallPath"> <div class="del_btn btn2" @click="recallPath">
<div class="btnText" >确定</div> <div class="btnText">确定</div>
</div> </div>
</div> </div>
</div> </div>
@@ -1143,7 +1143,7 @@ export default {
复制 复制
</div> </div>
</a-select-option> </a-select-option>
<a-select-option <a-select-option
value="删除" value="删除"
label="删除" label="删除"
@@ -1197,20 +1197,20 @@ export default {
撤回 撤回
</div> </div>
</a-select-option> </a-select-option>
<a-select-option <a-select-option
value="结束" value="结束"
label="结束" label="结束"
style="padding-left:35px" style="padding-left:35px"
>
<div
onClick={() => {
state.stopPathId = text.record.id;
showStopModal();
}}
> >
结束 <div
</div> onClick={() => {
</a-select-option> state.stopPathId = text.record.id;
showStopModal();
}}
>
结束
</div>
</a-select-option>
</a-select> </a-select>
</div> </div>
) : ( ) : (
@@ -1322,7 +1322,7 @@ export default {
state.lpLoading = false; state.lpLoading = false;
state.currentPage = 1; state.currentPage = 1;
router.push("/leveladd"); router.push("/leveladd");
storage.set("routerId", res.data.data.routerId); storage.set("routerId", res.data.data.routerId);
// getLearnPath(); // getLearnPath();
}, commonData.timeout); }, commonData.timeout);
}) })
@@ -1645,20 +1645,19 @@ export default {
cursor: pointer; cursor: pointer;
} }
} }
.learnBg{ .learnBg {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
min-height: 110px; min-height: 110px;
.learnBgItem{ .learnBgItem {
border-radius: 8px; border-radius: 8px;
width: 136px; width: 136px;
height: 106px; height: 106px;
background-size: 100%; background-size: 100%;
background-repeat: no-repeat; background-repeat: no-repeat;
margin-bottom: 20px; margin-bottom: 20px;
margin-right: 6px; margin-right: 6px;
} }
} }
} }
.info { .info {

View File

@@ -2,7 +2,8 @@
<div class="addwrapper"> <div class="addwrapper">
<div class="addhead"> <div class="addhead">
<div class="leftimg"> <div class="leftimg">
<img class="img" :src="picUrl" /> <!-- <img class="img" :src="picUrl" /> -->
<img class="img" src="../../assets/images/leveladd/1.png" />
</div> </div>
<div class="imgfor"> <div class="imgfor">
<div class="forz">{{ styTitle }}</div> <div class="forz">{{ styTitle }}</div>
@@ -12,19 +13,59 @@
<img class="img1" src="../../assets/images/leveladd/ma.png" /> <img class="img1" src="../../assets/images/leveladd/ma.png" />
<div class="line"></div> <div class="line"></div>
<img class="img2" src="../../assets/images/leveladd/pub.png" /> <img class="img2" src="../../assets/images/leveladd/pub.png" />
<div class="pub">发布</div> <!-- 已发布的显示 -->
<div
class="pub"
style="width: 28px"
v-if="action == 1"
@click="showBackModal"
>
{{ act }}
</div>
<!-- 未发布/草稿的显示 -->
<div
class="pub"
style="width: 28px"
v-if="action == 0"
@click="showPub"
>
{{ act }}
</div>
<!-- 已结束的显示 -->
<div class="pub" style="width: 28px" v-if="action == -1">
{{ act }}
</div>
<div class="line"></div> <div class="line"></div>
<img <img
style="margin-right: 15px" style="margin-right: 15px"
class="img2" class="img2"
src="../../assets/images/leveladd/more.png" src="../../assets/images/leveladd/more.png"
/> />
<div class="more"> <!-- 草稿/未发布的显示 -->
<div class="more" v-if="action == 0">
<span style="color: #7096e3; cursor: pointer">更多</span> <span style="color: #7096e3; cursor: pointer">更多</span>
<div class="moreArrow"></div> <div class="moreArrow"></div>
<div class="moreItems"> <div class="moreItems">
<div class="sammo">撤回</div> <!-- <div class="sammo">撤回</div> -->
<div class="sammo">复制</div> <div class="sammo" @click="showCopy">复制</div>
</div>
</div>
<!-- 已发布的显示 -->
<div class="more" v-if="action == 1">
<span style="color: #7096e3; cursor: pointer">更多</span>
<div class="moreArrow"></div>
<div class="moreItems">
<div class="sammo" @click="showStop">结束</div>
<div class="sammo" @click="showCopy">复制</div>
</div>
</div>
<!-- 已结束的显示 -->
<div class="more" v-if="action == -1">
<span style="color: #7096e3; cursor: pointer">更多</span>
<div class="moreArrow"></div>
<div class="moreItems">
<!-- <div class="sammo">结束</div> -->
<div class="sammo" @click="showCopy">复制</div>
</div> </div>
</div> </div>
<div class="line"></div> <div class="line"></div>
@@ -920,6 +961,172 @@
<div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }"> <div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }">
<a-spin :spinning="addLoading" tip="添加中..." /> <a-spin :spinning="addLoading" tip="添加中..." />
</div> </div>
<!-- 发布弹窗 -->
<a-modal
v-model:visible="pub"
:title="null"
:footer="null"
:closable="false"
wrapClassName="pub"
width="679px"
height="437px"
>
<div
class="modalHeader"
style="
width: 100%;
height: 68px;
display: flex;
align-items: center;
justify-content: space-between;
"
>
<div class="headerLeft" style="margin-left: 32px">
<span style="width: 15px; height: 15px"
><img src="../../assets/images/taskpage/pub.png"
/></span>
<span
class="headerLeftText"
style="font-size: 16px; margin-left: 10px"
>路径发布</span
>
</div>
<div style="cursor: pointer; margin-right: 32px" @click="closePub">
<img
style="width: 22px; height: 22px"
src="../../assets/images/basicinfo/close22.png"
/>
</div>
</div>
<div class="modalMain">
<div class="projectname">产品经理上升路径</div>
<!-- <div class="projecttime">
<span class="timeti">路径时间</span
><span class="timeme">2022/08/01-2022/08/30</span>
</div> -->
<div class="projectbox">
<div class="promessage">
<div class="messageme">路径信息</div>
<div class="messagege">当前路径共0个关卡0个任务</div>
</div>
<div class="stumessage">
<div class="messageme1">学员信息</div>
<div class="messagege1">路径共{{ routeStudentsNum }}名学员</div>
</div>
</div>
<!-- <div class="send">
<a-switch v-model:checked="checked" size="small" />
<span class="sendtext">发送路径通知</span>
</div>
<div class="ckb">
<a-checkbox v-model:checked="checkedTeacher"
><span class="sendpeo">发给老师</span></a-checkbox
>
<a-checkbox v-model:checked="checkStu"
><span class="sendpeo">发给学员</span></a-checkbox
>
</div> -->
<div class="pubtn">
<a-button class="pubtn1" @click="closePub">取消</a-button>
<a-button class="pubtn2" @click="releaseLearnPath">发布</a-button>
</div>
</div>
</a-modal>
<!-- 撤回路径弹窗 -->
<a-modal
v-model:visible="backModal"
:footer="null"
:closable="closeBack"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeBackModal"></div>
</div>
<div class="body">
<span>是否撤回路径</span>
<div class="back">路径撤回后学员进度保留发布后可继续学习</div>
</div>
<div class="del_btnbox">
<div class="del_btn btn1" @click="closeBackModal">
<div class="btnText">取消</div>
</div>
<div class="del_btn btn2" @click="recallPath">
<div class="btnText">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 复制路径弹窗 -->
<a-modal
v-model:visible="dcopyModal"
:footer="null"
:closable="dcloseCopy"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeCopy"></div>
</div>
<div class="body">
<span>您确定要复制此路径吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1" @click="closeCopy">
<div class="btnText">取消</div>
</div>
<div class="del_btn btn2" @click="sureCopy">
<div class="btnText">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 结束路径弹窗 -->
<a-modal
v-model:visible="stopModal"
:footer="null"
:closable="dicloseStop"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeStopModal"></div>
</div>
<div class="body">
<!-- <span>您确定要停用此路径吗</span> -->
<span>是否结束项目</span>
<div class="back">
项目结束后学员将无法继续学习此操作不可逆
</div>
</div>
<div class="del_btnbox">
<div class="del_btn btn1" @click="closeStopModal">
<div class="btnText">取消</div>
</div>
<div class="del_btn btn2" @click="stopLearnPath">
<div class="btnText">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
</div> </div>
</template> </template>
<script> <script>
@@ -942,6 +1149,7 @@ import { getRouterOverview } from "@/api/indexLearningPath";
import { GetRouterDetail } from "@/api/indexTask"; import { GetRouterDetail } from "@/api/indexTask";
import * as api from "../../api/index1"; import * as api from "../../api/index1";
import { toDate } from "../../api/method"; import { toDate } from "../../api/method";
import { handleLearnPath } from "../../api/index1";
export default { export default {
name: "LevelAdd", name: "LevelAdd",
@@ -981,6 +1189,8 @@ export default {
styTitle: null, styTitle: null,
cretime: null, cretime: null,
picUrl: null, picUrl: null,
action: null,
act: null,
// 共享文档列表 // 共享文档列表
docList: [ docList: [
{ {
@@ -1046,6 +1256,14 @@ export default {
visible: false, //时间管理 visible: false, //时间管理
TMvisible: false, //考试管理 TMvisible: false, //考试管理
FaceVisivle: false, //面授管理 FaceVisivle: false, //面授管理
pub: false, //发布弹窗
backModal: false, //撤回弹窗
dcopyModal: false, //复制弹窗
closeBack: false,
routeStudentsNum: null,
dcloseCopy: false,
dicloseCopy: false,
stopModal: false, //结束弹窗
//关卡的数据 //关卡的数据
level: [ level: [
// { // {
@@ -1386,14 +1604,7 @@ export default {
onMounted(() => { onMounted(() => {
state.addLoading = true; state.addLoading = true;
getOverview(); getOverview();
GetRouterDetail(state.routerId).then((res) => { reget();
state.styTitle = res.data.data.routerInfo.name;
state.cretime = toDate(
res.data.data.routerInfo.createTime / 1000,
"Y-M-D h:m"
);
state.picUrl = res.data.data.routerInfo.picUrl;
});
}); });
// 获取项目概览 // 获取项目概览
@@ -1478,6 +1689,147 @@ export default {
}, },
}); });
}; };
const closePub = () => {
state.pub = false;
};
//确定发布
const releaseLearnPath = () => {
// console.log("state.releasePathId", state.releasePathId);
let obj = {
routerId: state.routerId,
type: 1,
};
handleLearnPath(obj)
.then((res) => {
console.log("发布成功", res);
message.destroy();
message.success("发布成功");
state.pub = false;
// getLearnPath();
reget();
})
.catch((err) => {
console.log("发布失败", err);
});
};
//显示发布弹窗
const showPub = () => {
state.pub = true;
// state.releasePathId = routerId;
//获取学员总数
let obj = {
pageNo: 0,
pageSize: 0,
routerId: state.routerId,
};
api
.getStudent(obj)
.then((res) => {
if (res.status === 200) {
// console.log("res", res.data.data);
state.routeStudentsNum = res.data.data.total;
}
})
.catch((err) => {
console.log("err", err);
});
//获取学习路径详细信息
// api
// .getRouterDetail(routerId)
// .then((res) => {
// console.log("学习路径详情", res);
// })
// .catch((err) => {
// console.log("学习路径详情获取错误", err);
// });
};
//显示撤回弹窗
const showBackModal = () => {
state.backModal = true;
};
//关闭撤回弹窗
const closeBackModal = () => {
state.backModal = false;
};
//确定撤回
const recallPath = () => {
let obj = {
routerId: state.routerId,
type: 0,
};
api
.handleLearnPath(obj)
.then((res) => {
console.log("撤回成功", res);
message.destroy();
message.success("撤回成功");
state.backModal = false;
reget();
})
.catch((err) => {
console.log("撤回失败", err);
});
};
//显示复制弹窗
const showCopy = () => {
state.dcopyModal = true;
};
//关闭复制弹窗
const closeCopy = () => {
state.dcopyModal = false;
};
//确认复制
const sureCopy = () => {
state.dcopyModal = false;
};
const showStop = () => {
state.stopModal = true;
};
//关闭结束窗口
const closeStopModal = () => {
state.stopModal = false;
};
//确认结束
const stopLearnPath = () => {
let obj = {
routerId: state.routerId,
type: -1,
};
api
.handleLearnPath(obj)
.then((res) => {
console.log("停用成功", res);
message.destroy();
message.success("停用成功");
state.stopModal = false;
reget();
// getLearnPath();
})
.catch((err) => {
console.log("停用失败", err);
});
};
const reget = () => {
GetRouterDetail(state.routerId).then((res) => {
state.styTitle = res.data.data.routerInfo.name;
state.cretime = toDate(
res.data.data.routerInfo.createTime / 1000,
"Y-M-D h:m"
);
state.picUrl = res.data.data.routerInfo.picUrl;
state.action = res.data.data.routerInfo.status;
state.act =
state.action == 0
? "发布"
: state.action == 1
? "撤回"
: state.action == -1
? ""
: "-";
});
};
return { return {
...toRefs(state), ...toRefs(state),
@@ -1509,6 +1861,19 @@ export default {
checkType, checkType,
handleChange, handleChange,
delConfirm, delConfirm,
closePub,
releaseLearnPath,
showPub,
showBackModal,
closeBackModal,
recallPath,
showCopy,
closeCopy,
sureCopy,
closeStopModal,
stopLearnPath,
showStop,
reget,
}; };
}, },
}; };
@@ -1520,6 +1885,142 @@ export default {
display: block; display: block;
clear: both; clear: both;
} }
.pub {
.ant-modal {
.ant-modal-body {
padding: 0;
.modalHeader {
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}
.modalMain {
.projectname {
color: rgba(79, 81, 86, 1);
font-size: 14px;
line-height: 36px;
margin-left: 62px;
font-weight: 500;
}
.projecttime {
margin-left: 221px;
.timeti {
color: rgba(153, 155, 163, 1);
font-size: 14px;
line-height: 36px;
}
.timeme {
color: rgba(79, 81, 86, 1);
font-size: 14px;
line-height: 36px;
}
}
.projectbox {
margin-top: 26px;
display: flex;
justify-content: center;
.promessage {
width: 280px;
height: 110px;
background: linear-gradient(
180deg,
rgba(254, 243, 221, 1),
rgba(255, 250, 240, 1)
);
border-radius: 10px;
margin-right: 7px;
.messageme {
color: rgba(255, 182, 78, 1);
font-size: 14px;
line-height: 36px;
margin-top: 17px;
margin-left: 30px;
}
.messagege {
color: rgba(153, 155, 163, 1);
font-size: 14px;
margin-left: 30px;
}
}
.stumessage {
width: 280px;
height: 110px;
background: linear-gradient(
180deg,
rgba(221, 234, 255, 1),
rgba(240, 248, 254, 1)
);
border-radius: 10px;
.messageme1 {
color: rgba(78, 166, 255, 1);
font-size: 14px;
line-height: 36px;
margin-top: 17px;
margin-left: 30px;
}
.messagege1 {
color: rgba(153, 155, 163, 1);
font-size: 14px;
margin-left: 30px;
}
}
}
.send {
margin-top: 30px;
margin-left: 61px;
.sendtext {
margin-left: 11px;
color: rgba(109, 117, 132, 1);
font-size: 14px;
}
}
.ckb {
margin-top: 20px;
margin-left: 62px;
.sendpeo {
color: rgba(109, 117, 132, 1);
font-size: 14px;
}
.ant-checkbox-inner {
border-radius: 4px;
}
}
.pubtn {
display: flex;
justify-content: center;
margin-top: 25px;
//margin-bottom: 29px;
.pubtn1 {
width: 100px;
height: 40px;
margin-right: 16px;
margin-bottom: 29px;
border: 1px solid #409eff;
border-radius: 4px;
color: rgba(78, 166, 255, 1);
font-size: 14px;
//line-height: 36px;
align-items: center;
background: rgba(255, 255, 255, 1);
}
.pubtn2 {
width: 100px;
height: 40px;
margin-bottom: 29px;
border: 1px solid #409eff;
border-radius: 4px;
color: #ffffff;
font-size: 14px;
align-items: center;
//line-height: 36px;
background: #409eff;
}
}
}
}
}
}
.CopyModal { .CopyModal {
.ant-modal { .ant-modal {
width: 424px !important; width: 424px !important;
@@ -1931,7 +2432,8 @@ export default {
} }
.moreItems { .moreItems {
width: 110px; width: 110px;
height: 80px; // height: 80px;
padding-bottom: 12px;
display: none; display: none;
background: #ffffff; background: #ffffff;
box-shadow: 2px 3px 9px 3px rgba(0, 0, 0, 0.05); box-shadow: 2px 3px 9px 3px rgba(0, 0, 0, 0.05);

View File

@@ -14,20 +14,72 @@
<img class="img1" src="../../assets/images/leveladd/ma.png" /> <img class="img1" src="../../assets/images/leveladd/ma.png" />
<div class="line"></div> <div class="line"></div>
<img class="img2" src="../../assets/images/leveladd/pub.png" /> <img class="img2" src="../../assets/images/leveladd/pub.png" />
<div class="pub">发布</div> <!-- <div class="pub">发布</div> -->
<!-- 已发布的显示 -->
<div
class="pub"
style="width: 28px"
v-if="action == 1"
@click="showBackModal"
>
{{ act }}
</div>
<!-- 未发布/草稿的显示 -->
<div
class="pub"
style="width: 28px"
v-if="action == 0"
@click="showProjectPub"
>
{{ act }}
</div>
<!-- 已结束的显示 -->
<div class="pub" style="width: 28px" v-if="action == -1">
{{ act }}
</div>
<div class="line"></div> <div class="line"></div>
<img <img
style="margin-right: 15px" style="margin-right: 15px"
class="img2" class="img2"
src="../../assets/images/leveladd/more.png" src="../../assets/images/leveladd/more.png"
/> />
<div class="more"> <!-- <div class="more">
<span style="color: #7096e3; cursor: pointer">更多</span> <span style="color: #7096e3; cursor: pointer">更多</span>
<div class="moreArrow"></div> <div class="moreArrow"></div>
<div class="moreItems"> <div class="moreItems">
<div class="sammo">撤回</div> <div class="sammo">撤回</div>
<div class="sammo">复制</div> <div class="sammo">复制</div>
</div> </div>
</div> -->
<!-- 草稿/未发布的显示 -->
<div class="more" v-if="action == 0">
<span style="color: #7096e3; cursor: pointer">更多</span>
<div class="moreArrow"></div>
<div class="moreItems">
<!-- <div class="sammo">撤回</div> -->
<div class="sammo">复制</div>
<div class="sammo" @click="showStartModal">存为模板</div>
</div>
</div>
<!-- 已发布的显示 -->
<div class="more" v-if="action == 1">
<span style="color: #7096e3; cursor: pointer">更多</span>
<div class="moreArrow"></div>
<div class="moreItems">
<div class="sammo" @click="showStopModal">结束</div>
<div class="sammo">复制</div>
<div class="sammo" @click="showStartModal">存为模板</div>
</div>
</div>
<!-- 已结束的显示 -->
<div class="more" v-if="action == -1">
<span style="color: #7096e3; cursor: pointer">更多</span>
<div class="moreArrow"></div>
<div class="moreItems">
<!-- <div class="sammo">结束</div> -->
<div class="sammo">复制</div>
<div class="sammo" @click="showStartModal">存为模板</div>
</div>
</div> </div>
<div class="line"></div> <div class="line"></div>
<router-link to="/projectmanage"> <router-link to="/projectmanage">
@@ -1484,6 +1536,178 @@
type="课程二维码" type="课程二维码"
/> />
<!-- 二维码弹窗 --> <!-- 二维码弹窗 -->
<!-- 发布弹窗 -->
<a-modal
v-model:visible="projectPub"
:title="null"
:footer="null"
:closable="false"
wrapClassName="projectPub"
width="679px"
height="437px"
>
<div
class="modalHeader"
style="
width: 100%;
height: 68px;
display: flex;
align-items: center;
justify-content: space-between;
"
>
<div class="headerLeft" style="margin-left: 32px">
<span style="width: 15px; height: 15px"
><img src="../../assets/images/taskpage/pub.png"
/></span>
<span
class="headerLeftText"
style="font-size: 16px; margin-left: 10px"
>项目发布</span
>
</div>
<div
style="cursor: pointer; margin-right: 32px"
@click="closeProjectPub"
>
<img
style="width: 22px; height: 22px"
src="../../assets/images/basicinfo/close22.png"
/>
</div>
</div>
<div class="modalMain">
<div class="projectname">{{ releaseProjectName }}</div>
<div class="projecttime" v-if="startTime">
<span class="timeti">项目时间</span
><span class="timeme">{{ startTime }}~{{endTime}}</span>
</div>
<div class="projectbox">
<div class="promessage">
<div class="messageme">项目信息</div>
<div class="messagege">当前项目共0个阶段0个任务</div>
</div>
<div class="stumessage">
<div class="messageme1">学员信息</div>
<div class="messagege1">项目共{{ projectStudentsNum }}名学员</div>
</div>
</div>
<!-- <div class="send">
<a-switch v-model:checked="checked" size="small" />
<span class="sendtext">发送路径通知</span>
</div>
<div class="ckb">
<a-checkbox v-model:checked="checkedTeacher"
><span class="sendpeo">发给老师</span></a-checkbox
>
<a-checkbox v-model:checked="checkStu"
><span class="sendpeo">发给学员</span></a-checkbox
>
</div> -->
<div class="pubtn">
<a-button class="pubtn1" @click="closeProjectPub">取消</a-button>
<a-button class="pubtn2" @click="releaseProject">发布</a-button>
</div>
</div>
</a-modal>
<!-- 撤回弹窗 -->
<a-modal
v-model:visible="backModal"
:footer="null"
:closable="closeBack"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeBackModal"></div>
</div>
<div class="body">
<span>是否撤回项目</span>
<div class="back">项目撤回后学员进度保留发布后可继续学习</div>
</div>
<div class="del_btnbox">
<div class="del_btn btn1" @click="closeBackModal">
<div class="btnText">取消</div>
</div>
<div class="del_btn btn2" @click="recallProject">
<div class="btnText">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 结束项目弹窗 -->
<a-modal
v-model:visible="stopModal"
:footer="null"
:closable="closeStop"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeStopModal"></div>
</div>
<div class="body">
<span>是否结束项目</span>
<div class="back">
项目结束后学员将无法继续学习此操作不可逆
</div>
</div>
<div class="del_btnbox">
<div class="del_btn btn1" @click="closeStopModal">
<div class="btnText">取消</div>
</div>
<div class="del_btn btn2" @click="finishProject">
<div class="btnText">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!-- 存为模版弹窗 -->
<a-modal
v-model:visible="startModal"
:footer="null"
:closable="closeStart"
wrapClassName="CopyModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>提示</span>
<div class="close_exit" @click="closeStartModal"></div>
</div>
<div class="body">
<span>您确定要存为模版吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1" @click="closeStartModal">
<div class="btnText">取消</div>
</div>
<div class="del_btn btn2" @click="templateProject">
<div class="btnText">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
</div> </div>
</template> </template>
<script> <script>
@@ -1509,6 +1733,7 @@ import ProjectScore from "../../components/drawers/ProjectScore";
import TaskImpStu from "../../components/drawers/TaskFaceIn"; import TaskImpStu from "../../components/drawers/TaskFaceIn";
import { storage } from "../../api/storage"; import { storage } from "../../api/storage";
import * as api from "../../api/index1"; import * as api from "../../api/index1";
import * as apiproj from "../../api/index";
import { import {
getProjStu, getProjStu,
deleteStu, deleteStu,
@@ -1698,6 +1923,19 @@ export default {
chooseGroupId: null, chooseGroupId: null,
morFaceT: false, //批量面授报名按钮 morFaceT: false, //批量面授报名按钮
faceArr: [], //任务大纲列表所有name faceArr: [], //任务大纲列表所有name
action: null,
act: null,
projectPub: false, //发布弹窗
projectStudentsNum: 0, //发布弹窗-学员人数
releaseProjectId: null, //发布的项目id
releaseProjectName: null, //发布的项目名称
releaseProjectTime: null, //发布的项目时间
backModal: false, //撤回弹窗
closeBack: false,
stopModal: false,
closeStop: false,
startModal: false,
closeStart: false,
//进度排行表 //进度排行表
jindutabledata: [ jindutabledata: [
{ {
@@ -3159,12 +3397,160 @@ export default {
} }
} }
}; };
const reget = () => {
getTask({
projectId: state.projectId,
}).then((res) => {
state.action = res.data.data.projectInfo.status;
state.act =
state.action == 0
? "发布"
: state.action == 1
? "撤回"
: state.action == -1
? ""
: "-";
});
};
//打开发布弹窗
const showProjectPub = () => {
state.projectPub = true;
state.releaseProjectId = state.projectId;
state.releaseProjectName = state.name;
// state.releaseProjectTime = state.startTime;
// console.log("object", object);
//获取学员总数
let obj = {
pageNo: 0,
pageSize: 0,
projectId: state.projectId,
};
apiproj
.projectStudent(obj)
.then((res) => {
if (res.status === 200) {
// console.log("res", res.data);
state.projectStudentsNum = res.data.data.total
? res.data.data.total
: 0;
}
})
.catch((err) => {
console.log("获取学员人数失败", err);
});
//获取阶段及任务总数
};
//关闭发布弹窗
const closeProjectPub = () => {
state.projectPub = false;
};
//确认发布项目
const releaseProject = () => {
console.log("点击发布");
let obj = {
projectId: state.releaseProjectId,
};
apiproj
.releaseProject(obj)
.then((res) => {
console.log("发布成功", res);
message.destroy();
message.success("发布成功");
state.projectPub = false;
reget();
})
.catch((err) => {
console.log("发布失败", err);
});
};
//打开撤回弹窗
const showBackModal = () => {
state.backModal = true;
};
//关闭撤回弹窗
const closeBackModal = () => {
state.backModal = false;
};
const recallProject = () => {
let obj = {
projectId: state.projectId,
type: 0,
};
apiproj
.handleProject(obj)
.then((res) => {
console.log("撤回成功", res);
message.destroy();
message.success("撤回成功");
state.backModal = false;
reget();
})
.catch((err) => {
console.log("撤回失败", err);
});
};
//关闭结束弹窗
const closeStopModal = () => {
state.stopModal = false;
};
//确认结束
const finishProject = () => {
let obj = {
projectId: state.projectId,
type: -1,
};
apiproj
.handleProject(obj)
.then((res) => {
console.log("结束成功", res);
message.destroy();
message.success("已结束");
state.stopModal = false;
reget();
})
.catch((err) => {
console.log("结束失败", err);
});
};
//打开结束弹窗
const showStopModal = () => {
state.stopModal = true;
};
//打开存为模版弹窗
const showStartModal = () => {
state.startModal = true;
};
//关闭存为模版弹窗
const closeStartModal = () => {
state.startModal = false;
};
//确认存为模版
const templateProject = () => {
let obj = {
projectId: state.projectId,
type: 1,
};
apiproj
.handleProject(obj)
.then((res) => {
console.log("模版保存成功", res);
message.destroy();
message.success("模版保存成功");
state.startModal = false;
reget();
})
.catch((err) => {
console.log("模版保存失败", err);
});
};
onMounted(() => { onMounted(() => {
getStu(); getStu();
getTaskList(); getTaskList();
getTaskInfo(); getTaskInfo();
getGroup(); getGroup();
getOverview(); getOverview();
reget();
}); });
return { return {
...toRefs(state), ...toRefs(state),
@@ -3244,6 +3630,19 @@ export default {
changePaginationStu, changePaginationStu,
handleChange, handleChange,
toEdit, toEdit,
reget,
showProjectPub,
closeProjectPub,
releaseProject,
showBackModal,
closeBackModal,
recallProject,
closeStopModal,
finishProject,
showStopModal,
showStartModal,
closeStartModal,
templateProject,
}; };
}, },
}; };
@@ -3553,6 +3952,133 @@ export default {
} }
} }
.CopyModal {
.ant-modal {
width: 424px !important;
height: 258px !important;
.ant-modal-content {
width: 424px !important;
height: 258px !important;
.ant-modal-body {
width: 424px !important;
height: 258px !important;
padding: 0 !important;
.delete {
z-index: 999;
width: 424px;
height: 258px;
background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
border-radius: 4px;
// position: absolute;
// left: 50%;
// top: 10%;
// transform: translate(-50%, -50%);
.del_header {
position: absolute;
width: calc(100%);
height: 68px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}
.del_main {
width: 100%;
position: relative;
.header {
display: flex;
align-items: center;
padding-top: 20px;
padding-left: 26px;
font-size: 16px;
.icon {
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/coursewareManage/QR.png);
background-size: 100% 100%;
}
.close_exit {
position: absolute;
right: 42px;
cursor: pointer;
width: 20px;
height: 20px;
background-image: url(@/assets/images/coursewareManage/close.png);
background-size: 100% 100%;
}
}
.body {
width: 100%;
margin: 34px auto 56px auto;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
// background-color: red;
position: relative;
.back {
position: absolute;
top: 30px;
font-size: 12px;
font-weight: 400;
color: #666666;
}
}
.del_btnbox {
display: flex;
margin: 30px auto;
justify-content: center;
.del_btn {
width: 100px;
height: 40px;
background: rgba(64, 158, 255, 0);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
cursor: pointer;
.btnText {
font-size: 14px;
font-weight: 400;
line-height: 40px;
}
}
.btn1 {
border: 1px solid rgba(64, 158, 255, 1);
color: #4ea6ff;
margin-right: 14px;
}
.btn2 {
background-color: #4ea6ff;
color: #ffffff;
}
}
}
}
}
}
}
}
.canclestu1 { .canclestu1 {
.ant-modal { .ant-modal {
width: 424px !important; width: 424px !important;
@@ -3784,6 +4310,144 @@ export default {
} }
} }
.projectPub {
.ant-modal {
.ant-modal-body {
padding: 0;
.modalHeader {
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}
.modalMain {
.projectname {
color: rgba(79, 81, 86, 1);
font-size: 14px;
line-height: 36px;
// margin-left: 62px;
font-weight: 500;
text-align: center;
}
.projecttime {
margin-left: 221px;
.timeti {
color: rgba(153, 155, 163, 1);
font-size: 14px;
line-height: 36px;
}
.timeme {
color: rgba(79, 81, 86, 1);
font-size: 14px;
line-height: 36px;
}
}
.projectbox {
margin-top: 26px;
display: flex;
justify-content: center;
.promessage {
width: 280px;
height: 110px;
background: linear-gradient(
180deg,
rgba(254, 243, 221, 1),
rgba(255, 250, 240, 1)
);
border-radius: 10px;
margin-right: 7px;
.messageme {
color: rgba(255, 182, 78, 1);
font-size: 14px;
line-height: 36px;
margin-top: 17px;
margin-left: 30px;
}
.messagege {
color: rgba(153, 155, 163, 1);
font-size: 14px;
margin-left: 30px;
}
}
.stumessage {
width: 280px;
height: 110px;
background: linear-gradient(
180deg,
rgba(221, 234, 255, 1),
rgba(240, 248, 254, 1)
);
border-radius: 10px;
.messageme1 {
color: rgba(78, 166, 255, 1);
font-size: 14px;
line-height: 36px;
margin-top: 17px;
margin-left: 30px;
}
.messagege1 {
color: rgba(153, 155, 163, 1);
font-size: 14px;
margin-left: 30px;
}
}
}
.send {
margin-top: 30px;
margin-left: 61px;
.sendtext {
margin-left: 11px;
color: rgba(109, 117, 132, 1);
font-size: 14px;
}
}
.ckb {
margin-top: 20px;
margin-left: 62px;
.sendpeo {
color: rgba(109, 117, 132, 1);
font-size: 14px;
}
.ant-checkbox-inner {
border-radius: 4px;
}
}
.pubtn {
display: flex;
justify-content: center;
margin-top: 25px;
//margin-bottom: 29px;
.pubtn1 {
width: 100px;
height: 40px;
margin-right: 16px;
margin-bottom: 29px;
border: 1px solid #409eff;
border-radius: 4px;
color: rgba(78, 166, 255, 1);
font-size: 14px;
//line-height: 36px;
align-items: center;
background: rgba(255, 255, 255, 1);
}
.pubtn2 {
width: 100px;
height: 40px;
margin-bottom: 29px;
border: 1px solid #409eff;
border-radius: 4px;
color: #ffffff;
font-size: 14px;
align-items: center;
//line-height: 36px;
background: #409eff;
}
}
}
}
}
}
.facemanageModal { .facemanageModal {
.ant-modal { .ant-modal {
width: 532px !important; width: 532px !important;
@@ -4016,7 +4680,8 @@ export default {
.moreItems { .moreItems {
width: 110px; width: 110px;
height: 80px; // height: 80px;
padding-bottom: 12px;
display: none; display: none;
background: #ffffff; background: #ffffff;
box-shadow: 2px 3px 9px 3px rgba(0, 0, 0, 0.05); box-shadow: 2px 3px 9px 3px rgba(0, 0, 0, 0.05);