Browse Source

修改 bug

master
王泽彦 8 months ago
parent
commit
4a5be38b1c
  1. 11
      admin/yarn.lock
  2. 4
      uniapp/pages-market/clue/class_arrangement.vue
  3. 400
      uniapp/pages-market/clue/edit_clues.less
  4. 85
      uniapp/pages-market/clue/index.vue

11
admin/yarn.lock

@ -226,10 +226,10 @@
resolved "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.10.tgz" resolved "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.10.tgz"
integrity sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ== integrity sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ==
"@esbuild/darwin-x64@0.16.17": "@esbuild/linux-x64@0.16.17":
version "0.16.17" version "0.16.17"
resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz" resolved "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz"
integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==
"@eslint/eslintrc@^1.4.1": "@eslint/eslintrc@^1.4.1":
version "1.4.1" version "1.4.1"
@ -2040,11 +2040,6 @@ fs.realpath@^1.0.0:
resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz" resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
fsevents@~2.3.2:
version "2.3.3"
resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
function-bind@^1.1.2: function-bind@^1.1.2:
version "1.1.2" version "1.1.2"
resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz" resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz"

4
uniapp/pages-market/clue/class_arrangement.vue

@ -95,9 +95,9 @@
<view class="row">校区{{ course.campus_name || '未设置' }}</view> <view class="row">校区{{ course.campus_name || '未设置' }}</view>
<view class="row">教室{{ course.venue ? course.venue.venue_name : '未设置' }}</view> <view class="row">教室{{ course.venue ? course.venue.venue_name : '未设置' }}</view>
<!-- <view class="row">课程{{ course.course ? course.course.course_name : '未设置' }}</view>--> <!-- <view class="row">课程{{ course.course ? course.course.course_name : '未设置' }}</view>-->
<view class="row">班级{{ course.class_id ? course.classmodel.class_name : '未设置' }}</view> <view class="row">班级{{ course.class_id && course.classmodel ? course.classmodel.class_name : '未设置' }}</view>
<view class="row">人数{{ course.available_capacity || 0 }}</view> <view class="row">人数{{ course.available_capacity || 0 }}</view>
<view class="row">安排情况{{ course.student ? course.student.length : 0 }}/{{course.max_students ? course.max_students : '不限'}}</view> <view class="row">安排情况{{ course.student && Array.isArray(course.student) ? course.student.length : 0 }}/{{course.max_students ? course.max_students : '不限'}}</view>
</view> </view>
<view class="card-footer"> <view class="card-footer">
<button class="detail-btn" @click="viewDetail(course)">详情</button> <button class="detail-btn" @click="viewDetail(course)">详情</button>

400
uniapp/pages-market/clue/edit_clues.less

@ -0,0 +1,400 @@
.search_box {
padding: 20rpx 40rpx;
border-bottom: 1px solid #333333;
display: flex;
justify-content: space-between;
align-items: center;
.input_box {
width: 70%;
input {
width: 100%;
height: 60rpx;
color: #fff;
font-size: 28rpx;
}
}
.btn {
font-size: 28rpx;
color: #24BA9F;
}
}
.assemble {
width: 100%;
height: 100vh;
background: #292929;
overflow: auto;
:deep(.fui-form__item-bottom) {
background: transparent !important;
left: 0 !important;
right: 0 !important;
display: none !important;
}
}
.title {
font-size: 26rpx;
color: #fff;
padding: 26rpx 0 26rpx 32rpx;
}
.input-title {
font-size: 26rpx;
color: #fff;
}
.form-style {
width: 100%;
:deep(.fui-form__item-bottom) {
background: transparent !important;
left: 0 !important;
right: 0 !important;
display: none !important;
}
}
.form-style-vid {
display: flex;
align-items: center;
justify-content: space-between;
padding: 12rpx 0;
}
.input-style {
text-align: right !important;
:deep(.fui-label__text) {
margin-top: 10rpx;
}
:deep(.fui-form__item-flex) {
align-items: flex-start !important;
}
:deep(.fui-form__item-flex-start) {
align-items: flex-start !important;
}
:deep(.fui-textarea__wrap) {
border: none !important;
padding: 0 !important;
}
:deep(.fui-textarea__counter) {
padding-right: 0 !important;
}
}
.textarea-container {
width: 100%;
padding: 0 0 20rpx 0;
:deep(.fui-textarea__wrap) {
border: none !important;
padding: 0 !important;
background-color: #434544;
}
:deep(.fui-textarea__placeholder) {
text-align: left;
}
:deep(.fui-textarea__inner) {
text-align: left;
}
:deep(.fui-form__item-bottom) {
display: none !important;
}
}
.fui-btn__box {
margin: 50rpx auto 120rpx;
width: 92%;
}
.fui-scroll__wrap {
height: 60vh;
.title_box {
padding: 10rpx 20rpx;
display: flex;
justify-content: space-between;
align-items: center;
.title {
font-size: 28rpx;
color: #101010;
}
}
.section_ul {
margin-bottom: 100rpx;
height: 98%;
.not_list {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
.img {
width: 112rpx;
height: 112rpx;
}
.title {
padding: 0;
margin-top: 10rpx;
color: #101010;
font-size: 28rpx;
text-align: center;
}
}
.ul {
padding: 26rpx;
padding-bottom: 100rpx;
display: flex;
flex-direction: column;
.li {
margin-bottom: 26rpx;
padding: 26rpx;
display: flex;
justify-content: space-between;
gap: 10rpx;
border-radius: 18rpx;
background-color: rgba(67, 69, 68, 1);
color: #fff;
font-size: 28rpx;
border: 0rpx solid rgba(121, 121, 121, 1);
.left_box {
width: 80%;
display: flex;
flex-direction: column;
gap: 20rpx;
.box_1 {
display: flex;
align-items: center;
.img {
width: 48rpx;
height: 48rpx;
border-right: 50%;
}
.name {
margin-left: 20rpx;
}
.tag {
margin-left: 20rpx;
width: 84rpx;
height: 32rpx;
line-height: 28rpx;
border-radius: 0rpx 20rpx 20rpx 20rpx;
background-color: rgba(236, 128, 141, 0.3);
color: rgba(240, 90, 90, 1);
font-size: 20rpx;
text-align: center;
border: 0rpx solid rgba(121, 121, 121, 1);
}
}
.box_2 {
display: flex;
justify-content: space-between;
align-items: center;
.left {
display: flex;
align-items: flex-end;
.name {
font-size: 28rpx;
}
.call {
margin-left: 10rpx;
font-size: 24rpx;
color: #ba7b30;
}
}
}
.box_3 {
display: flex;
gap: 30rpx;
.left {}
.right {
display: flex;
align-items: center;
gap: 10rpx;
.img {
width: 16rpx;
height: 16rpx;
border-right: 50%;
}
}
}
}
.right_box {
width: 25%;
display: flex;
justify-content: space-between;
align-items: center;
.img {
width: 70rpx;
height: 70rpx;
border-radius: 50%;
}
}
}
}
}
}
.save-btn-box {
position: fixed;
left: 0;
right: 0;
bottom: 0;
z-index: 100;
background: #292929;
padding: 20rpx 40rpx 40rpx 40rpx;
box-shadow: 0 -2rpx 8rpx rgba(0,0,0,0.12);
}
.safe-area-bottom {
width: 100%;
height: 180rpx;
}
.quick-fill-mask {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.6);
z-index: 1500;
display: flex;
align-items: center;
justify-content: center;
padding: 40rpx;
}
.quick-fill-content {
background: #fff;
border-radius: 16rpx;
width: 100%;
max-width: 600rpx;
max-height: 80vh;
display: flex;
flex-direction: column;
}
.quick-fill-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 32rpx;
border-bottom: 1px solid #f0f0f0;
}
.quick-fill-title {
font-size: 32rpx;
font-weight: 600;
color: #333;
}
.quick-fill-close {
width: 60rpx;
height: 60rpx;
display: flex;
align-items: center;
justify-content: center;
.close-text {
font-size: 32rpx;
color: #999;
}
}
.quick-fill-body {
padding: 32rpx;
flex: 1;
overflow-y: auto;
}
.quick-fill-tip {
margin-bottom: 24rpx;
font-size: 24rpx;
color: #666;
line-height: 1.5;
text:first-child {
display: block;
margin-bottom: 8rpx;
}
text:last-child {
display: block;
color: #29d3b4;
font-weight: 500;
}
}
.quick-fill-textarea {
width: 100%;
height: 300rpx;
border: 1px solid #ddd;
border-radius: 8rpx;
padding: 16rpx;
font-size: 28rpx;
line-height: 1.5;
background: #fafafa;
box-sizing: border-box;
}
.quick-fill-buttons {
display: flex;
gap: 20rpx;
padding: 32rpx;
border-top: 1px solid #f0f0f0;
}
.quick-fill-btn {
flex: 1;
height: 72rpx;
line-height: 72rpx;
text-align: center;
border-radius: 8rpx;
font-size: 28rpx;
font-weight: 600;
&.cancel-btn {
background: #f5f5f5;
color: #666;
border: 1px solid #ddd;
}
&.confirm-btn {
background: #29d3b4;
color: #fff;
}
}

85
uniapp/pages-market/clue/index.vue

@ -17,16 +17,22 @@
</view> </view>
</view> </view>
<view class="card" v-for="(v,k) in tableList_1" :key="k"> <view class="card" v-for="(v,k) in tableList_1" :key="k">
<!-- 状态水印 -->
<view class="status-watermark" v-if="!v.customerResource.communication_time">
新资源
</view>
<view class="card-content"> <view class="card-content">
<view class="card-left" @click="clue_info(v)"> <view class="card-left" @click="clue_info(v)">
<view style="display: flex;align-items: center;padding: 12rpx;"> <view class="user-info-row">
<view> <view class="user-avatar">
<image :src="$util.img('/uniapp_src/static/images/index/myk.png')" class="card-image"> <image :src="$util.img('/uniapp_src/static/images/index/myk.png')" class="card-image">
</image> </image>
</view> </view>
<view class="user-details">
<view class="card-text">{{ v.customerResource.name }}</view> <view class="card-text">{{ v.customerResource.name }}</view>
<view class="card-con-span">{{ v.customerResource.phone_number }}</view> <view class="card-con-span">{{ v.customerResource.phone_number }}</view>
</view> </view>
</view>
<view class="card-con"> <view class="card-con">
所属校区{{ v.customerResource.campus_name }} 所属校区{{ v.customerResource.campus_name }}
</view> </view>
@ -127,18 +133,24 @@
</view> </view>
</view> </view>
<view class="card" v-for="(v,k) in tableList_2" :key="k" @click="batchMode ? toggleItemSelection(v) : null"> <view class="card" v-for="(v,k) in tableList_2" :key="k" @click="batchMode ? toggleItemSelection(v) : null">
<!-- 状态水印 -->
<view class="status-watermark" v-if="!v.customerResource.communication_time">
新资源
</view>
<view class="card-content"> <view class="card-content">
<view class="card-left"> <view class="card-left">
<view style="display: flex;align-items: center;padding: 12rpx;"> <view class="user-info-row">
<!-- 批量选择复选框 --> <!-- 批量选择复选框 -->
<view v-if="batchMode" class="batch_checkbox" @click.stop="toggleItemSelection(v)"> <view v-if="batchMode" class="batch_checkbox" @click.stop="toggleItemSelection(v)">
<text class="checkbox" :class="{ checked: selectedItems.includes(v.id) }"></text> <text class="checkbox" :class="{ checked: selectedItems.includes(v.id) }"></text>
</view> </view>
<view> <view class="user-avatar">
<image :src="$util.img('/uniapp_src/static/images/index/myk.png')" class="card-image"> <image :src="$util.img('/uniapp_src/static/images/index/myk.png')" class="card-image">
</image> </image>
</view> </view>
<view class="user-details">
<view class="card-text">{{v.customerResource.name}}</view> <view class="card-text">{{v.customerResource.name}}</view>
</view>
<!-- <view class="card-label">{{v.is_status == 1 ? '试听' : '成交'}}</view>--> <!-- <view class="card-label">{{v.is_status == 1 ? '试听' : '成交'}}</view>-->
</view> </view>
<view class="card-con"> <view class="card-con">
@ -1570,6 +1582,41 @@
border-radius: 16rpx; border-radius: 16rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
position: relative;
overflow: hidden;
}
/* 状态水印样式 */
.status-watermark {
position: absolute;
top: 0;
left: 0;
background: linear-gradient(135deg, #ff6b35, #ff5722);
color: #fff;
font-size: 16rpx;
font-weight: 600;
padding: 4rpx 16rpx;
z-index: 10;
box-shadow: 0 2rpx 8rpx rgba(255, 107, 53, 0.4);
letter-spacing: 0.5rpx;
border-radius: 0 0 8rpx 0;
animation: watermarkGlow 2s ease-in-out infinite;
min-width: 60rpx;
text-align: center;
line-height: 1.3;
white-space: nowrap;
}
@keyframes watermarkGlow {
0%, 100% {
box-shadow: 0 2rpx 8rpx rgba(255, 107, 53, 0.3);
}
50% {
box-shadow: 0 4rpx 16rpx rgba(255, 107, 53, 0.5);
}
}
.card {
.card-content { .card-content {
display: flex; display: flex;
@ -1671,8 +1718,9 @@
.card-text { .card-text {
font-size: 32rpx; font-size: 32rpx;
padding-left: 16rpx;
color: #fff; color: #fff;
margin: 0;
padding: 0;
} }
.card-label { .card-label {
@ -1687,14 +1735,34 @@
.card-con { .card-con {
font-size: 30rpx; font-size: 30rpx;
padding: 8rpx 10rpx 8rpx 16rpx; padding: 8rpx 16rpx 8rpx 8rpx;
color: #fff; color: #fff;
} }
.card-con-span { .card-con-span {
font-size: 24rpx; font-size: 24rpx;
color: #a47332; color: #a47332;
padding-left: 12rpx; margin: 0;
padding: 0;
}
/* 用户信息行样式 */
.user-info-row {
display: flex !important;
align-items: center !important;
padding: 30rpx 16rpx 12rpx 8rpx !important;
gap: 12rpx;
.user-avatar {
flex-shrink: 0;
}
.user-details {
flex: 1;
display: flex !important;
align-items: center !important;
gap: 16rpx;
}
} }
.drop-image-x { .drop-image-x {
@ -1892,7 +1960,8 @@
} }
.batch_checkbox { .batch_checkbox {
margin-right: 20rpx; margin-right: 12rpx;
margin-left: -74rpx;
padding: 8rpx; padding: 8rpx;
} }

Loading…
Cancel
Save