JLBA202505130001_关于吉林银行新建AI智能培训系统的需求_开发任务详情样式完成

This commit is contained in:
田岩
2026-01-27 16:56:58 +08:00
parent 29a1bbf50c
commit 3d8dda7392
7 changed files with 78 additions and 21 deletions
+2 -2
View File
@@ -7,7 +7,7 @@ ENV = 'development'
#VITE_APP_BASE_API_Url = 'https://aits.jlbank.com.cn:7001' #VITE_APP_BASE_API_Url = 'https://aits.jlbank.com.cn:7001'
VITE_APP_BASE_API_Url = 'https://aitstest.jlbank.com.cn:7001' #VITE_APP_BASE_API_Url = 'https://aitstest.jlbank.com.cn:7001'
# VITE_APP_BASE_API_Url = 'https://aitstest.jlbank.com.cn:7002' # VITE_APP_BASE_API_Url = 'https://aitstest.jlbank.com.cn:7002'
# VITE_APP_BASE_API_Url = 'http://192.168.247.200' # VITE_APP_BASE_API_Url = 'http://192.168.247.200'
@@ -16,7 +16,7 @@ VITE_APP_BASE_API_Url = 'https://aitstest.jlbank.com.cn:7001'
# dev # dev
# DEV # DEV
#VITE_APP_BASE_API_Url = 'http://25.18.122.65:7001' VITE_APP_BASE_API_Url = 'http://25.18.122.65:7001'
# sit # sit
#VITE_APP_BASE_API_Url = 'http://25.18.122.91:9786' #VITE_APP_BASE_API_Url = 'http://25.18.122.91:9786'
@@ -3,29 +3,30 @@
<!-- 箭头指示 --> <!-- 箭头指示 -->
<view class="arrow-div"> <view class="arrow-div">
<view class="big-arrow"> <view class="big-arrow">
<image class="img" :src="statusOpen?bigArrow2:bigArrow1" mode=""></image> <image class="img" :src="statusOpen ? bigArrow2 : bigArrow1" mode=""></image>
</view> </view>
<view class="small-arrow"> <view class="small-arrow">
<image class="img" src="@/static/images/learningTasks/small-arrow.png" mode=""></image> <image class="img" src="@/static/images/learningTasks/small-arrow.png" mode=""></image>
</view> </view>
</view> </view>
<view class="idea-div"> <view class="idea-div">
<image class="img" src="@/static/images/learningTasks/idea-1.png" mode="aspectFit"></image> <image class="img" :src="statusOpen ? idea2 : idea1" mode="aspectFit"></image>
</view> </view>
<view class="mid-div"> <view class="mid-div">
<view class="title-div">{{ props.item.crsName }}xx{{props.item.status}}</view> <view class="title-div">{{ props.item.crsName }}</view>
<view class="button-div"> <view class="button-div">
<view class="button button-status-1"> <view class="button" :class="isFinishStudy.className" @click="item_click(item)">
<view class="button-icon"> <view class="button-icon">
<image class="img" src="@/static/images/learningTasks/button-1.png" mode="aspectFit"></image> <image class="img" :src="isFinishStudy.icon" mode="aspectFit"></image>
</view> </view>
<view class="button-text">完成学习</view> <view class="button-text">{{ isFinishStudy.text }}</view>
</view> </view>
<view class="button button-status-2">
<view class="button" :class="isFinishExam.className" @click="item_click(item)">
<view class="button-icon"> <view class="button-icon">
<image class="img" src="@/static/images/learningTasks/button-2.png" mode="aspectFit"></image> <image class="img" :src="isFinishExam.icon" mode="aspectFit"></image>
</view> </view>
<view class="button-text">完成学习</view> <view class="button-text">{{ isFinishExam.text }}</view>
</view> </view>
</view> </view>
</view> </view>
@@ -38,8 +39,14 @@
</template> </template>
<script setup> <script setup>
import bigArrow1 from '@/static/images/learningTasks/big-arrow-1.png' import bigArrow1 from '@/static/images/learningTasks/big-arrow-1.png';
import bigArrow2 from '@/static/images/learningTasks/big-arrow-2.png' import bigArrow2 from '@/static/images/learningTasks/big-arrow-2.png';
import idea1 from '@/static/images/learningTasks/idea-1.png';
import idea2 from '@/static/images/learningTasks/idea-2.png';
import button1 from '@/static/images/learningTasks/button-1.png';
import button2 from '@/static/images/learningTasks/button-2.png';
import button3 from '@/static/images/learningTasks/button-3.png';
import button4 from '@/static/images/learningTasks/button-4.png';
import { ref, computed } from 'vue'; import { ref, computed } from 'vue';
const props = defineProps({ const props = defineProps({
item: { item: {
@@ -51,6 +58,24 @@
requset: true requset: true
} }
}); });
const emits = defineEmits(['item_click'])
const item_click = (item) => emits('item_click', item)
const buttonStatusDict = {
'01': 'button-status-0',
'02': 'button-status-1',
'03': 'button-status-2'
};
const isFinishStudy = computed(() => ({
className: buttonStatusDict[props.item.isFinishStudy],
text: props.item.isFinishStudy === '02' ? '完成学习' : '去学习',
icon: props.item.isFinishStudy === '02' ? button2 : button1
}));
const isFinishExam = computed(() => ({
className: buttonStatusDict[props.item.isFinishExam],
text: props.item.isFinishStudy === '02' ? '通过考试' : '去考试',
icon: props.item.isFinishStudy === '02' ? button4 : button3
}));
const statusOpen = computed(() => ['01', '02'].includes(props.item.status)); const statusOpen = computed(() => ['01', '02'].includes(props.item.status));
const direction = computed(() => { const direction = computed(() => {
const styleArray = []; const styleArray = [];
@@ -63,14 +88,15 @@
styleArray.push('right'); styleArray.push('right');
} }
// 00进行中、01已完成、02已超时 // 00进行中、01已完成、02已超时
const isFinish = props.item.isFinish; const status = props.item.status;
if (isFinish === '01') { if (status === '01') {
styleArray.push('unfinished'); styleArray.push('unfinished');
} else if (isFinish === '02') { } else if (status === '02') {
styleArray.push('completed'); styleArray.push('completed');
} else { } else {
styleArray.push('not_unlocked'); styleArray.push('not_unlocked');
} }
console.log('styleArray', styleArray);
return styleArray; return styleArray;
}); });
@@ -268,9 +294,13 @@
} }
} }
.button-status-1 { .button-status-1 {
background-color: #63a1ff;
}
.button-status-2 {
background-color: #6baa1b; background-color: #6baa1b;
} }
.button-status-2 {
background-color: #63a1ff;
}
.button-status-0 {
// background-color: #8aa2c6;
display: none !important;
}
</style> </style>
+29 -2
View File
@@ -31,8 +31,22 @@
<view class="time-div"> <view class="time-div">
起止时间{{ detailData.startTm?.substr(0, 10) }}{{ detailData.endTm?.substr(0, 10) }} 起止时间{{ detailData.startTm?.substr(0, 10) }}{{ detailData.endTm?.substr(0, 10) }}
</view> </view>
<view class="fl1"></view>
<!-- 收藏盒子 --> <!-- 收藏盒子 -->
<view class="collection-div"></view> <view class="num-item" @click="collect_click(detailData.collectionId)">
<image
v-if="detailData.collectionId"
class="collect-icon"
src="@/static/images/courseDetail/out_collect.png"
mode="widthFix"
></image>
<image
v-else
class="collect-icon"
src="@/static/images/courseDetail/in_collect.png"
mode="widthFix"
></image>
</view>
</view> </view>
<view class="other-div-2"> <view class="other-div-2">
<!-- 完成人数盒子 --> <!-- 完成人数盒子 -->
@@ -58,7 +72,7 @@
</view> </view>
<!-- 步骤 --> <!-- 步骤 -->
<view class="step-list-div"> <view class="step-list-div">
<detailsItem v-for="(item, index) in data_list" :item="item" :index="index"></detailsItem> <detailsItem v-for="(item, index) in data_list" :item="item" :index="index" @item_click="item_click"></detailsItem>
</view> </view>
</z-paging> </z-paging>
</view> </view>
@@ -274,6 +288,8 @@
} }
.other-div-1 { .other-div-1 {
margin-top: 6rpx; margin-top: 6rpx;
display: flex;
align-items: center;
.time-div { .time-div {
font-weight: 400; font-weight: 400;
font-size: 22rpx; font-size: 22rpx;
@@ -281,6 +297,17 @@
line-height: 33rpx; line-height: 33rpx;
font-family: Arial, Helvetica, sans-serif; font-family: Arial, Helvetica, sans-serif;
} }
.num-item {
display: flex;
align-items: center;
font-size: 30rpx;
color: #666666;
.collect-icon {
width: 36rpx;
height: 36rpx;
}
}
} }
.other-div-2 { .other-div-2 {
width: 100%; width: 100%;
Binary file not shown.

Before

Width:  |  Height:  |  Size: 823 B

After

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 613 B

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1020 B