This commit is contained in:
wuyx
2022-12-23 09:10:49 +08:00
15 changed files with 119 additions and 130 deletions

View File

@@ -6,7 +6,7 @@
* @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
*/ */
import { message } from "ant-design-vue"; import {message} from "ant-design-vue";
import axios from "axios"; import axios from "axios";
import router from "@/router"; import router from "@/router";
// import { getCookie } from '../api/method' // import { getCookie } from '../api/method'
@@ -14,13 +14,13 @@ import router from "@/router";
// axios.defaults.headers.post["Content-Type"] = // axios.defaults.headers.post["Content-Type"] =
// "application/x-www-form-urlencoded"; // "application/x-www-form-urlencoded";
export const FILE_UPLOAD_URL = process.env.VUE_APP_BASE_API + '/file/upload'
axios.defaults.withCredentials = true; axios.defaults.withCredentials = true;
const http = axios.create({ const http = axios.create({
baseURL: process.env.VUE_APP_BASE_API, baseURL: process.env.VUE_APP_BASE_API,
timeout: 1000 * 15, timeout: 1000 * 15,
// headers: { "Content-Type": "multipart/form-data" }, // headers: { "Content-Type": "multipart/form-data" },
headers: { "Content-Type": "application/json" }, headers: {"Content-Type": "application/json"},
}); });
http.interceptors.request.use( http.interceptors.request.use(
@@ -50,14 +50,14 @@ http.interceptors.response.use(
(response) => { (response) => {
// console.log('response', response) // console.log('response', response)
const { const {
data: { code, msg }, data: {code, msg},
} = response; } = response;
// console.log('code', code) // console.log('code', code)
if (code === 0 || code === 200) { if (code === 0 || code === 200) {
return response; return response;
} else { } else {
if (code === 1000) { if (code === 1000) {
process.env.NODE_ENV === 'development' ? router.push({ path: 'login' }) : (window.location.href = process.env.VUE_APP_LOGIN_URL) process.env.NODE_ENV === 'development' ? router.push({path: 'login'}) : (window.location.href = process.env.VUE_APP_LOGIN_URL)
} }
console.log("api %o", msg); console.log("api %o", msg);
} }

View File

@@ -1,7 +1,7 @@
<template> <template>
<a-upload <a-upload
:file-list="files" :file-list="files"
:action="`${process.env.VUE_APP_BASE_API}/file/upload`" :action="FILE_UPLOAD_URL"
:show-upload-list="showUploadList" :show-upload-list="showUploadList"
:multiple="multiple" :multiple="multiple"
:before-upload="beforeUpload" :before-upload="beforeUpload"
@@ -16,6 +16,7 @@
<script setup> <script setup>
import {defineProps, defineEmits, defineExpose, ref, watch} from "vue"; import {defineProps, defineEmits, defineExpose, ref, watch} from "vue";
import {message} from "ant-design-vue"; import {message} from "ant-design-vue";
import {FILE_UPLOAD_URL} from "@/api/config";
const props = defineProps({ const props = defineProps({
value: { value: {

View File

@@ -354,7 +354,7 @@
<div class="btnbox"> <div class="btnbox">
<a-upload <a-upload
@change="handleChange" @change="handleChange"
:action="`${process.env.VUE_APP_BASE_API}/file/upload`" :action="FILE_UPLOAD_URL"
v-model:file-list="fileList" v-model:file-list="fileList"
> >
<button class="xkbtn">上传附件</button> <button class="xkbtn">上传附件</button>
@@ -392,6 +392,7 @@ import { detail } from "../../api/indexCourse";
import { queryAppraiseDetailById } from "../../api/indexInvist"; import { queryAppraiseDetailById } from "../../api/indexInvist";
import { queryWorkDetailById } from "@/api/indexWork"; import { queryWorkDetailById } from "@/api/indexWork";
import { queryExaminationDetailById } from "@/api/indexExam"; import { queryExaminationDetailById } from "@/api/indexExam";
import {FILE_UPLOAD_URL} from "@/api/config";
export default { export default {
name: "AddFaceteach", name: "AddFaceteach",
components: { components: {
@@ -841,6 +842,7 @@ export default {
}; };
return { return {
...toRefs(state), ...toRefs(state),
FILE_UPLOAD_URL,
showDrawerSelFacet, showDrawerSelFacet,
showDrawerAddHomework, showDrawerAddHomework,
showDrawerAddTest, showDrawerAddTest,

View File

@@ -45,8 +45,7 @@
<span style="margin-right: 3px">附件</span> <span style="margin-right: 3px">附件</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-upload v-model:file-list="fileList" name="file" :action="`${process.env.VUE_APP_BASE_API}/file/upload`" <a-upload v-model:file-list="fileList" name="file" :action="FILE_UPLOAD_URL" @change="handleChange">
@change="handleChange">
<button class="xkbtn" type="button">上传附件</button> <button class="xkbtn" type="button">上传附件</button>
</a-upload> </a-upload>
</div> </div>
@@ -82,6 +81,7 @@ import {
import { ProjectEditTask, RouterEditTask } from "@/api/indexTask"; import { ProjectEditTask, RouterEditTask } from "@/api/indexTask";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { addTempTask } from "../../api/indexTaskadd"; import { addTempTask } from "../../api/indexTaskadd";
import { FILE_UPLOAD_URL } from "@/api/config";
export default { export default {
name: "AddHomework", name: "AddHomework",
@@ -513,6 +513,7 @@ export default {
disabledDate, disabledDate,
disabledDateTime, disabledDateTime,
afterVisibleChange, afterVisibleChange,
FILE_UPLOAD_URL,
closeDrawer, closeDrawer,
closeDrawer2, closeDrawer2,
handleChange, handleChange,

View File

@@ -130,6 +130,26 @@
<span style="color: #999999; margin-left: 8px">分钟</span> <span style="color: #999999; margin-left: 8px">分钟</span>
</div> </div>
</div> </div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">及格线</span>
</div>
<div class="btnbox">
<a-input
v-model:value="test.passLine"
type="number"
style="width: 400px; height: 40px; border-radius: 8px"
/>
<span style="color: #999999; margin-left: 8px"></span>
</div>
</div>
<div class="main_item2"> <div class="main_item2">
<div class="signbox"> <div class="signbox">
<span style="margin-right: 3px">考试说明</span> <span style="margin-right: 3px">考试说明</span>
@@ -147,7 +167,7 @@
</div> </div>
<div class="main_item2"> <div class="main_item2">
<div class="signbox"> <div class="signbox">
<span style="margin-right: 3px">考试限制</span> <span style="margin-right: 3px;margin-top: 10px;">考试限制</span>
</div> </div>
<div class="kqszbox"> <div class="kqszbox">
<div class="setbox"> <div class="setbox">
@@ -227,64 +247,45 @@
</a-radio-group> </a-radio-group>
</div> </div>
</div> </div>
<div class="main_item"> <div class="main_item">
<div class="signbox"> <div class="signbox">
<div class="sign"> <span style="margin-right: 3px">试题排列</span>
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">及格线</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-input <a-radio-group
v-model:value="test.passLine" style="margin-right: 12px"
type="number" v-model:value="test.questionArrangement"
style="width: 400px; height: 40px; border-radius: 8px" >
/> <a-radio
v-model:checked="checked"
<span style="color: #999999; margin-left: 8px"></span> :value="1"
</div> @click="cloradio4"
</div> >试题乱序
<div class="main_item"> </a-radio>
<div class="main_item"> <a-radio
<div class="signbox"> v-model:checked="checked"
<span style="margin-right: 3px">试题排列</span> :value="2"
</div> @click="cloradio4"
<div class="btnbox"> >选项乱序
<a-radio-group </a-radio>
style="margin-right: 12px" <a-radio
v-model:value="test.questionArrangement" v-model:checked="checked"
> :value="3"
<a-radio @click="cloradio4"
v-model:checked="checked" >全部乱序
:value="1" </a-radio>
@click="cloradio4" <a-radio
>试题乱序 v-model:checked="checked"
</a-radio> :value="4"
<a-radio @click="cloradio4"
v-model:checked="checked" >不乱序
:value="2" </a-radio>
@click="cloradio4" </a-radio-group>
>选项乱序
</a-radio>
<a-radio
v-model:checked="checked"
:value="3"
@click="cloradio4"
>全部乱序
</a-radio>
<a-radio
v-model:checked="checked"
:value="4"
@click="cloradio4"
>不乱序
</a-radio>
</a-radio-group>
</div>
</div> </div>
</div> </div>
<div class="main_item" style="height: 20px;"></div>
</div> </div>
</div> </div>
<div class="main_btns"> <div class="main_btns">
@@ -811,8 +812,7 @@ export default {
.setbox { .setbox {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
margin-top: 10px;
margin-bottom: 24px;
.timerbox { .timerbox {
margin-top: 6px; margin-top: 6px;

View File

@@ -86,45 +86,23 @@ function validateProName() {
} }
</script> </script>
<style lang="scss"> <style lang="scss">
.in {
.pro { .pro {
.ant-input-affix-wrapper { .ant-input-affix-wrapper {
position: relative;
display: inline-block;
width: 99%;
min-width: 0;
padding: 4px 8px; padding: 4px 8px;
color: rgba(0, 0, 0, 0.85);
font-size: 14px;
line-height: 1.5715;
background-color: #fff;
background-image: none;
border: 1px solid #d9d9d9;
border-radius: 8px; border-radius: 8px;
transition: all 0.3s;
display: inline-flex;
} }
} }
} .road {
.in {
.ant-input-affix-wrapper { .ant-input-affix-wrapper {
position: relative;
display: inline-block;
width: 99%;
min-width: 0;
padding: 0px 8px; padding: 0px 8px;
color: rgba(0, 0, 0, 0.85);
font-size: 14px;
line-height: 1.5715;
background-color: #fff;
background-image: none;
border: 1px solid #d9d9d9;
border-radius: 8px; border-radius: 8px;
transition: all 0.3s;
display: inline-flex;
} }
} }
.b_input, .b_input,
.i1_input { .i1_input {

View File

@@ -82,7 +82,7 @@
<template #action="{ record }"> <template #action="{ record }">
<div <div
@click="del(record.id)" @click="del(record.id)"
style="color: #4ea6ff; font-size: 14px; text-align: center" style="color: #4ea6ff; font-size: 14px; text-align: center;margin-left: 20px;cursor: pointer;"
> >
删除 删除
</div> </div>
@@ -235,6 +235,7 @@ function getStuList() {
function reset() { function reset() {
tableParam.value.studentName=""; tableParam.value.studentName="";
getStuList();
} }
function bathDel() { function bathDel() {

View File

@@ -3281,11 +3281,11 @@ const columns7 = [
key: "5", key: "5",
align: "center", align: "center",
customRender: ({ record }) => { customRender: ({ record }) => {
switch (String(record.source)) { switch (String(record.status)) {
case "0": case "0":
return "待审核";
case "1":
return "审核通过"; return "审核通过";
case "1":
return "待审核";
case "2": case "2":
return "审核拒绝"; return "审核拒绝";
} }
@@ -3403,11 +3403,11 @@ export default defineComponent({
key: "5", key: "5",
align: "center", align: "center",
customRender: ({ record }) => { customRender: ({ record }) => {
switch (String(record.source)) { switch (String(record.status)) {
case "0": case "0":
return "待审核";
case "1":
return "审核通过"; return "审核通过";
case "1":
return "待审核";
case "2": case "2":
return "审核拒绝"; return "审核拒绝";
} }

View File

@@ -150,7 +150,7 @@
/> />
</div> </div>
<div class="inname">路径图名称</div> <div class="inname">路径图名称</div>
<div class="in"> <div class="in road">
<!-- <a-input--> <!-- <a-input-->
<!-- v-model:value="pathName"--> <!-- v-model:value="pathName"-->
<!-- maxlength="20"--> <!-- maxlength="20"-->

View File

@@ -78,7 +78,7 @@
<a-table <a-table
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
:loading="tableDataTotal === -1 ? true : false" :loading="tableLoading"
:scroll="{ x: 700 }" :scroll="{ x: 700 }"
@expand="expandTable" @expand="expandTable"
:pagination="false" :pagination="false"
@@ -845,6 +845,7 @@ export default {
}, },
setup() { setup() {
const state = reactive({ const state = reactive({
tableLoading:false,
projectName: null, projectName: null,
selectTime: null, selectTime: null,
sonproject: false, sonproject: false,
@@ -1671,31 +1672,34 @@ export default {
}, },
}, },
]); ]);
const getTableDate = () => const getTableDate = () =>{
api state.tableLoading = true
.getProjectList({ api.getProjectList({
...state.searchParam, ...state.searchParam,
beginTime: beginTime:
state.searchParam.valueDate && state.searchParam.valueDate &&
state.searchParam.valueDate.length === 2 state.searchParam.valueDate.length === 2
? dayjs(state.searchParam.valueDate[0]).format("YYYY-MM-DD") ? dayjs(state.searchParam.valueDate[0]).format("YYYY-MM-DD")
: "",
endTime:
state.searchParam.valueDate &&
state.searchParam.valueDate.length === 2
? dayjs(state.searchParam.valueDate[1]).format("YYYY-MM-DD")
: "",
})
.then((res) => {
// console.log("搜索", res, state.searchParam);
state.tableDataTotal = Number(res.data.data.total);
state.tableLoading = false
const data = res.data.data.rows;
initDataSublist("", data);
console.log(data);
tableData.value = data;
console.log("tableData", tableData);
});
}
: "",
endTime:
state.searchParam.valueDate &&
state.searchParam.valueDate.length === 2
? dayjs(state.searchParam.valueDate[1]).format("YYYY-MM-DD")
: "",
})
.then((res) => {
// console.log("搜索", res, state.searchParam);
state.tableDataTotal = Number(res.data.data.total);
const data = res.data.data.rows;
initDataSublist("", data);
console.log(data);
tableData.value = data;
console.log("tableData", tableData);
});
function initDataSublist(parentName, data) { function initDataSublist(parentName, data) {
if (data && data.length) { if (data && data.length) {

View File

@@ -6,7 +6,7 @@
<div class="tagname">问答题</div> <div class="tagname">问答题</div>
<div class="deleteop" @click="handleTypesDel(3)"> <div class="deleteop" @click="handleTypesDel(3)">
<div><img src="../../../assets/images/projectadd/delete.png" /></div> <div><img src="../../../assets/images/projectadd/delete.png" /></div>
<div class="del_text">删除选项</div> <div class="del_text">删除题目</div>
</div> </div>
</div> </div>
<div class="name"> <div class="name">

View File

@@ -17,6 +17,7 @@
</div> </div>
<div class="delete" @click="handleDel">删除</div> <div class="delete" @click="handleDel">删除</div>
</div> </div>
<!--
<div class="name uploadContent"> <div class="name uploadContent">
<a-upload <a-upload
v-show="!curItem.imgVal" v-show="!curItem.imgVal"
@@ -43,6 +44,7 @@
/> />
</div> </div>
</div> </div>
-->
</div> </div>
</template> </template>
<script> <script>

View File

@@ -6,7 +6,7 @@
<div class="tagname">多选题</div> <div class="tagname">多选题</div>
<div class="deleteop" @click="handleTypesDel(2)"> <div class="deleteop" @click="handleTypesDel(2)">
<div><img src="../../../assets/images/projectadd/delete.png" /></div> <div><img src="../../../assets/images/projectadd/delete.png" /></div>
<div class="del_text">删除选项</div> <div class="del_text">删除题目</div>
</div> </div>
</div> </div>
<div class="name"> <div class="name">

View File

@@ -6,7 +6,7 @@
<div class="tagname">评分题</div> <div class="tagname">评分题</div>
<div class="deleteop" @click="handleTypesDel(4)"> <div class="deleteop" @click="handleTypesDel(4)">
<div><img src="../../../assets/images/projectadd/delete.png" /></div> <div><img src="../../../assets/images/projectadd/delete.png" /></div>
<div class="del_text">删除选项</div> <div class="del_text">删除题目</div>
</div> </div>
</div> </div>
<div class="name"> <div class="name">

View File

@@ -6,7 +6,7 @@
<div class="tagname">单选题</div> <div class="tagname">单选题</div>
<div class="deleteop" @click="handleTypesDel(1)"> <div class="deleteop" @click="handleTypesDel(1)">
<div><img src="../../../assets/images/projectadd/delete.png" /></div> <div><img src="../../../assets/images/projectadd/delete.png" /></div>
<div class="del_text">删除选项</div> <div class="del_text">删除题目</div>
</div> </div>
</div> </div>
<div class="name"> <div class="name">