yujialong 6 months ago
parent 092e66ac0b
commit 83530b7bf4
  1. 2
      .env
  2. 6
      package-lock.json
  3. 4
      package.json
  4. 78
      src/components/Panel/index.vue
  5. 2
      src/permission.ts
  6. 4
      src/views/product/bank/Config.vue
  7. 1
      src/views/product/bank/Info.vue

@ -2,7 +2,7 @@ VITE_APP_TITLE=金融产品设计及数字化营销沙盘
VITE_PORT=9520 VITE_PORT=9520
# VITE_PROXY=http://192.168.31.125:8080 # VITE_PROXY=http://192.168.31.125:8080
VITE_PUBLIC_PATH=./ VITE_PUBLIC_PATH=./
VITE_BASE_API=http://192.168.31.51:9000 VITE_BASE_API=http://192.168.31.217:9000
# VITE_BASE_API=http://121.37.12.51 # VITE_BASE_API=http://121.37.12.51
# VITE_BASE_API=https://www.occupationlab.com # VITE_BASE_API=https://www.occupationlab.com
VITE_I18N_LOCALE=zh-cn VITE_I18N_LOCALE=zh-cn

6
package-lock.json generated

@ -1236,9 +1236,9 @@
"dev": true "dev": true
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30001311", "version": "1.0.30001620",
"resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001311.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz",
"integrity": "sha512-mleTFtFKfykEeW34EyfhGIFjGCqzhh38Y0LhdQ9aWF+HorZTtdgKV/1hEE0NlFkG2ubvisPV6l400tlbPys98A==", "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==",
"dev": true "dev": true
}, },
"capital-case": { "capital-case": {

@ -6,8 +6,8 @@
"dev": "vite", "dev": "vite",
"test": "vite build --mode test", "test": "vite build --mode test",
"build": "vite build", "build": "vite build",
"lint": "eslint --ext .vue,.ts src/", "lint": "eslint --ext .vue,.ts src/",
"lint:fix": "eslint --ext .vue,.ts src/ --fix" "lint:fix": "eslint --ext .vue,.ts src/ --fix"
}, },
"dependencies": { "dependencies": {
"@element-plus/icons-vue": "^0.2.7", "@element-plus/icons-vue": "^0.2.7",

@ -1,38 +1,36 @@
<template> <template>
<div v-if="!hidePanel" :class="['panel', { active: visible }]" id="panel" ref="container" :style="style"> <div v-if="!hidePanel" :class="['panel', { active: visible }]" id="panel" ref="container" :style="style">
<el-container class="scrollbar" id="container" v-show="visible"> <el-container class="scrollbar" id="container" v-show="visible">
<el-header id="header"> <el-header class="panel-header" id="panelHeader">
<div class="panel-header" id="panelHeader"> <div class="project">
<div class="project"> <div class="inline-flex items-center">
<div class="inline-flex items-center"> <p class="whitespace-nowrap">实训项目</p>
<p>实训项目</p> <el-tooltip effect="dark" content="点击右侧“下三角”按钮可切换实验项目" placement="bottom">
<el-tooltip effect="dark" content="点击右侧“下三角”按钮可切换实验项目" placement="bottom"> <i class="info el-icon-warning" style="margin-left: 10px"></i>
<i class="info el-icon-warning" style="margin-left: 10px"></i> </el-tooltip>
</el-tooltip>
</div>
<el-select v-model="param.projectId" placeholder="请选择" class="select" :disabled="per != 0" @change="getCache(1)">
<el-option v-for="(item, i) in projectList" :key="item.projectId" :label="i + 1 + '. ' + item.projectName" :value="item.projectId"></el-option>
</el-select>
</div>
<div class="item">
<div class="count">
实训{{ text }}时间 <span>{{ day }}</span
> <span>{{ hour }}</span
>小时 <span>{{ minutes }}</span
> <span>{{ seconds }}</span
>
</div>
</div>
<div v-if="per !== 2" class="item">
总得分
<span class="total-score">{{ grade }}</span>
</div> </div>
<div> <el-select v-model="param.projectId" placeholder="请选择" class="select" :disabled="per != 0" @change="getCache(1)">
<el-button class="h-[40px]" @click="toReport" v-if="isSubmit">查看实验报告</el-button> <el-option v-for="(item, i) in projectList" :key="item.projectId" :label="i + 1 + '. ' + item.projectName" :value="item.projectId"></el-option>
<el-button class="reload h-[40px]" @click="reloadConfirm" v-show="per == 0">重新开始</el-button> </el-select>
<el-button type="primary" class="submit btn h-[40px]" :loading="submiting" @click="confirmSubmit" :disabled="isSubmit || !projectList.length">提交</el-button> </div>
<div class="item">
<div class="count">
实训{{ text }}时间 <span>{{ day }}</span
> <span>{{ hour }}</span
>小时 <span>{{ minutes }}</span
> <span>{{ seconds }}</span
>
</div> </div>
</div> </div>
<div v-if="per !== 2" class="item">
总得分
<span class="total-score">{{ grade }}</span>
</div>
<div class="actions">
<el-button class="h-[40px]" @click="toReport" v-if="isSubmit">查看实验报告</el-button>
<el-button class="reload h-[40px]" @click="reloadConfirm" v-show="per == 0">重新开始</el-button>
<el-button type="primary" class="submit btn h-[40px]" :loading="submiting" @click="confirmSubmit" :disabled="isSubmit || !projectList.length">提交</el-button>
</div>
</el-header> </el-header>
<el-container id="infoContainer"> <el-container id="infoContainer">
<el-aside id="aside" width="30%"> <el-aside id="aside" width="30%">
@ -749,19 +747,14 @@ onUnmounted(() => {
<style lang="scss" scoped> <style lang="scss" scoped>
.el-main { .el-main {
width: 60%; @apply w-[60%] p-0 mr-5 mb-2 ml-2 text-[#333] text-base whitespace-pre-wrap bg-white overflow-hidden;
background-color: #fff;
color: #333;
padding: 0;
font-size: 16px;
margin: 0px 20px 10px 10px;
white-space: pre-wrap;
overflow: hidden;
} }
.panel-header { .panel-header {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
flex-wrap: wrap;
height: auto !important;
.project { .project {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
@ -902,7 +895,7 @@ onUnmounted(() => {
font-size: 14px; font-size: 14px;
} }
:deep(.select) { :deep(.select) {
@apply flex-1; @apply flex-1 min-w-[180px];
.el-select__caret:before { .el-select__caret:before {
// content: '\e78f'; // content: '\e78f';
padding: 3px; padding: 3px;
@ -976,4 +969,13 @@ onUnmounted(() => {
.ql-editor { .ql-editor {
@apply text-sm; @apply text-sm;
} }
@media (max-width: 1450px) {
.panel-header {
.actions {
position: absolute;
top: 70px;
right: 30px;
}
}
}
</style> </style>

@ -6,7 +6,7 @@ import router from './router';
NProgress.configure({ showSpinner: false }); // NProgress Configuration NProgress.configure({ showSpinner: false }); // NProgress Configuration
router.beforeEach(async (to: RouteLocationNormalized) => { router.beforeEach(async () => {
NProgress.start(); NProgress.start();
return true; return true;
}); });

@ -643,7 +643,7 @@ let form = reactive<RuleForm>({
}); });
const curPreviewTitle = ref<string>(); const curPreviewTitle = ref<string>();
const assessNames = ['政务黑名单', '征信黑名单', '商采黑名单', '行内黑名单', '企业黑名单', '反欺诈策略', '负面行业黑名单策略']; const assessNames = ['政务黑名单', '征信黑名单', '商采黑名单', '行内黑名单', '企业黑名单', '反欺诈', '负面行业黑名单'];
const interestNames = ['个人利率模型', '个人额度模型', '企业利率模型']; const interestNames = ['个人利率模型', '个人额度模型', '企业利率模型'];
const afterNames = ['五级分类策略', '贷后检查策略', '贷后评分卡', '贷后预警策略', '贷后催收策略']; const afterNames = ['五级分类策略', '贷后检查策略', '贷后评分卡', '贷后预警策略', '贷后催收策略'];
const asyncComponents = { const asyncComponents = {
@ -1339,7 +1339,7 @@ const previewAfter = async (row: Record<string, any>, i: number) => {
strategyName: row.blackList.find((e) => e.strategyId === tacticsId)?.strategyName, strategyName: row.blackList.find((e) => e.strategyId === tacticsId)?.strategyName,
}; };
await loadComponent(Object.keys(asyncComponents)[i + 12]); await loadComponent(Object.keys(asyncComponents)[i + 12]);
curPreviewTitle.value = `查看${afterNames[i]}策略`; curPreviewTitle.value = `查看${afterNames[i]}`;
visible.value = true; visible.value = true;
}; };
</script> </script>

@ -205,7 +205,6 @@ const loadComponent = async (componentName: string) => {
// //
const getDetail = async () => { const getDetail = async () => {
console.log(111);
userName.value = await getUsername(); userName.value = await getUsername();
if (id.value) { if (id.value) {

Loading…
Cancel
Save