Compare commits

..

3 Commits

Author SHA1 Message Date
lcw
0c9b2907ca Merge branch 'master' of http://61.139.16.27:26684/maojiacai/ba_web 2025-09-26 16:33:59 +08:00
lcw
f05eb1ce6f lcw 2025-09-26 16:33:53 +08:00
lcw
eb91b68d03 lcw 2025-09-26 16:13:54 +08:00
87 changed files with 1338 additions and 1363 deletions

BIN
ab/ab.zip

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-1143165c"],{"0918":function(e,t,c){"use strict";c.r(t);var o=c("7a23"),n=c("6605"),a=c("5d2d");const d=e=>(Object(o["pushScopeId"])("data-v-a3e803fa"),e=e(),Object(o["popScopeId"])(),e),s={class:"sso-redirect-container"},r=d(()=>Object(o["createElementVNode"])("div",{class:"loading-wrapper"},[Object(o["createElementVNode"])("div",{class:"loading-text"},"正在跳转...")],-1)),b=[r];var i={__name:"sso_redirect",setup(e){const t=Object(n["c"])(),c=Object(n["d"])(),d=()=>t.query.url||"",r=()=>{const e=d(),t=Object(a["a"])("SSOTOKEN")||Object(a["a"])("token");t?e?c.push(e):c.push("/"):(Object(a["d"])("FounderUrl",e),window.location.href="http://localhost:8006/bagl/mosty-base/fzSsoLogin")};return Object(o["onMounted"])(()=>{r()}),(e,t)=>(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",s,b))}},p=(c("5dbe"),c("d959")),l=c.n(p);const u=l()(i,[["__scopeId","data-v-a3e803fa"]]);t["default"]=u},"5dbe":function(e,t,c){"use strict";c("8ddc")},"8ddc":function(e,t,c){}}]); (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-1143165c"],{"0918":function(e,t,c){"use strict";c.r(t);var o=c("7a23"),n=c("6605"),a=c("5d2d");const d=e=>(Object(o["pushScopeId"])("data-v-a3e803fa"),e=e(),Object(o["popScopeId"])(),e),s={class:"sso-redirect-container"},r=d(()=>Object(o["createElementVNode"])("div",{class:"loading-wrapper"},[Object(o["createElementVNode"])("div",{class:"loading-text"},"正在跳转...")],-1)),b=[r];var i={__name:"sso_redirect",setup(e){const t=Object(n["c"])(),c=Object(n["d"])(),d=()=>t.query.url||"",r=()=>{const e=d(),t=Object(a["a"])("SSOTOKEN")||Object(a["a"])("token");t?e?c.push(e):c.push("/"):(Object(a["c"])("FounderUrl",e),window.location.href="http://localhost:8006/bagl/mosty-base/fzSsoLogin")};return Object(o["onMounted"])(()=>{r()}),(e,t)=>(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",s,b))}},p=(c("5dbe"),c("d959")),l=c.n(p);const u=l()(i,[["__scopeId","data-v-a3e803fa"]]);t["default"]=u},"5dbe":function(e,t,c){"use strict";c("8ddc")},"8ddc":function(e,t,c){}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d22bd3e"],{f141:function(e,t,n){"use strict";n.r(t);var u=n("7a23"),o=n("5502"),c=n("6605"),a=n("5d2d"),l={__name:"oatuh_login",setup(e){const t=Object(u["ref"])(!1),n=Object(u["ref"])([]),l=Object(u["ref"])("/"),r=Object(o["b"])(),s=Object(c["d"])();function i(){const e=Object(c["c"])();let t=e.query.token||null;l.value=e.query.url||"/",null!=t?(t=t.replace(/\ +/g,""),Object(a["c"])("SSOTOKEN",t),d({token:t})):window.location.href="http://155.240.22.188:9020"}const d=e=>{r.dispatch("user/oatuhLogin",e).then(e=>{1===e.deptList.length?s.push(l.value):(n.value=[...e.deptList],t.value=!0,authorization.value=e.jwtToken)})};return Object(u["onMounted"])(()=>{i()}),(e,t)=>null}};const r=l;t["default"]=r}}]);

View File

@ -1 +0,0 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d22bd3e"],{f141:function(e,t,n){"use strict";n.r(t);var o=n("7a23"),c=n("5502"),u=n("6605"),l=n("5d2d"),r={__name:"oatuh_login",setup(e){const t=Object(o["ref"])(!1),n=Object(o["ref"])([]),r=Object(c["b"])(),a=Object(u["d"])();function d(){const e=Object(u["c"])();let t=e.query.token||null;null!=t?(t=t.replace(/\ +/g,""),Object(l["d"])("SSOTOKEN",t),s({token:t})):window.location.href="http://155.240.22.188:9020"}const s=e=>{r.dispatch("user/oatuhLogin",e).then(e=>{const o=Object(l["a"])("FounderUrl")||"/";console.log(o,"FounderUrl"),1===e.deptList.length?(Object(l["c"])("FounderUrl"),a.push(o)):(n.value=[...e.deptList],t.value=!0,authorization.value=e.jwtToken)})};return Object(o["onMounted"])(()=>{d()}),(e,t)=>null}};const a=r;t["default"]=a}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -18,6 +18,7 @@ export function getDict(...args) {
dictCode: d dictCode: d
}).then(result => { }).then(result => {
result?.itemList?.forEach(p => { result?.itemList?.forEach(p => {
p.label = p.zdmc p.label = p.zdmc
p.value = p.dm p.value = p.dm
p.id = p.dm p.id = p.dm

View File

@ -25,12 +25,12 @@
</el-row> </el-row>
<!-- 单选 和多选 和判断 --> <!-- 单选 和多选 和判断 -->
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8" v-for="(item,index) in options" :key="index">
<el-form-item label="选项A"> <el-form-item :label="`${item.zdmc}`" >
<el-input v-model="listQuery.optionA" placeholder="请输入选项A" /> <el-input v-model="listQuery['option'+item.dm]" :placeholder="`请输入选项${item.zdmc}`" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <!-- <el-col :span="8">
<el-form-item label="选项B"> <el-form-item label="选项B">
<el-input v-model="listQuery.optionB" placeholder="请输入选项B" /> <el-input v-model="listQuery.optionB" placeholder="请输入选项B" />
</el-form-item> </el-form-item>
@ -49,20 +49,25 @@
<el-form-item label="选项E"> <el-form-item label="选项E">
<el-input v-model="listQuery.optionE" placeholder="请输入选项E" /> <el-input v-model="listQuery.optionE" placeholder="请输入选项E" />
</el-form-item> </el-form-item>
</el-col> </el-col> -->
</el-row> </el-row>
<!-- 答案 --> <!-- 答案 -->
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="答案" style="width:100%" v-if="listQuery.type == '01'|| listQuery.type == '02'"> <el-form-item label="答案" style="width:100%" v-if="listQuery.type == '01'|| listQuery.type == '02'">
<el-select v-model="listQuery.correctAnswer" placeholder="请选择答案" :multiple="multiple" style="width:100%"> <el-select v-model="listQuery.correctAnswer" placeholder="请选择答案" :multiple="listQuery.type == '02'" style="width:100%">
<el-option v-for="item in props.dic.D_BA_TKDA" :key="item" :label="item.zdmc" :value="item.dm"></el-option> <el-option v-for="item in options" :key="item" :label="item.dm" :value="item.dm"></el-option>
</el-select> </el-select>
</el-form-item > </el-form-item >
<el-form-item label="答案" style="width:100%" prop="isTrue" v-else> <el-form-item label="答案" style="width:100%" v-else>
<el-input v-model="listQuery.isTrue" placeholder="请输入答案" /> <el-select v-model="listQuery.isTrue" placeholder="请选择答案" :multiple="multiple" style="width:100%">
<el-option v-for="item in options" :key="item" :label="item.dm" :value="item.dm"></el-option>
</el-select>
</el-form-item> </el-form-item>
<!-- <el-form-item label="答案" style="width:100%" prop="isTrue" v-else>
<el-input v-model="listQuery.isTrue" placeholder="请输入答案" />
</el-form-item> -->
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -79,6 +84,22 @@ const props = defineProps({
default: () => {} default: () => {}
}, },
}) })
const AnswerDictionary = [
{ dm: 'A', zdmc: '选项A' },
{ dm: 'B', zdmc: '选项B' },
{ dm: 'C', zdmc: '选项C' },
{ dm: 'D', zdmc: '选项D' },
{ dm: 'E', zdmc: '选项E' },
]
const emit = defineEmits(["refresh"]); const emit = defineEmits(["refresh"]);
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
@ -86,9 +107,10 @@ const { proxy } = getCurrentInstance();
const dialogForm = ref(false); const dialogForm = ref(false);
const title = ref(''); const title = ref('');
const listQuery = ref({}) const listQuery = ref({})
const FormRef = ref(); const FormRef = ref(null);
const loading = ref(false); const loading = ref(false);
const multiple = ref(false) const multiple = ref(false)
const options=ref([])
const rules = reactive({ const rules = reactive({
tm: [{ required: true, message: "请输入题目", trigger: "blur" }], tm: [{ required: true, message: "请输入题目", trigger: "blur" }],
type: [{ required: true, message: "请选择题型", trigger: "blur" }], type: [{ required: true, message: "请选择题型", trigger: "blur" }],
@ -99,6 +121,9 @@ const init = (type, row) => {
dialogForm.value = true; dialogForm.value = true;
title.value = type == "add" ? "新增" : type == "edit" ? "编辑" : "详情"; title.value = type == "add" ? "新增" : type == "edit" ? "编辑" : "详情";
if (row) { if (row) {
console.log(row);
changeType(row.type);
qcckPost({},`/bagl/mosty-base/baxx/tkgl/getInfo/${row.id}`).then(res=>{ qcckPost({},`/bagl/mosty-base/baxx/tkgl/getInfo/${row.id}`).then(res=>{
res.correctAnswer = res.type == '02'? res.correctAnswer.split(','):res.correctAnswer; res.correctAnswer = res.type == '02'? res.correctAnswer.split(','):res.correctAnswer;
multiple.value = res.type == '02' ? true:false; multiple.value = res.type == '02' ? true:false;
@ -111,10 +136,15 @@ const changeType = (val) => {
multiple.value = val == '02' ? true : false; multiple.value = val == '02' ? true : false;
switch (val) { switch (val) {
case '01': case '01':
options.value = AnswerDictionary.slice(0, 4)
listQuery.value.isTrue = ''
break
case '02': case '02':
options.value=AnswerDictionary
listQuery.value.isTrue = '' listQuery.value.isTrue = ''
break; break;
case '03': case '03':
options.value=AnswerDictionary.slice(0,2)
listQuery.value.correctAnswer = [] listQuery.value.correctAnswer = []
break; break;
} }
@ -142,7 +172,7 @@ const close = () => {
dialogForm.value = false; dialogForm.value = false;
listQuery.value = { } listQuery.value = { }
multiple.value = false; multiple.value = false;
FormRef.value.reset() // FormRef.value.reset()
};; };;
defineExpose({init}) defineExpose({init})

View File

@ -8,6 +8,12 @@
</el-icon> </el-icon>
<span style="vertical-align: middle">新增</span> <span style="vertical-align: middle">新增</span>
</el-button> </el-button>
<el-button type="primary" @click="handleDelete(ids)">
<el-icon style="vertical-align: middle">
<CirclePlus />
</el-icon>
<span style="vertical-align: middle">批量删除</span>
</el-button>
</PageTitle> </PageTitle>
</div> </div>
<!-- 搜索 --> <!-- 搜索 -->
@ -24,8 +30,8 @@
</template> </template>
<template #answer="{ row }"> <template #answer="{ row }">
<span v-if="row.type == '01' || row.type == '02'"> <span v-if="row.type == '01' || row.type == '02'">
<span v-for="val in row.correctAnswer" class="flex items-center just-center"> <span v-for="(val,idx) in row.correctAnswer" >
<DictTag :value="val" :tag="false" :options="D_BA_TKDA" /> {{val}}<span v-if="row.correctAnswer.length - 1 != idx">,</span>
</span> </span>
</span> </span>
<span v-else>{{ row.isTrue }}</span> <span v-else>{{ row.isTrue }}</span>
@ -75,7 +81,7 @@ const pageData = reactive({
keyCount: 0, keyCount: 0,
tableConfiger: { tableConfiger: {
rowHieght: 61, rowHieght: 61,
showSelectType: "null", showSelectType: "checkBox",
loading: false loading: false
}, },
total: 0, total: 0,
@ -107,7 +113,10 @@ const onSearch = (val) => {
pageData.pageConfiger.pageCurrent = 1; pageData.pageConfiger.pageCurrent = 1;
getList(); getList();
}; };
const ids=ref()
const chooseData = (val) => {
ids.value=val.map(item=>item.id)
}
const changeNo = (val) => { const changeNo = (val) => {
pageData.pageConfiger.pageNum = val; pageData.pageConfiger.pageNum = val;
getList(); getList();
@ -122,6 +131,8 @@ const getList = () => {
pageData.tableConfiger.loading = true; pageData.tableConfiger.loading = true;
let data = { ...pageData.pageConfiger, ...queryFrom.value }; let data = { ...pageData.pageConfiger, ...queryFrom.value };
qcckPost(data, "/bagl/mosty-base/baxx/tkgl/page").then((res) => { qcckPost(data, "/bagl/mosty-base/baxx/tkgl/page").then((res) => {
console.log(res);
let arr = res.records || [] let arr = res.records || []
arr.forEach(item => { arr.forEach(item => {
item.correctAnswer = item.correctAnswer.split(',') item.correctAnswer = item.correctAnswer.split(',')
@ -138,7 +149,7 @@ const getList = () => {
// 删除 // 删除
const handleDelete = (ids) => { const handleDelete = (ids) => {
proxy.$modal.confirm("是否确认删除该题目?").then(() => { proxy.$modal.confirm("是否确认删除该题目?").then(() => {
qcckPost(ids, "/bagl/mosty-base/baxx/tkgl/remove").then(() => { qcckPost({idList:ids}, "/bagl/mosty-base/baxx/tkgl/remove").then(() => {
proxy.$modal.msgSuccess("删除成功"); proxy.$modal.msgSuccess("删除成功");
getList(); getList();
}); });

View File

@ -142,6 +142,8 @@ const handleLogin = () => {
// 登录后操作; // 登录后操作;
if (res.deptList.length === 1) { if (res.deptList.length === 1) {
router.push("/"); router.push("/");
console.log("xxxxxxx");
// window.location.href = "/"; // window.location.href = "/";
} else { } else {
deptList.value = [...res.deptList]; deptList.value = [...res.deptList];

View File

@ -4,7 +4,7 @@ function resolve(dir) {
return path.join(__dirname, dir); return path.join(__dirname, dir);
} }
// const serverHost = "http://192.168.1.98:8006";//毛毛 // const serverHost = "http://192.168.1.98:8006";//毛毛
const serverHost = "http://192.168.1.32:8016";//波哥 const serverHost = "http://192.168.1.32:8066";//波哥
// const serverHost = "http://192.168.0.231:8006"//线上 // const serverHost = "http://192.168.0.231:8006"//线上
// const serverHost = "http://47.108.232.77:9537";//波哥 // const serverHost = "http://47.108.232.77:9537";//波哥
// const serverHost = "http://127.0.0.1:8006" // const serverHost = "http://127.0.0.1:8006"
@ -39,19 +39,14 @@ module.exports = {
proxyReq.setHeader("Connection", "Keep-Alive"); //设置长连接 proxyReq.setHeader("Connection", "Keep-Alive"); //设置长连接
} }
}, },
"/bagl/mosty-base": { '/bagl/mosty-base': {
target: serverHost, // 后端服务器地址 target: 'http://192.168.1.32:8066', // 后端服务器地址
changeOrigin: true, // 允许跨域 changeOrigin: true, // 允许跨域
secure: false, // 如果是https需要设置为false secure: false, // 如果是https需要设置为false
pathRewrite: { pathRewrite: {
'^/bagl/mosty-base': '/mosty-api/mosty-base' // 路径重写/bagl -> /mosty-api '^/bagl/mosty-base': '/mosty-base' // 精确路径重写
} }
}, },
"/mosty-base": {
target: serverHost,
changeOrigin: true,
logLevel: "debug"
},
"/data/rec": { "/data/rec": {
target: "http://80.93.24.195:8181", target: "http://80.93.24.195:8181",
changeOrigin: true, changeOrigin: true,