feat:合并

This commit is contained in:
lixg
2022-12-13 18:22:55 +08:00
14 changed files with 1249 additions and 1159 deletions

1883
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -8,19 +8,19 @@
--> -->
<template> <template>
<div id="container"> <div id="container">
<div id="nav"> <!-- <div id="nav">-->
<router-link <!-- <router-link-->
v-for="item in routes" <!-- v-for="item in routes"-->
:key="item.path" <!-- :key="item.path"-->
:to="item.path" <!-- :to="item.path"-->
:class="{ <!-- :class="{-->
link: true, <!-- link: true,-->
active: name === item.name, <!-- active: name === item.name,-->
}" <!-- }"-->
> <!-- >-->
{{ item.name }} <!-- {{ item.name }}-->
</router-link> <!-- </router-link>-->
</div> <!-- </div>-->
<main> <main>
<router-view /> <router-view />
</main> </main>

4
src/api/ThirdApi.js Normal file
View File

@@ -0,0 +1,4 @@
export const BASE = 'https://u-pre.boe.com'
export const GET_USER_LIST = `/userbasic/user/list post`

View File

@@ -6,7 +6,7 @@
* @FilePath: /fe-stu/src/api/api.js * @FilePath: /fe-stu/src/api/api.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
*/ */
export const BASE = 'http://111.231.196.214:30001/manageApi' export const BASE = '/manageApi'
export const LOGIN = '/admin/CheckUser/userLogin post' export const LOGIN = '/admin/CheckUser/userLogin post'
// export const FILE_UPLOAD = 'http://111.231.196.214:30001/file/upload' // export const FILE_UPLOAD = 'http://111.231.196.214:30001/file/upload'
export const FILE_UPLOAD = '/file/upload' export const FILE_UPLOAD = '/file/upload'
@@ -47,7 +47,8 @@ export const COMMENT_ADD = '/comment post'
export const COMMENT_PRAISE = '/comment/praise post' export const COMMENT_PRAISE = '/comment/praise post'
export const COMMENT_COLLECTION = '/comment/collection post' export const COMMENT_COLLECTION = '/comment/collection post'
export const ASSESSMENT_QUERY = assessmentId => `/assessmentSubmit/queryAssessmentSubmitDetailById?assessmentSubmitId=${assessmentId} post` export const ASSESSMENT_SUBMIT_QUERY = assessmentId => `/assessmentSubmit/queryAssessmentSubmitDetailById?assessmentSubmitId=${assessmentId} post`
export const ASSESSMENT_QUERY = assessmentId => `/assessment/queryAssessmentDetailById?assessmentId=${assessmentId} post`
export const ASSESSMENT_SUBMIT = '/assessmentSubmit/submitAssessmentDetail' export const ASSESSMENT_SUBMIT = '/assessmentSubmit/submitAssessmentDetail'
export const ACTIVITY = '/activity' export const ACTIVITY = '/activity'

View File

@@ -1,6 +1,7 @@
import router from "@/router"; import router from "@/router";
import {reactive, ref, toRefs, watch} from "vue"; import {reactive, ref, toRefs, watch} from "vue";
import axios from 'axios'; import axios from 'axios';
import {getCookie} from "@/api/utils";
export function usePage(_url, param) { export function usePage(_url, param) {
@@ -110,3 +111,38 @@ export async function request(_url, params) {
// router.push({path: '/login'}) // router.push({path: '/login'})
}) })
} }
export async function boeRequest(_url, params) {
const s = _url.split(' ')
let url = s[0]
const method = s[1]?.toLowerCase() || 'get'
if (method === 'get') {
let paramsArray = [];
//拼接参数
if (params) {
Object.keys(params).forEach(key => paramsArray.push(key + '=' + params[key]))
if (url.search(/\?/) === -1) {
url += '?' + paramsArray.join('&')
} else {
url += '&' + paramsArray.join('&')
}
}
}
const body = method !== 'get' ? params || {} : {}
return axios({
url,
method,
headers: {
token: getCookie('token'),
...method !== 'get' ? {'Content-Type': 'application/json'} : {}
},
baseURL: '',
...method !== 'get' ? {data: JSON.stringify(body)} : {}
}).then(resp => resp.data).then(response => {
return response
}).catch(e => {
console.log(2222)
console.log(e)
// router.push({path: '/login'})
})
}

View File

@@ -1,3 +1,9 @@
import {watch, ref} from "vue";
import {boeRequest} from "@/api/request";
import {BASE, GET_USER_LIST} from "@/api/ThirdApi";
const BASE_AVATAR = import.meta.env.DEV ? `${BASE}/upload` : ''
export function useImage(src) { export function useImage(src) {
return new URL(`../assets/image/${src}`, import.meta.url).href return new URL(`../assets/image/${src}`, import.meta.url).href
} }
@@ -11,3 +17,14 @@ export function setCookie(name, value, perpetual) {
export function getCookie(name) { export function getCookie(name) {
return document.cookie?.split(";").find(e => e.includes(name)).replace(`${name}=`, '') || '' return document.cookie?.split(";").find(e => e.includes(name)).replace(`${name}=`, '') || ''
} }
export function useUserInfo(id) {
const userInfo = ref({})
watch(id, () => {
id.value && boeRequest(GET_USER_LIST, {id: id.value}).then(res => {
userInfo.value = res.result.userInfoList[0]
userInfo.value.avatar = BASE_AVATAR + userInfo.value.avatar
})
})
return userInfo
}

View File

@@ -39,7 +39,7 @@
<div class="title"> <div class="title">
{{ disDetail.projectName }} {{ disDetail.projectName }}
</div> </div>
<button class="btn">回复</button> <!-- <button class="btn">回复</button>-->
</div> </div>
<div class="line clearfix"> <div class="line clearfix">

View File

@@ -29,7 +29,7 @@
<div style="margin-left: 8px">{{ data.planDto?.address }}</div> <div style="margin-left: 8px">{{ data.planDto?.address }}</div>
</div> </div>
</div> </div>
<div class="btn" v-if="data.planDto?.evalFlag">评估</div> <div class="btn" @click="toSurvery" v-if="data.planDto?.evalFlag">评估</div>
</div> </div>
<!-- 基本信息 --> <!-- 基本信息 -->
@@ -92,8 +92,8 @@
</div> </div>
<div <div
class="submit" class="submit"
@click="toWork(data.workDto)" @click="toWork"
v-if="!data.workDto.workId" v-if="data.workDto?.workId"
> >
提交 提交
</div> </div>
@@ -115,9 +115,9 @@
<div class="tag3" style="margin-left: 11px">考试</div> <div class="tag3" style="margin-left: 11px">考试</div>
</div> </div>
</div> </div>
<div class="submit" @click="toExamItem(data.examinationDto)"> <!-- <div class="submit" @click="toExamItem(data.examinationDto)">-->
去考试 <!-- 去考试-->
</div> <!-- </div>-->
</div> </div>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
@@ -134,14 +134,14 @@
</div> </div>
<!-- todo #面授课接口 讲师缺少img和介绍--> <!-- todo #面授课接口 讲师缺少img和介绍-->
<div class="teacheritem"> <div class="teacheritem">
<img class="peopleimg" :src="data.planDto?.avatar" /> <img class="peopleimg" :src="userAvatar"/>
<div style="margin-left: 17px; width: 190px"> <div style="margin-left: 17px; width: 190px">
<div class="teacherName" style="margin-right: 5px"> <div class="teacherName" style="margin-right: 5px">
{{ data.planDto?.teacher }} {{ data.planDto?.teacher }}
</div> </div>
<div class="introduce">{{ data.planDto?.bandDesc }}</div> <div class="introduce">{{ data.planDto?.bandDesc }}</div>
</div> </div>
<div class="follow">+ 关注</div> <!-- <div class="follow">+ 关注</div>-->
</div> </div>
</div> </div>
</div> </div>
@@ -150,18 +150,22 @@
</template> </template>
<script setup> <script setup>
import { reactive, toRefs, watch } from "vue"; import {computed, reactive, toRefs, watch} from "vue";
import FileTypeImg from "@/components/FileTypeImg.vue"; import FileTypeImg from "@/components/FileTypeImg.vue";
import {request, useRequest} from "@/api/request"; import {request, useRequest} from "@/api/request";
import {STU_OFFCOURSE_DETAIL} from "@/api/api"; import {STU_OFFCOURSE_DETAIL} from "@/api/api";
import {useRoute, useRouter} from "vue-router"; import {useRoute, useRouter} from "vue-router";
import {useUserInfo} from "@/api/utils";
const router = useRouter(); const router = useRouter();
const { const {
query: { courseId }, query: {courseId, type},
} = useRoute(); } = useRoute();
const {data} = useRequest(STU_OFFCOURSE_DETAIL, {courseId}); const {data} = useRequest(STU_OFFCOURSE_DETAIL, {courseId});
const {avatar: userAvatar} = useUserInfo(computed(() => data.value?.planDto?.teacherId))
const state = reactive({ const state = reactive({
activeName: "first", activeName: "first",
enclosure: "", enclosure: "",
@@ -174,8 +178,15 @@ const download = (url) => {
window.open(url); window.open(url);
}; };
function toWork(obj) { function toSurvery() {
router.push({ path: "/homeworkpage", query: { id: obj.courseId } }); router.push({path: "/surveydetail", query: {courseId: data.value.planDto.evaluateId}})
}
function toWork() {
router.push({
path: "/homeworkpage",
query: {courseId: data.value.workDto.workId, id: data.value.offcourseDto.categoryId, type}
})
} }
function toExamItem(obj) { function toExamItem(obj) {

View File

@@ -269,10 +269,10 @@ const { textarea1 } = toRefs(state);
const router = useRouter(); const router = useRouter();
const { const {
query: { courseId: workId, type }, query: { courseId: workId, type,id: taskId },
} = useRoute(); } = useRoute();
const { data } = useRequest(TASK_WORK_DETAIL, { workId }); const { data } = useRequest(TASK_WORK_DETAIL, { workId,taskId });
const { data: submitList } = useRequest(TASK_WORK_SUBMIT_LIST, { workId }); const { data: submitList } = useRequest(TASK_WORK_SUBMIT_LIST, { workId });
const handleClick = () => { const handleClick = () => {
@@ -280,6 +280,7 @@ const handleClick = () => {
projectOrRouterLogo: type, projectOrRouterLogo: type,
workUploadContent: textarea1.value, workUploadContent: textarea1.value,
workId, workId,
taskId,
}).then((res) => { }).then((res) => {
submitList.value.unshift(res.data); submitList.value.unshift(res.data);
}); });

View File

@@ -41,18 +41,21 @@
<botton <botton
class="btn" class="btn"
style="background: rgb(59, 191, 252)" style="background: rgb(59, 191, 252)"
@click="commitClick" @click="showClick"
>观看</botton >观看
</botton
> >
<botton <botton
class="btn" class="btn"
style="background: rgb(57, 146, 249)" style="background: rgb(57, 146, 249)"
@click="signClick" @click="signClick"
v-if="!data.signFlag" v-if="!data.signFlag"
>签到</botton >签到
</botton
> >
<botton class="btn" @click="commitClick" v-if="!data.evalFlag" <botton class="btn" @click="commitClick" v-if="!data.evalFlag"
>评估</botton >评估
</botton
> >
</div> </div>
</div> </div>
@@ -128,24 +131,17 @@
<div class="box"></div> <div class="box"></div>
</div> </div>
<div <div
v-for="(el, index) in teacher"
:key="el.id"
class="teacheritem" class="teacheritem"
:style="{ :style="{ 'border-bottom': '1px solid rgba(56, 125, 247, 0.2)'}"
'border-bottom':
index === teacher.length - 1
? null
: '1px solid rgba(56, 125, 247, 0.2)',
}"
> >
<img class="peopleimg" :src="el.peopleimg" /> <img class="peopleimg" :src="userAvatar"/>
<div style="margin-left: 17px; width: 190px"> <div style="margin-left: 17px; width: 190px">
<div class="teacherName" style="margin-right: 5px"> <div class="teacherName" style="margin-right: 5px">
{{ data.userInfoBo?.userName }} {{ data.userInfoBo?.userName }}
</div> </div>
<div class="introduce">{{ data.userInfoBo?.bandDesc }}</div> <div class="introduce">{{ data.userInfoBo?.bandDesc }}</div>
</div> </div>
<div class="follow">+ 关注</div> <!-- <div class="follow">+ 关注</div>-->
</div> </div>
</div> </div>
</div> </div>
@@ -155,21 +151,27 @@
</template> </template>
<script setup> <script setup>
import { reactive, toRefs } from "vue"; import {computed, reactive, toRefs} from "vue";
import img from "@/assets/image/uploadimg.png"; import img from "@/assets/image/uploadimg.png";
import {request, useRequest} from "@/api/request"; import {request, useRequest} from "@/api/request";
import { import {
TASK_BROADCAST_COMMIT,
TASK_BROADCAST_DETAIL, TASK_BROADCAST_DETAIL,
TASK_BROADCAST_SIGN, TASK_BROADCAST_SIGN,
} from "@/api/api"; } from "@/api/api";
import {useRoute} from "vue-router/dist/vue-router"; import {useRoute} from "vue-router/dist/vue-router";
import {useRouter} from "vue-router";
import {useUserInfo} from "@/api/utils";
const { const {
query: {courseId: liveId}, query: {courseId: liveId},
} = useRoute(); } = useRoute();
const router = useRouter()
const {data} = useRequest(TASK_BROADCAST_DETAIL, {liveId}); const {data} = useRequest(TASK_BROADCAST_DETAIL, {liveId});
const {avatar: userAvatar} = useUserInfo(computed(() => data.value.userInfoBo?.userId))
const state = reactive({ const state = reactive({
activeName: "first", activeName: "first",
teacher: [ teacher: [
@@ -182,20 +184,19 @@ const state = reactive({
}, },
], ],
}); });
const { activeName, teacher } = toRefs(state); const {activeName, teacher} = toRefs(state)
const signClick = (id) => { const signClick = () => {
request(TASK_BROADCAST_SIGN, { id }).then(() => { data.value.signFlag = 1
console.log(data.value); request(TASK_BROADCAST_SIGN, {courseId: liveId})
data.value.signFlag = 1;
});
}; };
const commitClick = (id) => { const commitClick = () => {
request(TASK_BROADCAST_COMMIT, { id }).then(() => { router.push({path: '/surveydetail', query: {courseId: data.value.assessmentId}})
data.value.evalFlag = 1;
});
}; };
function showClick() {} function showClick() {
window.open(data.value.liveLink)
}
</script> </script>
<!-- Add "scoped" attribute to limit CSS to this component only --> <!-- Add "scoped" attribute to limit CSS to this component only -->

View File

@@ -54,10 +54,8 @@ const form = ref({
async function loginUser() { async function loginUser() {
const {data:token} = await request(LOGIN, form.value); const {data:token} = await request(LOGIN, form.value);
console.log(2222222222)
console.log(token)
setCookie("token", token, 10); setCookie("token", token, 10);
await router.push({path: "/BallotPage"}); await router.push({path: "/learnpath"});
// location.reload(); // location.reload();
} }

View File

@@ -101,7 +101,11 @@
</el-popover> </el-popover>
</el-table-column> </el-table-column>
<<<<<<< HEAD
<el-table-column align="center" prop="target" label="目标人群" /> <el-table-column align="center" prop="target" label="目标人群" />
=======
<el-table-column align="center" prop="organizationName" label="归属组织"/>
>>>>>>> c75d463c401f71da9db53014bf96eb14db8ab0d8
<el-table-column <el-table-column
#default="scope" #default="scope"
align="center" align="center"

View File

@@ -39,7 +39,8 @@
<div> <div>
<div class="coursename">{{ value.name }}</div> <div class="coursename">{{ value.name }}</div>
<div class="coursetag"> <div class="coursetag">
<div class="tag1" style="margin-right: 11px; margin-top: 16px">必修</div> <div class="tag1" style="margin-right: 11px; margin-top: 16px" v-if="value.flag">必修</div>
<div class="tag2" style="margin-right: 11px; margin-top: 16px" v-if="!value.flag">选修</div>
<div class="tag3" style="margin-right: 11px; margin-top: 16px">{{ <div class="tag3" style="margin-right: 11px; margin-top: 16px">{{
types.typeName[value.type] || '' types.typeName[value.type] || ''
}} }}
@@ -101,9 +102,10 @@
</div> </div>
</div> </div>
</div> </div>
<div class="goclass" @click="toFinish(value)"> <div class="goclass" :style="{background:`${types.path[value.type]?'#2478ff':'#999'}`}"
@click="toFinish(value)">
{{ {{
types.toName[value.type] || '' types.path[value.type] ? types.toName[value.type] : '未开放'
}} }}
</div> </div>
<!-- <div :style="{ display: value.status === 1 ? 'block' : 'none' }">--> <!-- <div :style="{ display: value.status === 1 ? 'block' : 'none' }">-->
@@ -181,7 +183,7 @@
class="teacheritem" class="teacheritem"
:style="{'border-bottom': '1px solid rgba(56, 125, 247, 0.2)'}" :style="{'border-bottom': '1px solid rgba(56, 125, 247, 0.2)'}"
> >
<img class="peopleimg" :src="data.userInfoBo?.peopleimg"/> <img class="peopleimg" :src="userAvatar"/>
<div style="margin-left: 17px"> <div style="margin-left: 17px">
<div class="teacherName"> <div class="teacherName">
<div style="margin-right: 5px">{{ data.userInfoBo?.userName }}</div> <div style="margin-right: 5px">{{ data.userInfoBo?.userName }}</div>
@@ -212,7 +214,7 @@
<div class="progress"> <div class="progress">
<div style="width: 291px"> <div style="width: 291px">
<el-progress <el-progress
:percentage="data.totalChapterCnt" :percentage="parseInt(data.currentChapterCnt/data.totalChapterCnt * 100)"
:show-text="false" :show-text="false"
:stroke-width="8" :stroke-width="8"
:color=" :color="
@@ -223,7 +225,7 @@
3:'rgba(59, 94, 251, 1)', 3:'rgba(59, 94, 251, 1)',
4:'rgba(57, 219, 183, 1)', 4:'rgba(57, 219, 183, 1)',
5:'rgba(57, 219, 183, 1)' 5:'rgba(57, 219, 183, 1)'
}[parseInt(data.totalChapterCnt/20)] }[parseInt(data.currentChapterCnt/data.totalChapterCnt)]
" "
/> />
</div> </div>
@@ -241,10 +243,10 @@
3:'rgba(59, 94, 251, 1)', 3:'rgba(59, 94, 251, 1)',
4:'rgba(57, 219, 183, 1)', 4:'rgba(57, 219, 183, 1)',
5:'rgba(57, 219, 183, 1)' 5:'rgba(57, 219, 183, 1)'
}[parseInt(data.totalChapterCnt/20)] }[parseInt(data.currentChapterCnt/data.totalChapterCnt)]
}" }"
> >
{{ data.totalChapterCnt }}% {{ parseInt(data.currentChapterCnt / data.totalChapterCnt * 100) }}%
</div> </div>
</div> </div>
</div> </div>
@@ -255,7 +257,7 @@
<div class="progress"> <div class="progress">
<div style="width: 291px"> <div style="width: 291px">
<el-progress <el-progress
:percentage="data.currentChapterCnt" :percentage="parseInt(data.currentReqCnt/data.totalReqCnt * 100)"
:show-text="false" :show-text="false"
:stroke-width="8" :stroke-width="8"
:color=" :color="
@@ -266,7 +268,7 @@
3:'rgba(59, 94, 251, 1)', 3:'rgba(59, 94, 251, 1)',
4:'rgba(57, 219, 183, 1)', 4:'rgba(57, 219, 183, 1)',
5:'rgba(57, 219, 183, 1)' 5:'rgba(57, 219, 183, 1)'
}[parseInt(data.currentChapterCnt/20)] }[parseInt(data.currentReqCnt/data.totalReqCnt)]
" "
/> />
</div> </div>
@@ -286,10 +288,10 @@
3:'rgba(59, 94, 251, 1)', 3:'rgba(59, 94, 251, 1)',
4:'rgba(57, 219, 183, 1)', 4:'rgba(57, 219, 183, 1)',
5:'rgba(57, 219, 183, 1)' 5:'rgba(57, 219, 183, 1)'
}[parseInt(data.currentChapterCnt/20)] }[parseInt(data.currentReqCnt/data.totalReqCnt)]
}" }"
> >
{{ data.currentChapterCnt }}% {{ parseInt(data.currentReqCnt / data.totalReqCnt * 100) }}%
</div> </div>
</div> </div>
</div> </div>
@@ -304,7 +306,7 @@
</template> </template>
<script setup> <script setup>
import {reactive, ref} from "vue"; import {computed, reactive, ref, watch} from "vue";
import word from '@/assets/image/file/word.png' import word from '@/assets/image/file/word.png'
import ppt from '@/assets/image/file/ppt.png' import ppt from '@/assets/image/file/ppt.png'
import pdf from '@/assets/image/file/pdf.png' import pdf from '@/assets/image/file/pdf.png'
@@ -314,14 +316,17 @@ import medal1 from '@/assets/image/medal/medal1.png'
import medal2 from '@/assets/image/medal/medal2.png' import medal2 from '@/assets/image/medal/medal2.png'
import medal3 from '@/assets/image/medal/medal3.png' import medal3 from '@/assets/image/medal/medal3.png'
import img from '@/assets/image/uploadimg.png' import img from '@/assets/image/uploadimg.png'
import {useRequest} from "@/api/request"; import {boeRequest, useRequest} from "@/api/request";
import {ROUTER_PROCESS} from "@/api/api"; import {ROUTER_PROCESS} from "@/api/api";
import {useRoute, useRouter} from "vue-router"; import {useRoute, useRouter} from "vue-router";
import {ElMessage} from 'element-plus'
import {useUserInfo} from "@/api/utils";
const {query: {routerId}} = useRoute() const {query: {routerId}} = useRoute()
const router = useRouter() const router = useRouter()
const {data} = useRequest(ROUTER_PROCESS, {routerId}) const {data} = useRequest(ROUTER_PROCESS, {routerId})
const {avatar: userAvatar} = useUserInfo(computed(() => data.value?.userInfoBo?.userId))
const state = reactive({ const state = reactive({
course: [ course: [
{ {
@@ -539,23 +544,23 @@ const types = ref({
6: '去签到', 6: '去签到',
7: '外链', 7: '外链',
8: '去讨论', 8: '去讨论',
9: '去完成', 9: '去签到',
10: '去完成', 10: '去完成',
11: '去完成', 11: '去完成',
12: '去投票', 12: '去投票',
13: '去完成', 13: '去完成',
}, },
path: { path: {
1: '去上课', 1: '',
2: '/faceteach', 2: '/faceteach',
3: '案例', 3: '',
4: '/homeworkpage', 4: '/homeworkpage',
5: '去完成', 5: '',
6: '/livebroadcast', 6: '/livebroadcast',
7: '外链', 7: '',
8: '/discusspage', 8: '/discusspage',
9: '/moreactive', 9: '/moreactive',
10: '/starttest', 10: '/surveydetail',
11: '/surveydetail', 11: '/surveydetail',
12: '/ballotpage', 12: '/ballotpage',
13: '去完成' 13: '去完成'
@@ -563,6 +568,10 @@ const types = ref({
}) })
function toFinish(d) { function toFinish(d) {
if (!types.value.path[d.type]) {
ElMessage.error('暂时未开放')
return
}
router.push({path: types.value.path[d.type], query: {id: d.routerTaskId, type: 1, courseId: d.courseId}}) router.push({path: types.value.path[d.type], query: {id: d.routerTaskId, type: 1, courseId: d.courseId}})
} }

View File

@@ -13,7 +13,7 @@ import { viteMockServe } from 'vite-plugin-mock'
import topLevelAwait from "vite-plugin-top-level-await"; import topLevelAwait from "vite-plugin-top-level-await";
const path = require('path') const path = require('path')
const url = 'http://111.231.196.214:30001' const url = 'http://localhost:30001'
export default defineConfig(({command}) => export default defineConfig(({command}) =>
({ ({
base: '/fe-student', base: '/fe-student',
@@ -34,7 +34,8 @@ export default defineConfig(({ command }) =>
alias: [ alias: [
{find: '@', replacement: path.resolve(__dirname, 'src')} {find: '@', replacement: path.resolve(__dirname, 'src')}
] ]
}, server: { },
server: {
proxy: { proxy: {
'/file/upload': { '/file/upload': {
target: 'http://111.231.196.214:30001', target: 'http://111.231.196.214:30001',
@@ -83,6 +84,12 @@ export default defineConfig(({ command }) =>
}, '/assessment': { }, '/assessment': {
target: url, target: url,
changeOrigin: true, changeOrigin: true,
}, '/workSubmit': {
target: url,
changeOrigin: true,
}, '/userbasic': {
target: 'https://u-pre.boe.com',
changeOrigin: true,
}, },
} }
} }