调整标签管理的错乱

This commit is contained in:
cst61
2026-02-01 17:10:04 +08:00
parent 30b1c8f9ba
commit c6ed438a94
6 changed files with 227 additions and 86 deletions

File diff suppressed because one or more lines are too long

View File

@@ -68,7 +68,7 @@ const _sfc_main = {
computed: {
// 计算导航栏和内容区域的位置(使用计算属性确保响应式)
computedNavbarTop() {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:334", "[FurnitureReception][computedNavbarTop] 计算导航栏位置");
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:336", "[FurnitureReception][computedNavbarTop] 计算导航栏位置");
const systemInfo = common_vendor.index.getSystemInfoSync();
const statusBarHeight = systemInfo.statusBarHeight || 20;
const navbarHeight = 44;
@@ -76,7 +76,7 @@ const _sfc_main = {
const navbarHeightRpx = navbarHeight * 2;
const totalNavbarHeight = statusBarHeightRpx + navbarHeightRpx;
const result = totalNavbarHeight + "rpx";
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:342", "[FurnitureReception][computedNavbarTop] 计算结果:", {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:344", "[FurnitureReception][computedNavbarTop] 计算结果:", {
statusBarHeight,
navbarHeight,
totalNavbarHeight,
@@ -85,7 +85,7 @@ const _sfc_main = {
return result;
},
computedContentTop() {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:351", "[FurnitureReception][computedContentTop] 计算内容区域位置");
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:353", "[FurnitureReception][computedContentTop] 计算内容区域位置");
const systemInfo = common_vendor.index.getSystemInfoSync();
const statusBarHeight = systemInfo.statusBarHeight || 20;
const navbarHeight = 44;
@@ -93,7 +93,7 @@ const _sfc_main = {
const navbarHeightRpx = navbarHeight * 2;
const totalNavbarHeight = statusBarHeightRpx + navbarHeightRpx;
const result = totalNavbarHeight + 72 + "rpx";
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:359", "[FurnitureReception][computedContentTop] 计算结果:", {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:361", "[FurnitureReception][computedContentTop] 计算结果:", {
statusBarHeight,
navbarHeight,
totalNavbarHeight,
@@ -103,17 +103,17 @@ const _sfc_main = {
}
},
onLoad() {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:369", "[FurnitureReception][onLoad] 页面加载");
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:371", "[FurnitureReception][onLoad] 页面加载");
this.updateNavbarPosition();
this.loadCurrentUserInfo();
},
onShow() {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:376", "[FurnitureReception][onShow] 页面显示");
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:378", "[FurnitureReception][onShow] 页面显示");
this.$nextTick(() => {
this.updateNavbarPosition();
setTimeout(() => {
this.updateNavbarPosition();
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:384", "[FurnitureReception][onShow] 延迟更新后的位置:", {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:386", "[FurnitureReception][onShow] 延迟更新后的位置:", {
navbarTop: this.navbarTop,
contentTop: this.contentTop,
computedNavbarTop: this.computedNavbarTop,
@@ -123,15 +123,15 @@ const _sfc_main = {
});
},
onReady() {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:395", "[FurnitureReception][onReady] 页面渲染完成");
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:396", "[FurnitureReception][onReady] activeTab:", this.activeTab);
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:397", "[FurnitureReception][onReady] navbarTop:", this.navbarTop);
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:398", "[FurnitureReception][onReady] contentTop:", this.contentTop);
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:399", "[FurnitureReception][onReady] computedNavbarTop:", this.computedNavbarTop);
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:400", "[FurnitureReception][onReady] computedContentTop:", this.computedContentTop);
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:397", "[FurnitureReception][onReady] 页面渲染完成");
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:398", "[FurnitureReception][onReady] activeTab:", this.activeTab);
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:399", "[FurnitureReception][onReady] navbarTop:", this.navbarTop);
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:400", "[FurnitureReception][onReady] contentTop:", this.contentTop);
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:401", "[FurnitureReception][onReady] computedNavbarTop:", this.computedNavbarTop);
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:402", "[FurnitureReception][onReady] computedContentTop:", this.computedContentTop);
this.updateNavbarPosition();
const systemInfo = common_vendor.index.getSystemInfoSync();
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:406", "[FurnitureReception][onReady] 系统信息:", {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:408", "[FurnitureReception][onReady] 系统信息:", {
statusBarHeight: systemInfo.statusBarHeight,
windowHeight: systemInfo.windowHeight,
screenHeight: systemInfo.screenHeight
@@ -139,11 +139,11 @@ const _sfc_main = {
setTimeout(() => {
const query = common_vendor.index.createSelectorQuery().in(this);
query.select(".tabs").boundingClientRect((data) => {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:417", "[FurnitureReception][onReady] tab栏元素信息:", data);
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:419", "[FurnitureReception][onReady] tab栏元素信息:", data);
if (!data) {
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:419", "[FurnitureReception][onReady] tab栏元素未找到");
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:421", "[FurnitureReception][onReady] tab栏元素未找到");
} else {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:421", "[FurnitureReception][onReady] tab栏位置:", {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:423", "[FurnitureReception][onReady] tab栏位置:", {
top: data.top,
left: data.left,
width: data.width,
@@ -154,18 +154,23 @@ const _sfc_main = {
isOnScreen: data.top >= 0 && data.top < systemInfo.windowHeight
});
if (data.width === 0 || data.height === 0 || data.top < 0) {
common_vendor.index.__f__("warn", "at pages/furniture_reception/furniture_reception.vue:434", "[FurnitureReception][onReady] tab栏不可见强制更新位置");
common_vendor.index.__f__("warn", "at pages/furniture_reception/furniture_reception.vue:436", "[FurnitureReception][onReady] tab栏不可见强制更新位置");
this.updateNavbarPosition();
this.$forceUpdate();
}
}
}).exec();
}, 100);
common_vendor.index.onWindowResize(() => {
if (this.showTagTypeDropdown) {
this.updateTagTypeDropdownPosition();
}
});
},
methods: {
// 计算并更新导航栏和内容区域的位置
updateNavbarPosition() {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:446", "[FurnitureReception][updateNavbarPosition] 开始更新导航栏位置");
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:455", "[FurnitureReception][updateNavbarPosition] 开始更新导航栏位置");
const systemInfo = common_vendor.index.getSystemInfoSync();
const statusBarHeight = systemInfo.statusBarHeight || 20;
const navbarHeight = 44;
@@ -174,7 +179,7 @@ const _sfc_main = {
const totalNavbarHeight = statusBarHeightRpx + navbarHeightRpx;
const navbarTop = totalNavbarHeight + "rpx";
const contentTop = totalNavbarHeight + 72 + "rpx";
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:458", "[FurnitureReception][updateNavbarPosition] 更新导航栏位置:", {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:467", "[FurnitureReception][updateNavbarPosition] 更新导航栏位置:", {
statusBarHeight,
navbarHeight,
totalNavbarHeight,
@@ -205,18 +210,18 @@ const _sfc_main = {
this.receptionForm.salesId = String(loginResponse.userId);
}
} catch (e) {
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:503", "加载当前登录用户信息失败:", e);
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:512", "加载当前登录用户信息失败:", e);
}
},
goBack() {
const pages = getCurrentPages();
if (pages.length <= 1) {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:512", "[FurnitureReception][goBack] 当前是第一个页面,无法返回");
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:521", "[FurnitureReception][goBack] 当前是第一个页面,无法返回");
return;
}
common_vendor.index.navigateBack({
fail: (err) => {
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:517", "[FurnitureReception][goBack] 返回失败:", err);
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:526", "[FurnitureReception][goBack] 返回失败:", err);
}
});
},
@@ -263,11 +268,11 @@ const _sfc_main = {
}
this.resetReceptionForm();
if (action === "start") {
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:574", "开始接待成功", data);
common_vendor.index.__f__("log", "at pages/furniture_reception/furniture_reception.vue:583", "开始接待成功", data);
}
},
onReceptionSaveError({ action, error }) {
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:579", "保存失败:", error);
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:588", "保存失败:", error);
},
// 标签管理相关方法
onTagListSearch() {
@@ -315,7 +320,7 @@ const _sfc_main = {
tenantId = common_vendor.index.getStorageSync("backend-tenant-id") || "";
token = common_vendor.index.getStorageSync("backend-token") || "";
} catch (e) {
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:628", "获取认证信息失败:", e);
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:637", "获取认证信息失败:", e);
}
const headers = {
"Content-Type": "application/json"
@@ -351,7 +356,7 @@ const _sfc_main = {
});
}
} catch (error) {
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:667", "获取标签列表失败:", error);
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:676", "获取标签列表失败:", error);
let errorMessage = "获取标签列表失败,请稍后重试";
if (error.errMsg) {
if (error.errMsg.includes("timeout")) {
@@ -437,7 +442,7 @@ const _sfc_main = {
tenantId = common_vendor.index.getStorageSync("backend-tenant-id") || "";
token = common_vendor.index.getStorageSync("backend-token") || "";
} catch (e) {
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:761", "获取认证信息失败:", e);
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:770", "获取认证信息失败:", e);
}
const headers = {};
if (token) {
@@ -469,7 +474,7 @@ const _sfc_main = {
}
} catch (error) {
common_vendor.index.hideLoading();
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:798", "删除标签失败:", error);
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:807", "删除标签失败:", error);
let errorMessage = "删除失败,请重试";
if (error.errMsg) {
if (error.errMsg.includes("timeout")) {
@@ -503,6 +508,29 @@ const _sfc_main = {
},
toggleTagTypeDropdown() {
this.showTagTypeDropdown = !this.showTagTypeDropdown;
if (this.showTagTypeDropdown) {
this.$nextTick(() => {
this.updateTagTypeDropdownPosition();
});
}
},
updateTagTypeDropdownPosition() {
const query = common_vendor.index.createSelectorQuery().in(this);
query.select(".tag-select").boundingClientRect((rect) => {
if (rect) {
const dropdownEl = this.$refs.tagTypeDropdown;
if (dropdownEl) {
this.$nextTick(() => {
const el = dropdownEl.$el || dropdownEl;
if (el && el.style) {
el.style.top = rect.bottom + 8 + "px";
el.style.left = rect.left + "px";
el.style.width = rect.width + "px";
}
});
}
}
}).exec();
},
selectTagType(option) {
this.tagForm.tagType = option;
@@ -546,7 +574,7 @@ const _sfc_main = {
tenantId = common_vendor.index.getStorageSync("backend-tenant-id") || "";
token = common_vendor.index.getStorageSync("backend-token") || "";
} catch (e) {
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:887", "获取认证信息失败:", e);
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:920", "获取认证信息失败:", e);
}
const headers = {
"Content-Type": "application/json"
@@ -578,7 +606,7 @@ const _sfc_main = {
throw new Error((data == null ? void 0 : data.message) || (this.tagViewMode === "edit" ? "更新失败" : "保存失败"));
}
} catch (error) {
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:923", "保存标签失败:", error);
common_vendor.index.__f__("error", "at pages/furniture_reception/furniture_reception.vue:956", "保存标签失败:", error);
let errorMessage = (error == null ? void 0 : error.message) || (this.tagViewMode === "edit" ? "更新失败,请重试" : "保存失败,请重试");
if (error.errMsg) {
if (error.errMsg.includes("timeout")) {

File diff suppressed because one or more lines are too long

View File

@@ -357,16 +357,30 @@ page {
.form-card {
background-color: #FFFFFF;
border-radius: 24rpx;
padding: 32rpx;
padding: 40rpx 24rpx 32rpx 24rpx;
margin-bottom: 32rpx;
box-shadow: 0 2rpx 16rpx rgba(0, 0, 0, 0.06);
}
/* 第一个表单项特殊处理,确保顶部空间 */
.form-card .form-item:first-child {
padding-top: 24rpx;
margin-top: 16rpx;
}
/* 表单项样式 */
.form-item {
display: flex;
flex-direction: column;
display: flex !important;
flex-direction: row !important;
flex-wrap: nowrap !important;
align-items: flex-start;
margin-bottom: 32rpx;
min-height: 88rpx;
padding-top: 8rpx;
box-sizing: border-box;
width: 100%;
overflow: hidden;
justify-content: center;
}
.form-item:last-child {
margin-bottom: 0;
@@ -375,16 +389,34 @@ page {
/* 表单项标签样式 */
.form-item__label {
font-size: 28rpx;
color: #333333;
color: #333;
font-weight: 500;
margin-bottom: 16rpx;
line-height: 1.5;
width: 140rpx;
flex-shrink: 0;
flex-grow: 0;
margin-right: 24rpx;
margin-left: 0;
padding: 12rpx 0 12rpx 16rpx;
white-space: nowrap;
box-sizing: border-box;
min-height: 88rpx;
line-height: 1.4;
text-align: left;
display: flex;
align-items: flex-start;
justify-content: flex-start;
}
/* 输入框样式 */
.form-item__input {
width: 100%;
flex: 1 !important;
flex-shrink: 1 !important;
flex-grow: 1 !important;
min-width: 0 !important;
max-width: none !important;
width: auto !important;
height: 88rpx;
line-height: 88rpx;
background-color: #F9FAFB;
border: 2rpx solid #E5E7EB;
border-radius: 16rpx;
@@ -393,6 +425,9 @@ page {
color: #333333;
box-sizing: border-box;
transition: all 0.3s ease;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.form-item__input:focus {
border-color: #007AFF;
@@ -402,7 +437,12 @@ page {
/* 文本域样式 */
.form-item__textarea {
width: 100%;
flex: 1 !important;
flex-shrink: 1 !important;
flex-grow: 1 !important;
min-width: 0 !important;
max-width: none !important;
width: auto !important;
min-height: 160rpx;
background-color: #F9FAFB;
border: 2rpx solid #E5E7EB;
@@ -423,6 +463,13 @@ page {
/* 标签选择器样式 */
.tag-select-wrapper {
position: relative;
flex: 1;
flex-shrink: 1;
min-width: 0;
display: flex;
align-items: center;
overflow: hidden;
height: 88rpx;
}
.tag-select {
width: 100%;
@@ -456,19 +503,16 @@ page {
/* 下拉菜单样式 */
.tag-select-dropdown {
position: absolute;
top: 100%;
left: 0;
right: 0;
position: fixed;
background-color: #FFFFFF;
border: 2rpx solid #E5E7EB;
border-radius: 16rpx;
margin-top: 8rpx;
box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.12);
z-index: 100;
z-index: 9999;
overflow: hidden;
max-height: 400rpx;
overflow-y: auto;
min-width: 200rpx;
}
.tag-select-dropdown__item {
padding: 24rpx;
@@ -498,7 +542,12 @@ page {
right: 0;
bottom: 0;
background-color: transparent;
z-index: 99;
z-index: 9998;
}
/* textarea类型表单项 - 标签和textarea在同一行但textarea可以换行 */
.form-item--textarea {
align-items: flex-start;
}
/* 开关类型表单项 - 横向布局 */