feat:合并

This commit is contained in:
lixg
2022-12-13 22:01:08 +08:00
14 changed files with 167 additions and 128 deletions

1
.gitignore vendored
View File

@@ -26,3 +26,4 @@ package-lock.json
src/api/config.js src/api/config.js
src/api/config.js src/api/config.js
src/api/config.js src/api/config.js
src/api/config.js

View File

@@ -70,7 +70,7 @@ export default {
href: "/leveladd", href: "/leveladd",
}, },
{ {
name: "管理", name: "关卡",
}, },
]; ];
} }

View File

@@ -143,32 +143,32 @@
style="overflow-y: auto" style="overflow-y: auto"
> >
<div class="tab2"> <div class="tab2">
<div class="nameinp"> <!-- <div class="nameinp">-->
<div class="namee">组织</div> <!-- <div class="namee">组织</div>-->
<a-input <!-- <a-input-->
v-model:value="searchOrgName" <!-- v-model:value="searchOrgName"-->
style="width: 230px; height: 40px; border-radius: 8px" <!-- style="width: 230px; height: 40px; border-radius: 8px"-->
placeholder="请输入组织" <!-- placeholder="请输入组织"-->
/> <!-- />-->
</div> <!-- </div>-->
<div class="btns"> <!-- <div class="btns">-->
<div class="btn1" @click="searchOrg()"> <!-- <div class="btn1" @click="searchOrg()">-->
<div class="img1"> <!-- <div class="img1">-->
<img <!-- <img-->
src="../../assets/images/courseManage/search0.png" <!-- src="../../assets/images/courseManage/search0.png"-->
/> <!-- />-->
</div> <!-- </div>-->
<div class="wz">搜索</div> <!-- <div class="wz">搜索</div>-->
</div> <!-- </div>-->
<div class="btn2" @click="resetOrg"> <!-- <div class="btn2" @click="resetOrg">-->
<div class="img2"> <!-- <div class="img2">-->
<img <!-- <img-->
src="../../assets/images/courseManage/reset1.png" <!-- src="../../assets/images/courseManage/reset1.png"-->
/> <!-- />-->
</div> <!-- </div>-->
<div class="wz">重置</div> <!-- <div class="wz">重置</div>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<!-- <div class="t1"> <!-- <div class="t1">
<div class="organize">姓名</div> <div class="organize">姓名</div>
<a-input <a-input
@@ -306,7 +306,6 @@
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true" expandRowByClick="true"
:scroll="{ x: 500 }" :scroll="{ x: 500 }"
@expand="expandTable"
:pagination="false" :pagination="false"
:row-selection="{ :row-selection="{
columnWidth: 30, columnWidth: 30,
@@ -479,7 +478,7 @@
<div <div
class="chose" class="chose"
v-for="item in relationpeople" v-for="item in relationpeople"
:key="item.key" :key="item.id"
> >
<div>{{ item.name }}</div> <div>{{ item.name }}</div>
<div class="ch" @click="deleteChoosePeople2(item)"></div> <div class="ch" @click="deleteChoosePeople2(item)"></div>
@@ -1298,7 +1297,7 @@ export default {
let chooseorganization1 = []; let chooseorganization1 = [];
state.chooseorganization1.map((value) => { state.chooseorganization1.map((value) => {
let obj = { let obj = {
id: value.key, id: value.id,
name: value.name, name: value.name,
}; };
chooseorganization1.push(obj); chooseorganization1.push(obj);

View File

@@ -162,43 +162,47 @@ export default {
const tableDataFunc = () => { const tableDataFunc = () => {
{ {
const columns = [ const columns = [
{ // {
title: "序号", // title: "序号",
dataIndex: "paperId", // dataIndex: "paperId",
key: "paperId", // key: "paperId",
width: 90, // width: 90,
align: "center", // align: "center",
className: "h head", // className: "h head",
}, // },
{ {
title: "试卷名称", title: "试卷名称",
dataIndex: "testName", dataIndex: "testName",
key: "testName", key: "testName",
width: 110, width: "40%",
align: "center", align: "center",
className: "h head", className: "h head",
ellipsis: true,
}, },
{ {
title: "随机模式", title: "随机模式",
dataIndex: "paperMode", dataIndex: "paperMode",
key: "paperMode", key: "paperMode",
width: 110, width: "20%",
align: "center", align: "center",
className: "h", className: "h",
ellipsis: true,
}, },
{ {
title: "创建人", title: "创建人",
dataIndex: "sysCreateBy", dataIndex: "sysCreateBy",
key: "sysCreateBy", key: "sysCreateBy",
width: 90, width: "20%",
align: "center", align: "center",
className: "h", className: "h",
ellipsis: true,
}, },
{ {
title: "最近更新时间", title: "最近更新时间",
dataIndex: "sysUpdateTime", dataIndex: "sysUpdateTime",
key: "sysUpdateTime", key: "sysUpdateTime",
width: 150, ellipsis: true,
width: "20%",
align: "center", align: "center",
className: "h", className: "h",
}, },
@@ -248,7 +252,7 @@ export default {
published: true, published: true,
}; };
api api
.queryExaminationList(obj) .queryExaminationPaperList(obj)
.then((data) => { .then((data) => {
// getTableDate(res.data.data); // getTableDate(res.data.data);
//** 表格repaint */ //** 表格repaint */
@@ -257,10 +261,10 @@ export default {
let obj = { let obj = {
key: index + 1, key: index + 1,
sysCreateBy: value.sysCreateBy, sysCreateBy: value.sysCreateBy,
paperId: index + 1, paperId:value.id,
testName: value.testName, testName: value.testName,
paperMode: value.randomMode ? "" : "", paperMode: value.paperMode==1?"固定试卷":"随机",
sysUpdateTime: value.sysUpdateTime, sysUpdateTime:value.sysUpdateTime,
id:value.id, id:value.id,
}; };
array.push(obj); array.push(obj);

View File

@@ -73,7 +73,7 @@ function validateProName() {
display: inline-block; display: inline-block;
width: 99%; width: 99%;
min-width: 0; min-width: 0;
padding: 0px 17px; padding: 0px 8px;
color: rgba(0, 0, 0, 0.85); color: rgba(0, 0, 0, 0.85);
font-size: 14px; font-size: 14px;
line-height: 1.5715; line-height: 1.5715;

View File

@@ -1967,6 +1967,7 @@
</a-checkbox> </a-checkbox>
</div> </div>
</div> </div>
<div class="cstm_items"> <div class="cstm_items">
<div class="signbox"> <div class="signbox">
<span style="margin-right: 3px">签到设置</span> <span style="margin-right: 3px">签到设置</span>
@@ -1978,12 +1979,15 @@
是否允许未报名的学员签到 是否允许未报名的学员签到
</span> </span>
</a-radio> </a-radio>
<!--
<a-radio :value="1" @click="clear_xjkkradioV1"> <a-radio :value="1" @click="clear_xjkkradioV1">
<span style="color: #6d7584">签到是否需要口令</span> <span style="color: #6d7584">签到是否需要口令</span>
</a-radio> </a-radio>-->
</a-radio-group> </a-radio-group>
</div> </div>
</div> </div>
<div class="cstm_items"> <div class="cstm_items">
<div class="signbox"> <div class="signbox">
<span style="margin-right: 3px">评估设置</span> <span style="margin-right: 3px">评估设置</span>
@@ -5074,7 +5078,7 @@ export default defineComponent({
completeType: item.completeType, completeType: item.completeType,
endTime: new Date(item.endTime) / 1000, endTime: new Date(item.endTime) / 1000,
evalFlag: item.evalFlag, evalFlag: item.evalFlag,
name: item.name + "1", name: item.name + "(1)",
signFlag: item.signFlag, //是否允许未报名的签到:1是0否 signFlag: item.signFlag, //是否允许未报名的签到:1是0否
//signWordFlag: item.signWordFlag, //签到是否需要口令:1是0否 //signWordFlag: item.signWordFlag, //签到是否需要口令:1是0否
teacherId: item.teacherId, teacherId: item.teacherId,
@@ -5100,7 +5104,7 @@ export default defineComponent({
}); });
const postData = { const postData = {
offcourseId: null, //不传代表新增 offcourseId: null, //不传代表新增
name: item.name + "1", name: item.name + "(1)",
picUrl: item.picUrl, picUrl: item.picUrl,
targetUser: item.targetUser, targetUser: item.targetUser,
meaning: item.meaning, meaning: item.meaning,

View File

@@ -426,7 +426,7 @@ export default defineComponent({
hideshow: true, hideshow: true,
ft_eidt: false, ft_eidt: false,
attach: "", attach: "",
validate:false, validate:true,
ft_hs: false, ft_hs: false,
addLoading: false, addLoading: false,
statusJuJue: 0, statusJuJue: 0,

View File

@@ -14,6 +14,7 @@
<div class="tmplh_inp"> <div class="tmplh_inp">
<div class="inpbox"> <div class="inpbox">
<div class="inpbox1"> <div class="inpbox1">
<!--
<a-select <a-select
v-model:value="valueproj" v-model:value="valueproj"
value-key="value" value-key="value"
@@ -21,7 +22,27 @@
{ label: '请选择内容分类', value: '' }, { label: '请选择内容分类', value: '' },
...calssifyList, ...calssifyList,
]" ]"
/> />-->
<a-tree-select
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
v-model:value="valueproj"
show-search
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
placeholder="请选择内容分类"
allow-clear
tree-default-expand-all
:tree-data="options2222"
>
<template #title="{ value: val, title }">
<b v-if="val === '11111'" style="color: #08c">sss</b>
<template v-else>{{ title }}</template>
</template>
</a-tree-select>
</div> </div>
<div class="inpbox1"> <div class="inpbox1">
<a-input <a-input
@@ -140,7 +161,7 @@ export default {
setup() { setup() {
const state = reactive({ const state = reactive({
calssifyList: [], //分类字典 calssifyList: [], //分类字典
valueproj: "", valueproj:null,
valuecreater: "", valuecreater: "",
valuename: "", valuename: "",
currentPage: 1, currentPage: 1,

View File

@@ -16,7 +16,7 @@
<div class="inpbox1"> <div class="inpbox1">
<!-- <!--
<a-select <a-select
v-model:value="categoryId" v-model:value="valueproj"
:options="[ :options="[
{ label: '请选择内容分类', value: '' }, { label: '请选择内容分类', value: '' },
...calssifyList, ...calssifyList,
@@ -28,11 +28,12 @@
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" "
v-model:value="categoryId" v-model:value="valueproj"
show-search show-search
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
placeholder="请选择内容分类" placeholder="请选择内容分类"
allow-clear
tree-default-expand-all tree-default-expand-all
:tree-data="options2222" :tree-data="options2222"
> >
@@ -213,7 +214,7 @@ export default {
}, },
], ],
calssifyList: [], //分类字典 calssifyList: [], //分类字典
categoryId: "", valueproj:null,
valuecreater: "", valuecreater: "",
valuename: "", valuename: "",
// currentFacePage: 1, // currentFacePage: 1,
@@ -488,7 +489,7 @@ export default {
state.loading=true state.loading=true
let objn = { let objn = {
auditStatus: 1, auditStatus: 1,
categoryId: state.categoryId, categoryId: state.valueproj,
createName: state.valuecreater, createName: state.valuecreater,
name: state.valuename, name: state.valuename,
pageNo: state.currentPage, pageNo: state.currentPage,
@@ -557,7 +558,7 @@ export default {
const searchList = () => { const searchList = () => {
let objn = { let objn = {
auditStatus: 1, auditStatus: 1,
categoryId: state.categoryId, categoryId: state.valueproj,
createName: state.valuecreater, createName: state.valuecreater,
name: state.valuename, name: state.valuename,
pageNo: state.currentPage, pageNo: state.currentPage,
@@ -622,7 +623,7 @@ export default {
state.tableData1 = array; state.tableData1 = array;
}; };
const reset = () => { const reset = () => {
state.categoryId = ""; state.valueproj = "";
state.valuecreater = null; state.valuecreater = null;
state.valuename = null; state.valuename = null;
getFaceList(); getFaceList();

View File

@@ -203,6 +203,7 @@
<!-- <img class="im" src="../../assets/px.jpg" /> <!-- <img class="im" src="../../assets/px.jpg" />
<img class="im" src="../../assets/px.jpg" /> <img class="im" src="../../assets/px.jpg" />
<img class="im" src="../../assets/px.jpg" /> --> <img class="im" src="../../assets/px.jpg" /> -->
<div <div
@click="chooseImg(item)" @click="chooseImg(item)"
v-for="(item, index) in imgData" v-for="(item, index) in imgData"
@@ -331,6 +332,7 @@
<!-- <img class="im" src="../../assets/px.jpg" /> <!-- <img class="im" src="../../assets/px.jpg" />
<img class="im" src="../../assets/px.jpg" /> <img class="im" src="../../assets/px.jpg" />
<img class="im" src="../../assets/px.jpg" /> --> <img class="im" src="../../assets/px.jpg" /> -->
<div <div
@click="chooseImg2(item)" @click="chooseImg2(item)"
v-for="(item, index) in imgData" v-for="(item, index) in imgData"
@@ -747,12 +749,6 @@ export default {
tableDataTotal: -1, //学习路径列表总数 tableDataTotal: -1, //学习路径列表总数
pageSize: 10, //每页10条数据 pageSize: 10, //每页10条数据
imgData: [
// {
// id: 1,
// source: require("../../assets/images/leveladd/1.png"),
// },
],
// learnPathBg: null, //创建路径选择的路径图背景 // learnPathBg: null, //创建路径选择的路径图背景
// learnPathBg2: null, //编辑路径选择的路径图背景 // learnPathBg2: null, //编辑路径选择的路径图背景
pub: false, //发布弹窗 pub: false, //发布弹窗
@@ -861,15 +857,17 @@ export default {
state.pathName = ""; state.pathName = "";
state.pathBg = ""; state.pathBg = "";
state.pathBgId = ""; state.pathBgId = "";
state.organizationSelectName = store.state.userInfo.departId; if(store.state.userInfo.departId && store.state.userInfo.departName){
state.organizationSelectId = store.state.userInfo.departName; state.organizationSelectName = store.state.userInfo.departName;
state.organizationSelectId = store.state.userInfo.departId;
}
state.pathIntro = ""; state.pathIntro = "";
state.out = !state.out; state.out = !state.out;
}; };
const handleOut1 = () => { const handleOut1 = () => {
state.pathName = ""; state.pathName = "";
state.pathBg = ""; state.pathBg = "";
state.pathBgId = ""; state.pathBgId =1;
state.organizationSelectName = null; state.organizationSelectName = null;
state.organizationSelectId = null; state.organizationSelectId = null;
state.pathIntro = ""; state.pathIntro = "";
@@ -1624,14 +1622,21 @@ export default {
state.organizationSelectId = detail.organizationId; state.organizationSelectId = detail.organizationId;
state.pathIntro = detail.remark; state.pathIntro = detail.remark;
state.editPathId = id; state.editPathId = id;
// console.log("state.imgData", state.imgData); let arr = imgData.value;
let arr = state.imgData; arr.forEach((item) => {
for (let i = 0; i < arr.length; i++) { if (item.dictValue === state.pathBg) {
state.pathBgId = item.dictCode;
}
});
//for (let i = 0; i < arr.length; i++) {
// console.log("arr[i].dictValue", arr[i].dictValue, state.pathBg); // console.log("arr[i].dictValue", arr[i].dictValue, state.pathBg);
if (arr[i].dictValue === state.pathBg) { // if (arr[i].dictValue === state.pathBg) {
state.pathBgId = arr[i].dictCode; // state.pathBgId = arr[i].dictCode;
}
} // }
// }
} }
}) })
.catch((err) => { .catch((err) => {
@@ -1782,6 +1787,7 @@ export default {
// }; // };
// getDictList("pathmapPic"); // getDictList("pathmapPic");
//显示更多路径背景弹窗 //显示更多路径背景弹窗
const showLearnBgMore = () => { const showLearnBgMore = () => {
state.learnBgMore = true; state.learnBgMore = true;
}; };
@@ -1792,11 +1798,12 @@ export default {
onMounted(() => { onMounted(() => {
// console.log("执行"); // console.log("执行");
getLearnPath(); getLearnPath();
if (store.state.pathmapPic.length > 0) { // if (store.state.pathmapPic.length > 0) {
console.log("store.state.pathmapPic", store.state.pathmapPic); // console.log("store.state.pathmapPic", store.state.pathmapPic);
state.imgData = store.state.pathmapPic; // state.imgData = ;
} // }
}); });
const imgData = computed(()=>store.state.pathmapPic)
//添加权限 //添加权限
watch( watch(
() => state.addAuthList, () => state.addAuthList,
@@ -1830,6 +1837,7 @@ export default {
return { return {
...toRefs(state), ...toRefs(state),
imgData,
selectProjectName, selectProjectName,
expandTable, expandTable,
handleOut, handleOut,

View File

@@ -44,7 +44,7 @@
></a-select> ></a-select>
</div> </div>
<div class="select addTimeBox"> <div class="select addTimeBox">
<div class="addTime">创建时间</div> <div class="addTime">项目起止时间</div>
<a-range-picker <a-range-picker
v-model:value="searchParam.valueDate" v-model:value="searchParam.valueDate"
:show-time="{ :show-time="{

View File

@@ -51,36 +51,31 @@
/> />
<div class="inname">封面图</div> <div class="inname">封面图</div>
</div> </div>
<div class="in select" style="flex: 1"> <div class="in select" style="display: flex">
<a-select <div
:getPopupContainer=" :class="`box ${projectInfo.picUrl === src.value ? 'active' : ''}`"
(triggerNode) => { style="
return triggerNode.parentNode || document.body; width: 100px;
} height: 100px;
border-radius: 5px;
cursor: pointer;
position: relative;
overflow: hidden;
" "
v-model:value="projectInfo.picUrl" v-for="(src, index) in projectPic"
dropdownClassName="dropdown-style" :key="index"
style="width: 440px" @click="() => (projectInfo.picUrl = src.value)"
placeholder="请选择" >
:options="projectPic"
@change="handleChangeSelect"
allowClear
></a-select>
<img <img
style=" style="
width: 100px; width: 100px;
height: 100px; height: 100px;
margin-top: 20px; margin-bottom: 4px;
border-radius: 8px; margin-right: 4px;
" "
v-if="projectInfo.picUrl" :src="src.value"
:src="projectInfo.picUrl"
alt="avatar" alt="avatar"
/> />
<div class="i_bottom">
<span style="color: #999ba3">
高宽比为16:9 (:800*450) png或jpg图片
</span>
</div> </div>
</div> </div>
</div> </div>
@@ -266,10 +261,6 @@ const backPage = () => {
router.back(); router.back();
}; };
const handleChangeSelect = (value) => {
projectInfo.value.picUrl = value;
};
function timeChange(e) { function timeChange(e) {
if (e && e.length === 2) { if (e && e.length === 2) {
projectInfo.value.beginTime = e[0]; projectInfo.value.beginTime = e[0];
@@ -317,6 +308,9 @@ function managerChange(e, l, d, t) {
} }
</script> </script>
<style lang="scss"> <style lang="scss">
.active {
border: 2px solid rgba(78, 166, 255, 1);
}
.projectAdd { .projectAdd {
width: 100%; width: 100%;
// height: inherit; // height: inherit;

View File

@@ -426,6 +426,7 @@ export default {
<div class="operation"> <div class="operation">
{value.state === "2" ? ( {value.state === "2" ? (
<div class="fb"> <div class="fb">
{ /**
<div class="jc" <div class="jc"
onClick={() => { onClick={() => {
handleToManagepage(value, "/managepage"); handleToManagepage(value, "/managepage");
@@ -433,6 +434,7 @@ export default {
> >
管理 管理
</div> </div>
*/ }
<div <div
class="jc" class="jc"
onClick={() => { onClick={() => {

View File

@@ -6,22 +6,27 @@
* @FilePath: /fe-manage/vue.config.js * @FilePath: /fe-manage/vue.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
*/ */
const { defineConfig } = require("@vue/cli-service"); const {defineConfig} = require("@vue/cli-service");
module.exports = defineConfig({ module.exports = defineConfig({
publicPath: "/manage", publicPath: "/manage",
// transpileDependencies: true, // transpileDependencies: true,
devServer: { // devServer: {
port: 8080, // port: 8080,
proxy: { // proxy: {
"/manageApi": { // "/manageApi": {
target:"http://111.231.196.214:30001/", // target: "http://localhost:30001/",
changeOrigin: true, //表示是否改变原域名 // changeOrigin: true, //表示是否改变原域名
// secure: false, // // secure: false,
// ws: false, //表示WebSocket协议 // // ws: false, //表示WebSocket协议
pathRewrite: { // pathRewrite: {
"^/manageApi": "", // "^/manageApi": "",
}, // },
}, // },
}, // "/userbasic": {
}, // target: "https://u-pre.boe.com",
// changeOrigin: true,
// },
// },
// },
}); });