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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -14,6 +14,7 @@
<div class="tmplh_inp">
<div class="inpbox">
<div class="inpbox1">
<!--
<a-select
v-model:value="valueproj"
value-key="value"
@@ -21,7 +22,27 @@
{ label: '请选择内容分类', value: '' },
...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 class="inpbox1">
<a-input
@@ -140,7 +161,7 @@ export default {
setup() {
const state = reactive({
calssifyList: [], //分类字典
valueproj: "",
valueproj:null,
valuecreater: "",
valuename: "",
currentPage: 1,

View File

@@ -16,7 +16,7 @@
<div class="inpbox1">
<!--
<a-select
v-model:value="categoryId"
v-model:value="valueproj"
:options="[
{ label: '请选择内容分类', value: '' },
...calssifyList,
@@ -28,11 +28,12 @@
return triggerNode.parentNode || document.body;
}
"
v-model:value="categoryId"
v-model:value="valueproj"
show-search
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
placeholder="请选择内容分类"
allow-clear
tree-default-expand-all
:tree-data="options2222"
>
@@ -213,7 +214,7 @@ export default {
},
],
calssifyList: [], //分类字典
categoryId: "",
valueproj:null,
valuecreater: "",
valuename: "",
// currentFacePage: 1,
@@ -488,7 +489,7 @@ export default {
state.loading=true
let objn = {
auditStatus: 1,
categoryId: state.categoryId,
categoryId: state.valueproj,
createName: state.valuecreater,
name: state.valuename,
pageNo: state.currentPage,
@@ -557,7 +558,7 @@ export default {
const searchList = () => {
let objn = {
auditStatus: 1,
categoryId: state.categoryId,
categoryId: state.valueproj,
createName: state.valuecreater,
name: state.valuename,
pageNo: state.currentPage,
@@ -622,7 +623,7 @@ export default {
state.tableData1 = array;
};
const reset = () => {
state.categoryId = "";
state.valueproj = "";
state.valuecreater = null;
state.valuename = null;
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" /> -->
<div
@click="chooseImg(item)"
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" /> -->
<div
@click="chooseImg2(item)"
v-for="(item, index) in imgData"
@@ -747,12 +749,6 @@ export default {
tableDataTotal: -1, //学习路径列表总数
pageSize: 10, //每页10条数据
imgData: [
// {
// id: 1,
// source: require("../../assets/images/leveladd/1.png"),
// },
],
// learnPathBg: null, //创建路径选择的路径图背景
// learnPathBg2: null, //编辑路径选择的路径图背景
pub: false, //发布弹窗
@@ -861,15 +857,17 @@ export default {
state.pathName = "";
state.pathBg = "";
state.pathBgId = "";
state.organizationSelectName = store.state.userInfo.departId;
state.organizationSelectId = store.state.userInfo.departName;
if(store.state.userInfo.departId && store.state.userInfo.departName){
state.organizationSelectName = store.state.userInfo.departName;
state.organizationSelectId = store.state.userInfo.departId;
}
state.pathIntro = "";
state.out = !state.out;
};
const handleOut1 = () => {
state.pathName = "";
state.pathBg = "";
state.pathBgId = "";
state.pathBgId =1;
state.organizationSelectName = null;
state.organizationSelectId = null;
state.pathIntro = "";
@@ -1624,14 +1622,21 @@ export default {
state.organizationSelectId = detail.organizationId;
state.pathIntro = detail.remark;
state.editPathId = id;
// console.log("state.imgData", state.imgData);
let arr = state.imgData;
for (let i = 0; i < arr.length; i++) {
let arr = imgData.value;
arr.forEach((item) => {
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);
if (arr[i].dictValue === state.pathBg) {
state.pathBgId = arr[i].dictCode;
}
}
// if (arr[i].dictValue === state.pathBg) {
// state.pathBgId = arr[i].dictCode;
// }
// }
}
})
.catch((err) => {
@@ -1782,6 +1787,7 @@ export default {
// };
// getDictList("pathmapPic");
//显示更多路径背景弹窗
const showLearnBgMore = () => {
state.learnBgMore = true;
};
@@ -1792,11 +1798,12 @@ export default {
onMounted(() => {
// console.log("执行");
getLearnPath();
if (store.state.pathmapPic.length > 0) {
console.log("store.state.pathmapPic", store.state.pathmapPic);
state.imgData = store.state.pathmapPic;
}
// if (store.state.pathmapPic.length > 0) {
// console.log("store.state.pathmapPic", store.state.pathmapPic);
// state.imgData = ;
// }
});
const imgData = computed(()=>store.state.pathmapPic)
//添加权限
watch(
() => state.addAuthList,
@@ -1830,6 +1837,7 @@ export default {
return {
...toRefs(state),
imgData,
selectProjectName,
expandTable,
handleOut,

View File

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

View File

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

View File

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

View File

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