From e658a198bc5f31666e6ddc6af6779e9eefff8623 Mon Sep 17 00:00:00 2001
From: lion <120344285@qq.com>
Date: Sat, 11 Oct 2025 15:48:36 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E8=88=AA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
common/config.js | 4 +-
package_sub/pages/quality/quality.vue | 204 ++++++++++++++++++++++++--
2 files changed, 191 insertions(+), 17 deletions(-)
diff --git a/common/config.js b/common/config.js
index 140a0ce..64e9970 100644
--- a/common/config.js
+++ b/common/config.js
@@ -1,7 +1,7 @@
const mode = process.env.NODE_ENV;
// const mode = 'development';
-let ROOTPATH = 'https://sstt.ali251.langye.net'; //域名
-// let ROOTPATH = 'https://sstt.115.langye.net'; //域名
+// let ROOTPATH = 'https://sstt.ali251.langye.net'; //域名
+let ROOTPATH = 'https://sstt.115.langye.net'; //域名
switch (mode) {
case 'development':
// ROOTPATH = "https://sstt.ali251.langye.net"
diff --git a/package_sub/pages/quality/quality.vue b/package_sub/pages/quality/quality.vue
index ea1c423..8d7def7 100644
--- a/package_sub/pages/quality/quality.vue
+++ b/package_sub/pages/quality/quality.vue
@@ -29,19 +29,29 @@
-
+
-
-
-
-
+
+
+ 回访
+ {{ getCallbackLabel(select.has_quality_callbacks) }}
+
+
+
+ 状态
+ {{ getDeadLabel(select.is_dead) }}
+
+
+
-
+
-
-
-
+
+ 产品类型
+ {{ getProductTypeLabel(select.product_type_id) }}
+
+
@@ -103,10 +113,17 @@
- 质控回访
+
+ 质控回访
+ 去这里
+
@@ -121,6 +138,34 @@
+
+
+
+
+
+
+
附近客户
@@ -153,6 +198,23 @@ export default {
productTypeOptions: [
{ label: '全部', value: 'all' }
],
+ // 底部弹出选择器相关
+ showCallbackPicker: false,
+ showDeadPicker: false,
+ showProductTypePicker: false,
+ callbackPickerData: [
+ { label: '全部', value: 'all' },
+ { label: '无回访', value: 0 },
+ { label: '有回访', value: 1 },
+ ],
+ deadPickerData: [
+ { label: '全部', value: 'all' },
+ { label: '正常', value: 0 },
+ { label: '死亡', value: 1 },
+ ],
+ productTypePickerData: [
+ { label: '全部', value: 'all' }
+ ],
optionsStatus: [{
label: '全部',
value: ''
@@ -215,6 +277,7 @@ export default {
this.productTypeOptions = [{ label: '全部', value: 'all' }].concat(
(list || []).map(it => ({ label: it.name, value: it.id }))
)
+ this.productTypePickerData = this.productTypeOptions
} catch (e) {
// ignore
}
@@ -292,6 +355,66 @@ export default {
uni.navigateTo({
url
})
+ },
+ // 获取标签显示文本
+ getCallbackLabel(value) {
+ const item = this.callbackPickerData.find(item => item.value === value)
+ return item ? item.label : '全部'
+ },
+ getDeadLabel(value) {
+ const item = this.deadPickerData.find(item => item.value === value)
+ return item ? item.label : '全部'
+ },
+ getProductTypeLabel(value) {
+ const item = this.productTypePickerData.find(item => item.value === value)
+ return item ? item.label : '全部'
+ },
+ // 选择器确认回调
+ onCallbackConfirm(e) {
+ const selectedItem = this.callbackPickerData[e[0]]
+ this.select.has_quality_callbacks = selectedItem.value
+ this.showCallbackPicker = false
+ },
+ onDeadConfirm(e) {
+ const selectedItem = this.deadPickerData[e[0]]
+ this.select.is_dead = selectedItem.value
+ this.showDeadPicker = false
+ },
+ onProductTypeConfirm(e) {
+ const selectedItem = this.productTypePickerData[e[0]]
+ this.select.product_type_id = selectedItem.value
+ this.showProductTypePicker = false
+ },
+ // 打开地图导航
+ openMapNavigation(customerAddress) {
+ const defaultAddr = this.defaultAddress(customerAddress)
+ const lat = defaultAddr.lat
+ const lng = defaultAddr.lng
+
+ if (!lat || !lng) {
+ uni.showToast({
+ icon: 'none',
+ title: '地址缺少经纬度信息,无法导航'
+ })
+ return
+ }
+
+ // 打开地图导航
+ uni.openLocation({
+ latitude: parseFloat(lat),
+ longitude: parseFloat(lng),
+ name: defaultAddr.address || '客户地址',
+ success: () => {
+ console.log('打开地图成功')
+ },
+ fail: (err) => {
+ console.error('打开地图失败', err)
+ uni.showToast({
+ icon: 'none',
+ title: '打开地图失败'
+ })
+ }
+ })
}
},
computed: {
@@ -435,6 +558,41 @@ export default {
margin-top: 20rpx;
}
+.picker-row {
+ display: flex;
+ justify-content: space-between;
+}
+
+.picker-item {
+ width: 340rpx;
+ height: 70rpx;
+ background: #FFFFFF;
+ border: 2rpx solid #FAFBFC;
+ border-radius: 10rpx;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+}
+
+.picker-item.full-width {
+ width: 100%;
+}
+
+.picker-label {
+ font-size: 28rpx;
+ color: #333;
+ font-weight: 500;
+}
+
+.picker-value {
+ font-size: 28rpx;
+ color: #666;
+ flex: 1;
+ text-align: center;
+}
+
.nursing-list {
margin-top: 10rpx;
@@ -538,12 +696,20 @@ export default {
color: #36596A;
line-height: 40rpx;
display: flex;
+ align-items: center;
margin-top: 14rpx;
.text {
-
+ flex: 1;
+ margin-left: 10rpx;
+ }
+
+ .nav-btn {
margin-left: 10rpx;
+ padding: 8rpx;
+ border-radius: 50%;
+ background: rgba(20, 121, 255, 0.1);
}
}
}
@@ -587,6 +753,14 @@ export default {
margin-top: 16rpx;
padding-bottom: 26rpx;
+ .button-group {
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 0 20rpx;
+ }
+
.distance {
align-items: center;
display: flex;
@@ -635,7 +809,7 @@ export default {
.nearby-fab {
position: fixed;
right: 32rpx;
- bottom: 120rpx;
+ bottom: 320rpx;
width: 140rpx;
height: 140rpx;
background: #1479FF;