diff --git a/pages-subpackage/furniture_reception/serviceListFurniture.vue b/pages-subpackage/furniture_reception/serviceListFurniture.vue
index 6cf2a52..f4dc1f1 100644
--- a/pages-subpackage/furniture_reception/serviceListFurniture.vue
+++ b/pages-subpackage/furniture_reception/serviceListFurniture.vue
@@ -62,46 +62,9 @@
{{ item.staffName || '未分配销售' }}
-
-
-
- 结束服务
-
-
-
-
-
-
-
-
-
-
- {{ recordStateLabel }}
-
+
+
+ {{ recordStateLabel }}
@@ -145,6 +108,31 @@
{{ item.durationText }}
+
+
+ 录音
+
+
+ 停止录音
+
+
+ 补录客户
+
+
+ {{ isUploading(item.id) ? '上传中' : '上传录音' }}
+
+
+ 结束服务
+
+
{{ emptyListHint }}
@@ -154,12 +142,6 @@
-
-
@@ -286,8 +268,7 @@ export default {
recorderSupported: false,
recorderManager: null,
recordingServiceId: null,
- recordingContext: null,
- actionMenuForId: null
+ recordingContext: null
}
},
mounted() {
@@ -308,51 +289,6 @@ export default {
}
},
methods: {
- toggleActionMenu(recordId) {
- const id = recordId === undefined || recordId === null ? null : String(recordId);
- if (!id) {
- this.actionMenuForId = null;
- return;
- }
- this.actionMenuForId = this.actionMenuForId === id ? null : id;
- },
- closeActionMenu() {
- this.actionMenuForId = null;
- },
- onActionMenuSelect(action, item) {
- if (!item || !item.id) {
- this.closeActionMenu();
- return;
- }
- const id = String(item.id);
- if (this.actionMenuForId && String(this.actionMenuForId) !== id) {
- // 避免列表复用导致错点
- this.actionMenuForId = id;
- }
- if (action === 'record') {
- if (this.isRecordingItem(item.id)) {
- this.stopPhoneRecordAndUpload(item);
- } else {
- this.startPhoneRecord(item);
- }
- this.closeActionMenu();
- return;
- }
- if (action === 'supplement') {
- this.showSupplementDialog(item);
- this.closeActionMenu();
- return;
- }
- if (action === 'upload') {
- if (this.isUploading(item.id)) {
- return;
- }
- this.chooseAndUploadFile(item);
- this.closeActionMenu();
- return;
- }
- this.closeActionMenu();
- },
initServiceRecorder() {
this.recorderSupported = typeof uni.getRecorderManager === 'function';
if (!this.recorderSupported) {
@@ -820,7 +756,6 @@ export default {
},
async uploadFileForRecord(item, selectedFile) {
const recordId = String(item.id);
- this.closeActionMenu();
this.uploadingIds = [...this.uploadingIds, recordId];
try {
uni.showLoading({
@@ -878,8 +813,6 @@ export default {
});
return;
}
- this.closeActionMenu();
-
uni.showModal({
title: '确认结束',
content: `确定要结束这条服务记录吗?`,
@@ -1285,92 +1218,65 @@ export default {
font-weight: 500;
color: #333;
}
-
- .service-status {
- display: flex;
- align-items: center;
- gap: 8rpx;
- }
- .action-trigger {
+ .service-status-indicator {
display: inline-flex;
align-items: center;
gap: 6rpx;
- padding: 0;
- border-radius: 10rpx;
- background-color: #EEF4FF;
- overflow: hidden;
+ flex-shrink: 0;
}
- .action-trigger__primary {
- padding: 6rpx 12rpx;
- display: inline-flex;
- align-items: center;
- justify-content: center;
- background-color: transparent;
- }
-
- .action-trigger__primary-text {
+ .service-status-indicator__text {
font-size: 26rpx;
color: #007AFF;
white-space: nowrap;
}
+
+ .service-actions-row {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ flex-wrap: wrap;
+ gap: 12rpx;
+ margin-top: 18rpx;
+ }
- .action-trigger__more {
- padding: 6rpx 10rpx 6rpx 6rpx;
+ .service-action-btn {
+ padding: 8rpx 18rpx;
+ border-radius: 10rpx;
+ font-size: 24rpx;
+ line-height: 1.2;
display: inline-flex;
align-items: center;
justify-content: center;
- border-left: 1px solid rgba(0, 122, 255, 0.15);
- background-color: transparent;
+ border: 1px solid transparent;
+ background-color: #F8FAFF;
}
- .action-menu {
- position: absolute;
- right: 24rpx;
- top: 96rpx;
- min-width: 220rpx;
- background-color: #FFFFFF;
- border-radius: 16rpx;
- box-shadow: 0 8rpx 24rpx rgba(0, 0, 0, 0.12);
- border: 1px solid #EEF0F3;
- z-index: 50;
- overflow: hidden;
- }
-
- .action-menu-item {
- padding: 22rpx 24rpx;
- display: flex;
- align-items: center;
- justify-content: flex-start;
- }
-
- .action-menu-item text {
- font-size: 28rpx;
- color: #111827;
- }
-
- .action-menu-item:active {
- background-color: #F5F7FA;
- }
-
- .action-menu-item--disabled {
- opacity: 0.55;
- }
-
- .action-menu-mask {
- position: fixed;
- left: 0;
- top: 0;
- right: 0;
- bottom: 0;
- background-color: transparent;
- z-index: 40;
- }
-
- .service-status text {
- font-size: 26rpx;
+ .service-action-btn--record {
color: #007AFF;
+ border-color: rgba(0, 122, 255, 0.22);
+ }
+
+ .service-action-btn--recording {
+ color: #FF3B30;
+ border-color: rgba(255, 59, 48, 0.25);
+ }
+
+ .service-action-btn--supplement {
+ color: #10B981;
+ border-color: rgba(16, 185, 129, 0.25);
+ }
+
+ .service-action-btn--upload {
+ color: #7C3AED;
+ border-color: rgba(124, 58, 237, 0.25);
+ }
+
+ .service-action-btn--finish {
+ color: #EF4444;
+ border-color: rgba(239, 68, 68, 0.28);
+ background-color: #FFF7F7;
}
.customer-tags {
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 431de2d..b80aa89 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 n={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,actionMenuForId:null}),mounted(){this.checkUserRole(),this.loadCurrentUserPhone(),this.initServiceRecorder(),this.fetchServiceStatusList()},beforeUnmount(){if(this.recorderManager&&this.recordingServiceId)try{this.recorderManager.stop()}catch(e){}},methods:{toggleActionMenu(e){const t=null==e?null:String(e);this.actionMenuForId=t?this.actionMenuForId===t?null:t:null},closeActionMenu(){this.actionMenuForId=null},onActionMenuSelect(e,t){if(!t||!t.id)return void this.closeActionMenu();const i=String(t.id);if(this.actionMenuForId&&String(this.actionMenuForId)!==i&&(this.actionMenuForId=i),"record"===e)return this.isRecordingItem(t.id)?this.stopPhoneRecordAndUpload(t):this.startPhoneRecord(t),void this.closeActionMenu();if("supplement"===e)return this.showSupplementDialog(t),void this.closeActionMenu();if("upload"===e){if(this.isUploading(t.id))return;return this.chooseAndUploadFile(t),void this.closeActionMenu()}if("finish"===e)return this.finishService(t),void this.closeActionMenu();this.closeActionMenu()},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 n=`service_record_${i.id}_${Date.now()}.mp3`;this.uploadFileForRecord(i,{path:o,name:n})})),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||"",n=[...t(i),...t(o)];this.isAdmin=n.some((e=>e.includes("admin"))),console.log("用户角色检查:",{storedRole:i,respRole:o,roles:n,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,n,r,s,a,c,l;if(!this.serviceStatusLoading||i){this.serviceStatusLoading=!0;try{const u={current:this.serviceStatusPage.current,size:this.serviceStatusPage.size,serviceStatus:"服务中"},h=null==(n=null==(o=this.serviceStatusQuery)?void 0:o.salesName)?void 0:n.trim(),m=null==(s=null==(r=this.serviceStatusQuery)?void 0:r.customerName)?void 0:s.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 n=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:n,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||"",n=i.name||o.split("/").pop()||`service_file_${Date.now()}`;return o?{path:o,name:n}: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(n){console.error("获取认证信息失败:",n)}const o={};return i&&(o.Authorization=`Bearer ${i}`),t&&(o["X-Tenant-Id"]=t),o},async uploadFileForRecord(i,o){const n=String(i.id);this.closeActionMenu(),this.uploadingIds=[...this.uploadingIds,n];try{e.index.showLoading({title:"上传中..."});const s=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==s?void 0:s.data)?JSON.parse(s.data):(null==s?void 0:s.data)||{}}catch(r){a=(null==s?void 0:s.data)||{}}if(200===(null==s?void 0:s.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(s){console.error("上传文件失败:",s),e.index.showToast({title:(null==s?void 0:s.errMsg)||(null==s?void 0:s.message)||"上传失败",icon:"none"})}finally{e.index.hideLoading(),this.uploadingIds=this.uploadingIds.filter((e=>e!==n))}},async finishService(i){i&&i.id?(this.closeActionMenu(),e.index.showModal({title:"确认结束",content:"确定要结束这条服务记录吗?",success:async o=>{var n,r;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(s){console.error("获取认证信息失败:",s)}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==(n=u.data)?void 0:n.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==(r=u.data)?void 0:r.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 n,r,s,a,c;const l=null==(n=this.supplementForm.contact)?void 0:n.trim();if(!l||this.isValidPhoneNumber(l))if(this.currentSupplementItem&&this.currentSupplementItem.id)try{e.index.showLoading({title:"保存中..."});let n="",u="";try{n=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}`),n&&(h["X-Tenant-Id"]=n);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==(r=this.supplementForm.customerName)?void 0:r.trim())||"",customerPhone:l||"",recordingName:(null==(s=this.supplementForm.recordingName)?void 0:s.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 r=e._export_sfc(n,[["render",function(t,i,o,n,r,s){return e.e({a:e.t(r.serviceStatusTotal),b:e.o(((...e)=>s.onServiceStatusSearch&&s.onServiceStatusSearch(...e)),"1e"),c:r.serviceStatusQuery.salesName,d:e.o((e=>r.serviceStatusQuery.salesName=e.detail.value),"5b"),e:e.o(((...e)=>s.onServiceStatusSearch&&s.onServiceStatusSearch(...e)),"4f"),f:r.serviceStatusQuery.customerName,g:e.o((e=>r.serviceStatusQuery.customerName=e.detail.value),"ff"),h:r.isAdmin},r.isAdmin?{i:e.o(((...e)=>s.onServiceStatusSearch&&s.onServiceStatusSearch(...e)),"91"),j:r.serviceStatusQuery.salesPhone,k:e.o((e=>r.serviceStatusQuery.salesPhone=e.detail.value),"86")}:{},{l:o.showReceptionEntryShortcut},o.showReceptionEntryShortcut?{m:e.p({type:"home",size:"18",color:"#2A68FF"}),n:e.o(((...e)=>s.goReceptionEntry&&s.goReceptionEntry(...e)),"5d")}:{},{o:e.p({type:"refresh",size:"18",color:"#2A68FF"}),p:e.o(((...e)=>s.onServiceStatusRefresh&&s.onServiceStatusRefresh(...e)),"84"),q:e.f(r.serviceStatusList,((t,i,n)=>e.e({a:e.t(t.staffName?t.staffName.charAt(0):"未"),b:e.t(t.staffName||"未分配销售"),c:"6f0c59d0-2-"+n,d:e.o((e=>s.toggleActionMenu(t.id)),t.id||i),e:r.actionMenuForId&&String(r.actionMenuForId)===String(t.id)},r.actionMenuForId&&String(r.actionMenuForId)===String(t.id)?{f:e.t(s.isRecordingItem(t.id)?"停止录音":"开始录音"),g:e.o((e=>s.onActionMenuSelect("record",t)),t.id||i),h:e.o((e=>s.onActionMenuSelect("supplement",t)),t.id||i),i:e.t(s.isUploading(t.id)?"上传中":"上传录音"),j:s.isUploading(t.id)?1:"",k:e.o((e=>s.onActionMenuSelect("upload",t)),t.id||i),l:e.o((e=>s.onActionMenuSelect("finish",t)),t.id||i),m:e.o((()=>{}),t.id||i)}:{},o.showRecordStateIndicator?{n:"6f0c59d0-3-"+n,o:e.p({type:"bars",size:"16",color:"#007AFF"}),p:e.t(o.recordStateLabel)}:{},{q:t.title},t.title?{r:e.t(t.title)}:{},{s:e.t(t.customerName||"未知客户"),t:t.customerPhone},t.customerPhone?{v:e.t(t.customerPhone)}:{},{w:e.f(t.tags,((t,i,o)=>({a:e.t(t.text),b:e.n("tag-"+t.color),c:i}))),x:t.alert},t.alert?e.e({y:e.t(t.alert.title),z:"risk"===t.alert.type},"risk"===t.alert.type?{A:e.t(t.alert.message)}:{B:e.f(t.alert.messages,((t,i,o)=>({a:e.t(t),b:i})))},{C:e.n("risk"===t.alert.type?"alert-risk-text":"alert-reminder-text"),D:e.n("risk"===t.alert.type?"alert-risk-box":"alert-reminder-box")}):{},{E:e.t(t.durationText),F:t.id||i,G:e.o((e=>s.viewServiceDetail(t)),t.id||i)}))),r:e.p({type:"bottom",size:"16",color:"#007AFF"}),s:o.showRecordStateIndicator,t:!r.serviceStatusLoading&&!r.serviceStatusList.length},r.serviceStatusLoading||r.serviceStatusList.length?{}:{v:e.t(o.emptyListHint)},{w:r.serviceStatusLoading&&r.serviceStatusList.length},(r.serviceStatusLoading&&r.serviceStatusList.length,{}),{x:e.o(((...e)=>s.onServiceStatusReachBottom&&s.onServiceStatusReachBottom(...e)),"d2"),y:r.actionMenuForId},r.actionMenuForId?{z:e.o(((...e)=>s.closeActionMenu&&s.closeActionMenu(...e)),"8e")}:{},{A:r.showSupplementModal},r.showSupplementModal?{B:e.p({type:"close",size:"20",color:"#999"}),C:e.o(((...e)=>s.closeSupplementDialog&&s.closeSupplementDialog(...e)),"00"),D:r.supplementForm.customerName,E:e.o((e=>r.supplementForm.customerName=e.detail.value),"1c"),F:r.supplementForm.contact,G:e.o((e=>r.supplementForm.contact=e.detail.value),"26"),H:r.supplementForm.recordingName,I:e.o((e=>r.supplementForm.recordingName=e.detail.value),"bd"),J:r.supplementForm.remarks,K:e.o((e=>r.supplementForm.remarks=e.detail.value),"5c"),L:e.o(((...e)=>s.closeSupplementDialog&&s.closeSupplementDialog(...e)),"b1"),M:e.o(((...e)=>s.saveSupplement&&s.saveSupplement(...e)),"77"),N:e.o((()=>{}),"70"),O:e.o(((...e)=>s.closeSupplementDialog&&s.closeSupplementDialog(...e)),"d6")}:{})}],["__scopeId","data-v-6f0c59d0"]]);wx.createComponent(r);
+"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,o)=>e.e({a:e.t(t.staffName?t.staffName.charAt(0):"未"),b:e.t(t.staffName||"未分配销售"),c:"58afef94-2-"+o,d:t.title},t.title?{e:e.t(t.title)}:{},{f:e.t(t.customerName||"未知客户"),g:t.customerPhone},t.customerPhone?{h:e.t(t.customerPhone)}:{},{i:e.f(t.tags,((t,i,o)=>({a:e.t(t.text),b:e.n("tag-"+t.color),c:i}))),j:t.alert},t.alert?e.e({k:e.t(t.alert.title),l:"risk"===t.alert.type},"risk"===t.alert.type?{m:e.t(t.alert.message)}:{n:e.f(t.alert.messages,((t,i,o)=>({a:e.t(t),b:i})))},{o:e.n("risk"===t.alert.type?"alert-risk-text":"alert-reminder-text"),p:e.n("risk"===t.alert.type?"alert-risk-box":"alert-reminder-box")}):{},{q:e.t(t.durationText),r:!n.isRecordingItem(t.id)},n.isRecordingItem(t.id)?{t:e.o((e=>n.stopPhoneRecordAndUpload(t)),t.id||i)}:{s:e.o((e=>n.startPhoneRecord(t)),t.id||i)},{v:e.o((e=>n.showSupplementDialog(t)),t.id||i),w:e.t(n.isUploading(t.id)?"上传中":"上传录音"),x:e.o((e=>n.chooseAndUploadFile(t)),t.id||i),y:e.o((e=>n.finishService(t)),t.id||i),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)),"d2"),y:s.showSupplementModal},s.showSupplementModal?{z:e.p({type:"close",size:"20",color:"#999"}),A:e.o(((...e)=>n.closeSupplementDialog&&n.closeSupplementDialog(...e)),"ef"),B:s.supplementForm.customerName,C:e.o((e=>s.supplementForm.customerName=e.detail.value),"bd"),D:s.supplementForm.contact,E:e.o((e=>s.supplementForm.contact=e.detail.value),"05"),F:s.supplementForm.recordingName,G:e.o((e=>s.supplementForm.recordingName=e.detail.value),"98"),H:s.supplementForm.remarks,I:e.o((e=>s.supplementForm.remarks=e.detail.value),"de"),J:e.o(((...e)=>n.closeSupplementDialog&&n.closeSupplementDialog(...e)),"4e"),K:e.o(((...e)=>n.saveSupplement&&n.saveSupplement(...e)),"9b"),L:e.o((()=>{}),"61"),M:e.o(((...e)=>n.closeSupplementDialog&&n.closeSupplementDialog(...e)),"3a")}:{})}],["__scopeId","data-v-58afef94"]]);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 5a27107..62b95b1 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.r}}客户:{{item.s}}电话:{{item.v}}{{tag.a}}{{item.A}}{{msg.a}}{{item.E}}{{v}}正在加载更多...客户姓名客户电话录音名客户详细地址
\ No newline at end of file
+共{{a}}条接待刷新{{item.e}}客户:{{item.f}}电话:{{item.h}}{{tag.a}}{{item.m}}{{msg.a}}{{item.q}}录音停止录音补录客户{{item.w}}结束服务{{v}}正在加载更多...客户姓名客户电话录音名客户详细地址
\ 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 5b3de36..e0c3d01 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-6f0c59d0{height:100%;width:100%;display:flex;flex-direction:column;background-color:#f5f5f5;padding:0 16rpx;box-sizing:border-box}.service-status-toolbar.data-v-6f0c59d0{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-6f0c59d0{flex:1;background-color:transparent;box-sizing:border-box;overflow-y:auto}.toolbar-total.data-v-6f0c59d0{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-6f0c59d0{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-6f0c59d0{display:flex;align-items:center;margin-left:auto;flex-shrink:0;gap:8rpx}.toolbar-btn.data-v-6f0c59d0{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-6f0c59d0{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.data-v-6f0c59d0{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-6f0c59d0{margin-top:16rpx;margin-bottom:8rpx}.service-title__text.data-v-6f0c59d0{font-size:28rpx;font-weight:600;color:#111827;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.staff-info.data-v-6f0c59d0{display:flex;align-items:center;flex:1;min-width:0;margin:0;padding:0}.staff-avatar.data-v-6f0c59d0{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-6f0c59d0{font-size:32rpx;color:#fff;font-weight:500}.staff-name.data-v-6f0c59d0{font-size:32rpx;font-weight:500;color:#333}.service-status.data-v-6f0c59d0{display:flex;align-items:center;gap:8rpx}.action-trigger.data-v-6f0c59d0{display:inline-flex;align-items:center;gap:6rpx;padding:6rpx 12rpx;border-radius:10rpx;background-color:#eef4ff}.action-trigger__text.data-v-6f0c59d0{font-size:26rpx;color:#007aff;white-space:nowrap}.action-menu.data-v-6f0c59d0{position:absolute;right:24rpx;top:96rpx;min-width:220rpx;background-color:#fff;border-radius:16rpx;box-shadow:0 8rpx 24rpx rgba(0,0,0,.12);border:1px solid #EEF0F3;z-index:50;overflow:hidden}.action-menu-item.data-v-6f0c59d0{padding:22rpx 24rpx;display:flex;align-items:center;justify-content:flex-start}.action-menu-item text.data-v-6f0c59d0{font-size:28rpx;color:#111827}.action-menu-item.data-v-6f0c59d0:active{background-color:#f5f7fa}.action-menu-item--danger text.data-v-6f0c59d0{color:#ef4444}.action-menu-item--disabled.data-v-6f0c59d0{opacity:.55}.action-menu-mask.data-v-6f0c59d0{position:fixed;left:0;top:0;right:0;bottom:0;background-color:transparent;z-index:40}.service-status text.data-v-6f0c59d0{font-size:26rpx;color:#007aff}.customer-tags.data-v-6f0c59d0{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-6f0c59d0{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-6f0c59d0,.customer-phone.data-v-6f0c59d0{font-size:28rpx;color:#555}.tag-item.data-v-6f0c59d0{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-6f0c59d0{background-color:#e3f2fd}.tag-blue text.data-v-6f0c59d0{font-size:24rpx;color:#1976d2}.tag-orange.data-v-6f0c59d0{background-color:#fff3e0}.tag-orange text.data-v-6f0c59d0{font-size:24rpx;color:#f57c00}.ai-alert.data-v-6f0c59d0{border-radius:8rpx;padding:20rpx;margin-bottom:20rpx}.alert-risk-box.data-v-6f0c59d0{background-color:#fff5f5}.alert-reminder-box.data-v-6f0c59d0{background-color:#f5f5f5}.alert-header.data-v-6f0c59d0{display:flex;align-items:center;margin-bottom:12rpx}.alert-icon.data-v-6f0c59d0{margin-right:8rpx}.icon-circle.data-v-6f0c59d0{width:24rpx;height:24rpx;border:2rpx solid #333;border-radius:50%;position:relative}.icon-circle.data-v-6f0c59d0: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-6f0c59d0{font-size:28rpx;font-weight:500;color:#333}.alert-content.data-v-6f0c59d0{font-size:26rpx;line-height:1.6}.alert-risk-text.data-v-6f0c59d0{color:#ff5722}.alert-reminder-text.data-v-6f0c59d0{color:#666}.alert-list.data-v-6f0c59d0{display:flex;flex-direction:column;gap:8rpx}.alert-item.data-v-6f0c59d0{display:flex;align-items:flex-start}.alert-item.data-v-6f0c59d0:before{content:"\2022";margin-right:8rpx;color:#666}.alert-item text.data-v-6f0c59d0{font-size:26rpx;color:#666;line-height:1.6}.service-duration.data-v-6f0c59d0{padding-top:16rpx;border-top:1px solid #F0F0F0}.service-duration text.data-v-6f0c59d0{font-size:26rpx;color:#999}.service-status-empty.data-v-6f0c59d0,.service-status-loading-more.data-v-6f0c59d0{padding:48rpx 0;text-align:center;color:#999;font-size:28rpx}.supplement-dialog-mask.data-v-6f0c59d0{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-6f0c59d0{width:640rpx;max-height:80vh;background-color:#fff;border-radius:24rpx;overflow:hidden;display:flex;flex-direction:column}.supplement-dialog__header.data-v-6f0c59d0{display:flex;align-items:center;justify-content:space-between;padding:32rpx 32rpx 24rpx;border-bottom:1px solid #F0F0F0}.supplement-dialog__title.data-v-6f0c59d0{font-size:32rpx;font-weight:500;color:#333}.supplement-dialog__close.data-v-6f0c59d0{width:48rpx;height:48rpx;display:flex;align-items:center;justify-content:center}.supplement-dialog__body.data-v-6f0c59d0{flex:1;padding:32rpx;overflow-y:auto}.supplement-form-item.data-v-6f0c59d0{margin-bottom:32rpx}.supplement-form-item.data-v-6f0c59d0:last-child{margin-bottom:0}.supplement-form-item__label.data-v-6f0c59d0{display:block;font-size:28rpx;color:#333;font-weight:500;margin-bottom:16rpx}.supplement-form-item__input.data-v-6f0c59d0{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-6f0c59d0{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-6f0c59d0{display:flex;gap:24rpx;padding:24rpx 32rpx 32rpx;border-top:1px solid #F0F0F0}.supplement-dialog__btn.data-v-6f0c59d0{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-6f0c59d0{background-color:#f3f4f6;color:#6b7280}.supplement-dialog__btn--save.data-v-6f0c59d0{background-color:#4c8dff;color:#fff}.supplement-dialog__btn.data-v-6f0c59d0:active{opacity:.7}
+.service-list-container.data-v-58afef94{height:100%;width:100%;display:flex;flex-direction:column;background-color:#f5f5f5;padding:0 16rpx;box-sizing:border-box}.service-status-toolbar.data-v-58afef94{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-58afef94{flex:1;background-color:transparent;box-sizing:border-box;overflow-y:auto}.toolbar-total.data-v-58afef94{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-58afef94{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-58afef94{display:flex;align-items:center;margin-left:auto;flex-shrink:0;gap:8rpx}.toolbar-btn.data-v-58afef94{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-58afef94{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.data-v-58afef94{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-58afef94{margin-top:16rpx;margin-bottom:8rpx}.service-title__text.data-v-58afef94{font-size:28rpx;font-weight:600;color:#111827;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.staff-info.data-v-58afef94{display:flex;align-items:center;flex:1;min-width:0;margin:0;padding:0}.staff-avatar.data-v-58afef94{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-58afef94{font-size:32rpx;color:#fff;font-weight:500}.staff-name.data-v-58afef94{font-size:32rpx;font-weight:500;color:#333}.service-status-indicator.data-v-58afef94{display:inline-flex;align-items:center;gap:6rpx;flex-shrink:0}.service-status-indicator__text.data-v-58afef94{font-size:26rpx;color:#007aff;white-space:nowrap}.service-actions-row.data-v-58afef94{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12rpx;margin-top:18rpx}.service-action-btn.data-v-58afef94{padding:8rpx 18rpx;border-radius:10rpx;font-size:24rpx;line-height:1.2;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;background-color:#f8faff}.service-action-btn--record.data-v-58afef94{color:#007aff;border-color:rgba(0,122,255,.22)}.service-action-btn--recording.data-v-58afef94{color:#ff3b30;border-color:rgba(255,59,48,.25)}.service-action-btn--supplement.data-v-58afef94{color:#10b981;border-color:rgba(16,185,129,.25)}.service-action-btn--upload.data-v-58afef94{color:#7c3aed;border-color:rgba(124,58,237,.25)}.service-action-btn--finish.data-v-58afef94{color:#ef4444;border-color:rgba(239,68,68,.28);background-color:#fff7f7}.customer-tags.data-v-58afef94{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-58afef94{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-58afef94,.customer-phone.data-v-58afef94{font-size:28rpx;color:#555}.tag-item.data-v-58afef94{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-58afef94{background-color:#e3f2fd}.tag-blue text.data-v-58afef94{font-size:24rpx;color:#1976d2}.tag-orange.data-v-58afef94{background-color:#fff3e0}.tag-orange text.data-v-58afef94{font-size:24rpx;color:#f57c00}.ai-alert.data-v-58afef94{border-radius:8rpx;padding:20rpx;margin-bottom:20rpx}.alert-risk-box.data-v-58afef94{background-color:#fff5f5}.alert-reminder-box.data-v-58afef94{background-color:#f5f5f5}.alert-header.data-v-58afef94{display:flex;align-items:center;margin-bottom:12rpx}.alert-icon.data-v-58afef94{margin-right:8rpx}.icon-circle.data-v-58afef94{width:24rpx;height:24rpx;border:2rpx solid #333;border-radius:50%;position:relative}.icon-circle.data-v-58afef94: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-58afef94{font-size:28rpx;font-weight:500;color:#333}.alert-content.data-v-58afef94{font-size:26rpx;line-height:1.6}.alert-risk-text.data-v-58afef94{color:#ff5722}.alert-reminder-text.data-v-58afef94{color:#666}.alert-list.data-v-58afef94{display:flex;flex-direction:column;gap:8rpx}.alert-item.data-v-58afef94{display:flex;align-items:flex-start}.alert-item.data-v-58afef94:before{content:"\2022";margin-right:8rpx;color:#666}.alert-item text.data-v-58afef94{font-size:26rpx;color:#666;line-height:1.6}.service-duration.data-v-58afef94{padding-top:16rpx;border-top:1px solid #F0F0F0}.service-duration text.data-v-58afef94{font-size:26rpx;color:#999}.service-status-empty.data-v-58afef94,.service-status-loading-more.data-v-58afef94{padding:48rpx 0;text-align:center;color:#999;font-size:28rpx}.supplement-dialog-mask.data-v-58afef94{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-58afef94{width:640rpx;max-height:80vh;background-color:#fff;border-radius:24rpx;overflow:hidden;display:flex;flex-direction:column}.supplement-dialog__header.data-v-58afef94{display:flex;align-items:center;justify-content:space-between;padding:32rpx 32rpx 24rpx;border-bottom:1px solid #F0F0F0}.supplement-dialog__title.data-v-58afef94{font-size:32rpx;font-weight:500;color:#333}.supplement-dialog__close.data-v-58afef94{width:48rpx;height:48rpx;display:flex;align-items:center;justify-content:center}.supplement-dialog__body.data-v-58afef94{flex:1;padding:32rpx;overflow-y:auto}.supplement-form-item.data-v-58afef94{margin-bottom:32rpx}.supplement-form-item.data-v-58afef94:last-child{margin-bottom:0}.supplement-form-item__label.data-v-58afef94{display:block;font-size:28rpx;color:#333;font-weight:500;margin-bottom:16rpx}.supplement-form-item__input.data-v-58afef94{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-58afef94{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-58afef94{display:flex;gap:24rpx;padding:24rpx 32rpx 32rpx;border-top:1px solid #F0F0F0}.supplement-dialog__btn.data-v-58afef94{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-58afef94{background-color:#f3f4f6;color:#6b7280}.supplement-dialog__btn--save.data-v-58afef94{background-color:#4c8dff;color:#fff}.supplement-dialog__btn.data-v-58afef94:active{opacity:.7}
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/ai_analysis.png b/unpackage/dist/build/mp-weixin/static/tabbar/ai_analysis.png
deleted file mode 100644
index 0ec5081..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/ai_analysis.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/ai_analysis_active.png b/unpackage/dist/build/mp-weixin/static/tabbar/ai_analysis_active.png
deleted file mode 100644
index 9b752c7..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/ai_analysis_active.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/customer.png b/unpackage/dist/build/mp-weixin/static/tabbar/customer.png
deleted file mode 100644
index 52c0256..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/customer.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/customer.svg b/unpackage/dist/build/mp-weixin/static/tabbar/customer.svg
deleted file mode 100644
index bd2d5cd..0000000
--- a/unpackage/dist/build/mp-weixin/static/tabbar/customer.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/customer_active.png b/unpackage/dist/build/mp-weixin/static/tabbar/customer_active.png
deleted file mode 100644
index eb747b2..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/customer_active.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/customer_active.svg b/unpackage/dist/build/mp-weixin/static/tabbar/customer_active.svg
deleted file mode 100644
index 68a4861..0000000
--- a/unpackage/dist/build/mp-weixin/static/tabbar/customer_active.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/expression.png b/unpackage/dist/build/mp-weixin/static/tabbar/expression.png
deleted file mode 100644
index 0ec5081..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/expression.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/expression_active.png b/unpackage/dist/build/mp-weixin/static/tabbar/expression_active.png
deleted file mode 100644
index 9b752c7..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/expression_active.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/grid.png b/unpackage/dist/build/mp-weixin/static/tabbar/grid.png
deleted file mode 100644
index 938b821..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/grid.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/grid_active.png b/unpackage/dist/build/mp-weixin/static/tabbar/grid_active.png
deleted file mode 100644
index 807d9c7..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/grid_active.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/homework.png b/unpackage/dist/build/mp-weixin/static/tabbar/homework.png
deleted file mode 100644
index 0ec5081..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/homework.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/homework_active.png b/unpackage/dist/build/mp-weixin/static/tabbar/homework_active.png
deleted file mode 100644
index 9b752c7..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/homework_active.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/insight.png b/unpackage/dist/build/mp-weixin/static/tabbar/insight.png
deleted file mode 100644
index 0ec5081..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/insight.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/insight.svg b/unpackage/dist/build/mp-weixin/static/tabbar/insight.svg
deleted file mode 100644
index 5646ca5..0000000
--- a/unpackage/dist/build/mp-weixin/static/tabbar/insight.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/insight_active.png b/unpackage/dist/build/mp-weixin/static/tabbar/insight_active.png
deleted file mode 100644
index 9b752c7..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/insight_active.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/insight_active.svg b/unpackage/dist/build/mp-weixin/static/tabbar/insight_active.svg
deleted file mode 100644
index 066384d..0000000
--- a/unpackage/dist/build/mp-weixin/static/tabbar/insight_active.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/list.png b/unpackage/dist/build/mp-weixin/static/tabbar/list.png
deleted file mode 100644
index 303bb4c..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/list.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/list_active.png b/unpackage/dist/build/mp-weixin/static/tabbar/list_active.png
deleted file mode 100644
index 0ff8c49..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/list_active.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/me.png b/unpackage/dist/build/mp-weixin/static/tabbar/me.png
deleted file mode 100644
index b54f39f..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/me.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/me_active.png b/unpackage/dist/build/mp-weixin/static/tabbar/me_active.png
deleted file mode 100644
index e727614..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/me_active.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/reception.png b/unpackage/dist/build/mp-weixin/static/tabbar/reception.png
deleted file mode 100644
index c524264..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/reception.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/reception.svg b/unpackage/dist/build/mp-weixin/static/tabbar/reception.svg
deleted file mode 100644
index 8954f3e..0000000
--- a/unpackage/dist/build/mp-weixin/static/tabbar/reception.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/reception_active.png b/unpackage/dist/build/mp-weixin/static/tabbar/reception_active.png
deleted file mode 100644
index 1fa499d..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/reception_active.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/reception_active.svg b/unpackage/dist/build/mp-weixin/static/tabbar/reception_active.svg
deleted file mode 100644
index be3ec7b..0000000
--- a/unpackage/dist/build/mp-weixin/static/tabbar/reception_active.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/record.png b/unpackage/dist/build/mp-weixin/static/tabbar/record.png
deleted file mode 100644
index 0ec5081..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/record.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/record_active.png b/unpackage/dist/build/mp-weixin/static/tabbar/record_active.png
deleted file mode 100644
index 9b752c7..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/record_active.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/team.png b/unpackage/dist/build/mp-weixin/static/tabbar/team.png
deleted file mode 100644
index ff4e280..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/team.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/team.svg b/unpackage/dist/build/mp-weixin/static/tabbar/team.svg
deleted file mode 100644
index cd45b2e..0000000
--- a/unpackage/dist/build/mp-weixin/static/tabbar/team.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/team_active.png b/unpackage/dist/build/mp-weixin/static/tabbar/team_active.png
deleted file mode 100644
index 2ea62ed..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/team_active.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/team_active.svg b/unpackage/dist/build/mp-weixin/static/tabbar/team_active.svg
deleted file mode 100644
index ea466eb..0000000
--- a/unpackage/dist/build/mp-weixin/static/tabbar/team_active.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/voice.png b/unpackage/dist/build/mp-weixin/static/tabbar/voice.png
deleted file mode 100644
index 0ec5081..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/voice.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/voice_active.png b/unpackage/dist/build/mp-weixin/static/tabbar/voice_active.png
deleted file mode 100644
index 9b752c7..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/voice_active.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/workspace.png b/unpackage/dist/build/mp-weixin/static/tabbar/workspace.png
deleted file mode 100644
index 938b821..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/workspace.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/tabbar/workspace_active.png b/unpackage/dist/build/mp-weixin/static/tabbar/workspace_active.png
deleted file mode 100644
index 807d9c7..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/tabbar/workspace_active.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/uni-center/headers.png b/unpackage/dist/build/mp-weixin/static/uni-center/headers.png
deleted file mode 100644
index 431356f..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/uni-center/headers.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/static/uni-load-state/disconnection.png b/unpackage/dist/build/mp-weixin/static/uni-load-state/disconnection.png
deleted file mode 100644
index 8b99603..0000000
Binary files a/unpackage/dist/build/mp-weixin/static/uni-load-state/disconnection.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-captcha/static/run.gif b/unpackage/dist/build/mp-weixin/uni_modules/uni-captcha/static/run.gif
deleted file mode 100644
index 6d164f2..0000000
Binary files a/unpackage/dist/build/mp-weixin/uni_modules/uni-captcha/static/run.gif and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/apple.png b/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/apple.png
deleted file mode 100644
index 556f686..0000000
Binary files a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/apple.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/huawei-mobile.png b/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/huawei-mobile.png
deleted file mode 100644
index 60cef55..0000000
Binary files a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/huawei-mobile.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/huawei.png b/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/huawei.png
deleted file mode 100644
index 3047ffa..0000000
Binary files a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/huawei.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/uni-fab-login/apple.png b/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/uni-fab-login/apple.png
deleted file mode 100644
index 99082a7..0000000
Binary files a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/uni-fab-login/apple.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/uni-fab-login/huawei.png b/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/uni-fab-login/huawei.png
deleted file mode 100644
index c96c3e6..0000000
Binary files a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/uni-fab-login/huawei.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/uni-fab-login/sms.png b/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/uni-fab-login/sms.png
deleted file mode 100644
index 5533743..0000000
Binary files a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/uni-fab-login/sms.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/uni-fab-login/user.png b/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/uni-fab-login/user.png
deleted file mode 100644
index 268420b..0000000
Binary files a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/uni-fab-login/user.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/uni-fab-login/weixin.png b/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/uni-fab-login/weixin.png
deleted file mode 100644
index af7175b..0000000
Binary files a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/uni-fab-login/weixin.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/weixin.png b/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/weixin.png
deleted file mode 100644
index df70aac..0000000
Binary files a/unpackage/dist/build/mp-weixin/uni_modules/uni-id-pages/static/login/weixin.png and /dev/null differ
diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-sign-in/static/background.png b/unpackage/dist/build/mp-weixin/uni_modules/uni-sign-in/static/background.png
deleted file mode 100644
index c17b7ee..0000000
Binary files a/unpackage/dist/build/mp-weixin/uni_modules/uni-sign-in/static/background.png and /dev/null differ