|
|
@ -1,4 +1,4 @@ |
|
|
<template> |
|
|
<template> |
|
|
<view class="assemble"> |
|
|
<view class="assemble"> |
|
|
<fui-segmented-control :values="values" type="text" activeColor="#29d3b4" color="#fff" |
|
|
<fui-segmented-control :values="values" type="text" activeColor="#29d3b4" color="#fff" |
|
|
@click="segmented"></fui-segmented-control> |
|
|
@click="segmented"></fui-segmented-control> |
|
|
@ -6,7 +6,7 @@ |
|
|
<!--我的客户--> |
|
|
<!--我的客户--> |
|
|
<scroll-view v-if="segmented_type == 1" scroll-y="true" :lower-threshold="lowerThreshold" |
|
|
<scroll-view v-if="segmented_type == 1" scroll-y="true" :lower-threshold="lowerThreshold" |
|
|
@scrolltolower="loadMoreData_1" style="height: 100vh;"> |
|
|
@scrolltolower="loadMoreData_1" style="height: 100vh;"> |
|
|
|
|
|
|
|
|
<!-- 搜索按钮区域 --> |
|
|
<!-- 搜索按钮区域 --> |
|
|
<view class="search_section"> |
|
|
<view class="search_section"> |
|
|
<view class="item"> |
|
|
<view class="item"> |
|
|
@ -34,7 +34,7 @@ |
|
|
来源:{{ v.customerResource.source }} |
|
|
来源:{{ v.customerResource.source }} |
|
|
</view> |
|
|
</view> |
|
|
<view class="card-con"> |
|
|
<view class="card-con"> |
|
|
来源渠道:{{ v.customerResource.source_channel }} |
|
|
来源渠道:{{ v.customerResource.source_channel }} |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
<view class="card-right"> |
|
|
<view class="card-right"> |
|
|
@ -186,7 +186,7 @@ |
|
|
<text class="close_text">✕</text> |
|
|
<text class="close_text">✕</text> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
|
|
|
|
|
|
<scroll-view :scroll-y="true" class="popup_scroll_view"> |
|
|
<scroll-view :scroll-y="true" class="popup_scroll_view"> |
|
|
<!-- 第一筛选区域 --> |
|
|
<!-- 第一筛选区域 --> |
|
|
<view class="popup_filter_section"> |
|
|
<view class="popup_filter_section"> |
|
|
@ -200,7 +200,7 @@ |
|
|
<input class="popup_filter_input" placeholder="姓名" v-model="searchForm.name" /> |
|
|
<input class="popup_filter_input" placeholder="姓名" v-model="searchForm.name" /> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
|
|
|
|
|
|
<view class="popup_filter_row"> |
|
|
<view class="popup_filter_row"> |
|
|
<view class="popup_filter_item"> |
|
|
<view class="popup_filter_item"> |
|
|
<text class="popup_filter_label">电话</text> |
|
|
<text class="popup_filter_label">电话</text> |
|
|
@ -213,7 +213,7 @@ |
|
|
</picker> |
|
|
</picker> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
|
|
|
|
|
|
<view class="popup_filter_row" v-if="sourceIndex === 1"> |
|
|
<view class="popup_filter_row" v-if="sourceIndex === 1"> |
|
|
<view class="popup_filter_item full_width"> |
|
|
<view class="popup_filter_item full_width"> |
|
|
<text class="popup_filter_label">来源渠道</text> |
|
|
<text class="popup_filter_label">来源渠道</text> |
|
|
@ -221,7 +221,7 @@ |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
|
|
|
|
|
|
<!-- 第二筛选区域 --> |
|
|
<!-- 第二筛选区域 --> |
|
|
<view class="popup_filter_section"> |
|
|
<view class="popup_filter_section"> |
|
|
<view class="popup_filter_row"> |
|
|
<view class="popup_filter_row"> |
|
|
@ -236,7 +236,7 @@ |
|
|
</picker> |
|
|
</picker> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
|
|
|
|
|
|
<view class="popup_filter_row"> |
|
|
<view class="popup_filter_row"> |
|
|
<view class="popup_filter_item"> |
|
|
<view class="popup_filter_item"> |
|
|
<text class="popup_filter_label">成交类型</text> |
|
|
<text class="popup_filter_label">成交类型</text> |
|
|
@ -251,7 +251,7 @@ |
|
|
</picker> |
|
|
</picker> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
|
|
|
|
|
|
<view class="popup_filter_row"> |
|
|
<view class="popup_filter_row"> |
|
|
<view class="popup_filter_item"> |
|
|
<view class="popup_filter_item"> |
|
|
<text class="popup_filter_label">沟通情况</text> |
|
|
<text class="popup_filter_label">沟通情况</text> |
|
|
@ -268,7 +268,7 @@ |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</scroll-view> |
|
|
</scroll-view> |
|
|
|
|
|
|
|
|
<view class="popup_filter_buttons"> |
|
|
<view class="popup_filter_buttons"> |
|
|
<view class="popup_filter_btn reset_btn" @click="resetSearchOnly">重置</view> |
|
|
<view class="popup_filter_btn reset_btn" @click="resetSearchOnly">重置</view> |
|
|
<view class="popup_filter_btn search_btn" @click="searchDataAndClose">搜索</view> |
|
|
<view class="popup_filter_btn search_btn" @click="searchDataAndClose">搜索</view> |
|
|
@ -355,7 +355,7 @@ |
|
|
lowerThreshold: 100, //距离底部多远触发 |
|
|
lowerThreshold: 100, //距离底部多远触发 |
|
|
isReachedBottom: false, //防止重复加载|true=不可加载|false=可加载 |
|
|
isReachedBottom: false, //防止重复加载|true=不可加载|false=可加载 |
|
|
selectedDate: this.getCurrentDate(), // 初始化当前日期 |
|
|
selectedDate: this.getCurrentDate(), // 初始化当前日期 |
|
|
|
|
|
|
|
|
// 新增筛选相关数据 |
|
|
// 新增筛选相关数据 |
|
|
showSearchPopup: false, // 搜索弹窗是否显示 |
|
|
showSearchPopup: false, // 搜索弹窗是否显示 |
|
|
tempHideSearchPopup: false, // 临时隐藏搜索弹窗的状态 |
|
|
tempHideSearchPopup: false, // 临时隐藏搜索弹窗的状态 |
|
|
@ -372,7 +372,7 @@ |
|
|
communication_status: '', |
|
|
communication_status: '', |
|
|
time_range: '' |
|
|
time_range: '' |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 选择器相关 |
|
|
// 选择器相关 |
|
|
sourceIndex: 0, |
|
|
sourceIndex: 0, |
|
|
sourceOptions: ['全部', '线上', '线下'], |
|
|
sourceOptions: ['全部', '线上', '线下'], |
|
|
@ -793,7 +793,7 @@ |
|
|
} |
|
|
} |
|
|
console.log('选中', e, select_item) |
|
|
console.log('选中', e, select_item) |
|
|
this.closeAssign() //关闭选择窗 |
|
|
this.closeAssign() //关闭选择窗 |
|
|
|
|
|
|
|
|
// 检查是否为批量操作 |
|
|
// 检查是否为批量操作 |
|
|
if (select_item.isBatch && select_item.selectedIds) { |
|
|
if (select_item.isBatch && select_item.selectedIds) { |
|
|
// 批量分配 |
|
|
// 批量分配 |
|
|
@ -827,12 +827,12 @@ |
|
|
}, 1000) |
|
|
}, 1000) |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 批量分配资源 |
|
|
// 批量分配资源 |
|
|
async batchAssignResources(selectedIds, assigneeId) { |
|
|
async batchAssignResources(selectedIds, assigneeId) { |
|
|
let successCount = 0 |
|
|
let successCount = 0 |
|
|
let failCount = 0 |
|
|
let failCount = 0 |
|
|
|
|
|
|
|
|
for (let resourceId of selectedIds) { |
|
|
for (let resourceId of selectedIds) { |
|
|
try { |
|
|
try { |
|
|
let param = { |
|
|
let param = { |
|
|
@ -849,7 +849,7 @@ |
|
|
failCount++ |
|
|
failCount++ |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 显示批量操作结果 |
|
|
// 显示批量操作结果 |
|
|
if (failCount === 0) { |
|
|
if (failCount === 0) { |
|
|
uni.showToast({ |
|
|
uni.showToast({ |
|
|
@ -862,7 +862,7 @@ |
|
|
icon: 'none' |
|
|
icon: 'none' |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 退出批量模式并刷新列表 |
|
|
// 退出批量模式并刷新列表 |
|
|
this.exitBatchMode() |
|
|
this.exitBatchMode() |
|
|
setTimeout(() => { |
|
|
setTimeout(() => { |
|
|
@ -932,7 +932,7 @@ |
|
|
closeShowDrawer() { |
|
|
closeShowDrawer() { |
|
|
this.showDrawer = false |
|
|
this.showDrawer = false |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 新增筛选方法 |
|
|
// 新增筛选方法 |
|
|
// 打开搜索弹窗 |
|
|
// 打开搜索弹窗 |
|
|
openSearchPopup() { |
|
|
openSearchPopup() { |
|
|
@ -940,24 +940,24 @@ |
|
|
this.showSearchPopup = true |
|
|
this.showSearchPopup = true |
|
|
console.log('设置后的状态', this.showSearchPopup) |
|
|
console.log('设置后的状态', this.showSearchPopup) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 搜索并关闭弹窗 |
|
|
// 搜索并关闭弹窗 |
|
|
searchDataAndClose() { |
|
|
searchDataAndClose() { |
|
|
console.log('执行搜索,表单数据:', this.searchForm) |
|
|
console.log('执行搜索,表单数据:', this.searchForm) |
|
|
this.searchDataFromPopup() |
|
|
this.searchDataFromPopup() |
|
|
this.showSearchPopup = false |
|
|
this.showSearchPopup = false |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 从弹窗搜索数据 |
|
|
// 从弹窗搜索数据 |
|
|
async searchDataFromPopup() { |
|
|
async searchDataFromPopup() { |
|
|
// 根据当前标签页选择对应的筛选数据对象 |
|
|
// 根据当前标签页选择对应的筛选数据对象 |
|
|
const currentFilterData = this.segmented_type == 1 ? this.filteredData_1 : this.filteredData_2 |
|
|
const currentFilterData = this.segmented_type == 1 ? this.filteredData_1 : this.filteredData_2 |
|
|
|
|
|
|
|
|
// 将弹窗搜索表单数据映射到筛选数据 |
|
|
// 将弹窗搜索表单数据映射到筛选数据 |
|
|
currentFilterData.campus_name = this.searchForm.campus_name |
|
|
currentFilterData.campus_name = this.searchForm.campus_name |
|
|
currentFilterData.name = this.searchForm.name |
|
|
currentFilterData.name = this.searchForm.name |
|
|
currentFilterData.phone_number = this.searchForm.phone_number |
|
|
currentFilterData.phone_number = this.searchForm.phone_number |
|
|
|
|
|
|
|
|
// 处理时间范围:转换为后端需要的shared_at_arr格式 |
|
|
// 处理时间范围:转换为后端需要的shared_at_arr格式 |
|
|
if (this.searchForm.time_range && this.searchForm.time_range.includes(' ~ ')) { |
|
|
if (this.searchForm.time_range && this.searchForm.time_range.includes(' ~ ')) { |
|
|
const timeArray = this.searchForm.time_range.split(' ~ ') |
|
|
const timeArray = this.searchForm.time_range.split(' ~ ') |
|
|
@ -967,7 +967,7 @@ |
|
|
currentFilterData.shared_at_arr = [] |
|
|
currentFilterData.shared_at_arr = [] |
|
|
currentFilterData.shared_at_str = '' |
|
|
currentFilterData.shared_at_str = '' |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 处理其他搜索条件(如果后端支持) |
|
|
// 处理其他搜索条件(如果后端支持) |
|
|
if (this.searchForm.source && this.searchForm.source !== '全部') { |
|
|
if (this.searchForm.source && this.searchForm.source !== '全部') { |
|
|
currentFilterData.source = this.searchForm.source |
|
|
currentFilterData.source = this.searchForm.source |
|
|
@ -984,9 +984,9 @@ |
|
|
if (this.searchForm.valid_type && this.searchForm.valid_type !== '全部') { |
|
|
if (this.searchForm.valid_type && this.searchForm.valid_type !== '全部') { |
|
|
currentFilterData.valid_type = this.searchForm.valid_type |
|
|
currentFilterData.valid_type = this.searchForm.valid_type |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
console.log('映射后的筛选数据:', currentFilterData) |
|
|
console.log('映射后的筛选数据:', currentFilterData) |
|
|
|
|
|
|
|
|
// 根据当前标签页重置数据并获取列表 |
|
|
// 根据当前标签页重置数据并获取列表 |
|
|
if (this.segmented_type == 1) { |
|
|
if (this.segmented_type == 1) { |
|
|
// 我的客户 |
|
|
// 我的客户 |
|
|
@ -998,23 +998,23 @@ |
|
|
await this.getList_2() |
|
|
await this.getList_2() |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 重置搜索并关闭弹窗 |
|
|
// 重置搜索并关闭弹窗 |
|
|
resetSearchAndClose() { |
|
|
resetSearchAndClose() { |
|
|
this.resetSearch() |
|
|
this.resetSearch() |
|
|
this.showSearchPopup = false |
|
|
this.showSearchPopup = false |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 仅重置搜索(不关闭弹窗) |
|
|
// 仅重置搜索(不关闭弹窗) |
|
|
resetSearchOnly() { |
|
|
resetSearchOnly() { |
|
|
this.resetSearch() |
|
|
this.resetSearch() |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 关闭搜索弹窗 |
|
|
// 关闭搜索弹窗 |
|
|
closeSearchPopup() { |
|
|
closeSearchPopup() { |
|
|
this.showSearchPopup = false |
|
|
this.showSearchPopup = false |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 来源选择器变化 |
|
|
// 来源选择器变化 |
|
|
onSourceChange(e) { |
|
|
onSourceChange(e) { |
|
|
this.sourceIndex = e.detail.value |
|
|
this.sourceIndex = e.detail.value |
|
|
@ -1024,31 +1024,31 @@ |
|
|
this.searchForm.source_channel = '' |
|
|
this.searchForm.source_channel = '' |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 到课类型选择器变化 |
|
|
// 到课类型选择器变化 |
|
|
onAttendanceChange(e) { |
|
|
onAttendanceChange(e) { |
|
|
this.attendanceIndex = e.detail.value |
|
|
this.attendanceIndex = e.detail.value |
|
|
this.searchForm.attendance_type = this.attendanceOptions[this.attendanceIndex] |
|
|
this.searchForm.attendance_type = this.attendanceOptions[this.attendanceIndex] |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 成交类型选择器变化 |
|
|
// 成交类型选择器变化 |
|
|
onDealChange(e) { |
|
|
onDealChange(e) { |
|
|
this.dealIndex = e.detail.value |
|
|
this.dealIndex = e.detail.value |
|
|
this.searchForm.deal_type = this.dealOptions[this.dealIndex] |
|
|
this.searchForm.deal_type = this.dealOptions[this.dealIndex] |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 资源有效类型选择器变化 |
|
|
// 资源有效类型选择器变化 |
|
|
onValidChange(e) { |
|
|
onValidChange(e) { |
|
|
this.validIndex = e.detail.value |
|
|
this.validIndex = e.detail.value |
|
|
this.searchForm.valid_type = this.validOptions[this.validIndex] |
|
|
this.searchForm.valid_type = this.validOptions[this.validIndex] |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 沟通情况选择器变化 |
|
|
// 沟通情况选择器变化 |
|
|
onCommunicationChange(e) { |
|
|
onCommunicationChange(e) { |
|
|
this.communicationIndex = e.detail.value |
|
|
this.communicationIndex = e.detail.value |
|
|
this.searchForm.communication_status = this.communicationOptions[this.communicationIndex] |
|
|
this.searchForm.communication_status = this.communicationOptions[this.communicationIndex] |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 重置搜索 |
|
|
// 重置搜索 |
|
|
async resetSearch() { |
|
|
async resetSearch() { |
|
|
this.searchForm = { |
|
|
this.searchForm = { |
|
|
@ -1069,7 +1069,7 @@ |
|
|
this.dealIndex = 0 |
|
|
this.dealIndex = 0 |
|
|
this.validIndex = 0 |
|
|
this.validIndex = 0 |
|
|
this.communicationIndex = 0 |
|
|
this.communicationIndex = 0 |
|
|
|
|
|
|
|
|
// 重置当前标签页的筛选数据 |
|
|
// 重置当前标签页的筛选数据 |
|
|
if (this.segmented_type == 1) { |
|
|
if (this.segmented_type == 1) { |
|
|
// 我的客户 |
|
|
// 我的客户 |
|
|
@ -1081,17 +1081,17 @@ |
|
|
await this.getList_2() |
|
|
await this.getList_2() |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 获取开单状态样式类 |
|
|
// 获取开单状态样式类 |
|
|
getOrderStatusClass(status) { |
|
|
getOrderStatusClass(status) { |
|
|
return status === '已开单' ? 'status-closed' : 'status-open' |
|
|
return status === '已开单' ? 'status-closed' : 'status-open' |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 获取到访状态样式类 |
|
|
// 获取到访状态样式类 |
|
|
getVisitStatusClass(status) { |
|
|
getVisitStatusClass(status) { |
|
|
return status === '已到' ? 'visit-arrived' : 'visit-not-arrived' |
|
|
return status === '已到' ? 'visit-arrived' : 'visit-not-arrived' |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 批量操作相关方法 |
|
|
// 批量操作相关方法 |
|
|
// 进入批量操作模式 |
|
|
// 进入批量操作模式 |
|
|
enterBatchMode() { |
|
|
enterBatchMode() { |
|
|
@ -1099,14 +1099,14 @@ |
|
|
this.selectedItems = [] |
|
|
this.selectedItems = [] |
|
|
this.isAllSelected = false |
|
|
this.isAllSelected = false |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 退出批量操作模式 |
|
|
// 退出批量操作模式 |
|
|
exitBatchMode() { |
|
|
exitBatchMode() { |
|
|
this.batchMode = false |
|
|
this.batchMode = false |
|
|
this.selectedItems = [] |
|
|
this.selectedItems = [] |
|
|
this.isAllSelected = false |
|
|
this.isAllSelected = false |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 切换单个项目的选择状态 |
|
|
// 切换单个项目的选择状态 |
|
|
toggleItemSelection(item) { |
|
|
toggleItemSelection(item) { |
|
|
const index = this.selectedItems.indexOf(item.id) |
|
|
const index = this.selectedItems.indexOf(item.id) |
|
|
@ -1117,7 +1117,7 @@ |
|
|
} |
|
|
} |
|
|
this.updateAllSelectedState() |
|
|
this.updateAllSelectedState() |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 切换全选状态 |
|
|
// 切换全选状态 |
|
|
toggleSelectAll() { |
|
|
toggleSelectAll() { |
|
|
if (this.isAllSelected) { |
|
|
if (this.isAllSelected) { |
|
|
@ -1128,12 +1128,12 @@ |
|
|
this.isAllSelected = true |
|
|
this.isAllSelected = true |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 更新全选状态 |
|
|
// 更新全选状态 |
|
|
updateAllSelectedState() { |
|
|
updateAllSelectedState() { |
|
|
this.isAllSelected = this.selectedItems.length === this.tableList_2.length && this.tableList_2.length > 0 |
|
|
this.isAllSelected = this.selectedItems.length === this.tableList_2.length && this.tableList_2.length > 0 |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
// 批量分配 |
|
|
// 批量分配 |
|
|
batchAssign() { |
|
|
batchAssign() { |
|
|
if (this.selectedItems.length === 0) { |
|
|
if (this.selectedItems.length === 0) { |
|
|
@ -1188,7 +1188,7 @@ |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 搜索弹窗样式 |
|
|
// 搜索弹窗样式 |
|
|
.search_popup_mask { |
|
|
.search_popup_mask { |
|
|
position: fixed; |
|
|
position: fixed; |
|
|
@ -1201,7 +1201,7 @@ |
|
|
display: flex; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
flex-direction: column; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.search_popup_content { |
|
|
.search_popup_content { |
|
|
background: #fff; |
|
|
background: #fff; |
|
|
border-bottom-left-radius: 24rpx; |
|
|
border-bottom-left-radius: 24rpx; |
|
|
@ -1213,7 +1213,7 @@ |
|
|
display: flex; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
flex-direction: column; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes slideDown { |
|
|
@keyframes slideDown { |
|
|
from { |
|
|
from { |
|
|
transform: translateY(-100%); |
|
|
transform: translateY(-100%); |
|
|
@ -1222,7 +1222,7 @@ |
|
|
transform: translateY(0); |
|
|
transform: translateY(0); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 弹窗搜索内容样式 |
|
|
// 弹窗搜索内容样式 |
|
|
.popup_search_content { |
|
|
.popup_search_content { |
|
|
padding: 0; |
|
|
padding: 0; |
|
|
@ -1235,7 +1235,7 @@ |
|
|
border-bottom-right-radius: 24rpx; |
|
|
border-bottom-right-radius: 24rpx; |
|
|
overflow: hidden; |
|
|
overflow: hidden; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.popup_header { |
|
|
.popup_header { |
|
|
display: flex; |
|
|
display: flex; |
|
|
justify-content: space-between; |
|
|
justify-content: space-between; |
|
|
@ -1243,66 +1243,66 @@ |
|
|
padding: 32rpx; |
|
|
padding: 32rpx; |
|
|
border-bottom: 1px solid #f0f0f0; |
|
|
border-bottom: 1px solid #f0f0f0; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.popup_title { |
|
|
.popup_title { |
|
|
font-size: 32rpx; |
|
|
font-size: 32rpx; |
|
|
font-weight: 600; |
|
|
font-weight: 600; |
|
|
color: #333; |
|
|
color: #333; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.popup_close { |
|
|
.popup_close { |
|
|
width: 60rpx; |
|
|
width: 60rpx; |
|
|
height: 60rpx; |
|
|
height: 60rpx; |
|
|
display: flex; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
justify-content: center; |
|
|
|
|
|
|
|
|
.close_text { |
|
|
.close_text { |
|
|
font-size: 32rpx; |
|
|
font-size: 32rpx; |
|
|
color: #999; |
|
|
color: #999; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.popup_scroll_view { |
|
|
.popup_scroll_view { |
|
|
flex: 1; |
|
|
flex: 1; |
|
|
padding: 32rpx; |
|
|
padding: 32rpx; |
|
|
overflow-y: auto; |
|
|
overflow-y: auto; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.popup_filter_section { |
|
|
.popup_filter_section { |
|
|
margin-bottom: 32rpx; |
|
|
margin-bottom: 32rpx; |
|
|
|
|
|
|
|
|
&:last-child { |
|
|
&:last-child { |
|
|
margin-bottom: 0; |
|
|
margin-bottom: 0; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.popup_filter_row { |
|
|
.popup_filter_row { |
|
|
display: flex; |
|
|
display: flex; |
|
|
gap: 20rpx; |
|
|
gap: 20rpx; |
|
|
margin-bottom: 24rpx; |
|
|
margin-bottom: 24rpx; |
|
|
|
|
|
|
|
|
&:last-child { |
|
|
&:last-child { |
|
|
margin-bottom: 0; |
|
|
margin-bottom: 0; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.popup_filter_item { |
|
|
.popup_filter_item { |
|
|
flex: 1; |
|
|
flex: 1; |
|
|
display: flex; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
flex-direction: column; |
|
|
gap: 12rpx; |
|
|
gap: 12rpx; |
|
|
|
|
|
|
|
|
&.full_width { |
|
|
&.full_width { |
|
|
flex: 1; |
|
|
flex: 1; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.popup_filter_label { |
|
|
.popup_filter_label { |
|
|
font-size: 26rpx; |
|
|
font-size: 26rpx; |
|
|
color: #666; |
|
|
color: #666; |
|
|
font-weight: 500; |
|
|
font-weight: 500; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.popup_filter_input { |
|
|
.popup_filter_input { |
|
|
height: 72rpx; |
|
|
height: 72rpx; |
|
|
line-height: 72rpx; |
|
|
line-height: 72rpx; |
|
|
@ -1312,12 +1312,12 @@ |
|
|
font-size: 28rpx; |
|
|
font-size: 28rpx; |
|
|
color: #333; |
|
|
color: #333; |
|
|
background: #fff; |
|
|
background: #fff; |
|
|
|
|
|
|
|
|
&::placeholder { |
|
|
&::placeholder { |
|
|
color: #999; |
|
|
color: #999; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.popup_filter_picker { |
|
|
.popup_filter_picker { |
|
|
height: 72rpx; |
|
|
height: 72rpx; |
|
|
line-height: 72rpx; |
|
|
line-height: 72rpx; |
|
|
@ -1328,7 +1328,7 @@ |
|
|
color: #333; |
|
|
color: #333; |
|
|
background: #fff; |
|
|
background: #fff; |
|
|
position: relative; |
|
|
position: relative; |
|
|
|
|
|
|
|
|
&::after { |
|
|
&::after { |
|
|
content: '▼'; |
|
|
content: '▼'; |
|
|
position: absolute; |
|
|
position: absolute; |
|
|
@ -1338,7 +1338,7 @@ |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.popup_filter_buttons { |
|
|
.popup_filter_buttons { |
|
|
display: flex; |
|
|
display: flex; |
|
|
gap: 20rpx; |
|
|
gap: 20rpx; |
|
|
@ -1349,7 +1349,7 @@ |
|
|
border-bottom-left-radius: 24rpx; |
|
|
border-bottom-left-radius: 24rpx; |
|
|
border-bottom-right-radius: 24rpx; |
|
|
border-bottom-right-radius: 24rpx; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.popup_filter_btn { |
|
|
.popup_filter_btn { |
|
|
flex: 1; |
|
|
flex: 1; |
|
|
height: 72rpx; |
|
|
height: 72rpx; |
|
|
@ -1358,18 +1358,18 @@ |
|
|
border-radius: 8rpx; |
|
|
border-radius: 8rpx; |
|
|
font-size: 28rpx; |
|
|
font-size: 28rpx; |
|
|
font-weight: 600; |
|
|
font-weight: 600; |
|
|
|
|
|
|
|
|
&.search_btn { |
|
|
&.search_btn { |
|
|
background: #29d3b4; |
|
|
background: #29d3b4; |
|
|
color: #fff; |
|
|
color: #fff; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
&.reset_btn { |
|
|
&.reset_btn { |
|
|
background: #f5f5f5; |
|
|
background: #f5f5f5; |
|
|
color: #666; |
|
|
color: #666; |
|
|
border: 1px solid #ddd; |
|
|
border: 1px solid #ddd; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
&.close_btn { |
|
|
&.close_btn { |
|
|
background: #666; |
|
|
background: #666; |
|
|
color: #fff; |
|
|
color: #fff; |
|
|
@ -1408,16 +1408,16 @@ |
|
|
border-radius: 16rpx; |
|
|
border-radius: 16rpx; |
|
|
display: flex; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
flex-direction: column; |
|
|
|
|
|
|
|
|
.card-content { |
|
|
.card-content { |
|
|
display: flex; |
|
|
display: flex; |
|
|
justify-content: space-between; |
|
|
justify-content: space-between; |
|
|
|
|
|
|
|
|
.card-left { |
|
|
.card-left { |
|
|
flex: 1; |
|
|
flex: 1; |
|
|
padding-right: 10rpx; |
|
|
padding-right: 10rpx; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.card-right { |
|
|
.card-right { |
|
|
min-width: 120rpx; |
|
|
min-width: 120rpx; |
|
|
display: flex; |
|
|
display: flex; |
|
|
@ -1425,7 +1425,7 @@ |
|
|
align-items: center; |
|
|
align-items: center; |
|
|
justify-content: flex-start; |
|
|
justify-content: flex-start; |
|
|
padding: 12rpx; |
|
|
padding: 12rpx; |
|
|
|
|
|
|
|
|
// 开单状态标签 |
|
|
// 开单状态标签 |
|
|
.status-tag { |
|
|
.status-tag { |
|
|
font-size: 20rpx; |
|
|
font-size: 20rpx; |
|
|
@ -1435,23 +1435,23 @@ |
|
|
margin-bottom: 8rpx; |
|
|
margin-bottom: 8rpx; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
min-width: 60rpx; |
|
|
min-width: 60rpx; |
|
|
|
|
|
|
|
|
&.status-closed { |
|
|
&.status-closed { |
|
|
background-color: #52c41a; // 绿色-已开单 |
|
|
background-color: #52c41a; // 绿色-已开单 |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
&.status-open { |
|
|
&.status-open { |
|
|
background-color: #ff4d4f; // 红色-未开单 |
|
|
background-color: #ff4d4f; // 红色-未开单 |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 到访状态容器 |
|
|
// 到访状态容器 |
|
|
.visit-status { |
|
|
.visit-status { |
|
|
display: flex; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
flex-direction: column; |
|
|
gap: 6rpx; |
|
|
gap: 6rpx; |
|
|
margin-bottom: 12rpx; |
|
|
margin-bottom: 12rpx; |
|
|
|
|
|
|
|
|
.visit-tag { |
|
|
.visit-tag { |
|
|
font-size: 18rpx; |
|
|
font-size: 18rpx; |
|
|
padding: 6rpx 12rpx; |
|
|
padding: 6rpx 12rpx; |
|
|
@ -1459,17 +1459,17 @@ |
|
|
color: #fff; |
|
|
color: #fff; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
min-width: 60rpx; |
|
|
min-width: 60rpx; |
|
|
|
|
|
|
|
|
&.visit-arrived { |
|
|
&.visit-arrived { |
|
|
background-color: #1890ff; // 蓝色-已到 |
|
|
background-color: #1890ff; // 蓝色-已到 |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
&.visit-not-arrived { |
|
|
&.visit-not-arrived { |
|
|
background-color: #8c8c8c; // 灰色-未到 |
|
|
background-color: #8c8c8c; // 灰色-未到 |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.btn-item { |
|
|
.btn-item { |
|
|
margin-bottom: 12rpx; |
|
|
margin-bottom: 12rpx; |
|
|
display: flex; |
|
|
display: flex; |
|
|
@ -1479,11 +1479,11 @@ |
|
|
height: 80rpx; |
|
|
height: 80rpx; |
|
|
background-color: rgba(255, 255, 255, 0.1); |
|
|
background-color: rgba(255, 255, 255, 0.1); |
|
|
border-radius: 50%; |
|
|
border-radius: 50%; |
|
|
|
|
|
|
|
|
&:last-child { |
|
|
&:last-child { |
|
|
margin-bottom: 0; |
|
|
margin-bottom: 0; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.image { |
|
|
.image { |
|
|
width: 60rpx; |
|
|
width: 60rpx; |
|
|
height: 60rpx; |
|
|
height: 60rpx; |
|
|
@ -1491,7 +1491,7 @@ |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.card-footer { |
|
|
.card-footer { |
|
|
width: 100%; |
|
|
width: 100%; |
|
|
border-top: 1rpx solid rgba(255, 255, 255, 0.1); |
|
|
border-top: 1rpx solid rgba(255, 255, 255, 0.1); |
|
|
@ -1672,7 +1672,7 @@ |
|
|
color: #fff; |
|
|
color: #fff; |
|
|
box-shadow: 0 4rpx 12rpx rgba(41, 211, 180, 0.3); |
|
|
box-shadow: 0 4rpx 12rpx rgba(41, 211, 180, 0.3); |
|
|
transition: all 0.3s ease; |
|
|
transition: all 0.3s ease; |
|
|
|
|
|
|
|
|
&.cancel { |
|
|
&.cancel { |
|
|
background: linear-gradient(135deg, #666, #555); |
|
|
background: linear-gradient(135deg, #666, #555); |
|
|
box-shadow: 0 4rpx 12rpx rgba(102, 102, 102, 0.3); |
|
|
box-shadow: 0 4rpx 12rpx rgba(102, 102, 102, 0.3); |
|
|
@ -1698,7 +1698,7 @@ |
|
|
color: transparent; |
|
|
color: transparent; |
|
|
background: #404040; |
|
|
background: #404040; |
|
|
transition: all 0.3s ease; |
|
|
transition: all 0.3s ease; |
|
|
|
|
|
|
|
|
&.checked { |
|
|
&.checked { |
|
|
background: linear-gradient(135deg, #29d3b4, #26c3a4); |
|
|
background: linear-gradient(135deg, #29d3b4, #26c3a4); |
|
|
border-color: #29d3b4; |
|
|
border-color: #29d3b4; |
|
|
@ -1737,13 +1737,13 @@ |
|
|
/* 分配状态样式 */ |
|
|
/* 分配状态样式 */ |
|
|
.assigned-to { |
|
|
.assigned-to { |
|
|
font-weight: 600; |
|
|
font-weight: 600; |
|
|
|
|
|
|
|
|
&.unassigned { |
|
|
&.unassigned { |
|
|
color: #ff6b35; |
|
|
color: #ff6b35; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
&.assigned { |
|
|
&.assigned { |
|
|
color: #29d3b4; |
|
|
color: #29d3b4; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |
|
|
|