feat:增加提交审核以及撤回审核

This commit is contained in:
lixg
2022-11-29 13:18:49 +08:00
parent d51df54728
commit 76bc15d926
10 changed files with 265 additions and 189 deletions

View File

@@ -15,11 +15,11 @@
</div> </div>
</div> </div>
<div id="container" v-if="isLogin"> <div id="container" v-if="isLogin">
<router-view/> <router-view />
</div> </div>
</template> </template>
<script> <script>
import {computed, defineComponent, ref, watch} from "vue"; import { computed, defineComponent, ref, watch } from "vue";
import { useRouter, useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";
import { useStore } from "vuex"; import { useStore } from "vuex";
import NavLeft from "@/components/NavLeft"; import NavLeft from "@/components/NavLeft";
@@ -39,15 +39,19 @@ export default defineComponent({
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
const store = useStore(); const store = useStore();
const isLogin = ref(false) const isLogin = ref(false);
// console.log("router", router.getRoutes(), route); // console.log("router", router.getRoutes(), route);
console.log("版本0.01------------");
const routes = computed(() => { const routes = computed(() => {
return router.getRoutes().filter((e) => e.meta?.isLink); return router.getRoutes().filter((e) => e.meta?.isLink);
}); });
watch(() => route.path, () => { watch(
route.path === '/login' && (isLogin.value = true) () => route.path,
}) () => {
route.path === "/login" && (isLogin.value = true);
}
);
const currentRouteName = computed(() => route.name); const currentRouteName = computed(() => route.name);

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com * @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-21 14:32:52 * @Date: 2022-11-21 14:32:52
* @LastEditors: lixg lixg@dongwu-inc.com * @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-28 14:25:01 * @LastEditTime: 2022-11-29 13:07:24
* @FilePath: /fe-manage/src/api/config.js * @FilePath: /fe-manage/src/api/config.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/ */
@@ -32,8 +32,7 @@ http.interceptors.request.use(
// console.log("当前请求页面无token,请执行操作!!!"); // console.log("当前请求页面无token,请执行操作!!!");
// // 此处测试默认配置token // // 此处测试默认配置token
// config.headers.token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2Njk0Mjk1ODYsImV4cCI6MTY2OTQzNjc4NiwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.e33e1ab87a82079279e3907428dd81076336d53fcb9022891386fed2fa90e0cc"; // config.headers.token = "123456";
// // config.headers.token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NjkzODQ5MTgsImV4cCI6MTY2OTM5MjExOCwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.7c3af587cbacf68180e86681442e06ffd33c65a78fc835aaac34d0c773752d99";
// } // }
return config; return config;
}, },
@@ -53,7 +52,7 @@ http.interceptors.response.use(
if (code === 0 || code === 200) { if (code === 0 || code === 200) {
return response; return response;
} else { } else {
// window.open("https://u-pre.boe.com/web/", '_self'); window.open("https://u-pre.boe.com/web/", '_self');
console.log("api %o", msg); console.log("api %o", msg);
} }
return response; return response;

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com * @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-04 22:45:31 * @Date: 2022-11-04 22:45:31
* @LastEditors: lixg lixg@dongwu-inc.com * @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-28 19:59:10 * @LastEditTime: 2022-11-29 09:52:49
* @FilePath: /fe-manage/src/api/index1.js * @FilePath: /fe-manage/src/api/index1.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/ */
@@ -87,7 +87,17 @@ export const scoreRank = (obj) => http.post("/admin/project/scoreRank", obj);
export const billboard = (obj) => http.post("/admin/project/billboard", obj); export const billboard = (obj) => http.post("/admin/project/billboard", obj);
//项目基础信息----------------------------------- //项目基础信息-----------------------------------
//获取字典信息
//课程----------------------------------------------
// //提交审核
// export const courseHandle = (obj) => http.post('/admin/offcourse/handle', obj)
//课程----------------------------------------------
//公共信息---------------------------------------------------
// 获取字典信息
export const getDict = (obj) => http.post('/dict/getList', obj) export const getDict = (obj) => http.post('/dict/getList', obj)
//获取组织树一级列表 //获取组织树一级列表
export const getOrgTree = (obj) => http.post('/admin/router/orgList', obj) export const getOrgTree = (obj) => http.post('/admin/router/orgList', obj)
@@ -104,11 +114,10 @@ export const getMemberInfo = (obj) => http.post('/admin/orgStruct/getMemberInfo'
export const getAudienceInfo = (obj) => http.post('/admin/orgStruct/getAudienceInfo', obj) export const getAudienceInfo = (obj) => http.post('/admin/orgStruct/getAudienceInfo', obj)
//获取、添加授权(修改版) //获取、添加授权(修改版)
export const optionAuthPerm = (obj) => http.post('/admin/AuthPerm/optionAuthPerm', obj) export const optionAuthPerm = (obj) => http.post('/admin/AuthPerm/optionAuthPerm', obj)
//获取用户登录 //获取用户登录
export const getUser = () => http.post('/admin/CheckUser/login', { withCredentials: true }) export const getUser = () => http.post('/admin/CheckUser/login', { withCredentials: true })
//公共信息---------------------------------------------------
// 获取组织结构树 // 获取组织结构树

View File

@@ -44,7 +44,7 @@
/> />
<span class="signOut">下载</span> <span class="signOut">下载</span>
</div> </div>
<div class="signOutMain"> <div class="signOutMain" @click="logOut">
<img <img
style="width: 27px; height: 27px" style="width: 27px; height: 27px"
src="../assets/images/navtop/signout.png" src="../assets/images/navtop/signout.png"
@@ -115,10 +115,14 @@ export default {
}; };
getUser(); getUser();
const logOut = () => {
window.open("https://u-pre.boe.com/web/", "_self");
};
return { return {
...toRefs(state), ...toRefs(state),
changeRole, changeRole,
showDrawer, showDrawer,
logOut,
}; };
}, },
}; };

View File

@@ -1109,20 +1109,23 @@ export default {
pageSize: state.pageSize2, pageSize: state.pageSize2,
}) })
.then((res) => { .then((res) => {
// console.log("获取学员", res.data);
if (res.data.code === 200) { if (res.data.code === 200) {
console.log("获取学员", res.data); // console.log("获取学员", res.data);
state.tableDataTotal2 = res.data.data.total; state.tableDataTotal2 = res.data.data.total;
return res.data.data.rows; return res.data.data.rows;
} }
}); });
// console.log("item1", item1);
state.tabledata2 = traverseArr(item1, { if (item1) {
key: "id", state.tabledata2 = traverseArr(item1, {
name: "audienceName", key: "id",
createTime: "createTime", name: "audienceName",
countNum: "countNum", createTime: "createTime",
typeName: "typeName", countNum: "countNum",
}); typeName: "typeName",
});
}
}; };
getAudienceInfo(); getAudienceInfo();
//分页获取受众 //分页获取受众

View File

@@ -144,6 +144,10 @@ export default {
type: Number, type: Number,
default: null, default: null,
}, },
classify: {
type: String,
default: null,
},
}, },
setup(props, ctx) { setup(props, ctx) {
@@ -282,7 +286,14 @@ export default {
const optionAuthPerm = () => { const optionAuthPerm = () => {
let obj = { let obj = {
keyWord: state.name ? state.name : "", keyWord: state.name ? state.name : "",
type: 2, type:
props.classify === "learnPath"
? 1
: props.classify === "project"
? 2
: props.classify === "course"
? 3
: null,
tag: 1, tag: 1,
opt: 1, opt: 1,
refId: props.selectProjectId, refId: props.selectProjectId,
@@ -342,7 +353,14 @@ export default {
const cancelAuth = () => { const cancelAuth = () => {
let obj = { let obj = {
keyWord: "", keyWord: "",
type: 2, type:
props.classify === "learnPath"
? 1
: props.classify === "project"
? 2
: props.classify === "course"
? 3
: null,
tag: 1, tag: 1,
opt: 4, opt: 4,
refId: props.selectProjectId, refId: props.selectProjectId,

View File

@@ -662,6 +662,7 @@ export default {
.optionAuthPerm(obj) .optionAuthPerm(obj)
.then((res) => { .then((res) => {
console.log("修改授权成功", res); console.log("修改授权成功", res);
closeDrawer();
}) })
.catch((err) => { .catch((err) => {
console.log("修改授权失败", err); console.log("修改授权失败", err);

View File

@@ -370,13 +370,13 @@
<span style="margin-right: 14px">封面图</span> <span style="margin-right: 14px">封面图</span>
</div> </div>
<div class="item_inp"> <div class="item_inp">
<a-upload <a-upload
name="avatar" name="avatar"
list-type="picture-card" list-type="picture-card"
class="avatar-uploader" class="avatar-uploader"
:show-upload-list="false" :show-upload-list="false"
:before-upload="beforeUpload" :before-upload="beforeUpload"
disabled
> >
<img <img
class="i_upload_img" class="i_upload_img"
@@ -673,7 +673,7 @@
<div class="btnText" @click="handlePush">确定</div> <div class="btnText" @click="handlePush">确定</div>
</div> </div>
<div class="btn btn6"> <div class="btn btn6">
<div class="btnText" @click="submitReview">提交审核</div> <div class="btnText" @click="reviewClick">提交审核</div>
</div> </div>
</div> </div>
</div> </div>
@@ -1745,16 +1745,21 @@
<span style="margin-right: 3px">完成规则</span> <span style="margin-right: 3px">完成规则</span>
</div> </div>
<div class="b_input"> <div class="b_input">
<a-checkbox v-model:checked="regisCom" @click="regisCom =!regisCom"> <a-checkbox
v-model:checked="regisCom"
@click="regisCom = !regisCom"
>
<span style="color: #6d7584">报名即完成</span> <span style="color: #6d7584">报名即完成</span>
</a-checkbox> </a-checkbox>
<a-checkbox v-model:checked="signCom" @click="signCom =!signCom"> <a-checkbox v-model:checked="signCom" @click="signCom = !signCom">
<span style="color: #6d7584">签到即完成</span> <span style="color: #6d7584">签到即完成</span>
</a-checkbox> </a-checkbox>
<a-checkbox v-model:checked="comLeave" @click="comLeave =!comLeave"> <a-checkbox
v-model:checked="comLeave"
@click="comLeave = !comLeave"
>
<span style="color: #6d7584">请假算完成</span> <span style="color: #6d7584">请假算完成</span>
</a-checkbox> </a-checkbox>
</div> </div>
</div> </div>
<div class="cstm_items items_fj"> <div class="cstm_items items_fj">
@@ -3369,9 +3374,9 @@ export default defineComponent({
checked4: false, checked4: false,
offcoursePlanId: 0, offcoursePlanId: 0,
filesList: [], filesList: [],
signCom:false , signCom: false,
regisCom:false, regisCom: false,
comLeave:false, comLeave: false,
studentId: 0, studentId: 0,
studentItem: {}, studentItem: {},
addOnlineCoursevisible: false, //新建面授弹窗 addOnlineCoursevisible: false, //新建面授弹窗
@@ -3453,7 +3458,7 @@ export default defineComponent({
return resolve(true); return resolve(true);
} else { } else {
message.error( message.error(
"图片尺寸错误只能上传800*450(高比例为169)横纵比一致的图片" "图片尺寸错误只能上传800*450(高比例为169)横纵比一致的图片"
); );
return reject(false); return reject(false);
} }
@@ -3760,7 +3765,12 @@ export default defineComponent({
.getDict(obj) .getDict(obj)
.then((res) => { .then((res) => {
console.log("获取字典成功", res); console.log("获取字典成功", res);
if (res.status === 200) { if (res.data.code === 200) {
if (param === "faceclassPic") {
if (res.data.data.rows.length > 0) {
state.imageUrl = res.data.data.rows[0].dictValue;
}
}
if (param === "faceclassClass") { if (param === "faceclassClass") {
let arr = res.data.data.rows; let arr = res.data.data.rows;
let newArr = []; let newArr = [];
@@ -3791,6 +3801,7 @@ export default defineComponent({
}; };
getDictList("faceclassClass"); getDictList("faceclassClass");
getDictList("faceclassScene"); getDictList("faceclassScene");
getDictList("faceclassPic");
//获取分类、场景、教师、----------------字典配置--------------------------- //获取分类、场景、教师、----------------字典配置---------------------------
//渲染学员管理操作 //渲染学员管理操作
@@ -3962,6 +3973,7 @@ export default defineComponent({
const options4CurId = ref(""); const options4CurId = ref("");
const options4CurName = ref("张"); const options4CurName = ref("张");
const of_hShow = () => { const of_hShow = () => {
getTea();
if (state.of_hs == false) { if (state.of_hs == false) {
state.of_hs = true; state.of_hs = true;
} }
@@ -4032,7 +4044,7 @@ export default defineComponent({
state.imgList = []; state.imgList = [];
valueHtml.value = ""; valueHtml.value = "";
}; };
const handlePush = () => { const handlePush = (param) => {
console.log("state.imgList"); console.log("state.imgList");
console.log(state.imgList); console.log(state.imgList);
let files = ""; let files = "";
@@ -4074,6 +4086,11 @@ export default defineComponent({
getTableDate(); getTableDate();
ft_exit(); ft_exit();
rest(); rest();
// console.log("res.data", res.data);
if (param === "review") {
//新建时点击审核按钮
submitReview(res.data.data.offcourseId);
}
} }
}); });
}; };
@@ -4122,12 +4139,18 @@ export default defineComponent({
applyFlag: state.checked1 ? 1 : 0, applyFlag: state.checked1 ? 1 : 0,
attach: state.filesList.length ? state.filesList.join(",") : "", attach: state.filesList.length ? state.filesList.join(",") : "",
beginTime: startTime, beginTime: startTime,
completeType: state.regisCom?"1,":"0,"+state.signCom?"1,":"0,"+state.comLeave?"1":"0", completeType: state.regisCom
? "1,"
: "0," + state.signCom
? "1,"
: "0," + state.comLeave
? "1"
: "0",
endTime: endTime, endTime: endTime,
evalFlag: state.checked4 ? 1 : 0, evalFlag: state.checked4 ? 1 : 0,
name: state.xjkkinputV1, name: state.xjkkinputV1,
signFlag: state.xjkkradioV1 === 0 ? 1 : 0, //是否允许未报名的签到:1是0否 signFlag: state.xjkkradioV1 === 0 ? 1 : 0, //是否允许未报名的签到:1是0否
// signWordFlag: state.xjkkradioV1 === 1 ? 1 : 0, //签到是否需要口令:1是0否 // signWordFlag: state.xjkkradioV1 === 1 ? 1 : 0, //签到是否需要口令:1是0否
teacherId: state.xjkkinputV4 ? state.xjkkinputV4 : 1, teacherId: state.xjkkinputV4 ? state.xjkkinputV4 : 1,
}; };
console.log(postData); console.log(postData);
@@ -4170,11 +4193,17 @@ export default defineComponent({
dayjs(item.endTime, "YYYY/MM/DD"), dayjs(item.endTime, "YYYY/MM/DD"),
]; ];
options4CurId.value = item.teacherId; options4CurId.value = item.teacherId;
state.regisCom = item.completeType.split(",")[0]==1?true:false, (state.regisCom = item.completeType.split(",")[0] == 1 ? true : false),
state.signCom = item.completeType.split(",")[1]==1?true:false, (state.signCom = item.completeType.split(",")[1] == 1 ? true : false),
state.comLeave = item.completeType.split(",")[2]==1?true:false, (state.comLeave = item.completeType.split(",")[2] == 1 ? true : false),
state.completeType = state.regisCom?"1,":"0,"+state.signCom?"1,":"0,"+state.comLeave?"1":"0", (state.completeType = state.regisCom
state.checked4 = item.evalFlag === 1 ? true : false; ? "1,"
: "0," + state.signCom
? "1,"
: "0," + state.comLeave
? "1"
: "0"),
(state.checked4 = item.evalFlag === 1 ? true : false);
state.xjkkinputV1 = item.name; state.xjkkinputV1 = item.name;
if (item.signFlag === 1) { if (item.signFlag === 1) {
//是否允许未报名的签到:1是0否 //是否允许未报名的签到:1是0否
@@ -4495,14 +4524,20 @@ export default defineComponent({
}); });
}; };
const getTea = async () => { const getTea = async () => {
console.log("获取授课教师信息");
const item1 = await getMemberInfoApi({ const item1 = await getMemberInfoApi({
pageNo: state.currentPageTea1, pageNo: state.currentPageTea1,
pageSize: state.pageSizeTea1, pageSize: state.pageSizeTea1,
keyWord: options4CurName.value, keyWord: options4CurName.value,
id: options4CurId.value ? options4CurId.value : null, id: options4CurId.value ? options4CurId.value : null,
}).then((res) => { })
if (res.data.code === 200) return res.data.data; .then((res) => {
}); console.log("获取授课教师", res);
if (res.data.code === 200) return res.data.data;
})
.catch((err) => {
console.log("获取授课教师失败", err);
});
const { rows, total } = item1; const { rows, total } = item1;
state.tableDataTotalTea1 = total; state.tableDataTotalTea1 = total;
state.tableDataTotalTea2 = total; state.tableDataTotalTea2 = total;
@@ -4751,16 +4786,31 @@ export default defineComponent({
}; };
//提交审核 //提交审核
const submitReview = () => { const reviewClick = () => {
console.log("ft_eidt", state.ft_eidt); console.log("ft_eidt", state.ft_eidt);
// if (state.ft_eidt) { if (state.ft_eidt) {
// //编辑面授课 //编辑面授课
// } submitReview();
}
if (!state.ft_eidt) { if (!state.ft_eidt) {
//新建面授课 //shouke
handlePush(); handlePush("review");
} }
}; };
const submitReview = (id) => {
let obj = {
offcourseId: id ? id : state.offcourseId,
type: 1,
};
console.log("提交审核参数", obj);
handle(obj).then((res) => {
console.log("提交审核成功", res.data);
if (res.data.code === 200) {
getTableDate();
}
});
};
return { return {
...toRefs(state), ...toRefs(state),
getdateToDateFn, getdateToDateFn,
@@ -4861,6 +4911,7 @@ export default defineComponent({
handleChangeTea2, handleChangeTea2,
handelChangePageTea2, handelChangePageTea2,
submitReview, submitReview,
reviewClick,
}; };
}, },
}); });

View File

@@ -161,15 +161,26 @@
</div> </div>
<div class="inname">归属组织</div> <div class="inname">归属组织</div>
<div class="select in"> <div class="select in">
<a-select <a-tree-select
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
v-model:value="organizationSelectName" v-model:value="organizationSelectName"
style="width: 270px" style="width: 270px"
placeholder="请选择组织" placeholder="请选择组织"
:tree-data="organizationList"
:options="organizationList" :options="organizationList"
@change="selectorganization" @change="selectorganization"
allowClear allowClear
showSearch showSearch
></a-select> :fieldNames="{
children: 'treeChildList',
label: 'name',
value: 'id',
}"
></a-tree-select>
</div> </div>
<!-- <div class="in"> <!-- <div class="in">
<a-input <a-input
@@ -199,10 +210,10 @@
class="learnBgItem" class="learnBgItem"
:style="{ :style="{
border: border:
learnPathBg === item.id learnPathBg === item.dictCode
? '2px solid rgba(78, 166, 255, 1)' ? '2px solid rgba(78, 166, 255, 1)'
: '1px solid #C7CBD2', : '1px solid #C7CBD2',
'background-image': 'url(' + item.source + ')', 'background-image': 'url(' + item.dictValue + ')',
display: index >= 5 ? 'none' : 'flex', display: index >= 5 ? 'none' : 'flex',
}" }"
></div> ></div>
@@ -284,15 +295,26 @@
</div> </div>
<div class="inname">归属组织</div> <div class="inname">归属组织</div>
<div class="select in"> <div class="select in">
<a-select <a-tree-select
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
v-model:value="organizationSelectName" v-model:value="organizationSelectName"
style="width: 270px" style="width: 270px"
placeholder="请选择组织" placeholder="请选择组织"
:options="organizationList" :options="organizationList"
:tree-data="organizationList"
@change="selectorganization" @change="selectorganization"
allowClear allowClear
showSearch showSearch
></a-select> :fieldNames="{
children: 'treeChildList',
label: 'name',
value: 'id',
}"
></a-tree-select>
</div> </div>
<!-- <div class="in"> <!-- <div class="in">
<a-input <a-input
@@ -322,10 +344,10 @@
class="learnBgItem" class="learnBgItem"
:style="{ :style="{
border: border:
learnPathBg2 === item.id learnPathBg2 === item.dictCode
? '2px solid rgba(78, 166, 255, 1)' ? '2px solid rgba(78, 166, 255, 1)'
: '1px solid #ccc', : '1px solid #ccc',
'background-image': 'url(' + item.source + ')', 'background-image': 'url(' + item.dictValue + ')',
display: index >= 5 ? 'none' : 'flex', display: index >= 5 ? 'none' : 'flex',
}" }"
> >
@@ -666,7 +688,7 @@
</div> </div>
</template> </template>
<script> <script>
import { reactive, toRefs, onMounted, watch } from "vue"; import { reactive, toRefs, onMounted, watch, computed } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
// import OwnerShip from "../../components/drawers/Ownership"; // import OwnerShip from "../../components/drawers/Ownership";
// import PowerList from "../../components/drawers/PowerList"; // import PowerList from "../../components/drawers/PowerList";
@@ -683,6 +705,7 @@ import {
// setCookie // setCookie
} from "../../api/method"; } from "../../api/method";
import { storage } from "../../api/storage"; import { storage } from "../../api/storage";
import { useStore } from "vuex";
export default { export default {
name: "learningPath", name: "learningPath",
components: { components: {
@@ -697,6 +720,7 @@ export default {
}, },
setup() { setup() {
const store = useStore();
const router = useRouter(); const router = useRouter();
const state = reactive({ const state = reactive({
out: false, out: false,
@@ -720,94 +744,10 @@ export default {
pageSize: 10, //每页10条数据 pageSize: 10, //每页10条数据
imgData: [ imgData: [
{ // {
id: 1, // id: 1,
source: require("../../assets/images/leveladd/1.png"), // source: require("../../assets/images/leveladd/1.png"),
}, // },
{
id: 2,
source: require("../../assets/images/leveladd/2.png"),
},
{
id: 3,
source: require("../../assets/images/leveladd/3.png"),
},
{
id: 4,
source: require("../../assets/images/leveladd/2.png"),
},
{
id: 5,
source: require("../../assets/images/leveladd/3.png"),
},
{
id: 6,
source: require("../../assets/images/leveladd/3.png"),
},
{
id: 7,
source: require("../../assets/images/leveladd/2.png"),
},
{
id: 5,
source: require("../../assets/images/leveladd/3.png"),
},
{
id: 6,
source: require("../../assets/images/leveladd/3.png"),
},
{
id: 7,
source: require("../../assets/images/leveladd/2.png"),
},
{
id: 5,
source: require("../../assets/images/leveladd/3.png"),
},
{
id: 6,
source: require("../../assets/images/leveladd/3.png"),
},
{
id: 7,
source: require("../../assets/images/leveladd/2.png"),
},
{
id: 5,
source: require("../../assets/images/leveladd/3.png"),
},
{
id: 6,
source: require("../../assets/images/leveladd/3.png"),
},
{
id: 7,
source: require("../../assets/images/leveladd/2.png"),
},
{
id: 5,
source: require("../../assets/images/leveladd/3.png"),
},
{
id: 6,
source: require("../../assets/images/leveladd/3.png"),
},
{
id: 7,
source: require("../../assets/images/leveladd/2.png"),
},
{
id: 5,
source: require("../../assets/images/leveladd/3.png"),
},
{
id: 6,
source: require("../../assets/images/leveladd/3.png"),
},
{
id: 7,
source: require("../../assets/images/leveladd/2.png"),
},
], ],
learnPathBg: null, //创建路径选择的路径图背景 learnPathBg: null, //创建路径选择的路径图背景
learnPathBg2: null, //编辑路径选择的路径图背景 learnPathBg2: null, //编辑路径选择的路径图背景
@@ -836,26 +776,11 @@ export default {
//创建、编辑------------------------- //创建、编辑-------------------------
pathName: "", //创建/编辑路径图名称 pathName: "", //创建/编辑路径图名称
organizationList: [ organizationList: [
{ // {
id: 1, // id: 1,
value: "组织一", // value: "组织一",
label: "组织一", // label: "组织一",
}, // },
{
id: 2,
value: "组织二",
label: "组织二",
},
{
id: 3,
value: "组织三",
label: "组织三",
},
{
id: 4,
value: "组织四",
label: "组织四",
},
], //归属组织 ], //归属组织
organizationSelectName: null, //归属组织选择名称 organizationSelectName: null, //归属组织选择名称
organizationSelectId: null, //归属组织选择id organizationSelectId: null, //归属组织选择id
@@ -907,6 +832,12 @@ export default {
addAuthList: null, //确定授权列表 addAuthList: null, //确定授权列表
authClassify: null, //显示的是管理权还是查看权 authClassify: null, //显示的是管理权还是查看权
}); });
//归属组织
state.organizationList = computed(() => {
return store.state.orgtreeList ? store.state.orgtreeList : [];
});
const selectProjectName = (value, index) => { const selectProjectName = (value, index) => {
console.log("value", value, index); console.log("value", value, index);
}; };
@@ -934,11 +865,11 @@ export default {
}; };
const chooseImg = (item) => { const chooseImg = (item) => {
// console.log(item); // console.log(item);
state.learnPathBg = item.id; state.learnPathBg = item.dictCode;
}; };
const chooseImg2 = (item) => { const chooseImg2 = (item) => {
// console.log(item); // console.log(item);
state.learnPathBg2 = item.id; state.learnPathBg2 = item.dictCode;
}; };
//发布弹窗 //发布弹窗
const showPub = (routerId) => { const showPub = (routerId) => {
@@ -1089,12 +1020,12 @@ export default {
state.selectPathId = id; state.selectPathId = id;
}; };
const showQuery = (id) => { const showQuery = (id) => {
state.authClassify = 2; state.authClassify = 1;
state.selectPathId = id; state.selectPathId = id;
state.Queryvisible = true; state.Queryvisible = true;
}; };
const showManage = (id) => { const showManage = (id) => {
state.authClassify = 1; state.authClassify = 2;
state.selectPathId = id; state.selectPathId = id;
state.Managevisible = true; state.Managevisible = true;
}; };
@@ -1545,8 +1476,8 @@ export default {
api api
.getLearnPath(obj) .getLearnPath(obj)
.then((res) => { .then((res) => {
if (res.status === 200) { if (res.data.code === 200) {
console.log("获取路径列表数据", res.data.data); console.log("获取路径列表数据", res.data);
let arr = res.data.data.rows; let arr = res.data.data.rows;
if ( if (
arr.length === 0 && arr.length === 0 &&
@@ -1685,6 +1616,28 @@ export default {
// } // }
// choiceEvaluation() // choiceEvaluation()
//字典获取路径图背景
const getDictList = (param) => {
let obj = {
pageNo: 1,
pageSize: 20,
setCode: param,
};
api
.getDict(obj)
.then((res) => {
console.log("获取字典成功", res);
if (res.status === 200) {
if (param === "pathmapPic") {
state.imgData = res.data.data.rows;
}
}
})
.catch((err) => {
console.log("获取字典失败", err);
});
};
getDictList("pathmapPic");
//显示更多路径背景弹窗 //显示更多路径背景弹窗
const showLearnBgMore = () => { const showLearnBgMore = () => {
state.learnBgMore = true; state.learnBgMore = true;
@@ -1709,7 +1662,7 @@ export default {
opt: 3, opt: 3,
deptList: res[1], deptList: res[1],
groupList: res[2], groupList: res[2],
refId: state.selectProjectId, refId: state.selectPathId,
pageNo: 20, pageNo: 20,
pageSize: 1, pageSize: 1,
studentList: res[0], studentList: res[0],
@@ -1900,7 +1853,7 @@ export default {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
min-height: 110px; min-height: 110px;
height: 300px; max-height: 300px;
.learnBgItem { .learnBgItem {
border-radius: 8px; border-radius: 8px;
width: 136px; width: 136px;

View File

@@ -1270,6 +1270,8 @@ export default {
deleteProjectId: null, //删除的项目id deleteProjectId: null, //删除的项目id
templateProjectId: null, //存为模版的项目id templateProjectId: null, //存为模版的项目id
copyProjectId: null, //复制项目id copyProjectId: null, //复制项目id
reviewId: null, //提交审核id
recallReviewId: null, //撤回审核id
selectProjectId: null, //选择的授权id selectProjectId: null, //选择的授权id
@@ -2212,13 +2214,29 @@ export default {
}; };
//打开提交审核弹窗 //打开提交审核弹窗
const showReviewModal = () => { const showReviewModal = (projectId) => {
state.reviewModal = true; state.reviewModal = true;
state.reviewId = projectId;
}; };
//确认提交审核 //确认提交审核
const reviewProject = () => { const reviewProject = () => {
state.reviewModal = false; let obj = {
message.success("提交成功"); projectId: state.reviewId,
type: 3,
};
console.log("提交审核obj", obj);
api
.handleProject(obj)
.then((res) => {
console.log("提交成功", res);
message.destroy();
message.success("提交成功");
state.reviewModal = false;
getTableDate();
})
.catch((err) => {
console.log("提交失败", err);
});
}; };
//关闭提交审核弹窗 //关闭提交审核弹窗
const closeReviewModal = () => { const closeReviewModal = () => {
@@ -2226,13 +2244,29 @@ export default {
}; };
//打开撤回审核弹窗 //打开撤回审核弹窗
const showRecallReviewModal = () => { const showRecallReviewModal = (projectId) => {
state.recallReviewModal = true; state.recallReviewModal = true;
state.recallReviewId = projectId;
}; };
//确认提交审核 //确认撤回审核
const recallReviewProject = () => { const recallReviewProject = () => {
state.recallReviewModal = false; let obj = {
message.success("撤回成功"); projectId: state.recallReviewId,
type: -3,
};
console.log("撤回成功obj", obj);
api
.handleProject(obj)
.then((res) => {
console.log("撤回成功", res);
message.destroy();
message.success("撤回成功");
state.recallReviewModal = false;
getTableDate();
})
.catch((err) => {
console.log("撤回成功", err);
});
}; };
//关闭提交审核弹窗 //关闭提交审核弹窗
const closeRecallReviewModal = () => { const closeRecallReviewModal = () => {
@@ -3090,7 +3124,7 @@ export default {
{value.record.status === 0 || value.record.status === -2 ? ( {value.record.status === 0 || value.record.status === -2 ? (
<span <span
onClick={() => { onClick={() => {
showReviewModal(); showReviewModal(value.record.projectId);
}} }}
style="cursor:pointer" style="cursor:pointer"
class="operation3" class="operation3"
@@ -3100,7 +3134,7 @@ export default {
) : value.record.status === 1 ? ( ) : value.record.status === 1 ? (
<span <span
onClick={() => { onClick={() => {
showRecallReviewModal(); showRecallReviewModal(value.record.projectId);
}} }}
style="cursor:pointer" style="cursor:pointer"
class="operation3" class="operation3"