diff --git a/pages-subpackage/furniture_reception/furniture_reception-impl.vue b/pages-subpackage/furniture_reception/furniture_reception-impl.vue
index 5a36577..d8a5c29 100644
--- a/pages-subpackage/furniture_reception/furniture_reception-impl.vue
+++ b/pages-subpackage/furniture_reception/furniture_reception-impl.vue
@@ -58,205 +58,11 @@
@save-error="onReceptionSaveError"
/>
-
-
-
- 共{{ tagTotal }}条
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 所属行业:{{ item.industry }}
-
-
-
-
- 详情:{{ item.tagDetail || item.detail }}
-
-
- 备注:{{ item.remark }}
-
-
-
-
-
-
-
-
-
- 暂无标签
-
-
- 正在加载更多...
-
-
-
-
-
-
-
-
-
- 所属行业
-
-
-
- 标签分类
-
-
- {{ tagForm.tagType || "请选择标签分类" }}
-
-
-
-
-
-
- {{ option }}
-
-
-
-
-
- 标签名
-
-
-
- 详情
-
-
-
- 备注
-
-
-
- 是否启用
-
-
-
-
-
- 取消
-
-
- {{ tagViewMode === 'edit' ? '更新' : '保存' }}
-
-
-
-
-
+
@@ -265,9 +71,9 @@
// #ifdef APP
import statusBar from "@/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar";
// #endif
-import { getApiUrl } from "@/common/config.js";
import CommonBeginReception from "./common_begin_reception.vue";
import ServiceListFurniture from "./serviceListFurniture.vue";
+import TagManagementPanel from "./tag_management_panel.vue";
export default {
props: {
@@ -280,13 +86,15 @@ import ServiceListFurniture from "./serviceListFurniture.vue";
components: {
statusBar,
CommonBeginReception,
- ServiceListFurniture
+ ServiceListFurniture,
+ TagManagementPanel
},
// #endif
// #ifndef APP
components: {
CommonBeginReception,
- ServiceListFurniture
+ ServiceListFurniture,
+ TagManagementPanel
},
// #endif
data() {
@@ -313,34 +121,7 @@ import ServiceListFurniture from "./serviceListFurniture.vue";
remark: "",
detailedAddress: "",
contactCount: 0
- },
- // 标签管理
- tagViewMode: 'list', // 'list' 或 'add' 或 'edit'
- tagList: [],
- tagLoading: false,
- tagTotal: 0,
- tagPage: {
- current: 1,
- size: 10
- },
- tagQuery: {
- industry: '',
- tagType: '',
- tagName: ''
- },
- tagForm: {
- id: '',
- industry: '家居行业',
- tagType: '',
- name: '',
- detail: '',
- remark: '',
- enabled: true
- },
- tagTypeOptions: ["接待客户", "质检SOP", "客户画像"],
- showTagTypeDropdown: false,
- selectedTagItem: null,
- showTagActionMenu: false
+ }
}
},
watch: {
@@ -449,13 +230,6 @@ import ServiceListFurniture from "./serviceListFurniture.vue";
}).exec();
}, 100);
// #endif
-
- // 监听窗口大小变化,重新定位下拉框
- uni.onWindowResize(() => {
- if (this.showTagTypeDropdown) {
- this.updateTagTypeDropdownPosition();
- }
- });
},
methods: {
/**
@@ -468,11 +242,24 @@ import ServiceListFurniture from "./serviceListFurniture.vue";
if (list && typeof list.onServiceStatusRefresh === 'function') {
list.onServiceStatusRefresh();
}
- } else if (this.activeTab === 'tag' && this.tagViewMode === 'list') {
- this.fetchTagList({ force: true });
+ } else if (this.activeTab === 'tag') {
+ const tagPanel = this.$refs.tagPanelRef;
+ if (tagPanel && typeof tagPanel.refreshTagList === 'function') {
+ tagPanel.refreshTagList();
+ }
}
});
},
+ scheduleTagPanelRefresh() {
+ this.$nextTick(() => {
+ this.$nextTick(() => {
+ const p = this.$refs.tagPanelRef;
+ if (p && typeof p.refreshTagList === 'function') {
+ p.refreshTagList();
+ }
+ });
+ });
+ },
applyIncomingTab(tab) {
const allowed = ['status', 'reception', 'tag'];
if (!allowed.includes(tab)) {
@@ -486,8 +273,7 @@ import ServiceListFurniture from "./serviceListFurniture.vue";
if (tab === 'reception') {
this.resetReceptionForm();
} else if (tab === 'tag') {
- this.tagViewMode = 'list';
- this.fetchTagList({ force: true });
+ this.scheduleTagPanelRefresh();
} else if (tab === 'status') {
// 从工作台进入「服务中」时补拉列表(mounted 可能早于布局或与 refresh 竞态)
this.$nextTick(() => {
@@ -578,16 +364,13 @@ import ServiceListFurniture from "./serviceListFurniture.vue";
});
},
switchTab(tab) {
- this.activeTab = tab;
- if (tab === 'reception') {
- // 切换到开始接待标签页时,重置表单数据
- this.resetReceptionForm();
- } else if (tab === 'tag') {
- this.tagViewMode = 'list';
- // 当进入标签管理页面时,请求接口填充数据
- this.fetchTagList();
- }
- },
+ this.activeTab = tab;
+ if (tab === 'reception') {
+ this.resetReceptionForm();
+ } else if (tab === 'tag') {
+ this.scheduleTagPanelRefresh();
+ }
+ },
resetReceptionForm() {
// 重置表单数据
this.receptionForm = {
@@ -636,391 +419,6 @@ import ServiceListFurniture from "./serviceListFurniture.vue";
// 保存失败时的处理
console.error('保存失败:', error);
},
- // 标签管理相关方法
- onTagListSearch() {
- if (this.activeTab !== 'tag') {
- this.activeTab = 'tag';
- }
- this.tagPage.current = 1;
- this.fetchTagList({ force: true });
- },
- onTagListRefresh() {
- this.tagPage.current = 1;
- this.fetchTagList({ force: true });
- },
- onTagListReachBottom() {
- // 已在加载中或全部加载完成则不再触发
- if (this.tagLoading) return;
- if (this.tagList.length >= this.tagTotal) return;
- this.tagPage.current += 1;
- this.fetchTagList();
- },
- async fetchTagList({ force = false } = {}) {
- if (this.tagLoading && !force) {
- return;
- }
- this.tagLoading = true;
- try {
- const queryParams = {
- current: this.tagPage.current,
- size: this.tagPage.size
- };
- const trimmedTagType = this.tagQuery?.tagType?.trim();
- const trimmedTagName = this.tagQuery?.tagName?.trim();
- if (trimmedTagType) {
- queryParams.tagType = trimmedTagType;
- }
- if (trimmedTagName) {
- queryParams.tagName = trimmedTagName;
- }
- // 后端接口不支持 GET,改为 POST 传参
- const url = getApiUrl('/api/industryTags/list');
-
- // 获取认证信息
- let tenantId = '';
- let token = '';
- try {
- tenantId = uni.getStorageSync('backend-tenant-id') || '';
- token = uni.getStorageSync('backend-token') || '';
- } catch (e) {
- console.error('获取认证信息失败:', e);
- }
-
- // 构建请求头
- const headers = {
- 'Content-Type': 'application/json'
- };
- if (token) {
- headers['Authorization'] = `Bearer ${token}`;
- }
- if (tenantId) {
- headers['X-Tenant-Id'] = tenantId;
- }
-
- const res = await uni.request({
- url,
- method: 'POST',
- data: queryParams,
- header: headers,
- timeout: 30000 // 增加超时时间到30秒
- });
- if (res.statusCode === 200 && res.data && res.data.success) {
- const records = Array.isArray(res.data.data) ? res.data.data : [];
- // 第一页或强制刷新时重置列表,否则追加
- if (this.tagPage.current === 1 || force) {
- this.tagList = records;
- } else {
- this.tagList = this.tagList.concat(records);
- }
- this.tagTotal = Number(res.data.total) || 0;
- } else {
- this.tagList = [];
- this.tagTotal = 0;
- uni.showToast({
- title: res.data?.message || '获取标签列表失败',
- icon: 'none'
- });
- }
- } catch (error) {
- console.error('获取标签列表失败:', error);
- // 根据错误类型提供更详细的错误信息
- let errorMessage = '获取标签列表失败,请稍后重试';
- if (error.errMsg) {
- if (error.errMsg.includes('timeout')) {
- errorMessage = '请求超时,请检查网络连接后重试';
- } else if (error.errMsg.includes('fail')) {
- errorMessage = '网络请求失败,请检查网络连接';
- }
- }
- uni.showToast({
- title: errorMessage,
- icon: 'none',
- duration: 3000
- });
- } finally {
- this.tagLoading = false;
- }
- },
- showAddTag() {
- this.tagViewMode = 'add';
- this.showTagTypeDropdown = false;
- this.tagForm = {
- id: '',
- industry: '家居行业',
- tagType: '',
- name: '',
- detail: '',
- remark: '',
- enabled: true
- };
- },
- onTagItemClick(item) {
- // 点击卡片内容区域,不做任何操作(保留用于其他可能的交互)
- },
- onTagActionBtnClick(item) {
- // 如果已经选中当前项,则关闭菜单
- if (this.selectedTagItem && this.selectedTagItem.id === item.id && this.showTagActionMenu) {
- this.closeTagActionMenu();
- return;
- }
-
- // 显示菜单
- this.selectedTagItem = item;
- this.showTagActionMenu = true;
- },
- closeTagActionMenu() {
- this.showTagActionMenu = false;
- this.selectedTagItem = null;
- },
- editTag(item) {
- this.closeTagActionMenu();
- this.tagViewMode = 'edit';
- this.showTagTypeDropdown = false;
- this.tagForm = {
- id: item.id || '',
- industry: item.industry || '家居行业',
- tagType: item.tagType || '',
- name: item.tagName || item.name || '',
- detail: item.tagDetail || item.detail || '',
- remark: item.remark || '',
- enabled: item.enabled !== undefined ? item.enabled : (item.isEnabled !== undefined ? item.isEnabled : true)
- };
- },
- async deleteTag(item) {
- this.closeTagActionMenu();
- const tagId = item.id;
- if (!tagId) {
- uni.showToast({
- title: '无法获取标签ID',
- icon: 'none'
- });
- return;
- }
-
- uni.showModal({
- title: '确认删除',
- content: `确定要删除标签"${item.tagName || item.name || '未命名标签'}"吗?`,
- success: async (res) => {
- if (res.confirm) {
- try {
- uni.showLoading({
- title: '删除中...'
- });
-
- const deleteUrl = getApiUrl(`/api/industryTags/delete/${tagId}`);
-
- // 获取认证信息
- let tenantId = '';
- let token = '';
- try {
- tenantId = uni.getStorageSync('backend-tenant-id') || '';
- token = uni.getStorageSync('backend-token') || '';
- } catch (e) {
- console.error('获取认证信息失败:', e);
- }
-
- // 构建请求头
- const headers = {};
- if (token) {
- headers['Authorization'] = `Bearer ${token}`;
- }
- if (tenantId) {
- headers['X-Tenant-Id'] = tenantId;
- }
-
- const deleteRes = await uni.request({
- url: deleteUrl,
- method: 'DELETE',
- header: headers,
- timeout: 30000 // 增加超时时间到30秒
- });
-
- uni.hideLoading();
-
- if (deleteRes.statusCode === 200 && deleteRes.data && deleteRes.data.success) {
- uni.showToast({
- title: deleteRes.data?.message || '删除成功',
- icon: 'success'
- });
- // 删除成功后刷新列表
- this.tagPage.current = 1;
- this.fetchTagList({ force: true });
- } else {
- uni.showToast({
- title: deleteRes.data?.message || '删除失败',
- icon: 'none'
- });
- }
- } catch (error) {
- uni.hideLoading();
- console.error('删除标签失败:', error);
- // 根据错误类型提供更详细的错误信息
- let errorMessage = '删除失败,请重试';
- if (error.errMsg) {
- if (error.errMsg.includes('timeout')) {
- errorMessage = '请求超时,请检查网络连接后重试';
- } else if (error.errMsg.includes('fail')) {
- errorMessage = '网络请求失败,请检查网络连接';
- }
- }
- uni.showToast({
- title: errorMessage,
- icon: 'none',
- duration: 3000
- });
- }
- }
- }
- });
- },
- cancelAddTag() {
- this.tagViewMode = 'list';
- this.showTagTypeDropdown = false;
- this.tagForm = {
- id: '',
- industry: '家居行业',
- tagType: '',
- name: '',
- detail: '',
- remark: '',
- enabled: true
- };
- },
- toggleTagTypeDropdown() {
- this.showTagTypeDropdown = !this.showTagTypeDropdown;
- if (this.showTagTypeDropdown) {
- this.$nextTick(() => {
- this.updateTagTypeDropdownPosition();
- });
- }
- },
- updateTagTypeDropdownPosition() {
- const query = uni.createSelectorQuery().in(this);
- query.select('.tag-select').boundingClientRect((rect) => {
- if (rect) {
- const dropdownEl = this.$refs.tagTypeDropdown;
- if (dropdownEl) {
- // 在 uni-app 中,直接操作 DOM 需要使用 nextTick
- 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;
- this.showTagTypeDropdown = false;
- },
- closeTagTypeDropdown() {
- this.showTagTypeDropdown = false;
- },
- onEnabledChange(e) {
- this.tagForm.enabled = e.detail.value;
- },
- async saveTag() {
- // 表单验证
- if (!this.tagForm.name || !this.tagForm.name.trim()) {
- uni.showToast({
- title: "请输入标签名",
- icon: "none"
- });
- return;
- }
-
- try {
- uni.showLoading({
- title: this.tagViewMode === 'edit' ? "更新中..." : "保存中..."
- });
-
- const payload = {
- industry: this.tagForm.industry?.trim() || '',
- tagType: this.tagForm.tagType?.trim() || '',
- tagName: this.tagForm.name.trim(),
- tagDetail: this.tagForm.detail?.trim() || '',
- remark: this.tagForm.remark?.trim() || '',
- enabled: this.tagForm.enabled !== undefined ? this.tagForm.enabled : true
- };
-
- // 如果是编辑模式,添加id
- if (this.tagViewMode === 'edit' && this.tagForm.id) {
- payload.id = this.tagForm.id;
- }
-
- // 根据模式选择不同的接口
- const url = this.tagViewMode === 'edit'
- ? getApiUrl('/api/industryTags/update')
- : getApiUrl('/api/industryTags/add');
-
- const method = this.tagViewMode === 'edit' ? 'PUT' : 'POST';
-
- // 获取认证信息
- let tenantId = '';
- let token = '';
- try {
- tenantId = uni.getStorageSync('backend-tenant-id') || '';
- token = uni.getStorageSync('backend-token') || '';
- } catch (e) {
- console.error('获取认证信息失败:', e);
- }
-
- // 构建请求头
- const headers = {
- "Content-Type": "application/json"
- };
- if (token) {
- headers['Authorization'] = `Bearer ${token}`;
- }
- if (tenantId) {
- headers['X-Tenant-Id'] = tenantId;
- }
-
- const res = await uni.request({
- url: url,
- method: method,
- data: payload,
- header: headers,
- timeout: 30000 // 增加超时时间到30秒
- });
-
- const { statusCode, data } = res;
- if (statusCode === 200 && data && (data.success || data.code === 200)) {
- uni.showToast({
- title: data?.message || (this.tagViewMode === 'edit' ? "更新成功" : "保存成功"),
- icon: "success"
- });
- // 保存成功后返回列表并刷新
- this.tagViewMode = 'list';
- this.tagPage.current = 1;
- this.fetchTagList({ force: true });
- } else {
- throw new Error(data?.message || (this.tagViewMode === 'edit' ? "更新失败" : "保存失败"));
- }
- } catch (error) {
- console.error("保存标签失败:", error);
- // 根据错误类型提供更详细的错误信息
- let errorMessage = error?.message || (this.tagViewMode === 'edit' ? "更新失败,请重试" : "保存失败,请重试");
- if (error.errMsg) {
- if (error.errMsg.includes('timeout')) {
- errorMessage = '请求超时,请检查网络连接后重试';
- } else if (error.errMsg.includes('fail')) {
- errorMessage = '网络请求失败,请检查网络连接';
- }
- }
- uni.showToast({
- title: errorMessage,
- icon: "none",
- duration: 3000
- });
- } finally {
- uni.hideLoading();
- }
- },
// 页面加载后的URL隐藏初始化:只在页面完全稳定后执行
initUrlHidingAfterPageLoad() {
@@ -1255,583 +653,4 @@ import ServiceListFurniture from "./serviceListFurniture.vue";
/* #endif */
}
- /* 标签管理列表区:使用绝对定位,与服务状态列表保持一致 */
- .tag-list {
- /* 使用绝对定位,从tab页底部开始,到底部导航栏结束 */
- position: absolute;
- /* top值通过内联样式动态设置 */
- left: 0;
- right: 0;
- /* #ifndef MP-WEIXIN */
- bottom: 96rpx; /* H5环境:底部导航栏高度 */
- /* #endif */
- /* #ifdef MP-WEIXIN */
- /* 微信小程序:底部导航栏是 fixed 定位,不占用文档流,容器可以延伸到视口底部 */
- bottom: 0 !important;
- /* #endif */
- background-color: #F5F5F5;
- padding: 24rpx 16rpx 0 16rpx;
- box-sizing: border-box;
- }
-
- /* 标签管理工具栏样式 */
- .service-status-toolbar {
- display: flex;
- flex-wrap: nowrap;
- align-items: center;
- gap: 8rpx;
- padding: 12rpx 8rpx;
- margin-bottom: 24rpx;
- background-color: #F8F8FA;
- border-radius: 8rpx;
- border: 1px solid #EFEFF2;
- overflow-x: auto;
- min-height: 64rpx;
- box-sizing: border-box;
- }
-
- .toolbar-total {
- font-size: 24rpx;
- color: #666;
- white-space: nowrap;
- flex-shrink: 0;
- margin-right: 8rpx;
- line-height: 1.2;
- padding: 0 4rpx;
- }
-
- .toolbar-input {
- flex: 1;
- min-width: 120rpx;
- max-width: 200rpx;
- height: 56rpx;
- line-height: 56rpx;
- background-color: #F5F6FA;
- border-radius: 8rpx;
- padding: 0 12rpx;
- font-size: 24rpx;
- border: 1px solid transparent;
- box-sizing: border-box;
- flex-shrink: 1;
- }
-
- .toolbar-actions {
- display: flex;
- align-items: center;
- margin-left: auto;
- flex-shrink: 0;
- gap: 8rpx;
- }
-
- .toolbar-btn {
- padding: 0 12rpx;
- height: 56rpx;
- min-width: 56rpx;
- color: #2A68FF;
- display: flex;
- align-items: center;
- justify-content: center;
- gap: 4rpx;
- font-size: 24rpx;
- font-weight: 400;
- line-height: 1;
- box-sizing: border-box;
- }
-
- /* 标签卡片样式 */
- .service-card.tag-card-item {
- width: 100%;
- box-sizing: border-box;
- background-color: #FFFFFF;
- border-radius: 16rpx;
- padding: 32rpx;
- margin-bottom: 24rpx;
- box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.04);
- overflow: visible;
- position: relative;
- }
-
- .card-header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 20rpx;
- width: 100%;
- box-sizing: border-box;
- padding: 0;
- margin: 0;
- /* 确保头部内容在卡片padding范围内 */
- }
-
- .staff-info {
- display: flex;
- align-items: center;
- flex: 1;
- min-width: 0;
- margin: 0;
- padding: 0;
- }
-
- .staff-avatar {
- width: 64rpx;
- height: 64rpx;
- background-color: #2196F3;
- border-radius: 50%;
- display: flex;
- align-items: center;
- justify-content: center;
- margin-right: 16rpx;
- margin-left: 0;
- margin-top: 0;
- margin-bottom: 0;
- flex-shrink: 0;
- }
-
- .avatar-text {
- font-size: 32rpx;
- color: #FFFFFF;
- font-weight: 500;
- }
-
- .staff-name {
- font-size: 32rpx;
- font-weight: 500;
- color: #333;
- }
-
- .customer-tags {
- display: flex;
- flex-wrap: wrap;
- margin-bottom: 20rpx;
- gap: 12rpx;
- box-sizing: border-box;
- margin-left: 0;
- margin-right: 0;
- padding: 0;
- /* 确保标签容器不会超出卡片padding范围 */
- width: 100%;
- max-width: 100%;
- }
-
- .customer-info {
- margin-bottom: 16rpx;
- display: flex;
- flex-direction: column;
- gap: 8rpx;
- box-sizing: border-box;
- margin-left: 0;
- margin-right: 0;
- padding: 0;
- /* 确保信息容器不会超出卡片padding范围 */
- width: 100%;
- max-width: 100%;
- }
-
- .customer-name,
- .customer-phone {
- font-size: 28rpx;
- color: #555;
- }
-
- .tag-item {
- padding: 8rpx 16rpx;
- border-radius: 8rpx;
- box-sizing: border-box;
- word-wrap: break-word;
- word-break: break-all;
- /* 确保标签项不会超出卡片padding范围,允许换行 */
- display: inline-block;
- max-width: 100%;
- }
-
- .tag-blue {
- background-color: #E3F2FD;
- }
-
- .tag-blue text {
- font-size: 24rpx;
- color: #1976D2;
- }
-
- .tag-orange {
- background-color: #FFF3E0;
- }
-
- .tag-orange text {
- font-size: 24rpx;
- color: #F57C00;
- }
-
- /* 标签管理样式 - 添加表单 */
- .tag-management {
- /* 使用绝对定位,从tab页底部开始,到底部导航栏结束 */
- position: absolute;
- /* top值通过内联样式动态设置 */
- left: 0;
- right: 0;
- /* #ifndef MP-WEIXIN */
- bottom: 96rpx; /* H5环境:底部导航栏高度 */
- /* #endif */
- /* #ifdef MP-WEIXIN */
- /* 微信小程序:底部导航栏是 fixed 定位,不占用文档流,容器可以延伸到视口底部 */
- bottom: 0 !important;
- /* #endif */
- background-color: #F5F5F5;
- box-sizing: border-box;
- }
-
- /* 标签卡片操作菜单 */
- .tag-card-item {
- position: relative;
- }
-
- .tag-card-action-btn {
- width: 60rpx;
- height: 60rpx;
- display: flex;
- align-items: center;
- justify-content: center;
- cursor: pointer;
- margin-left: auto;
- margin-right: 0;
- margin-top: 0;
- margin-bottom: 0;
- flex-shrink: 0;
- flex-grow: 0;
- position: relative;
- padding: 0;
- /* 确保按钮在卡片padding范围内,距离右边框32rpx */
- }
-
- .tag-card-action-btn uni-icons {
- display: block;
- margin: 0;
- padding: 0;
- line-height: 1;
- }
-
- .tag-card-action-btn:active {
- opacity: 0.7;
- }
-
- .tag-action-menu {
- position: absolute;
- top: 60rpx;
- right: 32rpx;
- width: 160rpx;
- background-color: #FFFFFF;
- border-radius: 12rpx;
- box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.15);
- z-index: 100;
- overflow: hidden;
- margin-right: 0;
- }
-
- .tag-action-menu-item {
- padding: 24rpx 32rpx;
- font-size: 28rpx;
- color: #333;
- text-align: center;
- background-color: #FFFFFF;
- }
-
- .tag-action-menu-item:active {
- background-color: #F5F5F5;
- }
-
- .tag-action-menu-item--danger {
- color: #FF5722;
- }
-
- .tag-action-menu-divider {
- height: 1rpx;
- background-color: #E0E0E0;
- margin: 0 16rpx;
- }
-
- .tag-action-menu-mask {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: transparent;
- z-index: 99;
- }
-
- .tag-form {
- height: 100%;
- padding: 32rpx;
- box-sizing: border-box;
- }
-
- /* 表单卡片样式 */
- .form-card {
- background-color: #FFFFFF;
- border-radius: 24rpx;
- 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 !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;
- }
-
- /* 表单项标签样式 */
- .form-item__label {
- font-size: 28rpx;
- color: #333;
- font-weight: 500;
- 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 {
- 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;
- padding: 0 24rpx;
- font-size: 28rpx;
- 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;
- background-color: #FFFFFF;
- box-shadow: 0 0 0 4rpx rgba(0, 122, 255, 0.1);
- }
-
- /* 文本域样式 */
- .form-item__textarea {
- 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;
- border-radius: 16rpx;
- padding: 20rpx 24rpx;
- font-size: 28rpx;
- color: #333333;
- box-sizing: border-box;
- line-height: 1.6;
- transition: all 0.3s ease;
- }
-
- .form-item__textarea:focus {
- border-color: #007AFF;
- background-color: #FFFFFF;
- box-shadow: 0 0 0 4rpx rgba(0, 122, 255, 0.1);
- }
-
- /* 标签选择器样式 */
- .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%;
- height: 88rpx;
- background-color: #F9FAFB;
- border: 2rpx solid #E5E7EB;
- border-radius: 16rpx;
- padding: 0 24rpx;
- display: flex;
- align-items: center;
- justify-content: space-between;
- box-sizing: border-box;
- cursor: pointer;
- transition: all 0.3s ease;
- }
-
- .tag-select:active {
- border-color: #007AFF;
- background-color: #FFFFFF;
- box-shadow: 0 0 0 4rpx rgba(0, 122, 255, 0.1);
- }
-
- .form-item__picker-text {
- font-size: 28rpx;
- color: #333333;
- flex: 1;
- }
-
- .form-item__picker-placeholder {
- font-size: 28rpx;
- color: #9CA3AF;
- flex: 1;
- }
-
- /* 下拉菜单样式 */
- .tag-select-dropdown {
- position: fixed;
- background-color: #FFFFFF;
- border: 2rpx solid #E5E7EB;
- border-radius: 16rpx;
- box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.12);
- z-index: 9999;
- overflow: hidden;
- max-height: 400rpx;
- overflow-y: auto;
- min-width: 200rpx;
- }
-
- .tag-select-dropdown__item {
- padding: 24rpx;
- border-bottom: 1rpx solid #F3F4F6;
- transition: background-color 0.2s ease;
- }
-
- .tag-select-dropdown__item:last-child {
- border-bottom: none;
- }
-
- .tag-select-dropdown__item:active {
- background-color: #F9FAFB;
- }
-
- .tag-select-dropdown__item text {
- font-size: 28rpx;
- color: #333333;
- }
-
- .tag-select-dropdown__item text.active {
- color: #007AFF;
- font-weight: 500;
- }
-
- /* 下拉菜单遮罩 */
- .tag-select-mask {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: transparent;
- z-index: 9998;
- }
-
- /* textarea类型表单项 - 标签和textarea在同一行,但textarea可以换行 */
- .form-item--textarea {
- align-items: flex-start;
- }
-
- /* 开关类型表单项 - 横向布局 */
- .form-item--switch {
- flex-direction: row;
- align-items: center;
- justify-content: space-between;
- }
-
- .form-item--switch .form-item__label {
- margin-bottom: 0;
- }
-
- /* 开关样式 */
- .form-item switch {
- margin-left: auto;
- transform: scale(0.9);
- }
-
- /* 表单操作按钮区域 */
- .form-actions {
- display: flex;
- gap: 24rpx;
- padding-top: 16rpx;
- }
-
- .form-btn {
- flex: 1;
- height: 88rpx;
- border-radius: 16rpx;
- display: flex;
- align-items: center;
- justify-content: center;
- font-size: 30rpx;
- font-weight: 500;
- transition: all 0.3s ease;
- }
-
- .form-btn--cancel {
- background-color: #F3F4F6;
- color: #6B7280;
- }
-
- .form-btn--cancel:active {
- background-color: #E5E7EB;
- opacity: 0.8;
- }
-
- .form-btn--save {
- background-color: #007AFF;
- color: #FFFFFF;
- }
-
- .form-btn--save:active {
- background-color: #0056CC;
- opacity: 0.9;
- }
-
- .form-btn__text {
- font-size: 30rpx;
- font-weight: 500;
- }
diff --git a/pages-subpackage/furniture_reception/reception_in_progress.vue b/pages-subpackage/furniture_reception/reception_in_progress.vue
index 90916c5..abde73f 100644
--- a/pages-subpackage/furniture_reception/reception_in_progress.vue
+++ b/pages-subpackage/furniture_reception/reception_in_progress.vue
@@ -19,7 +19,7 @@
class="tab-item"
:class="{ active: activeTab === 'reception' }"
@click="switchTab('reception')">
- 开始接待
+ 客户接待
接待中
+
+ 标签管理
+
+
@@ -56,6 +67,7 @@ import statusBar from '@/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-stat
// #endif
import CommonBeginReception from './common_begin_reception.vue';
import ServiceListFurniture from './serviceListFurniture.vue';
+import TagManagementPanel from './tag_management_panel.vue';
export default {
name: '接待中',
@@ -64,12 +76,14 @@ export default {
statusBar,
CommonBeginReception,
ServiceListFurniture,
+ TagManagementPanel,
},
// #endif
// #ifndef APP
components: {
CommonBeginReception,
ServiceListFurniture,
+ TagManagementPanel,
},
// #endif
data() {
@@ -133,6 +147,13 @@ export default {
list.onServiceStatusRefresh();
}
});
+ } else if (this.activeTab === 'tag') {
+ this.$nextTick(() => {
+ const tagPanel = this.$refs.tagPanelRef;
+ if (tagPanel && typeof tagPanel.refreshTagList === 'function') {
+ tagPanel.refreshTagList();
+ }
+ });
}
});
},
@@ -186,12 +207,21 @@ export default {
});
},
switchTab(tab) {
- if (tab !== 'reception' && tab !== 'status') {
+ if (tab !== 'reception' && tab !== 'status' && tab !== 'tag') {
return;
}
this.activeTab = tab;
if (tab === 'reception') {
this.resetReceptionForm();
+ } else if (tab === 'tag') {
+ this.$nextTick(() => {
+ this.$nextTick(() => {
+ const p = this.$refs.tagPanelRef;
+ if (p && typeof p.refreshTagList === 'function') {
+ p.refreshTagList();
+ }
+ });
+ });
}
},
resetReceptionForm() {
diff --git a/pages-subpackage/furniture_reception/serviceListFurniture.vue b/pages-subpackage/furniture_reception/serviceListFurniture.vue
index d1f6875..8817475 100644
--- a/pages-subpackage/furniture_reception/serviceListFurniture.vue
+++ b/pages-subpackage/furniture_reception/serviceListFurniture.vue
@@ -86,8 +86,10 @@
结束
-
- {{ recordStateLabel }}
+
+
+ {{ recordStateLabel }}
+
@@ -231,6 +233,11 @@ export default {
type: Boolean,
default: false,
},
+ /** 卡片右侧是否显示状态横杠图标与 recordStateLabel 文案 */
+ showRecordStateIndicator: {
+ type: Boolean,
+ default: true,
+ },
},
data() {
return {
diff --git a/pages-subpackage/furniture_reception/tag_management_panel.vue b/pages-subpackage/furniture_reception/tag_management_panel.vue
new file mode 100644
index 0000000..0491668
--- /dev/null
+++ b/pages-subpackage/furniture_reception/tag_management_panel.vue
@@ -0,0 +1,1088 @@
+
+
+
+
+ 共{{ tagTotal }}条
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 所属行业:{{ item.industry }}
+
+
+
+
+ 详情:{{ item.tagDetail || item.detail }}
+
+
+ 备注:{{ item.remark }}
+
+
+
+
+
+
+
+ 暂无标签
+
+
+ 正在加载更多...
+
+
+
+
+
+
+
+ 所属行业
+
+
+
+ 标签分类
+
+
+ {{ tagForm.tagType || '请选择标签分类' }}
+
+
+
+
+
+ {{ option }}
+
+
+
+
+ 标签名
+
+
+
+ 详情
+
+
+
+ 备注
+
+
+
+ 是否启用
+
+
+
+
+
+ 取消
+
+
+ {{ tagViewMode === 'edit' ? '更新' : '保存' }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/workbench/components/sales_scenario_new.vue b/pages/workbench/components/sales_scenario_new.vue
index 7024b1c..9cff182 100644
--- a/pages/workbench/components/sales_scenario_new.vue
+++ b/pages/workbench/components/sales_scenario_new.vue
@@ -12,16 +12,11 @@
开始接待
-
+
📌
服务中
-
- ⏳
- 接待中
-
-
🗂️
标签管理
@@ -80,15 +75,18 @@ export default {
},
});
},
- /** 独立「接待中」列表页(与接待页内「服务中」列表同源逻辑) */
- openReceptionInProgress() {
+ /** 独立「接待中 / 服务中」列表页:`/pages-subpackage/furniture_reception/reception_in_progress` */
+ goReceptionInProgressPage(failTitle) {
uni.navigateTo({
url: '/pages-subpackage/furniture_reception/reception_in_progress',
fail: () => {
- uni.showToast({ title: '跳转接待中失败', icon: 'none' });
+ uni.showToast({ title: failTitle || '页面打开失败', icon: 'none' });
},
});
},
+ openReceptionInProgress() {
+ this.goReceptionInProgressPage('跳转接待中失败');
+ },
openCustomerTab(tab) {
const url = `/pages-subpackage/furniture_customer/furniture_customer?tab=${tab}`;
uni.navigateTo({ url });
diff --git a/unpackage/dist/build/mp-weixin/components/ai-analysis-dashboard-body.js b/unpackage/dist/build/mp-weixin/components/ai-analysis-dashboard-body.js
index d2000d3..4f7ea85 100644
--- a/unpackage/dist/build/mp-weixin/components/ai-analysis-dashboard-body.js
+++ b/unpackage/dist/build/mp-weixin/components/ai-analysis-dashboard-body.js
@@ -1 +1 @@
-"use strict";const e=require("../common/vendor.js"),o={name:"AiAnalysisDashboardBody",props:{contentTop:{type:String,default:""},contentBottom:{type:String,default:"96rpx"}},data:()=>({showQualityCoverage:!1,openQualityCoverageTrigger:0}),computed:{scrollTop(){return this.contentTop||"88rpx"},scrollBottom(){return this.contentBottom||"96rpx"}},methods:{showQualityCoveragePopup(){this.showQualityCoverage=!0,this.$nextTick((()=>{this.openQualityCoverageTrigger++}))},onQualityCoveragePopupClose(){this.showQualityCoverage=!1},navigateToPage(o){const t=`pages-subpackage/ai_features/${o}/${o}`;e.index.navigateTo({url:`/${t}`,fail:o=>{console.error("导航失败:",o),e.index.showToast({title:"页面跳转失败",icon:"none"})}})},quickJumpReceptionTab(o){if(["status","reception","tag"].includes(o)){try{e.index.setStorageSync("workbench-reception-tab",o)}catch(t){console.warn("[AiAnalysisDashboardBody] 写入接待tab快捷跳转参数失败:",t)}e.index.navigateTo({url:`/pages-subpackage/furniture_reception/furniture_reception_entry?tab=${encodeURIComponent(o)}`,fail:o=>{console.error("[AiAnalysisDashboardBody] 快捷跳转接待页失败:",o),e.index.showToast({title:"跳转失败,请稍后重试",icon:"none"})}})}},quickJumpReceptionInProgress(){e.index.navigateTo({url:"/pages-subpackage/furniture_reception/reception_in_progress",fail:o=>{console.error("[AiAnalysisDashboardBody] 快捷跳转接待中页失败:",o),e.index.showToast({title:"跳转失败,请稍后重试",icon:"none"})}})},quickJumpCustomerTab(o){["service","customer"].includes(o)&&e.index.navigateTo({url:`/pages-subpackage/furniture_customer/furniture_customer?tab=${o}`,fail:o=>{console.error("[AiAnalysisDashboardBody] 快捷跳转客户页失败:",o),e.index.showToast({title:"跳转失败,请稍后重试",icon:"none"})}})}}};if(!Array){e.resolveComponent("QualityCoveragePopup")()}const t=e._export_sfc(o,[["render",function(o,t,a,i,n,r){return e.e({a:e.o((e=>r.quickJumpReceptionTab("reception")),"80"),b:e.o((e=>r.quickJumpReceptionTab("status")),"3c"),c:e.o(((...e)=>r.quickJumpReceptionInProgress&&r.quickJumpReceptionInProgress(...e)),"e2"),d:e.o((e=>r.quickJumpReceptionTab("tag")),"e5"),e:e.o((e=>r.quickJumpCustomerTab("customer")),"95"),f:e.o((e=>r.quickJumpCustomerTab("service")),"0e"),g:e.o((e=>r.navigateToPage("recording_duration")),"ff"),h:e.o((e=>r.navigateToPage("customer_count")),"79"),i:e.o(((...e)=>r.showQualityCoveragePopup&&r.showQualityCoveragePopup(...e)),"2c"),j:e.o((e=>r.navigateToPage("speech_rating")),"6a"),k:e.o((e=>r.navigateToPage("intent_level")),"76"),l:e.o((e=>r.navigateToPage("deal_attribution")),"96"),m:e.o((e=>r.navigateToPage("opening_rate")),"94"),n:e.o((e=>r.navigateToPage("over_commitment")),"43"),o:e.o((e=>r.navigateToPage("red_line_touch")),"01"),p:r.scrollTop,q:r.scrollBottom,r:n.showQualityCoverage},n.showQualityCoverage?{s:e.o(r.onQualityCoveragePopupClose,"14"),t:e.p({"open-trigger":n.openQualityCoverageTrigger})}:{})}],["__scopeId","data-v-e2fd5293"]]);wx.createComponent(t);
+"use strict";const e=require("../common/vendor.js"),o={name:"AiAnalysisDashboardBody",props:{contentTop:{type:String,default:""},contentBottom:{type:String,default:"96rpx"}},data:()=>({showQualityCoverage:!1,openQualityCoverageTrigger:0}),computed:{scrollTop(){return this.contentTop||"88rpx"},scrollBottom(){return this.contentBottom||"96rpx"}},methods:{showQualityCoveragePopup(){this.showQualityCoverage=!0,this.$nextTick((()=>{this.openQualityCoverageTrigger++}))},onQualityCoveragePopupClose(){this.showQualityCoverage=!1},navigateToPage(o){const t=`pages-subpackage/ai_features/${o}/${o}`;e.index.navigateTo({url:`/${t}`,fail:o=>{console.error("导航失败:",o),e.index.showToast({title:"页面跳转失败",icon:"none"})}})},quickJumpReceptionTab(o){if(["status","reception","tag"].includes(o)){try{e.index.setStorageSync("workbench-reception-tab",o)}catch(t){console.warn("[AiAnalysisDashboardBody] 写入接待tab快捷跳转参数失败:",t)}e.index.navigateTo({url:`/pages-subpackage/furniture_reception/furniture_reception_entry?tab=${encodeURIComponent(o)}`,fail:o=>{console.error("[AiAnalysisDashboardBody] 快捷跳转接待页失败:",o),e.index.showToast({title:"跳转失败,请稍后重试",icon:"none"})}})}},quickJumpReceptionInProgress(){e.index.navigateTo({url:"/pages-subpackage/furniture_reception/reception_in_progress",fail:o=>{console.error("[AiAnalysisDashboardBody] 快捷跳转接待中页失败:",o),e.index.showToast({title:"跳转失败,请稍后重试",icon:"none"})}})},quickJumpCustomerTab(o){["service","customer"].includes(o)&&e.index.navigateTo({url:`/pages-subpackage/furniture_customer/furniture_customer?tab=${o}`,fail:o=>{console.error("[AiAnalysisDashboardBody] 快捷跳转客户页失败:",o),e.index.showToast({title:"跳转失败,请稍后重试",icon:"none"})}})}}};if(!Array){e.resolveComponent("QualityCoveragePopup")()}const t=e._export_sfc(o,[["render",function(o,t,a,i,n,r){return e.e({a:e.o((e=>r.quickJumpReceptionTab("reception")),"9a"),b:e.o((e=>r.quickJumpReceptionTab("status")),"18"),c:e.o(((...e)=>r.quickJumpReceptionInProgress&&r.quickJumpReceptionInProgress(...e)),"fb"),d:e.o((e=>r.quickJumpReceptionTab("tag")),"c6"),e:e.o((e=>r.quickJumpCustomerTab("customer")),"14"),f:e.o((e=>r.quickJumpCustomerTab("service")),"a1"),g:e.o((e=>r.navigateToPage("recording_duration")),"84"),h:e.o((e=>r.navigateToPage("customer_count")),"1e"),i:e.o(((...e)=>r.showQualityCoveragePopup&&r.showQualityCoveragePopup(...e)),"7c"),j:e.o((e=>r.navigateToPage("speech_rating")),"41"),k:e.o((e=>r.navigateToPage("intent_level")),"b6"),l:e.o((e=>r.navigateToPage("deal_attribution")),"e5"),m:e.o((e=>r.navigateToPage("opening_rate")),"ef"),n:e.o((e=>r.navigateToPage("over_commitment")),"00"),o:e.o((e=>r.navigateToPage("red_line_touch")),"92"),p:r.scrollTop,q:r.scrollBottom,r:n.showQualityCoverage},n.showQualityCoverage?{s:e.o(r.onQualityCoveragePopupClose,"e9"),t:e.p({"open-trigger":n.openQualityCoverageTrigger})}:{})}],["__scopeId","data-v-28d86573"]]);wx.createComponent(t);
diff --git a/unpackage/dist/build/mp-weixin/components/ai-analysis-dashboard-body.wxml b/unpackage/dist/build/mp-weixin/components/ai-analysis-dashboard-body.wxml
index 232eb0d..299600f 100644
--- a/unpackage/dist/build/mp-weixin/components/ai-analysis-dashboard-body.wxml
+++ b/unpackage/dist/build/mp-weixin/components/ai-analysis-dashboard-body.wxml
@@ -1 +1 @@
-🤝开始接待📋服务中⏳接待中🏷️标签管理👥客户列表📝服务记录⏱️录音时长👥接待客户数📊质检覆盖率🗣️员工话术评分🎯客户意向分级💰成交归因🚪开口率🚨过度承诺统计🔴触及红线统计
\ No newline at end of file
+🤝开始接待📋服务中⏳接待中🏷️标签管理👥客户列表📝服务记录⏱️录音时长👥接待客户数📊质检覆盖率🗣️员工话术评分🎯客户意向分级💰成交归因🚪开口率🚨过度承诺统计🔴触及红线统计
\ No newline at end of file
diff --git a/unpackage/dist/build/mp-weixin/components/ai-analysis-dashboard-body.wxss b/unpackage/dist/build/mp-weixin/components/ai-analysis-dashboard-body.wxss
index 8be24c1..99d40b0 100644
--- a/unpackage/dist/build/mp-weixin/components/ai-analysis-dashboard-body.wxss
+++ b/unpackage/dist/build/mp-weixin/components/ai-analysis-dashboard-body.wxss
@@ -1 +1 @@
-.ai-dashboard-body.data-v-e2fd5293{position:relative;width:100%}.content.data-v-e2fd5293{padding-top:0!important;margin-top:0!important;position:relative;top:0;min-height:calc(100vh - 200rpx)}.content-scroll.data-v-e2fd5293{position:absolute;left:0;right:0;top:0;bottom:0;padding:0!important;margin:0!important;box-sizing:border-box}.content-scroll>view.data-v-e2fd5293{margin-top:0;padding-top:0;margin-bottom:0;padding-bottom:0}.category-section.data-v-e2fd5293{margin:20rpx 30rpx;background:#fff;border-radius:16rpx;overflow:hidden;box-shadow:0 2rpx 8rpx rgba(0,0,0,.04)}.category-section.data-v-e2fd5293:first-child{margin-top:0}.category-section.data-v-e2fd5293:last-child{margin-bottom:0}.category-header.data-v-e2fd5293{display:flex;align-items:center;padding:30rpx;background:#fff;border-bottom:1rpx solid #f0f0f0}.category-icon.data-v-e2fd5293{font-size:32rpx;margin-right:20rpx}.category-title.data-v-e2fd5293{font-size:32rpx;font-weight:500;color:#333}.function-grid.data-v-e2fd5293{display:flex;flex-wrap:wrap;padding:10rpx}.quick-links-section .function-item.data-v-e2fd5293{width:calc(33.333% - 10rpx);background:#fff;border-radius:12rpx;padding:24rpx 12rpx;margin:5rpx;text-align:center;box-shadow:0 2rpx 4rpx rgba(0,0,0,.04);transition:all .3s ease;border:1rpx solid #f0f0f0;box-sizing:border-box}.two-column .function-item.data-v-e2fd5293{flex:1;background:#fff;border-radius:12rpx;padding:24rpx 16rpx;margin:0 5rpx;text-align:center;box-shadow:0 2rpx 4rpx rgba(0,0,0,.04);transition:all .3s ease;border:1rpx solid #f0f0f0}.three-column .function-item.data-v-e2fd5293{width:31%;background:#fff;border-radius:12rpx;padding:24rpx 12rpx;margin:1%;text-align:center;box-shadow:0 2rpx 4rpx rgba(0,0,0,.04);transition:all .3s ease;border:1rpx solid #f0f0f0}.sales-analysis .function-item.full-row-item.data-v-e2fd5293{flex:1;width:calc(50% - 10rpx);background:#fff;border-radius:12rpx;padding:24rpx 16rpx;margin:0 5rpx;text-align:center;box-shadow:0 2rpx 4rpx rgba(0,0,0,.04);transition:all .3s ease;border:1rpx solid #f0f0f0}.sales-analysis .function-item.new-line-item.data-v-e2fd5293{flex-basis:100%;width:calc(50% - 10rpx);margin-top:10rpx}.function-item.data-v-e2fd5293:active{transform:scale(.95);box-shadow:0 1rpx 2rpx rgba(0,0,0,.1)}.function-icon.data-v-e2fd5293{font-size:48rpx;margin-bottom:12rpx}.function-name.data-v-e2fd5293{display:block;font-size:28rpx;font-weight:500;color:#333;margin-bottom:8rpx}.function-desc.data-v-e2fd5293{display:block;font-size:24rpx;color:#666;line-height:1.4}
+.ai-dashboard-body.data-v-28d86573{position:relative;width:100%}.content.data-v-28d86573{padding-top:0!important;margin-top:0!important;position:relative;top:0;min-height:calc(100vh - 200rpx)}.content-scroll.data-v-28d86573{position:absolute;left:0;right:0;top:0;bottom:0;padding:0!important;margin:0!important;box-sizing:border-box}.content-scroll>view.data-v-28d86573{margin-top:0;padding-top:0;margin-bottom:0;padding-bottom:0}.category-section.data-v-28d86573{margin:20rpx 30rpx;background:#fff;border-radius:16rpx;overflow:hidden;box-shadow:0 2rpx 8rpx rgba(0,0,0,.04)}.category-section.data-v-28d86573:first-child{margin-top:0}.category-section.data-v-28d86573:last-child{margin-bottom:0}.category-header.data-v-28d86573{display:flex;align-items:center;padding:30rpx;background:#fff;border-bottom:1rpx solid #f0f0f0}.category-icon.data-v-28d86573{font-size:32rpx;margin-right:20rpx}.category-title.data-v-28d86573{font-size:32rpx;font-weight:500;color:#333}.function-grid.data-v-28d86573{display:flex;flex-wrap:wrap;padding:10rpx}.quick-links-section .function-item.data-v-28d86573{width:calc(33.333% - 10rpx);background:#fff;border-radius:12rpx;padding:24rpx 12rpx;margin:5rpx;text-align:center;box-shadow:0 2rpx 4rpx rgba(0,0,0,.04);transition:all .3s ease;border:1rpx solid #f0f0f0;box-sizing:border-box}.two-column .function-item.data-v-28d86573{flex:1;background:#fff;border-radius:12rpx;padding:24rpx 16rpx;margin:0 5rpx;text-align:center;box-shadow:0 2rpx 4rpx rgba(0,0,0,.04);transition:all .3s ease;border:1rpx solid #f0f0f0}.three-column .function-item.data-v-28d86573{width:31%;background:#fff;border-radius:12rpx;padding:24rpx 12rpx;margin:1%;text-align:center;box-shadow:0 2rpx 4rpx rgba(0,0,0,.04);transition:all .3s ease;border:1rpx solid #f0f0f0}.sales-analysis .function-item.full-row-item.data-v-28d86573{flex:1;width:calc(50% - 10rpx);background:#fff;border-radius:12rpx;padding:24rpx 16rpx;margin:0 5rpx;text-align:center;box-shadow:0 2rpx 4rpx rgba(0,0,0,.04);transition:all .3s ease;border:1rpx solid #f0f0f0}.sales-analysis .function-item.new-line-item.data-v-28d86573{flex-basis:100%;width:calc(50% - 10rpx);margin-top:10rpx}.function-item.data-v-28d86573:active{transform:scale(.95);box-shadow:0 1rpx 2rpx rgba(0,0,0,.1)}.function-icon.data-v-28d86573{font-size:48rpx;margin-bottom:12rpx}.function-name.data-v-28d86573{display:block;font-size:28rpx;font-weight:500;color:#333;margin-bottom:8rpx}.function-desc.data-v-28d86573{display:block;font-size:24rpx;color:#666;line-height:1.4}
diff --git a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/common_begin_reception.js b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/common_begin_reception.js
index 148b5e2..552533a 100644
--- a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/common_begin_reception.js
+++ b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/common_begin_reception.js
@@ -1 +1 @@
-"use strict";const e=require("../../common/vendor.js"),t=require("../../common/config.js"),o={name:"ReceptionForm",props:{initialData:{type:Object,default:()=>({})}},data:()=>({genderOptions:["男","女"],customerSourceOptions:["自然到店","网络媒体","其他类型"],showCustomerSourceDropdown:!1,isFetchingContact:!1,formData:{id:"",customerName:"",contact:"",customerSource:"",gender:"女",age:"",dealershipId:"",dealershipName:"",salesId:"",salesName:"",salesPhone:"",recordingCount:0,intendedModel:"",infoCard:"",remark:"",detailedAddress:"",contactCount:0}}),watch:{initialData:{handler(e){e&&Object.keys(e).length>0&&(this.formData={...this.formData,...e})},immediate:!0,deep:!0}},mounted(){this.loadCurrentUserInfo(),e.index.onWindowResize((()=>{this.showCustomerSourceDropdown&&this.updateDropdownPosition()}))},methods:{loadCurrentUserInfo(){try{const t=e.index.getStorageSync("backend-login-response")||{};t.userName&&(this.formData.salesName=t.userName),t.phone?this.formData.salesPhone=t.phone:t.userName&&(this.formData.salesPhone=t.userName),t.userId&&(this.formData.salesId=String(t.userId))}catch(t){console.error("加载当前登录用户信息失败:",t)}},onGenderChange(e){this.formData.gender=e.detail.value},toggleCustomerSourceDropdown(){this.showCustomerSourceDropdown=!this.showCustomerSourceDropdown,this.showCustomerSourceDropdown&&this.$nextTick((()=>{this.updateDropdownPosition()}))},updateDropdownPosition(){const e=this.$refs.customerSourceSelect;if(e){const t=e.getBoundingClientRect(),o=this.$refs.customerSourceDropdown;o&&(o.style.top=t.bottom+8+"px",o.style.left=t.left+"px",o.style.width=t.width+"px")}},selectCustomerSource(e){this.formData.customerSource=e,this.showCustomerSourceDropdown=!1},closeCustomerSourceDropdown(){this.showCustomerSourceDropdown=!1},onContactBlur(){var t;const o=null==(t=this.formData.contact)?void 0:t.trim();o&&(this.isValidPhoneNumber(o)?this.fetchCustomerByContact():e.index.showToast({title:"请输入有效的手机号",icon:"none"}))},isValidPhoneNumber(e){const t=null==e?void 0:e.trim();return!!t&&/^1[3-9]\d{9}$/.test(t)},async fetchCustomerByContact(){var o,a,r;const s=null==(o=this.formData.contact)?void 0:o.trim();if(s&&!this.isFetchingContact&&this.isValidPhoneNumber(s))try{this.isFetchingContact=!0;const o=`${t.getApiUrl("/api/customerManagement/getByContact")}?contact=${encodeURIComponent(s)}`;let i="",d="";try{i=e.index.getStorageSync("backend-tenant-id")||"",d=e.index.getStorageSync("backend-token")||""}catch(n){console.error("获取认证信息失败:",n)}const c={};d&&(c.Authorization=`Bearer ${d}`),i&&(c["X-Tenant-Id"]=i);const m=await e.index.request({url:o,method:"GET",header:c,timeout:3e4}),l=null==(a=m.data)?void 0:a.data;if(200===m.statusCode&&(null==(r=m.data)?void 0:r.success)&&Array.isArray(l)&&l.length){const t=l[0],o=t.id||t.customerId||"",a=t.salesPhone||t.salesMobile||t.salesTel||this.formData.salesPhone||"";this.formData={...this.formData,id:o?String(o):this.formData.id,customerName:t.customerName||this.formData.customerName,customerSource:t.customerSource||this.formData.customerSource,dealershipId:t.dealershipId?String(t.dealershipId):this.formData.dealershipId,dealershipName:t.dealershipName||this.formData.dealershipName,salesId:t.salesId?String(t.salesId):this.formData.salesId,salesName:t.salesName||this.formData.salesName,salesPhone:String(a),recordingCount:Number(t.recordingCount)||0,intendedModel:t.intendedModel||this.formData.intendedModel,infoCard:t.infoCard||this.formData.infoCard,remark:t.remark||this.formData.remark,detailedAddress:t.detailedAddress||this.formData.detailedAddress,contactCount:t.contactCount??this.formData.contactCount},e.index.showToast({title:"已填充客户信息",icon:"none"})}}catch(i){console.error("查询客户信息失败:",i)}finally{this.isFetchingContact=!1}},handleCancel(){this.formData={id:"",customerName:"",contact:"",customerSource:"",gender:"女",age:"",dealershipId:"",dealershipName:"",salesId:"",salesName:"",salesPhone:"",recordingCount:0,intendedModel:"",infoCard:"",remark:"",detailedAddress:"",contactCount:0},this.loadCurrentUserInfo(),this.$emit("cancel"),e.index.showToast({title:"已取消",icon:"none"})},async handleSave(o="save"){var a,r,s,n,i,d,c,m,l,u,h,f,p;const D=null==(a=this.formData.contact)?void 0:a.trim();if(D&&!this.isValidPhoneNumber(D))return void e.index.showToast({title:"请输入有效的客户电话",icon:"none"});const g=null==(r=this.formData.salesPhone)?void 0:r.trim();if(g&&!this.isValidPhoneNumber(g))return void e.index.showToast({title:"请输入有效的销售电话",icon:"none"});const C={id:(null==(s=this.formData.id)?void 0:s.toString().trim())||"",customerName:null==(n=this.formData.customerName)?void 0:n.trim(),contact:D,customerSource:(null==(i=this.formData.customerSource)?void 0:i.trim())||"",dealershipId:String(this.formData.dealershipId||"").trim()||"",dealershipName:(null==(d=this.formData.dealershipName)?void 0:d.trim())||"",salesId:String(this.formData.salesId||"").trim()||"",salesName:(null==(c=this.formData.salesName)?void 0:c.trim())||"",recordingCount:Number(this.formData.recordingCount)||0,intendedModel:(null==(m=this.formData.intendedModel)?void 0:m.trim())||"",infoCard:(null==(l=this.formData.infoCard)?void 0:l.trim())||"",remark:(null==(u=this.formData.remark)?void 0:u.trim())||"",detailedAddress:(null==(h=this.formData.detailedAddress)?void 0:h.trim())||"",salesPhone:g||"",contactCount:Number(this.formData.contactCount)||0,operationType:o};try{e.index.showLoading({title:"保存中..."});let a="",r="",s="";try{const t=e.index.getStorageSync("backend-login-response")||{};a=e.index.getStorageSync("backend-tenant-id")||"",r=e.index.getStorageSync("backend-token")||"",s=(t.scenario||e.index.getStorageSync("backend-scenario")||"").toString().trim()}catch(S){console.error("获取认证信息失败:",S)}const n={"Content-Type":"application/json"};r&&(n.Authorization=`Bearer ${r}`),a&&(n["X-Tenant-Id"]=a),s&&(n["X-Scenario"]=s,C.scenario=s);const i=await e.index.request({url:t.getApiUrl("/api/customerManagement/add"),method:"POST",data:C,header:n,timeout:3e4});e.index.hideLoading(),200===i.statusCode&&i.data&&i.data.success?(e.index.showToast({title:"保存成功",icon:"success"}),this.handleCancel(),this.$emit("save-success",{action:o,data:C})):(e.index.showToast({title:(null==(f=i.data)?void 0:f.message)||"保存失败",icon:"none"}),this.$emit("save-error",{action:o,error:(null==(p=i.data)?void 0:p.message)||"保存失败"}))}catch(w){e.index.hideLoading(),console.error("保存失败:",w),e.index.showToast({title:"保存失败,请重试",icon:"none"}),this.$emit("save-error",{action:o,error:w.message||"保存失败,请重试"})}}}};if(!Array){e.resolveComponent("uni-icons")()}Math;const a=e._export_sfc(o,[["render",function(t,o,a,r,s,n){return e.e({a:e.t(s.formData.recordingCount||0),b:s.formData.customerName,c:e.o((e=>s.formData.customerName=e.detail.value),"34"),d:e.o(((...e)=>n.onContactBlur&&n.onContactBlur(...e)),"2c"),e:s.formData.contact,f:e.o((e=>s.formData.contact=e.detail.value),"35"),g:e.t(s.formData.customerSource||"请选择客户来源"),h:e.n(s.formData.customerSource?"form-item__picker-text":"form-item__picker-placeholder"),i:e.p({type:"bottom",size:"16",color:"#9ca3af"}),j:e.o(((...e)=>n.toggleCustomerSourceDropdown&&n.toggleCustomerSourceDropdown(...e)),"cf"),k:s.showCustomerSourceDropdown},s.showCustomerSourceDropdown?{l:e.f(s.customerSourceOptions,((t,o,a)=>({a:e.t(t),b:t===s.formData.customerSource?1:"",c:t,d:e.o((e=>n.selectCustomerSource(t)),t)}))),m:e.o((()=>{}),"66")}:{},{n:s.formData.dealershipName,o:e.o((e=>s.formData.dealershipName=e.detail.value),"c4"),p:e.f(s.genderOptions,((t,o,a)=>({a:t,b:s.formData.gender===t,c:e.t(t),d:o}))),q:e.o(((...e)=>n.onGenderChange&&n.onGenderChange(...e)),"22"),r:s.formData.age,s:e.o((e=>s.formData.age=e.detail.value),"5c"),t:s.formData.salesName,v:e.o((e=>s.formData.salesName=e.detail.value),"42"),w:s.formData.salesPhone,x:e.o((e=>s.formData.salesPhone=e.detail.value),"ed"),y:s.formData.remarks,z:e.o((e=>s.formData.remarks=e.detail.value),"96"),A:e.p({type:"close",size:"16",color:"#007AFF"}),B:e.o(((...e)=>n.handleCancel&&n.handleCancel(...e)),"75"),C:e.p({type:"checkmarkempty",size:"16",color:"#007AFF"}),D:e.o((e=>n.handleSave("save")),"99"),E:e.p({type:"checkmarkempty",size:"16",color:"#007AFF"}),F:e.o((e=>n.handleSave("start")),"b4"),G:s.showCustomerSourceDropdown},s.showCustomerSourceDropdown?{H:e.o(((...e)=>n.closeCustomerSourceDropdown&&n.closeCustomerSourceDropdown(...e)),"f4")}:{})}]]);wx.createComponent(a);
+"use strict";const e=require("../../common/vendor.js"),t=require("../../common/config.js"),o={name:"ReceptionForm",props:{initialData:{type:Object,default:()=>({})}},data:()=>({genderOptions:["男","女"],customerSourceOptions:["自然到店","网络媒体","其他类型"],showCustomerSourceDropdown:!1,isFetchingContact:!1,formData:{id:"",customerName:"",contact:"",customerSource:"",gender:"女",age:"",dealershipId:"",dealershipName:"",salesId:"",salesName:"",salesPhone:"",recordingCount:0,intendedModel:"",infoCard:"",remark:"",detailedAddress:"",contactCount:0}}),watch:{initialData:{handler(e){e&&Object.keys(e).length>0&&(this.formData={...this.formData,...e})},immediate:!0,deep:!0}},mounted(){this.loadCurrentUserInfo(),e.index.onWindowResize((()=>{this.showCustomerSourceDropdown&&this.updateDropdownPosition()}))},methods:{loadCurrentUserInfo(){try{const t=e.index.getStorageSync("backend-login-response")||{};t.userName&&(this.formData.salesName=t.userName),t.phone?this.formData.salesPhone=t.phone:t.userName&&(this.formData.salesPhone=t.userName),t.userId&&(this.formData.salesId=String(t.userId))}catch(t){console.error("加载当前登录用户信息失败:",t)}},onGenderChange(e){this.formData.gender=e.detail.value},toggleCustomerSourceDropdown(){this.showCustomerSourceDropdown=!this.showCustomerSourceDropdown,this.showCustomerSourceDropdown&&this.$nextTick((()=>{this.updateDropdownPosition()}))},updateDropdownPosition(){const e=this.$refs.customerSourceSelect;if(e){const t=e.getBoundingClientRect(),o=this.$refs.customerSourceDropdown;o&&(o.style.top=t.bottom+8+"px",o.style.left=t.left+"px",o.style.width=t.width+"px")}},selectCustomerSource(e){this.formData.customerSource=e,this.showCustomerSourceDropdown=!1},closeCustomerSourceDropdown(){this.showCustomerSourceDropdown=!1},onContactBlur(){var t;const o=null==(t=this.formData.contact)?void 0:t.trim();o&&(this.isValidPhoneNumber(o)?this.fetchCustomerByContact():e.index.showToast({title:"请输入有效的手机号",icon:"none"}))},isValidPhoneNumber(e){const t=null==e?void 0:e.trim();return!!t&&/^1[3-9]\d{9}$/.test(t)},async fetchCustomerByContact(){var o,a,r;const s=null==(o=this.formData.contact)?void 0:o.trim();if(s&&!this.isFetchingContact&&this.isValidPhoneNumber(s))try{this.isFetchingContact=!0;const o=`${t.getApiUrl("/api/customerManagement/getByContact")}?contact=${encodeURIComponent(s)}`;let i="",d="";try{i=e.index.getStorageSync("backend-tenant-id")||"",d=e.index.getStorageSync("backend-token")||""}catch(n){console.error("获取认证信息失败:",n)}const c={};d&&(c.Authorization=`Bearer ${d}`),i&&(c["X-Tenant-Id"]=i);const m=await e.index.request({url:o,method:"GET",header:c,timeout:3e4}),l=null==(a=m.data)?void 0:a.data;if(200===m.statusCode&&(null==(r=m.data)?void 0:r.success)&&Array.isArray(l)&&l.length){const t=l[0],o=t.id||t.customerId||"",a=t.salesPhone||t.salesMobile||t.salesTel||this.formData.salesPhone||"";this.formData={...this.formData,id:o?String(o):this.formData.id,customerName:t.customerName||this.formData.customerName,customerSource:t.customerSource||this.formData.customerSource,dealershipId:t.dealershipId?String(t.dealershipId):this.formData.dealershipId,dealershipName:t.dealershipName||this.formData.dealershipName,salesId:t.salesId?String(t.salesId):this.formData.salesId,salesName:t.salesName||this.formData.salesName,salesPhone:String(a),recordingCount:Number(t.recordingCount)||0,intendedModel:t.intendedModel||this.formData.intendedModel,infoCard:t.infoCard||this.formData.infoCard,remark:t.remark||this.formData.remark,detailedAddress:t.detailedAddress||this.formData.detailedAddress,contactCount:t.contactCount??this.formData.contactCount},e.index.showToast({title:"已填充客户信息",icon:"none"})}}catch(i){console.error("查询客户信息失败:",i)}finally{this.isFetchingContact=!1}},handleCancel(){this.formData={id:"",customerName:"",contact:"",customerSource:"",gender:"女",age:"",dealershipId:"",dealershipName:"",salesId:"",salesName:"",salesPhone:"",recordingCount:0,intendedModel:"",infoCard:"",remark:"",detailedAddress:"",contactCount:0},this.loadCurrentUserInfo(),this.$emit("cancel"),e.index.showToast({title:"已取消",icon:"none"})},async handleSave(o="save"){var a,r,s,n,i,d,c,m,l,u,h,f,p;const D=null==(a=this.formData.contact)?void 0:a.trim();if(D&&!this.isValidPhoneNumber(D))return void e.index.showToast({title:"请输入有效的客户电话",icon:"none"});const g=null==(r=this.formData.salesPhone)?void 0:r.trim();if(g&&!this.isValidPhoneNumber(g))return void e.index.showToast({title:"请输入有效的销售电话",icon:"none"});const C={id:(null==(s=this.formData.id)?void 0:s.toString().trim())||"",customerName:null==(n=this.formData.customerName)?void 0:n.trim(),contact:D,customerSource:(null==(i=this.formData.customerSource)?void 0:i.trim())||"",dealershipId:String(this.formData.dealershipId||"").trim()||"",dealershipName:(null==(d=this.formData.dealershipName)?void 0:d.trim())||"",salesId:String(this.formData.salesId||"").trim()||"",salesName:(null==(c=this.formData.salesName)?void 0:c.trim())||"",recordingCount:Number(this.formData.recordingCount)||0,intendedModel:(null==(m=this.formData.intendedModel)?void 0:m.trim())||"",infoCard:(null==(l=this.formData.infoCard)?void 0:l.trim())||"",remark:(null==(u=this.formData.remark)?void 0:u.trim())||"",detailedAddress:(null==(h=this.formData.detailedAddress)?void 0:h.trim())||"",salesPhone:g||"",contactCount:Number(this.formData.contactCount)||0,operationType:o};try{e.index.showLoading({title:"保存中..."});let a="",r="",s="";try{const t=e.index.getStorageSync("backend-login-response")||{};a=e.index.getStorageSync("backend-tenant-id")||"",r=e.index.getStorageSync("backend-token")||"",s=(t.scenario||e.index.getStorageSync("backend-scenario")||"").toString().trim()}catch(S){console.error("获取认证信息失败:",S)}const n={"Content-Type":"application/json"};r&&(n.Authorization=`Bearer ${r}`),a&&(n["X-Tenant-Id"]=a),s&&(n["X-Scenario"]=s,C.scenario=s);const i=await e.index.request({url:t.getApiUrl("/api/customerManagement/add"),method:"POST",data:C,header:n,timeout:3e4});e.index.hideLoading(),200===i.statusCode&&i.data&&i.data.success?(e.index.showToast({title:"保存成功",icon:"success"}),this.handleCancel(),this.$emit("save-success",{action:o,data:C})):(e.index.showToast({title:(null==(f=i.data)?void 0:f.message)||"保存失败",icon:"none"}),this.$emit("save-error",{action:o,error:(null==(p=i.data)?void 0:p.message)||"保存失败"}))}catch(w){e.index.hideLoading(),console.error("保存失败:",w),e.index.showToast({title:"保存失败,请重试",icon:"none"}),this.$emit("save-error",{action:o,error:w.message||"保存失败,请重试"})}}}};if(!Array){e.resolveComponent("uni-icons")()}Math;const a=e._export_sfc(o,[["render",function(t,o,a,r,s,n){return e.e({a:e.t(s.formData.recordingCount||0),b:s.formData.customerName,c:e.o((e=>s.formData.customerName=e.detail.value),"46"),d:e.o(((...e)=>n.onContactBlur&&n.onContactBlur(...e)),"17"),e:s.formData.contact,f:e.o((e=>s.formData.contact=e.detail.value),"c7"),g:e.t(s.formData.customerSource||"请选择客户来源"),h:e.n(s.formData.customerSource?"form-item__picker-text":"form-item__picker-placeholder"),i:e.p({type:"bottom",size:"16",color:"#9ca3af"}),j:e.o(((...e)=>n.toggleCustomerSourceDropdown&&n.toggleCustomerSourceDropdown(...e)),"fe"),k:s.showCustomerSourceDropdown},s.showCustomerSourceDropdown?{l:e.f(s.customerSourceOptions,((t,o,a)=>({a:e.t(t),b:t===s.formData.customerSource?1:"",c:t,d:e.o((e=>n.selectCustomerSource(t)),t)}))),m:e.o((()=>{}),"1b")}:{},{n:s.formData.dealershipName,o:e.o((e=>s.formData.dealershipName=e.detail.value),"f6"),p:e.f(s.genderOptions,((t,o,a)=>({a:t,b:s.formData.gender===t,c:e.t(t),d:o}))),q:e.o(((...e)=>n.onGenderChange&&n.onGenderChange(...e)),"5e"),r:s.formData.age,s:e.o((e=>s.formData.age=e.detail.value),"a2"),t:s.formData.salesName,v:e.o((e=>s.formData.salesName=e.detail.value),"f2"),w:s.formData.salesPhone,x:e.o((e=>s.formData.salesPhone=e.detail.value),"eb"),y:s.formData.remarks,z:e.o((e=>s.formData.remarks=e.detail.value),"4a"),A:e.p({type:"close",size:"16",color:"#007AFF"}),B:e.o(((...e)=>n.handleCancel&&n.handleCancel(...e)),"a2"),C:e.p({type:"checkmarkempty",size:"16",color:"#007AFF"}),D:e.o((e=>n.handleSave("save")),"97"),E:e.p({type:"checkmarkempty",size:"16",color:"#007AFF"}),F:e.o((e=>n.handleSave("start")),"c9"),G:s.showCustomerSourceDropdown},s.showCustomerSourceDropdown?{H:e.o(((...e)=>n.closeCustomerSourceDropdown&&n.closeCustomerSourceDropdown(...e)),"5f")}:{})}]]);wx.createComponent(a);
diff --git a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.js b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.js
index c345134..1da5974 100644
--- a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.js
+++ b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.js
@@ -1 +1 @@
-"use strict";const e=require("../../common/vendor.js"),t=require("../../common/config.js"),o={props:{incomingTab:{type:String,default:""}},components:{CommonBeginReception:()=>"./common_begin_reception.js",ServiceListFurniture:()=>"./serviceListFurniture.js"},data:()=>({activeTab:"status",navbarTop:"88rpx",contentTop:"160rpx",receptionForm:{id:"",customerName:"",contact:"",customerSource:"",gender:"女",age:"",dealershipId:"",dealershipName:"",salesId:"",salesName:"",salesPhone:"",recordingCount:0,intendedModel:"",infoCard:"",remark:"",detailedAddress:"",contactCount:0},tagViewMode:"list",tagList:[],tagLoading:!1,tagTotal:0,tagPage:{current:1,size:10},tagQuery:{industry:"",tagType:"",tagName:""},tagForm:{id:"",industry:"家居行业",tagType:"",name:"",detail:"",remark:"",enabled:!0},tagTypeOptions:["接待客户","质检SOP","客户画像"],showTagTypeDropdown:!1,selectedTagItem:null,showTagActionMenu:!1}),watch:{incomingTab:{immediate:!0,handler(e){this.applyIncomingTab(e)}}},computed:{computedNavbarTop(){const t=e.index.getSystemInfoSync();return((t.statusBarHeight||20)+44)*(750/(t.windowWidth||t.screenWidth||375))+"rpx"},computedContentTop(){const t=e.index.getSystemInfoSync();return((t.statusBarHeight||20)+44)*(750/(t.windowWidth||t.screenWidth||375))+72+"rpx"}},onLoad(){console.log("[FurnitureReception][onLoad] 页面加载"),this.updateNavbarPosition(),this.loadCurrentUserInfo()},onShow(){console.log("[FurnitureReception][onShow] 页面显示"),this.$nextTick((()=>{this.updateNavbarPosition(),setTimeout((()=>{this.updateNavbarPosition(),console.log("[FurnitureReception][onShow] 延迟更新后的位置:",{navbarTop:this.navbarTop,contentTop:this.contentTop,computedNavbarTop:this.computedNavbarTop,computedContentTop:this.computedContentTop})}),50)}))},onReady(){console.log("[FurnitureReception][onReady] 页面渲染完成"),console.log("[FurnitureReception][onReady] activeTab:",this.activeTab),console.log("[FurnitureReception][onReady] navbarTop:",this.navbarTop),console.log("[FurnitureReception][onReady] contentTop:",this.contentTop),console.log("[FurnitureReception][onReady] computedNavbarTop:",this.computedNavbarTop),console.log("[FurnitureReception][onReady] computedContentTop:",this.computedContentTop),this.updateNavbarPosition(),this.initUrlHidingAfterPageLoad();const t=e.index.getSystemInfoSync();console.log("[FurnitureReception][onReady] 系统信息:",{statusBarHeight:t.statusBarHeight,windowHeight:t.windowHeight,screenHeight:t.screenHeight}),setTimeout((()=>{e.index.createSelectorQuery().in(this).select(".tabs").boundingClientRect((e=>{console.log("[FurnitureReception][onReady] tab栏元素信息:",e),e?(console.log("[FurnitureReception][onReady] tab栏位置:",{top:e.top,left:e.left,width:e.width,height:e.height,expectedTop:this.navbarTop,computedNavbarTop:this.computedNavbarTop,isVisible:e.width>0&&e.height>0,isOnScreen:e.top>=0&&e.top{this.showTagTypeDropdown&&this.updateTagTypeDropdownPosition()}))},methods:{refreshPageData(){this.$nextTick((()=>{const e=this.$refs.serviceListRef;"status"===this.activeTab?e&&"function"==typeof e.onServiceStatusRefresh&&e.onServiceStatusRefresh():"tag"===this.activeTab&&"list"===this.tagViewMode&&this.fetchTagList({force:!0})}))},applyIncomingTab(e){["status","reception","tag"].includes(e)&&(this.activeTab!==e&&(this.activeTab=e),"reception"===e?this.resetReceptionForm():"tag"===e?(this.tagViewMode="list",this.fetchTagList({force:!0})):"status"===e&&this.$nextTick((()=>{this.refreshPageData()})))},updateNavbarPosition(){console.log("[FurnitureReception][updateNavbarPosition] 开始更新导航栏位置");const t=e.index.getSystemInfoSync().statusBarHeight||20,o=2*t+88,a=o+"rpx",i=o+72+"rpx";console.log("[FurnitureReception][updateNavbarPosition] 更新导航栏位置:",{statusBarHeight:t,navbarHeight:44,totalNavbarHeight:o,navbarTop:a,contentTop:i,currentNavbarTop:this.navbarTop,currentContentTop:this.contentTop}),this.$set(this,"navbarTop",a),this.$set(this,"contentTop",i),this.$forceUpdate()},loadCurrentUserInfo(){try{const t=e.index.getStorageSync("backend-login-response")||{};t.userName&&(this.receptionForm.salesName=t.userName),t.phone?this.receptionForm.salesPhone=t.phone:t.userName&&(this.receptionForm.salesPhone=t.userName),t.userId&&(this.receptionForm.salesId=String(t.userId))}catch(t){console.error("加载当前登录用户信息失败:",t)}},goBack(){getCurrentPages().length<=1?e.index.switchTab({url:"/pages/workbench/workbench",fail:e=>{console.error("[FurnitureReception][goBack] 切回工作台失败:",e)}}):e.index.navigateBack({fail:e=>{console.error("[FurnitureReception][goBack] 返回失败:",e)}})},switchTab(e){this.activeTab=e,"reception"===e?this.resetReceptionForm():"tag"===e&&(this.tagViewMode="list",this.fetchTagList())},resetReceptionForm(){this.receptionForm={id:"",customerName:"",contact:"",customerSource:"",gender:"女",age:"",dealershipId:"",dealershipName:"",salesId:"",salesName:"",salesPhone:"",recordingCount:0,intendedModel:"",infoCard:"",remark:"",detailedAddress:"",contactCount:0},this.loadCurrentUserInfo()},onReceptionCancel(){this.resetReceptionForm()},onReceptionSaveSuccess({action:e,data:t}){t&&(this.receptionForm={...this.receptionForm,...t}),this.resetReceptionForm(),"start"===e&&console.log("开始接待成功",t)},onReceptionSaveError({action:e,error:t}){console.error("保存失败:",t)},onTagListSearch(){"tag"!==this.activeTab&&(this.activeTab="tag"),this.tagPage.current=1,this.fetchTagList({force:!0})},onTagListRefresh(){this.tagPage.current=1,this.fetchTagList({force:!0})},onTagListReachBottom(){this.tagLoading||this.tagList.length>=this.tagTotal||(this.tagPage.current+=1,this.fetchTagList())},async fetchTagList({force:o=!1}={}){var a,i,n,s,r;if(!this.tagLoading||o){this.tagLoading=!0;try{const c={current:this.tagPage.current,size:this.tagPage.size},g=null==(i=null==(a=this.tagQuery)?void 0:a.tagType)?void 0:i.trim(),l=null==(s=null==(n=this.tagQuery)?void 0:n.tagName)?void 0:s.trim();g&&(c.tagType=g),l&&(c.tagName=l);const h=t.getApiUrl("/api/industryTags/list");let p="",u="";try{p=e.index.getStorageSync("backend-tenant-id")||"",u=e.index.getStorageSync("backend-token")||""}catch(d){console.error("获取认证信息失败:",d)}const T={"Content-Type":"application/json"};u&&(T.Authorization=`Bearer ${u}`),p&&(T["X-Tenant-Id"]=p);const m=await e.index.request({url:h,method:"POST",data:c,header:T,timeout:3e4});if(200===m.statusCode&&m.data&&m.data.success){const e=Array.isArray(m.data.data)?m.data.data:[];1===this.tagPage.current||o?this.tagList=e:this.tagList=this.tagList.concat(e),this.tagTotal=Number(m.data.total)||0}else this.tagList=[],this.tagTotal=0,e.index.showToast({title:(null==(r=m.data)?void 0:r.message)||"获取标签列表失败",icon:"none"})}catch(c){console.error("获取标签列表失败:",c);let t="获取标签列表失败,请稍后重试";c.errMsg&&(c.errMsg.includes("timeout")?t="请求超时,请检查网络连接后重试":c.errMsg.includes("fail")&&(t="网络请求失败,请检查网络连接")),e.index.showToast({title:t,icon:"none",duration:3e3})}finally{this.tagLoading=!1}}},showAddTag(){this.tagViewMode="add",this.showTagTypeDropdown=!1,this.tagForm={id:"",industry:"家居行业",tagType:"",name:"",detail:"",remark:"",enabled:!0}},onTagItemClick(e){},onTagActionBtnClick(e){this.selectedTagItem&&this.selectedTagItem.id===e.id&&this.showTagActionMenu?this.closeTagActionMenu():(this.selectedTagItem=e,this.showTagActionMenu=!0)},closeTagActionMenu(){this.showTagActionMenu=!1,this.selectedTagItem=null},editTag(e){this.closeTagActionMenu(),this.tagViewMode="edit",this.showTagTypeDropdown=!1,this.tagForm={id:e.id||"",industry:e.industry||"家居行业",tagType:e.tagType||"",name:e.tagName||e.name||"",detail:e.tagDetail||e.detail||"",remark:e.remark||"",enabled:void 0!==e.enabled?e.enabled:void 0===e.isEnabled||e.isEnabled}},async deleteTag(o){this.closeTagActionMenu();const a=o.id;a?e.index.showModal({title:"确认删除",content:`确定要删除标签"${o.tagName||o.name||"未命名标签"}"吗?`,success:async o=>{var i,n;if(o.confirm)try{e.index.showLoading({title:"删除中..."});const o=t.getApiUrl(`/api/industryTags/delete/${a}`);let r="",d="";try{r=e.index.getStorageSync("backend-tenant-id")||"",d=e.index.getStorageSync("backend-token")||""}catch(s){console.error("获取认证信息失败:",s)}const c={};d&&(c.Authorization=`Bearer ${d}`),r&&(c["X-Tenant-Id"]=r);const g=await e.index.request({url:o,method:"DELETE",header:c,timeout:3e4});e.index.hideLoading(),200===g.statusCode&&g.data&&g.data.success?(e.index.showToast({title:(null==(i=g.data)?void 0:i.message)||"删除成功",icon:"success"}),this.tagPage.current=1,this.fetchTagList({force:!0})):e.index.showToast({title:(null==(n=g.data)?void 0:n.message)||"删除失败",icon:"none"})}catch(r){e.index.hideLoading(),console.error("删除标签失败:",r);let t="删除失败,请重试";r.errMsg&&(r.errMsg.includes("timeout")?t="请求超时,请检查网络连接后重试":r.errMsg.includes("fail")&&(t="网络请求失败,请检查网络连接")),e.index.showToast({title:t,icon:"none",duration:3e3})}}}):e.index.showToast({title:"无法获取标签ID",icon:"none"})},cancelAddTag(){this.tagViewMode="list",this.showTagTypeDropdown=!1,this.tagForm={id:"",industry:"家居行业",tagType:"",name:"",detail:"",remark:"",enabled:!0}},toggleTagTypeDropdown(){this.showTagTypeDropdown=!this.showTagTypeDropdown,this.showTagTypeDropdown&&this.$nextTick((()=>{this.updateTagTypeDropdownPosition()}))},updateTagTypeDropdownPosition(){e.index.createSelectorQuery().in(this).select(".tag-select").boundingClientRect((e=>{if(e){const t=this.$refs.tagTypeDropdown;t&&this.$nextTick((()=>{const o=t.$el||t;o&&o.style&&(o.style.top=e.bottom+8+"px",o.style.left=e.left+"px",o.style.width=e.width+"px")}))}})).exec()},selectTagType(e){this.tagForm.tagType=e,this.showTagTypeDropdown=!1},closeTagTypeDropdown(){this.showTagTypeDropdown=!1},onEnabledChange(e){this.tagForm.enabled=e.detail.value},async saveTag(){var o,a,i,n;if(this.tagForm.name&&this.tagForm.name.trim())try{e.index.showLoading({title:"edit"===this.tagViewMode?"更新中...":"保存中..."});const r={industry:(null==(o=this.tagForm.industry)?void 0:o.trim())||"",tagType:(null==(a=this.tagForm.tagType)?void 0:a.trim())||"",tagName:this.tagForm.name.trim(),tagDetail:(null==(i=this.tagForm.detail)?void 0:i.trim())||"",remark:(null==(n=this.tagForm.remark)?void 0:n.trim())||"",enabled:void 0===this.tagForm.enabled||this.tagForm.enabled};"edit"===this.tagViewMode&&this.tagForm.id&&(r.id=this.tagForm.id);const d="edit"===this.tagViewMode?t.getApiUrl("/api/industryTags/update"):t.getApiUrl("/api/industryTags/add"),c="edit"===this.tagViewMode?"PUT":"POST";let g="",l="";try{g=e.index.getStorageSync("backend-tenant-id")||"",l=e.index.getStorageSync("backend-token")||""}catch(s){console.error("获取认证信息失败:",s)}const h={"Content-Type":"application/json"};l&&(h.Authorization=`Bearer ${l}`),g&&(h["X-Tenant-Id"]=g);const p=await e.index.request({url:d,method:c,data:r,header:h,timeout:3e4}),{statusCode:u,data:T}=p;if(200!==u||!T||!T.success&&200!==T.code)throw new Error((null==T?void 0:T.message)||("edit"===this.tagViewMode?"更新失败":"保存失败"));e.index.showToast({title:(null==T?void 0:T.message)||("edit"===this.tagViewMode?"更新成功":"保存成功"),icon:"success"}),this.tagViewMode="list",this.tagPage.current=1,this.fetchTagList({force:!0})}catch(r){console.error("保存标签失败:",r);let t=(null==r?void 0:r.message)||("edit"===this.tagViewMode?"更新失败,请重试":"保存失败,请重试");r.errMsg&&(r.errMsg.includes("timeout")?t="请求超时,请检查网络连接后重试":r.errMsg.includes("fail")&&(t="网络请求失败,请检查网络连接")),e.index.showToast({title:t,icon:"none",duration:3e3})}finally{e.index.hideLoading()}else e.index.showToast({title:"请输入标签名",icon:"none"})},initUrlHidingAfterPageLoad(){},attemptUrlHidingForCurrentPage(){},setupTabNavigationHiding(){},setupBrowserNavigationHiding(){}}};if(!Array){(e.resolveComponent("uni-nav-bar")+e.resolveComponent("service-list-furniture")+e.resolveComponent("common-begin-reception")+e.resolveComponent("uni-icons"))()}Math||((()=>"../../uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.js")+(()=>"../../uni_modules/uni-icons/components/uni-icons/uni-icons.js"))();const a=e._export_sfc(o,[["render",function(t,o,a,i,n,s){return e.e({a:e.o(s.goBack,"4e"),b:e.p({fixed:!0,statusBar:!0,border:!1,title:"AI销冠系统",leftIcon:"left",color:"#333",backgroundColor:"#FFFFFF"}),c:"reception"===n.activeTab?1:"",d:e.o((e=>s.switchTab("reception")),"d3"),e:"status"===n.activeTab?1:"",f:e.o((e=>s.switchTab("status")),"47"),g:"tag"===n.activeTab?1:"",h:e.o((e=>s.switchTab("tag")),"15"),i:s.computedNavbarTop||n.navbarTop,j:"status"===n.activeTab},"status"===n.activeTab?{k:e.sr("serviceListRef","638dc4bb-1"),l:s.computedContentTop||n.contentTop}:{},{m:"reception"===n.activeTab},"reception"===n.activeTab?{n:s.computedContentTop||n.contentTop,o:e.o(s.onReceptionCancel,"ce"),p:e.o(s.onReceptionSaveSuccess,"14"),q:e.o(s.onReceptionSaveError,"b5"),r:e.p({"initial-data":n.receptionForm})}:{},{s:"tag"===n.activeTab&&"list"===n.tagViewMode},"tag"===n.activeTab&&"list"===n.tagViewMode?e.e({t:e.t(n.tagTotal),v:e.o(((...e)=>s.onTagListSearch&&s.onTagListSearch(...e)),"1e"),w:n.tagQuery.tagType,x:e.o((e=>n.tagQuery.tagType=e.detail.value),"c3"),y:e.o(((...e)=>s.onTagListSearch&&s.onTagListSearch(...e)),"86"),z:n.tagQuery.tagName,A:e.o((e=>n.tagQuery.tagName=e.detail.value),"52"),B:e.p({type:"refresh",size:"18",color:"#2A68FF"}),C:e.o(((...e)=>s.onTagListRefresh&&s.onTagListRefresh(...e)),"20"),D:e.p({type:"plus",size:"18",color:"#2A68FF"}),E:e.o(((...e)=>s.showAddTag&&s.showAddTag(...e)),"f2"),F:e.f(n.tagList,((t,o,a)=>e.e({a:e.t((t.tagName||t.name||"标").charAt(0)),b:e.t(t.tagName||t.name||"未命名标签"),c:e.o((e=>s.onTagItemClick(t)),o),d:"638dc4bb-5-"+a,e:e.o((e=>s.onTagActionBtnClick(t)),o),f:t.industry},t.industry?{g:e.t(t.industry)}:{},{h:e.o((e=>s.onTagItemClick(t)),o),i:t.tagDetail||t.detail||t.remark},t.tagDetail||t.detail||t.remark?e.e({j:t.tagDetail||t.detail},t.tagDetail||t.detail?{k:e.t(t.tagDetail||t.detail)}:{},{l:t.remark},t.remark?{m:e.t(t.remark)}:{},{n:e.o((e=>s.onTagItemClick(t)),o)}):{},{o:n.selectedTagItem&&n.selectedTagItem.id===t.id&&n.showTagActionMenu},n.selectedTagItem&&n.selectedTagItem.id===t.id&&n.showTagActionMenu?{p:e.o((e=>s.editTag(t)),o),q:e.o((e=>s.deleteTag(t)),o),r:e.o((()=>{}),o)}:{},{s:o,t:n.selectedTagItem&&n.selectedTagItem.id===t.id?1:""}))),G:e.p({type:"more-filled",size:"20",color:"#999"}),H:n.showTagActionMenu},n.showTagActionMenu?{I:e.o(((...e)=>s.closeTagActionMenu&&s.closeTagActionMenu(...e)),"f8")}:{},{J:!n.tagLoading&&!n.tagList.length},(n.tagLoading||n.tagList.length,{}),{K:n.tagLoading&&n.tagList.length},(n.tagLoading&&n.tagList.length,{}),{L:s.computedContentTop||n.contentTop,M:e.o(((...e)=>s.onTagListReachBottom&&s.onTagListReachBottom(...e)),"86")}):{},{N:"tag"===n.activeTab&&("add"===n.tagViewMode||"edit"===n.tagViewMode)},"tag"!==n.activeTab||"add"!==n.tagViewMode&&"edit"!==n.tagViewMode?{}:e.e({O:"add"===n.tagViewMode},"add"===n.tagViewMode?{P:n.tagForm.industry,Q:e.o((e=>n.tagForm.industry=e.detail.value),"63")}:{},{R:e.t(n.tagForm.tagType||"请选择标签分类"),S:e.n(n.tagForm.tagType?"form-item__picker-text":"form-item__picker-placeholder"),T:e.p({type:"bottom",size:"16",color:"#9ca3af"}),U:e.o(((...e)=>s.toggleTagTypeDropdown&&s.toggleTagTypeDropdown(...e)),"c9"),V:n.showTagTypeDropdown},n.showTagTypeDropdown?{W:e.f(n.tagTypeOptions,((t,o,a)=>({a:e.t(t),b:t===n.tagForm.tagType?1:"",c:t,d:e.o((e=>s.selectTagType(t)),t)}))),X:e.o((()=>{}),"87")}:{},{Y:n.tagForm.name,Z:e.o((e=>n.tagForm.name=e.detail.value),"14"),aa:n.tagForm.detail,ab:e.o((e=>n.tagForm.detail=e.detail.value),"4f"),ac:n.tagForm.remark,ad:e.o((e=>n.tagForm.remark=e.detail.value),"a5"),ae:n.tagForm.enabled,af:e.o(((...e)=>s.onEnabledChange&&s.onEnabledChange(...e)),"09"),ag:e.o(((...e)=>s.cancelAddTag&&s.cancelAddTag(...e)),"8b"),ah:e.t("edit"===n.tagViewMode?"更新":"保存"),ai:e.o(((...e)=>s.saveTag&&s.saveTag(...e)),"26"),aj:n.showTagTypeDropdown},n.showTagTypeDropdown?{ak:e.o(((...e)=>s.closeTagTypeDropdown&&s.closeTagTypeDropdown(...e)),"19")}:{},{al:s.computedContentTop||n.contentTop}))}]]);wx.createComponent(a);
+"use strict";const e=require("../../common/vendor.js"),t={props:{incomingTab:{type:String,default:""}},components:{CommonBeginReception:()=>"./common_begin_reception.js",ServiceListFurniture:()=>"./serviceListFurniture.js",TagManagementPanel:()=>"./tag_management_panel.js"},data:()=>({activeTab:"status",navbarTop:"88rpx",contentTop:"160rpx",receptionForm:{id:"",customerName:"",contact:"",customerSource:"",gender:"女",age:"",dealershipId:"",dealershipName:"",salesId:"",salesName:"",salesPhone:"",recordingCount:0,intendedModel:"",infoCard:"",remark:"",detailedAddress:"",contactCount:0}}),watch:{incomingTab:{immediate:!0,handler(e){this.applyIncomingTab(e)}}},computed:{computedNavbarTop(){const t=e.index.getSystemInfoSync();return((t.statusBarHeight||20)+44)*(750/(t.windowWidth||t.screenWidth||375))+"rpx"},computedContentTop(){const t=e.index.getSystemInfoSync();return((t.statusBarHeight||20)+44)*(750/(t.windowWidth||t.screenWidth||375))+72+"rpx"}},onLoad(){console.log("[FurnitureReception][onLoad] 页面加载"),this.updateNavbarPosition(),this.loadCurrentUserInfo()},onShow(){console.log("[FurnitureReception][onShow] 页面显示"),this.$nextTick((()=>{this.updateNavbarPosition(),setTimeout((()=>{this.updateNavbarPosition(),console.log("[FurnitureReception][onShow] 延迟更新后的位置:",{navbarTop:this.navbarTop,contentTop:this.contentTop,computedNavbarTop:this.computedNavbarTop,computedContentTop:this.computedContentTop})}),50)}))},onReady(){console.log("[FurnitureReception][onReady] 页面渲染完成"),console.log("[FurnitureReception][onReady] activeTab:",this.activeTab),console.log("[FurnitureReception][onReady] navbarTop:",this.navbarTop),console.log("[FurnitureReception][onReady] contentTop:",this.contentTop),console.log("[FurnitureReception][onReady] computedNavbarTop:",this.computedNavbarTop),console.log("[FurnitureReception][onReady] computedContentTop:",this.computedContentTop),this.updateNavbarPosition(),this.initUrlHidingAfterPageLoad();const t=e.index.getSystemInfoSync();console.log("[FurnitureReception][onReady] 系统信息:",{statusBarHeight:t.statusBarHeight,windowHeight:t.windowHeight,screenHeight:t.screenHeight}),setTimeout((()=>{e.index.createSelectorQuery().in(this).select(".tabs").boundingClientRect((e=>{console.log("[FurnitureReception][onReady] tab栏元素信息:",e),e?(console.log("[FurnitureReception][onReady] tab栏位置:",{top:e.top,left:e.left,width:e.width,height:e.height,expectedTop:this.navbarTop,computedNavbarTop:this.computedNavbarTop,isVisible:e.width>0&&e.height>0,isOnScreen:e.top>=0&&e.top{const e=this.$refs.serviceListRef;if("status"===this.activeTab)e&&"function"==typeof e.onServiceStatusRefresh&&e.onServiceStatusRefresh();else if("tag"===this.activeTab){const e=this.$refs.tagPanelRef;e&&"function"==typeof e.refreshTagList&&e.refreshTagList()}}))},scheduleTagPanelRefresh(){this.$nextTick((()=>{this.$nextTick((()=>{const e=this.$refs.tagPanelRef;e&&"function"==typeof e.refreshTagList&&e.refreshTagList()}))}))},applyIncomingTab(e){["status","reception","tag"].includes(e)&&(this.activeTab!==e&&(this.activeTab=e),"reception"===e?this.resetReceptionForm():"tag"===e?this.scheduleTagPanelRefresh():"status"===e&&this.$nextTick((()=>{this.refreshPageData()})))},updateNavbarPosition(){console.log("[FurnitureReception][updateNavbarPosition] 开始更新导航栏位置");const t=e.index.getSystemInfoSync().statusBarHeight||20,o=2*t+88,n=o+"rpx",i=o+72+"rpx";console.log("[FurnitureReception][updateNavbarPosition] 更新导航栏位置:",{statusBarHeight:t,navbarHeight:44,totalNavbarHeight:o,navbarTop:n,contentTop:i,currentNavbarTop:this.navbarTop,currentContentTop:this.contentTop}),this.$set(this,"navbarTop",n),this.$set(this,"contentTop",i),this.$forceUpdate()},loadCurrentUserInfo(){try{const t=e.index.getStorageSync("backend-login-response")||{};t.userName&&(this.receptionForm.salesName=t.userName),t.phone?this.receptionForm.salesPhone=t.phone:t.userName&&(this.receptionForm.salesPhone=t.userName),t.userId&&(this.receptionForm.salesId=String(t.userId))}catch(t){console.error("加载当前登录用户信息失败:",t)}},goBack(){getCurrentPages().length<=1?e.index.switchTab({url:"/pages/workbench/workbench",fail:e=>{console.error("[FurnitureReception][goBack] 切回工作台失败:",e)}}):e.index.navigateBack({fail:e=>{console.error("[FurnitureReception][goBack] 返回失败:",e)}})},switchTab(e){this.activeTab=e,"reception"===e?this.resetReceptionForm():"tag"===e&&this.scheduleTagPanelRefresh()},resetReceptionForm(){this.receptionForm={id:"",customerName:"",contact:"",customerSource:"",gender:"女",age:"",dealershipId:"",dealershipName:"",salesId:"",salesName:"",salesPhone:"",recordingCount:0,intendedModel:"",infoCard:"",remark:"",detailedAddress:"",contactCount:0},this.loadCurrentUserInfo()},onReceptionCancel(){this.resetReceptionForm()},onReceptionSaveSuccess({action:e,data:t}){t&&(this.receptionForm={...this.receptionForm,...t}),this.resetReceptionForm(),"start"===e&&console.log("开始接待成功",t)},onReceptionSaveError({action:e,error:t}){console.error("保存失败:",t)},initUrlHidingAfterPageLoad(){},attemptUrlHidingForCurrentPage(){},setupTabNavigationHiding(){},setupBrowserNavigationHiding(){}}};if(!Array){(e.resolveComponent("uni-nav-bar")+e.resolveComponent("service-list-furniture")+e.resolveComponent("common-begin-reception")+e.resolveComponent("tag-management-panel"))()}Math;const o=e._export_sfc(t,[["render",function(t,o,n,i,a,r){return e.e({a:e.o(r.goBack,"66"),b:e.p({fixed:!0,statusBar:!0,border:!1,title:"AI销冠系统",leftIcon:"left",color:"#333",backgroundColor:"#FFFFFF"}),c:"reception"===a.activeTab?1:"",d:e.o((e=>r.switchTab("reception")),"5d"),e:"status"===a.activeTab?1:"",f:e.o((e=>r.switchTab("status")),"a2"),g:"tag"===a.activeTab?1:"",h:e.o((e=>r.switchTab("tag")),"4c"),i:r.computedNavbarTop||a.navbarTop,j:"status"===a.activeTab},"status"===a.activeTab?{k:e.sr("serviceListRef","638dc4bb-1"),l:r.computedContentTop||a.contentTop}:{},{m:"reception"===a.activeTab},"reception"===a.activeTab?{n:r.computedContentTop||a.contentTop,o:e.o(r.onReceptionCancel,"4b"),p:e.o(r.onReceptionSaveSuccess,"7b"),q:e.o(r.onReceptionSaveError,"fc"),r:e.p({"initial-data":a.receptionForm})}:{},{s:"tag"===a.activeTab},"tag"===a.activeTab?{t:e.sr("tagPanelRef","638dc4bb-3"),v:e.p({"content-top":r.computedContentTop||a.contentTop})}:{})}]]);wx.createComponent(o);
diff --git a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.json b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.json
index 5698bf2..b5d30a4 100644
--- a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.json
+++ b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.json
@@ -3,7 +3,7 @@
"usingComponents": {
"common-begin-reception": "./common_begin_reception",
"service-list-furniture": "./serviceListFurniture",
- "uni-nav-bar": "../../uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar",
- "uni-icons": "../../uni_modules/uni-icons/components/uni-icons/uni-icons"
+ "tag-management-panel": "./tag_management_panel",
+ "uni-nav-bar": "../../uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar"
}
}
\ No newline at end of file
diff --git a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.wxml b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.wxml
index 55246e7..4a4d619 100644
--- a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.wxml
+++ b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.wxml
@@ -1 +1 @@
-开始接待服务中标签管理共{{t}}条所属行业:{{item.g}}详情:{{item.k}}备注:{{item.m}}暂无标签正在加载更多...所属行业标签分类{{R}}{{option.a}}标签名详情备注是否启用取消{{ah}}
\ No newline at end of file
+开始接待服务中标签管理
\ No newline at end of file
diff --git a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.wxss b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.wxss
index 4043e62..aa0e681 100644
--- a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.wxss
+++ b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/furniture_reception-impl.wxss
@@ -1 +1 @@
-page{background-color:#f5f5f5}.page{height:100vh!important;min-height:100vh!important;background-color:#f5f5f5}.content{padding-top:0;margin-top:0;position:relative;height:100vh!important;min-height:100vh!important;max-height:100vh!important}.uni-navbar__placeholder,.uni-navbar__placeholder-view{display:none!important;height:0!important}.uni-navbar--border{border-bottom:none!important}.tabs{display:flex!important;visibility:visible!important;opacity:1!important;background-color:#fff;border-bottom:1px solid #E0E0E0;padding:0 16rpx;margin-top:0;position:fixed;left:0;right:0;z-index:999;height:72rpx;box-sizing:border-box;align-items:center;will-change:top}.tab-item{padding:24rpx 32rpx;position:relative}.tab-item text{font-size:30rpx;color:#666}.tab-item.active text{color:#333;font-weight:500}.tab-item.active:after{content:"";position:absolute;bottom:0;left:32rpx;right:32rpx;height:4rpx;background-color:#007aff;border-radius:2rpx}.service-status-container{position:absolute;left:0;right:0;display:flex;flex-direction:column;min-height:0;bottom:0!important}.tag-list{position:absolute;left:0;right:0;bottom:0!important;background-color:#f5f5f5;padding:24rpx 16rpx 0;box-sizing:border-box}.service-status-toolbar{display:flex;flex-wrap:nowrap;align-items:center;gap:8rpx;padding:12rpx 8rpx;margin-bottom:24rpx;background-color:#f8f8fa;border-radius:8rpx;border:1px solid #EFEFF2;overflow-x:auto;min-height:64rpx;box-sizing:border-box}.toolbar-total{font-size:24rpx;color:#666;white-space:nowrap;flex-shrink:0;margin-right:8rpx;line-height:1.2;padding:0 4rpx}.toolbar-input{flex:1;min-width:120rpx;max-width:200rpx;height:56rpx;line-height:56rpx;background-color:#f5f6fa;border-radius:8rpx;padding:0 12rpx;font-size:24rpx;border:1px solid transparent;box-sizing:border-box;flex-shrink:1}.toolbar-actions{display:flex;align-items:center;margin-left:auto;flex-shrink:0;gap:8rpx}.toolbar-btn{padding:0 12rpx;height:56rpx;min-width:56rpx;color:#2a68ff;display:flex;align-items:center;justify-content:center;gap:4rpx;font-size:24rpx;font-weight:400;line-height:1;box-sizing:border-box}.service-card.tag-card-item{width:100%;box-sizing:border-box;background-color:#fff;border-radius:16rpx;padding:32rpx;margin-bottom:24rpx;box-shadow:0 2rpx 8rpx rgba(0,0,0,.04);overflow:visible;position:relative}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20rpx;width:100%;box-sizing:border-box;padding:0;margin:0}.staff-info{display:flex;align-items:center;flex:1;min-width:0;margin:0;padding:0}.staff-avatar{width:64rpx;height:64rpx;background-color:#2196f3;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:16rpx;margin-left:0;margin-top:0;margin-bottom:0;flex-shrink:0}.avatar-text{font-size:32rpx;color:#fff;font-weight:500}.staff-name{font-size:32rpx;font-weight:500;color:#333}.customer-tags{display:flex;flex-wrap:wrap;margin-bottom:20rpx;gap:12rpx;box-sizing:border-box;margin-left:0;margin-right:0;padding:0;width:100%;max-width:100%}.customer-info{margin-bottom:16rpx;display:flex;flex-direction:column;gap:8rpx;box-sizing:border-box;margin-left:0;margin-right:0;padding:0;width:100%;max-width:100%}.customer-name,.customer-phone{font-size:28rpx;color:#555}.tag-item{padding:8rpx 16rpx;border-radius:8rpx;box-sizing:border-box;word-wrap:break-word;word-break:break-all;display:inline-block;max-width:100%}.tag-blue{background-color:#e3f2fd}.tag-blue text{font-size:24rpx;color:#1976d2}.tag-orange{background-color:#fff3e0}.tag-orange text{font-size:24rpx;color:#f57c00}.tag-management{position:absolute;left:0;right:0;bottom:0!important;background-color:#f5f5f5;box-sizing:border-box}.tag-card-item{position:relative}.tag-card-action-btn{width:60rpx;height:60rpx;display:flex;align-items:center;justify-content:center;cursor:pointer;margin:0 0 0 auto;flex-shrink:0;flex-grow:0;position:relative;padding:0}.tag-card-action-btn uni-icons{display:block;margin:0;padding:0;line-height:1}.tag-card-action-btn:active{opacity:.7}.tag-action-menu{position:absolute;top:60rpx;right:32rpx;width:160rpx;background-color:#fff;border-radius:12rpx;box-shadow:0 4rpx 12rpx rgba(0,0,0,.15);z-index:100;overflow:hidden;margin-right:0}.tag-action-menu-item{padding:24rpx 32rpx;font-size:28rpx;color:#333;text-align:center;background-color:#fff}.tag-action-menu-item:active{background-color:#f5f5f5}.tag-action-menu-item--danger{color:#ff5722}.tag-action-menu-divider{height:1rpx;background-color:#e0e0e0;margin:0 16rpx}.tag-action-menu-mask{position:fixed;top:0;left:0;right:0;bottom:0;background-color:transparent;z-index:99}.tag-form{height:100%;padding:32rpx;box-sizing:border-box}.form-card{background-color:#fff;border-radius:24rpx;padding:40rpx 24rpx 32rpx;margin-bottom:32rpx;box-shadow:0 2rpx 16rpx rgba(0,0,0,.06)}.form-card .form-item:first-child{padding-top:24rpx;margin-top:16rpx}.form-item{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}.form-item__label{font-size:28rpx;color:#333;font-weight:500;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{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;padding:0 24rpx;font-size:28rpx;color:#333;box-sizing:border-box;transition:all .3s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.form-item__input:focus{border-color:#007aff;background-color:#fff;box-shadow:0 0 0 4rpx rgba(0,122,255,.1)}.form-item__textarea{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;border-radius:16rpx;padding:20rpx 24rpx;font-size:28rpx;color:#333;box-sizing:border-box;line-height:1.6;transition:all .3s ease}.form-item__textarea:focus{border-color:#007aff;background-color:#fff;box-shadow:0 0 0 4rpx rgba(0,122,255,.1)}.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%;height:88rpx;background-color:#f9fafb;border:2rpx solid #E5E7EB;border-radius:16rpx;padding:0 24rpx;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:pointer;transition:all .3s ease}.tag-select:active{border-color:#007aff;background-color:#fff;box-shadow:0 0 0 4rpx rgba(0,122,255,.1)}.form-item__picker-text{font-size:28rpx;color:#333;flex:1}.form-item__picker-placeholder{font-size:28rpx;color:#9ca3af;flex:1}.tag-select-dropdown{position:fixed;background-color:#fff;border:2rpx solid #E5E7EB;border-radius:16rpx;box-shadow:0 4rpx 20rpx rgba(0,0,0,.12);z-index:9999;overflow:hidden;max-height:400rpx;overflow-y:auto;min-width:200rpx}.tag-select-dropdown__item{padding:24rpx;border-bottom:1rpx solid #F3F4F6;transition:background-color .2s ease}.tag-select-dropdown__item:last-child{border-bottom:none}.tag-select-dropdown__item:active{background-color:#f9fafb}.tag-select-dropdown__item text{font-size:28rpx;color:#333}.tag-select-dropdown__item text.active{color:#007aff;font-weight:500}.tag-select-mask{position:fixed;top:0;left:0;right:0;bottom:0;background-color:transparent;z-index:9998}.form-item--textarea{align-items:flex-start}.form-item--switch{flex-direction:row;align-items:center;justify-content:space-between}.form-item--switch .form-item__label{margin-bottom:0}.form-item switch{margin-left:auto;transform:scale(.9)}.form-actions{display:flex;gap:24rpx;padding-top:16rpx}.form-btn{flex:1;height:88rpx;border-radius:16rpx;display:flex;align-items:center;justify-content:center;font-size:30rpx;font-weight:500;transition:all .3s ease}.form-btn--cancel{background-color:#f3f4f6;color:#6b7280}.form-btn--cancel:active{background-color:#e5e7eb;opacity:.8}.form-btn--save{background-color:#007aff;color:#fff}.form-btn--save:active{background-color:#0056cc;opacity:.9}.form-btn__text{font-size:30rpx;font-weight:500}
+page{background-color:#f5f5f5}.page{height:100vh!important;min-height:100vh!important;background-color:#f5f5f5}.content{padding-top:0;margin-top:0;position:relative;height:100vh!important;min-height:100vh!important;max-height:100vh!important}.uni-navbar__placeholder,.uni-navbar__placeholder-view{display:none!important;height:0!important}.uni-navbar--border{border-bottom:none!important}.tabs{display:flex!important;visibility:visible!important;opacity:1!important;background-color:#fff;border-bottom:1px solid #E0E0E0;padding:0 16rpx;margin-top:0;position:fixed;left:0;right:0;z-index:999;height:72rpx;box-sizing:border-box;align-items:center;will-change:top}.tab-item{padding:24rpx 32rpx;position:relative}.tab-item text{font-size:30rpx;color:#666}.tab-item.active text{color:#333;font-weight:500}.tab-item.active:after{content:"";position:absolute;bottom:0;left:32rpx;right:32rpx;height:4rpx;background-color:#007aff;border-radius:2rpx}.service-status-container{position:absolute;left:0;right:0;display:flex;flex-direction:column;min-height:0;bottom:0!important}
diff --git a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/reception_in_progress.js b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/reception_in_progress.js
index 53cca74..5f31fab 100644
--- a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/reception_in_progress.js
+++ b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/reception_in_progress.js
@@ -1 +1 @@
-"use strict";const e=require("../../common/vendor.js"),t={name:"接待中",components:{CommonBeginReception:()=>"./common_begin_reception.js",ServiceListFurniture:()=>"./serviceListFurniture.js"},data:()=>({activeTab:"status",navbarTop:"88rpx",contentTop:"160rpx",receptionForm:{id:"",customerName:"",contact:"",customerSource:"",gender:"女",age:"",dealershipId:"",dealershipName:"",salesId:"",salesName:"",salesPhone:"",recordingCount:0,intendedModel:"",infoCard:"",remark:"",detailedAddress:"",contactCount:0}}),computed:{computedNavbarTop(){const t=e.index.getSystemInfoSync();return((t.statusBarHeight||20)+44)*(750/(t.windowWidth||t.screenWidth||375))+"rpx"},computedContentTop(){const t=e.index.getSystemInfoSync();return((t.statusBarHeight||20)+44)*(750/(t.windowWidth||t.screenWidth||375))+72+"rpx"}},onLoad(){this.updateNavbarPosition(),this.loadCurrentUserInfo()},onShow(){this.$nextTick((()=>{this.updateNavbarPosition(),setTimeout((()=>this.updateNavbarPosition()),50),"status"===this.activeTab&&this.$nextTick((()=>{const e=this.$refs.serviceListRef;e&&"function"==typeof e.onServiceStatusRefresh&&e.onServiceStatusRefresh()}))}))},methods:{updateNavbarPosition(){const t=2*(e.index.getSystemInfoSync().statusBarHeight||20)+88;this.$set(this,"navbarTop",t+"rpx"),this.$set(this,"contentTop",t+72+"rpx"),this.$forceUpdate()},loadCurrentUserInfo(){try{const t=e.index.getStorageSync("backend-login-response")||{};t.userName&&(this.receptionForm.salesName=t.userName),t.phone?this.receptionForm.salesPhone=t.phone:t.userName&&(this.receptionForm.salesPhone=t.userName),t.userId&&(this.receptionForm.salesId=String(t.userId))}catch(t){console.error("[ReceptionInProgress] 加载当前登录用户信息失败:",t)}},goBack(){getCurrentPages().length<=1?e.index.switchTab({url:"/pages/workbench/workbench",fail:e=>{console.error("[ReceptionInProgress] 切回工作台失败:",e)}}):e.index.navigateBack({fail:e=>{console.error("[ReceptionInProgress] 返回失败:",e)}})},switchTab(e){"reception"!==e&&"status"!==e||(this.activeTab=e,"reception"===e&&this.resetReceptionForm())},resetReceptionForm(){this.receptionForm={id:"",customerName:"",contact:"",customerSource:"",gender:"女",age:"",dealershipId:"",dealershipName:"",salesId:"",salesName:"",salesPhone:"",recordingCount:0,intendedModel:"",infoCard:"",remark:"",detailedAddress:"",contactCount:0},this.loadCurrentUserInfo()},onReceptionCancel(){this.resetReceptionForm()},onReceptionSaveSuccess({action:e,data:t}){t&&(this.receptionForm={...this.receptionForm,...t}),this.resetReceptionForm(),"start"===e&&(this.activeTab="status",this.$nextTick((()=>{const e=this.$refs.serviceListRef;e&&"function"==typeof e.onServiceStatusRefresh&&e.onServiceStatusRefresh()})))},onReceptionSaveError({action:e,error:t}){console.error("[ReceptionInProgress] 保存失败:",e,t)}}};if(!Array){(e.resolveComponent("uni-nav-bar")+e.resolveComponent("common-begin-reception")+e.resolveComponent("service-list-furniture"))()}Math;const o=e._export_sfc(t,[["render",function(t,o,r,n,s,i){return e.e({a:e.o(i.goBack,"42"),b:e.p({fixed:!0,statusBar:!0,border:!1,title:"接待中",leftIcon:"left",color:"#333",backgroundColor:"#FFFFFF"}),c:"reception"===s.activeTab?1:"",d:e.o((e=>i.switchTab("reception")),"3d"),e:"status"===s.activeTab?1:"",f:e.o((e=>i.switchTab("status")),"30"),g:i.computedNavbarTop||s.navbarTop,h:"reception"===s.activeTab},"reception"===s.activeTab?{i:i.computedContentTop||s.contentTop,j:e.o(i.onReceptionCancel,"06"),k:e.o(i.onReceptionSaveSuccess,"f9"),l:e.o(i.onReceptionSaveError,"4b"),m:e.p({"initial-data":s.receptionForm})}:{},{n:"status"===s.activeTab},"status"===s.activeTab?{o:e.sr("serviceListRef","199fff57-2"),p:i.computedContentTop||s.contentTop,q:e.p({"record-state-label":"接待中","empty-list-hint":"暂无接待中记录","show-reception-entry-shortcut":!0})}:{})}]]);wx.createPage(o);
+"use strict";const e=require("../../common/vendor.js"),t={name:"接待中",components:{CommonBeginReception:()=>"./common_begin_reception.js",ServiceListFurniture:()=>"./serviceListFurniture.js",TagManagementPanel:()=>"./tag_management_panel.js"},data:()=>({activeTab:"status",navbarTop:"88rpx",contentTop:"160rpx",receptionForm:{id:"",customerName:"",contact:"",customerSource:"",gender:"女",age:"",dealershipId:"",dealershipName:"",salesId:"",salesName:"",salesPhone:"",recordingCount:0,intendedModel:"",infoCard:"",remark:"",detailedAddress:"",contactCount:0}}),computed:{computedNavbarTop(){const t=e.index.getSystemInfoSync();return((t.statusBarHeight||20)+44)*(750/(t.windowWidth||t.screenWidth||375))+"rpx"},computedContentTop(){const t=e.index.getSystemInfoSync();return((t.statusBarHeight||20)+44)*(750/(t.windowWidth||t.screenWidth||375))+72+"rpx"}},onLoad(){this.updateNavbarPosition(),this.loadCurrentUserInfo()},onShow(){this.$nextTick((()=>{this.updateNavbarPosition(),setTimeout((()=>this.updateNavbarPosition()),50),"status"===this.activeTab?this.$nextTick((()=>{const e=this.$refs.serviceListRef;e&&"function"==typeof e.onServiceStatusRefresh&&e.onServiceStatusRefresh()})):"tag"===this.activeTab&&this.$nextTick((()=>{const e=this.$refs.tagPanelRef;e&&"function"==typeof e.refreshTagList&&e.refreshTagList()}))}))},methods:{updateNavbarPosition(){const t=2*(e.index.getSystemInfoSync().statusBarHeight||20)+88;this.$set(this,"navbarTop",t+"rpx"),this.$set(this,"contentTop",t+72+"rpx"),this.$forceUpdate()},loadCurrentUserInfo(){try{const t=e.index.getStorageSync("backend-login-response")||{};t.userName&&(this.receptionForm.salesName=t.userName),t.phone?this.receptionForm.salesPhone=t.phone:t.userName&&(this.receptionForm.salesPhone=t.userName),t.userId&&(this.receptionForm.salesId=String(t.userId))}catch(t){console.error("[ReceptionInProgress] 加载当前登录用户信息失败:",t)}},goBack(){getCurrentPages().length<=1?e.index.switchTab({url:"/pages/workbench/workbench",fail:e=>{console.error("[ReceptionInProgress] 切回工作台失败:",e)}}):e.index.navigateBack({fail:e=>{console.error("[ReceptionInProgress] 返回失败:",e)}})},switchTab(e){"reception"!==e&&"status"!==e&&"tag"!==e||(this.activeTab=e,"reception"===e?this.resetReceptionForm():"tag"===e&&this.$nextTick((()=>{this.$nextTick((()=>{const e=this.$refs.tagPanelRef;e&&"function"==typeof e.refreshTagList&&e.refreshTagList()}))})))},resetReceptionForm(){this.receptionForm={id:"",customerName:"",contact:"",customerSource:"",gender:"女",age:"",dealershipId:"",dealershipName:"",salesId:"",salesName:"",salesPhone:"",recordingCount:0,intendedModel:"",infoCard:"",remark:"",detailedAddress:"",contactCount:0},this.loadCurrentUserInfo()},onReceptionCancel(){this.resetReceptionForm()},onReceptionSaveSuccess({action:e,data:t}){t&&(this.receptionForm={...this.receptionForm,...t}),this.resetReceptionForm(),"start"===e&&(this.activeTab="status",this.$nextTick((()=>{const e=this.$refs.serviceListRef;e&&"function"==typeof e.onServiceStatusRefresh&&e.onServiceStatusRefresh()})))},onReceptionSaveError({action:e,error:t}){console.error("[ReceptionInProgress] 保存失败:",e,t)}}};if(!Array){(e.resolveComponent("uni-nav-bar")+e.resolveComponent("common-begin-reception")+e.resolveComponent("service-list-furniture")+e.resolveComponent("tag-management-panel"))()}Math;const o=e._export_sfc(t,[["render",function(t,o,n,s,r,a){return e.e({a:e.o(a.goBack,"42"),b:e.p({fixed:!0,statusBar:!0,border:!1,title:"接待中",leftIcon:"left",color:"#333",backgroundColor:"#FFFFFF"}),c:"reception"===r.activeTab?1:"",d:e.o((e=>a.switchTab("reception")),"3d"),e:"status"===r.activeTab?1:"",f:e.o((e=>a.switchTab("status")),"30"),g:"tag"===r.activeTab?1:"",h:e.o((e=>a.switchTab("tag")),"70"),i:a.computedNavbarTop||r.navbarTop,j:"reception"===r.activeTab},"reception"===r.activeTab?{k:a.computedContentTop||r.contentTop,l:e.o(a.onReceptionCancel,"c8"),m:e.o(a.onReceptionSaveSuccess,"98"),n:e.o(a.onReceptionSaveError,"09"),o:e.p({"initial-data":r.receptionForm})}:{},{p:"status"===r.activeTab},"status"===r.activeTab?{q:e.sr("serviceListRef","199fff57-2"),r:a.computedContentTop||r.contentTop,s:e.p({"show-record-state-indicator":!1,"empty-list-hint":"暂无接待中记录","show-reception-entry-shortcut":!0})}:{},{t:"tag"===r.activeTab},"tag"===r.activeTab?{v:e.sr("tagPanelRef","199fff57-3"),w:e.p({"content-top":a.computedContentTop||r.contentTop})}:{})}]]);wx.createPage(o);
diff --git a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/reception_in_progress.json b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/reception_in_progress.json
index 3f2972b..b871bf5 100644
--- a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/reception_in_progress.json
+++ b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/reception_in_progress.json
@@ -3,6 +3,7 @@
"usingComponents": {
"common-begin-reception": "./common_begin_reception",
"service-list-furniture": "./serviceListFurniture",
+ "tag-management-panel": "./tag_management_panel",
"uni-nav-bar": "../../uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar"
}
}
\ No newline at end of file
diff --git a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/reception_in_progress.wxml b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/reception_in_progress.wxml
index 1dd17d8..e588600 100644
--- a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/reception_in_progress.wxml
+++ b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/reception_in_progress.wxml
@@ -1 +1 @@
-开始接待接待中
\ No newline at end of file
+开发接待接待中标签管理
\ No newline at end of file
diff --git a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/serviceListFurniture.js b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/serviceListFurniture.js
index 19a992d..d104059 100644
--- a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/serviceListFurniture.js
+++ b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/serviceListFurniture.js
@@ -1 +1 @@
-"use strict";const e=require("../../common/vendor.js"),t=require("../../common/config.js"),i=require("../../common/store.js");function o(...e){for(const t of e){if(null==t)continue;const e=String(t).trim();if(e)return e}return""}const r={props:{recordStateLabel:{type:String,default:"服务中"},emptyListHint:{type:String,default:"暂无服务中记录"},showReceptionEntryShortcut:{type:Boolean,default:!1}},data:()=>({serviceStatusLoading:!1,serviceStatusTotal:0,serviceStatusPage:{current:1,size:10},serviceStatusQuery:{salesName:"",customerName:"",salesPhone:""},isAdmin:!1,currentUserPhone:"",serviceStatusList:[],showSupplementModal:!1,currentSupplementItem:null,uploadingIds:[],supplementForm:{customerName:"",contact:"",recordingName:"",remarks:""},recorderSupported:!1,recorderManager:null,recordingServiceId:null,recordingContext:null}),mounted(){this.checkUserRole(),this.loadCurrentUserPhone(),this.initServiceRecorder(),this.fetchServiceStatusList()},beforeUnmount(){if(this.recorderManager&&this.recordingServiceId)try{this.recorderManager.stop()}catch(e){}},methods:{initServiceRecorder(){this.recorderSupported="function"==typeof e.index.getRecorderManager,this.recorderSupported&&(this.recorderManager=e.index.getRecorderManager(),this.recorderManager.onStop((t=>{const i=this.recordingContext;this.recordingServiceId=null,this.recordingContext=null;const o=t.tempFilePath||"";if(!i||!i.id)return;if(!o)return void e.index.showToast({title:"未获取到录音文件",icon:"none"});const r=`service_record_${i.id}_${Date.now()}.mp3`;this.uploadFileForRecord(i,{path:o,name:r})})),this.recorderManager.onError((()=>{this.recordingServiceId=null,this.recordingContext=null,e.index.showToast({title:"录音出错",icon:"none"})})))},isRecordingItem(e){return!(!e||!this.recordingServiceId)&&String(e)===this.recordingServiceId},startPhoneRecord(t){if(this.recorderSupported&&this.recorderManager)if(t&&t.id)if(this.recordingServiceId)e.index.showToast({title:"请先停止当前录音",icon:"none"});else if(this.isUploading(t.id))e.index.showToast({title:"正在上传,请稍候",icon:"none"});else{this.recordingContext={...t},this.recordingServiceId=String(t.id);try{this.recorderManager.start({duration:6e5,sampleRate:44100,numberOfChannels:1,encodeBitRate:96e3,format:"mp3"})}catch(i){this.recordingServiceId=null,this.recordingContext=null,e.index.showToast({title:"无法开始录音",icon:"none"})}}else e.index.showToast({title:"无法获取服务记录ID",icon:"none"});else e.index.showToast({title:"当前环境不支持录音,请使用微信小程序或 App",icon:"none"})},stopPhoneRecordAndUpload(e){this.recorderManager&&(null==e?void 0:e.id)&&String(e.id)===this.recordingServiceId&&this.recorderManager.stop()},checkUserRole(){try{const t=e=>"string"==typeof e?e.split(",").map((e=>e.trim().toLowerCase())).filter(Boolean):[],i=e.index.getStorageSync("backend-role-name")||"",o=(e.index.getStorageSync("backend-login-response")||{}).roleName||"",r=[...t(i),...t(o)];this.isAdmin=r.some((e=>e.includes("admin"))),console.log("用户角色检查:",{storedRole:i,respRole:o,roles:r,isAdmin:this.isAdmin})}catch(t){console.error("检查用户角色失败:",t),this.isAdmin=!1}},loadCurrentUserPhone(){try{const t=e.index.getStorageSync("backend-login-response")||{};t.phone?this.currentUserPhone=t.phone:t.userName?this.currentUserPhone=t.userName:this.currentUserPhone=""}catch(t){console.error("加载当前用户手机号或登录账户失败:",t),this.currentUserPhone=""}},onServiceStatusSearch(){this.serviceStatusPage.current=1,this.fetchServiceStatusList({force:!0})},onServiceStatusRefresh(){this.serviceStatusPage.current=1,this.fetchServiceStatusList({force:!0})},goReceptionEntry(){e.index.navigateTo({url:"/pages-subpackage/furniture_reception/furniture_reception_entry?tab=reception",fail:()=>{e.index.showToast({title:"跳转接待失败",icon:"none"})}})},onServiceStatusReachBottom(){this.serviceStatusLoading||this.serviceStatusList.length>=this.serviceStatusTotal||(this.serviceStatusPage.current+=1,this.fetchServiceStatusList())},async fetchServiceStatusList({force:i=!1}={}){var o,r,s,n,a,c,l;if(!this.serviceStatusLoading||i){this.serviceStatusLoading=!0;try{const u={current:this.serviceStatusPage.current,size:this.serviceStatusPage.size,serviceStatus:"服务中"},h=null==(r=null==(o=this.serviceStatusQuery)?void 0:o.salesName)?void 0:r.trim(),m=null==(n=null==(s=this.serviceStatusQuery)?void 0:s.customerName)?void 0:n.trim();if(h&&(u.salesName=h),m&&(u.customerName=m),this.isAdmin){const e=null==(c=null==(a=this.serviceStatusQuery)?void 0:a.salesPhone)?void 0:c.trim();e&&(u.salesPhone=e)}else this.currentUserPhone&&(u.salesPhone=this.currentUserPhone);u.serviceStatus="服务中";const p=Object.keys(u).filter((e=>null!==u[e]&&void 0!==u[e]&&""!==u[e])).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(u[e])}`)).join("&");console.log("服务状态查询参数:",JSON.stringify(u)),console.log("查询字符串:",p);const S=t.getApiUrl("/api/audioManagement/list"),g=p?`${S}?${p}`:S;let v="",f="";try{v=e.index.getStorageSync("backend-tenant-id")||"",f=e.index.getStorageSync("backend-token")||""}catch(d){console.error("获取认证信息失败:",d)}const y={"Content-Type":"application/json"};f&&(y.Authorization=`Bearer ${f}`),v&&(y["X-Tenant-Id"]=v);const x=await e.index.request({url:g,method:"POST",data:{},header:y,timeout:3e4});if(200===x.statusCode&&x.data&&x.data.success){const e=Array.isArray(x.data.data)?x.data.data:[];if(0===e.length)return this.serviceStatusList=[],void(this.serviceStatusTotal=0);const t=e.map((e=>this.buildServiceStatusItem(e))).filter((e=>null!==e));1===this.serviceStatusPage.current||i?this.serviceStatusList=[...t]:this.serviceStatusList=[...this.serviceStatusList,...t],this.serviceStatusTotal=Number(x.data.total)||0}else this.serviceStatusList=[],this.serviceStatusTotal=0,e.index.showToast({title:(null==(l=x.data)?void 0:l.message)||"获取服务中列表失败",icon:"none"})}catch(u){console.error("获取服务中列表失败:",u);let t="获取服务状态失败,请稍后重试";u.errMsg&&(u.errMsg.includes("timeout")?t="请求超时,请检查网络连接后重试":u.errMsg.includes("fail")&&(t="网络请求失败,请检查网络连接")),e.index.showToast({title:t,icon:"none",duration:3e3})}finally{this.serviceStatusLoading=!1}}},buildServiceStatusItem(e={}){if(!e||"object"!=typeof e)return null;const t=this.formatDateTime(e.createTime),i=[];e.recordingName&&i.push({text:`录音:${e.recordingName}`,color:"blue"}),e.intentionLevel&&i.push({text:`意向:${e.intentionLevel}`,color:"orange"}),e.projectName&&i.push({text:`项目:${e.projectName}`,color:"blue"});const r=o(e.recordingName)||(o(e.customerName)?`${String(e.customerName).trim()}的接待记录`:"")||"";return{id:e.id||"",staffName:e.salesName||"未分配销售",status:e.syncStatus||"服务中",customerName:e.customerName||"",customerPhone:e.customerPhone||"",customerId:e.customerId||"",recordingName:e.recordingName||"",title:r,remarks:e.remarks||"",tags:i,durationText:t?`开始时间:${t}`:"暂无开始时间"}},formatDateTime(e){if(!e)return"";const t=new Date(e);if(Number.isNaN(t.getTime()))return"";return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")} ${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`},viewServiceDetail(e){console.log("查看服务详情",e)},isUploading(e){return!!e&&this.uploadingIds.includes(String(e))},isMp3UploadFile(e){if(!e||!e.path)return!1;const t=e=>{if(!e||"string"!=typeof e)return"";return(e.split("/").pop()||e.split("\\").pop()||e).trim()},i=[t(e.name),t(e.path)].filter(Boolean);for(const o of i)if(o.toLowerCase().endsWith(".mp3"))return!0;return!1},async chooseAndUploadFile(t){if(!t||!t.id)return void e.index.showToast({title:"无法获取服务记录ID",icon:"none"});if(this.isUploading(t.id))return;const i=await this.selectUploadFile();i&&i.path&&await this.uploadFileForRecord(t,i)},selectUploadFile(){return new Promise((t=>{const i=i=>{const o=(e=>{const t=Array.isArray(null==e?void 0:e.tempFiles)?e.tempFiles:[];if(!t.length)return null;const i=t[0]||{},o=i.path||i.tempFilePath||i.url||"",r=i.name||o.split("/").pop()||`service_file_${Date.now()}`;return o?{path:o,name:r}:null})(i);return o?this.isMp3UploadFile(o)?void t(o):(e.index.showToast({title:"仅支持上传 MP3 文件",icon:"none"}),void t(null)):(e.index.showToast({title:"未选择有效文件",icon:"none"}),void t(null))},o=i=>{((null==i?void 0:i.errMsg)||"").includes("cancel")||(console.error("选择文件失败:",i),e.index.showToast({title:"选择文件失败",icon:"none"})),t(null)};"function"!=typeof e.index.chooseMessageFile?"function"!=typeof e.index.chooseFile?e.index.chooseImage({count:1,success:i,fail:o}):e.index.chooseFile({count:1,extension:[".mp3"],success:i,fail:o}):e.index.chooseMessageFile({count:1,type:"file",success:i,fail:o})}))},getAuthHeaders(){let t="",i="";try{t=e.index.getStorageSync("backend-tenant-id")||"",i=e.index.getStorageSync("backend-token")||""}catch(r){console.error("获取认证信息失败:",r)}const o={};return i&&(o.Authorization=`Bearer ${i}`),t&&(o["X-Tenant-Id"]=t),o},async uploadFileForRecord(i,o){const r=String(i.id);this.uploadingIds=[...this.uploadingIds,r];try{e.index.showLoading({title:"上传中..."});const n=await e.index.uploadFile({url:t.getApiUrl("/api/audio/upload"),filePath:o.path,name:"file",formData:{id:i.id,audioId:i.id,customerId:i.customerId||"",customerName:i.customerName||"",fileName:o.name||`service_file_${Date.now()}`},header:this.getAuthHeaders(),timeout:6e4});let a={};try{a="string"==typeof(null==n?void 0:n.data)?JSON.parse(n.data):(null==n?void 0:n.data)||{}}catch(s){a=(null==n?void 0:n.data)||{}}if(200===(null==n?void 0:n.statusCode)&&!1!==(null==a?void 0:a.success))return e.index.showToast({title:"上传成功",icon:"success"}),this.serviceStatusPage.current=1,void this.fetchServiceStatusList({force:!0});e.index.showToast({title:(null==a?void 0:a.message)||"上传失败",icon:"none"})}catch(n){console.error("上传文件失败:",n),e.index.showToast({title:(null==n?void 0:n.errMsg)||(null==n?void 0:n.message)||"上传失败",icon:"none"})}finally{e.index.hideLoading(),this.uploadingIds=this.uploadingIds.filter((e=>e!==r))}},async finishService(i){i&&i.id?e.index.showModal({title:"确认结束",content:"确定要结束这条服务记录吗?",success:async o=>{var r,s;if(o.confirm)try{e.index.showLoading({title:"结束中..."});const o=t.getApiUrl("/api/audioManagement/finishServiceById");let a="",c="";try{a=e.index.getStorageSync("backend-tenant-id")||"",c=e.index.getStorageSync("backend-token")||""}catch(n){console.error("获取认证信息失败:",n)}const l={"Content-Type":"application/json"};c&&(l.Authorization=`Bearer ${c}`),a&&(l["X-Tenant-Id"]=a);const d={id:i.id},u=await e.index.request({url:o,method:"POST",data:d,header:l,timeout:3e4});if(e.index.hideLoading(),200===u.statusCode&&u.data&&u.data.success){const t=((null==(r=u.data)?void 0:r.message)||"结束服务成功").replace(/[A-Za-z]+/g,"").split(/\n/).map((e=>e.trim())).filter(Boolean).join("\n")||"结束服务成功";e.index.showToast({title:t,icon:"success"}),this.serviceStatusPage.current=1,this.fetchServiceStatusList({force:!0})}else e.index.showToast({title:(null==(s=u.data)?void 0:s.message)||"结束服务失败",icon:"none"})}catch(a){e.index.hideLoading(),console.error("结束服务失败:",a);let t="结束服务失败,请重试";a.errMsg&&(a.errMsg.includes("timeout")?t="请求超时,请检查网络连接后重试":a.errMsg.includes("fail")&&(t="网络请求失败,请检查网络连接")),e.index.showToast({title:t,icon:"none",duration:3e3})}}}):e.index.showToast({title:"无法获取服务记录ID",icon:"none"})},showSupplementDialog(e){this.currentSupplementItem=e,this.supplementForm={customerName:e.customerName||"",contact:e.customerPhone||"",recordingName:e.recordingName||"",remarks:e.remarks||""},this.showSupplementModal=!0},closeSupplementDialog(){this.showSupplementModal=!1,this.currentSupplementItem=null,this.supplementForm={customerName:"",contact:"",recordingName:"",remarks:""}},async saveSupplement(){var r,s,n,a,c;const l=null==(r=this.supplementForm.contact)?void 0:r.trim();if(!l||this.isValidPhoneNumber(l))if(this.currentSupplementItem&&this.currentSupplementItem.id)try{e.index.showLoading({title:"保存中..."});let r="",u="";try{r=e.index.getStorageSync("backend-tenant-id")||"",u=e.index.getStorageSync("backend-token")||""}catch(d){console.error("获取认证信息失败:",d)}const h={"Content-Type":"application/json"};u&&(h.Authorization=`Bearer ${u}`),r&&(h["X-Tenant-Id"]=r);let m={};try{m=e.index.getStorageSync("backend-login-response")||{}}catch(d){console.error("读取登录信息失败:",d)}const p=i.store.userInfo||{},S=o(m.phone,m.userName,p.username),g=o(m.realName,m.name,m.nickName,p.nickname,m.userName,p.username),v={id:this.currentSupplementItem.id,customerId:this.currentSupplementItem.customerId||"",customerName:(null==(s=this.supplementForm.customerName)?void 0:s.trim())||"",customerPhone:l||"",recordingName:(null==(n=this.supplementForm.recordingName)?void 0:n.trim())||"",remarks:(null==(a=this.supplementForm.remarks)?void 0:a.trim())||"",salesPhone:S,salesName:g},f=await e.index.request({url:t.getApiUrl("/api/audioManagement/updateForCustomerInfo"),method:"PUT",data:v,header:h,timeout:3e4});e.index.hideLoading(),200===f.statusCode&&f.data&&f.data.success?(e.index.showToast({title:"补录成功",icon:"success"}),this.closeSupplementDialog(),this.serviceStatusPage.current=1,this.fetchServiceStatusList({force:!0})):e.index.showToast({title:(null==(c=f.data)?void 0:c.message)||"补录失败",icon:"none"})}catch(u){e.index.hideLoading(),console.error("补录失败:",u);let t="补录失败,请重试";u.errMsg&&(u.errMsg.includes("timeout")?t="请求超时,请检查网络连接后重试":u.errMsg.includes("fail")&&(t="网络请求失败,请检查网络连接")),e.index.showToast({title:t,icon:"none",duration:3e3})}else e.index.showToast({title:"无法获取服务记录ID",icon:"none"});else e.index.showToast({title:"请输入有效的客户电话",icon:"none"})},isValidPhoneNumber(e){const t=null==e?void 0:e.trim();return!!t&&/^1[3-9]\d{9}$/.test(t)}}};if(!Array){e.resolveComponent("uni-icons")()}Math;const s=e._export_sfc(r,[["render",function(t,i,o,r,s,n){return e.e({a:e.t(s.serviceStatusTotal),b:e.o(((...e)=>n.onServiceStatusSearch&&n.onServiceStatusSearch(...e)),"e3"),c:s.serviceStatusQuery.salesName,d:e.o((e=>s.serviceStatusQuery.salesName=e.detail.value),"76"),e:e.o(((...e)=>n.onServiceStatusSearch&&n.onServiceStatusSearch(...e)),"ae"),f:s.serviceStatusQuery.customerName,g:e.o((e=>s.serviceStatusQuery.customerName=e.detail.value),"24"),h:s.isAdmin},s.isAdmin?{i:e.o(((...e)=>n.onServiceStatusSearch&&n.onServiceStatusSearch(...e)),"ad"),j:s.serviceStatusQuery.salesPhone,k:e.o((e=>s.serviceStatusQuery.salesPhone=e.detail.value),"91")}:{},{l:o.showReceptionEntryShortcut},o.showReceptionEntryShortcut?{m:e.p({type:"home",size:"18",color:"#2A68FF"}),n:e.o(((...e)=>n.goReceptionEntry&&n.goReceptionEntry(...e)),"d7")}:{},{o:e.p({type:"refresh",size:"18",color:"#2A68FF"}),p:e.o(((...e)=>n.onServiceStatusRefresh&&n.onServiceStatusRefresh(...e)),"4c"),q:e.f(s.serviceStatusList,((t,i,o)=>e.e({a:e.t(t.staffName?t.staffName.charAt(0):"未"),b:e.t(t.staffName||"未分配销售"),c:!n.isRecordingItem(t.id)},n.isRecordingItem(t.id)?{e:e.o((e=>n.stopPhoneRecordAndUpload(t)),t.id||i)}:{d:e.o((e=>n.startPhoneRecord(t)),t.id||i)},{f:e.o((e=>n.showSupplementDialog(t)),t.id||i),g:e.t(n.isUploading(t.id)?"上传中":"上传"),h:e.o((e=>n.chooseAndUploadFile(t)),t.id||i),i:e.o((e=>n.finishService(t)),t.id||i),j:"c64810fe-2-"+o,k:t.title},t.title?{l:e.t(t.title)}:{},{m:e.t(t.customerName||"未知客户"),n:t.customerPhone},t.customerPhone?{o:e.t(t.customerPhone)}:{},{p:e.f(t.tags,((t,i,o)=>({a:e.t(t.text),b:e.n("tag-"+t.color),c:i}))),q:t.alert},t.alert?e.e({r:e.t(t.alert.title),s:"risk"===t.alert.type},"risk"===t.alert.type?{t:e.t(t.alert.message)}:{v:e.f(t.alert.messages,((t,i,o)=>({a:e.t(t),b:i})))},{w:e.n("risk"===t.alert.type?"alert-risk-text":"alert-reminder-text"),x:e.n("risk"===t.alert.type?"alert-risk-box":"alert-reminder-box")}):{},{y:e.t(t.durationText),z:t.id||i,A:e.o((e=>n.viewServiceDetail(t)),t.id||i)}))),r:e.p({type:"bars",size:"16",color:"#007AFF"}),s:e.t(o.recordStateLabel),t:!s.serviceStatusLoading&&!s.serviceStatusList.length},s.serviceStatusLoading||s.serviceStatusList.length?{}:{v:e.t(o.emptyListHint)},{w:s.serviceStatusLoading&&s.serviceStatusList.length},(s.serviceStatusLoading&&s.serviceStatusList.length,{}),{x:e.o(((...e)=>n.onServiceStatusReachBottom&&n.onServiceStatusReachBottom(...e)),"05"),y:s.showSupplementModal},s.showSupplementModal?{z:e.p({type:"close",size:"20",color:"#999"}),A:e.o(((...e)=>n.closeSupplementDialog&&n.closeSupplementDialog(...e)),"65"),B:s.supplementForm.customerName,C:e.o((e=>s.supplementForm.customerName=e.detail.value),"3f"),D:s.supplementForm.contact,E:e.o((e=>s.supplementForm.contact=e.detail.value),"5d"),F:s.supplementForm.recordingName,G:e.o((e=>s.supplementForm.recordingName=e.detail.value),"c5"),H:s.supplementForm.remarks,I:e.o((e=>s.supplementForm.remarks=e.detail.value),"11"),J:e.o(((...e)=>n.closeSupplementDialog&&n.closeSupplementDialog(...e)),"b1"),K:e.o(((...e)=>n.saveSupplement&&n.saveSupplement(...e)),"70"),L:e.o((()=>{}),"24"),M:e.o(((...e)=>n.closeSupplementDialog&&n.closeSupplementDialog(...e)),"ef")}:{})}],["__scopeId","data-v-c64810fe"]]);wx.createComponent(s);
+"use strict";const e=require("../../common/vendor.js"),t=require("../../common/config.js"),i=require("../../common/store.js");function o(...e){for(const t of e){if(null==t)continue;const e=String(t).trim();if(e)return e}return""}const r={props:{recordStateLabel:{type:String,default:"服务中"},emptyListHint:{type:String,default:"暂无服务中记录"},showReceptionEntryShortcut:{type:Boolean,default:!1},showRecordStateIndicator:{type:Boolean,default:!0}},data:()=>({serviceStatusLoading:!1,serviceStatusTotal:0,serviceStatusPage:{current:1,size:10},serviceStatusQuery:{salesName:"",customerName:"",salesPhone:""},isAdmin:!1,currentUserPhone:"",serviceStatusList:[],showSupplementModal:!1,currentSupplementItem:null,uploadingIds:[],supplementForm:{customerName:"",contact:"",recordingName:"",remarks:""},recorderSupported:!1,recorderManager:null,recordingServiceId:null,recordingContext:null}),mounted(){this.checkUserRole(),this.loadCurrentUserPhone(),this.initServiceRecorder(),this.fetchServiceStatusList()},beforeUnmount(){if(this.recorderManager&&this.recordingServiceId)try{this.recorderManager.stop()}catch(e){}},methods:{initServiceRecorder(){this.recorderSupported="function"==typeof e.index.getRecorderManager,this.recorderSupported&&(this.recorderManager=e.index.getRecorderManager(),this.recorderManager.onStop((t=>{const i=this.recordingContext;this.recordingServiceId=null,this.recordingContext=null;const o=t.tempFilePath||"";if(!i||!i.id)return;if(!o)return void e.index.showToast({title:"未获取到录音文件",icon:"none"});const r=`service_record_${i.id}_${Date.now()}.mp3`;this.uploadFileForRecord(i,{path:o,name:r})})),this.recorderManager.onError((()=>{this.recordingServiceId=null,this.recordingContext=null,e.index.showToast({title:"录音出错",icon:"none"})})))},isRecordingItem(e){return!(!e||!this.recordingServiceId)&&String(e)===this.recordingServiceId},startPhoneRecord(t){if(this.recorderSupported&&this.recorderManager)if(t&&t.id)if(this.recordingServiceId)e.index.showToast({title:"请先停止当前录音",icon:"none"});else if(this.isUploading(t.id))e.index.showToast({title:"正在上传,请稍候",icon:"none"});else{this.recordingContext={...t},this.recordingServiceId=String(t.id);try{this.recorderManager.start({duration:6e5,sampleRate:44100,numberOfChannels:1,encodeBitRate:96e3,format:"mp3"})}catch(i){this.recordingServiceId=null,this.recordingContext=null,e.index.showToast({title:"无法开始录音",icon:"none"})}}else e.index.showToast({title:"无法获取服务记录ID",icon:"none"});else e.index.showToast({title:"当前环境不支持录音,请使用微信小程序或 App",icon:"none"})},stopPhoneRecordAndUpload(e){this.recorderManager&&(null==e?void 0:e.id)&&String(e.id)===this.recordingServiceId&&this.recorderManager.stop()},checkUserRole(){try{const t=e=>"string"==typeof e?e.split(",").map((e=>e.trim().toLowerCase())).filter(Boolean):[],i=e.index.getStorageSync("backend-role-name")||"",o=(e.index.getStorageSync("backend-login-response")||{}).roleName||"",r=[...t(i),...t(o)];this.isAdmin=r.some((e=>e.includes("admin"))),console.log("用户角色检查:",{storedRole:i,respRole:o,roles:r,isAdmin:this.isAdmin})}catch(t){console.error("检查用户角色失败:",t),this.isAdmin=!1}},loadCurrentUserPhone(){try{const t=e.index.getStorageSync("backend-login-response")||{};t.phone?this.currentUserPhone=t.phone:t.userName?this.currentUserPhone=t.userName:this.currentUserPhone=""}catch(t){console.error("加载当前用户手机号或登录账户失败:",t),this.currentUserPhone=""}},onServiceStatusSearch(){this.serviceStatusPage.current=1,this.fetchServiceStatusList({force:!0})},onServiceStatusRefresh(){this.serviceStatusPage.current=1,this.fetchServiceStatusList({force:!0})},goReceptionEntry(){e.index.navigateTo({url:"/pages-subpackage/furniture_reception/furniture_reception_entry?tab=reception",fail:()=>{e.index.showToast({title:"跳转接待失败",icon:"none"})}})},onServiceStatusReachBottom(){this.serviceStatusLoading||this.serviceStatusList.length>=this.serviceStatusTotal||(this.serviceStatusPage.current+=1,this.fetchServiceStatusList())},async fetchServiceStatusList({force:i=!1}={}){var o,r,s,n,a,c,l;if(!this.serviceStatusLoading||i){this.serviceStatusLoading=!0;try{const u={current:this.serviceStatusPage.current,size:this.serviceStatusPage.size,serviceStatus:"服务中"},h=null==(r=null==(o=this.serviceStatusQuery)?void 0:o.salesName)?void 0:r.trim(),m=null==(n=null==(s=this.serviceStatusQuery)?void 0:s.customerName)?void 0:n.trim();if(h&&(u.salesName=h),m&&(u.customerName=m),this.isAdmin){const e=null==(c=null==(a=this.serviceStatusQuery)?void 0:a.salesPhone)?void 0:c.trim();e&&(u.salesPhone=e)}else this.currentUserPhone&&(u.salesPhone=this.currentUserPhone);u.serviceStatus="服务中";const p=Object.keys(u).filter((e=>null!==u[e]&&void 0!==u[e]&&""!==u[e])).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(u[e])}`)).join("&");console.log("服务状态查询参数:",JSON.stringify(u)),console.log("查询字符串:",p);const S=t.getApiUrl("/api/audioManagement/list"),g=p?`${S}?${p}`:S;let v="",f="";try{v=e.index.getStorageSync("backend-tenant-id")||"",f=e.index.getStorageSync("backend-token")||""}catch(d){console.error("获取认证信息失败:",d)}const y={"Content-Type":"application/json"};f&&(y.Authorization=`Bearer ${f}`),v&&(y["X-Tenant-Id"]=v);const x=await e.index.request({url:g,method:"POST",data:{},header:y,timeout:3e4});if(200===x.statusCode&&x.data&&x.data.success){const e=Array.isArray(x.data.data)?x.data.data:[];if(0===e.length)return this.serviceStatusList=[],void(this.serviceStatusTotal=0);const t=e.map((e=>this.buildServiceStatusItem(e))).filter((e=>null!==e));1===this.serviceStatusPage.current||i?this.serviceStatusList=[...t]:this.serviceStatusList=[...this.serviceStatusList,...t],this.serviceStatusTotal=Number(x.data.total)||0}else this.serviceStatusList=[],this.serviceStatusTotal=0,e.index.showToast({title:(null==(l=x.data)?void 0:l.message)||"获取服务中列表失败",icon:"none"})}catch(u){console.error("获取服务中列表失败:",u);let t="获取服务状态失败,请稍后重试";u.errMsg&&(u.errMsg.includes("timeout")?t="请求超时,请检查网络连接后重试":u.errMsg.includes("fail")&&(t="网络请求失败,请检查网络连接")),e.index.showToast({title:t,icon:"none",duration:3e3})}finally{this.serviceStatusLoading=!1}}},buildServiceStatusItem(e={}){if(!e||"object"!=typeof e)return null;const t=this.formatDateTime(e.createTime),i=[];e.recordingName&&i.push({text:`录音:${e.recordingName}`,color:"blue"}),e.intentionLevel&&i.push({text:`意向:${e.intentionLevel}`,color:"orange"}),e.projectName&&i.push({text:`项目:${e.projectName}`,color:"blue"});const r=o(e.recordingName)||(o(e.customerName)?`${String(e.customerName).trim()}的接待记录`:"")||"";return{id:e.id||"",staffName:e.salesName||"未分配销售",status:e.syncStatus||"服务中",customerName:e.customerName||"",customerPhone:e.customerPhone||"",customerId:e.customerId||"",recordingName:e.recordingName||"",title:r,remarks:e.remarks||"",tags:i,durationText:t?`开始时间:${t}`:"暂无开始时间"}},formatDateTime(e){if(!e)return"";const t=new Date(e);if(Number.isNaN(t.getTime()))return"";return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")} ${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`},viewServiceDetail(e){console.log("查看服务详情",e)},isUploading(e){return!!e&&this.uploadingIds.includes(String(e))},isMp3UploadFile(e){if(!e||!e.path)return!1;const t=e=>{if(!e||"string"!=typeof e)return"";return(e.split("/").pop()||e.split("\\").pop()||e).trim()},i=[t(e.name),t(e.path)].filter(Boolean);for(const o of i)if(o.toLowerCase().endsWith(".mp3"))return!0;return!1},async chooseAndUploadFile(t){if(!t||!t.id)return void e.index.showToast({title:"无法获取服务记录ID",icon:"none"});if(this.isUploading(t.id))return;const i=await this.selectUploadFile();i&&i.path&&await this.uploadFileForRecord(t,i)},selectUploadFile(){return new Promise((t=>{const i=i=>{const o=(e=>{const t=Array.isArray(null==e?void 0:e.tempFiles)?e.tempFiles:[];if(!t.length)return null;const i=t[0]||{},o=i.path||i.tempFilePath||i.url||"",r=i.name||o.split("/").pop()||`service_file_${Date.now()}`;return o?{path:o,name:r}:null})(i);return o?this.isMp3UploadFile(o)?void t(o):(e.index.showToast({title:"仅支持上传 MP3 文件",icon:"none"}),void t(null)):(e.index.showToast({title:"未选择有效文件",icon:"none"}),void t(null))},o=i=>{((null==i?void 0:i.errMsg)||"").includes("cancel")||(console.error("选择文件失败:",i),e.index.showToast({title:"选择文件失败",icon:"none"})),t(null)};"function"!=typeof e.index.chooseMessageFile?"function"!=typeof e.index.chooseFile?e.index.chooseImage({count:1,success:i,fail:o}):e.index.chooseFile({count:1,extension:[".mp3"],success:i,fail:o}):e.index.chooseMessageFile({count:1,type:"file",success:i,fail:o})}))},getAuthHeaders(){let t="",i="";try{t=e.index.getStorageSync("backend-tenant-id")||"",i=e.index.getStorageSync("backend-token")||""}catch(r){console.error("获取认证信息失败:",r)}const o={};return i&&(o.Authorization=`Bearer ${i}`),t&&(o["X-Tenant-Id"]=t),o},async uploadFileForRecord(i,o){const r=String(i.id);this.uploadingIds=[...this.uploadingIds,r];try{e.index.showLoading({title:"上传中..."});const n=await e.index.uploadFile({url:t.getApiUrl("/api/audio/upload"),filePath:o.path,name:"file",formData:{id:i.id,audioId:i.id,customerId:i.customerId||"",customerName:i.customerName||"",fileName:o.name||`service_file_${Date.now()}`},header:this.getAuthHeaders(),timeout:6e4});let a={};try{a="string"==typeof(null==n?void 0:n.data)?JSON.parse(n.data):(null==n?void 0:n.data)||{}}catch(s){a=(null==n?void 0:n.data)||{}}if(200===(null==n?void 0:n.statusCode)&&!1!==(null==a?void 0:a.success))return e.index.showToast({title:"上传成功",icon:"success"}),this.serviceStatusPage.current=1,void this.fetchServiceStatusList({force:!0});e.index.showToast({title:(null==a?void 0:a.message)||"上传失败",icon:"none"})}catch(n){console.error("上传文件失败:",n),e.index.showToast({title:(null==n?void 0:n.errMsg)||(null==n?void 0:n.message)||"上传失败",icon:"none"})}finally{e.index.hideLoading(),this.uploadingIds=this.uploadingIds.filter((e=>e!==r))}},async finishService(i){i&&i.id?e.index.showModal({title:"确认结束",content:"确定要结束这条服务记录吗?",success:async o=>{var r,s;if(o.confirm)try{e.index.showLoading({title:"结束中..."});const o=t.getApiUrl("/api/audioManagement/finishServiceById");let a="",c="";try{a=e.index.getStorageSync("backend-tenant-id")||"",c=e.index.getStorageSync("backend-token")||""}catch(n){console.error("获取认证信息失败:",n)}const l={"Content-Type":"application/json"};c&&(l.Authorization=`Bearer ${c}`),a&&(l["X-Tenant-Id"]=a);const d={id:i.id},u=await e.index.request({url:o,method:"POST",data:d,header:l,timeout:3e4});if(e.index.hideLoading(),200===u.statusCode&&u.data&&u.data.success){const t=((null==(r=u.data)?void 0:r.message)||"结束服务成功").replace(/[A-Za-z]+/g,"").split(/\n/).map((e=>e.trim())).filter(Boolean).join("\n")||"结束服务成功";e.index.showToast({title:t,icon:"success"}),this.serviceStatusPage.current=1,this.fetchServiceStatusList({force:!0})}else e.index.showToast({title:(null==(s=u.data)?void 0:s.message)||"结束服务失败",icon:"none"})}catch(a){e.index.hideLoading(),console.error("结束服务失败:",a);let t="结束服务失败,请重试";a.errMsg&&(a.errMsg.includes("timeout")?t="请求超时,请检查网络连接后重试":a.errMsg.includes("fail")&&(t="网络请求失败,请检查网络连接")),e.index.showToast({title:t,icon:"none",duration:3e3})}}}):e.index.showToast({title:"无法获取服务记录ID",icon:"none"})},showSupplementDialog(e){this.currentSupplementItem=e,this.supplementForm={customerName:e.customerName||"",contact:e.customerPhone||"",recordingName:e.recordingName||"",remarks:e.remarks||""},this.showSupplementModal=!0},closeSupplementDialog(){this.showSupplementModal=!1,this.currentSupplementItem=null,this.supplementForm={customerName:"",contact:"",recordingName:"",remarks:""}},async saveSupplement(){var r,s,n,a,c;const l=null==(r=this.supplementForm.contact)?void 0:r.trim();if(!l||this.isValidPhoneNumber(l))if(this.currentSupplementItem&&this.currentSupplementItem.id)try{e.index.showLoading({title:"保存中..."});let r="",u="";try{r=e.index.getStorageSync("backend-tenant-id")||"",u=e.index.getStorageSync("backend-token")||""}catch(d){console.error("获取认证信息失败:",d)}const h={"Content-Type":"application/json"};u&&(h.Authorization=`Bearer ${u}`),r&&(h["X-Tenant-Id"]=r);let m={};try{m=e.index.getStorageSync("backend-login-response")||{}}catch(d){console.error("读取登录信息失败:",d)}const p=i.store.userInfo||{},S=o(m.phone,m.userName,p.username),g=o(m.realName,m.name,m.nickName,p.nickname,m.userName,p.username),v={id:this.currentSupplementItem.id,customerId:this.currentSupplementItem.customerId||"",customerName:(null==(s=this.supplementForm.customerName)?void 0:s.trim())||"",customerPhone:l||"",recordingName:(null==(n=this.supplementForm.recordingName)?void 0:n.trim())||"",remarks:(null==(a=this.supplementForm.remarks)?void 0:a.trim())||"",salesPhone:S,salesName:g},f=await e.index.request({url:t.getApiUrl("/api/audioManagement/updateForCustomerInfo"),method:"PUT",data:v,header:h,timeout:3e4});e.index.hideLoading(),200===f.statusCode&&f.data&&f.data.success?(e.index.showToast({title:"补录成功",icon:"success"}),this.closeSupplementDialog(),this.serviceStatusPage.current=1,this.fetchServiceStatusList({force:!0})):e.index.showToast({title:(null==(c=f.data)?void 0:c.message)||"补录失败",icon:"none"})}catch(u){e.index.hideLoading(),console.error("补录失败:",u);let t="补录失败,请重试";u.errMsg&&(u.errMsg.includes("timeout")?t="请求超时,请检查网络连接后重试":u.errMsg.includes("fail")&&(t="网络请求失败,请检查网络连接")),e.index.showToast({title:t,icon:"none",duration:3e3})}else e.index.showToast({title:"无法获取服务记录ID",icon:"none"});else e.index.showToast({title:"请输入有效的客户电话",icon:"none"})},isValidPhoneNumber(e){const t=null==e?void 0:e.trim();return!!t&&/^1[3-9]\d{9}$/.test(t)}}};if(!Array){e.resolveComponent("uni-icons")()}Math;const s=e._export_sfc(r,[["render",function(t,i,o,r,s,n){return e.e({a:e.t(s.serviceStatusTotal),b:e.o(((...e)=>n.onServiceStatusSearch&&n.onServiceStatusSearch(...e)),"1e"),c:s.serviceStatusQuery.salesName,d:e.o((e=>s.serviceStatusQuery.salesName=e.detail.value),"5b"),e:e.o(((...e)=>n.onServiceStatusSearch&&n.onServiceStatusSearch(...e)),"4f"),f:s.serviceStatusQuery.customerName,g:e.o((e=>s.serviceStatusQuery.customerName=e.detail.value),"ff"),h:s.isAdmin},s.isAdmin?{i:e.o(((...e)=>n.onServiceStatusSearch&&n.onServiceStatusSearch(...e)),"91"),j:s.serviceStatusQuery.salesPhone,k:e.o((e=>s.serviceStatusQuery.salesPhone=e.detail.value),"86")}:{},{l:o.showReceptionEntryShortcut},o.showReceptionEntryShortcut?{m:e.p({type:"home",size:"18",color:"#2A68FF"}),n:e.o(((...e)=>n.goReceptionEntry&&n.goReceptionEntry(...e)),"5d")}:{},{o:e.p({type:"refresh",size:"18",color:"#2A68FF"}),p:e.o(((...e)=>n.onServiceStatusRefresh&&n.onServiceStatusRefresh(...e)),"84"),q:e.f(s.serviceStatusList,((t,i,r)=>e.e({a:e.t(t.staffName?t.staffName.charAt(0):"未"),b:e.t(t.staffName||"未分配销售"),c:!n.isRecordingItem(t.id)},n.isRecordingItem(t.id)?{e:e.o((e=>n.stopPhoneRecordAndUpload(t)),t.id||i)}:{d:e.o((e=>n.startPhoneRecord(t)),t.id||i)},{f:e.o((e=>n.showSupplementDialog(t)),t.id||i),g:e.t(n.isUploading(t.id)?"上传中":"上传"),h:e.o((e=>n.chooseAndUploadFile(t)),t.id||i),i:e.o((e=>n.finishService(t)),t.id||i)},o.showRecordStateIndicator?{j:"be40106d-2-"+r,k:e.p({type:"bars",size:"16",color:"#007AFF"}),l:e.t(o.recordStateLabel)}:{},{m:t.title},t.title?{n:e.t(t.title)}:{},{o:e.t(t.customerName||"未知客户"),p:t.customerPhone},t.customerPhone?{q:e.t(t.customerPhone)}:{},{r:e.f(t.tags,((t,i,o)=>({a:e.t(t.text),b:e.n("tag-"+t.color),c:i}))),s:t.alert},t.alert?e.e({t:e.t(t.alert.title),v:"risk"===t.alert.type},"risk"===t.alert.type?{w:e.t(t.alert.message)}:{x:e.f(t.alert.messages,((t,i,o)=>({a:e.t(t),b:i})))},{y:e.n("risk"===t.alert.type?"alert-risk-text":"alert-reminder-text"),z:e.n("risk"===t.alert.type?"alert-risk-box":"alert-reminder-box")}):{},{A:e.t(t.durationText),B:t.id||i,C:e.o((e=>n.viewServiceDetail(t)),t.id||i)}))),r:o.showRecordStateIndicator,s:!s.serviceStatusLoading&&!s.serviceStatusList.length},s.serviceStatusLoading||s.serviceStatusList.length?{}:{t:e.t(o.emptyListHint)},{v:s.serviceStatusLoading&&s.serviceStatusList.length},(s.serviceStatusLoading&&s.serviceStatusList.length,{}),{w:e.o(((...e)=>n.onServiceStatusReachBottom&&n.onServiceStatusReachBottom(...e)),"d2"),x:s.showSupplementModal},s.showSupplementModal?{y:e.p({type:"close",size:"20",color:"#999"}),z:e.o(((...e)=>n.closeSupplementDialog&&n.closeSupplementDialog(...e)),"d4"),A:s.supplementForm.customerName,B:e.o((e=>s.supplementForm.customerName=e.detail.value),"fc"),C:s.supplementForm.contact,D:e.o((e=>s.supplementForm.contact=e.detail.value),"4e"),E:s.supplementForm.recordingName,F:e.o((e=>s.supplementForm.recordingName=e.detail.value),"40"),G:s.supplementForm.remarks,H:e.o((e=>s.supplementForm.remarks=e.detail.value),"ac"),I:e.o(((...e)=>n.closeSupplementDialog&&n.closeSupplementDialog(...e)),"0a"),J:e.o(((...e)=>n.saveSupplement&&n.saveSupplement(...e)),"fb"),K:e.o((()=>{}),"80"),L:e.o(((...e)=>n.closeSupplementDialog&&n.closeSupplementDialog(...e)),"29")}:{})}],["__scopeId","data-v-be40106d"]]);wx.createComponent(s);
diff --git a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/serviceListFurniture.wxml b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/serviceListFurniture.wxml
index e982196..2c2071c 100644
--- a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/serviceListFurniture.wxml
+++ b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/serviceListFurniture.wxml
@@ -1 +1 @@
-共{{a}}条接待刷新{{item.l}}客户:{{item.m}}电话:{{item.o}}{{tag.a}}{{item.t}}{{msg.a}}{{item.y}}{{v}}正在加载更多...客户姓名客户电话录音名客户详细地址
\ No newline at end of file
+共{{a}}条接待刷新{{item.n}}客户:{{item.o}}电话:{{item.q}}{{tag.a}}{{item.w}}{{msg.a}}{{item.A}}{{t}}正在加载更多...客户姓名客户电话录音名客户详细地址
\ No newline at end of file
diff --git a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/serviceListFurniture.wxss b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/serviceListFurniture.wxss
index f1e3ad5..085c01f 100644
--- a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/serviceListFurniture.wxss
+++ b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/serviceListFurniture.wxss
@@ -1 +1 @@
-.service-list-container.data-v-c64810fe{height:100%;width:100%;display:flex;flex-direction:column;background-color:#f5f5f5;padding:0 16rpx;box-sizing:border-box}.service-status-toolbar.data-v-c64810fe{display:flex;flex-wrap:nowrap;align-items:center;gap:8rpx;padding:12rpx 8rpx;margin-bottom:24rpx;background-color:#f8f8fa;border-radius:8rpx;border:1px solid #EFEFF2;overflow-x:auto;min-height:64rpx;box-sizing:border-box;flex-shrink:0}.service-list.data-v-c64810fe{flex:1;background-color:transparent;box-sizing:border-box;overflow-y:auto}.toolbar-total.data-v-c64810fe{font-size:24rpx;color:#666;white-space:nowrap;flex-shrink:0;margin-right:8rpx;line-height:1.2;padding:0 4rpx}.toolbar-input.data-v-c64810fe{flex:1;min-width:120rpx;max-width:200rpx;height:56rpx;line-height:56rpx;background-color:#f5f6fa;border-radius:8rpx;padding:0 12rpx;font-size:24rpx;border:1px solid transparent;box-sizing:border-box;flex-shrink:1}.toolbar-actions.data-v-c64810fe{display:flex;align-items:center;margin-left:auto;flex-shrink:0;gap:8rpx}.toolbar-btn.data-v-c64810fe{padding:0 12rpx;height:56rpx;min-width:56rpx;color:#2a68ff;display:flex;align-items:center;justify-content:center;gap:4rpx;font-size:24rpx;font-weight:400;line-height:1;box-sizing:border-box}.service-card.data-v-c64810fe{width:100%;box-sizing:border-box;background-color:#fff;border-radius:16rpx;padding:32rpx;margin-bottom:24rpx;box-shadow:0 2rpx 8rpx rgba(0,0,0,.04);overflow:visible}.card-header.data-v-c64810fe{display:flex;justify-content:space-between;align-items:center;margin-bottom:20rpx;width:100%;box-sizing:border-box;padding:0;margin:0}.service-title.data-v-c64810fe{margin-top:16rpx;margin-bottom:8rpx}.service-title__text.data-v-c64810fe{font-size:28rpx;font-weight:600;color:#111827;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.staff-info.data-v-c64810fe{display:flex;align-items:center;flex:1;min-width:0;margin:0;padding:0}.staff-avatar.data-v-c64810fe{width:64rpx;height:64rpx;background-color:#2196f3;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:16rpx;margin-left:0;margin-top:0;margin-bottom:0;flex-shrink:0}.avatar-text.data-v-c64810fe{font-size:32rpx;color:#fff;font-weight:500}.staff-name.data-v-c64810fe{font-size:32rpx;font-weight:500;color:#333}.service-status.data-v-c64810fe{display:flex;align-items:center;gap:8rpx}.service-status text.data-v-c64810fe{font-size:26rpx;color:#007aff}.customer-tags.data-v-c64810fe{display:flex;flex-wrap:wrap;margin-bottom:20rpx;gap:12rpx;box-sizing:border-box;margin-left:0;margin-right:0;padding:0;width:100%;max-width:100%}.customer-info.data-v-c64810fe{margin-bottom:16rpx;display:flex;flex-direction:column;gap:8rpx;box-sizing:border-box;margin-left:0;margin-right:0;padding:0;width:100%;max-width:100%}.customer-name.data-v-c64810fe,.customer-phone.data-v-c64810fe{font-size:28rpx;color:#555}.tag-item.data-v-c64810fe{padding:8rpx 16rpx;border-radius:8rpx;box-sizing:border-box;word-wrap:break-word;word-break:break-all;display:inline-block;max-width:100%}.tag-blue.data-v-c64810fe{background-color:#e3f2fd}.tag-blue text.data-v-c64810fe{font-size:24rpx;color:#1976d2}.tag-orange.data-v-c64810fe{background-color:#fff3e0}.tag-orange text.data-v-c64810fe{font-size:24rpx;color:#f57c00}.ai-alert.data-v-c64810fe{border-radius:8rpx;padding:20rpx;margin-bottom:20rpx}.alert-risk-box.data-v-c64810fe{background-color:#fff5f5}.alert-reminder-box.data-v-c64810fe{background-color:#f5f5f5}.alert-header.data-v-c64810fe{display:flex;align-items:center;margin-bottom:12rpx}.alert-icon.data-v-c64810fe{margin-right:8rpx}.icon-circle.data-v-c64810fe{width:24rpx;height:24rpx;border:2rpx solid #333;border-radius:50%;position:relative}.icon-circle.data-v-c64810fe:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8rpx;height:8rpx;background-color:#333;border-radius:50%}.alert-title.data-v-c64810fe{font-size:28rpx;font-weight:500;color:#333}.alert-content.data-v-c64810fe{font-size:26rpx;line-height:1.6}.alert-risk-text.data-v-c64810fe{color:#ff5722}.alert-reminder-text.data-v-c64810fe{color:#666}.alert-list.data-v-c64810fe{display:flex;flex-direction:column;gap:8rpx}.alert-item.data-v-c64810fe{display:flex;align-items:flex-start}.alert-item.data-v-c64810fe:before{content:"\2022";margin-right:8rpx;color:#666}.alert-item text.data-v-c64810fe{font-size:26rpx;color:#666;line-height:1.6}.service-duration.data-v-c64810fe{padding-top:16rpx;border-top:1px solid #F0F0F0}.service-duration text.data-v-c64810fe{font-size:26rpx;color:#999}.service-action-btn.data-v-c64810fe{padding:6rpx 16rpx;border-radius:4rpx;font-size:26rpx;font-weight:400;display:flex;align-items:center;justify-content:center;margin-right:12rpx;cursor:pointer}.service-action-btn--finish.data-v-c64810fe{color:#007aff;background-color:transparent}.service-action-btn--finish.data-v-c64810fe:active{opacity:.7}.service-action-btn--supplement.data-v-c64810fe{color:#10b981;background-color:transparent}.service-action-btn--supplement.data-v-c64810fe:active{opacity:.7}.service-action-btn--upload.data-v-c64810fe{color:#7c3aed;background-color:transparent}.service-action-btn--upload.data-v-c64810fe:active{opacity:.7}.service-action-btn--record.data-v-c64810fe{color:#007aff;background-color:transparent}.service-action-btn--record.data-v-c64810fe:active{opacity:.7}.service-action-btn--recording.data-v-c64810fe{color:#ff3b30}.service-status-empty.data-v-c64810fe,.service-status-loading-more.data-v-c64810fe{padding:48rpx 0;text-align:center;color:#999;font-size:28rpx}.supplement-dialog-mask.data-v-c64810fe{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.supplement-dialog.data-v-c64810fe{width:640rpx;max-height:80vh;background-color:#fff;border-radius:24rpx;overflow:hidden;display:flex;flex-direction:column}.supplement-dialog__header.data-v-c64810fe{display:flex;align-items:center;justify-content:space-between;padding:32rpx 32rpx 24rpx;border-bottom:1px solid #F0F0F0}.supplement-dialog__title.data-v-c64810fe{font-size:32rpx;font-weight:500;color:#333}.supplement-dialog__close.data-v-c64810fe{width:48rpx;height:48rpx;display:flex;align-items:center;justify-content:center}.supplement-dialog__body.data-v-c64810fe{flex:1;padding:32rpx;overflow-y:auto}.supplement-form-item.data-v-c64810fe{margin-bottom:32rpx}.supplement-form-item.data-v-c64810fe:last-child{margin-bottom:0}.supplement-form-item__label.data-v-c64810fe{display:block;font-size:28rpx;color:#333;font-weight:500;margin-bottom:16rpx}.supplement-form-item__input.data-v-c64810fe{width:100%;height:88rpx;background-color:#f9fafb;border-radius:12rpx;padding:0 24rpx;font-size:28rpx;color:#333;box-sizing:border-box}.supplement-form-item__textarea.data-v-c64810fe{width:100%;min-height:160rpx;background-color:#f9fafb;border-radius:12rpx;padding:24rpx;font-size:28rpx;color:#333;box-sizing:border-box;line-height:1.6}.supplement-dialog__footer.data-v-c64810fe{display:flex;gap:24rpx;padding:24rpx 32rpx 32rpx;border-top:1px solid #F0F0F0}.supplement-dialog__btn.data-v-c64810fe{flex:1;height:88rpx;border-radius:12rpx;display:flex;align-items:center;justify-content:center;font-size:32rpx;font-weight:500}.supplement-dialog__btn--cancel.data-v-c64810fe{background-color:#f3f4f6;color:#6b7280}.supplement-dialog__btn--save.data-v-c64810fe{background-color:#4c8dff;color:#fff}.supplement-dialog__btn.data-v-c64810fe:active{opacity:.7}
+.service-list-container.data-v-be40106d{height:100%;width:100%;display:flex;flex-direction:column;background-color:#f5f5f5;padding:0 16rpx;box-sizing:border-box}.service-status-toolbar.data-v-be40106d{display:flex;flex-wrap:nowrap;align-items:center;gap:8rpx;padding:12rpx 8rpx;margin-bottom:24rpx;background-color:#f8f8fa;border-radius:8rpx;border:1px solid #EFEFF2;overflow-x:auto;min-height:64rpx;box-sizing:border-box;flex-shrink:0}.service-list.data-v-be40106d{flex:1;background-color:transparent;box-sizing:border-box;overflow-y:auto}.toolbar-total.data-v-be40106d{font-size:24rpx;color:#666;white-space:nowrap;flex-shrink:0;margin-right:8rpx;line-height:1.2;padding:0 4rpx}.toolbar-input.data-v-be40106d{flex:1;min-width:120rpx;max-width:200rpx;height:56rpx;line-height:56rpx;background-color:#f5f6fa;border-radius:8rpx;padding:0 12rpx;font-size:24rpx;border:1px solid transparent;box-sizing:border-box;flex-shrink:1}.toolbar-actions.data-v-be40106d{display:flex;align-items:center;margin-left:auto;flex-shrink:0;gap:8rpx}.toolbar-btn.data-v-be40106d{padding:0 12rpx;height:56rpx;min-width:56rpx;color:#2a68ff;display:flex;align-items:center;justify-content:center;gap:4rpx;font-size:24rpx;font-weight:400;line-height:1;box-sizing:border-box}.service-card.data-v-be40106d{width:100%;box-sizing:border-box;background-color:#fff;border-radius:16rpx;padding:32rpx;margin-bottom:24rpx;box-shadow:0 2rpx 8rpx rgba(0,0,0,.04);overflow:visible}.card-header.data-v-be40106d{display:flex;justify-content:space-between;align-items:center;margin-bottom:20rpx;width:100%;box-sizing:border-box;padding:0;margin:0}.service-title.data-v-be40106d{margin-top:16rpx;margin-bottom:8rpx}.service-title__text.data-v-be40106d{font-size:28rpx;font-weight:600;color:#111827;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.staff-info.data-v-be40106d{display:flex;align-items:center;flex:1;min-width:0;margin:0;padding:0}.staff-avatar.data-v-be40106d{width:64rpx;height:64rpx;background-color:#2196f3;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:16rpx;margin-left:0;margin-top:0;margin-bottom:0;flex-shrink:0}.avatar-text.data-v-be40106d{font-size:32rpx;color:#fff;font-weight:500}.staff-name.data-v-be40106d{font-size:32rpx;font-weight:500;color:#333}.service-status.data-v-be40106d{display:flex;align-items:center;gap:8rpx}.service-status text.data-v-be40106d{font-size:26rpx;color:#007aff}.customer-tags.data-v-be40106d{display:flex;flex-wrap:wrap;margin-bottom:20rpx;gap:12rpx;box-sizing:border-box;margin-left:0;margin-right:0;padding:0;width:100%;max-width:100%}.customer-info.data-v-be40106d{margin-bottom:16rpx;display:flex;flex-direction:column;gap:8rpx;box-sizing:border-box;margin-left:0;margin-right:0;padding:0;width:100%;max-width:100%}.customer-name.data-v-be40106d,.customer-phone.data-v-be40106d{font-size:28rpx;color:#555}.tag-item.data-v-be40106d{padding:8rpx 16rpx;border-radius:8rpx;box-sizing:border-box;word-wrap:break-word;word-break:break-all;display:inline-block;max-width:100%}.tag-blue.data-v-be40106d{background-color:#e3f2fd}.tag-blue text.data-v-be40106d{font-size:24rpx;color:#1976d2}.tag-orange.data-v-be40106d{background-color:#fff3e0}.tag-orange text.data-v-be40106d{font-size:24rpx;color:#f57c00}.ai-alert.data-v-be40106d{border-radius:8rpx;padding:20rpx;margin-bottom:20rpx}.alert-risk-box.data-v-be40106d{background-color:#fff5f5}.alert-reminder-box.data-v-be40106d{background-color:#f5f5f5}.alert-header.data-v-be40106d{display:flex;align-items:center;margin-bottom:12rpx}.alert-icon.data-v-be40106d{margin-right:8rpx}.icon-circle.data-v-be40106d{width:24rpx;height:24rpx;border:2rpx solid #333;border-radius:50%;position:relative}.icon-circle.data-v-be40106d:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8rpx;height:8rpx;background-color:#333;border-radius:50%}.alert-title.data-v-be40106d{font-size:28rpx;font-weight:500;color:#333}.alert-content.data-v-be40106d{font-size:26rpx;line-height:1.6}.alert-risk-text.data-v-be40106d{color:#ff5722}.alert-reminder-text.data-v-be40106d{color:#666}.alert-list.data-v-be40106d{display:flex;flex-direction:column;gap:8rpx}.alert-item.data-v-be40106d{display:flex;align-items:flex-start}.alert-item.data-v-be40106d:before{content:"\2022";margin-right:8rpx;color:#666}.alert-item text.data-v-be40106d{font-size:26rpx;color:#666;line-height:1.6}.service-duration.data-v-be40106d{padding-top:16rpx;border-top:1px solid #F0F0F0}.service-duration text.data-v-be40106d{font-size:26rpx;color:#999}.service-action-btn.data-v-be40106d{padding:6rpx 16rpx;border-radius:4rpx;font-size:26rpx;font-weight:400;display:flex;align-items:center;justify-content:center;margin-right:12rpx;cursor:pointer}.service-action-btn--finish.data-v-be40106d{color:#007aff;background-color:transparent}.service-action-btn--finish.data-v-be40106d:active{opacity:.7}.service-action-btn--supplement.data-v-be40106d{color:#10b981;background-color:transparent}.service-action-btn--supplement.data-v-be40106d:active{opacity:.7}.service-action-btn--upload.data-v-be40106d{color:#7c3aed;background-color:transparent}.service-action-btn--upload.data-v-be40106d:active{opacity:.7}.service-action-btn--record.data-v-be40106d{color:#007aff;background-color:transparent}.service-action-btn--record.data-v-be40106d:active{opacity:.7}.service-action-btn--recording.data-v-be40106d{color:#ff3b30}.service-status-empty.data-v-be40106d,.service-status-loading-more.data-v-be40106d{padding:48rpx 0;text-align:center;color:#999;font-size:28rpx}.supplement-dialog-mask.data-v-be40106d{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.supplement-dialog.data-v-be40106d{width:640rpx;max-height:80vh;background-color:#fff;border-radius:24rpx;overflow:hidden;display:flex;flex-direction:column}.supplement-dialog__header.data-v-be40106d{display:flex;align-items:center;justify-content:space-between;padding:32rpx 32rpx 24rpx;border-bottom:1px solid #F0F0F0}.supplement-dialog__title.data-v-be40106d{font-size:32rpx;font-weight:500;color:#333}.supplement-dialog__close.data-v-be40106d{width:48rpx;height:48rpx;display:flex;align-items:center;justify-content:center}.supplement-dialog__body.data-v-be40106d{flex:1;padding:32rpx;overflow-y:auto}.supplement-form-item.data-v-be40106d{margin-bottom:32rpx}.supplement-form-item.data-v-be40106d:last-child{margin-bottom:0}.supplement-form-item__label.data-v-be40106d{display:block;font-size:28rpx;color:#333;font-weight:500;margin-bottom:16rpx}.supplement-form-item__input.data-v-be40106d{width:100%;height:88rpx;background-color:#f9fafb;border-radius:12rpx;padding:0 24rpx;font-size:28rpx;color:#333;box-sizing:border-box}.supplement-form-item__textarea.data-v-be40106d{width:100%;min-height:160rpx;background-color:#f9fafb;border-radius:12rpx;padding:24rpx;font-size:28rpx;color:#333;box-sizing:border-box;line-height:1.6}.supplement-dialog__footer.data-v-be40106d{display:flex;gap:24rpx;padding:24rpx 32rpx 32rpx;border-top:1px solid #F0F0F0}.supplement-dialog__btn.data-v-be40106d{flex:1;height:88rpx;border-radius:12rpx;display:flex;align-items:center;justify-content:center;font-size:32rpx;font-weight:500}.supplement-dialog__btn--cancel.data-v-be40106d{background-color:#f3f4f6;color:#6b7280}.supplement-dialog__btn--save.data-v-be40106d{background-color:#4c8dff;color:#fff}.supplement-dialog__btn.data-v-be40106d:active{opacity:.7}
diff --git a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/tag_management_panel.js b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/tag_management_panel.js
new file mode 100644
index 0000000..4c48916
--- /dev/null
+++ b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/tag_management_panel.js
@@ -0,0 +1 @@
+"use strict";const t=require("../../common/vendor.js"),e=require("../../common/config.js"),a={name:"TagManagementPanel",props:{contentTop:{type:String,required:!0}},data:()=>({tagViewMode:"list",tagList:[],tagLoading:!1,tagTotal:0,tagPage:{current:1,size:10},tagQuery:{industry:"",tagType:"",tagName:""},tagForm:{id:"",industry:"家居行业",tagType:"",name:"",detail:"",remark:"",enabled:!0},tagTypeOptions:["接待客户","质检SOP","客户画像"],showTagTypeDropdown:!1,selectedTagItem:null,showTagActionMenu:!1}),mounted(){void 0!==t.index&&"function"==typeof t.index.onWindowResize&&t.index.onWindowResize((()=>{this.showTagTypeDropdown&&this.updateTagTypeDropdownPosition()}))},methods:{refreshTagList(){this.tagViewMode="list",this.closeTagActionMenu(),this.tagPage.current=1,this.fetchTagList({force:!0})},onTagListSearch(){this.tagPage.current=1,this.fetchTagList({force:!0})},onTagListRefresh(){this.tagPage.current=1,this.fetchTagList({force:!0})},onTagListReachBottom(){this.tagLoading||this.tagList.length>=this.tagTotal||(this.tagPage.current+=1,this.fetchTagList())},async fetchTagList({force:a=!1}={}){var i,o,n,s,d;if(!this.tagLoading||a){this.tagLoading=!0;try{const r={current:this.tagPage.current,size:this.tagPage.size},l=null==(o=null==(i=this.tagQuery)?void 0:i.tagType)?void 0:o.trim(),c=null==(s=null==(n=this.tagQuery)?void 0:n.tagName)?void 0:s.trim();l&&(r.tagType=l),c&&(r.tagName=c);const h=e.getApiUrl("/api/industryTags/list");let T="",m="";try{T=t.index.getStorageSync("backend-tenant-id")||"",m=t.index.getStorageSync("backend-token")||""}catch(g){console.error("获取认证信息失败:",g)}const u={"Content-Type":"application/json"};m&&(u.Authorization=`Bearer ${m}`),T&&(u["X-Tenant-Id"]=T);const p=await t.index.request({url:h,method:"POST",data:r,header:u,timeout:3e4});if(200===p.statusCode&&p.data&&p.data.success){const t=Array.isArray(p.data.data)?p.data.data:[];1===this.tagPage.current||a?this.tagList=t:this.tagList=this.tagList.concat(t),this.tagTotal=Number(p.data.total)||0}else this.tagList=[],this.tagTotal=0,t.index.showToast({title:(null==(d=p.data)?void 0:d.message)||"获取标签列表失败",icon:"none"})}catch(r){console.error("获取标签列表失败:",r);let e="获取标签列表失败,请稍后重试";r.errMsg&&(r.errMsg.includes("timeout")?e="请求超时,请检查网络连接后重试":r.errMsg.includes("fail")&&(e="网络请求失败,请检查网络连接")),t.index.showToast({title:e,icon:"none",duration:3e3})}finally{this.tagLoading=!1}}},showAddTag(){this.tagViewMode="add",this.showTagTypeDropdown=!1,this.tagForm={id:"",industry:"家居行业",tagType:"",name:"",detail:"",remark:"",enabled:!0}},onTagItemClick(){},onTagActionBtnClick(t){this.selectedTagItem&&this.selectedTagItem.id===t.id&&this.showTagActionMenu?this.closeTagActionMenu():(this.selectedTagItem=t,this.showTagActionMenu=!0)},closeTagActionMenu(){this.showTagActionMenu=!1,this.selectedTagItem=null},editTag(t){this.closeTagActionMenu(),this.tagViewMode="edit",this.showTagTypeDropdown=!1,this.tagForm={id:t.id||"",industry:t.industry||"家居行业",tagType:t.tagType||"",name:t.tagName||t.name||"",detail:t.tagDetail||t.detail||"",remark:t.remark||"",enabled:void 0!==t.enabled?t.enabled:void 0===t.isEnabled||t.isEnabled}},async deleteTag(a){this.closeTagActionMenu();const i=a.id;i?t.index.showModal({title:"确认删除",content:`确定要删除标签"${a.tagName||a.name||"未命名标签"}"吗?`,success:async a=>{var o,n;if(a.confirm)try{t.index.showLoading({title:"删除中..."});const a=e.getApiUrl(`/api/industryTags/delete/${i}`);let d="",g="";try{d=t.index.getStorageSync("backend-tenant-id")||"",g=t.index.getStorageSync("backend-token")||""}catch(s){console.error("获取认证信息失败:",s)}const r={};g&&(r.Authorization=`Bearer ${g}`),d&&(r["X-Tenant-Id"]=d);const l=await t.index.request({url:a,method:"DELETE",header:r,timeout:3e4});t.index.hideLoading(),200===l.statusCode&&l.data&&l.data.success?(t.index.showToast({title:(null==(o=l.data)?void 0:o.message)||"删除成功",icon:"success"}),this.tagPage.current=1,this.fetchTagList({force:!0})):t.index.showToast({title:(null==(n=l.data)?void 0:n.message)||"删除失败",icon:"none"})}catch(d){t.index.hideLoading(),console.error("删除标签失败:",d);let e="删除失败,请重试";d.errMsg&&(d.errMsg.includes("timeout")?e="请求超时,请检查网络连接后重试":d.errMsg.includes("fail")&&(e="网络请求失败,请检查网络连接")),t.index.showToast({title:e,icon:"none",duration:3e3})}}}):t.index.showToast({title:"无法获取标签ID",icon:"none"})},cancelAddTag(){this.tagViewMode="list",this.showTagTypeDropdown=!1,this.tagForm={id:"",industry:"家居行业",tagType:"",name:"",detail:"",remark:"",enabled:!0}},toggleTagTypeDropdown(){this.showTagTypeDropdown=!this.showTagTypeDropdown,this.showTagTypeDropdown&&this.$nextTick((()=>{this.updateTagTypeDropdownPosition()}))},updateTagTypeDropdownPosition(){t.index.createSelectorQuery().in(this).select(".tag-select").boundingClientRect((t=>{if(t){const e=this.$refs.tagTypeDropdown;e&&this.$nextTick((()=>{const a=e.$el||e;a&&a.style&&(a.style.top=t.bottom+8+"px",a.style.left=t.left+"px",a.style.width=t.width+"px")}))}})).exec()},selectTagType(t){this.tagForm.tagType=t,this.showTagTypeDropdown=!1},closeTagTypeDropdown(){this.showTagTypeDropdown=!1},onEnabledChange(t){this.tagForm.enabled=t.detail.value},async saveTag(){var a,i,o,n;if(this.tagForm.name&&this.tagForm.name.trim())try{t.index.showLoading({title:"edit"===this.tagViewMode?"更新中...":"保存中..."});const d={industry:(null==(a=this.tagForm.industry)?void 0:a.trim())||"",tagType:(null==(i=this.tagForm.tagType)?void 0:i.trim())||"",tagName:this.tagForm.name.trim(),tagDetail:(null==(o=this.tagForm.detail)?void 0:o.trim())||"",remark:(null==(n=this.tagForm.remark)?void 0:n.trim())||"",enabled:void 0===this.tagForm.enabled||this.tagForm.enabled};"edit"===this.tagViewMode&&this.tagForm.id&&(d.id=this.tagForm.id);const g="edit"===this.tagViewMode?e.getApiUrl("/api/industryTags/update"):e.getApiUrl("/api/industryTags/add"),r="edit"===this.tagViewMode?"PUT":"POST";let l="",c="";try{l=t.index.getStorageSync("backend-tenant-id")||"",c=t.index.getStorageSync("backend-token")||""}catch(s){console.error("获取认证信息失败:",s)}const h={"Content-Type":"application/json"};c&&(h.Authorization=`Bearer ${c}`),l&&(h["X-Tenant-Id"]=l);const T=await t.index.request({url:g,method:r,data:d,header:h,timeout:3e4}),{statusCode:m,data:u}=T;if(200!==m||!u||!u.success&&200!==u.code)throw new Error((null==u?void 0:u.message)||("edit"===this.tagViewMode?"更新失败":"保存失败"));t.index.showToast({title:(null==u?void 0:u.message)||("edit"===this.tagViewMode?"更新成功":"保存成功"),icon:"success"}),this.tagViewMode="list",this.tagPage.current=1,this.fetchTagList({force:!0})}catch(d){console.error("保存标签失败:",d);let e=(null==d?void 0:d.message)||("edit"===this.tagViewMode?"更新失败,请重试":"保存失败,请重试");d.errMsg&&(d.errMsg.includes("timeout")?e="请求超时,请检查网络连接后重试":d.errMsg.includes("fail")&&(e="网络请求失败,请检查网络连接")),t.index.showToast({title:e,icon:"none",duration:3e3})}finally{t.index.hideLoading()}else t.index.showToast({title:"请输入标签名",icon:"none"})}}};if(!Array){t.resolveComponent("uni-icons")()}Math;const i=t._export_sfc(a,[["render",function(e,a,i,o,n,s){return t.e({a:"list"===n.tagViewMode},"list"===n.tagViewMode?t.e({b:t.t(n.tagTotal),c:t.o(((...t)=>s.onTagListSearch&&s.onTagListSearch(...t)),"d5"),d:n.tagQuery.tagType,e:t.o((t=>n.tagQuery.tagType=t.detail.value),"f8"),f:t.o(((...t)=>s.onTagListSearch&&s.onTagListSearch(...t)),"7a"),g:n.tagQuery.tagName,h:t.o((t=>n.tagQuery.tagName=t.detail.value),"00"),i:t.p({type:"refresh",size:"18",color:"#2A68FF"}),j:t.o(((...t)=>s.onTagListRefresh&&s.onTagListRefresh(...t)),"ec"),k:t.p({type:"plus",size:"18",color:"#2A68FF"}),l:t.o(((...t)=>s.showAddTag&&s.showAddTag(...t)),"ce"),m:t.f(n.tagList,((e,a,i)=>t.e({a:t.t((e.tagName||e.name||"标").charAt(0)),b:t.t(e.tagName||e.name||"未命名标签"),c:t.o((t=>s.onTagItemClick(e)),a),d:"0806a306-2-"+i,e:t.o((t=>s.onTagActionBtnClick(e)),a),f:e.industry},e.industry?{g:t.t(e.industry)}:{},{h:t.o((t=>s.onTagItemClick(e)),a),i:e.tagDetail||e.detail||e.remark},e.tagDetail||e.detail||e.remark?t.e({j:e.tagDetail||e.detail},e.tagDetail||e.detail?{k:t.t(e.tagDetail||e.detail)}:{},{l:e.remark},e.remark?{m:t.t(e.remark)}:{},{n:t.o((t=>s.onTagItemClick(e)),a)}):{},{o:n.selectedTagItem&&n.selectedTagItem.id===e.id&&n.showTagActionMenu},n.selectedTagItem&&n.selectedTagItem.id===e.id&&n.showTagActionMenu?{p:t.o((t=>s.editTag(e)),a),q:t.o((t=>s.deleteTag(e)),a),r:t.o((()=>{}),a)}:{},{s:a,t:n.selectedTagItem&&n.selectedTagItem.id===e.id?1:""}))),n:t.p({type:"more-filled",size:"20",color:"#999"}),o:n.showTagActionMenu},n.showTagActionMenu?{p:t.o(((...t)=>s.closeTagActionMenu&&s.closeTagActionMenu(...t)),"5e")}:{},{q:!n.tagLoading&&!n.tagList.length},(n.tagLoading||n.tagList.length,{}),{r:n.tagLoading&&n.tagList.length},(n.tagLoading&&n.tagList.length,{}),{s:t.o(((...t)=>s.onTagListReachBottom&&s.onTagListReachBottom(...t)),"d2")}):{},{t:"add"===n.tagViewMode||"edit"===n.tagViewMode},"add"===n.tagViewMode||"edit"===n.tagViewMode?t.e({v:"add"===n.tagViewMode},"add"===n.tagViewMode?{w:n.tagForm.industry,x:t.o((t=>n.tagForm.industry=t.detail.value),"0d")}:{},{y:t.t(n.tagForm.tagType||"请选择标签分类"),z:t.n(n.tagForm.tagType?"form-item__picker-text":"form-item__picker-placeholder"),A:t.p({type:"bottom",size:"16",color:"#9ca3af"}),B:t.o(((...t)=>s.toggleTagTypeDropdown&&s.toggleTagTypeDropdown(...t)),"aa"),C:n.showTagTypeDropdown},n.showTagTypeDropdown?{D:t.f(n.tagTypeOptions,((e,a,i)=>({a:t.t(e),b:e===n.tagForm.tagType?1:"",c:e,d:t.o((t=>s.selectTagType(e)),e)}))),E:t.o((()=>{}),"e4")}:{},{F:n.tagForm.name,G:t.o((t=>n.tagForm.name=t.detail.value),"55"),H:n.tagForm.detail,I:t.o((t=>n.tagForm.detail=t.detail.value),"d9"),J:n.tagForm.remark,K:t.o((t=>n.tagForm.remark=t.detail.value),"92"),L:n.tagForm.enabled,M:t.o(((...t)=>s.onEnabledChange&&s.onEnabledChange(...t)),"52"),N:t.o(((...t)=>s.cancelAddTag&&s.cancelAddTag(...t)),"c9"),O:t.t("edit"===n.tagViewMode?"更新":"保存"),P:t.o(((...t)=>s.saveTag&&s.saveTag(...t)),"55"),Q:n.showTagTypeDropdown},n.showTagTypeDropdown?{R:t.o(((...t)=>s.closeTagTypeDropdown&&s.closeTagTypeDropdown(...t)),"8c")}:{}):{},{S:i.contentTop})}]]);wx.createComponent(i);
diff --git a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/tag_management_panel.json b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/tag_management_panel.json
new file mode 100644
index 0000000..2caa312
--- /dev/null
+++ b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/tag_management_panel.json
@@ -0,0 +1,6 @@
+{
+ "component": true,
+ "usingComponents": {
+ "uni-icons": "../../uni_modules/uni-icons/components/uni-icons/uni-icons"
+ }
+}
\ No newline at end of file
diff --git a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/tag_management_panel.wxml b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/tag_management_panel.wxml
new file mode 100644
index 0000000..b6d5328
--- /dev/null
+++ b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/tag_management_panel.wxml
@@ -0,0 +1 @@
+共{{b}}条所属行业:{{item.g}}详情:{{item.k}}备注:{{item.m}}暂无标签正在加载更多...所属行业标签分类{{y}}{{option.a}}标签名详情备注是否启用取消{{O}}
\ No newline at end of file
diff --git a/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/tag_management_panel.wxss b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/tag_management_panel.wxss
new file mode 100644
index 0000000..5cab22d
--- /dev/null
+++ b/unpackage/dist/build/mp-weixin/pages-subpackage/furniture_reception/tag_management_panel.wxss
@@ -0,0 +1 @@
+.tag-mgmt-host{position:absolute;left:0;right:0;bottom:0!important;display:flex;flex-direction:column;min-height:0;box-sizing:border-box}.tag-mgmt-scroll{flex:1;min-height:0;height:0;background-color:#f5f5f5;padding:24rpx 16rpx 0;box-sizing:border-box}.service-status-toolbar{display:flex;flex-wrap:nowrap;align-items:center;gap:8rpx;padding:12rpx 8rpx;margin-bottom:24rpx;background-color:#f8f8fa;border-radius:8rpx;border:1px solid #efeff2;overflow-x:auto;min-height:64rpx;box-sizing:border-box}.toolbar-total{font-size:24rpx;color:#666;white-space:nowrap;flex-shrink:0;margin-right:8rpx;line-height:1.2;padding:0 4rpx}.toolbar-input{flex:1;min-width:120rpx;max-width:200rpx;height:56rpx;line-height:56rpx;background-color:#f5f6fa;border-radius:8rpx;padding:0 12rpx;font-size:24rpx;border:1px solid transparent;box-sizing:border-box;flex-shrink:1}.toolbar-actions{display:flex;align-items:center;margin-left:auto;flex-shrink:0;gap:8rpx}.toolbar-btn{padding:0 12rpx;height:56rpx;min-width:56rpx;color:#2a68ff;display:flex;align-items:center;justify-content:center;gap:4rpx;font-size:24rpx;font-weight:400;line-height:1;box-sizing:border-box}.service-card.tag-card-item{width:100%;box-sizing:border-box;background-color:#fff;border-radius:16rpx;padding:32rpx;margin-bottom:24rpx;box-shadow:0 2rpx 8rpx rgba(0,0,0,.04);overflow:visible;position:relative}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20rpx;width:100%;box-sizing:border-box;padding:0;margin:0}.staff-info{display:flex;align-items:center;flex:1;min-width:0;margin:0;padding:0}.staff-avatar{width:64rpx;height:64rpx;background-color:#2196f3;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:16rpx;flex-shrink:0}.avatar-text{font-size:32rpx;color:#fff;font-weight:500}.staff-name{font-size:32rpx;font-weight:500;color:#333}.customer-tags{display:flex;flex-wrap:wrap;margin-bottom:20rpx;gap:12rpx;box-sizing:border-box;width:100%;max-width:100%}.customer-info{margin-bottom:16rpx;display:flex;flex-direction:column;gap:8rpx;box-sizing:border-box;width:100%;max-width:100%}.customer-name{font-size:28rpx;color:#555}.tag-item{padding:8rpx 16rpx;border-radius:8rpx;box-sizing:border-box;word-wrap:break-word;word-break:break-all;display:inline-block;max-width:100%}.tag-blue{background-color:#e3f2fd}.tag-blue text{font-size:24rpx;color:#1976d2}.tag-orange{background-color:#fff3e0}.tag-orange text{font-size:24rpx;color:#f57c00}.service-status-empty,.service-status-loading-more{padding:48rpx 0;text-align:center;color:#999;font-size:28rpx}.tag-management{flex:1;min-height:0;height:0;background-color:#f5f5f5;box-sizing:border-box}.tag-card-item{position:relative}.tag-card-action-btn{width:60rpx;height:60rpx;display:flex;align-items:center;justify-content:center;margin-left:auto;flex-shrink:0}.tag-action-menu{position:absolute;top:60rpx;right:32rpx;width:160rpx;background-color:#fff;border-radius:12rpx;box-shadow:0 4rpx 12rpx rgba(0,0,0,.15);z-index:100;overflow:hidden}.tag-action-menu-item{padding:24rpx 32rpx;font-size:28rpx;color:#333;text-align:center;background-color:#fff}.tag-action-menu-item:active{background-color:#f5f5f5}.tag-action-menu-item--danger{color:#ff5722}.tag-action-menu-divider{height:1rpx;background-color:#e0e0e0;margin:0 16rpx}.tag-action-menu-mask{position:fixed;top:0;left:0;right:0;bottom:0;background-color:transparent;z-index:99}.tag-form{height:100%;padding:32rpx;box-sizing:border-box}.form-card{background-color:#fff;border-radius:24rpx;padding:40rpx 24rpx 32rpx;margin-bottom:32rpx;box-shadow:0 2rpx 16rpx rgba(0,0,0,.06)}.form-card .form-item:first-child{padding-top:24rpx;margin-top:16rpx}.form-item{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}.form-item__label{font-size:28rpx;color:#333;font-weight:500;width:140rpx;flex-shrink:0;flex-grow:0;margin-right:24rpx;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{flex:1!important;min-width:0!important;height:88rpx;line-height:88rpx;background-color:#f9fafb;border:2rpx solid #e5e7eb;border-radius:16rpx;padding:0 24rpx;font-size:28rpx;color:#333;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.form-item__textarea{flex:1!important;min-width:0!important;min-height:160rpx;background-color:#f9fafb;border:2rpx solid #e5e7eb;border-radius:16rpx;padding:20rpx 24rpx;font-size:28rpx;color:#333;box-sizing:border-box;line-height:1.6}.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%;height:88rpx;background-color:#f9fafb;border:2rpx solid #e5e7eb;border-radius:16rpx;padding:0 24rpx;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box}.form-item__picker-text{font-size:28rpx;color:#333;flex:1}.form-item__picker-placeholder{font-size:28rpx;color:#9ca3af;flex:1}.tag-select-dropdown{position:fixed;background-color:#fff;border:2rpx solid #e5e7eb;border-radius:16rpx;box-shadow:0 4rpx 20rpx rgba(0,0,0,.12);z-index:9999;overflow:hidden;max-height:400rpx;overflow-y:auto;min-width:200rpx}.tag-select-dropdown__item{padding:24rpx;border-bottom:1rpx solid #f3f4f6}.tag-select-dropdown__item:last-child{border-bottom:none}.tag-select-dropdown__item text{font-size:28rpx;color:#333}.tag-select-dropdown__item text.active{color:#007aff;font-weight:500}.tag-select-mask{position:fixed;top:0;left:0;right:0;bottom:0;background-color:transparent;z-index:9998}.form-item--textarea{align-items:flex-start}.form-item--switch{flex-direction:row;align-items:center;justify-content:space-between}.form-item--switch .form-item__label{margin-bottom:0}.form-actions{display:flex;gap:24rpx;padding-top:16rpx}.form-btn{flex:1;height:88rpx;border-radius:16rpx;display:flex;align-items:center;justify-content:center;font-size:30rpx;font-weight:500}.form-btn--cancel{background-color:#f3f4f6;color:#6b7280}.form-btn--save{background-color:#007aff;color:#fff}.form-btn__text{font-size:30rpx;font-weight:500}
diff --git a/unpackage/dist/build/mp-weixin/pages/workbench/components/sales_scenario_new.js b/unpackage/dist/build/mp-weixin/pages/workbench/components/sales_scenario_new.js
index 11e1f73..9f97a7a 100644
--- a/unpackage/dist/build/mp-weixin/pages/workbench/components/sales_scenario_new.js
+++ b/unpackage/dist/build/mp-weixin/pages/workbench/components/sales_scenario_new.js
@@ -1 +1 @@
-"use strict";const e=require("../../../common/vendor.js"),o={name:"SalesScenarioNew",props:{contentTop:{type:String,default:"0rpx"},contentBottom:{type:String,default:"0rpx"}},methods:{openReceptionTab(o){if(!["status","reception","tag"].includes(o))return;const n=`/pages-subpackage/furniture_reception/furniture_reception_entry?tab=${encodeURIComponent(o)}`;e.index.navigateTo({url:n,fail:()=>{e.index.showToast({title:"跳转接待页失败",icon:"none"})}})},openReceptionInProgress(){e.index.navigateTo({url:"/pages-subpackage/furniture_reception/reception_in_progress",fail:()=>{e.index.showToast({title:"跳转接待中失败",icon:"none"})}})},openCustomerTab(o){const n=`/pages-subpackage/furniture_customer/furniture_customer?tab=${o}`;e.index.navigateTo({url:n})}}};const n=e._export_sfc(o,[["render",function(o,n,t,r,a,i){return{a:e.o((e=>i.openReceptionTab("reception")),"04"),b:e.o((e=>i.openReceptionTab("status")),"8d"),c:e.o(((...e)=>i.openReceptionInProgress&&i.openReceptionInProgress(...e)),"f7"),d:e.o((e=>i.openReceptionTab("tag")),"07"),e:e.o((e=>i.openCustomerTab("service")),"6e"),f:e.o((e=>i.openCustomerTab("customer")),"4a"),g:t.contentTop,h:t.contentBottom}}],["__scopeId","data-v-101b35ee"]]);wx.createComponent(n);
+"use strict";const e=require("../../../common/vendor.js"),o={name:"SalesScenarioNew",props:{contentTop:{type:String,default:"0rpx"},contentBottom:{type:String,default:"0rpx"}},methods:{openReceptionTab(o){if(!["status","reception","tag"].includes(o))return;const n=`/pages-subpackage/furniture_reception/furniture_reception_entry?tab=${encodeURIComponent(o)}`;e.index.navigateTo({url:n,fail:()=>{e.index.showToast({title:"跳转接待页失败",icon:"none"})}})},goReceptionInProgressPage(o){e.index.navigateTo({url:"/pages-subpackage/furniture_reception/reception_in_progress",fail:()=>{e.index.showToast({title:o||"页面打开失败",icon:"none"})}})},openReceptionInProgress(){this.goReceptionInProgressPage("跳转接待中失败")},openCustomerTab(o){const n=`/pages-subpackage/furniture_customer/furniture_customer?tab=${o}`;e.index.navigateTo({url:n})}}};const n=e._export_sfc(o,[["render",function(o,n,t,r,a,i){return{a:e.o((e=>i.openReceptionTab("reception")),"28"),b:e.o((e=>i.goReceptionInProgressPage("跳转服务中失败")),"e9"),c:e.o((e=>i.openReceptionTab("tag")),"2f"),d:e.o((e=>i.openCustomerTab("service")),"74"),e:e.o((e=>i.openCustomerTab("customer")),"34"),f:t.contentTop,g:t.contentBottom}}],["__scopeId","data-v-fecda258"]]);wx.createComponent(n);
diff --git a/unpackage/dist/build/mp-weixin/pages/workbench/components/sales_scenario_new.wxml b/unpackage/dist/build/mp-weixin/pages/workbench/components/sales_scenario_new.wxml
index 1e43582..563e482 100644
--- a/unpackage/dist/build/mp-weixin/pages/workbench/components/sales_scenario_new.wxml
+++ b/unpackage/dist/build/mp-weixin/pages/workbench/components/sales_scenario_new.wxml
@@ -1 +1 @@
-🛎️开始接待📌服务中⏳接待中🗂️标签管理📝服务记录👥客户
\ No newline at end of file
+🛎️开始接待📌服务中🗂️标签管理📝服务记录👥客户
\ No newline at end of file
diff --git a/unpackage/dist/build/mp-weixin/pages/workbench/components/sales_scenario_new.wxss b/unpackage/dist/build/mp-weixin/pages/workbench/components/sales_scenario_new.wxss
index 375e516..03a51a2 100644
--- a/unpackage/dist/build/mp-weixin/pages/workbench/components/sales_scenario_new.wxss
+++ b/unpackage/dist/build/mp-weixin/pages/workbench/components/sales_scenario_new.wxss
@@ -1 +1 @@
-.scenario-wrapper.data-v-101b35ee{position:absolute;left:0;right:0}.content-scroll.data-v-101b35ee{height:100%}.category-section.data-v-101b35ee{margin:20rpx 30rpx;background:#fff;border-radius:16rpx;overflow:hidden;box-shadow:0 2rpx 8rpx rgba(0,0,0,.04)}.category-section.data-v-101b35ee:first-child{margin-top:0}.category-section.data-v-101b35ee:last-child{margin-bottom:0}.category-header.data-v-101b35ee{display:flex;align-items:center;padding:30rpx;background:#fff;border-bottom:1rpx solid #f0f0f0}.category-icon.data-v-101b35ee{font-size:32rpx;margin-right:20rpx}.category-title.data-v-101b35ee{font-size:32rpx;font-weight:500;color:#333}.function-grid.data-v-101b35ee{display:flex;flex-wrap:wrap;padding:10rpx}.two-column .function-item.data-v-101b35ee{flex:1;background:#fff;border-radius:12rpx;padding:24rpx 16rpx;margin:0 5rpx;text-align:center;box-shadow:0 2rpx 4rpx rgba(0,0,0,.04);transition:all .3s ease;border:1rpx solid #f0f0f0}.function-item.data-v-101b35ee{min-width:42%}.function-item.data-v-101b35ee:active{transform:scale(.95);box-shadow:0 1rpx 2rpx rgba(0,0,0,.1)}.function-icon.data-v-101b35ee{font-size:48rpx;margin-bottom:12rpx}.function-name.data-v-101b35ee{display:block;font-size:28rpx;font-weight:500;color:#333;margin-bottom:8rpx}.function-desc.data-v-101b35ee{display:block;font-size:24rpx;color:#666;line-height:1.4}
+.scenario-wrapper.data-v-fecda258{position:absolute;left:0;right:0}.content-scroll.data-v-fecda258{height:100%}.category-section.data-v-fecda258{margin:20rpx 30rpx;background:#fff;border-radius:16rpx;overflow:hidden;box-shadow:0 2rpx 8rpx rgba(0,0,0,.04)}.category-section.data-v-fecda258:first-child{margin-top:0}.category-section.data-v-fecda258:last-child{margin-bottom:0}.category-header.data-v-fecda258{display:flex;align-items:center;padding:30rpx;background:#fff;border-bottom:1rpx solid #f0f0f0}.category-icon.data-v-fecda258{font-size:32rpx;margin-right:20rpx}.category-title.data-v-fecda258{font-size:32rpx;font-weight:500;color:#333}.function-grid.data-v-fecda258{display:flex;flex-wrap:wrap;padding:10rpx}.two-column .function-item.data-v-fecda258{flex:1;background:#fff;border-radius:12rpx;padding:24rpx 16rpx;margin:0 5rpx;text-align:center;box-shadow:0 2rpx 4rpx rgba(0,0,0,.04);transition:all .3s ease;border:1rpx solid #f0f0f0}.function-item.data-v-fecda258{min-width:42%}.function-item.data-v-fecda258:active{transform:scale(.95);box-shadow:0 1rpx 2rpx rgba(0,0,0,.1)}.function-icon.data-v-fecda258{font-size:48rpx;margin-bottom:12rpx}.function-name.data-v-fecda258{display:block;font-size:28rpx;font-weight:500;color:#333;margin-bottom:8rpx}.function-desc.data-v-fecda258{display:block;font-size:24rpx;color:#666;line-height:1.4}