mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-19 07:46:46 +08:00
feat:合并
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -26,3 +26,4 @@ package-lock.json
|
||||
src/api/config.js
|
||||
src/api/config.js
|
||||
src/api/config.js
|
||||
src/api/config.js
|
||||
|
||||
@@ -70,7 +70,7 @@ export default {
|
||||
href: "/leveladd",
|
||||
},
|
||||
{
|
||||
name: "管理",
|
||||
name: "关卡",
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -426,7 +426,7 @@ export default defineComponent({
|
||||
hideshow: true,
|
||||
ft_eidt: false,
|
||||
attach: "",
|
||||
validate:false,
|
||||
validate:true,
|
||||
ft_hs: false,
|
||||
addLoading: false,
|
||||
statusJuJue: 0,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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++) {
|
||||
// console.log("arr[i].dictValue", arr[i].dictValue, state.pathBg);
|
||||
if (arr[i].dictValue === state.pathBg) {
|
||||
state.pathBgId = arr[i].dictCode;
|
||||
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;
|
||||
|
||||
// }
|
||||
// }
|
||||
}
|
||||
})
|
||||
.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,
|
||||
|
||||
@@ -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="{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
"
|
||||
v-model:value="projectInfo.picUrl"
|
||||
dropdownClassName="dropdown-style"
|
||||
style="width: 440px"
|
||||
placeholder="请选择"
|
||||
:options="projectPic"
|
||||
@change="handleChangeSelect"
|
||||
allowClear
|
||||
></a-select>
|
||||
<img
|
||||
<div class="in select" style="display: flex">
|
||||
<div
|
||||
:class="`box ${projectInfo.picUrl === src.value ? 'active' : ''}`"
|
||||
style="
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
margin-top: 20px;
|
||||
border-radius: 8px;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
"
|
||||
v-if="projectInfo.picUrl"
|
||||
:src="projectInfo.picUrl"
|
||||
alt="avatar"
|
||||
/>
|
||||
<div class="i_bottom">
|
||||
<span style="color: #999ba3">
|
||||
高宽比为16:9 (如:800*450) png或jpg图片
|
||||
</span>
|
||||
v-for="(src, index) in projectPic"
|
||||
:key="index"
|
||||
@click="() => (projectInfo.picUrl = src.value)"
|
||||
>
|
||||
<img
|
||||
style="
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
margin-bottom: 4px;
|
||||
margin-right: 4px;
|
||||
"
|
||||
:src="src.value"
|
||||
alt="avatar"
|
||||
/>
|
||||
</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;
|
||||
|
||||
@@ -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={() => {
|
||||
|
||||
@@ -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": "",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
publicPath: "/manage",
|
||||
// transpileDependencies: true,
|
||||
// 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,
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user