-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}}},{key:"changeLanguage",value:function(t,s){var n=this;this.isLanguageChangingTo=t;var i=Ie();this.emit("languageChanging",t);var a=function(o){n.language=o,n.languages=n.services.languageUtils.toResolveHierarchy(o),n.resolvedLanguage=void 0,n.setResolvedLanguage(o)},u=function(o){t||o||!n.services.languageDetector||(o=[]);var g=typeof o=="string"?o:n.services.languageUtils.getBestMatchFromCodes(o);g&&(n.language||a(g),n.translator.language||n.translator.changeLanguage(g),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage&&n.services.languageDetector.cacheUserLanguage(g)),n.loadResources(g,function(l){(function(p,h){h?(a(h),n.translator.changeLanguage(h),n.isLanguageChangingTo=void 0,n.emit("languageChanged",h),n.logger.log("languageChanged",h)):n.isLanguageChangingTo=void 0,i.resolve(function(){return n.t.apply(n,arguments)}),s&&s(p,function(){return n.t.apply(n,arguments)})})(l,g)})};return t||!this.services.languageDetector||this.services.languageDetector.async?!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(u):this.services.languageDetector.detect(u):u(t):u(this.services.languageDetector.detect()),i}},{key:"getFixedT",value:function(t,s,n){var i=this,a=function u(o,g){var l;if(R(g)!=="object"){for(var p=arguments.length,h=new Array(p>2?p-2:0),f=2;f1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var i=n.lng||this.resolvedLanguage||this.languages[0],a=!!this.options&&this.options.fallbackLng,u=this.languages[this.languages.length-1];if(i.toLowerCase()==="cimode")return!0;var o=function(l,p){var h=s.services.backendConnector.state["".concat(l,"|").concat(p)];return h===-1||h===2};if(n.precheck){var g=n.precheck(this,o);if(g!==void 0)return g}return!!this.hasResourceBundle(i,t)||!(this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages))||!(!o(i,t)||a&&!o(u,t))}},{key:"loadNamespaces",value:function(t,s){var n=this,i=Ie();return this.options.ns?(typeof t=="string"&&(t=[t]),t.forEach(function(a){n.options.ns.indexOf(a)<0&&n.options.ns.push(a)}),this.loadResources(function(a){i.resolve(),s&&s(a)}),i):(s&&s(),Promise.resolve())}},{key:"loadLanguages",value:function(t,s){var n=Ie();typeof t=="string"&&(t=[t]);var i=this.options.preload||[],a=t.filter(function(u){return i.indexOf(u)<0});return a.length?(this.options.preload=i.concat(a),this.loadResources(function(u){n.resolve(),s&&s(u)}),n):(s&&s(),Promise.resolve())}},{key:"dir",value:function(t){if(t||(t=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!t)return"rtl";var s=this.services&&this.services.languageUtils||new mt(bt());return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(s.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}},{key:"cloneInstance",value:function(){var t=this,s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Re,i=N(N(N({},this.options),s),{isClone:!0}),a=new e(i);return s.debug===void 0&&s.prefix===void 0||(a.logger=a.logger.clone(s)),["store","services","language"].forEach(function(u){a[u]=t[u]}),a.services=N({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new ft(a.services,a.options),a.translator.on("*",function(u){for(var o=arguments.length,g=new Array(o>1?o-1:0),l=1;l0&&arguments[0]!==void 0?arguments[0]:{},arguments.length>1?arguments[1]:void 0)});var U,Ct,Ot,M=Ge.createInstance();M.createInstance=Ge.createInstance,M.createInstance,M.dir,M.init,M.loadResources,M.reloadResources,M.use,M.changeLanguage,M.getFixedT,M.t,M.exists,M.setDefaultNamespace,M.hasLoadedNamespace,M.loadNamespaces,M.loadLanguages;class ge extends F{constructor(){super(),this.languages=null,this.keyMap={}}static getInstance(){return ge.instance||(ge.instance=new ge),ge.instance}provideLanguages(e){var t;Y||(this.languages=e,!((t=e["zh-CN"])===null||t===void 0)&&t.Chat&&this.setKeyMap(e["zh-CN"]),console.log("TUITranslateService.provideLanguages ok."))}useI18n(e){var t;if(Y)return;if(!this.languages)return void console.warn("TUITranslateService.useI18next not have messages.");const s={};for(const[i,a]of Object.entries(this.languages))s[i==="zh_cn"?"zh":i]={translation:a};M.init({compatibilityJSON:"v3",lng:e||"zh",fallbackLng:"zh",detection:{order:["querystring","navigator"],caches:["localStorage","cookie"]},resources:s});let n=this.normalizeLanguageKey(e||"zh");(t=this.getEngine().TUIReport)===null||t===void 0||t.reportFeature(201,n)}changeLanguage(e){let t=this.normalizeLanguageKey(e);return this.getEngine().TUIReport.reportFeature(201,t),M.changeLanguage(e)}normalizeLanguageKey(e){return e.includes("en")?"en-us":e.includes("tw")?"zh-tw":e.includes("zh")||e.includes("cn")?"zh-cn":e.includes("ko")||e.includes("kr")?"ko-kr":e.includes("ja")||e.includes("jp")?"ja-jp":"other-"+e}t(e){if(!this.languages){let s=e;return!D(e)&&e.indexOf(".")>-1&&(s=e.split(".").pop()||""),s}const t=this.keyMap[e];return t?M.t(t):M.t(e)}setKeyMap(e,t){for(const s in e)if(Object.prototype.hasOwnProperty.call(e,s)){const n=t?`${t}.${s}`:s;if(e[s]&&typeof e[s]=="object"&&!Array.isArray(e[s])&&e[s]!==null)this.setKeyMap(e[s],n);else{let i=t?`${t}.${e[s]}`:e[s];i=this.replaceKey(i),this.keyMap[i]=`${t}.${s}`}}}replaceKey(e){return e.startsWith("Chat")?e.replace("Chat","TUIChat"):e.startsWith("Conversation")?e.replace("Conversation","TUIConversation"):e.startsWith("Message")?e.replace("Message","message.tip"):e.startsWith("Call")?e.replace("Call","message.custom"):e}}class te extends F{constructor(){super(),this.serv="TUIConversationService"}static getInstance(){return te.instance||(te.instance=new te),te.instance}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.CONVERSATION_LIST_UPDATED,this.onConversationListUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED,this.onTotalUnreadCountUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_RECEIVED,this.onMessageReceived.bind(this)),this.getConversationInitData()}onConversationListUpdated(e){const t=this.filterSystemConversation(e);this.getEngine().TUIStore.update(c.CONV,"conversationList",t),this.updateCurrentConversation()}onTotalUnreadCountUpdated(e){this.getEngine().TUIStore.update(c.CONV,"totalUnreadCount",e)}onMessageReceived(e){const t=this.getEngine(),s=this.getEngine().TUIStore.getData(c.CONV,"conversationList");let n=!1;for(let i=0;i0){this.getEngine().TUIStore.update(c.CONV,"operationTypeMap",{conversationID:u,operationType:0}),n=!0;break}}}}if(n){this.getEngine().TUIStore.update(c.CONV,"conversationList",s);const i=this.getEngine().TUIStore.getData(c.CONV,"currentConversationID")||"",a=this.findConversation(i);a&&this.getEngine().TUIStore.update(c.CONV,"currentConversation",a)}}getConversationInitData(){const e=this.getEngine();e.chat.isReady()&&e.chat.getConversationList().then(t=>{const{conversationList:s,isSyncCompleted:n}=t.data;if(console.log(`${this.serv}.init, getConversationList count:${s.length} isSyncCompleted:${n}`),s.length>0){this.onConversationListUpdated(s);const i=e.chat.getTotalUnreadMessageCount();this.onTotalUnreadCountUpdated(i)}})}switchConversation(e){return j(this,void 0,void 0,function*(){const t=`${this.serv}.switchConversation`,s=this.getEngine();if(!e)return s.TUIStore.reset(c.CHAT,["messageList","isCompleted","nextReqMessageID"]),s.TUIStore.update(c.CONV,"currentConversationID",""),s.TUIStore.update(c.CONV,"currentConversation",null),console.log(`${t} conversationID is empty, conversationID:${e}`),Promise.resolve({});if(!e.startsWith(s.TYPES.CONV_C2C)&&!e.startsWith(s.TYPES.CONV_GROUP))return console.warn(`${t} conversationID is invalid, conversationID:${e}`),Promise.reject({code:q.INVALID_CONV_ID,message:z.INVALID_CONV_ID});const n=s.TUIStore.getData(c.APP,"enableAutoMessageRead"),i=s.TUIStore.getData(c.CONV,"currentConversationID");if(i&&i===e)return n&&this.setMessageRead(i),console.warn(`${t} please check conversationID, conversationID:${e}`),Promise.resolve({code:q.CONV_ID_SAME,message:z.CONV_ID_SAME});const a=yield this.getConversationModel(e);return D(a)?(console.warn(`${t} target conversation is not exist, conversationID:${e}`),Promise.reject({code:q.CONV_NOT_EXIST,message:z.CONV_NOT_EXIST})):(n&&(i&&this.setMessageRead(i),e&&this.setMessageRead(e)),s.TUIStore.reset(c.CHAT,["messageList","isCompleted","nextReqMessageID"]),s.TUIStore.update(c.CONV,"currentConversationID",e),s.TUIStore.update(c.CONV,"currentConversation",a),Promise.resolve(a))})}getConversationModel(e){return j(this,void 0,void 0,function*(){let t=this.findConversation(e);if(D(t))try{const s=yield this.getConversationProfile(e);s.data&&s.data.conversation&&(t=new je(s.data.conversation))}catch{t=void 0}return t})}findConversation(e){let t;const s=this.getEngine().TUIStore.getData(c.CONV,"conversationList");for(let n=0;n{const n=this.getEngine().TUIStore.getData(c.CONV,"currentConversationID");return console.log(`${this.serv}.deleteConversation conversationID:${t} currentConversationID:${n}`),this.getEngine().TUIStore.update(c.CONV,"operationTypeMap",{conversationID:t,operationType:0}),t===n&&(this.getEngine().TUIStore.update(c.CONV,"currentConversationID",""),this.getEngine().TUIStore.update(c.CONV,"currentConversation",null)),s})}pinConversation(e){return this.getEngine().chat.pinConversation(e)}muteConversation(e){return this.getEngine().chat.setMessageRemindType(e)}clearHistoryMessage(e){return this.getEngine().chat.clearHistoryMessage(e).then(t=>(this.getEngine().TUIStore.update(c.CHAT,"messageList",[]),this.getEngine().TUIStore.update(c.CHAT,"nextReqMessageID",""),this.getEngine().TUIStore.update(c.CHAT,"isCompleted",!0),t))}setMessageRead(e){return this.getEngine().chat.setMessageRead({conversationID:e})}setConversationDraft(e){const{conversationID:t,draftInfo:s,draftText:n=""}=e;return this.getEngine().chat.setConversationDraft({conversationID:t,draftText:n||(s?JSON.stringify(s):"")}).then(i=>{const{conversation:a}=i.data;this.updateConversation(a)})}updateConversation(e){let t=!1;const s=this.getEngine().TUIStore.getData(c.CONV,"conversationList");for(let n=0;nt.type!==this.getEngine().TYPES.CONV_SYSTEM)}markConversation(e){return this.getEngine().chat.markConversation(e)}}class Ys{constructor(e){this.TUIUserService=e}getEngine(){return this.TUIUserService.getEngine()}init(){this.getEngine().eventCenter.addEvent(this.getEngine().EVENT.PROFILE_UPDATED,this.onProfileUpdated.bind(this)),this.getEngine().eventCenter.addEvent(this.getEngine().EVENT.BLACKLIST_UPDATED,this.onBlacklistUpdated.bind(this)),this.getUserProfileInitData()}onProfileUpdated(e){const t=this.getEngine(),s=t.TUIStore.getData(c.USER,"userProfile");e.forEach(n=>{n.userID===s.userID&&t.TUIStore.update(c.USER,"userProfile",n)})}onBlacklistUpdated(e){const t=this.getEngine();this.getBlacklistProfile(e).then(s=>{t.TUIStore.update(c.USER,"userBlacklist",s)})}getUserProfileInitData(){const e=this.getEngine();e.chat.isReady()&&e.chat.getBlacklist().then(t=>{const s=t.data||[];console.log(`TUIUserProfileHandler.init, getBlacklist count:${s.length}`),s.length>0&&this.onBlacklistUpdated(s)})}getBlacklistProfile(e){const t=[];let s=0;for(;s{n.push(this.TUIUserService.getUserProfile({userIDList:a}))});const i=[];return Promise.all(n).then(a=>(a.forEach(u=>{const o=u.data.map(g=>{const{userID:l,nick:p,avatar:h}=g;return{userID:l,nick:p,avatar:h}});i.push(...o)}),i))}getUserProfile(e){const t=this.getEngine();return D(e)?t.chat.getMyProfile().then(s=>(t.TUIStore.update(c.USER,"userProfile",s.data),s)).catch(s=>Promise.reject(s)):t.chat.getUserProfile(e)}updateMyProfile(e){return this.getEngine().chat.updateMyProfile(e)}addToBlacklist(e){return this.getEngine().chat.addToBlacklist(e)}removeFromBlacklist(e){return this.getEngine().chat.removeFromBlacklist(e)}}function Vt(r,e,t=!0){(function(s,n){Ke?qe.setStorageSync(s,n):Yt()&&localStorage.setItem(s,JSON.stringify(n))})(t?Ht(r):r,e)}function $t(r,e=!0){try{return function(t){if(Ke)return qe.getStorageSync(t);if(Yt()){const s=localStorage.getItem(t);if(s!=="undefined")return JSON.parse(s)}}(e?Ht(r):r)}catch(t){return void console.warn("Storage.getStorageItem error:",t)}}function Ht(r){return`chat_engine_${r}`}function Yt(){return navigator&&navigator.cookieEnabled&&localStorage}class Bs{constructor(e){this.TUIUserService=e}getEngine(){return this.TUIUserService.getEngine()}init(){const e=this.getEngine(),t=$t("displayOnlineStatus")||!1;e.TUIStore.update(c.USER,"displayOnlineStatus",t),e.eventCenter.addEvent(e.EVENT.USER_STATUS_UPDATED,this.onUserStatusUpdated.bind(this)),this.onConversationListUpdated()}onConversationListUpdated(){const e=this.getEngine();e.TUIStore.watch(c.CONV,{conversationList:()=>{const t=e.TUIStore.getData(c.APP,"enabledOnlineStatus"),s=e.TUIStore.getData(c.USER,"displayOnlineStatus");t&&s&&this.startToSubscribe()}})}onUserStatusUpdated(e){this.getEngine().TUIStore.update(c.USER,"userStatusList",e)}switchUserStatus(e){const t=this.getEngine(),{displayOnlineStatus:s=!1}=e;t.TUIStore.update(c.USER,"displayOnlineStatus",s),Vt("displayOnlineStatus",s);const n=t.TUIStore.getData(c.APP,"enabledOnlineStatus");n?s===!0?this.startToSubscribe():this.unsubscribeUserStatus().catch(i=>{console.warn("UserStatusHandler.switchUserStatus error:",i)}):console.warn(`UserStatusHandler.switchUserStatus enabledOnlineStatus:${n} displayOnlineStatus:${s}`)}getUserStatus(e){const t=this.getEngine();return t.chat.getUserStatus(e).then(s=>{const{successUserList:n}=s.data;return n.length>0&&t.TUIStore.update(c.USER,"userStatusList",n),s}).catch(s=>Promise.reject(s))}subscribeUserStatus(e){var t;const s=((t=e==null?void 0:e.userIDList)===null||t===void 0?void 0:t.length)||0;return s===0?(console.warn(`UserStatusHandler.subscribeUserStatus userID count:${s}`),Promise.resolve()):this.getEngine().chat.subscribeUserStatus(e)}unsubscribeUserStatus(e){const t=this.getEngine(),{userIDList:s=[]}=e||{};return t.chat.unsubscribeUserStatus({userIDList:s}).then(n=>{const{failureUserList:i}=n.data,a=[];return s.forEach(u=>{i.includes(u)||a.push({userID:u,statusType:Le.UNSUB_USER})}),t.TUIStore.update(c.USER,"userStatusList",a),n}).catch(n=>Promise.reject(n))}startToSubscribe(){const e=this.getEngine(),t=e.TUIStore.getData(c.CONV,"conversationList"),s=e.TUIStore.getData(c.USER,"userStatusList"),n=[];t.forEach(i=>{if(i.type===e.TYPES.CONV_C2C){const a=i.conversationID.replace(e.TYPES.CONV_C2C,"");s.has(a)||n.push(a)}}),n.length!==0&&e.chat.isReady()&&(this.subscribeUserStatus({userIDList:n}).catch(i=>{console.warn("UserStatusHandler.startToSubscribe,",i)}),this.getUserStatus({userIDList:n}).catch(i=>{console.warn("UserStatusHandler.startToSubscribe,",i)}))}}class ce extends F{constructor(){super(),this.userProfileHandler=new Ys(this),this.userStatusHandler=new Bs(this)}static getInstance(){return ce.instance||(ce.instance=new ce),ce.instance}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.KICKED_OUT,this.onKickedOut.bind(this)),e.eventCenter.addEvent(e.EVENT.NET_STATE_CHANGE,this.onNetStateChange.bind(this)),this.userProfileHandler.init(),this.userStatusHandler.init(),this.initMessageReadReceipt()}onKickedOut(e){this.getEngine().TUIStore.update(c.USER,"kickedOut",e.type)}onNetStateChange(e){this.getEngine().TUIStore.update(c.USER,"netStateChange",e.state)}initMessageReadReceipt(){const e=$t("displayMessageReadReceipt")||!0;this.getEngine().TUIStore.update(c.USER,"displayMessageReadReceipt",e)}switchUserStatus(e){return this.userStatusHandler.switchUserStatus(e)}switchMessageReadStatus(e){this.getEngine().TUIStore.update(c.USER,"displayMessageReadReceipt",e),Vt("displayMessageReadReceipt",e)}getUserProfile(e){return this.userProfileHandler.getUserProfile(e)}updateMyProfile(e){return this.userProfileHandler.updateMyProfile(e)}addToBlacklist(e){return this.userProfileHandler.addToBlacklist(e)}removeFromBlacklist(e){return this.userProfileHandler.removeFromBlacklist(e)}getUserStatus(e){return this.userStatusHandler.getUserStatus(e)}subscribeUserStatus(e){return this.userStatusHandler.subscribeUserStatus(e)}unsubscribeUserStatus(e){return this.userStatusHandler.unsubscribeUserStatus(e)}}class Ks{constructor(e){this.TUIChatService=e,this.userShowNameMap=new Map,this.requestedUserMap=new Map}getEngine(){return this.TUIChatService.getEngine()}t(e){return this.getEngine().TUITranslate.t(e)}handleTextMessage(e){return{text:this.decodeText(e.payload)}}handleFaceMessage(e){const t={name:"",url:"",type:""};return e.payload.data.indexOf("@custom")>-1?(t.name=e.payload.data,t.type="custom",t):(t.name=e.payload.data.indexOf("@2x")<0?`${e.payload.data}@2x`:e.payload.data,t.url=`${as}${t.name}.png`,t)}handleLocationMessage(e){const t={lon:"",lat:"",href:"",url:"",description:""};return t.lon=e.payload.longitude.toFixed(6),t.lat=e.payload.latitude.toFixed(6),t.href=`${os}pointx=${t.lon}&pointy=${t.lat}&name=${e.payload.description}`,t.url=`${us}center=${t.lat},${t.lon}&zoom=10&size=300*150&maptype=roadmap&markers=size:large|color:0xFFCCFF|label:k|${t.lat},${t.lon}&key=UBNBZ-PTP3P-TE7DB-LHRTI-Y4YLE-VWBBD`,t.description=e.payload.description,t}handleImageMessage(e){return{url:e.payload.imageInfoArray[0].url,width:e.payload.imageInfoArray[0].width,height:e.payload.imageInfoArray[0].height}}handleAudioMessage(e){return{url:e.payload.url,second:e.payload.second}}handleVideoMessage(e){return{url:e.payload.videoUrl,snapshotUrl:e.payload.snapshotUrl,snapshotWidth:e.payload.snapshotWidth,snapshotHeight:e.payload.snapshotHeight}}handleFileMessage(e){return{url:e.payload.fileUrl,name:e.payload.fileName,size:ts(e.payload.fileSize)}}handleCustomMessage(e){var t;const s=this.handleCreateGroupCustomMessage(e);return{custom:this.handleCallKitSignaling(e)||s||((t=e==null?void 0:e.payload)===null||t===void 0?void 0:t.extension)||`${this.t("TUIChat.[自定义消息]")}`,businessID:s?"group_create":""}}handleMergeMessage(e){return Object.assign({},e.payload)}handleGroupTipsMessage(e){var t,s,n,i,a,u;const o=this.getEngine(),g={text:""};let l=(e==null?void 0:e.nick)||((s=(t=e==null?void 0:e.payload)===null||t===void 0?void 0:t.userIDList)===null||s===void 0?void 0:s.join(","));switch(((i=(n=e==null?void 0:e.payload)===null||n===void 0?void 0:n.memberList)===null||i===void 0?void 0:i.length)>0&&(l="",(u=(a=e==null?void 0:e.payload)===null||a===void 0?void 0:a.memberList)===null||u===void 0||u.map(p=>{const h=(p==null?void 0:p.nick)||(p==null?void 0:p.userID);return l+=`${this.substringByLength(h)},`,p}),l=l==null?void 0:l.slice(0,-1)),e.payload.operationType){case o.TYPES.GRP_TIP_MBR_JOIN:g.text=`${l} ${this.t("message.tip.加入群组")}`;break;case o.TYPES.GRP_TIP_MBR_QUIT:g.text=`${this.t("message.tip.群成员")}:${l} ${this.t("message.tip.退出群组")}`;break;case o.TYPES.GRP_TIP_MBR_KICKED_OUT:g.text=`${this.t("message.tip.群成员")}:${l} ${this.t("message.tip.被")}${this.t("message.tip.踢出群组")}`;break;case o.TYPES.GRP_TIP_MBR_SET_ADMIN:g.text=`${this.t("message.tip.群成员")}:${l} ${this.t("message.tip.成为管理员")}`;break;case o.TYPES.GRP_TIP_MBR_CANCELED_ADMIN:g.text=`${this.t("message.tip.群成员")}:${l} ${this.t("message.tip.被撤销管理员")}`;break;case o.TYPES.GRP_TIP_GRP_PROFILE_UPDATED:g.text=this.handleGroupProfileUpdated(e);break;case o.TYPES.GRP_TIP_MBR_PROFILE_UPDATED:for(const p of e.payload.memberList)p.muteTime>0?g.text=`${this.t("message.tip.群成员")}:${l} ${this.t("message.tip.被禁言")}`:g.text=`${this.t("message.tip.群成员")}:${l} ${this.t("message.tip.被取消禁言")}`;break;default:g.text=`[${this.t("message.tip.群提示消息")}]`}return g}handleGroupSystemMessage(e){const t=e.payload.groupProfile.name||e.payload.groupProfile.groupID,s={text:""};switch(e.payload.operationType){case 1:s.text=`${e.payload.operatorID} ${this.t("message.tip.申请加入群组")}:${t}`;break;case 2:s.text=`${this.t("message.tip.成功加入群组")}:${t}`;break;case 3:s.text=`${this.t("message.tip.申请加入群组")}:${t} ${this.t("message.tip.被拒绝")}`;break;case 4:s.text=`${this.t("message.tip.你被管理员")}${e.payload.operatorID} ${this.t("message.tip.踢出群组")}:${t}`;break;case 5:s.text=`${this.t("message.tip.群")}:${t} ${this.t("message.tip.被")} ${e.payload.operatorID} ${this.t("message.tip.解散")}`;break;case 6:s.text=`${e.payload.operatorID} ${this.t("message.tip.创建群")}:${t}`;break;case 7:case 12:s.text=`${e.payload.operatorID} ${this.t("message.tip.邀请你加群")}:${t}`;break;case 8:s.text=`${this.t("message.tip.你退出群组")}:${t}`;break;case 9:s.text=`${this.t("message.tip.你被")}${e.payload.operatorID} ${this.t("message.tip.设置为群")}:${t} ${this.t("message.tip.的管理员")}`;break;case 10:s.text=`${this.t("message.tip.你被")}${e.payload.operatorID} ${this.t("message.tip.撤销群")}:${t} ${this.t("message.tip.的管理员身份")}`;break;case 13:s.text=`${e.payload.operatorID} ${this.t("message.tip.同意加群")}:${t}`;break;case 14:s.text=`${e.payload.operatorID} ${this.t("message.tip.拒接加群")}:${t}`;break;case 255:s.text=`${this.t("message.tip.自定义群系统通知")}: ${e.payload.userDefinedField}`;break;default:s.text="未解析的群系统通知"}return s}handleCallKitSignaling(e){var t,s,n,i,a,u,o,g,l,p;const h=_(e.payload.data);if((h==null?void 0:h.businessID)!==1)return"";const f=_(h==null?void 0:h.data),m=e.fromAccount||e.from,E=this.getEngine().TUIFriend.getFriendRemark([m]),d=this.getEngine().getMyUserID();let T=E[m]||e.nameCard||e.nick||m;switch(T=this.substringByLength(T),h==null?void 0:h.actionType){case 1:return((t=f==null?void 0:f.data)===null||t===void 0?void 0:t.cmd)!=="audioCall"&&((s=f==null?void 0:f.data)===null||s===void 0?void 0:s.cmd)!=="videoCall"||!(h!=null&&h.groupID)?((n=f==null?void 0:f.data)===null||n===void 0?void 0:n.cmd)==="hangup"?h!=null&&h.groupID?`${this.t("message.custom.通话结束")}`:`${this.t("message.custom.通话时长")}:${function(S){const v=S;let b,y,I,k="";return v>=3600?(b=parseInt(""+v/3600,10)<10?`0${parseInt(""+v/3600,10)}`:parseInt(""+v/3600,10),y=parseInt(""+v%60/60,10)<10?`0${parseInt(""+v%60/60,10)}`:parseInt(""+v%60/60,10),I=v%3600<10?"0"+v%3600:v%3600,I>60&&(y=parseInt(""+I/60,10)<10?`0${parseInt(""+I/60,10)}`:parseInt(""+I/60,10),I=I%60<10?"0"+I%60:I%60),k=`${b}:${y}:${I}`):v>=60&&v<3600?(y=parseInt(""+v/60,10)<10?`0${parseInt(""+v/60,10)}`:parseInt(""+v/60,10),I=v%60<10?"0"+v%60:v%60,k=`00:${y}:${I}`):v<60&&(I=v<10?`0${v}`:v,k=`00:00:${I}`),k}(f==null?void 0:f.call_end)}`:((i=f==null?void 0:f.data)===null||i===void 0?void 0:i.cmd)==="switchToAudio"?`${this.t("message.custom.切换语音通话")}`:((a=f==null?void 0:f.data)===null||a===void 0?void 0:a.cmd)==="switchToVideo"?`${this.t("message.custom.切换视频通话")}`:`${this.t("message.custom.发起通话")}`:`${T} ${this.t("message.custom.发起通话")}`;case 2:return h!=null&&h.groupID?`${T} ${this.t("message.custom.取消通话")}`:this.isOldUIKit("message.custom.已取消")?this.t("message.custom.取消通话"):(h==null?void 0:h.inviter)===d?this.t("message.custom.已取消"):this.t("message.custom.对方已取消");case 3:return((u=f==null?void 0:f.data)===null||u===void 0?void 0:u.cmd)==="switchToAudio"?`${this.t("message.custom.切换语音通话")}`:((o=f==null?void 0:f.data)===null||o===void 0?void 0:o.cmd)==="switchToVideo"?`${this.t("message.custom.切换视频通话")}`:h!=null&&h.groupID?`${T} ${this.t("message.custom.已接听")}`:this.t("message.custom.已接听");case 4:return h!=null&&h.groupID?`${T} ${this.t("message.custom.拒绝通话")}`:this.isOldUIKit("message.custom.已拒绝")?this.t("message.custom.拒绝通话"):(f==null?void 0:f.line_busy)==="line_busy"||(f==null?void 0:f.data.message)==="lineBusy"?(h==null?void 0:h.inviter)===d?this.t("message.custom.对方忙线中"):this.t("message.custom.忙线未接听"):(h==null?void 0:h.inviter)===d?this.t("message.custom.对方已拒绝"):this.t("message.custom.已拒绝");case 5:if(((g=f==null?void 0:f.data)===null||g===void 0?void 0:g.cmd)==="switchToAudio")return`${this.t("message.custom.切换语音通话")}`;if(((l=f==null?void 0:f.data)===null||l===void 0?void 0:l.cmd)==="switchToVideo")return`${this.t("message.custom.切换视频通话")}`;if(h!=null&&h.groupID){if(m===(h==null?void 0:h.inviter)){this.handleCallkitTimeoutSignaling(h.inviteeList);let S="";return(p=h.inviteeList)===null||p===void 0||p.forEach(v=>{const b=this.userShowNameMap.get(v)||v;S+=`${this.substringByLength(b)}、`}),S=S.substring(0,S.lastIndexOf("、")),`${S} ${this.t("message.custom.无应答")}`}return`${T} ${this.t("message.custom.无应答")}`}return this.isOldUIKit("message.custom.对方无应答")?this.t("message.custom.无应答"):(h==null?void 0:h.inviter)===d?this.t("message.custom.对方无应答"):this.t("message.custom.超时无应答");default:return""}}handleCreateGroupCustomMessage(e){let t;const s=_(e.payload.data);return(s==null?void 0:s.businessID)==="group_create"&&(t=`${s.opUser} ${s.content}`),t}decodeText(e){const t=[];let s=e.text,n=-1,i=-1;for(;s!=="";)switch(n=s.indexOf("["),i=s.indexOf("]"),n){case 0:if(i===-1)t.push({name:"text",text:s}),s="";else{const a=s.slice(0,i+1);a.indexOf("@custom")>-1?(t.push({name:"img",src:"",type:"custom",emojiKey:a}),s=s.substring(i+1)):st[a]?(t.push({name:"img",src:rs+st[a],emojiKey:a}),s=s.substring(i+1)):(t.push({name:"text",text:"["}),s=s.slice(1))}break;case-1:t.push({name:"text",text:s}),s="";break;default:t.push({name:"text",text:s.slice(0,n)}),s=s.substring(n)}return t}handleGroupProfileUpdated(e){const{nick:t,payload:s}=e,{newGroupProfile:n,memberList:i,operatorID:a}=s;let u="";const o=t||a,g=Object.keys(n)[0];switch(g){case"muteAllMembers":u=n[g]?`${this.t("message.tip.管理员")} ${o} ${this.t("message.tip.开启全员禁言")}`:`${this.t("message.tip.管理员")} ${o} ${this.t("message.tip.取消全员禁言")}`;break;case"ownerID":u=`${i[0].nick||i[0].userID} ${this.t("message.tip.成为新的群主")}`;break;case"groupName":u=`${o} ${this.t("message.tip.修改群名为")} ${n[g]}`;break;case"notification":u=this.isOldUIKit("message.tip.把群公告修改为")?`${o} ${this.t("message.tip.发布新公告")}`:`${o} ${this.t("message.tip.把群公告修改为")} "${n[g]}"`}return u}handleCallkitTimeoutSignaling(e=[]){if(e.length===0)return;const t=this.getEngine().TUIFriend.getFriendRemark(e),s=[];e.forEach(n=>{const i=t[n];i?this.userShowNameMap.set(n,i):this.requestedUserMap.has(n)||(s.push(n),this.requestedUserMap.set(n,1))}),s.length>0&&this.getEngine().TUIUser.getUserProfile({userIDList:s}).then(n=>{(n.data||[]).forEach(i=>{const{userID:a,nick:u}=i,o=u||a;this.userShowNameMap.set(a,o)})}).catch(()=>{})}substringByLength(e,t=12){return e.length>t?`${e.slice(0,t)}...`:e}isOldUIKit(e){var t;const s=e.lastIndexOf("."),n=e.slice(0,s+1);return(t=this.t(e))===null||t===void 0?void 0:t.startsWith(n)}}class qs{constructor(e){this.TUIChatService=e,this.typingTo="",this.timer=null}getEngine(){return this.TUIChatService.getEngine()}clearTypingStatus(){this.getEngine().TUIStore.getData(c.CHAT,"typingStatus")&&this.getEngine().TUIStore.update(c.CHAT,"typingStatus",!1),this.timer&&clearTimeout(this.timer),this.timer=null}handleLastMessage(e){const t=this.getEngine(),s=t.TUIStore.getData(c.CHAT,"typingStatus");if(e.type===this.getEngine().TYPES.MSG_CUSTOM&&e.flow==="in"){const n=_(e.payload.data);if(n.businessID===P.BUSINESS_ID){const{typingStatus:i,userAction:a}=n;if(i===P.STATUS_START||a===P.ACTION_START_ID)return s?(this.timer&&clearTimeout(this.timer),this.timer=null):t.TUIStore.update(c.CHAT,"typingStatus",!0),this.timer=setTimeout(()=>{this.clearTypingStatus()},3e4),t.TUIStore.getData(c.CHAT,"typingStatus");i!==P.STATUS_END&&a!==P.ACTION_END_ID||this.clearTypingStatus()}}}filterTypingMessage(e=[]){return e.length===0?[]:(this.getEngine().TUIStore.getData(c.APP,"enableTyping")&&this.handleLastMessage(e[e.length-1]),e.filter(t=>t.type===this.getEngine().TYPES.MSG_CUSTOM?_(t.payload.data).businessID!==P.BUSINESS_ID:!0))}createTypingMessage(e=P.STATUS_END,t=""){const{BUSINESS_ID:s,STATUS_START:n,VERSION:i,ACTION_START_ID:a,ACTION_END_ID:u,ACTION_START:o,ACTION_END:g,NEED_TYPING:l}=P;return{to:t,conversationType:this.getEngine().TYPES.CONV_C2C,payload:{data:JSON.stringify({businessID:s,typingStatus:e,version:i,userAction:e===n?a:u,actionParam:e===n?o:g}),description:"",extension:""},cloudCustomData:JSON.stringify({messageFeature:{needTyping:l,version:i}})}}sendTyping(e=!1,t=""){if(e){this.typingTo=t;const s=this.createTypingMessage(P.STATUS_START,t);this.getEngine().TUIChat.sendCustomMessage(s,{onlineUserOnly:!0})}else this.sendTypingEnd()}sendTypingEnd(){if(this.typingTo){const e=this.createTypingMessage(P.STATUS_END,this.typingTo);this.getEngine().TUIChat.sendCustomMessage(e,{onlineUserOnly:!0})}this.typingTo=""}}class zs{constructor(e){this.TUIChatService=e}getEngine(){return this.TUIChatService.getEngine()}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.MESSAGE_READ_RECEIPT_RECEIVED,this.onMessageReadReceiptReceived.bind(this))}onMessageReadReceiptReceived(e){const t=this.getEngine(),s=t.TUIStore.getData(c.CONV,"currentConversationID"),n=[];e.forEach(i=>{const{messageID:a}=i,u=t.chat.findMessage(a);u&&s===u.conversationID&&n.push(u)}),n.length>0&&t.TUIChat.updateMessageList(n,"edit")}sendMessageReadReceipt(e){const t=[];return e.forEach(s=>{const n=s.getMessage();t.push(n)}),this.getEngine().chat.sendMessageReadReceipt(t)}getGroupMessageReadMemberList(e){const t=e.message.getMessage(),s=Object.assign(Object.assign({},e),{message:t});return this.getEngine().chat.getGroupMessageReadMemberList(s)}getMessageReadReceiptList(e){const t=this.getEngine(),s=t.TUIStore.getData(c.APP,"enabledMessageReadReceipt"),n=t.TUIStore.getData(c.USER,"displayMessageReadReceipt");!s||!n||e.length===0||e[0].conversationType!==t.TYPES.CONV_GROUP||t.chat.getMessageReadReceiptList(e).then(i=>{const{messageList:a}=i.data;this.TUIChatService.updateMessageList(a,"edit")}).catch(i=>{console.warn(`ReadReceiptHandler.getMessageReadReceiptList error:${i.message}`)})}}class le extends F{constructor(){super(),this.serv="TUIChatService",this.messageHandler=new Ks(this),this.typingHandler=new qs(this),this.readReceiptHandler=new zs(this),this.isSwitching=!0,this.delayGetHoppingFunction=void 0,this.hoppingConfigMap=new Map}static getInstance(){return le.instance||(le.instance=new le),le.instance}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.MESSAGE_RECEIVED,this.onMessageReceived.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_MODIFIED,this.onMessageModified.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_REVOKED,this.onMessageRevoked.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_READ_BY_PEER,this.onMessageReadByPeer.bind(this)),e.eventCenter.addEvent(e.EVENT.MESSAGE_REACTIONS_UPDATED,this.onMessageReactionsUpdated.bind(this)),this.onCurrentConversationIDUpdated(),this.onMessageSource(),this.readReceiptHandler.init()}onMessageReceived(e){this.updateMessageList(e,"received"),this.getEngine().TUIStore.update(c.CHAT,"newMessageList",e)}onMessageModified(e){this.updateMessageList(e,"edit")}onMessageRevoked(e){this.updateMessageList(e,"edit")}onMessageReadByPeer(e){this.updateMessageList(e,"edit")}onMessageReactionsUpdated(e){this.updateMessageReactionList([e])}onCurrentConversationIDUpdated(){const e=this.getEngine();e.TUIStore.watch(c.CONV,{currentConversationID:t=>{this.isSwitching=!0,this.delayGetHoppingFunction=void 0,this.hoppingConfigMap.clear(),e.TUIStore.reset(c.CHAT),this.typingHandler.clearTypingStatus(),this.typingHandler.sendTypingEnd(),Gt(t)||this.getMessageList().finally(()=>{this.isSwitching=!1,this.delayGetHoppingFunction&&this.delayGetHoppingFunction()})}})}onMessageSource(){const e=this.getEngine();e.TUIStore.watch(c.CHAT,{messageSource:t=>{const s=this.getStoreData(c.CONV,"currentConversationID");if(!s||t&&t.conversationID!==s)return;if(D(t))return this.hoppingConfigMap.clear(),e.TUIStore.update(c.CHAT,"messageList",[]),e.TUIStore.update(c.CHAT,"nextReqMessageID",""),e.TUIStore.update(c.CHAT,"isCompleted",!1),void this.getMessageList();const n=this.getStoreData(c.CHAT,"messageList");n&&n.find(i=>t&&i.ID===t.ID)||(this.isSwitching?this.delayGetHoppingFunction=this.getMessageListHoppingForDown:this.getMessageListHoppingForDown())}})}getMessageListHoppingForDown(){const e=this.getStoreData(c.CHAT,"messageList"),{conversationID:t,sequence:s,time:n,ID:i}=this.getStoreData(c.CHAT,"messageSource");if(e&&e.find(u=>i&&u.ID===i))return;const a=this.getEngine();a.TUIStore.update(c.CHAT,"messageList",[]),a.TUIStore.update(c.CHAT,"nextReqMessageID",""),a.TUIStore.update(c.CHAT,"isCompleted",!1),this.getMessageListHopping({conversationID:t,sequence:s,time:n,direction:1})}getStoreData(e,t){return this.getEngine().TUIStore.getData(e,t)}sendMessage(e,t){this.updateMessageList([e],"send");const s=this.getEngine().chat.sendMessage(e,t);return this.getResponse(s)}getResponse(e,t=!0,s=!0){return e.then(n=>{const i=n.data.messageList?n.data.messageList:[n.data.message];return t&&this.updateMessageList(i,"edit"),n}).catch(n=>{var i;return s&&(!((i=n==null?void 0:n.data)===null||i===void 0)&&i.message)&&this.updateMessageList([n.data.message],"edit"),Promise.reject(n)})}updateMessageList(e,t=""){if(this.getStoreData(c.CHAT,"messageSource")&&t!=="unshift"&&t!=="edit")return;const s=this.getStoreData(c.CHAT,"messageList"),n=this.updateTargetMessageList(e,s,t);this.getEngine().TUIStore.update(c.CHAT,"messageList",n)}updateTargetMessageList(e,t,s=""){const n=this.getStoreData(c.CONV,"currentConversationID");let i=e.filter(g=>g.conversationID===n);if(i=this.handleC2CCallSignaling(i),!s||i.length===0)return t;const a=t||[];let u=[];if(s==="send"||s==="push"||s==="received"){const g=this.getStoreData(c.CHAT,"userInfo");Object.keys(g).length>0&&this.updateLocalMessage(i,g)}const o=this.getStoreData(c.APP,"enableAutoMessageRead");switch(s){case"edit":for(const g of t){const l=i.find(p=>p.ID===g.ID);u.push(l||g)}break;case"resend":u=a.filter(g=>g.ID!==i[0].ID).concat(i);break;case"send":u=a.concat(this.typingHandler.filterTypingMessage(i));break;case"push":u=a.concat(this.typingHandler.filterTypingMessage(i)),this.getEngine().chat.setMessageRead({conversationID:n});break;case"received":u=a.concat(this.typingHandler.filterTypingMessage(i)),u=this.sortMessageList(u),o&&this.getEngine().chat.setMessageRead({conversationID:n});break;case"unshift":u=i.filter(g=>a.length===0||!a.find(l=>l.ID===g.ID)),u.push(...a),u=this.sortMessageList(u)}return u}enterTypingState(){this.getStoreData(c.APP,"enableTyping")&&this.sendTyping(!0)}leaveTypingState(){this.getStoreData(c.APP,"enableTyping")&&this.sendTyping(!1)}sendTyping(e){const t=this.getEngine(),s=this.getStoreData(c.CONV,"currentConversationID");if(!s.startsWith(t.TYPES.CONV_C2C))return;const n=s.replace(t.TYPES.CONV_C2C,"");if(e){const i=this.getStoreData(c.CHAT,"messageList").filter(u=>u.flow==="in");if(i.length===0)return;const a=1e3*i[i.length-1].time;if(new Date().getTime()-a>3e4)return}this.typingHandler.sendTyping(e,n)}quoteMessage(e){var t;return this.getEngine().TUIStore.update(c.CHAT,"quoteMessage",{message:e,type:"quote"}),(t=this.getEngine().TUIReport)===null||t===void 0||t.reportFeature(205),e}replyMessage(e){return this.getEngine().TUIStore.update(c.CHAT,"quoteMessage",{message:e,type:"reply"}),e}getCurrentConvInfo(){const{conversationID:e="",type:t}=this.getStoreData(c.CONV,"currentConversation")||{};return{to:e.replace(t,""),conversationType:t}}t(e){return this.getEngine().TUITranslate.t(e)||e}getMessageAbstractAndType(e){var t,s;const n=this.getEngine(),i={abstract:"",type:0};switch(e.type){case n.TYPES.MSG_TEXT:i.abstract=(t=e==null?void 0:e.payload)===null||t===void 0?void 0:t.text,i.type=1;break;case n.TYPES.MSG_CUSTOM:i.abstract="[自定义消息]",i.type=2;break;case n.TYPES.MSG_IMAGE:i.abstract="[图片]",i.type=3;break;case n.TYPES.MSG_AUDIO:i.abstract="[语音]",i.type=4;break;case n.TYPES.MSG_VIDEO:i.abstract="[视频]",i.type=5;break;case n.TYPES.MSG_FILE:i.abstract="[文件]",i.type=6;break;case n.TYPES.MSG_LOCATION:i.type=7;break;case n.TYPES.MSG_FACE:i.abstract="[表情]",i.type=8;break;case n.TYPES.MSG_GRP_TIP:i.type=9;break;case n.TYPES.MSG_MERGER:i.abstract=(s=e==null?void 0:e.payload)===null||s===void 0?void 0:s.title,i.type=10}return i}genMessageReply(e,t){if(t!=="reply"&&t!=="quote")return{};const{abstract:s,type:n}=this.getMessageAbstractAndType(e),i={messageAbstract:s,messageSender:e.nick||e.from,messageID:e.ID},a=Object.assign(Object.assign({},i),{messageType:n,messageTime:e==null?void 0:e.time,messageSequence:e==null?void 0:e.sequence,version:1});if(t==="reply"&&(a.messageRootID=e.ID,e.cloudCustomData)){const u=_(e.cloudCustomData);u.messageReply&&u.messageReply.messageRootID&&(a.messageRootID=u.messageReply.messageRootID)}return{messageReply:a,messageReplyRoot:i}}getMessageInfo(e,t,s){const{messageReply:n,messageReplyRoot:i}=this.genMessageReply(t,s),a=e.cloudCustomData?_(e.cloudCustomData):{};let u;if(a.messageReply?a.messageReply=Object.assign(Object.assign({},n),a.messageReply):a.messageReply=n,s==="reply"){const{messageRootID:g}=n;u=this.getEngine().chat.findMessage(g);const l=u!=null&&u.cloudCustomData?_(u.cloudCustomData):{};l.messageReplies||(l.messageReplies={}),o=l.messageReplies.replies,(typeof Array.isArray=="function"?Array.isArray(o):Object.prototype.toString.call(o).match(/^\[object (.*)\]$/)[1].toLowerCase()==="array")||(l.messageReplies.replies=[]),l.messageReplies.replies.push(i),u.cloudCustomData=JSON.stringify(l)}var o;return{cloudCustomData:JSON.stringify(a),rootMessage:u}}sendTextMessage(e,t){const s=this.getEngine(),{message:n,type:i}=this.getStoreData(c.CHAT,"quoteMessage");let a={cloudCustomData:e.cloudCustomData||"",rootMessage:void 0};n&&(a=this.getMessageInfo(e,n,i));const u=s.chat.createTextMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{cloudCustomData:a.cloudCustomData}));return this.sendMessage(u,t).then(o=>(a.rootMessage&&this.modifyMessage(a.rootMessage),s.TUIStore.reset(c.CHAT,["quoteMessage"],!0),o))}sendTextAtMessage(e,t){const s=this.getEngine(),{message:n,type:i}=this.getStoreData(c.CHAT,"quoteMessage");let a={cloudCustomData:e.cloudCustomData||"",rootMessage:void 0};n&&(a=this.getMessageInfo(e,n,i));const u=s.chat.createTextAtMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{cloudCustomData:a.cloudCustomData}));return this.sendMessage(u,t).then(o=>(a.rootMessage&&this.modifyMessage(a.rootMessage),s.TUIStore.reset(c.CHAT,["quoteMessage"],!0),o))}sendImageMessage(e,t){const s=this.getEngine().chat.createImageMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{onProgress:n=>{this.onProgress(s.ID,n)}}));return this.sendMessage(s,t)}sendAudioMessage(e,t){const s=this.getEngine().chat.createAudioMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{onProgress:n=>{this.onProgress(s.ID,n)}}));return this.sendMessage(s,t)}sendVideoMessage(e,t){const s=this.getEngine().chat.createVideoMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{onProgress:n=>{this.onProgress(s.ID,n)}}));return this.sendMessage(s,t)}sendCustomMessage(e,t){const s=this.getEngine().chat.createCustomMessage(Object.assign(Object.assign({},this.getCurrentConvInfo()),e));return this.sendMessage(s,t)}sendFaceMessage(e,t){const s=this.getEngine().chat.createFaceMessage(Object.assign(Object.assign({},this.getCurrentConvInfo()),e));return this.sendMessage(s,t)}sendFileMessage(e,t){const s=this.getEngine().chat.createFileMessage(Object.assign(Object.assign(Object.assign({},this.getCurrentConvInfo()),e),{onProgress:n=>{this.onProgress(s.ID,n)}}));return this.sendMessage(s,t)}sendLocationMessage(e,t){const s=this.getEngine().chat.createLocationMessage(Object.assign(Object.assign({},this.getCurrentConvInfo()),e));return this.sendMessage(s,t)}onProgress(e,t){const s=this.getEngine().TUIStore.getMessageModel(e);s&&(t-s.progress>=.1||t===1)&&(s.progress=t,this.updateMessageList([s],"edit"))}setAbstractList(e){const t=this.getEngine(),s=e.nick||e.from;let n="";switch(e.type){case t.TYPES.MSG_TEXT:n=e.payload.text||"",n.length>20&&(n=n.slice(0,20));break;case t.TYPES.MSG_MERGER:n=`${this.t("TUIChat.[聊天记录]")}`;break;case t.TYPES.MSG_IMAGE:n=`${this.t("TUIChat.[图片]")}`;break;case t.TYPES.MSG_AUDIO:n=`${this.t("TUIChat.[音频]")}`;break;case t.TYPES.MSG_VIDEO:n=`${this.t("TUIChat.[视频]")}`;break;case t.TYPES.MSG_CUSTOM:n=`${this.t("TUIChat.[自定义消息]")}`;break;case t.TYPES.MSG_FILE:n=`${this.t("TUIChat.[文件]")}`;break;case t.TYPES.MSG_FACE:n=`${this.t("TUIChat.[动画表情]")}`}return`${s}: ${n}`}genMergerForwardPayload(e,t){const{abstractList:s=[],compatibleText:n="",title:i}=t;return s.length===0&&e.forEach(a=>{s.push(this.setAbstractList(a))}),{messageList:e,title:i,abstractList:s,compatibleText:n||this.t("TUIChat.请升级IMSDK到v2.10.1或更高版本查看此消息")}}genSendMergerForwardMessage(e){const{conversationList:t,messageList:s,params:n,mergeInfo:i,sendMessageOptions:a}=e,u=[];for(let o=0;ot instanceof Me?t.getMessage():t)}sendForwardMessage(e,t,s){t=this.getOriginMessageList(t);const n=s||{},{needMerge:i=!1,params:a={},mergeInfo:u={}}=n,o=G(n,["needMerge","params","mergeInfo"]);if(i)return this.sendMergerForwardMessage({conversationList:e,messageList:t,params:a,mergeInfo:u,sendMessageOptions:o});const g=[];for(let l=0;l{const{code:n=0,data:i={}}=s.code;throw n===ye.MSG_MODIFY_CONFLICT?console.warn(`${be.MSG_MODIFY_CONFLICT} data.message: ${i==null?void 0:i.message}`):n===ye.MSG_MODIFY_DISABLED_IN_AVCHATROOM?console.warn(be.MSG_MODIFY_DISABLED_IN_AVCHATROOM):n===ye.MODIFY_MESSAGE_NOT_EXIST&&console.warn(be.MODIFY_MESSAGE_NOT_EXIST),s})}getMessageList(e={conversationID:this.getStoreData(c.CONV,"currentConversationID"),nextReqMessageID:this.getStoreData(c.CHAT,"nextReqMessageID")}){const t=this.getEngine();if(!t.chat.isReady())return Promise.reject({code:q.GET_MSG_LIST_ERROR,message:z.GET_MSG_LIST_ERROR});if(this.getStoreData(c.CHAT,"isCompleted"))return Promise.resolve({data:{messageList:[],nextReqMessageID:"",isCompleted:!0}});const s=this.getStoreData(c.CHAT,"messageSource"),n=this.hoppingConfigMap.get("nextMessageSeq"),i=this.hoppingConfigMap.get("nextMessageTime"),a=n||i;return s&&s.conversationID===(e==null?void 0:e.conversationID)&&a?this.getMessageListHopping():t.chat.getMessageList(e).then(u=>{var o;const{messageList:g,nextReqMessageID:l,isCompleted:p}=u.data,h=this.getStoreData(c.CHAT,"userInfo");Object.keys(h).length>0&&this.updateLocalMessage(g,h),this.updateMessageList(g,"unshift"),t.TUIStore.update(c.CHAT,"nextReqMessageID",l),t.TUIStore.update(c.CHAT,"isCompleted",p);const f=(o=g[0])===null||o===void 0?void 0:o.conversationID,{operationType:m=0}=this.getEngine().TUIStore.getConversationModel(f)||{};return m===0&&(this.getMessageReactions({messageList:g}),this.readReceiptHandler.getMessageReadReceiptList(g)),u}).catch(u=>Promise.reject(u))}getMessageListHopping(e){var t;e===void 0&&(e={conversationID:(t=this.getStoreData(c.CHAT,"messageSource"))===null||t===void 0?void 0:t.conversationID,sequence:this.hoppingConfigMap.get("nextMessageSeq"),time:this.hoppingConfigMap.get("nextMessageTime")});const s=this.getEngine();return s.chat.getMessageListHopping(e).then(n=>{const{messageList:i,nextMessageSeq:a,nextMessageTime:u,isCompleted:o}=n.data,g=e.direction===1?e.sequence:a,l=e.direction===1?e.time:u;return this.updateMessageList(i,"unshift"),this.delayGetHoppingFunction=void 0,this.hoppingConfigMap.set("nextMessageSeq",g),this.hoppingConfigMap.set("nextMessageTime",l),s.TUIStore.update(c.CHAT,"isCompleted",o),n}).catch(n=>Promise.reject(n))}sendMessageReadReceipt(e){return this.readReceiptHandler.sendMessageReadReceipt(e)}getGroupMessageReadMemberList(e){return this.readReceiptHandler.getGroupMessageReadMemberList(e).then(t=>{const{isCompleted:s,cursor:n,messageID:i,unreadUserIDList:a,readUserIDList:u}=t.data,o={code:0,data:{cursor:n,isCompleted:s,messageID:i,unreadUserInfoList:[],readUserInfoList:[]}},g=[...a,...u];return g.length===0?o:this.getEngine().TUIUser.getUserProfile({userIDList:g}).then(l=>(a.length>0?l.data.forEach(p=>{const{userID:h,nick:f="",avatar:m=""}=p;o.data.unreadUserInfoList.push({userID:h,nick:f,avatar:m})}):l.data.forEach(p=>{const{userID:h,nick:f="",avatar:m=""}=p;o.data.readUserInfoList.push({userID:h,nick:f,avatar:m})}),o))})}downloadMergedMessages(e){return this.getEngine().chat.downloadMergerMessage(e)}setTranslationLanguage(e){this.getEngine().TUIStore.update(c.USER,"targetLanguage",e)}translateText(e){const t=this.getStoreData(c.USER,"targetLanguage"),s=Object.assign({targetLanguage:t,sourceLanguage:"auto"},e);return this.getEngine().chat.translateText(s)}searchCloudMessages(e){return this.getEngine().TUISearch.searchCloudMessages(e)}addMessageReaction(e,t){return this.getEngine().chat.addMessageReaction(e.getMessage(),t)}removeMessageReaction(e,t){return this.getEngine().chat.removeMessageReaction(e.getMessage(),t)}getMessageReactions(e){const{messageList:t=[]}=e,s=this.getStoreData(c.APP,"enabledEmojiPlugin");console.log(`TUIChatService.getMessageReactions enabledEmojiPlugin:${s} messageList length:${t.length}`),s&&t.length>0&&this.getEngine().chat.getMessageReactions(e).then(n=>{const i=n.data.resultList||n.data;this.updateMessageReactionList(i)}).catch(()=>{})}getAllUserListOfMessageReaction(e){var t;return this.getEngine().chat.getAllUserListOfMessageReaction(Object.assign(Object.assign({},e),{message:(t=e==null?void 0:e.message)===null||t===void 0?void 0:t.getMessage()}))}updateMessageReactionList(e){const t=[];e.forEach(s=>{const{messageID:n,reactionList:i}=s,a=this.getEngine().TUIStore.getMessageModel(n);if(a){const u=[];for(let o=0;o0&&this.updateMessageList(t,"edit")}convertVoiceToText(e){const{message:t,language:s="zh"}=e,n=t.getMessage();return this.getEngine().chat.convertVoiceToText({message:n,language:s})}clearHistoryMessage(e){const t=this.getEngine();return t.chat.clearHistoryMessage(e).then(s=>(t.TUIStore.update(c.CHAT,"messageList",[]),t.TUIStore.update(c.CHAT,"nextReqMessageID",""),t.TUIStore.update(c.CHAT,"isCompleted",!1),s))}updateMessageInfo(e){const t=this.getStoreData(c.CHAT,"userInfo");this.getEngine().TUIStore.update(c.CHAT,"userInfo",Object.assign(t,e));const s=this.getStoreData(c.CHAT,"messageList");s.length>0&&this.updateLocalMessage(s,e)&&this.getEngine().TUIStore.update(c.CHAT,"messageList",s)}updateLocalMessage(e,t){let s=!1;return e.forEach(n=>{if(t[n.from]){const{nick:i,nameCard:a,avatar:u}=t[n.from];i&&(n.nick=i,s=!0),a&&(n.nameCard=a,s=!0),u&&(n.avatar=u,s=!0)}}),s}handleC2CCallSignaling(e=[]){var t,s,n,i,a;const u=[],o=this.getEngine(),g=o.getMyUserID();for(let l=0;ln.time-i.time);const s=e.filter(n=>n.status==="success").sort((n,i)=>n.sequence-i.sequence);for(let n=0;n{n.groupID===s&&t.TUIStore.update(c.GRP,"currentGroup",n)})}onGroupAttributesUpdated(e){const t=this.getEngine(),s=t.TUIStore.getData(c.GRP,"currentGroupID");let n=t.TUIStore.getData(c.GRP,"groupList");const{groupID:i,groupAttributes:a}=e;s===i&&t.TUIStore.update(c.GRP,"currentGroupAttributes",a),n=n.map(u=>(u.groupID===i&&(u.groupAttributes=a),u)),t.TUIStore.update(c.GRP,"groupList",n)}onGroupCounterUpdated(e){const t=this.getEngine(),s=t.TUIStore.getData(c.GRP,"currentGroupID"),n=t.TUIStore.getData(c.GRP,"currentGroupCounters")||{};let i=t.TUIStore.getData(c.GRP,"groupList");const{groupID:a,key:u,value:o}=e;s===a&&(n[u]=o,t.TUIStore.update(c.GRP,"currentGroupCounters",n)),i=i.map(g=>(g.groupID===a&&(g.groupCounters=Object.assign(Object.assign({},g.groupCounters),{[u]:o})),g)),t.TUIStore.update(c.GRP,"groupList",i)}onMessageReceived(e){const t=this.getEngine(),s=[];e.forEach(n=>{if(n.type===t.TYPES.MSG_GRP_TIP){const{payload:i}=n,{operationType:a,userIDList:u}=i;switch(a){case t.TYPES.GRP_TIP_MBR_JOIN:this.addMemberList(u);break;case t.TYPES.GRP_TIP_MBR_QUIT:case t.TYPES.GRP_TIP_MBR_KICKED_OUT:this.removeMemberList(u);break;case t.TYPES.GRP_TIP_MBR_SET_ADMIN:case t.TYPES.GRP_TIP_MBR_CANCELED_ADMIN:this.updateGroupMember(u);break;case t.TYPES.GRP_TIP_GRP_PROFILE_UPDATED:break;case t.TYPES.GRP_TIP_MBR_PROFILE_UPDATED:case t.TYPES.GRP_TIP_BAN_AVCHATROOM_MEMBER:case t.TYPES.GRP_TIP_UNBAN_AVCHATROOM_MEMBER:this.updateGroupMember(u)}}n.type===t.TYPES.MSG_GRP_SYS_NOTICE&&s.push(n)}),s.length>0&&t.TUIStore.update(c.GRP,"groupSystemNoticeList",s)}getGroupInitData(){const e=this.getEngine();e.chat.isReady()&&e.chat.getGroupList().then(t=>{const{groupList:s=[]}=t.data;console.log(`TUIGroupService.init, getGroupList count:${s.length}`),s.length>0&&this.onGroupListUpdated(s)})}updateGroupMember(e){return j(this,void 0,void 0,function*(){const t=this.getEngine().TUIStore.getData(c.GRP,"currentGroupID");if(t){const s=yield this.getGroupMemberProfile({groupID:t,userIDList:e}),{memberList:n}=s.data;this.updateMemberList(n)}})}resetCurrentStore(){this.getEngine().TUIStore.reset(c.GRP,["currentGroupID","currentGroup","currentGroupAttributes","currentGroupCounters","currentGroupMemberList"],!0)}switchGroup(e){return j(this,void 0,void 0,function*(){const t=this.getEngine();t.TUIStore.update(c.GRP,"offset",0),t.TUIStore.update(c.GRP,"isCompleted",!1);const s=t.TUIStore.getConversationModel(`GROUP${e}`);if((s==null?void 0:s.operationType)>0){const u=t.TUIStore.getData(c.GRP,"currentGroup");return Promise.resolve(u)}const n=t.TUIStore.getData(c.GRP,"currentGroupID");if(!e)return this.resetCurrentStore(),Promise.resolve({});if(n===e){const u=t.TUIStore.getData(c.GRP,"currentGroup");return Promise.resolve(u)}this.resetCurrentStore(),t.TUIStore.update(c.GRP,"currentGroupID",e);try{yield this.getGroupInfo(e)}catch(u){Promise.reject(u)}const i=setTimeout(()=>{this.groupMap.delete(e),clearTimeout(i)},5e3),a=t.TUIStore.getData(c.GRP,"currentGroup");return Promise.resolve(a)})}getGroupInfo(e){return j(this,void 0,void 0,function*(){const t=this.getEngine(),s=this.groupMap.get(e);if(s)return this.updateMemberList((s==null?void 0:s.memberList)||[]),t.TUIStore.update(c.GRP,"currentGroup",s.group),t.TUIStore.update(c.GRP,"currentGroupAttributes",s.groupAttributes||{}),void t.TUIStore.update(c.GRP,"currentGroupCounters",s.counters||{});const n={group:{},memberList:[],groupAttributes:void 0,counters:void 0},{data:{group:i}}=yield this.getGroupProfile({groupID:e});n.group=i;const{data:{memberList:a}}=yield this.getGroupMemberList({groupID:e});n.memberList=a;const u=yield this.getGroupAttributes({groupID:e,keyList:[]}),{groupAttributes:o}=u.data;n.groupAttributes=o,t.TUIStore.update(c.GRP,"currentGroupAttributes",o);try{const g=yield this.getGroupCounters({groupID:e,keyList:[]}),{counters:l}=g.data;n.counters=l,t.TUIStore.update(c.GRP,"currentGroupCounters",l)}catch(g){console.warn(g==null?void 0:g.message)}this.groupMap.set(e,n)})}getGroupProfile(e){const t=this.getEngine();return t.chat.getGroupProfile(e).then(s=>j(this,void 0,void 0,function*(){if(t.TUIStore.getData(c.GRP,"currentGroupID")===e.groupID){const{group:n}=s.data;t.TUIStore.update(c.GRP,"currentGroup",n)}return s}))}updateGroupProfile(e){return this.getEngine().chat.updateGroupProfile(e)}createGroup(e){return this.getEngine().chat.createGroup(e)}dismissGroup(e){return this.getEngine().chat.dismissGroup(e)}searchGroupByID(e){const t=this.getEngine();return t.chat.searchGroupByID(e).then(s=>{const{group:n}=s.data,i=t.TUIStore.getData(c.GRP,"groupList");return s.data.group.isJoinedGroup=i.some(a=>a.groupID===n.groupID),s})}joinGroup(e){return this.getEngine().chat.joinGroup(e)}quitGroup(e){return this.getEngine().chat.quitGroup(e)}getGroupApplicationList(){return this.getEngine().chat.getGroupApplicationList()}handleGroupApplication(e){return this.getEngine().chat.handleGroupApplication(e)}getGroupOnlineMemberCount(e){return this.getEngine().chat.getGroupOnlineMemberCount(e)}changeGroupOwner(e){return this.getEngine().chat.changeGroupOwner(e)}initGroupAttributes(e){return this.getEngine().chat.initGroupAttributes(e)}setGroupAttributes(e){return this.getEngine().chat.setGroupAttributes(e)}deleteGroupAttributes(e){return this.getEngine().chat.deleteGroupAttributes(e)}getGroupAttributes(e){return this.getEngine().chat.getGroupAttributes(e)}setGroupCounters(e){return this.getEngine().chat.setGroupCounters(e)}increaseGroupCounter(e){return this.getEngine().chat.increaseGroupCounter(e)}decreaseGroupCounter(e){return this.getEngine().chat.decreaseGroupCounter(e)}getGroupCounters(e){return this.getEngine().chat.getGroupCounters(e)}updateMemberList(e){const t=this.getEngine(),s=[...(t.TUIStore.getData(c.GRP,"currentGroupMemberList")||[]).filter(n=>!e.find(i=>i.userID===n.userID)),...e];t.TUIStore.update(c.GRP,"currentGroupMemberList",s)}addMemberList(e){return j(this,void 0,void 0,function*(){const t=this.getEngine().TUIStore.getData(c.GRP,"currentGroupID");if(t)try{const s=yield this.getGroupMemberProfile({groupID:t,userIDList:e}),{memberList:n}=s.data;this.updateMemberList(n)}catch{const n=e.map(i=>({userID:i,avatar:"",nick:"",role:"",joinTime:0,nameCard:"",muteUntil:0,memberCustomField:[]}));this.updateMemberList(n)}})}removeMemberList(e){const t=this.getEngine(),s=t.TUIStore.getData(c.GRP,"currentGroupMemberList").filter(n=>e.indexOf(n.userID)===-1);t.TUIStore.update(c.GRP,"currentGroupMemberList",s)}getGroupMemberList(e){const t=this.getEngine();if(D(e.offset)){const s=t.TUIStore.getData(c.GRP,"offset");e.offset=s}return t.chat.getGroupMemberList(e).then(s=>{if(t.TUIStore.getData(c.GRP,"currentGroupID")===e.groupID){const{memberList:n,offset:i=0}=s.data;this.updateMemberList(n),t.TUIStore.update(c.GRP,"offset",i),i===0&&t.TUIStore.update(c.GRP,"isCompleted",!0)}return s})}getGroupMemberProfile(e){return this.getEngine().chat.getGroupMemberProfile(e)}addGroupMember(e){const t=this.getEngine();return t.chat.addGroupMember(e).then(s=>j(this,void 0,void 0,function*(){if(t.TUIStore.getData(c.GRP,"currentGroupID")===e.groupID){const{successUserIDList:n,group:i}=s.data;t.TUIStore.update(c.GRP,"currentGroup",i),this.addMemberList(n)}return s}))}deleteGroupMember(e){const t=this.getEngine();return t.chat.deleteGroupMember(e).then(s=>{if(t.TUIStore.getData(c.GRP,"currentGroupID")===e.groupID){const{userIDList:n,group:i}=s.data;this.removeMemberList(n),t.TUIStore.update(c.GRP,"currentGroup",i)}return s})}setGroupMemberMuteTime(e){return this.getEngine().chat.setGroupMemberMuteTime(e)}setGroupMemberRole(e){return this.getEngine().chat.setGroupMemberRole(e)}setGroupMemberNameCard(e){return this.getEngine().chat.setGroupMemberNameCard(e)}setGroupMemberCustomField(e){return this.getEngine().chat.setGroupMemberCustomField(e)}markGroupMemberList(e){return this.getEngine().chat.markGroupMemberList(e)}}class pe extends F{constructor(){super(),this.tobeUpdatedFriendGroupList=void 0}static getInstance(){return pe.instance||(pe.instance=new pe),pe.instance}init(){const e=this.getEngine();e.eventCenter.addEvent(e.EVENT.FRIEND_LIST_UPDATED,this.onFriendListUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.FRIEND_APPLICATION_LIST_UPDATED,this.onFriendApplicationListUpdated.bind(this)),e.eventCenter.addEvent(e.EVENT.FRIEND_GROUP_LIST_UPDATED,this.onFriendGroupListUpdated.bind(this)),this.getFriendInitData()}onFriendListUpdated(e){this.getEngine().TUIStore.update(c.FRIEND,"friendList",e),this.updatedFriendGroupList(e,this.tobeUpdatedFriendGroupList)}onFriendApplicationListUpdated(e){const{friendApplicationList:t,unreadCount:s=0}=e,n=this.getEngine();n.TUIStore.update(c.FRIEND,"friendApplicationList",t),n.TUIStore.update(c.FRIEND,"friendApplicationUnreadCount",s)}onFriendGroupListUpdated(e){const t=this.getEngine().TUIStore.getData(c.FRIEND,"friendList");t.length>0?this.updatedFriendGroupList(t,e):this.tobeUpdatedFriendGroupList=e}updatedFriendGroupList(e,t){const s=this.getEngine();if(t&&t.length>0){const n=t.map(i=>{const{userIDList:a}=i,u=G(i,["userIDList"]),o=a.map(g=>e.find(l=>l.userID===g));return Object.assign(Object.assign({},u),{friendList:o})});s.TUIStore.update(c.FRIEND,"friendGroupList",n),this.tobeUpdatedFriendGroupList=void 0}}getFriendInitData(){const e=this.getEngine();e.chat.isReady()&&(e.chat.getFriendList().then(t=>{const s=t.data||[];console.log(`TUIFriendService.init, getFriendList count:${s.length}`),s.length>0&&this.onFriendListUpdated(s)}),e.chat.getFriendGroupList().then(t=>{const s=t.data||[];console.log(`TUIFriendService.init, getFriendGroupList count:${s.length}`),s.length>0&&this.onFriendGroupListUpdated(s)}),e.chat.getFriendApplicationList().then(t=>{this.onFriendApplicationListUpdated(t.data)}))}getFriendList(){return this.getEngine().chat.getFriendList()}getFriendRemark(e){const t=this.getEngine().TUIStore.getData(c.FRIEND,"friendList"),s={};return e.forEach(n=>{for(let i=0;ij(this,void 0,void 0,function*(){const{searchResultList:g}=o.data;if((g==null?void 0:g.length)>0){const l=[];if(o.data.searchResultList=g.map(p=>{const{messageList:h,conversationID:f}=p,m=G(p,["messageList","conversationID"]),E=h.map(T=>new Me(T)),d=u.find(T=>T.conversationID===f);return D(d)&&l.push(te.getInstance().getConversationProfile(f)),Object.assign(Object.assign({},m),{messageList:E.sort((T,S)=>S.time-T.time),conversation:d})}),l.length>0)try{const p=yield Promise.all(l);o.data.searchResultList=g.map(h=>{const{messageList:f,conversationID:m}=h,E=G(h,["messageList","conversationID"]),d=f.map(v=>new Me(v)),{data:{conversation:T}}=p.find(v=>v.data.conversation.conversationID===m),S=new je(T);return Object.assign(Object.assign({},E),{messageList:d.sort((v,b)=>b.time-v.time),conversation:S})})}catch(p){console.log("fetch conversation error",p)}}return o.data.params=e,n?this.handleSearchResult(U.CHAT_MESSAGE,o.data):this.handleSearchResult(U.MESSAGE,o.data),o})).catch(o=>(this.getEngine().TUIStore.update(c.SEARCH,"error",o),Promise.reject(o)))}searchCloudUsers(e){const{keyword:t,keywordList:s}=e,n=G(e,["keyword","keywordList"]),i=this.getStoreData(c.FRIEND,"friendList");return this.searchParamsValidate(U.USER,e)?this.getEngine().chat.searchCloudUsers(Object.assign({keywordList:t?[t]:s||void 0,keywordListMatchType:"or"},n)).then(a=>{const{searchResultList:u}=a.data;if(u.length>0){const o=new Map(u.map(g=>[g.userID,{profile:g,relation:Z.TYPES.SNS_TYPE_NO_RELATION}]));i.forEach(g=>{const{userID:l}=g,p=o.get(l);p&&(p.relation=Z.TYPES.SNS_TYPE_BOTH_WAY)}),a.data.searchResultList=Array.from(o.values())}return a.data.params=e,this.handleSearchResult(U.USER,a.data),a}).catch(a=>(this.getEngine().TUIStore.update(c.SEARCH,"error",a),Promise.reject(a))):Promise.resolve()}searchCloudGroups(e){const{keyword:t,keywordList:s}=e,n=G(e,["keyword","keywordList"]),i=this.getStoreData(c.CONV,"conversationList"),a=this.getStoreData(c.GRP,"groupList");return this.searchParamsValidate(U.GROUP,e)?this.getEngine().chat.searchCloudGroups(Object.assign({keywordList:t?[t]:s||void 0,keywordListMatchType:"or"},n)).then(u=>{const{searchResultList:o}=u.data;return o.length>0&&(u.data.searchResultList=o.map(g=>{const l=a.find(h=>h.groupID===g.groupID),p=i.find(h=>h.conversationID===`GROUP${g.groupID}`);return{groupInfo:l||g,conversation:p}})),u.data.params=e,this.handleSearchResult(U.GROUP,u.data),u}).catch(u=>(this.getEngine().TUIStore.update(c.SEARCH,"error",u),Promise.reject(u))):Promise.resolve()}}class Js{constructor(){this.cache=[],this.middlewares=[],this.options=null}use(e){return typeof e!="function"&&console.error("middleware must be a function"),this.cache.push(e),this}next(){if(this.middlewares&&this.middlewares.length>0)return this.middlewares.shift().call(this,this.options,this.next.bind(this))}run(e){return this.middlewares=this.cache.map(t=>t),this.options=e,this.next()}}function K(r,e,t){const s=Object.create(null);Object.keys(t).forEach(n=>{if(!e[n])return;s[n]=e[n];const i=new Js;e[n]=function(){const a=Array.from(arguments);return i.use((u,o)=>r.isInited?o():Promise.reject({code:q.NOT_INIT,message:`${n} | ${z.NOT_INIT}`})).use(u=>s[n].apply(e,u)),i.run(a)}})}console.log("TUIChatEngine.VERSION:2.5.8");const C=ee.getInstance();Q.getInstance();const Ws=ue.getInstance(),Xs=ge.getInstance(),Dt=te.getInstance(),Pt=ce.getInstance(),_t=le.getInstance(),Rt=he.getInstance(),Lt=pe.getInstance(),At=de.getInstance(),jt=fe.getInstance();C.mount(A.TUIStore,Ws),C.mount(A.TUITranslate,Xs),C.mount(A.TUIConversation,Dt),C.mount(A.TUIUser,Pt),C.mount(A.TUIChat,_t),C.mount(A.TUIGroup,Rt),C.mount(A.TUIFriend,Lt),C.mount(A.TUIReport,At),C.mount(A.TUISearch,jt),K(C,C,$e),K(C,Dt,Wt),K(C,_t,Xt),K(C,Rt,Zt),K(C,Pt,Qt),K(C,Lt,es),K(C,At,$e),K(C,jt,$e);export{C as X};
diff --git a/server/public/admin/assets/AppointmentRecordPanel-CyJurU7N.js b/server/public/admin/assets/AppointmentRecordPanel-CCHQCOJq.js
similarity index 93%
rename from server/public/admin/assets/AppointmentRecordPanel-CyJurU7N.js
rename to server/public/admin/assets/AppointmentRecordPanel-CCHQCOJq.js
index 7844f1b02..5ddcc421d 100644
--- a/server/public/admin/assets/AppointmentRecordPanel-CyJurU7N.js
+++ b/server/public/admin/assets/AppointmentRecordPanel-CCHQCOJq.js
@@ -1 +1 @@
-import{o as C,R as D,q as d,r as I,ac as N,O as u,bj as B,D as o,v as l,bk as E,br as L,L as i,T as r,s as p,bi as R,M as w}from"./.pnpm-BHOjf1ZS.js";import{a as V}from"./doctor-CI72mqZm.js";import{n as A,_ as M}from"./index-B31vLELt.js";const P={class:"appointment-record-panel"},$={class:"cell-stack"},j={class:"font-medium"},q={class:"text-gray-500 text-sm"},O={class:"cell-stack"},F={class:"text-gray-500 text-sm"},G=C({__name:"AppointmentRecordPanel",props:{diagnosisId:{}},setup(v,{expose:y}){const f=v,m=w(!1),g=w([]),h=w({});function x(t){return t?String(t).length>=8?String(t).slice(0,5):t:""}function k(t){return t==="morning"?"上午":t==="afternoon"?"下午":t==="all"?"全天":t||"—"}function S(t){const n=t.channel_source??t.channels??"";if(n===""||n===null||n===void 0)return"—";const a=String(n),s=h.value[a]||a,c=String(t.channel_source_detail??"").trim();return c!==""?`${s}(${c})`:s}function T(t){return[...t].sort((n,a)=>{const s=String(n.appointment_date||""),c=String(a.appointment_date||"");if(s!==c)return c.localeCompare(s);const _=String(n.appointment_time||""),e=String(a.appointment_time||"");return _!==e?e.localeCompare(_):Number(a.id||0)-Number(n.id||0)})}const z=async()=>{try{const t=await A({type:"channels"}),n=((t==null?void 0:t.channels)||[]).filter(s=>s.status!==0),a={};for(const s of n)s.value!=null&&(a[String(s.value)]=s.name||String(s.value));h.value=a}catch{h.value={}}},b=async()=>{if(f.diagnosisId){m.value=!0;try{await z();const t=await V({patient_id:f.diagnosisId,diag_scope_relax:1,page_no:1,page_size:500}),n=(t==null?void 0:t.lists)||[];g.value=T(n)}catch(t){console.error(t),g.value=[]}finally{m.value=!1}}};return D(()=>f.diagnosisId,()=>{b()},{immediate:!0}),y({refresh:b}),(t,n)=>{const a=E,s=L,c=B,_=R;return d(),I("div",P,[N((d(),u(c,{data:g.value,border:"",stripe:"","empty-text":"暂无挂号记录"},{default:o(()=>[l(a,{label:"ID",prop:"id",width:"72",align:"center"}),l(a,{label:"状态",width:"100",align:"center"},{default:o(({row:e})=>[l(s,{type:e.status===1?"success":e.status===2?"info":e.status===3?"primary":"danger",size:"small",effect:"light"},{default:o(()=>[i(r(e.status_desc||"—"),1)]),_:2},1032,["type"])]),_:1}),l(a,{label:"患者(挂号人)","min-width":"150"},{default:o(({row:e})=>[p("div",$,[p("span",j,r(e.patient_name||"—"),1),p("span",q,r(e.patient_phone||""),1)])]),_:1}),l(a,{label:"挂号医生",prop:"doctor_name",width:"110","show-overflow-tooltip":""}),l(a,{label:"挂号助理",width:"110","show-overflow-tooltip":""},{default:o(({row:e})=>[i(r(e.assistant_name||"—"),1)]),_:1}),l(a,{label:"预约时间","min-width":"130"},{default:o(({row:e})=>[p("div",O,[p("span",null,r(e.appointment_date||"—"),1),p("span",F,r(x(e.appointment_time)),1)])]),_:1}),l(a,{label:"时段",width:"80",align:"center"},{default:o(({row:e})=>[i(r(k(e.period)),1)]),_:1}),l(a,{label:"类型",width:"100","show-overflow-tooltip":""},{default:o(({row:e})=>[i(r(e.appointment_type_desc||"—"),1)]),_:1}),l(a,{label:"渠道",width:"110","show-overflow-tooltip":""},{default:o(({row:e})=>[i(r(S(e)),1)]),_:1}),l(a,{label:"确认诊单",width:"92",align:"center"},{default:o(({row:e})=>[e.diagnosis_confirmed?(d(),u(s,{key:0,type:"success",size:"small",effect:"plain"},{default:o(()=>[...n[0]||(n[0]=[i("已确认",-1)])]),_:1})):(d(),u(s,{key:1,type:"warning",size:"small",effect:"plain"},{default:o(()=>[...n[1]||(n[1]=[i("未确认",-1)])]),_:1}))]),_:1}),l(a,{label:"开方",width:"80",align:"center"},{default:o(({row:e})=>[e.has_prescription?(d(),u(s,{key:0,type:"success",size:"small",effect:"plain"},{default:o(()=>[...n[2]||(n[2]=[i("已开方",-1)])]),_:1})):(d(),u(s,{key:1,type:"info",size:"small",effect:"plain"},{default:o(()=>[...n[3]||(n[3]=[i("未开方",-1)])]),_:1}))]),_:1}),l(a,{label:"备注",prop:"remark","min-width":"100","show-overflow-tooltip":""}),l(a,{label:"创建时间",width:"165",prop:"create_time"})]),_:1},8,["data"])),[[_,m.value]])])}}}),Q=M(G,[["__scopeId","data-v-4de87dfa"]]);export{Q as default};
+import{o as C,R as D,q as d,r as I,ac as N,O as u,bi as B,D as o,v as l,bj as E,bk as L,L as i,T as r,s as p,bl as R,M as w}from"./.pnpm-BuKxIMgQ.js";import{a as V}from"./doctor-DlXZd1P5.js";import{n as A,_ as M}from"./index-BZAvl557.js";const P={class:"appointment-record-panel"},$={class:"cell-stack"},j={class:"font-medium"},q={class:"text-gray-500 text-sm"},O={class:"cell-stack"},F={class:"text-gray-500 text-sm"},G=C({__name:"AppointmentRecordPanel",props:{diagnosisId:{}},setup(v,{expose:y}){const f=v,m=w(!1),g=w([]),h=w({});function x(t){return t?String(t).length>=8?String(t).slice(0,5):t:""}function k(t){return t==="morning"?"上午":t==="afternoon"?"下午":t==="all"?"全天":t||"—"}function S(t){const n=t.channel_source??t.channels??"";if(n===""||n===null||n===void 0)return"—";const a=String(n),s=h.value[a]||a,c=String(t.channel_source_detail??"").trim();return c!==""?`${s}(${c})`:s}function T(t){return[...t].sort((n,a)=>{const s=String(n.appointment_date||""),c=String(a.appointment_date||"");if(s!==c)return c.localeCompare(s);const _=String(n.appointment_time||""),e=String(a.appointment_time||"");return _!==e?e.localeCompare(_):Number(a.id||0)-Number(n.id||0)})}const z=async()=>{try{const t=await A({type:"channels"}),n=((t==null?void 0:t.channels)||[]).filter(s=>s.status!==0),a={};for(const s of n)s.value!=null&&(a[String(s.value)]=s.name||String(s.value));h.value=a}catch{h.value={}}},b=async()=>{if(f.diagnosisId){m.value=!0;try{await z();const t=await V({patient_id:f.diagnosisId,diag_scope_relax:1,page_no:1,page_size:500}),n=(t==null?void 0:t.lists)||[];g.value=T(n)}catch(t){console.error(t),g.value=[]}finally{m.value=!1}}};return D(()=>f.diagnosisId,()=>{b()},{immediate:!0}),y({refresh:b}),(t,n)=>{const a=E,s=L,c=B,_=R;return d(),I("div",P,[N((d(),u(c,{data:g.value,border:"",stripe:"","empty-text":"暂无挂号记录"},{default:o(()=>[l(a,{label:"ID",prop:"id",width:"72",align:"center"}),l(a,{label:"状态",width:"100",align:"center"},{default:o(({row:e})=>[l(s,{type:e.status===1?"success":e.status===2?"info":e.status===3?"primary":"danger",size:"small",effect:"light"},{default:o(()=>[i(r(e.status_desc||"—"),1)]),_:2},1032,["type"])]),_:1}),l(a,{label:"患者(挂号人)","min-width":"150"},{default:o(({row:e})=>[p("div",$,[p("span",j,r(e.patient_name||"—"),1),p("span",q,r(e.patient_phone||""),1)])]),_:1}),l(a,{label:"挂号医生",prop:"doctor_name",width:"110","show-overflow-tooltip":""}),l(a,{label:"挂号助理",width:"110","show-overflow-tooltip":""},{default:o(({row:e})=>[i(r(e.assistant_name||"—"),1)]),_:1}),l(a,{label:"预约时间","min-width":"130"},{default:o(({row:e})=>[p("div",O,[p("span",null,r(e.appointment_date||"—"),1),p("span",F,r(x(e.appointment_time)),1)])]),_:1}),l(a,{label:"时段",width:"80",align:"center"},{default:o(({row:e})=>[i(r(k(e.period)),1)]),_:1}),l(a,{label:"类型",width:"100","show-overflow-tooltip":""},{default:o(({row:e})=>[i(r(e.appointment_type_desc||"—"),1)]),_:1}),l(a,{label:"渠道",width:"110","show-overflow-tooltip":""},{default:o(({row:e})=>[i(r(S(e)),1)]),_:1}),l(a,{label:"确认诊单",width:"92",align:"center"},{default:o(({row:e})=>[e.diagnosis_confirmed?(d(),u(s,{key:0,type:"success",size:"small",effect:"plain"},{default:o(()=>[...n[0]||(n[0]=[i("已确认",-1)])]),_:1})):(d(),u(s,{key:1,type:"warning",size:"small",effect:"plain"},{default:o(()=>[...n[1]||(n[1]=[i("未确认",-1)])]),_:1}))]),_:1}),l(a,{label:"开方",width:"80",align:"center"},{default:o(({row:e})=>[e.has_prescription?(d(),u(s,{key:0,type:"success",size:"small",effect:"plain"},{default:o(()=>[...n[2]||(n[2]=[i("已开方",-1)])]),_:1})):(d(),u(s,{key:1,type:"info",size:"small",effect:"plain"},{default:o(()=>[...n[3]||(n[3]=[i("未开方",-1)])]),_:1}))]),_:1}),l(a,{label:"备注",prop:"remark","min-width":"100","show-overflow-tooltip":""}),l(a,{label:"创建时间",width:"165",prop:"create_time"})]),_:1},8,["data"])),[[_,m.value]])])}}}),Q=M(G,[["__scopeId","data-v-4de87dfa"]]);export{Q as default};
diff --git a/server/public/admin/assets/AssignLogPanel-Cbj0SUao.js b/server/public/admin/assets/AssignLogPanel-DjXUNK0v.js
similarity index 91%
rename from server/public/admin/assets/AssignLogPanel-Cbj0SUao.js
rename to server/public/admin/assets/AssignLogPanel-DjXUNK0v.js
index f28e743aa..7080fc0e4 100644
--- a/server/public/admin/assets/AssignLogPanel-Cbj0SUao.js
+++ b/server/public/admin/assets/AssignLogPanel-DjXUNK0v.js
@@ -1 +1 @@
-import{o as T,R as C,q as _,r as b,ac as D,O as h,bj as $,D as i,v as n,bk as L,L as c,T as d,br as k,s as E,a1 as A,w as P,u as B,ci as F,bi as M,M as w}from"./.pnpm-BHOjf1ZS.js";import{ag as V}from"./tcm-BkYsBTA3.js";import{_ as q}from"./index-B31vLELt.js";const K={class:"assign-log-panel"},j={key:1,class:"text-gray-400"},z=T({__name:"AssignLogPanel",props:{diagnosisId:{}},setup(v,{expose:y}){const u=v,m=w(!1),p=w([]);function N(a){const e=a.related_po_creator_name;if(e!=null&&String(e).trim()!=="")return String(e);const t=Number(a.related_po_creator_id);return Number.isFinite(t)&&t>0?`ID:${t}`:"—"}function x(a){const e=a.related_po_create_time_text;if(e!=null&&String(e).trim()!=="")return String(e);const t=Number(a.related_po_create_time);if(!Number.isFinite(t)||t<=0)return"—";const s=new Date(t*1e3);if(Number.isNaN(s.getTime()))return"—";const o=l=>String(l).padStart(2,"0");return`${s.getFullYear()}-${o(s.getMonth()+1)}-${o(s.getDate())} ${o(s.getHours())}:${o(s.getMinutes())}:${o(s.getSeconds())}`}function f(a,e){const t=e==="from"?"from_assistant_name":"to_assistant_name",s=e==="from"?"from_assistant_id":"to_assistant_id",o=a[t];if(o!=null&&String(o).trim()!==""&&String(o)!=="—")return String(o);const l=Number(a[s]);return Number.isFinite(l)&&l>0?`ID:${l}`:"—"}const g=async()=>{if(u.diagnosisId){m.value=!0;try{const a=await V({id:u.diagnosisId}),e=Array.isArray(a)?a:[];p.value=e}catch(a){console.error(a),p.value=[]}finally{m.value=!1}}};return C(()=>u.diagnosisId,()=>{g()},{immediate:!0}),y({refresh:g}),(a,e)=>{const t=L,s=k,o=P,l=A,S=$,I=M;return _(),b("div",K,[D((_(),h(S,{data:p.value,border:"",stripe:"","empty-text":"暂无指派记录"},{default:i(()=>[n(t,{label:"操作时间",width:"175",prop:"create_time_text"}),n(t,{label:"原医助","min-width":"120"},{default:i(({row:r})=>[c(d(f(r,"from")),1)]),_:1}),n(t,{label:"新医助","min-width":"120"},{default:i(({row:r})=>[c(d(f(r,"to")),1)]),_:1}),n(t,{label:"继承",width:"72",align:"center"},{default:i(({row:r})=>[Number(r.is_inherit)===1?(_(),h(s,{key:0,type:"success",size:"small"},{default:i(()=>[...e[0]||(e[0]=[c("是",-1)])]),_:1})):(_(),b("span",j,"否"))]),_:1}),n(t,{label:"快照·业务单创建人","min-width":"130","show-overflow-tooltip":""},{default:i(({row:r})=>[c(d(N(r)),1)]),_:1}),n(t,{label:"快照·业务单创建时间",width:"190"},{header:i(()=>[e[1]||(e[1]=E("span",null,"快照·业务单创建时间",-1)),n(l,{placement:"top",content:"related_po_create_time:触发本次操作的处方业务订单 create_time;与原文助一致时表示医助创建订单时间"},{default:i(()=>[n(o,{class:"assign-log-col-hint"},{default:i(()=>[n(B(F))]),_:1})]),_:1})]),default:i(({row:r})=>[c(d(x(r)),1)]),_:1}),n(t,{label:"操作人",width:"110",prop:"operator_name"}),n(t,{label:"操作账号",width:"120",prop:"operator_account","show-overflow-tooltip":""}),n(t,{label:"IP",width:"130",prop:"ip","show-overflow-tooltip":""})]),_:1},8,["data"])),[[I,m.value]])])}}}),Y=q(z,[["__scopeId","data-v-f670e3e6"]]);export{Y as default};
+import{o as T,R as C,q as _,r as b,ac as D,O as h,bi as $,D as i,v as n,bj as L,L as c,T as d,bk as k,s as E,a1 as A,w as P,u as B,ci as F,bl as M,M as w}from"./.pnpm-BuKxIMgQ.js";import{ag as V}from"./tcm-BZvWmp4G.js";import{_ as q}from"./index-BZAvl557.js";const K={class:"assign-log-panel"},j={key:1,class:"text-gray-400"},z=T({__name:"AssignLogPanel",props:{diagnosisId:{}},setup(v,{expose:y}){const u=v,m=w(!1),p=w([]);function N(a){const e=a.related_po_creator_name;if(e!=null&&String(e).trim()!=="")return String(e);const t=Number(a.related_po_creator_id);return Number.isFinite(t)&&t>0?`ID:${t}`:"—"}function x(a){const e=a.related_po_create_time_text;if(e!=null&&String(e).trim()!=="")return String(e);const t=Number(a.related_po_create_time);if(!Number.isFinite(t)||t<=0)return"—";const s=new Date(t*1e3);if(Number.isNaN(s.getTime()))return"—";const o=l=>String(l).padStart(2,"0");return`${s.getFullYear()}-${o(s.getMonth()+1)}-${o(s.getDate())} ${o(s.getHours())}:${o(s.getMinutes())}:${o(s.getSeconds())}`}function f(a,e){const t=e==="from"?"from_assistant_name":"to_assistant_name",s=e==="from"?"from_assistant_id":"to_assistant_id",o=a[t];if(o!=null&&String(o).trim()!==""&&String(o)!=="—")return String(o);const l=Number(a[s]);return Number.isFinite(l)&&l>0?`ID:${l}`:"—"}const g=async()=>{if(u.diagnosisId){m.value=!0;try{const a=await V({id:u.diagnosisId}),e=Array.isArray(a)?a:[];p.value=e}catch(a){console.error(a),p.value=[]}finally{m.value=!1}}};return C(()=>u.diagnosisId,()=>{g()},{immediate:!0}),y({refresh:g}),(a,e)=>{const t=L,s=k,o=P,l=A,S=$,I=M;return _(),b("div",K,[D((_(),h(S,{data:p.value,border:"",stripe:"","empty-text":"暂无指派记录"},{default:i(()=>[n(t,{label:"操作时间",width:"175",prop:"create_time_text"}),n(t,{label:"原医助","min-width":"120"},{default:i(({row:r})=>[c(d(f(r,"from")),1)]),_:1}),n(t,{label:"新医助","min-width":"120"},{default:i(({row:r})=>[c(d(f(r,"to")),1)]),_:1}),n(t,{label:"继承",width:"72",align:"center"},{default:i(({row:r})=>[Number(r.is_inherit)===1?(_(),h(s,{key:0,type:"success",size:"small"},{default:i(()=>[...e[0]||(e[0]=[c("是",-1)])]),_:1})):(_(),b("span",j,"否"))]),_:1}),n(t,{label:"快照·业务单创建人","min-width":"130","show-overflow-tooltip":""},{default:i(({row:r})=>[c(d(N(r)),1)]),_:1}),n(t,{label:"快照·业务单创建时间",width:"190"},{header:i(()=>[e[1]||(e[1]=E("span",null,"快照·业务单创建时间",-1)),n(l,{placement:"top",content:"related_po_create_time:触发本次操作的处方业务订单 create_time;与原文助一致时表示医助创建订单时间"},{default:i(()=>[n(o,{class:"assign-log-col-hint"},{default:i(()=>[n(B(F))]),_:1})]),_:1})]),default:i(({row:r})=>[c(d(x(r)),1)]),_:1}),n(t,{label:"操作人",width:"110",prop:"operator_name"}),n(t,{label:"操作账号",width:"120",prop:"operator_account","show-overflow-tooltip":""}),n(t,{label:"IP",width:"130",prop:"ip","show-overflow-tooltip":""})]),_:1},8,["data"])),[[I,m.value]])])}}}),Y=q(z,[["__scopeId","data-v-f670e3e6"]]);export{Y as default};
diff --git a/server/public/admin/assets/AssistantWatchCallDialog-CJi4p6pB.js b/server/public/admin/assets/AssistantWatchCallDialog-BCBBZaLm.js
similarity index 96%
rename from server/public/admin/assets/AssistantWatchCallDialog-CJi4p6pB.js
rename to server/public/admin/assets/AssistantWatchCallDialog-BCBBZaLm.js
index f1e24b589..e175a9ea5 100644
--- a/server/public/admin/assets/AssistantWatchCallDialog-CJi4p6pB.js
+++ b/server/public/admin/assets/AssistantWatchCallDialog-BCBBZaLm.js
@@ -1 +1 @@
-import{o as B,R as D,q as E,O,D as I,r as _,T as S,P as x,ac as W,s as h,ad as j,v as P,K as U,L as $,bt as H,p as K,M as v,dj as c}from"./.pnpm-BHOjf1ZS.js";import{ah as Y}from"./tcm-BkYsBTA3.js";import{_ as q}from"./index-B31vLELt.js";const z={key:0,class:"watch-state"},F={key:1,class:"watch-state watch-error"},G=B({__name:"AssistantWatchCallDialog",props:{modelValue:{type:Boolean},diagnosisId:{}},emits:["update:modelValue","closed"],setup(R,{emit:A}){const u=R,g=A,y=K({get:()=>u.modelValue,set:t=>g("update:modelValue",t)}),r=v(null),l=v(!1),i=v(""),f=v("旁观视频通话"),n=new Map;let a=null,p=0;function w(t,e){return`${t}\0${String(e)}`}function N(t){return t.startsWith("patient_")?"患者":t.startsWith("doctor_")?"医护":t}async function T(t){if(!a||!r.value||t.streamType!==c.TYPE.STREAM_TYPE_MAIN)return;const e=w(t.userId,t.streamType);if(n.has(e))return;const o=document.createElement("div");o.className="watch-tile";const s=document.createElement("div");s.className="watch-tile-cap",s.textContent=N(t.userId);const d=document.createElement("div");d.className="watch-tile-view",o.appendChild(s),o.appendChild(d),r.value.appendChild(o),n.set(e,{wrap:o,userId:t.userId,streamType:t.streamType});try{await a.startRemoteVideo({userId:t.userId,streamType:t.streamType,view:d})}catch(b){console.warn("[AssistantWatchCall] startRemoteVideo",b)}}async function V(t){if(!a)return;const e=w(t.userId,t.streamType),o=n.get(e);if(o){try{await a.stopRemoteVideo({userId:t.userId,streamType:t.streamType})}catch{}o.wrap.remove(),n.delete(e)}}function C(){a&&(a.on(c.EVENT.REMOTE_VIDEO_AVAILABLE,T),a.on(c.EVENT.REMOTE_VIDEO_UNAVAILABLE,V))}function k(){a&&(a.off(c.EVENT.REMOTE_VIDEO_AVAILABLE,T),a.off(c.EVENT.REMOTE_VIDEO_UNAVAILABLE,V))}async function m(){if(k(),a){for(const[,t]of n){try{await a.stopRemoteVideo({userId:t.userId,streamType:t.streamType})}catch{}t.wrap.remove()}n.clear(),r.value&&(r.value.innerHTML="");try{await a.exitRoom()}catch{}try{a.destroy()}catch{}a=null}else n.clear(),r.value&&(r.value.innerHTML="")}async function L(){const t=++p;if(await m(),!u.diagnosisId){i.value="诊单无效";return}l.value=!0,i.value="",f.value="旁观视频通话";try{const e=await Y({diagnosis_id:u.diagnosisId});if(t!==p)return;e.patientName&&(f.value=`旁观视频通话 · ${e.patientName}`),a=c.create(),C();const o={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,autoReceiveAudio:!0,autoReceiveVideo:!0,...e.roomId!=null&&e.roomId>0?{roomId:e.roomId}:{strRoomId:e.strRoomId}};if(!(e.roomId!=null&&e.roomId>0)&&!e.strRoomId)throw new Error("缺少房间号");if(await a.enterRoom(o),t!==p){await m();return}l.value=!1}catch(e){l.value=!1;let o="进入房间失败";if(typeof e=="string")o=e;else if(e&&typeof e=="object"){const s=e;s.msg?o=String(s.msg):s.message&&(o=String(s.message))}i.value=o,await m()}}function M(){m(),l.value=!1,i.value="",f.value="旁观视频通话",g("closed")}return D(()=>[u.modelValue,u.diagnosisId],([t,e])=>{if(!t){p++,m();return}e>0&&L()}),(t,e)=>{const o=U,s=H;return E(),O(s,{modelValue:y.value,"onUpdate:modelValue":e[1]||(e[1]=d=>y.value=d),title:f.value,width:"760px","destroy-on-close":"","append-to-body":"","close-on-click-modal":!1,class:"assistant-watch-call-dialog",onClosed:M},{footer:I(()=>[e[3]||(e[3]=h("span",{class:"watch-hint"},"仅观看,不会开启摄像头与麦克风",-1)),P(o,{type:"primary",onClick:e[0]||(e[0]=d=>y.value=!1)},{default:I(()=>[...e[2]||(e[2]=[$("离开",-1)])]),_:1})]),default:I(()=>[l.value?(E(),_("div",z,"正在连接房间…")):i.value?(E(),_("div",F,S(i.value),1)):x("",!0),W(h("div",{ref_key:"gridRef",ref:r,class:"watch-grid"},null,512),[[j,!l.value&&!i.value]])]),_:1},8,["modelValue","title"])}}}),Z=q(G,[["__scopeId","data-v-7aff665d"]]);export{Z as default};
+import{o as B,R as D,q as E,O,D as I,r as _,T as S,P as x,ac as W,s as h,ad as j,v as P,K as U,L as $,bt as H,p as K,M as v,dj as c}from"./.pnpm-BuKxIMgQ.js";import{ah as Y}from"./tcm-BZvWmp4G.js";import{_ as q}from"./index-BZAvl557.js";const z={key:0,class:"watch-state"},F={key:1,class:"watch-state watch-error"},G=B({__name:"AssistantWatchCallDialog",props:{modelValue:{type:Boolean},diagnosisId:{}},emits:["update:modelValue","closed"],setup(R,{emit:A}){const u=R,g=A,y=K({get:()=>u.modelValue,set:t=>g("update:modelValue",t)}),r=v(null),l=v(!1),i=v(""),f=v("旁观视频通话"),n=new Map;let a=null,p=0;function w(t,e){return`${t}\0${String(e)}`}function N(t){return t.startsWith("patient_")?"患者":t.startsWith("doctor_")?"医护":t}async function T(t){if(!a||!r.value||t.streamType!==c.TYPE.STREAM_TYPE_MAIN)return;const e=w(t.userId,t.streamType);if(n.has(e))return;const o=document.createElement("div");o.className="watch-tile";const s=document.createElement("div");s.className="watch-tile-cap",s.textContent=N(t.userId);const d=document.createElement("div");d.className="watch-tile-view",o.appendChild(s),o.appendChild(d),r.value.appendChild(o),n.set(e,{wrap:o,userId:t.userId,streamType:t.streamType});try{await a.startRemoteVideo({userId:t.userId,streamType:t.streamType,view:d})}catch(b){console.warn("[AssistantWatchCall] startRemoteVideo",b)}}async function V(t){if(!a)return;const e=w(t.userId,t.streamType),o=n.get(e);if(o){try{await a.stopRemoteVideo({userId:t.userId,streamType:t.streamType})}catch{}o.wrap.remove(),n.delete(e)}}function C(){a&&(a.on(c.EVENT.REMOTE_VIDEO_AVAILABLE,T),a.on(c.EVENT.REMOTE_VIDEO_UNAVAILABLE,V))}function k(){a&&(a.off(c.EVENT.REMOTE_VIDEO_AVAILABLE,T),a.off(c.EVENT.REMOTE_VIDEO_UNAVAILABLE,V))}async function m(){if(k(),a){for(const[,t]of n){try{await a.stopRemoteVideo({userId:t.userId,streamType:t.streamType})}catch{}t.wrap.remove()}n.clear(),r.value&&(r.value.innerHTML="");try{await a.exitRoom()}catch{}try{a.destroy()}catch{}a=null}else n.clear(),r.value&&(r.value.innerHTML="")}async function L(){const t=++p;if(await m(),!u.diagnosisId){i.value="诊单无效";return}l.value=!0,i.value="",f.value="旁观视频通话";try{const e=await Y({diagnosis_id:u.diagnosisId});if(t!==p)return;e.patientName&&(f.value=`旁观视频通话 · ${e.patientName}`),a=c.create(),C();const o={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,autoReceiveAudio:!0,autoReceiveVideo:!0,...e.roomId!=null&&e.roomId>0?{roomId:e.roomId}:{strRoomId:e.strRoomId}};if(!(e.roomId!=null&&e.roomId>0)&&!e.strRoomId)throw new Error("缺少房间号");if(await a.enterRoom(o),t!==p){await m();return}l.value=!1}catch(e){l.value=!1;let o="进入房间失败";if(typeof e=="string")o=e;else if(e&&typeof e=="object"){const s=e;s.msg?o=String(s.msg):s.message&&(o=String(s.message))}i.value=o,await m()}}function M(){m(),l.value=!1,i.value="",f.value="旁观视频通话",g("closed")}return D(()=>[u.modelValue,u.diagnosisId],([t,e])=>{if(!t){p++,m();return}e>0&&L()}),(t,e)=>{const o=U,s=H;return E(),O(s,{modelValue:y.value,"onUpdate:modelValue":e[1]||(e[1]=d=>y.value=d),title:f.value,width:"760px","destroy-on-close":"","append-to-body":"","close-on-click-modal":!1,class:"assistant-watch-call-dialog",onClosed:M},{footer:I(()=>[e[3]||(e[3]=h("span",{class:"watch-hint"},"仅观看,不会开启摄像头与麦克风",-1)),P(o,{type:"primary",onClick:e[0]||(e[0]=d=>y.value=!1)},{default:I(()=>[...e[2]||(e[2]=[$("离开",-1)])]),_:1})]),default:I(()=>[l.value?(E(),_("div",z,"正在连接房间…")):i.value?(E(),_("div",F,S(i.value),1)):x("",!0),W(h("div",{ref_key:"gridRef",ref:r,class:"watch-grid"},null,512),[[j,!l.value&&!i.value]])]),_:1},8,["modelValue","title"])}}}),Z=q(G,[["__scopeId","data-v-7aff665d"]]);export{Z as default};
diff --git a/server/public/admin/assets/BloodRecordList-BIH62bek.js b/server/public/admin/assets/BloodRecordList-Dnv4LIXY.js
similarity index 96%
rename from server/public/admin/assets/BloodRecordList-BIH62bek.js
rename to server/public/admin/assets/BloodRecordList-Dnv4LIXY.js
index cf5b5aa1f..8d46910d3 100644
--- a/server/public/admin/assets/BloodRecordList-BIH62bek.js
+++ b/server/public/admin/assets/BloodRecordList-Dnv4LIXY.js
@@ -1 +1 @@
-import{o as ee,M as m,ap as le,aq as ae,R as Y,q as V,r as F,s as u,O as H,D as n,L as _,K as te,P as O,v as l,bn as oe,C as A,u as s,bm as se,bp as ne,bg as de,bk as re,T as k,bj as ie,b9 as ue,b6 as pe,c5 as me,J as _e,b7 as ce,bt as fe,p as ge,n as be,dk as ye}from"./.pnpm-BHOjf1ZS.js";import{ai as ve,aj as Ve,ak as he,a0 as ke,a1 as we}from"./tcm-BkYsBTA3.js";import{j as w,_ as Ie}from"./index-B31vLELt.js";const xe={class:"blood-record-list"},Ce={class:"mb-4"},Ee={class:"mb-4"},Te={key:0},De={key:1},Re=5,Ue=ee({__name:"BloodRecordList",props:{diagnosisId:{type:Number,default:0},patientId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},setup(D){const d=D,P=m([]),c=m(!1),R=m(!1),$=ge(()=>o.value.id?"编辑记录":"添加记录"),f=m(7),g=m(null),p=m({dates:[],fasting:[],postprandial_2h:[],other:[]}),U=m();let b=null,N=0;const o=m({id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",record_time:"",fasting_blood_sugar:0,postprandial_blood_sugar:0,other_blood_sugar:0,systolic_pressure:0,diastolic_pressure:0,western_medicine:"",insulin:"",remark:""});function B(t){if(t==null||t==="")return"-";const e=Number(String(t).trim());return!Number.isFinite(e)||e===0?"-":String(e.toFixed(2).replace(/\.?0+$/,""))}const h=async()=>{if(!(!d.diagnosisId&&!d.patientId))try{const t={diagnosis_id:d.diagnosisId,patient_id:d.patientId};f.value===0&&g.value?(t.start_date=Math.floor(g.value[0].getTime()/1e3),t.end_date=Math.floor(g.value[1].getTime()/1e3)):t.days=f.value;const e=await ve(t);p.value=e,L()}catch(t){console.error("获取趋势图数据失败:",t)}},j=()=>{f.value!==0&&(g.value=null),h()},L=()=>{be(()=>{setTimeout(()=>{if(!U.value)return;const t=U.value;if(t.clientWidth===0||t.clientHeight===0){NL(),100));return}N=0,b&&b.dispose(),b=ye(t);const e=(M,i)=>{const C=new Map;return M.forEach(r=>{C.set(r.date,r.value)}),i.map(r=>C.get(r)||null)},y=e(p.value.fasting,p.value.dates),v=e(p.value.postprandial_2h,p.value.dates),S=e(p.value.other,p.value.dates),x={tooltip:{trigger:"axis",axisPointer:{type:"cross"}},legend:{data:["空腹血糖","餐后2小时血糖","其他血糖"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:p.value.dates},yAxis:{type:"value",name:"血糖值 (mmol/L)"},series:[{name:"空腹血糖",type:"line",data:y,smooth:!0,connectNulls:!0},{name:"餐后2小时血糖",type:"line",data:v,smooth:!0,connectNulls:!0},{name:"其他血糖",type:"line",data:S,smooth:!0,connectNulls:!0}]};b.setOption(x),b.resize()},100)})},I=async()=>{if(!(!d.diagnosisId&&!d.patientId))try{const t=await Ve({diagnosis_id:d.diagnosisId,patient_id:d.patientId});P.value=t}catch(t){console.error("获取记录失败:",t)}},q=()=>{o.value={id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",record_time:"",fasting_blood_sugar:0,postprandial_blood_sugar:0,other_blood_sugar:0,systolic_pressure:0,diastolic_pressure:0,western_medicine:"",insulin:"",remark:""},c.value=!0},G=t=>{o.value={...t,fasting_blood_sugar:parseFloat(t.fasting_blood_sugar)||0,postprandial_blood_sugar:parseFloat(t.postprandial_blood_sugar)||0,other_blood_sugar:parseFloat(t.other_blood_sugar)||0,systolic_pressure:parseInt(t.systolic_pressure)||0,diastolic_pressure:parseInt(t.diastolic_pressure)||0},c.value=!0},W=t=>{o.value.other_blood_sugar=t.replace(/[^\d.]/g,"")},z=async t=>{await w.confirm("确定要删除这条记录吗?");try{await he({id:t.id}),w.msgSuccess("删除成功"),I()}catch(e){console.error("删除失败:",e)}},J=async()=>{if(!o.value.record_date){w.msgWarning("请选择记录日期");return}R.value=!0;try{o.value.id?(await ke(o.value),w.msgSuccess("编辑成功")):(await we(o.value),w.msgSuccess("添加成功")),c.value=!1,I(),h()}catch(t){console.error("提交失败:",t)}finally{R.value=!1}};return le(()=>{setTimeout(()=>{I(),h()},500)}),ae(()=>{b&&b.dispose()}),Y(()=>[d.diagnosisId,d.patientId],()=>{I(),h()}),Y(()=>d.diagnosisId,t=>{t&&setTimeout(()=>{L()},500)}),(t,e)=>{const y=te,v=oe,S=se,x=ne,M=de,i=re,C=ie,r=pe,K=me,E=_e,T=ce,X=ue,Q=fe;return V(),F("div",xe,[u("div",Ce,[D.readOnly?O("",!0):(V(),H(y,{key:0,type:"primary",onClick:q},{default:n(()=>[...e[14]||(e[14]=[_("添加记录",-1)])]),_:1})),l(S,{modelValue:s(f),"onUpdate:modelValue":e[0]||(e[0]=a=>A(f)?f.value=a:null),onChange:j,class:"ml-2",style:{width:"150px"}},{default:n(()=>[l(v,{label:"最近7天",value:7}),l(v,{label:"最近30天",value:30}),l(v,{label:"最近90天",value:90}),l(v,{label:"最近一年",value:365}),l(v,{label:"自定义",value:0})]),_:1},8,["modelValue"]),s(f)===0?(V(),H(x,{key:1,modelValue:s(g),"onUpdate:modelValue":e[1]||(e[1]=a=>A(g)?g.value=a:null),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",onChange:h,class:"ml-2",style:{width:"300px"}},null,8,["modelValue"])):O("",!0)]),u("div",Ee,[l(M,null,{header:n(()=>[...e[15]||(e[15]=[u("div",{class:"card-header"},[u("span",null,"血糖趋势图")],-1)])]),default:n(()=>[u("div",{ref_key:"chartRef",ref:U,style:{width:"100%",height:"400px"}},null,512)]),_:1})]),l(C,{data:s(P),border:"",style:{width:"100%"}},{default:n(()=>[l(i,{prop:"record_date",label:"记录日期",width:"120"}),l(i,{prop:"record_time",label:"记录时间",width:"100"}),l(i,{label:"空腹血糖(mmol/L)",width:"120"},{default:n(({row:a})=>[_(k(B(a.fasting_blood_sugar)),1)]),_:1}),l(i,{label:"餐后2小时血糖(mmol/L)",width:"150"},{default:n(({row:a})=>[_(k(B(a.postprandial_blood_sugar)),1)]),_:1}),l(i,{label:"其他血糖(mmol/L)",width:"120"},{default:n(({row:a})=>[_(k(B(a.other_blood_sugar)),1)]),_:1}),l(i,{label:"血压(mmHg)",width:"150"},{default:n(({row:a})=>[a.systolic_pressure&&a.diastolic_pressure?(V(),F("span",Te,k(a.systolic_pressure)+"/"+k(a.diastolic_pressure),1)):(V(),F("span",De,"-"))]),_:1}),l(i,{prop:"western_medicine",label:"西药","show-overflow-tooltip":""}),l(i,{prop:"insulin",label:"胰岛素","show-overflow-tooltip":""}),l(i,{prop:"remark",label:"备注","show-overflow-tooltip":""}),D.readOnly?O("",!0):(V(),H(i,{key:0,label:"操作",width:"150",fixed:"right"},{default:n(({row:a})=>[l(y,{link:"",type:"primary",onClick:Z=>G(a)},{default:n(()=>[...e[16]||(e[16]=[_("编辑",-1)])]),_:1},8,["onClick"]),l(y,{link:"",type:"danger",onClick:Z=>z(a)},{default:n(()=>[...e[17]||(e[17]=[_("删除",-1)])]),_:1},8,["onClick"])]),_:1}))]),_:1},8,["data"]),l(Q,{modelValue:s(c),"onUpdate:modelValue":e[13]||(e[13]=a=>A(c)?c.value=a:null),title:s($),width:"600px"},{footer:n(()=>[l(y,{onClick:e[12]||(e[12]=a=>c.value=!1)},{default:n(()=>[...e[23]||(e[23]=[_("取消",-1)])]),_:1}),l(y,{type:"primary",onClick:J,loading:s(R)},{default:n(()=>[...e[24]||(e[24]=[_("确定",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(X,{model:s(o),"label-width":"120px"},{default:n(()=>[l(r,{label:"记录日期",required:""},{default:n(()=>[l(x,{modelValue:s(o).record_date,"onUpdate:modelValue":e[2]||(e[2]=a=>s(o).record_date=a),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),l(r,{label:"记录时间"},{default:n(()=>[l(K,{modelValue:s(o).record_time,"onUpdate:modelValue":e[3]||(e[3]=a=>s(o).record_time=a),placeholder:"选择时间",format:"HH:mm","value-format":"HH:mm",class:"w-full"},null,8,["modelValue"])]),_:1}),l(r,{label:"空腹血糖"},{default:n(()=>[l(E,{modelValue:s(o).fasting_blood_sugar,"onUpdate:modelValue":e[4]||(e[4]=a=>s(o).fasting_blood_sugar=a),precision:2,step:.1,min:0,max:50,placeholder:"请输入空腹血糖"},null,8,["modelValue"]),e[18]||(e[18]=u("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),l(r,{label:"餐后2小时血糖"},{default:n(()=>[l(E,{modelValue:s(o).postprandial_blood_sugar,"onUpdate:modelValue":e[5]||(e[5]=a=>s(o).postprandial_blood_sugar=a),precision:2,step:.1,min:0,max:50,placeholder:"请输入餐后2小时血糖"},null,8,["modelValue"]),e[19]||(e[19]=u("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),l(r,{label:"其他血糖"},{default:n(()=>[l(T,{modelValue:s(o).other_blood_sugar,"onUpdate:modelValue":e[6]||(e[6]=a=>s(o).other_blood_sugar=a),placeholder:"请输入其他血糖",type:"number",maxlength:"10",onInput:W,style:{width:"200px"}},null,8,["modelValue"]),e[20]||(e[20]=u("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),l(r,{label:"收缩压(高压)"},{default:n(()=>[l(E,{modelValue:s(o).systolic_pressure,"onUpdate:modelValue":e[7]||(e[7]=a=>s(o).systolic_pressure=a),min:0,max:300,placeholder:"请输入收缩压"},null,8,["modelValue"]),e[21]||(e[21]=u("span",{class:"ml-2"},"mmHg",-1))]),_:1}),l(r,{label:"舒张压(低压)"},{default:n(()=>[l(E,{modelValue:s(o).diastolic_pressure,"onUpdate:modelValue":e[8]||(e[8]=a=>s(o).diastolic_pressure=a),min:0,max:200,placeholder:"请输入舒张压"},null,8,["modelValue"]),e[22]||(e[22]=u("span",{class:"ml-2"},"mmHg",-1))]),_:1}),l(r,{label:"西药"},{default:n(()=>[l(T,{modelValue:s(o).western_medicine,"onUpdate:modelValue":e[9]||(e[9]=a=>s(o).western_medicine=a),placeholder:"请输入西药"},null,8,["modelValue"])]),_:1}),l(r,{label:"胰岛素"},{default:n(()=>[l(T,{modelValue:s(o).insulin,"onUpdate:modelValue":e[10]||(e[10]=a=>s(o).insulin=a),placeholder:"请输入胰岛素"},null,8,["modelValue"])]),_:1}),l(r,{label:"备注"},{default:n(()=>[l(T,{modelValue:s(o).remark,"onUpdate:modelValue":e[11]||(e[11]=a=>s(o).remark=a),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Se=Ie(Ue,[["__scopeId","data-v-3a187401"]]);export{Se as default};
+import{o as ee,M as m,ap as le,aq as ae,R as Y,q as V,r as F,s as u,O as H,D as n,L as _,K as te,P as O,v as l,bg as oe,C as A,u as s,bf as se,be as ne,bh as de,bj as re,T as k,bi as ie,b9 as ue,b6 as pe,c5 as me,J as _e,b7 as ce,bt as fe,p as ge,n as be,dk as ye}from"./.pnpm-BuKxIMgQ.js";import{ai as ve,aj as Ve,ak as he,a0 as ke,a1 as we}from"./tcm-BZvWmp4G.js";import{j as w,_ as Ie}from"./index-BZAvl557.js";const xe={class:"blood-record-list"},Ce={class:"mb-4"},Ee={class:"mb-4"},Te={key:0},De={key:1},Re=5,Ue=ee({__name:"BloodRecordList",props:{diagnosisId:{type:Number,default:0},patientId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},setup(D){const d=D,P=m([]),c=m(!1),R=m(!1),$=ge(()=>o.value.id?"编辑记录":"添加记录"),f=m(7),g=m(null),p=m({dates:[],fasting:[],postprandial_2h:[],other:[]}),U=m();let b=null,N=0;const o=m({id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",record_time:"",fasting_blood_sugar:0,postprandial_blood_sugar:0,other_blood_sugar:0,systolic_pressure:0,diastolic_pressure:0,western_medicine:"",insulin:"",remark:""});function B(t){if(t==null||t==="")return"-";const e=Number(String(t).trim());return!Number.isFinite(e)||e===0?"-":String(e.toFixed(2).replace(/\.?0+$/,""))}const h=async()=>{if(!(!d.diagnosisId&&!d.patientId))try{const t={diagnosis_id:d.diagnosisId,patient_id:d.patientId};f.value===0&&g.value?(t.start_date=Math.floor(g.value[0].getTime()/1e3),t.end_date=Math.floor(g.value[1].getTime()/1e3)):t.days=f.value;const e=await ve(t);p.value=e,L()}catch(t){console.error("获取趋势图数据失败:",t)}},j=()=>{f.value!==0&&(g.value=null),h()},L=()=>{be(()=>{setTimeout(()=>{if(!U.value)return;const t=U.value;if(t.clientWidth===0||t.clientHeight===0){NL(),100));return}N=0,b&&b.dispose(),b=ye(t);const e=(M,i)=>{const C=new Map;return M.forEach(r=>{C.set(r.date,r.value)}),i.map(r=>C.get(r)||null)},y=e(p.value.fasting,p.value.dates),v=e(p.value.postprandial_2h,p.value.dates),S=e(p.value.other,p.value.dates),x={tooltip:{trigger:"axis",axisPointer:{type:"cross"}},legend:{data:["空腹血糖","餐后2小时血糖","其他血糖"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:p.value.dates},yAxis:{type:"value",name:"血糖值 (mmol/L)"},series:[{name:"空腹血糖",type:"line",data:y,smooth:!0,connectNulls:!0},{name:"餐后2小时血糖",type:"line",data:v,smooth:!0,connectNulls:!0},{name:"其他血糖",type:"line",data:S,smooth:!0,connectNulls:!0}]};b.setOption(x),b.resize()},100)})},I=async()=>{if(!(!d.diagnosisId&&!d.patientId))try{const t=await Ve({diagnosis_id:d.diagnosisId,patient_id:d.patientId});P.value=t}catch(t){console.error("获取记录失败:",t)}},q=()=>{o.value={id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",record_time:"",fasting_blood_sugar:0,postprandial_blood_sugar:0,other_blood_sugar:0,systolic_pressure:0,diastolic_pressure:0,western_medicine:"",insulin:"",remark:""},c.value=!0},G=t=>{o.value={...t,fasting_blood_sugar:parseFloat(t.fasting_blood_sugar)||0,postprandial_blood_sugar:parseFloat(t.postprandial_blood_sugar)||0,other_blood_sugar:parseFloat(t.other_blood_sugar)||0,systolic_pressure:parseInt(t.systolic_pressure)||0,diastolic_pressure:parseInt(t.diastolic_pressure)||0},c.value=!0},W=t=>{o.value.other_blood_sugar=t.replace(/[^\d.]/g,"")},z=async t=>{await w.confirm("确定要删除这条记录吗?");try{await he({id:t.id}),w.msgSuccess("删除成功"),I()}catch(e){console.error("删除失败:",e)}},J=async()=>{if(!o.value.record_date){w.msgWarning("请选择记录日期");return}R.value=!0;try{o.value.id?(await ke(o.value),w.msgSuccess("编辑成功")):(await we(o.value),w.msgSuccess("添加成功")),c.value=!1,I(),h()}catch(t){console.error("提交失败:",t)}finally{R.value=!1}};return le(()=>{setTimeout(()=>{I(),h()},500)}),ae(()=>{b&&b.dispose()}),Y(()=>[d.diagnosisId,d.patientId],()=>{I(),h()}),Y(()=>d.diagnosisId,t=>{t&&setTimeout(()=>{L()},500)}),(t,e)=>{const y=te,v=oe,S=se,x=ne,M=de,i=re,C=ie,r=pe,K=me,E=_e,T=ce,X=ue,Q=fe;return V(),F("div",xe,[u("div",Ce,[D.readOnly?O("",!0):(V(),H(y,{key:0,type:"primary",onClick:q},{default:n(()=>[...e[14]||(e[14]=[_("添加记录",-1)])]),_:1})),l(S,{modelValue:s(f),"onUpdate:modelValue":e[0]||(e[0]=a=>A(f)?f.value=a:null),onChange:j,class:"ml-2",style:{width:"150px"}},{default:n(()=>[l(v,{label:"最近7天",value:7}),l(v,{label:"最近30天",value:30}),l(v,{label:"最近90天",value:90}),l(v,{label:"最近一年",value:365}),l(v,{label:"自定义",value:0})]),_:1},8,["modelValue"]),s(f)===0?(V(),H(x,{key:1,modelValue:s(g),"onUpdate:modelValue":e[1]||(e[1]=a=>A(g)?g.value=a:null),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",onChange:h,class:"ml-2",style:{width:"300px"}},null,8,["modelValue"])):O("",!0)]),u("div",Ee,[l(M,null,{header:n(()=>[...e[15]||(e[15]=[u("div",{class:"card-header"},[u("span",null,"血糖趋势图")],-1)])]),default:n(()=>[u("div",{ref_key:"chartRef",ref:U,style:{width:"100%",height:"400px"}},null,512)]),_:1})]),l(C,{data:s(P),border:"",style:{width:"100%"}},{default:n(()=>[l(i,{prop:"record_date",label:"记录日期",width:"120"}),l(i,{prop:"record_time",label:"记录时间",width:"100"}),l(i,{label:"空腹血糖(mmol/L)",width:"120"},{default:n(({row:a})=>[_(k(B(a.fasting_blood_sugar)),1)]),_:1}),l(i,{label:"餐后2小时血糖(mmol/L)",width:"150"},{default:n(({row:a})=>[_(k(B(a.postprandial_blood_sugar)),1)]),_:1}),l(i,{label:"其他血糖(mmol/L)",width:"120"},{default:n(({row:a})=>[_(k(B(a.other_blood_sugar)),1)]),_:1}),l(i,{label:"血压(mmHg)",width:"150"},{default:n(({row:a})=>[a.systolic_pressure&&a.diastolic_pressure?(V(),F("span",Te,k(a.systolic_pressure)+"/"+k(a.diastolic_pressure),1)):(V(),F("span",De,"-"))]),_:1}),l(i,{prop:"western_medicine",label:"西药","show-overflow-tooltip":""}),l(i,{prop:"insulin",label:"胰岛素","show-overflow-tooltip":""}),l(i,{prop:"remark",label:"备注","show-overflow-tooltip":""}),D.readOnly?O("",!0):(V(),H(i,{key:0,label:"操作",width:"150",fixed:"right"},{default:n(({row:a})=>[l(y,{link:"",type:"primary",onClick:Z=>G(a)},{default:n(()=>[...e[16]||(e[16]=[_("编辑",-1)])]),_:1},8,["onClick"]),l(y,{link:"",type:"danger",onClick:Z=>z(a)},{default:n(()=>[...e[17]||(e[17]=[_("删除",-1)])]),_:1},8,["onClick"])]),_:1}))]),_:1},8,["data"]),l(Q,{modelValue:s(c),"onUpdate:modelValue":e[13]||(e[13]=a=>A(c)?c.value=a:null),title:s($),width:"600px"},{footer:n(()=>[l(y,{onClick:e[12]||(e[12]=a=>c.value=!1)},{default:n(()=>[...e[23]||(e[23]=[_("取消",-1)])]),_:1}),l(y,{type:"primary",onClick:J,loading:s(R)},{default:n(()=>[...e[24]||(e[24]=[_("确定",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(X,{model:s(o),"label-width":"120px"},{default:n(()=>[l(r,{label:"记录日期",required:""},{default:n(()=>[l(x,{modelValue:s(o).record_date,"onUpdate:modelValue":e[2]||(e[2]=a=>s(o).record_date=a),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),l(r,{label:"记录时间"},{default:n(()=>[l(K,{modelValue:s(o).record_time,"onUpdate:modelValue":e[3]||(e[3]=a=>s(o).record_time=a),placeholder:"选择时间",format:"HH:mm","value-format":"HH:mm",class:"w-full"},null,8,["modelValue"])]),_:1}),l(r,{label:"空腹血糖"},{default:n(()=>[l(E,{modelValue:s(o).fasting_blood_sugar,"onUpdate:modelValue":e[4]||(e[4]=a=>s(o).fasting_blood_sugar=a),precision:2,step:.1,min:0,max:50,placeholder:"请输入空腹血糖"},null,8,["modelValue"]),e[18]||(e[18]=u("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),l(r,{label:"餐后2小时血糖"},{default:n(()=>[l(E,{modelValue:s(o).postprandial_blood_sugar,"onUpdate:modelValue":e[5]||(e[5]=a=>s(o).postprandial_blood_sugar=a),precision:2,step:.1,min:0,max:50,placeholder:"请输入餐后2小时血糖"},null,8,["modelValue"]),e[19]||(e[19]=u("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),l(r,{label:"其他血糖"},{default:n(()=>[l(T,{modelValue:s(o).other_blood_sugar,"onUpdate:modelValue":e[6]||(e[6]=a=>s(o).other_blood_sugar=a),placeholder:"请输入其他血糖",type:"number",maxlength:"10",onInput:W,style:{width:"200px"}},null,8,["modelValue"]),e[20]||(e[20]=u("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),l(r,{label:"收缩压(高压)"},{default:n(()=>[l(E,{modelValue:s(o).systolic_pressure,"onUpdate:modelValue":e[7]||(e[7]=a=>s(o).systolic_pressure=a),min:0,max:300,placeholder:"请输入收缩压"},null,8,["modelValue"]),e[21]||(e[21]=u("span",{class:"ml-2"},"mmHg",-1))]),_:1}),l(r,{label:"舒张压(低压)"},{default:n(()=>[l(E,{modelValue:s(o).diastolic_pressure,"onUpdate:modelValue":e[8]||(e[8]=a=>s(o).diastolic_pressure=a),min:0,max:200,placeholder:"请输入舒张压"},null,8,["modelValue"]),e[22]||(e[22]=u("span",{class:"ml-2"},"mmHg",-1))]),_:1}),l(r,{label:"西药"},{default:n(()=>[l(T,{modelValue:s(o).western_medicine,"onUpdate:modelValue":e[9]||(e[9]=a=>s(o).western_medicine=a),placeholder:"请输入西药"},null,8,["modelValue"])]),_:1}),l(r,{label:"胰岛素"},{default:n(()=>[l(T,{modelValue:s(o).insulin,"onUpdate:modelValue":e[10]||(e[10]=a=>s(o).insulin=a),placeholder:"请输入胰岛素"},null,8,["modelValue"])]),_:1}),l(r,{label:"备注"},{default:n(()=>[l(T,{modelValue:s(o).remark,"onUpdate:modelValue":e[11]||(e[11]=a=>s(o).remark=a),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Se=Ie(Ue,[["__scopeId","data-v-3a187401"]]);export{Se as default};
diff --git a/server/public/admin/assets/CallRecordPanel-DMqPw_JP.js b/server/public/admin/assets/CallRecordPanel-CPY0fOwN.js
similarity index 83%
rename from server/public/admin/assets/CallRecordPanel-DMqPw_JP.js
rename to server/public/admin/assets/CallRecordPanel-CPY0fOwN.js
index 49247ae92..37a930579 100644
--- a/server/public/admin/assets/CallRecordPanel-DMqPw_JP.js
+++ b/server/public/admin/assets/CallRecordPanel-CPY0fOwN.js
@@ -1 +1 @@
-import{o as N,dl as O,R as P,q as d,r as f,v as o,D as i,K as V,L as n,P as h,ac as D,O as w,bj as L,bk as j,T as u,s as y,bi as z,M as v}from"./.pnpm-BHOjf1ZS.js";import M from"./RecordingPlaybackBlock-CGNt462L.js";import{U as x}from"./index-BXyqGAss.js";import{j as c,_ as q}from"./index-B31vLELt.js";import{al as K,am as k,an as A}from"./tcm-BkYsBTA3.js";import"./RecordingVideoPlayer-D3gHlSLF.js";import"./file-DFj3ko4j.js";const F={class:"call-record-panel"},G={key:0,class:"call-record-toolbar"},H={class:"call-record-empty"},J={class:"call-record-empty__desc"},Q={key:0,class:"text-primary"},W={key:1,class:"text-gray-400"},X=N({__name:"CallRecordPanel",props:{diagnosisId:{},readOnly:{type:Boolean,default:!1}},setup(_,{expose:R}){const r=_,p=v(!1),g=v([]),U=O("toolbarUploadRef"),m=async()=>{if(r.diagnosisId){p.value=!0;try{g.value=await K({diagnosis_id:r.diagnosisId})||[]}catch(e){console.error(e),g.value=[]}finally{p.value=!1}}};P(()=>r.diagnosisId,()=>{m()},{immediate:!0}),R({refresh:m});function C(e){return{1:"进行中",2:"已结束",3:"未接听",4:"已取消"}[e]??"—"}async function S(e){const t=b(e);if(!t){c.msgError("上传成功但未返回视频地址");return}try{const a=await A({diagnosis_id:r.diagnosisId});await k({diagnosis_id:r.diagnosisId,call_record_id:Number((a==null?void 0:a.id)||0),file_url:t}),c.msgSuccess("视频回放上传成功"),await m()}catch(a){c.msgError((a==null?void 0:a.message)||"写入回放失败")}}async function E(e,t){const a=b(t);if(!a){c.msgError("上传成功但未返回视频地址");return}try{await k({diagnosis_id:r.diagnosisId,call_record_id:Number(e.id||0),file_url:a}),c.msgSuccess("视频回放上传成功"),await m()}catch(l){c.msgError((l==null?void 0:l.message)||"写入回放失败")}}function b(e){var t,a;return String(((t=e==null?void 0:e.data)==null?void 0:t.uri)||((a=e==null?void 0:e.data)==null?void 0:a.url)||"").trim()}return(e,t)=>{const a=V,l=j,I=L,B=z;return d(),f("div",F,[_.readOnly?h("",!0):(d(),f("div",G,[o(x,{ref_key:"toolbarUploadRef",ref:U,type:"video",direct:"",multiple:!1,limit:1,"show-progress":!0,onSuccess:S},{default:i(()=>[o(a,{type:"primary"},{default:i(()=>[...t[0]||(t[0]=[n("上传视频",-1)])]),_:1})]),_:1},512)])),D((d(),w(I,{data:g.value,border:"",stripe:""},{empty:i(()=>[y("div",H,[t[1]||(t[1]=y("div",{class:"call-record-empty__title"},"暂无通话记录",-1)),y("div",J,u(_.readOnly?"暂无录制回放数据。":"现在可以直接点击上方“上传视频”。系统会自动生成一条默认通话记录来承载回放。"),1)])]),default:i(()=>[o(l,{label:"录制回放","min-width":"320"},{default:i(({row:s})=>[o(M,{"record-id":s.id,urls:s.recording_urls_list},null,8,["record-id","urls"])]),_:1}),o(l,{label:"开始时间",width:"170",prop:"start_time_text"}),o(l,{label:"结束时间",width:"170",prop:"end_time_text"}),o(l,{label:"通话类型",width:"100"},{default:i(({row:s})=>[n(u(s.call_type===1?"语音":"视频"),1)]),_:1}),o(l,{label:"房间号",width:"180"},{default:i(({row:s})=>[s.room_id?(d(),f("span",Q,u(s.room_id),1)):(d(),f("span",W,"—"))]),_:1}),o(l,{label:"时长",width:"110",prop:"duration_text"}),o(l,{label:"状态",width:"90"},{default:i(({row:s})=>[n(u(C(s.status)),1)]),_:1}),o(l,{label:"录制",width:"100"},{default:i(({row:s})=>[n(u(s.recording_status_text||"—"),1)]),_:1}),_.readOnly?h("",!0):(d(),w(l,{key:0,label:"上传回放",width:"180"},{default:i(({row:s})=>[o(x,{type:"video",direct:"",multiple:!1,limit:1,"show-progress":!0,onSuccess:T=>E(s,T)},{default:i(()=>[o(a,{type:"primary",plain:"",size:"small"},{default:i(()=>[...t[2]||(t[2]=[n("上传视频",-1)])]),_:1})]),_:1},8,["onSuccess"])]),_:1}))]),_:1},8,["data"])),[[B,p.value]])])}}}),sa=q(X,[["__scopeId","data-v-78d5c9e4"]]);export{sa as default};
+import{o as N,dl as O,R as P,q as d,r as f,v as o,D as i,K as V,L as n,P as h,ac as D,O as w,bi as L,bj as j,T as u,s as y,bl as z,M as v}from"./.pnpm-BuKxIMgQ.js";import M from"./RecordingPlaybackBlock-lcAipGfC.js";import{U as x}from"./index-CzMLdmwb.js";import{j as c,_ as q}from"./index-BZAvl557.js";import{al as K,am as R,an as A}from"./tcm-BZvWmp4G.js";import"./RecordingVideoPlayer-Cp0NJ94z.js";import"./file-4O37R3TG.js";const F={class:"call-record-panel"},G={key:0,class:"call-record-toolbar"},H={class:"call-record-empty"},J={class:"call-record-empty__desc"},Q={key:0,class:"text-primary"},W={key:1,class:"text-gray-400"},X=N({__name:"CallRecordPanel",props:{diagnosisId:{},readOnly:{type:Boolean,default:!1}},setup(_,{expose:k}){const r=_,p=v(!1),g=v([]),U=O("toolbarUploadRef"),m=async()=>{if(r.diagnosisId){p.value=!0;try{g.value=await K({diagnosis_id:r.diagnosisId})||[]}catch(e){console.error(e),g.value=[]}finally{p.value=!1}}};P(()=>r.diagnosisId,()=>{m()},{immediate:!0}),k({refresh:m});function C(e){return{1:"进行中",2:"已结束",3:"未接听",4:"已取消"}[e]??"—"}async function S(e){const t=b(e);if(!t){c.msgError("上传成功但未返回视频地址");return}try{const a=await A({diagnosis_id:r.diagnosisId});await R({diagnosis_id:r.diagnosisId,call_record_id:Number((a==null?void 0:a.id)||0),file_url:t}),c.msgSuccess("视频回放上传成功"),await m()}catch(a){c.msgError((a==null?void 0:a.message)||"写入回放失败")}}async function E(e,t){const a=b(t);if(!a){c.msgError("上传成功但未返回视频地址");return}try{await R({diagnosis_id:r.diagnosisId,call_record_id:Number(e.id||0),file_url:a}),c.msgSuccess("视频回放上传成功"),await m()}catch(l){c.msgError((l==null?void 0:l.message)||"写入回放失败")}}function b(e){var t,a;return String(((t=e==null?void 0:e.data)==null?void 0:t.uri)||((a=e==null?void 0:e.data)==null?void 0:a.url)||"").trim()}return(e,t)=>{const a=V,l=j,I=L,B=z;return d(),f("div",F,[_.readOnly?h("",!0):(d(),f("div",G,[o(x,{ref_key:"toolbarUploadRef",ref:U,type:"video",direct:"",multiple:!1,limit:1,"show-progress":!0,onSuccess:S},{default:i(()=>[o(a,{type:"primary"},{default:i(()=>[...t[0]||(t[0]=[n("上传视频",-1)])]),_:1})]),_:1},512)])),D((d(),w(I,{data:g.value,border:"",stripe:""},{empty:i(()=>[y("div",H,[t[1]||(t[1]=y("div",{class:"call-record-empty__title"},"暂无通话记录",-1)),y("div",J,u(_.readOnly?"暂无录制回放数据。":"现在可以直接点击上方“上传视频”。系统会自动生成一条默认通话记录来承载回放。"),1)])]),default:i(()=>[o(l,{label:"录制回放","min-width":"320"},{default:i(({row:s})=>[o(M,{"record-id":s.id,urls:s.recording_urls_list},null,8,["record-id","urls"])]),_:1}),o(l,{label:"开始时间",width:"170",prop:"start_time_text"}),o(l,{label:"结束时间",width:"170",prop:"end_time_text"}),o(l,{label:"通话类型",width:"100"},{default:i(({row:s})=>[n(u(s.call_type===1?"语音":"视频"),1)]),_:1}),o(l,{label:"房间号",width:"180"},{default:i(({row:s})=>[s.room_id?(d(),f("span",Q,u(s.room_id),1)):(d(),f("span",W,"—"))]),_:1}),o(l,{label:"时长",width:"110",prop:"duration_text"}),o(l,{label:"状态",width:"90"},{default:i(({row:s})=>[n(u(C(s.status)),1)]),_:1}),o(l,{label:"录制",width:"100"},{default:i(({row:s})=>[n(u(s.recording_status_text||"—"),1)]),_:1}),_.readOnly?h("",!0):(d(),w(l,{key:0,label:"上传回放",width:"180"},{default:i(({row:s})=>[o(x,{type:"video",direct:"",multiple:!1,limit:1,"show-progress":!0,onSuccess:T=>E(s,T)},{default:i(()=>[o(a,{type:"primary",plain:"",size:"small"},{default:i(()=>[...t[2]||(t[2]=[n("上传视频",-1)])]),_:1})]),_:1},8,["onSuccess"])]),_:1}))]),_:1},8,["data"])),[[B,p.value]])])}}}),sa=q(X,[["__scopeId","data-v-78d5c9e4"]]);export{sa as default};
diff --git a/server/public/admin/assets/CaseRecordList-CXWEviPe.js b/server/public/admin/assets/CaseRecordList-DJjK2TXG.js
similarity index 90%
rename from server/public/admin/assets/CaseRecordList-CXWEviPe.js
rename to server/public/admin/assets/CaseRecordList-DJjK2TXG.js
index a92e21eaa..5d5444676 100644
--- a/server/public/admin/assets/CaseRecordList-CXWEviPe.js
+++ b/server/public/admin/assets/CaseRecordList-DJjK2TXG.js
@@ -1 +1 @@
-import{o as T,ap as V,R as I,q as o,r as l,v as a,K as N,D as i,L as c,P as k,ac as z,bi as M,u as p,O as f,bk as O,T as _,F as P,br as j,s as F,bj as R,bB as A,M as w}from"./.pnpm-BHOjf1ZS.js";import{ao as q}from"./tcm-BkYsBTA3.js";import{_ as H}from"./index-B31vLELt.js";const K={class:"case-record-list"},Y={key:0,class:"mb-3 flex justify-end"},G={key:0},J={key:1,class:"text-gray-400"},Q={class:"void-detail text-xs text-gray-500 mt-1"},U=T({__name:"CaseRecordList",props:{diagnosisId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},emits:["view","openPrescription"],setup(y,{expose:x,emit:C}){const m=y,b=C,r=w([]),d=w(!1),u=async()=>{if(m.diagnosisId){d.value=!0;try{const t=await q({diagnosis_id:m.diagnosisId});r.value=Array.isArray(t)?t:[]}catch(t){console.error("获取病历记录失败:",t),r.value=[]}finally{d.value=!1}}},S=t=>{if(!t)return"";const e=new Date(t*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`},B=t=>{b("view",t)},$=()=>{b("openPrescription")};return V(()=>{u()}),I(()=>m.diagnosisId,()=>{u()}),x({refresh:u}),(t,e)=>{const h=N,n=O,v=j,E=R,D=A,L=M;return o(),l("div",K,[y.readOnly?k("",!0):(o(),l("div",Y,[a(h,{type:"primary",size:"small",onClick:$},{default:i(()=>[...e[0]||(e[0]=[c("开方",-1)])]),_:1})])),z((o(),f(E,{data:p(r),border:""},{default:i(()=>[a(n,{prop:"prescription_date",label:"就诊日期",width:"120"}),a(n,{prop:"visit_no",label:"门诊号",width:"120"}),a(n,{prop:"clinical_diagnosis",label:"临床诊断","min-width":"160","show-overflow-tooltip":""}),a(n,{label:"处方摘要","min-width":"180"},{default:i(({row:s})=>[s.herbs&&s.herbs.length?(o(),l("span",G,_(s.herbs.slice(0,3).map(g=>`${g.name}${g.dosage}克`).join("、"))+_(s.herbs.length>3?"...":""),1)):(o(),l("span",J,"—"))]),_:1}),a(n,{prop:"doctor_name",label:"医师",width:"90","show-overflow-tooltip":""}),a(n,{label:"状态",width:"140",align:"center"},{default:i(({row:s})=>[s.void_status===1?(o(),l(P,{key:0},[a(v,{type:"danger",size:"small"},{default:i(()=>[...e[1]||(e[1]=[c("已作废",-1)])]),_:1}),F("div",Q,_(s.void_by_name||"—")+" "+_(S(s.void_time)),1)],64)):(o(),f(v,{key:1,type:"success",size:"small"},{default:i(()=>[...e[2]||(e[2]=[c("正常",-1)])]),_:1}))]),_:1}),a(n,{label:"操作",width:"120",fixed:"right"},{default:i(({row:s})=>[a(h,{link:"",type:"primary",size:"small",onClick:g=>B(s)},{default:i(()=>[...e[3]||(e[3]=[c(" 查看 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[L,p(d)]]),!p(d)&&p(r).length===0?(o(),f(D,{key:1,description:"暂无病历记录,开方后会自动显示",class:"mt-4"})):k("",!0)])}}}),ee=H(U,[["__scopeId","data-v-043d2738"]]);export{ee as default};
+import{o as T,ap as V,R as I,q as o,r as l,v as a,K as N,D as i,L as c,P as k,ac as z,bl as M,u as p,O as f,bj as O,T as _,F as P,bk as j,s as F,bi as R,bB as A,M as w}from"./.pnpm-BuKxIMgQ.js";import{ao as q}from"./tcm-BZvWmp4G.js";import{_ as H}from"./index-BZAvl557.js";const K={class:"case-record-list"},Y={key:0,class:"mb-3 flex justify-end"},G={key:0},J={key:1,class:"text-gray-400"},Q={class:"void-detail text-xs text-gray-500 mt-1"},U=T({__name:"CaseRecordList",props:{diagnosisId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},emits:["view","openPrescription"],setup(y,{expose:x,emit:C}){const m=y,b=C,r=w([]),d=w(!1),u=async()=>{if(m.diagnosisId){d.value=!0;try{const t=await q({diagnosis_id:m.diagnosisId});r.value=Array.isArray(t)?t:[]}catch(t){console.error("获取病历记录失败:",t),r.value=[]}finally{d.value=!1}}},S=t=>{if(!t)return"";const e=new Date(t*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`},B=t=>{b("view",t)},$=()=>{b("openPrescription")};return V(()=>{u()}),I(()=>m.diagnosisId,()=>{u()}),x({refresh:u}),(t,e)=>{const h=N,n=O,v=j,E=R,D=A,L=M;return o(),l("div",K,[y.readOnly?k("",!0):(o(),l("div",Y,[a(h,{type:"primary",size:"small",onClick:$},{default:i(()=>[...e[0]||(e[0]=[c("开方",-1)])]),_:1})])),z((o(),f(E,{data:p(r),border:""},{default:i(()=>[a(n,{prop:"prescription_date",label:"就诊日期",width:"120"}),a(n,{prop:"visit_no",label:"门诊号",width:"120"}),a(n,{prop:"clinical_diagnosis",label:"临床诊断","min-width":"160","show-overflow-tooltip":""}),a(n,{label:"处方摘要","min-width":"180"},{default:i(({row:s})=>[s.herbs&&s.herbs.length?(o(),l("span",G,_(s.herbs.slice(0,3).map(g=>`${g.name}${g.dosage}克`).join("、"))+_(s.herbs.length>3?"...":""),1)):(o(),l("span",J,"—"))]),_:1}),a(n,{prop:"doctor_name",label:"医师",width:"90","show-overflow-tooltip":""}),a(n,{label:"状态",width:"140",align:"center"},{default:i(({row:s})=>[s.void_status===1?(o(),l(P,{key:0},[a(v,{type:"danger",size:"small"},{default:i(()=>[...e[1]||(e[1]=[c("已作废",-1)])]),_:1}),F("div",Q,_(s.void_by_name||"—")+" "+_(S(s.void_time)),1)],64)):(o(),f(v,{key:1,type:"success",size:"small"},{default:i(()=>[...e[2]||(e[2]=[c("正常",-1)])]),_:1}))]),_:1}),a(n,{label:"操作",width:"120",fixed:"right"},{default:i(({row:s})=>[a(h,{link:"",type:"primary",size:"small",onClick:g=>B(s)},{default:i(()=>[...e[3]||(e[3]=[c(" 查看 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[L,p(d)]]),!p(d)&&p(r).length===0?(o(),f(D,{key:1,description:"暂无病历记录,开方后会自动显示",class:"mt-4"})):k("",!0)])}}}),ee=H(U,[["__scopeId","data-v-043d2738"]]);export{ee as default};
diff --git a/server/public/admin/assets/DailyMatrix-CBuciytJ.js b/server/public/admin/assets/DailyMatrix-BiBmGsrr.js
similarity index 96%
rename from server/public/admin/assets/DailyMatrix-CBuciytJ.js
rename to server/public/admin/assets/DailyMatrix-BiBmGsrr.js
index 36cfed4b7..c5e5e25d9 100644
--- a/server/public/admin/assets/DailyMatrix-CBuciytJ.js
+++ b/server/public/admin/assets/DailyMatrix-BiBmGsrr.js
@@ -1,2 +1,2 @@
-import{o as dl,M as _,R as ml,n as ce,ap as fl,aq as vl,ac as pl,q as p,r as b,s as g,v as a,bc as _l,D as s,bb as gl,L as c,O as C,P as U,K as cl,bj as bl,bk as yl,F as P,G as be,ae as kl,a1 as Vl,T as ie,u as xl,cK as wl,bt as Dl,b9 as Rl,b6 as Sl,bp as Cl,c5 as Ul,J as Tl,b7 as El,bD as Hl,bm as Ml,bn as Yl,bi as hl,p as d,bB as Bl}from"./.pnpm-BHOjf1ZS.js";import{_ as Nl}from"./picker-DY0rRn6Q.js";import Wl from"./DiagnosisTodoList-KmLvXj7N.js";import{h as $l}from"./perm-LGazrkDZ.js";import{_ as Al,$ as Ll,a0 as Fl,a1 as ql,a2 as Il,a3 as Pl,a4 as zl,a5 as Ol,a6 as Gl}from"./tcm-BkYsBTA3.js";import{c as jl,f as Kl,d as Jl,e as Ql,b as Xl}from"./blood-thresholds-CJ1fqMjh.js";import{j as T,_ as Zl}from"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";import"./index-Mwguss-B.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./index-Btk0rgzN.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./usePaging-oaNM6A9T.js";const ea={class:"daily-matrix"},la={class:"daily-matrix__toolbar"},aa={class:"daily-matrix__toolbar-left"},ta={key:0,class:"daily-matrix__toolbar-right"},oa={key:0,class:"daily-matrix__legend"},na={key:1,class:"daily-matrix__toolbar-right"},sa={key:0,class:"daily-matrix__legend"},ia=["onClick"],ua={class:"daily-matrix__tracking-tooltip"},ra={class:"daily-matrix__tracking-preview"},da={key:0,class:"daily-matrix__cell-up"},ma={class:"daily-matrix__chart"},fa={key:0,class:"daily-matrix__todo"},va={class:"daily-matrix__tracking-existing"},pa=120,_a=dl({__name:"DailyMatrix",props:{diagnosisId:{},patientId:{},age:{default:void 0},readOnly:{type:Boolean,default:!1},patientName:{default:""}},setup(Be,{expose:Ne}){const We=["tcm.diagnosis/dailyRecord"],D=Be,R=d(()=>Number(D.diagnosisId||0)),z=d(()=>Number(D.patientId||0)),ue=d(()=>!!D.readOnly),$e=d(()=>D.patientName||""),ye=d(()=>$l(We)),E=d(()=>ye.value&&!ue.value),Ae=d(()=>ye.value),re=_(!1),H=_("7"),$=_(null),A=_([]),O=_([]),G=_([]),j=_([]),Y=_(!1),h=_(!1),B=_(!1),N=_(!1),de=_(!1),me=_(!1),fe=_(!1),ve=_(!1),u=_(Q()),m=_(X()),f=_(Z()),y=_({note_date:"",existing_content:"",content:""}),Le=d(()=>u.value.id?"编辑血糖血压记录":"新增血糖血压记录"),Fe=d(()=>m.value.id?"编辑饮食记录":"新增饮食记录"),qe=d(()=>f.value.id?"编辑运动记录":"新增运动记录"),K=d(()=>L(new Date)),W=d(()=>!ue.value&&y.value.note_date===K.value),Ie=d(()=>W.value?"新增/追加跟踪备注":"查看跟踪备注"),ke=_(null),Ve=_(0),Pe=[{key:"fasting",label:"空腹血糖"},{key:"postprandial",label:"餐后2h血糖"},{key:"other",label:"其他血糖"},{key:"bp",label:"血压"},{key:"western",label:"西药"},{key:"insulin",label:"胰岛素"},{key:"breakfast",label:"早餐"},{key:"lunch",label:"午餐"},{key:"dinner",label:"晚餐"},{key:"exercise",label:"运动"},{key:"tracking",label:"跟踪备注"}],ze=d(()=>[...Pe]),Oe=d(()=>{const t=q.value.length;if(t<=0||t>7)return 100;const e=Math.max(Ve.value-pa-2,0),l=e>0?Math.floor(e/t):100;return Math.max(100,l)});let J=0;function L(t){return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function xe(t){return new Date(`${t}T00:00:00`)}function F(){var t;Ve.value=((t=ke.value)==null?void 0:t.clientWidth)||0}function Q(t=""){return{id:"",diagnosis_id:R.value,patient_id:z.value,record_date:t,record_time:"",fasting_blood_sugar:0,postprandial_blood_sugar:0,other_blood_sugar:"",systolic_pressure:0,diastolic_pressure:0,western_medicine:"",insulin:"",remark:""}}function X(t=""){return{id:"",diagnosis_id:R.value,patient_id:z.value,record_date:t,breakfast_foods:"",breakfast_images:[],lunch_foods:"",lunch_images:[],dinner_foods:"",dinner_images:[],note:""}}function Z(t=""){return{id:"",diagnosis_id:R.value,patient_id:z.value,record_date:t,exercise_type:"",duration:0,intensity:1,images:[],note:""}}function Ge(t){return t.getTime()>Date.now()}function we(t){if(t==="custom"){const[v,i]=$.value||["",""];return{start:v||"",end:i||""}}const e=t==="7"?7:30,l=new Date;l.setHours(0,0,0,0);const n=new Date(l);return n.setDate(n.getDate()-(e-1)),{start:L(n),end:L(l)}}const De=d(()=>we(H.value)),q=d(()=>{const{start:t,end:e}=De.value;if(!t||!e)return[];const l=[],n=xe(e),v=xe(t).getTime();for(;n.getTime()>=v;)l.push(L(n)),n.setDate(n.getDate()-1);return l}),Re=d(()=>A.value.some(t=>Number(t.source)===1)),pe=d(()=>{const t=new Map;for(const e of A.value){const l=String(e.record_date||"");if(!l)continue;t.has(l)||t.set(l,{id:e.id,diagnosis_id:e.diagnosis_id,patient_id:e.patient_id,record_date:l,record_time:e.record_time||"",record_date_ts:e.record_date_ts,has_patient_self:!1});const n=t.get(l),v=["fasting_blood_sugar","postprandial_blood_sugar","other_blood_sugar","systolic_pressure","diastolic_pressure","western_medicine","insulin","remark"];for(const i of v)(n[i]===void 0||n[i]===null||n[i]==="")&&e[i]!==void 0&&e[i]!==null&&e[i]!==""&&(n[i]=e[i]);Number(e.source)===1&&(n.has_patient_self=!0)}return t}),Se=d(()=>{const t=new Map;for(const e of O.value){const l=String(e.record_date||"");!l||t.has(l)||t.set(l,e)}return t}),Ce=d(()=>{const t=new Map;for(const e of G.value){const l=String(e.record_date||"");!l||t.has(l)||t.set(l,e)}return t}),ee=d(()=>{const t=new Map;for(const e of j.value){const l=String(e.note_date||"");!l||t.has(l)||t.set(l,e)}return t}),Ue=d(()=>[...q.value].reverse()),le=d(()=>Ue.value.reduce((t,e)=>{const l=pe.value.get(e);return t.fasting.push(Ee(l==null?void 0:l.fasting_blood_sugar)),t.postprandial.push(Ee(l==null?void 0:l.postprandial_blood_sugar)),t},{fasting:[],postprandial:[]})),je=d(()=>[...le.value.fasting,...le.value.postprandial].some(t=>t!=null)),Ke=d(()=>({tooltip:{trigger:"axis"},legend:{top:0,data:["空腹血糖","餐后血糖"]},grid:{left:24,right:24,top:52,bottom:20,containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:Ue.value.map(t=>Te(t))},yAxis:{type:"value",name:"mmol/L",splitLine:{lineStyle:{color:"#e5e7eb"}}},series:[{name:"空腹血糖",type:"line",smooth:!0,connectNulls:!0,data:le.value.fasting,symbolSize:7,itemStyle:{color:"#2563eb"},lineStyle:{width:3,color:"#2563eb"}},{name:"餐后血糖",type:"line",smooth:!0,connectNulls:!0,data:le.value.postprandial,symbolSize:7,itemStyle:{color:"#f97316"},lineStyle:{width:3,color:"#f97316"}}]}));function Te(t){return t.slice(5)}function Ee(t){if(t===""||t==null)return null;const e=Number(t);return!Number.isFinite(e)||e===0?null:e}function S(t,e){const l=pe.value.get(e),n=Se.value.get(e),v=Ce.value.get(e),i=ee.value.get(e),M=!!(l!=null&&l.has_patient_self);switch(t){case"fasting":return{value:(l==null?void 0:l.fasting_blood_sugar)!=null&&l.fasting_blood_sugar!==""?String(l.fasting_blood_sugar):"",isHigh:Xl(l==null?void 0:l.fasting_blood_sugar,D.age),hasRecord:!!l&&l.fasting_blood_sugar!=null&&l.fasting_blood_sugar!=="",isPatientSelf:M};case"postprandial":return{value:(l==null?void 0:l.postprandial_blood_sugar)!=null&&l.postprandial_blood_sugar!==""?String(l.postprandial_blood_sugar):"",isHigh:Ql(l==null?void 0:l.postprandial_blood_sugar,D.age),hasRecord:!!l&&l.postprandial_blood_sugar!=null&&l.postprandial_blood_sugar!=="",isPatientSelf:M};case"other":return{value:(l==null?void 0:l.other_blood_sugar)!=null&&l.other_blood_sugar!==""?String(l.other_blood_sugar):"",isHigh:Jl(l==null?void 0:l.other_blood_sugar,D.age),hasRecord:!!l&&l.other_blood_sugar!=null&&l.other_blood_sugar!=="",isPatientSelf:M};case"bp":return{value:l&&(l.systolic_pressure||l.diastolic_pressure)?Kl(l):"",isHigh:jl(l),hasRecord:!!l&&!!(l.systolic_pressure||l.diastolic_pressure),isPatientSelf:M};case"western":return{value:(l==null?void 0:l.western_medicine)||"",isHigh:!1,hasRecord:!!(l!=null&&l.western_medicine)};case"insulin":return{value:(l==null?void 0:l.insulin)||"",isHigh:!1,hasRecord:!!(l!=null&&l.insulin)};case"breakfast":return{value:n!=null&&n.breakfast||n!=null&&n.breakfast_foods?"✓":"",isHigh:!1,hasRecord:!!(n!=null&&n.breakfast||n!=null&&n.breakfast_foods)};case"lunch":return{value:n!=null&&n.lunch||n!=null&&n.lunch_foods?"✓":"",isHigh:!1,hasRecord:!!(n!=null&&n.lunch||n!=null&&n.lunch_foods)};case"dinner":return{value:n!=null&&n.dinner||n!=null&&n.dinner_foods?"✓":"",isHigh:!1,hasRecord:!!(n!=null&&n.dinner||n!=null&&n.dinner_foods)};case"exercise":return{value:v!=null&&v.duration?`${v.duration}min`:"",isHigh:!1,hasRecord:!!(v!=null&&v.id)};case"tracking":return{value:i!=null&&i.content?He(i.content):"",isHigh:!1,hasRecord:!!(i!=null&&i.content)};default:return{value:"",isHigh:!1,hasRecord:!1}}}async function V(){if(!R.value){A.value=[],O.value=[],G.value=[],j.value=[];return}const{start:t,end:e}=De.value;if(H.value==="custom"&&(!t||!e))return;const l=++J;re.value=!0;try{const n=await Al({id:R.value,start_date:t,end_date:e}),v=await Ll({diagnosis_id:R.value});if(l!==J)return;A.value=Array.isArray(n==null?void 0:n.blood_records)?n.blood_records:[],O.value=Array.isArray(n==null?void 0:n.diet_records)?n.diet_records:[],G.value=Array.isArray(n==null?void 0:n.exercise_records)?n.exercise_records:[],j.value=Array.isArray(v)?v.filter(i=>q.value.includes(String((i==null?void 0:i.note_date)||""))):[]}catch{l===J&&(A.value=[],O.value=[],G.value=[],j.value=[])}finally{l===J&&(re.value=!1)}}function Je(){if(H.value==="custom"&&!$.value){const t=we("7");$.value=[t.start,t.end]}V(),ce(F)}function Qe(){H.value==="custom"&&V()}function ae(t){if(!E.value)return;const e=q.value[0]||L(new Date);if(t==="blood"){u.value=Q(e),Y.value=!0;return}if(t==="diet"){m.value=X(e),h.value=!0;return}if(t==="tracking"){const l=K.value,n=ee.value.get(l);y.value={note_date:l,existing_content:String((n==null?void 0:n.content)||""),content:""},N.value=!0;return}f.value=Z(e),B.value=!0}function Xe(t,e){if(!E.value)return;if(["fasting","postprandial","other","bp","western","insulin"].includes(t)){const n=pe.value.get(e);u.value=n?{...Q(e),...n}:Q(e),Y.value=!0;return}if(["breakfast","lunch","dinner"].includes(t)){const n=Se.value.get(e);m.value=n?{...X(e),...n}:X(e),h.value=!0;return}if(t==="tracking"){const n=ee.value.get(e);if(!n&&e!==K.value)return;y.value={note_date:e,existing_content:String((n==null?void 0:n.content)||""),content:""},N.value=!0;return}const l=Ce.value.get(e);f.value=l?{...Z(e),...l}:Z(e),B.value=!0}async function Ze(){if(!u.value.record_date){T.msgWarning("请选择记录日期");return}de.value=!0;try{u.value.id?await Fl(u.value):await ql(u.value),Y.value=!1,await V()}finally{de.value=!1}}async function el(){if(!m.value.record_date){T.msgWarning("请选择记录日期");return}me.value=!0;try{m.value.id?await Il(m.value):await Pl(m.value),h.value=!1,await V()}finally{me.value=!1}}async function ll(){if(!f.value.record_date){T.msgWarning("请选择记录日期");return}if(!f.value.exercise_type){T.msgWarning("请选择运动类型");return}if(!f.value.duration){T.msgWarning("请输入运动时长");return}fe.value=!0;try{f.value.id?await zl(f.value):await Ol(f.value),B.value=!1,await V()}finally{fe.value=!1}}async function al(){if(!y.value.note_date){T.msgWarning("请选择记录日期");return}if(!W.value){T.msgWarning("仅支持给今天追加跟踪备注");return}const t=y.value.content.trim();if(!t){T.msgWarning("请输入跟踪备注");return}ve.value=!0;try{await Gl({diagnosis_id:R.value,tracking_content:t}),N.value=!1,await V()}finally{ve.value=!1}}function He(t){return _e(t)[0]||""}function _e(t){return t.split(`
+import{o as dl,M as _,R as ml,n as ce,ap as fl,aq as vl,ac as pl,q as p,r as b,s as g,v as a,bc as _l,D as s,bb as gl,L as c,O as C,P as U,K as cl,bi as bl,bj as yl,F as P,G as be,ae as kl,a1 as Vl,T as ie,u as xl,cK as wl,bt as Dl,b9 as Rl,b6 as Sl,be as Cl,c5 as Ul,J as Tl,b7 as El,bD as Hl,bf as Ml,bg as Yl,bl as hl,p as d,bB as Bl}from"./.pnpm-BuKxIMgQ.js";import{_ as Nl}from"./picker-C-hBLp_q.js";import Wl from"./DiagnosisTodoList-D0asUCAQ.js";import{h as $l}from"./perm-DZClfK-E.js";import{_ as Al,$ as Ll,a0 as Fl,a1 as ql,a2 as Il,a3 as Pl,a4 as zl,a5 as Ol,a6 as Gl}from"./tcm-BZvWmp4G.js";import{c as jl,f as Kl,d as Jl,e as Ql,b as Xl}from"./blood-thresholds-CJ1fqMjh.js";import{j as T,_ as Zl}from"./index-BZAvl557.js";import"./index-BARAiw4K.js";import"./index-DO2zctlZ.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./index-BYpT7Ezr.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./usePaging-DNtxCypz.js";const ea={class:"daily-matrix"},la={class:"daily-matrix__toolbar"},aa={class:"daily-matrix__toolbar-left"},ta={key:0,class:"daily-matrix__toolbar-right"},oa={key:0,class:"daily-matrix__legend"},na={key:1,class:"daily-matrix__toolbar-right"},sa={key:0,class:"daily-matrix__legend"},ia=["onClick"],ua={class:"daily-matrix__tracking-tooltip"},ra={class:"daily-matrix__tracking-preview"},da={key:0,class:"daily-matrix__cell-up"},ma={class:"daily-matrix__chart"},fa={key:0,class:"daily-matrix__todo"},va={class:"daily-matrix__tracking-existing"},pa=120,_a=dl({__name:"DailyMatrix",props:{diagnosisId:{},patientId:{},age:{default:void 0},readOnly:{type:Boolean,default:!1},patientName:{default:""}},setup(Be,{expose:Ne}){const We=["tcm.diagnosis/dailyRecord"],D=Be,R=d(()=>Number(D.diagnosisId||0)),z=d(()=>Number(D.patientId||0)),ue=d(()=>!!D.readOnly),$e=d(()=>D.patientName||""),ye=d(()=>$l(We)),E=d(()=>ye.value&&!ue.value),Ae=d(()=>ye.value),re=_(!1),H=_("7"),$=_(null),A=_([]),O=_([]),G=_([]),j=_([]),Y=_(!1),h=_(!1),B=_(!1),N=_(!1),de=_(!1),me=_(!1),fe=_(!1),ve=_(!1),u=_(Q()),m=_(X()),f=_(Z()),y=_({note_date:"",existing_content:"",content:""}),Le=d(()=>u.value.id?"编辑血糖血压记录":"新增血糖血压记录"),Fe=d(()=>m.value.id?"编辑饮食记录":"新增饮食记录"),qe=d(()=>f.value.id?"编辑运动记录":"新增运动记录"),K=d(()=>L(new Date)),W=d(()=>!ue.value&&y.value.note_date===K.value),Ie=d(()=>W.value?"新增/追加跟踪备注":"查看跟踪备注"),ke=_(null),Ve=_(0),Pe=[{key:"fasting",label:"空腹血糖"},{key:"postprandial",label:"餐后2h血糖"},{key:"other",label:"其他血糖"},{key:"bp",label:"血压"},{key:"western",label:"西药"},{key:"insulin",label:"胰岛素"},{key:"breakfast",label:"早餐"},{key:"lunch",label:"午餐"},{key:"dinner",label:"晚餐"},{key:"exercise",label:"运动"},{key:"tracking",label:"跟踪备注"}],ze=d(()=>[...Pe]),Oe=d(()=>{const t=q.value.length;if(t<=0||t>7)return 100;const e=Math.max(Ve.value-pa-2,0),l=e>0?Math.floor(e/t):100;return Math.max(100,l)});let J=0;function L(t){return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function xe(t){return new Date(`${t}T00:00:00`)}function F(){var t;Ve.value=((t=ke.value)==null?void 0:t.clientWidth)||0}function Q(t=""){return{id:"",diagnosis_id:R.value,patient_id:z.value,record_date:t,record_time:"",fasting_blood_sugar:0,postprandial_blood_sugar:0,other_blood_sugar:"",systolic_pressure:0,diastolic_pressure:0,western_medicine:"",insulin:"",remark:""}}function X(t=""){return{id:"",diagnosis_id:R.value,patient_id:z.value,record_date:t,breakfast_foods:"",breakfast_images:[],lunch_foods:"",lunch_images:[],dinner_foods:"",dinner_images:[],note:""}}function Z(t=""){return{id:"",diagnosis_id:R.value,patient_id:z.value,record_date:t,exercise_type:"",duration:0,intensity:1,images:[],note:""}}function Ge(t){return t.getTime()>Date.now()}function we(t){if(t==="custom"){const[v,i]=$.value||["",""];return{start:v||"",end:i||""}}const e=t==="7"?7:30,l=new Date;l.setHours(0,0,0,0);const n=new Date(l);return n.setDate(n.getDate()-(e-1)),{start:L(n),end:L(l)}}const De=d(()=>we(H.value)),q=d(()=>{const{start:t,end:e}=De.value;if(!t||!e)return[];const l=[],n=xe(e),v=xe(t).getTime();for(;n.getTime()>=v;)l.push(L(n)),n.setDate(n.getDate()-1);return l}),Re=d(()=>A.value.some(t=>Number(t.source)===1)),pe=d(()=>{const t=new Map;for(const e of A.value){const l=String(e.record_date||"");if(!l)continue;t.has(l)||t.set(l,{id:e.id,diagnosis_id:e.diagnosis_id,patient_id:e.patient_id,record_date:l,record_time:e.record_time||"",record_date_ts:e.record_date_ts,has_patient_self:!1});const n=t.get(l),v=["fasting_blood_sugar","postprandial_blood_sugar","other_blood_sugar","systolic_pressure","diastolic_pressure","western_medicine","insulin","remark"];for(const i of v)(n[i]===void 0||n[i]===null||n[i]==="")&&e[i]!==void 0&&e[i]!==null&&e[i]!==""&&(n[i]=e[i]);Number(e.source)===1&&(n.has_patient_self=!0)}return t}),Se=d(()=>{const t=new Map;for(const e of O.value){const l=String(e.record_date||"");!l||t.has(l)||t.set(l,e)}return t}),Ce=d(()=>{const t=new Map;for(const e of G.value){const l=String(e.record_date||"");!l||t.has(l)||t.set(l,e)}return t}),ee=d(()=>{const t=new Map;for(const e of j.value){const l=String(e.note_date||"");!l||t.has(l)||t.set(l,e)}return t}),Ue=d(()=>[...q.value].reverse()),le=d(()=>Ue.value.reduce((t,e)=>{const l=pe.value.get(e);return t.fasting.push(Ee(l==null?void 0:l.fasting_blood_sugar)),t.postprandial.push(Ee(l==null?void 0:l.postprandial_blood_sugar)),t},{fasting:[],postprandial:[]})),je=d(()=>[...le.value.fasting,...le.value.postprandial].some(t=>t!=null)),Ke=d(()=>({tooltip:{trigger:"axis"},legend:{top:0,data:["空腹血糖","餐后血糖"]},grid:{left:24,right:24,top:52,bottom:20,containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:Ue.value.map(t=>Te(t))},yAxis:{type:"value",name:"mmol/L",splitLine:{lineStyle:{color:"#e5e7eb"}}},series:[{name:"空腹血糖",type:"line",smooth:!0,connectNulls:!0,data:le.value.fasting,symbolSize:7,itemStyle:{color:"#2563eb"},lineStyle:{width:3,color:"#2563eb"}},{name:"餐后血糖",type:"line",smooth:!0,connectNulls:!0,data:le.value.postprandial,symbolSize:7,itemStyle:{color:"#f97316"},lineStyle:{width:3,color:"#f97316"}}]}));function Te(t){return t.slice(5)}function Ee(t){if(t===""||t==null)return null;const e=Number(t);return!Number.isFinite(e)||e===0?null:e}function S(t,e){const l=pe.value.get(e),n=Se.value.get(e),v=Ce.value.get(e),i=ee.value.get(e),M=!!(l!=null&&l.has_patient_self);switch(t){case"fasting":return{value:(l==null?void 0:l.fasting_blood_sugar)!=null&&l.fasting_blood_sugar!==""?String(l.fasting_blood_sugar):"",isHigh:Xl(l==null?void 0:l.fasting_blood_sugar,D.age),hasRecord:!!l&&l.fasting_blood_sugar!=null&&l.fasting_blood_sugar!=="",isPatientSelf:M};case"postprandial":return{value:(l==null?void 0:l.postprandial_blood_sugar)!=null&&l.postprandial_blood_sugar!==""?String(l.postprandial_blood_sugar):"",isHigh:Ql(l==null?void 0:l.postprandial_blood_sugar,D.age),hasRecord:!!l&&l.postprandial_blood_sugar!=null&&l.postprandial_blood_sugar!=="",isPatientSelf:M};case"other":return{value:(l==null?void 0:l.other_blood_sugar)!=null&&l.other_blood_sugar!==""?String(l.other_blood_sugar):"",isHigh:Jl(l==null?void 0:l.other_blood_sugar,D.age),hasRecord:!!l&&l.other_blood_sugar!=null&&l.other_blood_sugar!=="",isPatientSelf:M};case"bp":return{value:l&&(l.systolic_pressure||l.diastolic_pressure)?Kl(l):"",isHigh:jl(l),hasRecord:!!l&&!!(l.systolic_pressure||l.diastolic_pressure),isPatientSelf:M};case"western":return{value:(l==null?void 0:l.western_medicine)||"",isHigh:!1,hasRecord:!!(l!=null&&l.western_medicine)};case"insulin":return{value:(l==null?void 0:l.insulin)||"",isHigh:!1,hasRecord:!!(l!=null&&l.insulin)};case"breakfast":return{value:n!=null&&n.breakfast||n!=null&&n.breakfast_foods?"✓":"",isHigh:!1,hasRecord:!!(n!=null&&n.breakfast||n!=null&&n.breakfast_foods)};case"lunch":return{value:n!=null&&n.lunch||n!=null&&n.lunch_foods?"✓":"",isHigh:!1,hasRecord:!!(n!=null&&n.lunch||n!=null&&n.lunch_foods)};case"dinner":return{value:n!=null&&n.dinner||n!=null&&n.dinner_foods?"✓":"",isHigh:!1,hasRecord:!!(n!=null&&n.dinner||n!=null&&n.dinner_foods)};case"exercise":return{value:v!=null&&v.duration?`${v.duration}min`:"",isHigh:!1,hasRecord:!!(v!=null&&v.id)};case"tracking":return{value:i!=null&&i.content?He(i.content):"",isHigh:!1,hasRecord:!!(i!=null&&i.content)};default:return{value:"",isHigh:!1,hasRecord:!1}}}async function V(){if(!R.value){A.value=[],O.value=[],G.value=[],j.value=[];return}const{start:t,end:e}=De.value;if(H.value==="custom"&&(!t||!e))return;const l=++J;re.value=!0;try{const n=await Al({id:R.value,start_date:t,end_date:e}),v=await Ll({diagnosis_id:R.value});if(l!==J)return;A.value=Array.isArray(n==null?void 0:n.blood_records)?n.blood_records:[],O.value=Array.isArray(n==null?void 0:n.diet_records)?n.diet_records:[],G.value=Array.isArray(n==null?void 0:n.exercise_records)?n.exercise_records:[],j.value=Array.isArray(v)?v.filter(i=>q.value.includes(String((i==null?void 0:i.note_date)||""))):[]}catch{l===J&&(A.value=[],O.value=[],G.value=[],j.value=[])}finally{l===J&&(re.value=!1)}}function Je(){if(H.value==="custom"&&!$.value){const t=we("7");$.value=[t.start,t.end]}V(),ce(F)}function Qe(){H.value==="custom"&&V()}function ae(t){if(!E.value)return;const e=q.value[0]||L(new Date);if(t==="blood"){u.value=Q(e),Y.value=!0;return}if(t==="diet"){m.value=X(e),h.value=!0;return}if(t==="tracking"){const l=K.value,n=ee.value.get(l);y.value={note_date:l,existing_content:String((n==null?void 0:n.content)||""),content:""},N.value=!0;return}f.value=Z(e),B.value=!0}function Xe(t,e){if(!E.value)return;if(["fasting","postprandial","other","bp","western","insulin"].includes(t)){const n=pe.value.get(e);u.value=n?{...Q(e),...n}:Q(e),Y.value=!0;return}if(["breakfast","lunch","dinner"].includes(t)){const n=Se.value.get(e);m.value=n?{...X(e),...n}:X(e),h.value=!0;return}if(t==="tracking"){const n=ee.value.get(e);if(!n&&e!==K.value)return;y.value={note_date:e,existing_content:String((n==null?void 0:n.content)||""),content:""},N.value=!0;return}const l=Ce.value.get(e);f.value=l?{...Z(e),...l}:Z(e),B.value=!0}async function Ze(){if(!u.value.record_date){T.msgWarning("请选择记录日期");return}de.value=!0;try{u.value.id?await Fl(u.value):await ql(u.value),Y.value=!1,await V()}finally{de.value=!1}}async function el(){if(!m.value.record_date){T.msgWarning("请选择记录日期");return}me.value=!0;try{m.value.id?await Il(m.value):await Pl(m.value),h.value=!1,await V()}finally{me.value=!1}}async function ll(){if(!f.value.record_date){T.msgWarning("请选择记录日期");return}if(!f.value.exercise_type){T.msgWarning("请选择运动类型");return}if(!f.value.duration){T.msgWarning("请输入运动时长");return}fe.value=!0;try{f.value.id?await zl(f.value):await Ol(f.value),B.value=!1,await V()}finally{fe.value=!1}}async function al(){if(!y.value.note_date){T.msgWarning("请选择记录日期");return}if(!W.value){T.msgWarning("仅支持给今天追加跟踪备注");return}const t=y.value.content.trim();if(!t){T.msgWarning("请输入跟踪备注");return}ve.value=!0;try{await Gl({diagnosis_id:R.value,tracking_content:t}),N.value=!1,await V()}finally{ve.value=!1}}function He(t){return _e(t)[0]||""}function _e(t){return t.split(`
`).map(e=>e.trim()).filter(Boolean)}function te(t){var e;return String(((e=ee.value.get(t))==null?void 0:e.content)||"")}function tl(t){return He(t)}function ol(t,e){return E.value?t!=="tracking"?!0:e===K.value||!!te(e):!1}return ml(()=>D.diagnosisId,t=>{t&&V(),ce(F)}),fl(()=>{D.diagnosisId&&V(),ce(F),window.addEventListener("resize",F)}),vl(()=>{window.removeEventListener("resize",F)}),Ne({refresh:V}),(t,e)=>{const l=gl,n=_l,v=Cl,i=cl,M=yl,Me=Vl,nl=bl,sl=Bl,r=Sl,il=Ul,I=Tl,x=El,oe=Rl,ne=Dl,ge=Hl,se=Nl,w=Yl,Ye=Ml,ul=hl;return pl((p(),b("div",ea,[g("div",la,[g("div",aa,[a(n,{modelValue:H.value,"onUpdate:modelValue":e[0]||(e[0]=o=>H.value=o),onChange:Je},{default:s(()=>[a(l,{value:"7"},{default:s(()=>[...e[40]||(e[40]=[c("最近7天",-1)])]),_:1}),a(l,{value:"30"},{default:s(()=>[...e[41]||(e[41]=[c("最近30天",-1)])]),_:1}),a(l,{value:"custom"},{default:s(()=>[...e[42]||(e[42]=[c("自定义",-1)])]),_:1})]),_:1},8,["modelValue"]),H.value==="custom"?(p(),C(v,{key:0,modelValue:$.value,"onUpdate:modelValue":e[1]||(e[1]=o=>$.value=o),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",clearable:!1,"disabled-date":Ge,onChange:Qe},null,8,["modelValue"])):U("",!0)]),E.value?(p(),b("div",ta,[Re.value?(p(),b("span",oa,[...e[43]||(e[43]=[g("span",{class:"daily-matrix__cell-patient"},"自录",-1),g("span",{class:"daily-matrix__legend-text"},"= 患者在小程序自录",-1)])])):U("",!0),a(i,{type:"primary",onClick:e[2]||(e[2]=o=>ae("blood"))},{default:s(()=>[...e[44]||(e[44]=[c("+血糖",-1)])]),_:1}),a(i,{onClick:e[3]||(e[3]=o=>ae("diet"))},{default:s(()=>[...e[45]||(e[45]=[c("+饮食",-1)])]),_:1}),a(i,{onClick:e[4]||(e[4]=o=>ae("exercise"))},{default:s(()=>[...e[46]||(e[46]=[c("+运动",-1)])]),_:1}),a(i,{onClick:e[5]||(e[5]=o=>ae("tracking"))},{default:s(()=>[...e[47]||(e[47]=[c("+备注",-1)])]),_:1}),a(i,{onClick:V},{default:s(()=>[...e[48]||(e[48]=[c("刷新",-1)])]),_:1})])):(p(),b("div",na,[Re.value?(p(),b("span",sa,[...e[49]||(e[49]=[g("span",{class:"daily-matrix__cell-patient"},"自录",-1),g("span",{class:"daily-matrix__legend-text"},"= 患者在小程序自录",-1)])])):U("",!0),a(i,{onClick:V},{default:s(()=>[...e[50]||(e[50]=[c("刷新",-1)])]),_:1})]))]),g("div",{ref_key:"tableWrapRef",ref:ke,class:"daily-matrix__table-wrap"},[a(nl,{data:ze.value,border:"",stripe:"","row-key":"key",class:"daily-matrix__table","empty-text":"暂无记录"},{default:s(()=>[a(M,{prop:"label",label:"指标",fixed:"left",width:"120"}),(p(!0),b(P,null,be(q.value,o=>(p(),C(M,{key:o,label:Te(o),"min-width":Oe.value,align:"center"},{default:s(({row:k})=>[g("div",{class:kl(["daily-matrix__cell",{"is-clickable":ol(k.key,o),"is-empty":!S(k.key,o).hasRecord,"is-high":S(k.key,o).isHigh,"is-patient-self":S(k.key,o).isPatientSelf&&S(k.key,o).hasRecord}]),onClick:he=>Xe(k.key,o)},[k.key==="tracking"&&te(o)?(p(),C(Me,{key:0,placement:"top",effect:"light","show-after":150},{content:s(()=>[g("div",ua,[(p(!0),b(P,null,be(_e(te(o)),(he,rl)=>(p(),b("div",{key:`${o}-${rl}`,class:"daily-matrix__tracking-tooltip-line"},ie(he),1))),128))])]),default:s(()=>[g("div",ra,ie(tl(te(o))),1)]),_:2},1024)):S(k.key,o).value?(p(),b(P,{key:1},[g("span",null,ie(S(k.key,o).value),1),S(k.key,o).isHigh?(p(),b("span",da,"↑")):U("",!0),S(k.key,o).isPatientSelf?(p(),C(Me,{key:1,content:"患者在小程序自录的数据",placement:"top","show-after":120},{default:s(()=>[...e[51]||(e[51]=[g("span",{class:"daily-matrix__cell-patient"},"自录",-1)])]),_:1})):U("",!0)],64)):(p(),b(P,{key:2},[c("—")],64))],10,ia)]),_:2},1032,["label","min-width"]))),128))]),_:1},8,["data"])],512),g("div",ma,[e[52]||(e[52]=g("div",{class:"daily-matrix__section-title"},"血糖趋势",-1)),je.value?(p(),C(xl(wl),{key:0,class:"daily-matrix__chart-canvas",option:Ke.value,autoresize:""},null,8,["option"])):(p(),C(sl,{key:1,description:"当前时间范围暂无血糖数据","image-size":84}))]),Ae.value?(p(),b("div",fa,[e[53]||(e[53]=g("div",{class:"daily-matrix__section-title"},"待办事项",-1)),a(Wl,{"diagnosis-id":R.value,"patient-id":z.value,"patient-name":$e.value,"read-only":ue.value},null,8,["diagnosis-id","patient-id","patient-name","read-only"])])):U("",!0),a(ne,{modelValue:Y.value,"onUpdate:modelValue":e[17]||(e[17]=o=>Y.value=o),title:Le.value,width:"600px","close-on-click-modal":!1},{footer:s(()=>[a(i,{onClick:e[16]||(e[16]=o=>Y.value=!1)},{default:s(()=>[...e[59]||(e[59]=[c("取消",-1)])]),_:1}),a(i,{type:"primary",loading:de.value,disabled:!E.value,onClick:Ze},{default:s(()=>[...e[60]||(e[60]=[c("确定",-1)])]),_:1},8,["loading","disabled"])]),default:s(()=>[a(oe,{model:u.value,"label-width":"120px"},{default:s(()=>[a(r,{label:"记录日期",required:""},{default:s(()=>[a(v,{modelValue:u.value.record_date,"onUpdate:modelValue":e[6]||(e[6]=o=>u.value.record_date=o),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),a(r,{label:"记录时间"},{default:s(()=>[a(il,{modelValue:u.value.record_time,"onUpdate:modelValue":e[7]||(e[7]=o=>u.value.record_time=o),placeholder:"选择时间",format:"HH:mm","value-format":"HH:mm",class:"w-full"},null,8,["modelValue"])]),_:1}),a(r,{label:"空腹血糖"},{default:s(()=>[a(I,{modelValue:u.value.fasting_blood_sugar,"onUpdate:modelValue":e[8]||(e[8]=o=>u.value.fasting_blood_sugar=o),precision:2,step:.1,min:0,max:50},null,8,["modelValue"]),e[54]||(e[54]=g("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),a(r,{label:"餐后2小时血糖"},{default:s(()=>[a(I,{modelValue:u.value.postprandial_blood_sugar,"onUpdate:modelValue":e[9]||(e[9]=o=>u.value.postprandial_blood_sugar=o),precision:2,step:.1,min:0,max:50},null,8,["modelValue"]),e[55]||(e[55]=g("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),a(r,{label:"其他血糖"},{default:s(()=>[a(x,{modelValue:u.value.other_blood_sugar,"onUpdate:modelValue":e[10]||(e[10]=o=>u.value.other_blood_sugar=o),type:"number",style:{width:"200px"}},null,8,["modelValue"]),e[56]||(e[56]=g("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),a(r,{label:"收缩压(高压)"},{default:s(()=>[a(I,{modelValue:u.value.systolic_pressure,"onUpdate:modelValue":e[11]||(e[11]=o=>u.value.systolic_pressure=o),min:0,max:300},null,8,["modelValue"]),e[57]||(e[57]=g("span",{class:"ml-2"},"mmHg",-1))]),_:1}),a(r,{label:"舒张压(低压)"},{default:s(()=>[a(I,{modelValue:u.value.diastolic_pressure,"onUpdate:modelValue":e[12]||(e[12]=o=>u.value.diastolic_pressure=o),min:0,max:200},null,8,["modelValue"]),e[58]||(e[58]=g("span",{class:"ml-2"},"mmHg",-1))]),_:1}),a(r,{label:"西药"},{default:s(()=>[a(x,{modelValue:u.value.western_medicine,"onUpdate:modelValue":e[13]||(e[13]=o=>u.value.western_medicine=o)},null,8,["modelValue"])]),_:1}),a(r,{label:"胰岛素"},{default:s(()=>[a(x,{modelValue:u.value.insulin,"onUpdate:modelValue":e[14]||(e[14]=o=>u.value.insulin=o)},null,8,["modelValue"])]),_:1}),a(r,{label:"备注"},{default:s(()=>[a(x,{modelValue:u.value.remark,"onUpdate:modelValue":e[15]||(e[15]=o=>u.value.remark=o),type:"textarea",rows:3},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),a(ne,{modelValue:h.value,"onUpdate:modelValue":e[27]||(e[27]=o=>h.value=o),title:Fe.value,width:"800px","close-on-click-modal":!1},{footer:s(()=>[a(i,{onClick:e[26]||(e[26]=o=>h.value=!1)},{default:s(()=>[...e[64]||(e[64]=[c("取消",-1)])]),_:1}),a(i,{type:"primary",loading:me.value,disabled:!E.value,onClick:el},{default:s(()=>[...e[65]||(e[65]=[c("确定",-1)])]),_:1},8,["loading","disabled"])]),default:s(()=>[a(oe,{model:m.value,"label-width":"100px"},{default:s(()=>[a(r,{label:"记录日期",required:""},{default:s(()=>[a(v,{modelValue:m.value.record_date,"onUpdate:modelValue":e[18]||(e[18]=o=>m.value.record_date=o),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),a(ge,{"content-position":"left"},{default:s(()=>[...e[61]||(e[61]=[c("早餐",-1)])]),_:1}),a(r,{label:"食物描述"},{default:s(()=>[a(x,{modelValue:m.value.breakfast_foods,"onUpdate:modelValue":e[19]||(e[19]=o=>m.value.breakfast_foods=o),type:"textarea",rows:2,placeholder:"请输入早餐食物"},null,8,["modelValue"])]),_:1}),a(r,{label:"图片"},{default:s(()=>[a(se,{modelValue:m.value.breakfast_images,"onUpdate:modelValue":e[20]||(e[20]=o=>m.value.breakfast_images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),a(ge,{"content-position":"left"},{default:s(()=>[...e[62]||(e[62]=[c("午餐",-1)])]),_:1}),a(r,{label:"食物描述"},{default:s(()=>[a(x,{modelValue:m.value.lunch_foods,"onUpdate:modelValue":e[21]||(e[21]=o=>m.value.lunch_foods=o),type:"textarea",rows:2,placeholder:"请输入午餐食物"},null,8,["modelValue"])]),_:1}),a(r,{label:"图片"},{default:s(()=>[a(se,{modelValue:m.value.lunch_images,"onUpdate:modelValue":e[22]||(e[22]=o=>m.value.lunch_images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),a(ge,{"content-position":"left"},{default:s(()=>[...e[63]||(e[63]=[c("晚餐",-1)])]),_:1}),a(r,{label:"食物描述"},{default:s(()=>[a(x,{modelValue:m.value.dinner_foods,"onUpdate:modelValue":e[23]||(e[23]=o=>m.value.dinner_foods=o),type:"textarea",rows:2,placeholder:"请输入晚餐食物"},null,8,["modelValue"])]),_:1}),a(r,{label:"图片"},{default:s(()=>[a(se,{modelValue:m.value.dinner_images,"onUpdate:modelValue":e[24]||(e[24]=o=>m.value.dinner_images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),a(r,{label:"备注"},{default:s(()=>[a(x,{modelValue:m.value.note,"onUpdate:modelValue":e[25]||(e[25]=o=>m.value.note=o),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),a(ne,{modelValue:B.value,"onUpdate:modelValue":e[35]||(e[35]=o=>B.value=o),title:qe.value,width:"600px","close-on-click-modal":!1},{footer:s(()=>[a(i,{onClick:e[34]||(e[34]=o=>B.value=!1)},{default:s(()=>[...e[66]||(e[66]=[c("取消",-1)])]),_:1}),a(i,{type:"primary",loading:fe.value,disabled:!E.value,onClick:ll},{default:s(()=>[...e[67]||(e[67]=[c("确定",-1)])]),_:1},8,["loading","disabled"])]),default:s(()=>[a(oe,{model:f.value,"label-width":"120px"},{default:s(()=>[a(r,{label:"记录日期",required:""},{default:s(()=>[a(v,{modelValue:f.value.record_date,"onUpdate:modelValue":e[28]||(e[28]=o=>f.value.record_date=o),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),a(r,{label:"运动类型",required:""},{default:s(()=>[a(Ye,{modelValue:f.value.exercise_type,"onUpdate:modelValue":e[29]||(e[29]=o=>f.value.exercise_type=o),placeholder:"请选择运动类型",class:"w-full"},{default:s(()=>[a(w,{label:"散步",value:"散步"}),a(w,{label:"慢跑",value:"慢跑"}),a(w,{label:"游泳",value:"游泳"}),a(w,{label:"瑜伽",value:"瑜伽"}),a(w,{label:"骑自行车",value:"骑自行车"}),a(w,{label:"打太极拳",value:"打太极拳"}),a(w,{label:"其他",value:"其他"})]),_:1},8,["modelValue"])]),_:1}),a(r,{label:"运动时长(分钟)",required:""},{default:s(()=>[a(I,{modelValue:f.value.duration,"onUpdate:modelValue":e[30]||(e[30]=o=>f.value.duration=o),min:0,max:300},null,8,["modelValue"])]),_:1}),a(r,{label:"运动强度",required:""},{default:s(()=>[a(Ye,{modelValue:f.value.intensity,"onUpdate:modelValue":e[31]||(e[31]=o=>f.value.intensity=o),placeholder:"请选择运动强度",class:"w-full"},{default:s(()=>[a(w,{label:"低强度",value:1}),a(w,{label:"中强度",value:2}),a(w,{label:"高强度",value:3})]),_:1},8,["modelValue"])]),_:1}),a(r,{label:"运动图片"},{default:s(()=>[a(se,{modelValue:f.value.images,"onUpdate:modelValue":e[32]||(e[32]=o=>f.value.images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),a(r,{label:"备注"},{default:s(()=>[a(x,{modelValue:f.value.note,"onUpdate:modelValue":e[33]||(e[33]=o=>f.value.note=o),type:"textarea",rows:3},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),a(ne,{modelValue:N.value,"onUpdate:modelValue":e[39]||(e[39]=o=>N.value=o),title:Ie.value,width:"600px","close-on-click-modal":!1},{footer:s(()=>[a(i,{onClick:e[38]||(e[38]=o=>N.value=!1)},{default:s(()=>[...e[68]||(e[68]=[c("取消",-1)])]),_:1}),W.value?(p(),C(i,{key:0,type:"primary",loading:ve.value,onClick:al},{default:s(()=>[...e[69]||(e[69]=[c("确定",-1)])]),_:1},8,["loading"])):U("",!0)]),default:s(()=>[a(oe,{model:y.value,"label-width":"100px"},{default:s(()=>[a(r,{label:"记录日期",required:""},{default:s(()=>[a(v,{modelValue:y.value.note_date,"onUpdate:modelValue":e[36]||(e[36]=o=>y.value.note_date=o),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full",disabled:!0},null,8,["modelValue"])]),_:1}),y.value.existing_content?(p(),C(r,{key:0,label:"已有备注"},{default:s(()=>[g("div",va,[(p(!0),b(P,null,be(_e(y.value.existing_content),(o,k)=>(p(),b("div",{key:`${y.value.note_date}-${k}`,class:"daily-matrix__tracking-line"},ie(o),1))),128))])]),_:1})):U("",!0),a(r,{label:W.value?"追加备注":"备注内容",required:""},{default:s(()=>[a(x,{modelValue:y.value.content,"onUpdate:modelValue":e[37]||(e[37]=o=>y.value.content=o),type:"textarea",rows:5,maxlength:"1000","show-word-limit":"",disabled:!W.value,placeholder:W.value?"请输入跟踪备注":"历史跟踪备注仅支持查看"},null,8,["modelValue","disabled","placeholder"])]),_:1},8,["label"])]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])),[[ul,re.value]])}}}),Ha=Zl(_a,[["__scopeId","data-v-4d566204"]]);export{Ha as default};
diff --git a/server/public/admin/assets/DiagnosisTodoList-KmLvXj7N.js b/server/public/admin/assets/DiagnosisTodoList-D0asUCAQ.js
similarity index 91%
rename from server/public/admin/assets/DiagnosisTodoList-KmLvXj7N.js
rename to server/public/admin/assets/DiagnosisTodoList-D0asUCAQ.js
index cf1947ef3..125e0f184 100644
--- a/server/public/admin/assets/DiagnosisTodoList-KmLvXj7N.js
+++ b/server/public/admin/assets/DiagnosisTodoList-D0asUCAQ.js
@@ -1 +1 @@
-import{o as Q,R as X,be as Z,q as c,r as y,s as T,ac as h,O as E,D as o,L as n,v as t,bc as ee,C as A,u as i,bb as te,K as ae,bk as oe,br as se,T as w,bi as le,bt as ne,b9 as ie,b6 as de,bp as re,b7 as ue,p as me,ba as N,M as k,bj as ce,n as pe}from"./.pnpm-BHOjf1ZS.js";import{_ as fe}from"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import{a7 as _e,a8 as ge,a9 as be}from"./tcm-BkYsBTA3.js";import{h as ve}from"./perm-LGazrkDZ.js";import{j as x,_ as ye}from"./index-B31vLELt.js";const we={class:"diagnosis-todo-list"},ke={class:"toolbar"},xe={key:0,class:"text-danger"},Ve={key:1},De={key:1,class:"text-muted"},Ce={class:"pagination-wrap"},Te=Q({__name:"DiagnosisTodoList",props:{diagnosisId:{},patientId:{},patientName:{},readOnly:{type:Boolean}},setup(R,{expose:B}){const V=["tcm.diagnosis/dailyRecord"],d=R,b=me(()=>ve(V)),l=N({page:1,size:15,count:0,loading:!1,lists:[]}),p=k(""),u=async()=>{if(!d.diagnosisId||Number(d.diagnosisId)<=0||!b.value){l.lists=[],l.count=0;return}l.loading=!0;try{const s={page_no:l.page,page_size:l.size,diagnosis_id:Number(d.diagnosisId)};p.value!==""&&p.value!==void 0&&(s.status=Number(p.value));const e=await _e(s);l.count=Number((e==null?void 0:e.count)??0),l.lists=Array.isArray(e==null?void 0:e.lists)?e.lists:[]}catch{l.lists=[],l.count=0}finally{l.loading=!1}};X(()=>d.diagnosisId,()=>{l.page=1,u()},{immediate:!0});const F=()=>{l.page=1,u()},L=s=>{switch(Number(s)){case 0:return"info";case 1:return"success";case 2:return"warning";case 3:return"danger";default:return"info"}},f=k(!1),D=k(!1),v=k(),r=N({remindAt:"",content:""}),M={remindAt:[{required:!0,message:"请选择提醒时间",trigger:"change"}],content:[{required:!0,message:"请输入提醒内容",trigger:"blur"},{max:500,message:"内容最多 500 字",trigger:"blur"}]},S=s=>{const e=new Date;return e.setHours(0,0,0,0),s.getTime(){if(!d.diagnosisId||!b.value){x.msgWarning("诊单未保存,无法添加待办");return}r.remindAt="",r.content="",f.value=!0,pe(()=>{var s;return(s=v.value)==null?void 0:s.clearValidate()})},P=async()=>{if(!v.value||!await v.value.validate().catch(()=>!1))return;const e=Number(r.remindAt);if(!Number.isFinite(e)||e<=Date.now()+30*1e3){x.msgWarning("提醒时间必须晚于当前时间至少 30 秒");return}D.value=!0;try{await ge({diagnosis_id:Number(d.diagnosisId),content:r.content.trim(),remind_time:Math.floor(e/1e3)}),f.value=!1,u()}catch{}finally{D.value=!1}},U=async s=>{if(!(!b.value||d.readOnly)){try{await x.confirm(`确认取消「${s.remind_time_text} · ${Y(s.content,30)}」吗?`)}catch{return}try{await be({id:Number(s.id)}),x.msgSuccess("已取消"),u()}catch{}}},Y=(s,e)=>s?s.length>e?s.slice(0,e)+"...":s:"";return B({refresh:u}),(s,e)=>{const _=ae,g=te,$=ee,m=oe,z=se,q=ce,H=fe,j=re,C=de,W=ue,G=ie,K=ne,I=Z("perms"),J=le;return c(),y("div",we,[T("div",ke,[h((c(),E(_,{type:"primary",disabled:!d.diagnosisId||!b.value,onClick:O},{default:o(()=>[...e[6]||(e[6]=[n(" + 新增待办 ",-1)])]),_:1},8,["disabled"])),[[I,V]]),t($,{modelValue:i(p),"onUpdate:modelValue":e[0]||(e[0]=a=>A(p)?p.value=a:null),class:"ml-3",onChange:F},{default:o(()=>[t(g,{value:""},{default:o(()=>[...e[7]||(e[7]=[n("全部",-1)])]),_:1}),t(g,{value:0},{default:o(()=>[...e[8]||(e[8]=[n("待执行",-1)])]),_:1}),t(g,{value:1},{default:o(()=>[...e[9]||(e[9]=[n("已发送",-1)])]),_:1}),t(g,{value:3},{default:o(()=>[...e[10]||(e[10]=[n("失败",-1)])]),_:1}),t(g,{value:2},{default:o(()=>[...e[11]||(e[11]=[n("已取消",-1)])]),_:1})]),_:1},8,["modelValue"]),t(_,{class:"ml-3",onClick:u},{default:o(()=>[...e[12]||(e[12]=[n("刷新",-1)])]),_:1})]),h((c(),E(q,{data:i(l).lists,border:"",class:"todo-table","empty-text":"暂无待办","row-key":"id"},{default:o(()=>[t(m,{label:"提醒时间",prop:"remind_time_text",width:"160"}),t(m,{label:"内容",prop:"content","min-width":"240","show-overflow-tooltip":""}),t(m,{label:"状态",width:"110",align:"center"},{default:o(({row:a})=>[t(z,{type:L(a.status),effect:"light",size:"small"},{default:o(()=>[n(w(a.status_text),1)]),_:2},1032,["type"])]),_:1}),t(m,{label:"创建人",prop:"creator_name",width:"120"},{default:o(({row:a})=>[n(w(a.creator_name||"-"),1)]),_:1}),t(m,{label:"推送时间",prop:"notified_at_text",width:"160"},{default:o(({row:a})=>[n(w(a.notified_at_text||"-"),1)]),_:1}),t(m,{label:"失败原因",prop:"error","min-width":"200","show-overflow-tooltip":""},{default:o(({row:a})=>[a.status===3?(c(),y("span",xe,w(a.error||"未知错误"),1)):(c(),y("span",Ve,"-"))]),_:1}),t(m,{label:"操作",width:"120",fixed:"right",align:"center"},{default:o(({row:a})=>[!d.readOnly&&a.status===0&&a.can_cancel?h((c(),E(_,{key:0,link:"",type:"danger",onClick:he=>U(a)},{default:o(()=>[...e[13]||(e[13]=[n(" 取消 ",-1)])]),_:1},8,["onClick"])),[[I,V]]):(c(),y("span",De,"-"))]),_:1})]),_:1},8,["data"])),[[J,i(l).loading]]),T("div",Ce,[t(H,{modelValue:i(l),"onUpdate:modelValue":e[1]||(e[1]=a=>A(l)?l.value=a:null),onChange:u},null,8,["modelValue"])]),t(K,{modelValue:i(f),"onUpdate:modelValue":e[5]||(e[5]=a=>A(f)?f.value=a:null),title:"新增待办",width:"520px","close-on-click-modal":!1},{footer:o(()=>[t(_,{onClick:e[4]||(e[4]=a=>f.value=!1)},{default:o(()=>[...e[15]||(e[15]=[n("取消",-1)])]),_:1}),t(_,{type:"primary",loading:i(D),onClick:P},{default:o(()=>[...e[16]||(e[16]=[n(" 提交 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[t(G,{ref_key:"addFormRef",ref:v,model:i(r),rules:M,"label-width":"100px"},{default:o(()=>[t(C,{label:"提醒时间",prop:"remindAt"},{default:o(()=>[t(j,{modelValue:i(r).remindAt,"onUpdate:modelValue":e[2]||(e[2]=a=>i(r).remindAt=a),type:"datetime",placeholder:"选择提醒时间",format:"YYYY-MM-DD HH:mm","value-format":"x","disabled-date":S,class:"w-full"},null,8,["modelValue"])]),_:1}),t(C,{label:"提醒内容",prop:"content"},{default:o(()=>[t(W,{modelValue:i(r).content,"onUpdate:modelValue":e[3]||(e[3]=a=>i(r).content=a),type:"textarea",rows:4,maxlength:500,"show-word-limit":"",placeholder:"例:3 天后回访患者复测餐后血糖"},null,8,["modelValue"])]),_:1}),t(C,{label:"提醒人"},{default:o(()=>[...e[14]||(e[14]=[T("span",{class:"text-muted"},"企微推送给当前登录账号(创建人本人)",-1)])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),Be=ye(Te,[["__scopeId","data-v-c136d72f"]]);export{Be as default};
+import{o as Q,R as X,bn as Z,q as c,r as y,s as T,ac as h,O as E,D as o,L as n,v as t,bc as ee,C as A,u as i,bb as te,K as ae,bj as oe,bk as se,T as w,bl as le,bt as ne,b9 as ie,b6 as de,be as re,b7 as ue,p as me,ba as N,M as k,bi as ce,n as pe}from"./.pnpm-BuKxIMgQ.js";import{_ as fe}from"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import{a7 as _e,a8 as ge,a9 as be}from"./tcm-BZvWmp4G.js";import{h as ve}from"./perm-DZClfK-E.js";import{j as x,_ as ye}from"./index-BZAvl557.js";const we={class:"diagnosis-todo-list"},ke={class:"toolbar"},xe={key:0,class:"text-danger"},Ve={key:1},De={key:1,class:"text-muted"},Ce={class:"pagination-wrap"},Te=Q({__name:"DiagnosisTodoList",props:{diagnosisId:{},patientId:{},patientName:{},readOnly:{type:Boolean}},setup(R,{expose:B}){const V=["tcm.diagnosis/dailyRecord"],d=R,b=me(()=>ve(V)),l=N({page:1,size:15,count:0,loading:!1,lists:[]}),p=k(""),u=async()=>{if(!d.diagnosisId||Number(d.diagnosisId)<=0||!b.value){l.lists=[],l.count=0;return}l.loading=!0;try{const s={page_no:l.page,page_size:l.size,diagnosis_id:Number(d.diagnosisId)};p.value!==""&&p.value!==void 0&&(s.status=Number(p.value));const e=await _e(s);l.count=Number((e==null?void 0:e.count)??0),l.lists=Array.isArray(e==null?void 0:e.lists)?e.lists:[]}catch{l.lists=[],l.count=0}finally{l.loading=!1}};X(()=>d.diagnosisId,()=>{l.page=1,u()},{immediate:!0});const F=()=>{l.page=1,u()},L=s=>{switch(Number(s)){case 0:return"info";case 1:return"success";case 2:return"warning";case 3:return"danger";default:return"info"}},f=k(!1),D=k(!1),v=k(),r=N({remindAt:"",content:""}),M={remindAt:[{required:!0,message:"请选择提醒时间",trigger:"change"}],content:[{required:!0,message:"请输入提醒内容",trigger:"blur"},{max:500,message:"内容最多 500 字",trigger:"blur"}]},S=s=>{const e=new Date;return e.setHours(0,0,0,0),s.getTime(){if(!d.diagnosisId||!b.value){x.msgWarning("诊单未保存,无法添加待办");return}r.remindAt="",r.content="",f.value=!0,pe(()=>{var s;return(s=v.value)==null?void 0:s.clearValidate()})},P=async()=>{if(!v.value||!await v.value.validate().catch(()=>!1))return;const e=Number(r.remindAt);if(!Number.isFinite(e)||e<=Date.now()+30*1e3){x.msgWarning("提醒时间必须晚于当前时间至少 30 秒");return}D.value=!0;try{await ge({diagnosis_id:Number(d.diagnosisId),content:r.content.trim(),remind_time:Math.floor(e/1e3)}),f.value=!1,u()}catch{}finally{D.value=!1}},U=async s=>{if(!(!b.value||d.readOnly)){try{await x.confirm(`确认取消「${s.remind_time_text} · ${Y(s.content,30)}」吗?`)}catch{return}try{await be({id:Number(s.id)}),x.msgSuccess("已取消"),u()}catch{}}},Y=(s,e)=>s?s.length>e?s.slice(0,e)+"...":s:"";return B({refresh:u}),(s,e)=>{const _=ae,g=te,$=ee,m=oe,z=se,q=ce,H=fe,j=re,C=de,W=ue,G=ie,K=ne,I=Z("perms"),J=le;return c(),y("div",we,[T("div",ke,[h((c(),E(_,{type:"primary",disabled:!d.diagnosisId||!b.value,onClick:O},{default:o(()=>[...e[6]||(e[6]=[n(" + 新增待办 ",-1)])]),_:1},8,["disabled"])),[[I,V]]),t($,{modelValue:i(p),"onUpdate:modelValue":e[0]||(e[0]=a=>A(p)?p.value=a:null),class:"ml-3",onChange:F},{default:o(()=>[t(g,{value:""},{default:o(()=>[...e[7]||(e[7]=[n("全部",-1)])]),_:1}),t(g,{value:0},{default:o(()=>[...e[8]||(e[8]=[n("待执行",-1)])]),_:1}),t(g,{value:1},{default:o(()=>[...e[9]||(e[9]=[n("已发送",-1)])]),_:1}),t(g,{value:3},{default:o(()=>[...e[10]||(e[10]=[n("失败",-1)])]),_:1}),t(g,{value:2},{default:o(()=>[...e[11]||(e[11]=[n("已取消",-1)])]),_:1})]),_:1},8,["modelValue"]),t(_,{class:"ml-3",onClick:u},{default:o(()=>[...e[12]||(e[12]=[n("刷新",-1)])]),_:1})]),h((c(),E(q,{data:i(l).lists,border:"",class:"todo-table","empty-text":"暂无待办","row-key":"id"},{default:o(()=>[t(m,{label:"提醒时间",prop:"remind_time_text",width:"160"}),t(m,{label:"内容",prop:"content","min-width":"240","show-overflow-tooltip":""}),t(m,{label:"状态",width:"110",align:"center"},{default:o(({row:a})=>[t(z,{type:L(a.status),effect:"light",size:"small"},{default:o(()=>[n(w(a.status_text),1)]),_:2},1032,["type"])]),_:1}),t(m,{label:"创建人",prop:"creator_name",width:"120"},{default:o(({row:a})=>[n(w(a.creator_name||"-"),1)]),_:1}),t(m,{label:"推送时间",prop:"notified_at_text",width:"160"},{default:o(({row:a})=>[n(w(a.notified_at_text||"-"),1)]),_:1}),t(m,{label:"失败原因",prop:"error","min-width":"200","show-overflow-tooltip":""},{default:o(({row:a})=>[a.status===3?(c(),y("span",xe,w(a.error||"未知错误"),1)):(c(),y("span",Ve,"-"))]),_:1}),t(m,{label:"操作",width:"120",fixed:"right",align:"center"},{default:o(({row:a})=>[!d.readOnly&&a.status===0&&a.can_cancel?h((c(),E(_,{key:0,link:"",type:"danger",onClick:he=>U(a)},{default:o(()=>[...e[13]||(e[13]=[n(" 取消 ",-1)])]),_:1},8,["onClick"])),[[I,V]]):(c(),y("span",De,"-"))]),_:1})]),_:1},8,["data"])),[[J,i(l).loading]]),T("div",Ce,[t(H,{modelValue:i(l),"onUpdate:modelValue":e[1]||(e[1]=a=>A(l)?l.value=a:null),onChange:u},null,8,["modelValue"])]),t(K,{modelValue:i(f),"onUpdate:modelValue":e[5]||(e[5]=a=>A(f)?f.value=a:null),title:"新增待办",width:"520px","close-on-click-modal":!1},{footer:o(()=>[t(_,{onClick:e[4]||(e[4]=a=>f.value=!1)},{default:o(()=>[...e[15]||(e[15]=[n("取消",-1)])]),_:1}),t(_,{type:"primary",loading:i(D),onClick:P},{default:o(()=>[...e[16]||(e[16]=[n(" 提交 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[t(G,{ref_key:"addFormRef",ref:v,model:i(r),rules:M,"label-width":"100px"},{default:o(()=>[t(C,{label:"提醒时间",prop:"remindAt"},{default:o(()=>[t(j,{modelValue:i(r).remindAt,"onUpdate:modelValue":e[2]||(e[2]=a=>i(r).remindAt=a),type:"datetime",placeholder:"选择提醒时间",format:"YYYY-MM-DD HH:mm","value-format":"x","disabled-date":S,class:"w-full"},null,8,["modelValue"])]),_:1}),t(C,{label:"提醒内容",prop:"content"},{default:o(()=>[t(W,{modelValue:i(r).content,"onUpdate:modelValue":e[3]||(e[3]=a=>i(r).content=a),type:"textarea",rows:4,maxlength:500,"show-word-limit":"",placeholder:"例:3 天后回访患者复测餐后血糖"},null,8,["modelValue"])]),_:1}),t(C,{label:"提醒人"},{default:o(()=>[...e[14]||(e[14]=[T("span",{class:"text-muted"},"企微推送给当前登录账号(创建人本人)",-1)])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),Be=ye(Te,[["__scopeId","data-v-c136d72f"]]);export{Be as default};
diff --git a/server/public/admin/assets/DietRecordList-BAa6s08W.js b/server/public/admin/assets/DietRecordList-D6BYmD0V.js
similarity index 89%
rename from server/public/admin/assets/DietRecordList-BAa6s08W.js
rename to server/public/admin/assets/DietRecordList-D6BYmD0V.js
index 1e68e02f3..19cd87af1 100644
--- a/server/public/admin/assets/DietRecordList-BAa6s08W.js
+++ b/server/public/admin/assets/DietRecordList-D6BYmD0V.js
@@ -1 +1 @@
-import{o as M,M as y,ap as O,R as Y,q as i,r as u,v as t,D as a,L as m,K as q,P as x,bk as F,T as I,O as P,u as d,bj as $,b9 as j,b6 as A,bp as K,bD as W,b7 as z,C as G,bt as H,p as J}from"./.pnpm-BHOjf1ZS.js";import{_ as Q}from"./picker-DY0rRn6Q.js";import{ap as X,aq as Z,a2 as ee,a3 as te}from"./tcm-BkYsBTA3.js";import{j as c,_ as oe}from"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";import"./index-Mwguss-B.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./index-Btk0rgzN.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./usePaging-oaNM6A9T.js";const le={class:"diet-record-list"},ae={key:0,class:"mb-4"},de={key:0},ne={key:1},se={key:0},ie={key:1},re={key:0},ue={key:1},me=M({__name:"DietRecordList",props:{diagnosisId:{type:Number,default:0},patientId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},setup(k){const n=k,D=y([]),p=y(!1),V=y(!1),C=J(()=>l.value.id?"编辑记录":"添加记录"),l=y({id:"",diagnosis_id:n.diagnosisId,patient_id:n.patientId,record_date:"",breakfast_foods:"",breakfast_images:[],lunch_foods:"",lunch_images:[],dinner_foods:"",dinner_images:[],note:""}),b=async()=>{if(!(!n.diagnosisId&&!n.patientId))try{const s=await X({diagnosis_id:n.diagnosisId,patient_id:n.patientId});D.value=s}catch(s){console.error("获取记录失败:",s)}},E=()=>{l.value={id:"",diagnosis_id:n.diagnosisId,patient_id:n.patientId,record_date:"",breakfast_foods:"",breakfast_images:[],lunch_foods:"",lunch_images:[],dinner_foods:"",dinner_images:[],note:""},p.value=!0},R=s=>{l.value={...s},p.value=!0},U=async s=>{await c.confirm("确定要删除这条记录吗?");try{await Z({id:s.id}),c.msgSuccess("删除成功"),b()}catch(e){console.error("删除失败:",e)}},h=async()=>{if(!l.value.record_date){c.msgWarning("请选择记录日期");return}V.value=!0;try{l.value.id?(await ee(l.value),c.msgSuccess("编辑成功")):(await te(l.value),c.msgSuccess("添加成功")),p.value=!1,b()}catch(s){console.error("提交失败:",s)}finally{V.value=!1}};return O(()=>{b()}),Y(()=>[n.diagnosisId,n.patientId],()=>{b()}),(s,e)=>{const f=q,_=F,B=$,N=K,r=A,v=W,g=z,w=Q,S=j,T=H;return i(),u("div",le,[k.readOnly?x("",!0):(i(),u("div",ae,[t(f,{type:"primary",onClick:E},{default:a(()=>[...e[10]||(e[10]=[m("添加记录",-1)])]),_:1})])),t(B,{data:d(D),border:""},{default:a(()=>[t(_,{prop:"record_date",label:"记录日期",width:"120"}),t(_,{label:"早餐","min-width":"200"},{default:a(({row:o})=>[o.breakfast_foods?(i(),u("div",de,I(o.breakfast_foods),1)):(i(),u("span",ne,"-"))]),_:1}),t(_,{label:"午餐","min-width":"200"},{default:a(({row:o})=>[o.lunch_foods?(i(),u("div",se,I(o.lunch_foods),1)):(i(),u("span",ie,"-"))]),_:1}),t(_,{label:"晚餐","min-width":"200"},{default:a(({row:o})=>[o.dinner_foods?(i(),u("div",re,I(o.dinner_foods),1)):(i(),u("span",ue,"-"))]),_:1}),t(_,{prop:"note",label:"备注","show-overflow-tooltip":""}),k.readOnly?x("",!0):(i(),P(_,{key:0,label:"操作",width:"150",fixed:"right"},{default:a(({row:o})=>[t(f,{link:"",type:"primary",onClick:L=>R(o)},{default:a(()=>[...e[11]||(e[11]=[m("编辑",-1)])]),_:1},8,["onClick"]),t(f,{link:"",type:"danger",onClick:L=>U(o)},{default:a(()=>[...e[12]||(e[12]=[m("删除",-1)])]),_:1},8,["onClick"])]),_:1}))]),_:1},8,["data"]),t(T,{modelValue:d(p),"onUpdate:modelValue":e[9]||(e[9]=o=>G(p)?p.value=o:null),title:d(C),width:"800px"},{footer:a(()=>[t(f,{onClick:e[8]||(e[8]=o=>p.value=!1)},{default:a(()=>[...e[16]||(e[16]=[m("取消",-1)])]),_:1}),t(f,{type:"primary",onClick:h,loading:d(V)},{default:a(()=>[...e[17]||(e[17]=[m("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[t(S,{model:d(l),"label-width":"100px"},{default:a(()=>[t(r,{label:"记录日期",required:""},{default:a(()=>[t(N,{modelValue:d(l).record_date,"onUpdate:modelValue":e[0]||(e[0]=o=>d(l).record_date=o),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),t(v,{"content-position":"left"},{default:a(()=>[...e[13]||(e[13]=[m("早餐",-1)])]),_:1}),t(r,{label:"食物描述"},{default:a(()=>[t(g,{modelValue:d(l).breakfast_foods,"onUpdate:modelValue":e[1]||(e[1]=o=>d(l).breakfast_foods=o),type:"textarea",rows:2,placeholder:"请输入早餐食物"},null,8,["modelValue"])]),_:1}),t(r,{label:"图片"},{default:a(()=>[t(w,{modelValue:d(l).breakfast_images,"onUpdate:modelValue":e[2]||(e[2]=o=>d(l).breakfast_images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),t(v,{"content-position":"left"},{default:a(()=>[...e[14]||(e[14]=[m("午餐",-1)])]),_:1}),t(r,{label:"食物描述"},{default:a(()=>[t(g,{modelValue:d(l).lunch_foods,"onUpdate:modelValue":e[3]||(e[3]=o=>d(l).lunch_foods=o),type:"textarea",rows:2,placeholder:"请输入午餐食物"},null,8,["modelValue"])]),_:1}),t(r,{label:"图片"},{default:a(()=>[t(w,{modelValue:d(l).lunch_images,"onUpdate:modelValue":e[4]||(e[4]=o=>d(l).lunch_images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),t(v,{"content-position":"left"},{default:a(()=>[...e[15]||(e[15]=[m("晚餐",-1)])]),_:1}),t(r,{label:"食物描述"},{default:a(()=>[t(g,{modelValue:d(l).dinner_foods,"onUpdate:modelValue":e[5]||(e[5]=o=>d(l).dinner_foods=o),type:"textarea",rows:2,placeholder:"请输入晚餐食物"},null,8,["modelValue"])]),_:1}),t(r,{label:"图片"},{default:a(()=>[t(w,{modelValue:d(l).dinner_images,"onUpdate:modelValue":e[6]||(e[6]=o=>d(l).dinner_images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),t(r,{label:"备注"},{default:a(()=>[t(g,{modelValue:d(l).note,"onUpdate:modelValue":e[7]||(e[7]=o=>d(l).note=o),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),De=oe(me,[["__scopeId","data-v-7c66f363"]]);export{De as default};
+import{o as M,M as y,ap as O,R as Y,q as i,r as u,v as t,D as a,L as m,K as q,P as x,bj as F,T as I,O as P,u as d,bi as $,b9 as j,b6 as A,be as K,bD as W,b7 as z,C as G,bt as H,p as J}from"./.pnpm-BuKxIMgQ.js";import{_ as Q}from"./picker-C-hBLp_q.js";import{ap as X,aq as Z,a2 as ee,a3 as te}from"./tcm-BZvWmp4G.js";import{j as c,_ as oe}from"./index-BZAvl557.js";import"./index-BARAiw4K.js";import"./index-DO2zctlZ.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./index-BYpT7Ezr.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./usePaging-DNtxCypz.js";const le={class:"diet-record-list"},ae={key:0,class:"mb-4"},de={key:0},ne={key:1},se={key:0},ie={key:1},re={key:0},ue={key:1},me=M({__name:"DietRecordList",props:{diagnosisId:{type:Number,default:0},patientId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},setup(k){const n=k,D=y([]),p=y(!1),V=y(!1),C=J(()=>l.value.id?"编辑记录":"添加记录"),l=y({id:"",diagnosis_id:n.diagnosisId,patient_id:n.patientId,record_date:"",breakfast_foods:"",breakfast_images:[],lunch_foods:"",lunch_images:[],dinner_foods:"",dinner_images:[],note:""}),b=async()=>{if(!(!n.diagnosisId&&!n.patientId))try{const s=await X({diagnosis_id:n.diagnosisId,patient_id:n.patientId});D.value=s}catch(s){console.error("获取记录失败:",s)}},E=()=>{l.value={id:"",diagnosis_id:n.diagnosisId,patient_id:n.patientId,record_date:"",breakfast_foods:"",breakfast_images:[],lunch_foods:"",lunch_images:[],dinner_foods:"",dinner_images:[],note:""},p.value=!0},R=s=>{l.value={...s},p.value=!0},U=async s=>{await c.confirm("确定要删除这条记录吗?");try{await Z({id:s.id}),c.msgSuccess("删除成功"),b()}catch(e){console.error("删除失败:",e)}},h=async()=>{if(!l.value.record_date){c.msgWarning("请选择记录日期");return}V.value=!0;try{l.value.id?(await ee(l.value),c.msgSuccess("编辑成功")):(await te(l.value),c.msgSuccess("添加成功")),p.value=!1,b()}catch(s){console.error("提交失败:",s)}finally{V.value=!1}};return O(()=>{b()}),Y(()=>[n.diagnosisId,n.patientId],()=>{b()}),(s,e)=>{const f=q,_=F,B=$,N=K,r=A,v=W,g=z,w=Q,S=j,T=H;return i(),u("div",le,[k.readOnly?x("",!0):(i(),u("div",ae,[t(f,{type:"primary",onClick:E},{default:a(()=>[...e[10]||(e[10]=[m("添加记录",-1)])]),_:1})])),t(B,{data:d(D),border:""},{default:a(()=>[t(_,{prop:"record_date",label:"记录日期",width:"120"}),t(_,{label:"早餐","min-width":"200"},{default:a(({row:o})=>[o.breakfast_foods?(i(),u("div",de,I(o.breakfast_foods),1)):(i(),u("span",ne,"-"))]),_:1}),t(_,{label:"午餐","min-width":"200"},{default:a(({row:o})=>[o.lunch_foods?(i(),u("div",se,I(o.lunch_foods),1)):(i(),u("span",ie,"-"))]),_:1}),t(_,{label:"晚餐","min-width":"200"},{default:a(({row:o})=>[o.dinner_foods?(i(),u("div",re,I(o.dinner_foods),1)):(i(),u("span",ue,"-"))]),_:1}),t(_,{prop:"note",label:"备注","show-overflow-tooltip":""}),k.readOnly?x("",!0):(i(),P(_,{key:0,label:"操作",width:"150",fixed:"right"},{default:a(({row:o})=>[t(f,{link:"",type:"primary",onClick:L=>R(o)},{default:a(()=>[...e[11]||(e[11]=[m("编辑",-1)])]),_:1},8,["onClick"]),t(f,{link:"",type:"danger",onClick:L=>U(o)},{default:a(()=>[...e[12]||(e[12]=[m("删除",-1)])]),_:1},8,["onClick"])]),_:1}))]),_:1},8,["data"]),t(T,{modelValue:d(p),"onUpdate:modelValue":e[9]||(e[9]=o=>G(p)?p.value=o:null),title:d(C),width:"800px"},{footer:a(()=>[t(f,{onClick:e[8]||(e[8]=o=>p.value=!1)},{default:a(()=>[...e[16]||(e[16]=[m("取消",-1)])]),_:1}),t(f,{type:"primary",onClick:h,loading:d(V)},{default:a(()=>[...e[17]||(e[17]=[m("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[t(S,{model:d(l),"label-width":"100px"},{default:a(()=>[t(r,{label:"记录日期",required:""},{default:a(()=>[t(N,{modelValue:d(l).record_date,"onUpdate:modelValue":e[0]||(e[0]=o=>d(l).record_date=o),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),t(v,{"content-position":"left"},{default:a(()=>[...e[13]||(e[13]=[m("早餐",-1)])]),_:1}),t(r,{label:"食物描述"},{default:a(()=>[t(g,{modelValue:d(l).breakfast_foods,"onUpdate:modelValue":e[1]||(e[1]=o=>d(l).breakfast_foods=o),type:"textarea",rows:2,placeholder:"请输入早餐食物"},null,8,["modelValue"])]),_:1}),t(r,{label:"图片"},{default:a(()=>[t(w,{modelValue:d(l).breakfast_images,"onUpdate:modelValue":e[2]||(e[2]=o=>d(l).breakfast_images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),t(v,{"content-position":"left"},{default:a(()=>[...e[14]||(e[14]=[m("午餐",-1)])]),_:1}),t(r,{label:"食物描述"},{default:a(()=>[t(g,{modelValue:d(l).lunch_foods,"onUpdate:modelValue":e[3]||(e[3]=o=>d(l).lunch_foods=o),type:"textarea",rows:2,placeholder:"请输入午餐食物"},null,8,["modelValue"])]),_:1}),t(r,{label:"图片"},{default:a(()=>[t(w,{modelValue:d(l).lunch_images,"onUpdate:modelValue":e[4]||(e[4]=o=>d(l).lunch_images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),t(v,{"content-position":"left"},{default:a(()=>[...e[15]||(e[15]=[m("晚餐",-1)])]),_:1}),t(r,{label:"食物描述"},{default:a(()=>[t(g,{modelValue:d(l).dinner_foods,"onUpdate:modelValue":e[5]||(e[5]=o=>d(l).dinner_foods=o),type:"textarea",rows:2,placeholder:"请输入晚餐食物"},null,8,["modelValue"])]),_:1}),t(r,{label:"图片"},{default:a(()=>[t(w,{modelValue:d(l).dinner_images,"onUpdate:modelValue":e[6]||(e[6]=o=>d(l).dinner_images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),t(r,{label:"备注"},{default:a(()=>[t(g,{modelValue:d(l).note,"onUpdate:modelValue":e[7]||(e[7]=o=>d(l).note=o),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),De=oe(me,[["__scopeId","data-v-7c66f363"]]);export{De as default};
diff --git a/server/public/admin/assets/ExerciseRecordList-B-FAsJBf.js b/server/public/admin/assets/ExerciseRecordList-CuwfW4nn.js
similarity index 88%
rename from server/public/admin/assets/ExerciseRecordList-B-FAsJBf.js
rename to server/public/admin/assets/ExerciseRecordList-CuwfW4nn.js
index e189fa2da..c5cfd4aad 100644
--- a/server/public/admin/assets/ExerciseRecordList-B-FAsJBf.js
+++ b/server/public/admin/assets/ExerciseRecordList-CuwfW4nn.js
@@ -1 +1 @@
-import{o as P,M as b,ap as W,R as $,q as g,r as w,v as e,D as o,L as p,K as j,P as k,bk as A,T as E,O as h,u as n,bj as J,b9 as K,b6 as z,bp as G,bm as H,bn as Q,J as X,b7 as Z,C as ee,bt as le,p as te}from"./.pnpm-BHOjf1ZS.js";import{_ as ae}from"./picker-DY0rRn6Q.js";import{ar as oe,as as ne,a4 as ie,a5 as de}from"./tcm-BkYsBTA3.js";import{j as m,_ as se}from"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";import"./index-Mwguss-B.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./index-Btk0rgzN.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./usePaging-oaNM6A9T.js";const re={class:"exercise-record-list"},ue={key:0,class:"mb-4"},pe=P({__name:"ExerciseRecordList",props:{diagnosisId:{type:Number,default:0},patientId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},setup(y){const d=y,V=b([]),r=b(!1),v=b(!1),I=te(()=>t.value.id?"编辑记录":"添加记录"),t=b({id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",exercise_type:"",duration:0,intensity:1,images:[],note:""}),C=[{label:"低强度",value:1},{label:"中强度",value:2},{label:"高强度",value:3}],R=i=>{const l=C.find(u=>u.value===i);return l?l.label:"未知"},f=async()=>{if(!(!d.diagnosisId&&!d.patientId))try{const i=await oe({diagnosis_id:d.diagnosisId,patient_id:d.patientId});V.value=i}catch(i){console.error("获取记录失败:",i)}},D=()=>{t.value={id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",exercise_type:"",duration:0,intensity:1,images:[],note:""},r.value=!0},U=i=>{t.value={...i},r.value=!0},B=async i=>{await m.confirm("确定要删除这条记录吗?");try{await ne({id:i.id}),m.msgSuccess("删除成功"),f()}catch(l){console.error("删除失败:",l)}},N=async()=>{if(!t.value.record_date){m.msgWarning("请选择记录日期");return}if(!t.value.exercise_type){m.msgWarning("请选择运动类型");return}if(!t.value.duration){m.msgWarning("请输入运动时长");return}v.value=!0;try{t.value.id?(await ie(t.value),m.msgSuccess("编辑成功")):(await de(t.value),m.msgSuccess("添加成功")),r.value=!1,f()}catch(i){console.error("提交失败:",i)}finally{v.value=!1}};return W(()=>{f()}),$(()=>[d.diagnosisId,d.patientId],()=>{f()}),(i,l)=>{const u=j,c=A,O=J,S=G,_=z,s=Q,x=H,T=X,q=ae,L=Z,M=K,Y=le;return g(),w("div",re,[y.readOnly?k("",!0):(g(),w("div",ue,[e(u,{type:"primary",onClick:D},{default:o(()=>[...l[8]||(l[8]=[p("添加记录",-1)])]),_:1})])),e(O,{data:n(V),border:"",style:{width:"100%"}},{default:o(()=>[e(c,{prop:"record_date",label:"记录日期",width:"120"}),e(c,{prop:"exercise_type",label:"运动类型",width:"150"}),e(c,{prop:"duration",label:"运动时长",width:"100"},{default:o(({row:a})=>[p(E(a.duration)+" 分钟 ",1)]),_:1}),e(c,{label:"运动强度",width:"100"},{default:o(({row:a})=>[p(E(R(a.intensity)),1)]),_:1}),e(c,{prop:"note",label:"备注","show-overflow-tooltip":""}),y.readOnly?k("",!0):(g(),h(c,{key:0,label:"操作",width:"150",fixed:"right"},{default:o(({row:a})=>[e(u,{link:"",type:"primary",onClick:F=>U(a)},{default:o(()=>[...l[9]||(l[9]=[p("编辑",-1)])]),_:1},8,["onClick"]),e(u,{link:"",type:"danger",onClick:F=>B(a)},{default:o(()=>[...l[10]||(l[10]=[p("删除",-1)])]),_:1},8,["onClick"])]),_:1}))]),_:1},8,["data"]),e(Y,{modelValue:n(r),"onUpdate:modelValue":l[7]||(l[7]=a=>ee(r)?r.value=a:null),title:n(I),width:"600px"},{footer:o(()=>[e(u,{onClick:l[6]||(l[6]=a=>r.value=!1)},{default:o(()=>[...l[11]||(l[11]=[p("取消",-1)])]),_:1}),e(u,{type:"primary",onClick:N,loading:n(v)},{default:o(()=>[...l[12]||(l[12]=[p("确定",-1)])]),_:1},8,["loading"])]),default:o(()=>[e(M,{model:n(t),"label-width":"120px"},{default:o(()=>[e(_,{label:"记录日期",required:""},{default:o(()=>[e(S,{modelValue:n(t).record_date,"onUpdate:modelValue":l[0]||(l[0]=a=>n(t).record_date=a),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),e(_,{label:"运动类型",required:""},{default:o(()=>[e(x,{modelValue:n(t).exercise_type,"onUpdate:modelValue":l[1]||(l[1]=a=>n(t).exercise_type=a),placeholder:"请选择运动类型",class:"w-full"},{default:o(()=>[e(s,{label:"散步",value:"散步"}),e(s,{label:"慢跑",value:"慢跑"}),e(s,{label:"游泳",value:"游泳"}),e(s,{label:"瑜伽",value:"瑜伽"}),e(s,{label:"骑自行车",value:"骑自行车"}),e(s,{label:"打太极拳",value:"打太极拳"}),e(s,{label:"其他",value:"其他"})]),_:1},8,["modelValue"])]),_:1}),e(_,{label:"运动时长(分钟)",required:""},{default:o(()=>[e(T,{modelValue:n(t).duration,"onUpdate:modelValue":l[2]||(l[2]=a=>n(t).duration=a),min:0,max:300,placeholder:"请输入运动时长"},null,8,["modelValue"])]),_:1}),e(_,{label:"运动强度",required:""},{default:o(()=>[e(x,{modelValue:n(t).intensity,"onUpdate:modelValue":l[3]||(l[3]=a=>n(t).intensity=a),placeholder:"请选择运动强度",class:"w-full"},{default:o(()=>[e(s,{label:"低强度",value:1}),e(s,{label:"中强度",value:2}),e(s,{label:"高强度",value:3})]),_:1},8,["modelValue"])]),_:1}),e(_,{label:"运动图片"},{default:o(()=>[e(q,{modelValue:n(t).images,"onUpdate:modelValue":l[4]||(l[4]=a=>n(t).images=a),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),e(_,{label:"备注"},{default:o(()=>[e(L,{modelValue:n(t).note,"onUpdate:modelValue":l[5]||(l[5]=a=>n(t).note=a),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Ee=se(pe,[["__scopeId","data-v-ab6f0ec7"]]);export{Ee as default};
+import{o as P,M as b,ap as W,R as $,q as g,r as w,v as e,D as o,L as p,K as j,P as k,bj as A,T as E,O as h,u as n,bi as J,b9 as K,b6 as z,be as G,bf as H,bg as Q,J as X,b7 as Z,C as ee,bt as le,p as te}from"./.pnpm-BuKxIMgQ.js";import{_ as ae}from"./picker-C-hBLp_q.js";import{ar as oe,as as ne,a4 as ie,a5 as de}from"./tcm-BZvWmp4G.js";import{j as m,_ as se}from"./index-BZAvl557.js";import"./index-BARAiw4K.js";import"./index-DO2zctlZ.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./index-BYpT7Ezr.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./usePaging-DNtxCypz.js";const re={class:"exercise-record-list"},ue={key:0,class:"mb-4"},pe=P({__name:"ExerciseRecordList",props:{diagnosisId:{type:Number,default:0},patientId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},setup(y){const d=y,V=b([]),r=b(!1),v=b(!1),I=te(()=>t.value.id?"编辑记录":"添加记录"),t=b({id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",exercise_type:"",duration:0,intensity:1,images:[],note:""}),C=[{label:"低强度",value:1},{label:"中强度",value:2},{label:"高强度",value:3}],R=i=>{const l=C.find(u=>u.value===i);return l?l.label:"未知"},f=async()=>{if(!(!d.diagnosisId&&!d.patientId))try{const i=await oe({diagnosis_id:d.diagnosisId,patient_id:d.patientId});V.value=i}catch(i){console.error("获取记录失败:",i)}},D=()=>{t.value={id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",exercise_type:"",duration:0,intensity:1,images:[],note:""},r.value=!0},U=i=>{t.value={...i},r.value=!0},B=async i=>{await m.confirm("确定要删除这条记录吗?");try{await ne({id:i.id}),m.msgSuccess("删除成功"),f()}catch(l){console.error("删除失败:",l)}},N=async()=>{if(!t.value.record_date){m.msgWarning("请选择记录日期");return}if(!t.value.exercise_type){m.msgWarning("请选择运动类型");return}if(!t.value.duration){m.msgWarning("请输入运动时长");return}v.value=!0;try{t.value.id?(await ie(t.value),m.msgSuccess("编辑成功")):(await de(t.value),m.msgSuccess("添加成功")),r.value=!1,f()}catch(i){console.error("提交失败:",i)}finally{v.value=!1}};return W(()=>{f()}),$(()=>[d.diagnosisId,d.patientId],()=>{f()}),(i,l)=>{const u=j,c=A,O=J,S=G,_=z,s=Q,x=H,T=X,q=ae,L=Z,M=K,Y=le;return g(),w("div",re,[y.readOnly?k("",!0):(g(),w("div",ue,[e(u,{type:"primary",onClick:D},{default:o(()=>[...l[8]||(l[8]=[p("添加记录",-1)])]),_:1})])),e(O,{data:n(V),border:"",style:{width:"100%"}},{default:o(()=>[e(c,{prop:"record_date",label:"记录日期",width:"120"}),e(c,{prop:"exercise_type",label:"运动类型",width:"150"}),e(c,{prop:"duration",label:"运动时长",width:"100"},{default:o(({row:a})=>[p(E(a.duration)+" 分钟 ",1)]),_:1}),e(c,{label:"运动强度",width:"100"},{default:o(({row:a})=>[p(E(R(a.intensity)),1)]),_:1}),e(c,{prop:"note",label:"备注","show-overflow-tooltip":""}),y.readOnly?k("",!0):(g(),h(c,{key:0,label:"操作",width:"150",fixed:"right"},{default:o(({row:a})=>[e(u,{link:"",type:"primary",onClick:F=>U(a)},{default:o(()=>[...l[9]||(l[9]=[p("编辑",-1)])]),_:1},8,["onClick"]),e(u,{link:"",type:"danger",onClick:F=>B(a)},{default:o(()=>[...l[10]||(l[10]=[p("删除",-1)])]),_:1},8,["onClick"])]),_:1}))]),_:1},8,["data"]),e(Y,{modelValue:n(r),"onUpdate:modelValue":l[7]||(l[7]=a=>ee(r)?r.value=a:null),title:n(I),width:"600px"},{footer:o(()=>[e(u,{onClick:l[6]||(l[6]=a=>r.value=!1)},{default:o(()=>[...l[11]||(l[11]=[p("取消",-1)])]),_:1}),e(u,{type:"primary",onClick:N,loading:n(v)},{default:o(()=>[...l[12]||(l[12]=[p("确定",-1)])]),_:1},8,["loading"])]),default:o(()=>[e(M,{model:n(t),"label-width":"120px"},{default:o(()=>[e(_,{label:"记录日期",required:""},{default:o(()=>[e(S,{modelValue:n(t).record_date,"onUpdate:modelValue":l[0]||(l[0]=a=>n(t).record_date=a),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),e(_,{label:"运动类型",required:""},{default:o(()=>[e(x,{modelValue:n(t).exercise_type,"onUpdate:modelValue":l[1]||(l[1]=a=>n(t).exercise_type=a),placeholder:"请选择运动类型",class:"w-full"},{default:o(()=>[e(s,{label:"散步",value:"散步"}),e(s,{label:"慢跑",value:"慢跑"}),e(s,{label:"游泳",value:"游泳"}),e(s,{label:"瑜伽",value:"瑜伽"}),e(s,{label:"骑自行车",value:"骑自行车"}),e(s,{label:"打太极拳",value:"打太极拳"}),e(s,{label:"其他",value:"其他"})]),_:1},8,["modelValue"])]),_:1}),e(_,{label:"运动时长(分钟)",required:""},{default:o(()=>[e(T,{modelValue:n(t).duration,"onUpdate:modelValue":l[2]||(l[2]=a=>n(t).duration=a),min:0,max:300,placeholder:"请输入运动时长"},null,8,["modelValue"])]),_:1}),e(_,{label:"运动强度",required:""},{default:o(()=>[e(x,{modelValue:n(t).intensity,"onUpdate:modelValue":l[3]||(l[3]=a=>n(t).intensity=a),placeholder:"请选择运动强度",class:"w-full"},{default:o(()=>[e(s,{label:"低强度",value:1}),e(s,{label:"中强度",value:2}),e(s,{label:"高强度",value:3})]),_:1},8,["modelValue"])]),_:1}),e(_,{label:"运动图片"},{default:o(()=>[e(q,{modelValue:n(t).images,"onUpdate:modelValue":l[4]||(l[4]=a=>n(t).images=a),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),e(_,{label:"备注"},{default:o(()=>[e(L,{modelValue:n(t).note,"onUpdate:modelValue":l[5]||(l[5]=a=>n(t).note=a),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Ee=se(pe,[["__scopeId","data-v-ab6f0ec7"]]);export{Ee as default};
diff --git a/server/public/admin/assets/GancaoSubmissionReconcileButton-D9eiMYpE.js b/server/public/admin/assets/GancaoSubmissionReconcileButton-D9eiMYpE.js
new file mode 100644
index 000000000..c7c637af3
--- /dev/null
+++ b/server/public/admin/assets/GancaoSubmissionReconcileButton-D9eiMYpE.js
@@ -0,0 +1 @@
+import{_ as o}from"./GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-CFkcGXt3.js";import"./.pnpm-BuKxIMgQ.js";import"./tcm-BZvWmp4G.js";import"./index-BZAvl557.js";export{o as default};
diff --git a/server/public/admin/assets/GancaoSubmissionReconcileButton-Q1lcGqY_.js b/server/public/admin/assets/GancaoSubmissionReconcileButton-Q1lcGqY_.js
deleted file mode 100644
index 2c8ce7319..000000000
--- a/server/public/admin/assets/GancaoSubmissionReconcileButton-Q1lcGqY_.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-DC_G2krp.js";import"./.pnpm-BHOjf1ZS.js";import"./tcm-BkYsBTA3.js";import"./index-B31vLELt.js";export{o as default};
diff --git a/server/public/admin/assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-DC_G2krp.js b/server/public/admin/assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-CFkcGXt3.js
similarity index 90%
rename from server/public/admin/assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-DC_G2krp.js
rename to server/public/admin/assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-CFkcGXt3.js
index 9c556bca2..44f1503af 100644
--- a/server/public/admin/assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-DC_G2krp.js
+++ b/server/public/admin/assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-CFkcGXt3.js
@@ -1 +1 @@
-import{o as U,be as F,q as f,r as k,F as M,ac as D,O as E,D as t,L as u,K as G,v as r,bt as B,bh as q,b9 as P,aw as A,b6 as L,bc as T,bf as K,b7 as j,P as g,p as z,M as v,ba as W}from"./.pnpm-BHOjf1ZS.js";import{p as $}from"./tcm-BkYsBTA3.js";import{j as C}from"./index-B31vLELt.js";const X=U({__name:"GancaoSubmissionReconcileButton",props:{order:{}},emits:["resolved"],setup(N,{emit:w}){const d=N,y=w,V=z(()=>{var m,p,a;const i=String(((m=d.order)==null?void 0:m.pharmacy_claim_target)||"").trim().toLowerCase(),e=String(((p=d.order)==null?void 0:p.pharmacy_claim_status)||"").trim().toUpperCase(),n=Number(((a=d.order)==null?void 0:a.pharmacy_claim_lease_expires_at)||0),c=e==="PENDING"&&n>0&&n<=Math.floor(Date.now()/1e3);return i==="gancao"&&(c||["UNKNOWN","PENDING_RECONCILE"].includes(e))}),s=v(!1),_=v(!1),o=W({resolution:"CONFIRM_SUCCESS",remote_order_no:"",note:""});function O(){o.resolution="CONFIRM_SUCCESS",o.remote_order_no="",o.note="",s.value=!0}async function b(){var e;const i=Number((e=d.order)==null?void 0:e.id);if(i){if(o.resolution==="CONFIRM_SUCCESS"&&!o.remote_order_no.trim()){C.msgError("请填写甘草药方单号");return}if(!o.note.trim()){C.msgError("请填写甘草后台核对依据");return}_.value=!0;try{await $({id:i,resolution:o.resolution,remote_order_no:o.resolution==="CONFIRM_SUCCESS"?o.remote_order_no.trim():"",note:o.note.trim()}),C.msgSuccess("甘草提交核对已记录"),s.value=!1,y("resolved")}catch{}finally{_.value=!1}}}return(i,e)=>{const n=G,c=q,m=K,p=T,a=L,S=j,R=P,x=B,I=F("perms");return V.value?(f(),k(M,{key:0},[D((f(),E(n,{type:"danger",size:"small",plain:"",onClick:O},{default:t(()=>[...e[5]||(e[5]=[u("核对甘草提交",-1)])]),_:1})),[[I,["tcm.prescriptionOrder/confirmGancaoSubmission"]]]),r(x,{modelValue:s.value,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value=l),title:"人工核对甘草提交",width:"min(92vw, 520px)","append-to-body":"","destroy-on-close":"","close-on-click-modal":!1},{footer:t(()=>[r(n,{onClick:e[3]||(e[3]=l=>s.value=!1)},{default:t(()=>[...e[8]||(e[8]=[u("取消",-1)])]),_:1}),r(n,{type:"primary",loading:_.value,onClick:b},{default:t(()=>[...e[9]||(e[9]=[u("确认并记录",-1)])]),_:1},8,["loading"])]),default:t(()=>[r(c,{title:"请先在甘草后台核对。本操作会写入不可变更的审计记录。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),r(R,{"label-width":"100px",onSubmit:A(b,["prevent"])},{default:t(()=>[r(a,{label:"核对结果",required:""},{default:t(()=>[r(p,{modelValue:o.resolution,"onUpdate:modelValue":e[0]||(e[0]=l=>o.resolution=l)},{default:t(()=>[r(m,{label:"CONFIRM_SUCCESS"},{default:t(()=>[...e[6]||(e[6]=[u("确认已创建",-1)])]),_:1}),r(m,{label:"CONFIRM_NOT_CREATED"},{default:t(()=>[...e[7]||(e[7]=[u("确认未创建",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o.resolution==="CONFIRM_SUCCESS"?(f(),E(a,{key:0,label:"甘草单号",required:""},{default:t(()=>[r(S,{modelValue:o.remote_order_no,"onUpdate:modelValue":e[1]||(e[1]=l=>o.remote_order_no=l),maxlength:"64",clearable:""},null,8,["modelValue"])]),_:1})):g("",!0),r(a,{label:"核对依据",required:""},{default:t(()=>[r(S,{modelValue:o.note,"onUpdate:modelValue":e[2]||(e[2]=l=>o.note=l),type:"textarea",rows:3,maxlength:"1000","show-word-limit":"",placeholder:"例如:核对时间、甘草后台查询条件及结果"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)):g("",!0)}}});export{X as _};
+import{o as U,bn as F,q as f,r as k,F as M,ac as D,O as E,D as t,L as u,K as G,v as r,bt as B,bm as q,b9 as P,aw as A,b6 as L,bc as T,bo as K,b7 as j,P as g,p as z,M as v,ba as W}from"./.pnpm-BuKxIMgQ.js";import{p as $}from"./tcm-BZvWmp4G.js";import{j as C}from"./index-BZAvl557.js";const X=U({__name:"GancaoSubmissionReconcileButton",props:{order:{}},emits:["resolved"],setup(N,{emit:w}){const d=N,y=w,V=z(()=>{var m,p,a;const i=String(((m=d.order)==null?void 0:m.pharmacy_claim_target)||"").trim().toLowerCase(),e=String(((p=d.order)==null?void 0:p.pharmacy_claim_status)||"").trim().toUpperCase(),n=Number(((a=d.order)==null?void 0:a.pharmacy_claim_lease_expires_at)||0),c=e==="PENDING"&&n>0&&n<=Math.floor(Date.now()/1e3);return i==="gancao"&&(c||["UNKNOWN","PENDING_RECONCILE"].includes(e))}),s=v(!1),_=v(!1),o=W({resolution:"CONFIRM_SUCCESS",remote_order_no:"",note:""});function O(){o.resolution="CONFIRM_SUCCESS",o.remote_order_no="",o.note="",s.value=!0}async function b(){var e;const i=Number((e=d.order)==null?void 0:e.id);if(i){if(o.resolution==="CONFIRM_SUCCESS"&&!o.remote_order_no.trim()){C.msgError("请填写甘草药方单号");return}if(!o.note.trim()){C.msgError("请填写甘草后台核对依据");return}_.value=!0;try{await $({id:i,resolution:o.resolution,remote_order_no:o.resolution==="CONFIRM_SUCCESS"?o.remote_order_no.trim():"",note:o.note.trim()}),C.msgSuccess("甘草提交核对已记录"),s.value=!1,y("resolved")}catch{}finally{_.value=!1}}}return(i,e)=>{const n=G,c=q,m=K,p=T,a=L,S=j,R=P,x=B,I=F("perms");return V.value?(f(),k(M,{key:0},[D((f(),E(n,{type:"danger",size:"small",plain:"",onClick:O},{default:t(()=>[...e[5]||(e[5]=[u("核对甘草提交",-1)])]),_:1})),[[I,["tcm.prescriptionOrder/confirmGancaoSubmission"]]]),r(x,{modelValue:s.value,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value=l),title:"人工核对甘草提交",width:"min(92vw, 520px)","append-to-body":"","destroy-on-close":"","close-on-click-modal":!1},{footer:t(()=>[r(n,{onClick:e[3]||(e[3]=l=>s.value=!1)},{default:t(()=>[...e[8]||(e[8]=[u("取消",-1)])]),_:1}),r(n,{type:"primary",loading:_.value,onClick:b},{default:t(()=>[...e[9]||(e[9]=[u("确认并记录",-1)])]),_:1},8,["loading"])]),default:t(()=>[r(c,{title:"请先在甘草后台核对。本操作会写入不可变更的审计记录。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),r(R,{"label-width":"100px",onSubmit:A(b,["prevent"])},{default:t(()=>[r(a,{label:"核对结果",required:""},{default:t(()=>[r(p,{modelValue:o.resolution,"onUpdate:modelValue":e[0]||(e[0]=l=>o.resolution=l)},{default:t(()=>[r(m,{label:"CONFIRM_SUCCESS"},{default:t(()=>[...e[6]||(e[6]=[u("确认已创建",-1)])]),_:1}),r(m,{label:"CONFIRM_NOT_CREATED"},{default:t(()=>[...e[7]||(e[7]=[u("确认未创建",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o.resolution==="CONFIRM_SUCCESS"?(f(),E(a,{key:0,label:"甘草单号",required:""},{default:t(()=>[r(S,{modelValue:o.remote_order_no,"onUpdate:modelValue":e[1]||(e[1]=l=>o.remote_order_no=l),maxlength:"64",clearable:""},null,8,["modelValue"])]),_:1})):g("",!0),r(a,{label:"核对依据",required:""},{default:t(()=>[r(S,{modelValue:o.note,"onUpdate:modelValue":e[2]||(e[2]=l=>o.note=l),type:"textarea",rows:3,maxlength:"1000","show-word-limit":"",placeholder:"例如:核对时间、甘草后台查询条件及结果"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)):g("",!0)}}});export{X as _};
diff --git a/server/public/admin/assets/ImChatRecordPanel-Dm0poqca.js b/server/public/admin/assets/ImChatRecordPanel-BcYkdTBh.js
similarity index 95%
rename from server/public/admin/assets/ImChatRecordPanel-Dm0poqca.js
rename to server/public/admin/assets/ImChatRecordPanel-BcYkdTBh.js
index 2a7755e5c..1ea55ed82 100644
--- a/server/public/admin/assets/ImChatRecordPanel-Dm0poqca.js
+++ b/server/public/admin/assets/ImChatRecordPanel-BcYkdTBh.js
@@ -1 +1 @@
-import{ba as O,o as U,bR as W,R as Q,ap as X,bo as Z,c6 as ee,bx as se,q as a,r as c,v as N,D as w,s as k,L as b,bh as te,w as re,u as o,cY as ne,K as ae,by as oe,F as D,T as y,P as v,O as S,G as j,ac as ie,bB as ce,bi as le,p as J,ae as ue,br as de,aa as fe,bq as ye,E as me}from"./.pnpm-BHOjf1ZS.js";import{d as _e}from"./dayjs-CF5xpNFg.js";import{at as pe,au as he}from"./tcm-BkYsBTA3.js";import{p as ve}from"./im-business-message-parse-kN-fWnvR.js";import{_ as ge}from"./index-B31vLELt.js";function ke(i){const s=O({rows:[],patientImId:"",patientName:"",loading:!1,syncing:!1,hasLoaded:!1,readError:"",syncError:"",partialErrors:[],inserted:0,processedPeers:0,totalPeers:0,phase:"",checkedAccounts:0,candidateAccounts:0,skippedAccounts:0,lastSyncAt:null}),d=i.now??Date.now,E=i.setTimer??setTimeout,p=i.clearTimer??clearTimeout;let r=0,A=0,g=i.visible??!0,I=!1,h,P;function _(e){return!I&&g&&e===h&&e.generation===A&&e.diagnosisId===r}function x(){P!==void 0&&p(P),P=void 0}function q(){A++,x(),h=void 0,s.loading=!1,s.syncing=!1}async function R(e,l=!1){if(!_(e))return!1;if(e.archiveRequest){const u=await e.archiveRequest;return!l||!_(e)?u:R(e)}s.loading=!0;const f=Promise.resolve().then(async()=>{if(!_(e))return!1;try{const u=await i.load(e.diagnosisId);if(!_(e))return!1;if(!Array.isArray(u==null?void 0:u.lists))throw new Error("聊天记录接口返回的数据不完整");return s.rows=u.lists,s.patientImId=u.patient_im_id||"",s.patientName=u.patient_name||"",s.hasLoaded=!0,s.readError="",!0}catch(u){return _(e)&&(s.readError=K(u,"读取聊天记录失败")),!1}});e.archiveRequest=f;try{return await f}finally{e.archiveRequest===f&&(e.archiveRequest=void 0),_(e)&&(s.loading=!1)}}function H(e){x(),_(e)&&(P=E(()=>{P=void 0,_(e)&&L(e)},3e4))}async function L(e,l=!1){if(!_(e))return;if(e.syncRequest)return e.syncRequest;x(),s.syncing=!0,s.syncError="",s.partialErrors=[],s.inserted=0,s.processedPeers=0,s.totalPeers=0,s.phase="checking_accounts",s.checkedAccounts=0,s.candidateAccounts=0,s.skippedAccounts=0;const f=Promise.resolve().then(async()=>{var z,F,t,G;let u,T=0,Y=d();const $=new Set;try{for(;_(e);){const m=await i.sync(e.diagnosisId,u);if(!_(e))return;if(typeof(m==null?void 0:m.completed)!="boolean")throw new Error("同步接口未返回有效的完成状态");s.inserted=Number(m.inserted)||0,s.processedPeers=Number(m.processed_peers)||0,s.totalPeers=Number(m.total_peers)||0,s.phase=m.phase||"syncing",s.checkedAccounts=Number(m.checked_accounts)||0,s.candidateAccounts=Number(m.candidate_accounts)||0,s.skippedAccounts=Number(m.skipped_accounts)||0;for(const M of[m.error,...m.errors||[]])typeof M=="string"&&M.trim()&&$.add(M);if(s.partialErrors=[...$],m.completed){const M=await R(e,!0);if(!_(e))return;s.lastSyncAt=d(),l&&($.size?(z=i.notify)==null||z.call(i,"warning",`同步完成,部分会话失败:${[...$].join(";")}`):M?(t=i.notify)==null||t.call(i,"success",`聊天记录已更新,本次新增 ${s.inserted} 条`):(F=i.notify)==null||F.call(i,"warning",`同步已完成,但读取聊天记录失败:${s.readError}`));return}if(!m.sync_token)throw new Error("同步接口未返回继续同步所需的进度标识");u=m.sync_token,T++,(T>=3||d()-Y>=2e3)&&(await R(e,!0),T=0,Y=d())}}catch(m){if(!_(e))return;s.syncError=K(m,"同步聊天记录失败"),l&&((G=i.notify)==null||G.call(i,"error",s.syncError))}});e.syncRequest=f;try{await f}finally{e.syncRequest===f&&(e.syncRequest=void 0),_(e)&&(s.syncing=!1,H(e))}}function V(){if(I||!g||!r)return;const e={diagnosisId:r,generation:A};h=e,R(e),L(e)}function B(e){const l=Number(e)>0?Number(e):0;I||l===r&&h||(q(),r=l,s.rows=[],s.patientImId="",s.patientName="",s.hasLoaded=!1,s.readError="",s.syncError="",s.partialErrors=[],s.inserted=0,s.processedPeers=0,s.totalPeers=0,s.phase="",s.checkedAccounts=0,s.candidateAccounts=0,s.skippedAccounts=0,s.lastSyncAt=null,V())}function C(e){I||e===g||(g=e,q(),g&&V())}function n(){I=!0,q()}return{state:s,setDiagnosis:B,setVisible:C,dispose:n,reload:()=>h?R(h):Promise.resolve(!1),sync:()=>h?L(h,!0):Promise.resolve()}}function K(i,s){var E,p;if(typeof i=="string"&&i.trim())return i;const d=i;return((p=(E=d==null?void 0:d.response)==null?void 0:E.data)==null?void 0:p.msg)||(d==null?void 0:d.msg)||(d==null?void 0:d.error)||(d==null?void 0:d.message)||s}const be={class:"im-chat-record-panel"},we={class:"toolbar mb-3"},Ee={key:0,class:"sync-status",role:"status","aria-live":"polite"},Ae={key:0},Ie={key:0},Pe={key:1,class:"sync-status"},xe={key:2,class:"sync-status"},Re={key:0},Ne={class:"chat-wrap"},Se={key:0,class:"chat-list"},qe={class:"meta"},Le={class:"name"},Ce={class:"time"},$e={class:"bubble"},De={key:0,class:"friendly-text"},Be={class:"friendly-main"},Te={key:0,class:"friendly-sub"},Me={key:1,class:"text-content"},Ve={key:2,class:"text-content"},Ye={key:3,class:"muted"},ze=U({__name:"ImChatRecordPanel",props:{diagnosisId:{}},setup(i,{expose:s}){const d=i,E=()=>typeof document>"u"||document.visibilityState!=="hidden",p=ke({load:n=>he({diagnosis_id:n,only_archived:1}),sync:(n,e)=>pe({diagnosis_id:n,...e?{sync_token:e}:{}}),notify:(n,e)=>me[n](e),visible:E()}),r=p.state,{loading:A,syncing:g,rows:I,patientName:h}=W(r),P=J(()=>r.readError?"聊天记录读取失败,请重试":r.syncError||r.partialErrors.length?"暂未读取到聊天记录,请重试同步":g.value?"正在同步聊天记录…":r.hasLoaded?"暂无聊天记录":"正在加载聊天记录…"),_={text:"",image:"图片",file:"文件",sound:"语音",video:"视频",location:"位置",custom:"自定义",face:"表情",other:""},x=J(()=>I.value.flatMap(n=>(n.msg_type==="composite"&&Array.isArray(n.parts)?n.parts.map((l,f)=>({...n,...l,msg_id:`${n.msg_id}:${f}`})):[n]).map(l=>{const f=R(l);let u="";return f!=null&&f.tag?u=f.tag:u=_[l.msg_type]||(l.msg_type!=="other"?l.msg_type:""),{raw:l,friendly:f,tag:u}})));function q(n){if(n==null||!n)return"—";const e=n>1e12?Math.floor(n/1e3):n;return _e.unix(e).format("YYYY-MM-DD HH:mm:ss")}function R(n){const e=(n.text||"").trim();if(!e)return null;const l=e.startsWith("{")&&(/\bbusinessID\b/.test(e)||/\bcmd\b/.test(e));return n.msg_type==="custom"||l?ve(e):null}function H(n){return n.is_from_doctor?n.from_staff_name?`医生(${n.from_staff_name})`:"医生/员工":h.value?`患者(${h.value})`:"患者"}function L(){return p.reload()}function V(){return p.sync()}Q(()=>d.diagnosisId,n=>p.setDiagnosis(n),{immediate:!0});let B=!0;function C(){p.setVisible(B&&E())}return X(()=>document.addEventListener("visibilitychange",C)),Z(()=>{B=!0,C()}),ee(()=>{B=!1,C()}),se(()=>{document.removeEventListener("visibilitychange",C),p.dispose()}),s({refresh:L}),(n,e)=>{const l=te,f=re,u=ae,T=de,Y=fe,$=ye,z=ce,F=le;return a(),c("div",be,[N(l,{type:"info","show-icon":"",closable:!1,class:"mb-4",title:"说明"},{default:w(()=>[...e[0]||(e[0]=[k("p",{class:"panel-tip"},[b(" 展示患者所有诊单中与 "),k("strong",null,"所有医生 / 医助账号"),b("分别产生的会话,按时间排序。 打开页面后自动加载并同步最新消息,页面可见期间每 30 秒继续检查更新。 ")],-1)])]),_:1}),k("div",we,[N(u,{type:"primary",link:"",loading:o(g),onClick:V},{default:w(()=>[N(f,{class:"mr-1"},{default:w(()=>[N(o(ne))]),_:1}),e[1]||(e[1]=b(" 同步最新 ",-1))]),_:1},8,["loading"]),N(u,{type:"primary",link:"",loading:o(A),onClick:L},{default:w(()=>[N(f,{class:"mr-1"},{default:w(()=>[N(o(oe))]),_:1}),e[2]||(e[2]=b(" 重新加载已归档 ",-1))]),_:1},8,["loading"])]),o(g)?(a(),c("p",Ee,[o(r).phase==="checking_accounts"?(a(),c(D,{key:0},[e[3]||(e[3]=b(" 正在核验聊天账号",-1)),o(r).candidateAccounts?(a(),c("span",Ae,","+y(o(r).checkedAccounts)+" / "+y(o(r).candidateAccounts),1)):v("",!0)],64)):(a(),c(D,{key:1},[e[4]||(e[4]=b("正在同步聊天记录",-1)),o(r).totalPeers?(a(),c("span",Ie,",已处理 "+y(o(r).processedPeers)+" / "+y(o(r).totalPeers)+" 个会话",1)):v("",!0),b(",新增 "+y(o(r).inserted)+" 条",1)],64))])):o(r).lastSyncAt?(a(),c("p",Pe,"上次同步:"+y(q(o(r).lastSyncAt)),1)):v("",!0),o(r).skippedAccounts?(a(),c("p",xe,"已跳过 "+y(o(r).skippedAccounts)+" 个未注册或已失效的聊天账号,已有归档不受影响。",1)):v("",!0),o(r).readError?(a(),S(l,{key:3,type:"error","show-icon":"",closable:!1,class:"mb-3",title:`读取聊天记录失败:${o(r).readError}`},null,8,["title"])):v("",!0),o(r).syncError?(a(),S(l,{key:4,type:"error","show-icon":"",closable:!1,class:"mb-3",title:`同步失败:${o(r).syncError}`},null,8,["title"])):v("",!0),o(r).partialErrors.length?(a(),S(l,{key:5,type:"warning","show-icon":"",closable:!1,class:"mb-3",title:"聊天记录未完全同步"},{default:w(()=>[(a(!0),c(D,null,j(o(r).partialErrors.slice(0,3),t=>(a(),c("p",{key:t,class:"panel-tip"},y(t),1))),128)),o(r).partialErrors.length>3?(a(),c("details",Re,[k("summary",null,"查看其余 "+y(o(r).partialErrors.length-3)+" 项同步问题",1),(a(!0),c(D,null,j(o(r).partialErrors.slice(3),t=>(a(),c("p",{key:t,class:"panel-tip"},y(t),1))),128))])):v("",!0)]),_:1})):v("",!0),ie((a(),c("div",Ne,[x.value.length?(a(),c("div",Se,[(a(!0),c(D,null,j(x.value,t=>(a(),c("div",{key:`${t.raw.from_account||""}-${t.raw.to_account||""}-${t.raw.msg_id}`,class:ue(["chat-row",t.raw.is_from_doctor?"from-doctor":"from-patient"])},[k("div",qe,[k("span",Le,y(H(t.raw)),1),k("span",Ce,y(q(t.raw.time)),1),t.tag?(a(),S(T,{key:0,size:"small",type:"info",class:"ml-2"},{default:w(()=>[b(y(t.tag),1)]),_:2},1024)):v("",!0)]),k("div",$e,[t.raw.msg_type==="image"&&t.raw.image_url?(a(),S(Y,{key:0,src:t.raw.image_url,"preview-src-list":[t.raw.image_url],fit:"contain",class:"chat-img"},null,8,["src","preview-src-list"])):(t.raw.msg_type==="file"||t.raw.msg_type==="sound"||t.raw.msg_type==="video")&&t.raw.file_url?(a(),S($,{key:1,href:t.raw.file_url,target:"_blank",type:"primary"},{default:w(()=>[b(y(t.raw.file_name||"打开文件"),1)]),_:2},1032,["href"])):(a(),c(D,{key:2},[t.friendly?(a(),c("div",De,[k("div",Be,y(t.friendly.main),1),t.friendly.sub?(a(),c("div",Te,y(t.friendly.sub),1)):v("",!0)])):t.raw.msg_type==="text"&&t.raw.text?(a(),c("div",Me,y(t.raw.text),1)):t.raw.text?(a(),c("div",Ve,y(t.raw.text),1)):(a(),c("span",Ye,"(无法展示该消息类型)"))],64))])],2))),128))])):o(A)?v("",!0):(a(),S(z,{key:1,description:P.value},null,8,["description"]))])),[[F,o(A)&&!x.value.length]])])}}}),Ke=ge(ze,[["__scopeId","data-v-ed56fa43"]]);export{Ke as default};
+import{ba as O,o as U,bR as W,R as Q,ap as X,bq as Z,c6 as ee,bx as se,q as a,r as c,v as N,D as w,s as k,L as b,bm as te,w as re,u as o,cY as ne,K as ae,by as oe,F as D,T as y,P as v,O as S,G as j,ac as ie,bB as ce,bl as le,p as J,ae as ue,bk as de,aa as fe,br as ye,E as me}from"./.pnpm-BuKxIMgQ.js";import{d as _e}from"./dayjs-7f8aMLm8.js";import{at as pe,au as he}from"./tcm-BZvWmp4G.js";import{p as ve}from"./im-business-message-parse-DZRHjzTY.js";import{_ as ge}from"./index-BZAvl557.js";function ke(i){const s=O({rows:[],patientImId:"",patientName:"",loading:!1,syncing:!1,hasLoaded:!1,readError:"",syncError:"",partialErrors:[],inserted:0,processedPeers:0,totalPeers:0,phase:"",checkedAccounts:0,candidateAccounts:0,skippedAccounts:0,lastSyncAt:null}),d=i.now??Date.now,E=i.setTimer??setTimeout,p=i.clearTimer??clearTimeout;let r=0,A=0,g=i.visible??!0,I=!1,h,P;function _(e){return!I&&g&&e===h&&e.generation===A&&e.diagnosisId===r}function x(){P!==void 0&&p(P),P=void 0}function q(){A++,x(),h=void 0,s.loading=!1,s.syncing=!1}async function R(e,l=!1){if(!_(e))return!1;if(e.archiveRequest){const u=await e.archiveRequest;return!l||!_(e)?u:R(e)}s.loading=!0;const f=Promise.resolve().then(async()=>{if(!_(e))return!1;try{const u=await i.load(e.diagnosisId);if(!_(e))return!1;if(!Array.isArray(u==null?void 0:u.lists))throw new Error("聊天记录接口返回的数据不完整");return s.rows=u.lists,s.patientImId=u.patient_im_id||"",s.patientName=u.patient_name||"",s.hasLoaded=!0,s.readError="",!0}catch(u){return _(e)&&(s.readError=K(u,"读取聊天记录失败")),!1}});e.archiveRequest=f;try{return await f}finally{e.archiveRequest===f&&(e.archiveRequest=void 0),_(e)&&(s.loading=!1)}}function H(e){x(),_(e)&&(P=E(()=>{P=void 0,_(e)&&L(e)},3e4))}async function L(e,l=!1){if(!_(e))return;if(e.syncRequest)return e.syncRequest;x(),s.syncing=!0,s.syncError="",s.partialErrors=[],s.inserted=0,s.processedPeers=0,s.totalPeers=0,s.phase="checking_accounts",s.checkedAccounts=0,s.candidateAccounts=0,s.skippedAccounts=0;const f=Promise.resolve().then(async()=>{var z,F,t,G;let u,T=0,Y=d();const $=new Set;try{for(;_(e);){const m=await i.sync(e.diagnosisId,u);if(!_(e))return;if(typeof(m==null?void 0:m.completed)!="boolean")throw new Error("同步接口未返回有效的完成状态");s.inserted=Number(m.inserted)||0,s.processedPeers=Number(m.processed_peers)||0,s.totalPeers=Number(m.total_peers)||0,s.phase=m.phase||"syncing",s.checkedAccounts=Number(m.checked_accounts)||0,s.candidateAccounts=Number(m.candidate_accounts)||0,s.skippedAccounts=Number(m.skipped_accounts)||0;for(const M of[m.error,...m.errors||[]])typeof M=="string"&&M.trim()&&$.add(M);if(s.partialErrors=[...$],m.completed){const M=await R(e,!0);if(!_(e))return;s.lastSyncAt=d(),l&&($.size?(z=i.notify)==null||z.call(i,"warning",`同步完成,部分会话失败:${[...$].join(";")}`):M?(t=i.notify)==null||t.call(i,"success",`聊天记录已更新,本次新增 ${s.inserted} 条`):(F=i.notify)==null||F.call(i,"warning",`同步已完成,但读取聊天记录失败:${s.readError}`));return}if(!m.sync_token)throw new Error("同步接口未返回继续同步所需的进度标识");u=m.sync_token,T++,(T>=3||d()-Y>=2e3)&&(await R(e,!0),T=0,Y=d())}}catch(m){if(!_(e))return;s.syncError=K(m,"同步聊天记录失败"),l&&((G=i.notify)==null||G.call(i,"error",s.syncError))}});e.syncRequest=f;try{await f}finally{e.syncRequest===f&&(e.syncRequest=void 0),_(e)&&(s.syncing=!1,H(e))}}function V(){if(I||!g||!r)return;const e={diagnosisId:r,generation:A};h=e,R(e),L(e)}function B(e){const l=Number(e)>0?Number(e):0;I||l===r&&h||(q(),r=l,s.rows=[],s.patientImId="",s.patientName="",s.hasLoaded=!1,s.readError="",s.syncError="",s.partialErrors=[],s.inserted=0,s.processedPeers=0,s.totalPeers=0,s.phase="",s.checkedAccounts=0,s.candidateAccounts=0,s.skippedAccounts=0,s.lastSyncAt=null,V())}function C(e){I||e===g||(g=e,q(),g&&V())}function n(){I=!0,q()}return{state:s,setDiagnosis:B,setVisible:C,dispose:n,reload:()=>h?R(h):Promise.resolve(!1),sync:()=>h?L(h,!0):Promise.resolve()}}function K(i,s){var E,p;if(typeof i=="string"&&i.trim())return i;const d=i;return((p=(E=d==null?void 0:d.response)==null?void 0:E.data)==null?void 0:p.msg)||(d==null?void 0:d.msg)||(d==null?void 0:d.error)||(d==null?void 0:d.message)||s}const be={class:"im-chat-record-panel"},we={class:"toolbar mb-3"},Ee={key:0,class:"sync-status",role:"status","aria-live":"polite"},Ae={key:0},Ie={key:0},Pe={key:1,class:"sync-status"},xe={key:2,class:"sync-status"},Re={key:0},Ne={class:"chat-wrap"},Se={key:0,class:"chat-list"},qe={class:"meta"},Le={class:"name"},Ce={class:"time"},$e={class:"bubble"},De={key:0,class:"friendly-text"},Be={class:"friendly-main"},Te={key:0,class:"friendly-sub"},Me={key:1,class:"text-content"},Ve={key:2,class:"text-content"},Ye={key:3,class:"muted"},ze=U({__name:"ImChatRecordPanel",props:{diagnosisId:{}},setup(i,{expose:s}){const d=i,E=()=>typeof document>"u"||document.visibilityState!=="hidden",p=ke({load:n=>he({diagnosis_id:n,only_archived:1}),sync:(n,e)=>pe({diagnosis_id:n,...e?{sync_token:e}:{}}),notify:(n,e)=>me[n](e),visible:E()}),r=p.state,{loading:A,syncing:g,rows:I,patientName:h}=W(r),P=J(()=>r.readError?"聊天记录读取失败,请重试":r.syncError||r.partialErrors.length?"暂未读取到聊天记录,请重试同步":g.value?"正在同步聊天记录…":r.hasLoaded?"暂无聊天记录":"正在加载聊天记录…"),_={text:"",image:"图片",file:"文件",sound:"语音",video:"视频",location:"位置",custom:"自定义",face:"表情",other:""},x=J(()=>I.value.flatMap(n=>(n.msg_type==="composite"&&Array.isArray(n.parts)?n.parts.map((l,f)=>({...n,...l,msg_id:`${n.msg_id}:${f}`})):[n]).map(l=>{const f=R(l);let u="";return f!=null&&f.tag?u=f.tag:u=_[l.msg_type]||(l.msg_type!=="other"?l.msg_type:""),{raw:l,friendly:f,tag:u}})));function q(n){if(n==null||!n)return"—";const e=n>1e12?Math.floor(n/1e3):n;return _e.unix(e).format("YYYY-MM-DD HH:mm:ss")}function R(n){const e=(n.text||"").trim();if(!e)return null;const l=e.startsWith("{")&&(/\bbusinessID\b/.test(e)||/\bcmd\b/.test(e));return n.msg_type==="custom"||l?ve(e):null}function H(n){return n.is_from_doctor?n.from_staff_name?`医生(${n.from_staff_name})`:"医生/员工":h.value?`患者(${h.value})`:"患者"}function L(){return p.reload()}function V(){return p.sync()}Q(()=>d.diagnosisId,n=>p.setDiagnosis(n),{immediate:!0});let B=!0;function C(){p.setVisible(B&&E())}return X(()=>document.addEventListener("visibilitychange",C)),Z(()=>{B=!0,C()}),ee(()=>{B=!1,C()}),se(()=>{document.removeEventListener("visibilitychange",C),p.dispose()}),s({refresh:L}),(n,e)=>{const l=te,f=re,u=ae,T=de,Y=fe,$=ye,z=ce,F=le;return a(),c("div",be,[N(l,{type:"info","show-icon":"",closable:!1,class:"mb-4",title:"说明"},{default:w(()=>[...e[0]||(e[0]=[k("p",{class:"panel-tip"},[b(" 展示患者所有诊单中与 "),k("strong",null,"所有医生 / 医助账号"),b("分别产生的会话,按时间排序。 打开页面后自动加载并同步最新消息,页面可见期间每 30 秒继续检查更新。 ")],-1)])]),_:1}),k("div",we,[N(u,{type:"primary",link:"",loading:o(g),onClick:V},{default:w(()=>[N(f,{class:"mr-1"},{default:w(()=>[N(o(ne))]),_:1}),e[1]||(e[1]=b(" 同步最新 ",-1))]),_:1},8,["loading"]),N(u,{type:"primary",link:"",loading:o(A),onClick:L},{default:w(()=>[N(f,{class:"mr-1"},{default:w(()=>[N(o(oe))]),_:1}),e[2]||(e[2]=b(" 重新加载已归档 ",-1))]),_:1},8,["loading"])]),o(g)?(a(),c("p",Ee,[o(r).phase==="checking_accounts"?(a(),c(D,{key:0},[e[3]||(e[3]=b(" 正在核验聊天账号",-1)),o(r).candidateAccounts?(a(),c("span",Ae,","+y(o(r).checkedAccounts)+" / "+y(o(r).candidateAccounts),1)):v("",!0)],64)):(a(),c(D,{key:1},[e[4]||(e[4]=b("正在同步聊天记录",-1)),o(r).totalPeers?(a(),c("span",Ie,",已处理 "+y(o(r).processedPeers)+" / "+y(o(r).totalPeers)+" 个会话",1)):v("",!0),b(",新增 "+y(o(r).inserted)+" 条",1)],64))])):o(r).lastSyncAt?(a(),c("p",Pe,"上次同步:"+y(q(o(r).lastSyncAt)),1)):v("",!0),o(r).skippedAccounts?(a(),c("p",xe,"已跳过 "+y(o(r).skippedAccounts)+" 个未注册或已失效的聊天账号,已有归档不受影响。",1)):v("",!0),o(r).readError?(a(),S(l,{key:3,type:"error","show-icon":"",closable:!1,class:"mb-3",title:`读取聊天记录失败:${o(r).readError}`},null,8,["title"])):v("",!0),o(r).syncError?(a(),S(l,{key:4,type:"error","show-icon":"",closable:!1,class:"mb-3",title:`同步失败:${o(r).syncError}`},null,8,["title"])):v("",!0),o(r).partialErrors.length?(a(),S(l,{key:5,type:"warning","show-icon":"",closable:!1,class:"mb-3",title:"聊天记录未完全同步"},{default:w(()=>[(a(!0),c(D,null,j(o(r).partialErrors.slice(0,3),t=>(a(),c("p",{key:t,class:"panel-tip"},y(t),1))),128)),o(r).partialErrors.length>3?(a(),c("details",Re,[k("summary",null,"查看其余 "+y(o(r).partialErrors.length-3)+" 项同步问题",1),(a(!0),c(D,null,j(o(r).partialErrors.slice(3),t=>(a(),c("p",{key:t,class:"panel-tip"},y(t),1))),128))])):v("",!0)]),_:1})):v("",!0),ie((a(),c("div",Ne,[x.value.length?(a(),c("div",Se,[(a(!0),c(D,null,j(x.value,t=>(a(),c("div",{key:`${t.raw.from_account||""}-${t.raw.to_account||""}-${t.raw.msg_id}`,class:ue(["chat-row",t.raw.is_from_doctor?"from-doctor":"from-patient"])},[k("div",qe,[k("span",Le,y(H(t.raw)),1),k("span",Ce,y(q(t.raw.time)),1),t.tag?(a(),S(T,{key:0,size:"small",type:"info",class:"ml-2"},{default:w(()=>[b(y(t.tag),1)]),_:2},1024)):v("",!0)]),k("div",$e,[t.raw.msg_type==="image"&&t.raw.image_url?(a(),S(Y,{key:0,src:t.raw.image_url,"preview-src-list":[t.raw.image_url],fit:"contain",class:"chat-img"},null,8,["src","preview-src-list"])):(t.raw.msg_type==="file"||t.raw.msg_type==="sound"||t.raw.msg_type==="video")&&t.raw.file_url?(a(),S($,{key:1,href:t.raw.file_url,target:"_blank",type:"primary"},{default:w(()=>[b(y(t.raw.file_name||"打开文件"),1)]),_:2},1032,["href"])):(a(),c(D,{key:2},[t.friendly?(a(),c("div",De,[k("div",Be,y(t.friendly.main),1),t.friendly.sub?(a(),c("div",Te,y(t.friendly.sub),1)):v("",!0)])):t.raw.msg_type==="text"&&t.raw.text?(a(),c("div",Me,y(t.raw.text),1)):t.raw.text?(a(),c("div",Ve,y(t.raw.text),1)):(a(),c("span",Ye,"(无法展示该消息类型)"))],64))])],2))),128))])):o(A)?v("",!0):(a(),S(z,{key:1,description:P.value},null,8,["description"]))])),[[F,o(A)&&!x.value.length]])])}}}),Ke=ge(ze,[["__scopeId","data-v-ed56fa43"]]);export{Ke as default};
diff --git a/server/public/admin/assets/MediaSourceSelect-8A82adC4.js b/server/public/admin/assets/MediaSourceSelect-S1oqAo0l.js
similarity index 53%
rename from server/public/admin/assets/MediaSourceSelect-8A82adC4.js
rename to server/public/admin/assets/MediaSourceSelect-S1oqAo0l.js
index 00aa404b9..e27a44346 100644
--- a/server/public/admin/assets/MediaSourceSelect-8A82adC4.js
+++ b/server/public/admin/assets/MediaSourceSelect-S1oqAo0l.js
@@ -1 +1 @@
-import{_ as m}from"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-xuHF5G6T.js";import"./.pnpm-BHOjf1ZS.js";export{m as default};
+import{_ as m}from"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-DlP55LpE.js";import"./.pnpm-BuKxIMgQ.js";export{m as default};
diff --git a/server/public/admin/assets/MediaSourceSelect.vue_vue_type_script_setup_true_lang-xuHF5G6T.js b/server/public/admin/assets/MediaSourceSelect.vue_vue_type_script_setup_true_lang-DlP55LpE.js
similarity index 59%
rename from server/public/admin/assets/MediaSourceSelect.vue_vue_type_script_setup_true_lang-xuHF5G6T.js
rename to server/public/admin/assets/MediaSourceSelect.vue_vue_type_script_setup_true_lang-DlP55LpE.js
index bedff2e27..a6add1440 100644
--- a/server/public/admin/assets/MediaSourceSelect.vue_vue_type_script_setup_true_lang-xuHF5G6T.js
+++ b/server/public/admin/assets/MediaSourceSelect.vue_vue_type_script_setup_true_lang-DlP55LpE.js
@@ -1 +1 @@
-import{o as g,q as n,O as s,D as V,r as C,F as v,G as h,bn as B,u as c,P as p,t as w,ae as S,bm as k,p as i}from"./.pnpm-BHOjf1ZS.js";const z=g({__name:"MediaSourceSelect",props:{modelValue:{default:""},options:{},loading:{type:Boolean,default:!1},placeholder:{default:"请选择自媒体来源"},clearable:{type:Boolean,default:!0},filterable:{type:Boolean,default:!0},allowCreate:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},selectClass:{},selectStyle:{}},emits:["update:modelValue","change","visible-change"],setup(e,{emit:m}){const u=e,o=m,d=i(()=>(u.options||[]).map(l=>typeof l=="string"?{name:l}:{name:l.name,value:l.value})),f=i(()=>d.value.some(l=>l.name===u.modelValue)),b=l=>{o("visible-change",l)};return(l,t)=>{const r=B,y=k;return n(),s(y,{"model-value":e.modelValue,placeholder:e.placeholder,clearable:e.clearable,filterable:e.filterable,"allow-create":e.allowCreate,"default-first-option":e.allowCreate,disabled:e.disabled,loading:e.loading,class:S(e.selectClass),style:w(e.selectStyle),"onUpdate:modelValue":t[0]||(t[0]=a=>o("update:modelValue",a)),onChange:t[1]||(t[1]=a=>o("change",a)),onVisibleChange:b},{default:V(()=>[(n(!0),C(v,null,h(c(d),a=>(n(),s(r,{key:a.name,label:a.name,value:a.name},null,8,["label","value"]))),128)),e.modelValue&&!c(f)?(n(),s(r,{key:`__legacy_${e.modelValue}`,label:`${e.modelValue}(已停用)`,value:e.modelValue},null,8,["label","value"])):p("",!0)]),_:1},8,["model-value","placeholder","clearable","filterable","allow-create","default-first-option","disabled","loading","class","style"])}}});export{z as _};
+import{o as y,q as o,O as s,D as V,r as C,F as v,G as h,bg as B,u as c,P as p,t as w,ae as S,bf as k,p as i}from"./.pnpm-BuKxIMgQ.js";const z=y({__name:"MediaSourceSelect",props:{modelValue:{default:""},options:{},loading:{type:Boolean,default:!1},placeholder:{default:"请选择自媒体来源"},clearable:{type:Boolean,default:!0},filterable:{type:Boolean,default:!0},allowCreate:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},selectClass:{},selectStyle:{}},emits:["update:modelValue","change","visible-change"],setup(e,{emit:m}){const u=e,n=m,d=i(()=>(u.options||[]).map(l=>typeof l=="string"?{name:l}:{name:l.name,value:l.value})),f=i(()=>d.value.some(l=>l.name===u.modelValue)),b=l=>{n("visible-change",l)};return(l,t)=>{const r=B,g=k;return o(),s(g,{"model-value":e.modelValue,placeholder:e.placeholder,clearable:e.clearable,filterable:e.filterable,"allow-create":e.allowCreate,"default-first-option":e.allowCreate,disabled:e.disabled,loading:e.loading,class:S(e.selectClass),style:w(e.selectStyle),"onUpdate:modelValue":t[0]||(t[0]=a=>n("update:modelValue",a)),onChange:t[1]||(t[1]=a=>n("change",a)),onVisibleChange:b},{default:V(()=>[(o(!0),C(v,null,h(c(d),a=>(o(),s(r,{key:a.name,label:a.name,value:a.name},null,8,["label","value"]))),128)),e.modelValue&&!c(f)?(o(),s(r,{key:`__legacy_${e.modelValue}`,label:`${e.modelValue}(已停用)`,value:e.modelValue},null,8,["label","value"])):p("",!0)]),_:1},8,["model-value","placeholder","clearable","filterable","allow-create","default-first-option","disabled","loading","class","style"])}}});export{z as _};
diff --git a/server/public/admin/assets/MessageBubble-BmPJ3dT7.js b/server/public/admin/assets/MessageBubble-D_6gk1Yj.js
similarity index 87%
rename from server/public/admin/assets/MessageBubble-BmPJ3dT7.js
rename to server/public/admin/assets/MessageBubble-D_6gk1Yj.js
index cd75aac78..c89cef835 100644
--- a/server/public/admin/assets/MessageBubble-BmPJ3dT7.js
+++ b/server/public/admin/assets/MessageBubble-D_6gk1Yj.js
@@ -1 +1 @@
-import{o as S,q as a,r as l,ae as x,v as r,D as m,L as d,T as i,a0 as D,s as n,O as g,br as G,P as B,aa as K,u as v,bE as L,w as q,bF as A,bG as H,bH as O,F as P,K as U,p as u}from"./.pnpm-BHOjf1ZS.js";import{t as j,_ as J}from"./index-B31vLELt.js";const Q={class:"msg-body"},R={class:"msg-meta"},W={class:"msg-sender"},X={class:"msg-time"},Y={key:0,class:"content-text"},Z={key:2,class:"content-pending"},ee=["src"],se={key:4,class:"content-pending"},te=["src"],ae={key:6,class:"content-pending"},ne={key:7,class:"content-file"},le={class:"file-meta"},ie=["title"],oe={class:"file-info"},ce={key:8,class:"content-fallback"},re={class:"fallback-title"},me={class:"fallback-desc"},ue=S({__name:"MessageBubble",props:{message:{}},setup(s){const o=s,w=u(()=>o.message.from_is_staff),c=u(()=>(o.message.media||[]).find(t=>t.status===1)??null),_=u(()=>{const e=o.message.from_profile;return e&&e.name||o.message.from_user}),z=u(()=>{const e=o.message.from_profile;return(e==null?void 0:e.avatar)||""}),F=u(()=>(_.value||"").slice(-2)||"?"),E=u(()=>{const e=o.message.msgtype;return e==="image"||e==="video"||e==="voice"?"bubble-media":e==="file"?"bubble-file":"bubble-text"}),C=u(()=>{switch(o.message.msgtype){case"link":return"[链接]";case"weapp":return"[小程序]";case"chatrecord":return"[聊天记录]";case"location":return"[位置]";case"card":return"[名片]";case"meeting":return"[会议]";case"docmsg":return"[文档]";case"mixed":return"[混合消息]";case"emotion":return"[表情]";default:return`[${o.message.msgtype}]`}});function M(e){return e?j(e*1e3,"mm-dd hh:MM"):""}function N(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/1024/1024).toFixed(2)} MB`:`${(e/1024/1024/1024).toFixed(2)} GB`:""}function $(e){window.open(e,"_blank","noopener")}return(e,t)=>{var k,y,p,h;const T=D,b=G,V=K,f=q,I=U;return a(),l("div",{class:x(["msg-bubble",{"is-staff":w.value}])},[r(T,{class:"msg-avatar",size:36,src:z.value},{default:m(()=>[d(i(F.value),1)]),_:1},8,["src"]),n("div",Q,[n("div",R,[n("span",W,i(_.value),1),n("span",X,i(M(s.message.send_time)),1),s.message.action==="recall"?(a(),g(b,{key:0,size:"small",type:"info"},{default:m(()=>[...t[1]||(t[1]=[d(" 已撤回 ",-1)])]),_:1})):B("",!0)]),n("div",{class:x(["msg-content",E.value])},[s.message.msgtype==="text"||s.message.msgtype==="markdown"?(a(),l("div",Y,i(s.message.content),1)):s.message.msgtype==="image"&&((k=c.value)!=null&&k.file_url)?(a(),g(V,{key:1,src:c.value.file_url,"preview-src-list":[c.value.file_url],fit:"contain",class:"content-image","hide-on-click-modal":""},null,8,["src","preview-src-list"])):s.message.msgtype==="image"?(a(),l("div",Z,[r(f,null,{default:m(()=>[r(v(L))]),_:1}),t[2]||(t[2]=n("span",null,"图片下载中…",-1))])):s.message.msgtype==="video"&&((y=c.value)!=null&&y.file_url)?(a(),l("video",{key:3,src:c.value.file_url,controls:"",class:"content-video"},null,8,ee)):s.message.msgtype==="video"?(a(),l("div",se,[r(f,null,{default:m(()=>[r(v(A))]),_:1}),t[3]||(t[3]=n("span",null,"视频下载中…",-1))])):s.message.msgtype==="voice"&&((p=c.value)!=null&&p.file_url)?(a(),l("audio",{key:5,src:c.value.file_url,controls:"",class:"content-audio"},null,8,te)):s.message.msgtype==="voice"?(a(),l("div",ae,[r(f,null,{default:m(()=>[r(v(H))]),_:1}),n("span",null,"语音下载中…("+i(s.message.play_length)+"s)",1)])):s.message.msgtype==="file"?(a(),l("div",ne,[r(f,{size:24},{default:m(()=>[r(v(O))]),_:1}),n("div",le,[n("div",{class:"file-name",title:s.message.file_name},i(s.message.file_name||"未命名文件"),9,ie),n("div",oe,[d(i(N(s.message.file_size))+" ",1),s.message.file_ext?(a(),l(P,{key:0},[d("· "+i(s.message.file_ext),1)],64)):B("",!0)])]),(h=c.value)!=null&&h.file_url?(a(),g(I,{key:0,size:"small",type:"primary",link:"",onClick:t[0]||(t[0]=de=>$(c.value.file_url))},{default:m(()=>[...t[4]||(t[4]=[d(" 下载 ",-1)])]),_:1})):(a(),g(b,{key:1,size:"small",type:"info"},{default:m(()=>[...t[5]||(t[5]=[d("下载中…",-1)])]),_:1}))])):(a(),l("div",ce,[n("div",re,i(C.value),1),n("div",me,i(s.message.content),1)]))],2)])],2)}}}),ve=J(ue,[["__scopeId","data-v-b5ff1168"]]);export{ve as default};
+import{o as S,q as a,r as l,ae as x,v as r,D as m,L as d,T as i,a0 as D,s as n,O as g,bk as G,P as B,aa as K,u as v,bE as L,w as q,bF as A,bG as H,bH as O,F as P,K as U,p as u}from"./.pnpm-BuKxIMgQ.js";import{t as j,_ as J}from"./index-BZAvl557.js";const Q={class:"msg-body"},R={class:"msg-meta"},W={class:"msg-sender"},X={class:"msg-time"},Y={key:0,class:"content-text"},Z={key:2,class:"content-pending"},ee=["src"],se={key:4,class:"content-pending"},te=["src"],ae={key:6,class:"content-pending"},ne={key:7,class:"content-file"},le={class:"file-meta"},ie=["title"],oe={class:"file-info"},ce={key:8,class:"content-fallback"},re={class:"fallback-title"},me={class:"fallback-desc"},ue=S({__name:"MessageBubble",props:{message:{}},setup(s){const o=s,w=u(()=>o.message.from_is_staff),c=u(()=>(o.message.media||[]).find(t=>t.status===1)??null),_=u(()=>{const e=o.message.from_profile;return e&&e.name||o.message.from_user}),z=u(()=>{const e=o.message.from_profile;return(e==null?void 0:e.avatar)||""}),F=u(()=>(_.value||"").slice(-2)||"?"),E=u(()=>{const e=o.message.msgtype;return e==="image"||e==="video"||e==="voice"?"bubble-media":e==="file"?"bubble-file":"bubble-text"}),C=u(()=>{switch(o.message.msgtype){case"link":return"[链接]";case"weapp":return"[小程序]";case"chatrecord":return"[聊天记录]";case"location":return"[位置]";case"card":return"[名片]";case"meeting":return"[会议]";case"docmsg":return"[文档]";case"mixed":return"[混合消息]";case"emotion":return"[表情]";default:return`[${o.message.msgtype}]`}});function M(e){return e?j(e*1e3,"mm-dd hh:MM"):""}function N(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/1024/1024).toFixed(2)} MB`:`${(e/1024/1024/1024).toFixed(2)} GB`:""}function $(e){window.open(e,"_blank","noopener")}return(e,t)=>{var b,y,p,h;const T=D,k=G,V=K,f=q,I=U;return a(),l("div",{class:x(["msg-bubble",{"is-staff":w.value}])},[r(T,{class:"msg-avatar",size:36,src:z.value},{default:m(()=>[d(i(F.value),1)]),_:1},8,["src"]),n("div",Q,[n("div",R,[n("span",W,i(_.value),1),n("span",X,i(M(s.message.send_time)),1),s.message.action==="recall"?(a(),g(k,{key:0,size:"small",type:"info"},{default:m(()=>[...t[1]||(t[1]=[d(" 已撤回 ",-1)])]),_:1})):B("",!0)]),n("div",{class:x(["msg-content",E.value])},[s.message.msgtype==="text"||s.message.msgtype==="markdown"?(a(),l("div",Y,i(s.message.content),1)):s.message.msgtype==="image"&&((b=c.value)!=null&&b.file_url)?(a(),g(V,{key:1,src:c.value.file_url,"preview-src-list":[c.value.file_url],fit:"contain",class:"content-image","hide-on-click-modal":""},null,8,["src","preview-src-list"])):s.message.msgtype==="image"?(a(),l("div",Z,[r(f,null,{default:m(()=>[r(v(L))]),_:1}),t[2]||(t[2]=n("span",null,"图片下载中…",-1))])):s.message.msgtype==="video"&&((y=c.value)!=null&&y.file_url)?(a(),l("video",{key:3,src:c.value.file_url,controls:"",class:"content-video"},null,8,ee)):s.message.msgtype==="video"?(a(),l("div",se,[r(f,null,{default:m(()=>[r(v(A))]),_:1}),t[3]||(t[3]=n("span",null,"视频下载中…",-1))])):s.message.msgtype==="voice"&&((p=c.value)!=null&&p.file_url)?(a(),l("audio",{key:5,src:c.value.file_url,controls:"",class:"content-audio"},null,8,te)):s.message.msgtype==="voice"?(a(),l("div",ae,[r(f,null,{default:m(()=>[r(v(H))]),_:1}),n("span",null,"语音下载中…("+i(s.message.play_length)+"s)",1)])):s.message.msgtype==="file"?(a(),l("div",ne,[r(f,{size:24},{default:m(()=>[r(v(O))]),_:1}),n("div",le,[n("div",{class:"file-name",title:s.message.file_name},i(s.message.file_name||"未命名文件"),9,ie),n("div",oe,[d(i(N(s.message.file_size))+" ",1),s.message.file_ext?(a(),l(P,{key:0},[d("· "+i(s.message.file_ext),1)],64)):B("",!0)])]),(h=c.value)!=null&&h.file_url?(a(),g(I,{key:0,size:"small",type:"primary",link:"",onClick:t[0]||(t[0]=de=>$(c.value.file_url))},{default:m(()=>[...t[4]||(t[4]=[d(" 下载 ",-1)])]),_:1})):(a(),g(k,{key:1,size:"small",type:"info"},{default:m(()=>[...t[5]||(t[5]=[d("下载中…",-1)])]),_:1}))])):(a(),l("div",ce,[n("div",re,i(C.value),1),n("div",me,i(s.message.content),1)]))],2)])],2)}}}),ve=J(ue,[["__scopeId","data-v-b5ff1168"]]);export{ve as default};
diff --git a/server/public/admin/assets/NoteTimeline-t2oiBuLI.js b/server/public/admin/assets/NoteTimeline-CWaZsPW3.js
similarity index 91%
rename from server/public/admin/assets/NoteTimeline-t2oiBuLI.js
rename to server/public/admin/assets/NoteTimeline-CWaZsPW3.js
index f352d2248..db023d3b8 100644
--- a/server/public/admin/assets/NoteTimeline-t2oiBuLI.js
+++ b/server/public/admin/assets/NoteTimeline-CWaZsPW3.js
@@ -1,2 +1,2 @@
-import{o as ie,R as oe,q as n,r as o,O as k,K as le,D as r,L as P,P as m,v as l,s as d,F as w,G as E,bB as ae,b7 as re,bt as de,p as ue,M as g,T as U,aa as me,u as V,da as z,aw as M,w as ce,bH as pe,e as ge}from"./.pnpm-BHOjf1ZS.js";import{_ as fe}from"./picker-DY0rRn6Q.js";import{e as ve,c as _e,j as f,_ as ye}from"./index-B31vLELt.js";import{a as T,d as he}from"./patient-DJrRftKl.js";import{h as ke}from"./perm-LGazrkDZ.js";import"./index-Dt_C33Jx.js";import"./index-Mwguss-B.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./index-Btk0rgzN.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./usePaging-oaNM6A9T.js";const we={class:"note-timeline-wrap"},Ie={key:0,class:"timeline-actions"},Ce={class:"upload-trigger"},be={class:"upload-trigger"},xe={key:1,class:"note-timeline"},Ee={class:"timeline-date"},Ve={class:"timeline-body"},Ne={key:0,class:"timeline-content"},Se={key:1,class:"timeline-images"},De={key:2,class:"timeline-images"},Be={key:0,class:"thumb-wrap"},Ae={key:1,class:"file-wrap"},Pe=["href","title"],Ue={class:"file-name"},O=8e3,ze=ie({__name:"NoteTimeline",props:{notes:{},diagnosisId:{},readonly:{type:Boolean}},emits:["refresh"],setup(u,{emit:W}){const c=u,I=W,X=ue(()=>ke(["doctor.appointment/addDoctorNote"])),v=g(!1),C=g(""),N=g(!1),q=ve(),_=t=>q.getImageUrl(t),S=g([]),D=g([]),y=g(0),h=g(0),H=["jpg","jpeg","png","gif","bmp","webp","svg"],B=t=>{var i;const e=((i=t.split(".").pop())==null?void 0:i.toLowerCase().split("?")[0])||"";return H.includes(e)},$=t=>{var i;const e=t.split("/");return decodeURIComponent(((i=e[e.length-1])==null?void 0:i.split("?")[0])||"文件")},K=t=>t.filter(B).map(_),Z=(t,e)=>{const i=t.filter(B),b=t[e];return i.indexOf(b)},J=t=>t?t.split(`
+import{o as ie,R as oe,q as n,r as o,O as k,K as le,D as r,L as P,P as m,v as l,s as d,F as w,G as E,bB as ae,b7 as re,bt as de,p as ue,M as g,T as U,aa as me,u as V,da as z,aw as M,w as ce,bH as pe,e as ge}from"./.pnpm-BuKxIMgQ.js";import{_ as fe}from"./picker-C-hBLp_q.js";import{e as ve,c as _e,j as f,_ as ye}from"./index-BZAvl557.js";import{a as T,d as he}from"./patient-QijZeiSI.js";import{h as ke}from"./perm-DZClfK-E.js";import"./index-BARAiw4K.js";import"./index-DO2zctlZ.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./index-BYpT7Ezr.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./usePaging-DNtxCypz.js";const we={class:"note-timeline-wrap"},Ie={key:0,class:"timeline-actions"},Ce={class:"upload-trigger"},be={class:"upload-trigger"},xe={key:1,class:"note-timeline"},Ee={class:"timeline-date"},Ve={class:"timeline-body"},Ne={key:0,class:"timeline-content"},Se={key:1,class:"timeline-images"},De={key:2,class:"timeline-images"},Be={key:0,class:"thumb-wrap"},Ae={key:1,class:"file-wrap"},Pe=["href","title"],Ue={class:"file-name"},O=8e3,ze=ie({__name:"NoteTimeline",props:{notes:{},diagnosisId:{},readonly:{type:Boolean}},emits:["refresh"],setup(u,{emit:W}){const c=u,I=W,X=ue(()=>ke(["doctor.appointment/addDoctorNote"])),v=g(!1),C=g(""),N=g(!1),q=ve(),_=t=>q.getImageUrl(t),S=g([]),D=g([]),y=g(0),h=g(0),H=["jpg","jpeg","png","gif","bmp","webp","svg"],B=t=>{var i;const e=((i=t.split(".").pop())==null?void 0:i.toLowerCase().split("?")[0])||"";return H.includes(e)},$=t=>{var i;const e=t.split("/");return decodeURIComponent(((i=e[e.length-1])==null?void 0:i.split("?")[0])||"文件")},K=t=>t.filter(B).map(_),Z=(t,e)=>{const i=t.filter(B),b=t[e];return i.indexOf(b)},J=t=>t?t.split(`
`).filter(Boolean):[],Q=t=>{if(!c.diagnosisId)return;const e=Array.isArray(t)?t:[t];if(e.length<=y.value){y.value=e.length;return}const i=e.slice(y.value);y.value=e.length,i.length>0&&T({diagnosis_id:c.diagnosisId,tongue_images:i}).then(()=>{f.msgSuccess("舌苔照片已添加"),I("refresh")})},Y=t=>{if(!c.diagnosisId)return;const e=Array.isArray(t)?t:[t];if(e.length<=h.value){h.value=e.length;return}const i=e.slice(h.value);h.value=e.length,i.length>0&&T({diagnosis_id:c.diagnosisId,report_files:i}).then(()=>{f.msgSuccess("检查报告已添加"),I("refresh")})};oe(()=>c.notes,()=>{S.value=[],D.value=[],y.value=0,h.value=0});const ee=async()=>{if(!c.diagnosisId){f.msgWarning("当前无诊单,无法添加备注");return}const t=C.value.trim();if(!t){f.msgWarning("请输入备注内容");return}N.value=!0;try{await T({diagnosis_id:c.diagnosisId,content:t}),f.msgSuccess("备注保存成功"),C.value="",v.value=!1,I("refresh")}catch(e){f.msgError((e==null?void 0:e.message)||"保存失败")}finally{N.value=!1}},A=async(t,e,i)=>{try{await ge.confirm("确认删除?","提示",{type:"warning"})}catch{return}await he({note_id:t,image_type:e,image_path:i}),f.msgSuccess("已删除"),I("refresh")};return(t,e)=>{const i=le,b=_e,F=fe,L=me,x=ce,te=ae,se=re,ne=de;return n(),o("div",we,[!u.readonly&&u.diagnosisId?(n(),o("div",Ie,[X.value?(n(),k(i,{key:0,type:"primary",plain:"",size:"small",onClick:e[0]||(e[0]=s=>v.value=!0)},{default:r(()=>[...e[6]||(e[6]=[P(" 添加备注 ",-1)])]),_:1})):m("",!0),l(F,{modelValue:S.value,"onUpdate:modelValue":e[1]||(e[1]=s=>S.value=s),limit:99,type:"image","exclude-domain":!0,onChange:Q},{upload:r(()=>[d("div",Ce,[l(b,{size:20,name:"el-icon-Plus"}),e[7]||(e[7]=d("span",null,"舌苔照片",-1))])]),_:1},8,["modelValue"]),l(F,{modelValue:D.value,"onUpdate:modelValue":e[2]||(e[2]=s=>D.value=s),limit:99,type:"file","exclude-domain":!0,onChange:Y},{upload:r(()=>[d("div",be,[l(b,{size:20,name:"el-icon-Plus"}),e[8]||(e[8]=d("span",null,"检查报告",-1))])]),_:1},8,["modelValue"])])):m("",!0),u.notes.length?(n(),o("div",xe,[(n(!0),o(w,null,E(u.notes,s=>{var R,j;return n(),o("div",{key:s.id,class:"timeline-node"},[e[11]||(e[11]=d("div",{class:"timeline-dot"},null,-1)),d("div",Ee,U(s.note_date),1),d("div",Ve,[s.content?(n(),o("div",Ne,[(n(!0),o(w,null,E(J(s.content),(a,p)=>(n(),o("div",{key:p,class:"content-line"},U(a),1))),128))])):m("",!0),(R=s.tongue_images)!=null&&R.length?(n(),o("div",Se,[e[9]||(e[9]=d("span",{class:"images-label"},"舌苔照片",-1)),(n(!0),o(w,null,E(s.tongue_images,(a,p)=>(n(),o("div",{key:p,class:"thumb-wrap"},[l(L,{src:_(a),"preview-src-list":s.tongue_images.map(_),"initial-index":p,"z-index":O,fit:"cover",class:"timeline-thumb","preview-teleported":""},null,8,["src","preview-src-list","initial-index"]),u.readonly?m("",!0):(n(),k(x,{key:0,class:"thumb-delete",onClick:M(G=>A(s.id,"tongue_images",a),["stop"])},{default:r(()=>[l(V(z))]),_:1},8,["onClick"]))]))),128))])):m("",!0),(j=s.report_files)!=null&&j.length?(n(),o("div",De,[e[10]||(e[10]=d("span",{class:"images-label"},"检查报告",-1)),(n(!0),o(w,null,E(s.report_files,(a,p)=>(n(),o(w,{key:p},[B(a)?(n(),o("div",Be,[l(L,{src:_(a),"preview-src-list":K(s.report_files),"initial-index":Z(s.report_files,p),"z-index":O,fit:"cover",class:"timeline-thumb","preview-teleported":""},null,8,["src","preview-src-list","initial-index"]),u.readonly?m("",!0):(n(),k(x,{key:0,class:"thumb-delete",onClick:M(G=>A(s.id,"report_files",a),["stop"])},{default:r(()=>[l(V(z))]),_:1},8,["onClick"]))])):(n(),o("div",Ae,[d("a",{href:_(a),target:"_blank",class:"file-link",title:$(a)},[l(x,{size:20},{default:r(()=>[l(V(pe))]),_:1}),d("span",Ue,U($(a)),1)],8,Pe),u.readonly?m("",!0):(n(),k(x,{key:0,class:"file-delete",onClick:M(G=>A(s.id,"report_files",a),["stop"])},{default:r(()=>[l(V(z))]),_:1},8,["onClick"]))]))],64))),128))])):m("",!0)])])}),128))])):m("",!0),!u.notes.length&&u.readonly?(n(),k(te,{key:2,description:"暂无备注","image-size":48})):m("",!0),l(ne,{modelValue:v.value,"onUpdate:modelValue":e[5]||(e[5]=s=>v.value=s),title:"添加备注",width:"480px","append-to-body":""},{footer:r(()=>[l(i,{onClick:e[4]||(e[4]=s=>v.value=!1)},{default:r(()=>[...e[12]||(e[12]=[P("取消",-1)])]),_:1}),l(i,{type:"primary",loading:N.value,onClick:ee},{default:r(()=>[...e[13]||(e[13]=[P("保存",-1)])]),_:1},8,["loading"])]),default:r(()=>[l(se,{modelValue:C.value,"onUpdate:modelValue":e[3]||(e[3]=s=>C.value=s),type:"textarea",rows:4,placeholder:"输入今日备注...",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1},8,["modelValue"])])}}}),Ke=ye(ze,[["__scopeId","data-v-530ad386"]]);export{Ke as default};
diff --git a/server/public/admin/assets/OrderActionHost-CBLJoo0n.js b/server/public/admin/assets/OrderActionHost-CSRcGqEo.js
similarity index 97%
rename from server/public/admin/assets/OrderActionHost-CBLJoo0n.js
rename to server/public/admin/assets/OrderActionHost-CSRcGqEo.js
index 0530fdbc2..8c4c651a9 100644
--- a/server/public/admin/assets/OrderActionHost-CBLJoo0n.js
+++ b/server/public/admin/assets/OrderActionHost-CSRcGqEo.js
@@ -1 +1 @@
-import{o as Ae,q as g,r as N,F as P,v as l,u as K,D as t,O as Q,$ as Te,K as De,L as s,w as $e,cl as Re,Z as Be,G as C,_ as Fe,ae as Me,T as ue,P as je,bt as Ie,bh as Le,b7 as ze,b9 as He,aw as de,b6 as Ge,bm as Ke,bn as We,br as Je,ac as Ze,s as X,J as Qe,bi as Xe,bc as Ye,bf as ea,I as aa,M as f,p as la,ba as z,e as Y}from"./.pnpm-BHOjf1ZS.js";import{j as O,_ as ta}from"./index-B31vLELt.js";import ra from"./PrescriptionOrderDetailDrawer-C-APB0h9.js";import{m as se,c as na,d as oa,e as ia,g as ua,h as da,i as sa,j as pa,k as ma,l as fa,n as _a,o as ca,p as ya}from"./first_visit-ClR5pGNH.js";import{h as ba}from"./perm-LGazrkDZ.js";import{C as va}from"./prescription-order-utils-CXfs2Bra.js";function y(b){return ba([b])}function ga(b){return va(b)}function ka(){return y("tcm.prescriptionOrder/detail")}function pe(b){const m=[],_=Number(b.fulfillment_status),E=Number(b.prescription_audit_status),V=Number(b.payment_slip_audit_status),d=ga(b);ka()&&y("tcm.prescriptionOrder/edit")&&_===1&&!d&&m.push({key:"edit",label:"编辑订单"}),y("tcm.prescriptionOrder/auditPrescription")&&E===0&&![3,4,6].includes(_)&&m.push({key:"audit_prescription",label:"处方审核"}),y("tcm.prescriptionOrder/auditPrescription")&&[1,2].includes(E)&&V===0&&![3,4,6].includes(_)&&!d&&m.push({key:"revoke_rx_audit",label:"撤回处方审核"}),y("tcm.prescriptionOrder/auditPayment")&&E===1&&V===0&&![3,4].includes(_)&&m.push({key:"audit_payment",label:"支付单审核"}),y("tcm.prescriptionOrder/auditPayment")&&E===1&&[1,2].includes(V)&&![3,4,6].includes(_)&&m.push({key:"revoke_pay_audit",label:"撤回支付审核"}),y("tcm.prescriptionOrder/ddcode")&&m.push({key:"ddcode",label:"修改快递单号"}),y("tcm.prescriptionOrder/ship")&&_===2&&m.push({key:"ship",label:"确认发货"});const o=Math.round((Number(b.amount)||0)*100)/100,$=Math.round((Number(b.linked_pay_paid_total)||0)*100)/100;return y("tcm.prescriptionOrder/addPayOrder")&&[5,6].includes(_)&&$W.value==="prescription"?"处方业务审核":"关联支付单审核"),F=f(!1),x=z({express_company:"auto",tracking_number:""}),M=f(!1),c=z({ship_mode:"gancao",express_company:"auto",tracking_number:""}),S=f(!1),H=f(!1),ee=f({}),n=z({recipient_name:"",recipient_phone:"",shipping_address:"",fee_type:3,amount:0,express_company:"auto",tracking_number:"",remark_assistant:"",remark_extra:""}),j=f(!1),u=z({order_type:3,pay_amount:0,pay_remark:"",completion_request:0,pay_create_type:"fubei"}),I=f(!1),G=f(3),L=f(!1),k=z({reason:"",refund_amount:void 0});function ae(r){return Number(r||0).toFixed(2)}function ye(r){return String(r||"").toLowerCase()==="direct"?"direct":"gancao"}function be(r){var e;(e=V.value)==null||e.open(Number(r.id))}async function ve(r){const e=await se({id:r});return(e==null?void 0:e.data)??e??null}async function ge(r){d.value=r,S.value=!0,H.value=!0;try{const e=await ve(Number(r.id));if(!e)throw new Error("订单详情加载失败");ee.value=e,n.recipient_name=String(e.recipient_name||""),n.recipient_phone=String(e.recipient_phone||""),n.shipping_address=String(e.shipping_address||""),n.fee_type=Number(e.fee_type||3),n.amount=Number(e.amount||0),n.express_company=String(e.express_company||"auto")||"auto",n.tracking_number=String(e.tracking_number||""),n.remark_assistant=String(e.remark_assistant||""),n.remark_extra=String(e.remark_extra||"")}catch(e){O.msgError((e==null?void 0:e.message)||"订单详情加载失败"),S.value=!1}finally{H.value=!1}}function le(r,e){switch(d.value=r,e){case"edit":ge(r);break;case"audit_prescription":case"audit_payment":W.value=e==="audit_prescription"?"prescription":"payment",B.value="",R.value=!0;break;case"revoke_rx_audit":re("prescription");break;case"revoke_pay_audit":re("payment");break;case"ddcode":x.express_company=String(r.express_company||"auto")||"auto",x.tracking_number=String(r.tracking_number||""),F.value=!0;break;case"ship":c.ship_mode=ye(r.ship_mode),c.express_company=String(r.express_company||"auto")||"auto",c.tracking_number=String(r.tracking_number||""),M.value=!0;break;case"add_pay_order":{const J=Math.max(0,Number(r.amount||0)-Number(r.linked_pay_paid_total||0));u.order_type=3,u.pay_amount=Number(J.toFixed(2)),u.pay_remark="",u.completion_request=0,u.pay_create_type="fubei",j.value=!0;break}case"complete":G.value=3,I.value=!0;break;case"refund":k.reason="",k.refund_amount=void 0,L.value=!0;break;case"withdraw":Oe();break;case"upload_pharmacy":Ne();break}}async function w(r){var e;O.msgSuccess(r),E("changed"),await((e=V.value)==null?void 0:e.refreshIfCurrent(d.value.id))}async function te(r){if(r==="reject"&&!B.value.trim()){O.msgError("驳回时必须填写审核意见");return}o.value=!0;try{const e={id:Number(d.value.id),action:r,remark:B.value.trim()};W.value==="prescription"?await na(e):await oa(e),R.value=!1,await w(r==="approve"?"审核通过成功":"订单已驳回")}catch{}finally{o.value=!1}}async function re(r){try{await Y.confirm(`确认撤回${r==="prescription"?"处方":"支付单"}审核并恢复为待审核吗?`,"撤回审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),r==="prescription"?await ia({id:Number(d.value.id)}):await ua({id:Number(d.value.id)}),await w("审核已撤回")}catch{}}async function ne(){if(!x.tracking_number.trim()){O.msgError("请填写快递单号");return}o.value=!0;try{await da({id:Number(d.value.id),express_company:x.express_company||"auto",tracking_number:x.tracking_number.trim()}),F.value=!1,await w("快递单号已保存")}catch{}finally{o.value=!1}}async function oe(){if(!c.tracking_number.trim()){O.msgError("请填写快递单号");return}o.value=!0;try{await sa({id:Number(d.value.id),ship_mode:c.ship_mode,express_company:c.express_company||"auto",tracking_number:c.tracking_number.trim()}),M.value=!1,await w("确认发货成功")}catch{}finally{o.value=!1}}async function ke(){if(!n.recipient_name.trim()||!n.recipient_phone.trim()||!n.shipping_address.trim()){O.msgError("请完整填写收货人、收货手机和收货地址");return}if(Number(n.amount)<0){O.msgError("订单金额不能为负数");return}const r=ee.value;o.value=!0;try{await pa({id:Number(d.value.id),recipient_name:n.recipient_name.trim(),recipient_phone:n.recipient_phone.trim(),shipping_province:r.shipping_province||"",shipping_city:r.shipping_city||"",shipping_district:r.shipping_district||"",shipping_address:n.shipping_address.trim(),is_follow_up:Number(r.is_follow_up||0),medication_days:r.medication_days,dose_unit:r.dose_unit||"剂",dose_count:Number(r.dose_count||1),prev_staff:r.prev_staff||"",service_channel:r.service_channel||"",service_package:r.service_package||"",tracking_number:n.tracking_number.trim(),express_company:n.express_company||"auto",fee_type:Number(n.fee_type),amount:Number(n.amount),remark_extra:n.remark_extra.trim(),remark_assistant:n.remark_assistant.trim(),pay_order_ids:Array.isArray(r.pay_order_ids)?r.pay_order_ids:[]}),S.value=!1,await w("订单保存成功")}catch{}finally{o.value=!1}}async function we(){if(!(Number(u.pay_amount)>0)){O.msgError("补齐金额必须大于 0");return}o.value=!0;try{await ma({id:Number(d.value.id),order_type:Number(u.order_type),pay_amount:Number(u.pay_amount),pay_remark:u.pay_remark.trim(),completion_request:Number(u.completion_request),pay_create_type:u.pay_create_type}),j.value=!1,await w("支付单已新增,等待支付审核")}catch{}finally{o.value=!1}}async function Ve(){o.value=!0;try{await fa({id:Number(d.value.id),fulfillment_status:Number(G.value)}),I.value=!1,await w("订单状态已更新")}catch{}finally{o.value=!1}}async function xe(){if(!k.reason.trim()){O.msgError("请填写退款原因");return}o.value=!0;try{await _a({id:Number(d.value.id),reason:k.reason.trim(),refund_amount:k.refund_amount===void 0?void 0:Number(k.refund_amount)}),L.value=!1,await w("退款成功")}catch{}finally{o.value=!1}}async function Oe(){try{await Y.confirm("确认撤回该订单吗?撤回后当前订单将结束。","撤回订单",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await ca({id:Number(d.value.id)}),await w("订单已撤回")}catch{}}async function Ne(){try{await Y.confirm("确认将该订单上传到订单设定的药房吗?","上传药房",{type:"warning",confirmButtonText:"确认上传",cancelButtonText:"取消"}),await ya({id:Number(d.value.id)}),await w("药方上传成功")}catch{}}return m({openDetail:be,openAction:le}),(r,e)=>{const J=$e,p=De,Pe=Fe,Ee=Be,Ue=Te,h=Le,v=ze,U=Ie,q=We,A=Ke,i=Ge,T=He,Ce=Je,Z=Qe,ie=ea,Se=Ye,he=aa,qe=Xe;return g(),N(P,null,[l(ra,{ref_key:"detailDrawerRef",ref:V,readonly:"","append-to-body":"","detail-loader":K(se),"load-related-data":!1},{"header-actions":t(({detail:a})=>[K(pe)(a).length?(g(),Q(Ue,{key:0,trigger:"click",onCommand:D=>le(a,D)},{dropdown:t(()=>[l(Ee,null,{default:t(()=>[(g(!0),N(P,null,C(K(pe)(a),D=>(g(),Q(Pe,{key:D.key,command:D.key,class:Me({"danger-menu-item":D.danger})},{default:t(()=>[s(ue(D.label),1)]),_:2},1032,["command","class"]))),128))]),_:2},1024)]),default:t(()=>[l(p,{type:"primary",size:"small",plain:""},{default:t(()=>[e[38]||(e[38]=s(" 订单操作",-1)),l(J,{class:"el-icon--right"},{default:t(()=>[l(K(Re))]),_:1})]),_:1})]),_:2},1032,["onCommand"])):je("",!0)]),_:1},8,["detail-loader"]),l(U,{modelValue:R.value,"onUpdate:modelValue":e[4]||(e[4]=a=>R.value=a),title:ce.value,width:"480px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[1]||(e[1]=a=>R.value=!1)},{default:t(()=>[...e[39]||(e[39]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:e[2]||(e[2]=a=>te("approve"))},{default:t(()=>[...e[40]||(e[40]=[s("同意通过",-1)])]),_:1},8,["loading"]),l(p,{type:"danger",loading:o.value,onClick:e[3]||(e[3]=a=>te("reject"))},{default:t(()=>[...e[41]||(e[41]=[s("驳回",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"通过时审核意见可不填;驳回时必须填写明确原因。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(v,{modelValue:B.value,"onUpdate:modelValue":e[0]||(e[0]=a=>B.value=a),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"请输入审核意见"},null,8,["modelValue"])]),_:1},8,["modelValue","title"]),l(U,{modelValue:F.value,"onUpdate:modelValue":e[8]||(e[8]=a=>F.value=a),title:"修改快递单号",width:"440px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[7]||(e[7]=a=>F.value=!1)},{default:t(()=>[...e[42]||(e[42]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:ne},{default:t(()=>[...e[43]||(e[43]=[s("保存",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(T,{"label-width":"92px",onSubmit:de(ne,["prevent"])},{default:t(()=>[l(i,{label:"承运商"},{default:t(()=>[l(A,{modelValue:x.express_company,"onUpdate:modelValue":e[5]||(e[5]=a=>x.express_company=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C($,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"快递单号",required:""},{default:t(()=>[l(v,{modelValue:x.tracking_number,"onUpdate:modelValue":e[6]||(e[6]=a=>x.tracking_number=a),maxlength:"80",clearable:"",placeholder:"请输入快递单号"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:M.value,"onUpdate:modelValue":e[12]||(e[12]=a=>M.value=a),title:"确认发货",width:"460px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[11]||(e[11]=a=>M.value=!1)},{default:t(()=>[...e[44]||(e[44]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:oe},{default:t(()=>[...e[45]||(e[45]=[s("确认发货",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"确认后订单将进入“已发货”,请先核对发货方式和快递信息。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(T,{"label-width":"92px",onSubmit:de(oe,["prevent"])},{default:t(()=>[l(i,{label:"发货方式"},{default:t(()=>[l(Ce,{type:c.ship_mode==="direct"?"warning":"success",effect:"plain"},{default:t(()=>[s(ue(c.ship_mode==="direct"?"洛阳药房":"甘草药房"),1)]),_:1},8,["type"])]),_:1}),l(i,{label:"承运商"},{default:t(()=>[l(A,{modelValue:c.express_company,"onUpdate:modelValue":e[9]||(e[9]=a=>c.express_company=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C($,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"快递单号",required:""},{default:t(()=>[l(v,{modelValue:c.tracking_number,"onUpdate:modelValue":e[10]||(e[10]=a=>c.tracking_number=a),maxlength:"80",clearable:"",placeholder:"请输入快递单号"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:S.value,"onUpdate:modelValue":e[23]||(e[23]=a=>S.value=a),title:"编辑订单",width:"680px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[22]||(e[22]=a=>S.value=!1)},{default:t(()=>[...e[46]||(e[46]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,disabled:H.value,onClick:ke},{default:t(()=>[...e[47]||(e[47]=[s("保存",-1)])]),_:1},8,["loading","disabled"])]),default:t(()=>[Ze((g(),Q(T,{"label-width":"104px",class:"order-edit-form"},{default:t(()=>[X("div",wa,[l(i,{label:"收货人",required:""},{default:t(()=>[l(v,{modelValue:n.recipient_name,"onUpdate:modelValue":e[13]||(e[13]=a=>n.recipient_name=a),maxlength:"50"},null,8,["modelValue"])]),_:1}),l(i,{label:"收货手机",required:""},{default:t(()=>[l(v,{modelValue:n.recipient_phone,"onUpdate:modelValue":e[14]||(e[14]=a=>n.recipient_phone=a),maxlength:"20"},null,8,["modelValue"])]),_:1}),l(i,{label:"费用类别",required:""},{default:t(()=>[l(A,{modelValue:n.fee_type,"onUpdate:modelValue":e[15]||(e[15]=a=>n.fee_type=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C(me,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"订单金额",required:""},{default:t(()=>[l(Z,{modelValue:n.amount,"onUpdate:modelValue":e[16]||(e[16]=a=>n.amount=a),min:0,precision:2,step:10,class:"w-full"},null,8,["modelValue"])]),_:1})]),l(i,{label:"收货地址",required:""},{default:t(()=>[l(v,{modelValue:n.shipping_address,"onUpdate:modelValue":e[17]||(e[17]=a=>n.shipping_address=a),maxlength:"500"},null,8,["modelValue"])]),_:1}),X("div",Va,[l(i,{label:"承运商"},{default:t(()=>[l(A,{modelValue:n.express_company,"onUpdate:modelValue":e[18]||(e[18]=a=>n.express_company=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C($,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"快递单号"},{default:t(()=>[l(v,{modelValue:n.tracking_number,"onUpdate:modelValue":e[19]||(e[19]=a=>n.tracking_number=a),maxlength:"80",clearable:""},null,8,["modelValue"])]),_:1})]),l(i,{label:"医助备注"},{default:t(()=>[l(v,{modelValue:n.remark_assistant,"onUpdate:modelValue":e[20]||(e[20]=a=>n.remark_assistant=a),type:"textarea",rows:2,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"药房备注"},{default:t(()=>[l(v,{modelValue:n.remark_extra,"onUpdate:modelValue":e[21]||(e[21]=a=>n.remark_extra=a),type:"textarea",rows:2,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(h,{title:"保存后会沿用原订单编辑规则;非已发货订单的支付审核将重新变为待审核。",type:"info",closable:!1,"show-icon":""})]),_:1})),[[qe,H.value]])]),_:1},8,["modelValue"]),l(U,{modelValue:j.value,"onUpdate:modelValue":e[30]||(e[30]=a=>j.value=a),title:"补齐支付单",width:"520px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[29]||(e[29]=a=>j.value=!1)},{default:t(()=>[...e[51]||(e[51]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:we},{default:t(()=>[...e[52]||(e[52]=[s("确认新增",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:`订单金额 ¥${ae(d.value.amount)},已关联支付 ¥${ae(d.value.linked_pay_paid_total)}`,type:"info",closable:!1,"show-icon":"",class:"mb-4"},null,8,["title"]),l(T,{"label-width":"108px"},{default:t(()=>[l(i,{label:"支付单类型"},{default:t(()=>[l(A,{modelValue:u.order_type,"onUpdate:modelValue":e[24]||(e[24]=a=>u.order_type=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C(fe,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"创建方式"},{default:t(()=>[l(Se,{modelValue:u.pay_create_type,"onUpdate:modelValue":e[25]||(e[25]=a=>u.pay_create_type=a)},{default:t(()=>[l(ie,{value:"fubei"},{default:t(()=>[...e[48]||(e[48]=[s("付呗支付",-1)])]),_:1}),l(ie,{value:"express_cod"},{default:t(()=>[...e[49]||(e[49]=[s("快递代收",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"补齐金额",required:""},{default:t(()=>[l(Z,{modelValue:u.pay_amount,"onUpdate:modelValue":e[26]||(e[26]=a=>u.pay_amount=a),min:0,precision:2,step:10,class:"w-full"},null,8,["modelValue"])]),_:1}),l(i,{label:"支付备注"},{default:t(()=>[l(v,{modelValue:u.pay_remark,"onUpdate:modelValue":e[27]||(e[27]=a=>u.pay_remark=a),type:"textarea",rows:3,maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"完单申请"},{default:t(()=>[l(he,{modelValue:u.completion_request,"onUpdate:modelValue":e[28]||(e[28]=a=>u.completion_request=a),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[50]||(e[50]=X("span",{class:"form-tip"},"同时提交完单申请",-1))]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:I.value,"onUpdate:modelValue":e[33]||(e[33]=a=>I.value=a),title:"完成订单",width:"480px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[32]||(e[32]=a=>I.value=!1)},{default:t(()=>[...e[53]||(e[53]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:Ve},{default:t(()=>[...e[54]||(e[54]=[s("确认完成",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"请选择真实履约结果。退款必须使用单独的“退款”操作。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(T,{"label-width":"100px"},{default:t(()=>[l(i,{label:"结案状态",required:""},{default:t(()=>[l(A,{modelValue:G.value,"onUpdate:modelValue":e[31]||(e[31]=a=>G.value=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C(_e,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:L.value,"onUpdate:modelValue":e[37]||(e[37]=a=>L.value=a),title:"订单退款",width:"500px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[36]||(e[36]=a=>L.value=!1)},{default:t(()=>[...e[55]||(e[55]=[s("取消",-1)])]),_:1}),l(p,{type:"danger",loading:o.value,onClick:xe},{default:t(()=>[...e[56]||(e[56]=[s("确认退款",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"退款会同步更新关联支付单和订单金额;退款金额留空时按系统计算的最大可退金额处理。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(T,{"label-width":"100px"},{default:t(()=>[l(i,{label:"退款原因",required:""},{default:t(()=>[l(v,{modelValue:k.reason,"onUpdate:modelValue":e[34]||(e[34]=a=>k.reason=a),type:"textarea",rows:3,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"退款金额"},{default:t(()=>[l(Z,{modelValue:k.refund_amount,"onUpdate:modelValue":e[35]||(e[35]=a=>k.refund_amount=a),min:0,precision:2,step:10,class:"w-full",placeholder:"留空则退最大可退金额"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)}}}),Oa=ta(xa,[["__scopeId","data-v-3c102918"]]),ha=Object.freeze(Object.defineProperty({__proto__:null,default:Oa},Symbol.toStringTag,{value:"Module"}));export{Oa as O,ha as a,ka as c,pe as m};
+import{o as Ae,q as g,r as N,F as P,v as l,u as K,D as t,O as Q,$ as Te,K as De,L as s,w as $e,cl as Re,Z as Be,G as C,_ as Fe,ae as Me,T as ue,P as je,bt as Ie,bm as Le,b7 as ze,b9 as He,aw as de,b6 as Ge,bf as Ke,bg as We,bk as Je,ac as Ze,s as X,J as Qe,bl as Xe,bc as Ye,bo as ea,I as aa,M as f,p as la,ba as z,e as Y}from"./.pnpm-BuKxIMgQ.js";import{j as O,_ as ta}from"./index-BZAvl557.js";import ra from"./PrescriptionOrderDetailDrawer-BaDbxBr8.js";import{m as se,c as na,d as oa,e as ia,g as ua,h as da,i as sa,j as pa,k as ma,l as fa,n as _a,o as ca,p as ya}from"./first_visit-Ciw6inl9.js";import{h as ba}from"./perm-DZClfK-E.js";import{C as va}from"./prescription-order-utils-CXfs2Bra.js";function y(b){return ba([b])}function ga(b){return va(b)}function ka(){return y("tcm.prescriptionOrder/detail")}function pe(b){const m=[],_=Number(b.fulfillment_status),E=Number(b.prescription_audit_status),V=Number(b.payment_slip_audit_status),d=ga(b);ka()&&y("tcm.prescriptionOrder/edit")&&_===1&&!d&&m.push({key:"edit",label:"编辑订单"}),y("tcm.prescriptionOrder/auditPrescription")&&E===0&&![3,4,6].includes(_)&&m.push({key:"audit_prescription",label:"处方审核"}),y("tcm.prescriptionOrder/auditPrescription")&&[1,2].includes(E)&&V===0&&![3,4,6].includes(_)&&!d&&m.push({key:"revoke_rx_audit",label:"撤回处方审核"}),y("tcm.prescriptionOrder/auditPayment")&&E===1&&V===0&&![3,4].includes(_)&&m.push({key:"audit_payment",label:"支付单审核"}),y("tcm.prescriptionOrder/auditPayment")&&E===1&&[1,2].includes(V)&&![3,4,6].includes(_)&&m.push({key:"revoke_pay_audit",label:"撤回支付审核"}),y("tcm.prescriptionOrder/ddcode")&&m.push({key:"ddcode",label:"修改快递单号"}),y("tcm.prescriptionOrder/ship")&&_===2&&m.push({key:"ship",label:"确认发货"});const o=Math.round((Number(b.amount)||0)*100)/100,$=Math.round((Number(b.linked_pay_paid_total)||0)*100)/100;return y("tcm.prescriptionOrder/addPayOrder")&&[5,6].includes(_)&&$W.value==="prescription"?"处方业务审核":"关联支付单审核"),F=f(!1),x=z({express_company:"auto",tracking_number:""}),M=f(!1),c=z({ship_mode:"gancao",express_company:"auto",tracking_number:""}),S=f(!1),H=f(!1),ee=f({}),n=z({recipient_name:"",recipient_phone:"",shipping_address:"",fee_type:3,amount:0,express_company:"auto",tracking_number:"",remark_assistant:"",remark_extra:""}),j=f(!1),u=z({order_type:3,pay_amount:0,pay_remark:"",completion_request:0,pay_create_type:"fubei"}),I=f(!1),G=f(3),L=f(!1),k=z({reason:"",refund_amount:void 0});function ae(r){return Number(r||0).toFixed(2)}function ye(r){return String(r||"").toLowerCase()==="direct"?"direct":"gancao"}function be(r){var e;(e=V.value)==null||e.open(Number(r.id))}async function ve(r){const e=await se({id:r});return(e==null?void 0:e.data)??e??null}async function ge(r){d.value=r,S.value=!0,H.value=!0;try{const e=await ve(Number(r.id));if(!e)throw new Error("订单详情加载失败");ee.value=e,n.recipient_name=String(e.recipient_name||""),n.recipient_phone=String(e.recipient_phone||""),n.shipping_address=String(e.shipping_address||""),n.fee_type=Number(e.fee_type||3),n.amount=Number(e.amount||0),n.express_company=String(e.express_company||"auto")||"auto",n.tracking_number=String(e.tracking_number||""),n.remark_assistant=String(e.remark_assistant||""),n.remark_extra=String(e.remark_extra||"")}catch(e){O.msgError((e==null?void 0:e.message)||"订单详情加载失败"),S.value=!1}finally{H.value=!1}}function le(r,e){switch(d.value=r,e){case"edit":ge(r);break;case"audit_prescription":case"audit_payment":W.value=e==="audit_prescription"?"prescription":"payment",B.value="",R.value=!0;break;case"revoke_rx_audit":re("prescription");break;case"revoke_pay_audit":re("payment");break;case"ddcode":x.express_company=String(r.express_company||"auto")||"auto",x.tracking_number=String(r.tracking_number||""),F.value=!0;break;case"ship":c.ship_mode=ye(r.ship_mode),c.express_company=String(r.express_company||"auto")||"auto",c.tracking_number=String(r.tracking_number||""),M.value=!0;break;case"add_pay_order":{const J=Math.max(0,Number(r.amount||0)-Number(r.linked_pay_paid_total||0));u.order_type=3,u.pay_amount=Number(J.toFixed(2)),u.pay_remark="",u.completion_request=0,u.pay_create_type="fubei",j.value=!0;break}case"complete":G.value=3,I.value=!0;break;case"refund":k.reason="",k.refund_amount=void 0,L.value=!0;break;case"withdraw":Oe();break;case"upload_pharmacy":Ne();break}}async function w(r){var e;O.msgSuccess(r),E("changed"),await((e=V.value)==null?void 0:e.refreshIfCurrent(d.value.id))}async function te(r){if(r==="reject"&&!B.value.trim()){O.msgError("驳回时必须填写审核意见");return}o.value=!0;try{const e={id:Number(d.value.id),action:r,remark:B.value.trim()};W.value==="prescription"?await na(e):await oa(e),R.value=!1,await w(r==="approve"?"审核通过成功":"订单已驳回")}catch{}finally{o.value=!1}}async function re(r){try{await Y.confirm(`确认撤回${r==="prescription"?"处方":"支付单"}审核并恢复为待审核吗?`,"撤回审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),r==="prescription"?await ia({id:Number(d.value.id)}):await ua({id:Number(d.value.id)}),await w("审核已撤回")}catch{}}async function ne(){if(!x.tracking_number.trim()){O.msgError("请填写快递单号");return}o.value=!0;try{await da({id:Number(d.value.id),express_company:x.express_company||"auto",tracking_number:x.tracking_number.trim()}),F.value=!1,await w("快递单号已保存")}catch{}finally{o.value=!1}}async function oe(){if(!c.tracking_number.trim()){O.msgError("请填写快递单号");return}o.value=!0;try{await sa({id:Number(d.value.id),ship_mode:c.ship_mode,express_company:c.express_company||"auto",tracking_number:c.tracking_number.trim()}),M.value=!1,await w("确认发货成功")}catch{}finally{o.value=!1}}async function ke(){if(!n.recipient_name.trim()||!n.recipient_phone.trim()||!n.shipping_address.trim()){O.msgError("请完整填写收货人、收货手机和收货地址");return}if(Number(n.amount)<0){O.msgError("订单金额不能为负数");return}const r=ee.value;o.value=!0;try{await pa({id:Number(d.value.id),recipient_name:n.recipient_name.trim(),recipient_phone:n.recipient_phone.trim(),shipping_province:r.shipping_province||"",shipping_city:r.shipping_city||"",shipping_district:r.shipping_district||"",shipping_address:n.shipping_address.trim(),is_follow_up:Number(r.is_follow_up||0),medication_days:r.medication_days,dose_unit:r.dose_unit||"剂",dose_count:Number(r.dose_count||1),prev_staff:r.prev_staff||"",service_channel:r.service_channel||"",service_package:r.service_package||"",tracking_number:n.tracking_number.trim(),express_company:n.express_company||"auto",fee_type:Number(n.fee_type),amount:Number(n.amount),remark_extra:n.remark_extra.trim(),remark_assistant:n.remark_assistant.trim(),pay_order_ids:Array.isArray(r.pay_order_ids)?r.pay_order_ids:[]}),S.value=!1,await w("订单保存成功")}catch{}finally{o.value=!1}}async function we(){if(!(Number(u.pay_amount)>0)){O.msgError("补齐金额必须大于 0");return}o.value=!0;try{await ma({id:Number(d.value.id),order_type:Number(u.order_type),pay_amount:Number(u.pay_amount),pay_remark:u.pay_remark.trim(),completion_request:Number(u.completion_request),pay_create_type:u.pay_create_type}),j.value=!1,await w("支付单已新增,等待支付审核")}catch{}finally{o.value=!1}}async function Ve(){o.value=!0;try{await fa({id:Number(d.value.id),fulfillment_status:Number(G.value)}),I.value=!1,await w("订单状态已更新")}catch{}finally{o.value=!1}}async function xe(){if(!k.reason.trim()){O.msgError("请填写退款原因");return}o.value=!0;try{await _a({id:Number(d.value.id),reason:k.reason.trim(),refund_amount:k.refund_amount===void 0?void 0:Number(k.refund_amount)}),L.value=!1,await w("退款成功")}catch{}finally{o.value=!1}}async function Oe(){try{await Y.confirm("确认撤回该订单吗?撤回后当前订单将结束。","撤回订单",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await ca({id:Number(d.value.id)}),await w("订单已撤回")}catch{}}async function Ne(){try{await Y.confirm("确认将该订单上传到订单设定的药房吗?","上传药房",{type:"warning",confirmButtonText:"确认上传",cancelButtonText:"取消"}),await ya({id:Number(d.value.id)}),await w("药方上传成功")}catch{}}return m({openDetail:be,openAction:le}),(r,e)=>{const J=$e,p=De,Pe=Fe,Ee=Be,Ue=Te,h=Le,v=ze,U=Ie,q=We,A=Ke,i=Ge,T=He,Ce=Je,Z=Qe,ie=ea,Se=Ye,he=aa,qe=Xe;return g(),N(P,null,[l(ra,{ref_key:"detailDrawerRef",ref:V,readonly:"","append-to-body":"","detail-loader":K(se),"load-related-data":!1},{"header-actions":t(({detail:a})=>[K(pe)(a).length?(g(),Q(Ue,{key:0,trigger:"click",onCommand:D=>le(a,D)},{dropdown:t(()=>[l(Ee,null,{default:t(()=>[(g(!0),N(P,null,C(K(pe)(a),D=>(g(),Q(Pe,{key:D.key,command:D.key,class:Me({"danger-menu-item":D.danger})},{default:t(()=>[s(ue(D.label),1)]),_:2},1032,["command","class"]))),128))]),_:2},1024)]),default:t(()=>[l(p,{type:"primary",size:"small",plain:""},{default:t(()=>[e[38]||(e[38]=s(" 订单操作",-1)),l(J,{class:"el-icon--right"},{default:t(()=>[l(K(Re))]),_:1})]),_:1})]),_:2},1032,["onCommand"])):je("",!0)]),_:1},8,["detail-loader"]),l(U,{modelValue:R.value,"onUpdate:modelValue":e[4]||(e[4]=a=>R.value=a),title:ce.value,width:"480px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[1]||(e[1]=a=>R.value=!1)},{default:t(()=>[...e[39]||(e[39]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:e[2]||(e[2]=a=>te("approve"))},{default:t(()=>[...e[40]||(e[40]=[s("同意通过",-1)])]),_:1},8,["loading"]),l(p,{type:"danger",loading:o.value,onClick:e[3]||(e[3]=a=>te("reject"))},{default:t(()=>[...e[41]||(e[41]=[s("驳回",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"通过时审核意见可不填;驳回时必须填写明确原因。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(v,{modelValue:B.value,"onUpdate:modelValue":e[0]||(e[0]=a=>B.value=a),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"请输入审核意见"},null,8,["modelValue"])]),_:1},8,["modelValue","title"]),l(U,{modelValue:F.value,"onUpdate:modelValue":e[8]||(e[8]=a=>F.value=a),title:"修改快递单号",width:"440px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[7]||(e[7]=a=>F.value=!1)},{default:t(()=>[...e[42]||(e[42]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:ne},{default:t(()=>[...e[43]||(e[43]=[s("保存",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(T,{"label-width":"92px",onSubmit:de(ne,["prevent"])},{default:t(()=>[l(i,{label:"承运商"},{default:t(()=>[l(A,{modelValue:x.express_company,"onUpdate:modelValue":e[5]||(e[5]=a=>x.express_company=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C($,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"快递单号",required:""},{default:t(()=>[l(v,{modelValue:x.tracking_number,"onUpdate:modelValue":e[6]||(e[6]=a=>x.tracking_number=a),maxlength:"80",clearable:"",placeholder:"请输入快递单号"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:M.value,"onUpdate:modelValue":e[12]||(e[12]=a=>M.value=a),title:"确认发货",width:"460px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[11]||(e[11]=a=>M.value=!1)},{default:t(()=>[...e[44]||(e[44]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:oe},{default:t(()=>[...e[45]||(e[45]=[s("确认发货",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"确认后订单将进入“已发货”,请先核对发货方式和快递信息。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(T,{"label-width":"92px",onSubmit:de(oe,["prevent"])},{default:t(()=>[l(i,{label:"发货方式"},{default:t(()=>[l(Ce,{type:c.ship_mode==="direct"?"warning":"success",effect:"plain"},{default:t(()=>[s(ue(c.ship_mode==="direct"?"洛阳药房":"甘草药房"),1)]),_:1},8,["type"])]),_:1}),l(i,{label:"承运商"},{default:t(()=>[l(A,{modelValue:c.express_company,"onUpdate:modelValue":e[9]||(e[9]=a=>c.express_company=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C($,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"快递单号",required:""},{default:t(()=>[l(v,{modelValue:c.tracking_number,"onUpdate:modelValue":e[10]||(e[10]=a=>c.tracking_number=a),maxlength:"80",clearable:"",placeholder:"请输入快递单号"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:S.value,"onUpdate:modelValue":e[23]||(e[23]=a=>S.value=a),title:"编辑订单",width:"680px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[22]||(e[22]=a=>S.value=!1)},{default:t(()=>[...e[46]||(e[46]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,disabled:H.value,onClick:ke},{default:t(()=>[...e[47]||(e[47]=[s("保存",-1)])]),_:1},8,["loading","disabled"])]),default:t(()=>[Ze((g(),Q(T,{"label-width":"104px",class:"order-edit-form"},{default:t(()=>[X("div",wa,[l(i,{label:"收货人",required:""},{default:t(()=>[l(v,{modelValue:n.recipient_name,"onUpdate:modelValue":e[13]||(e[13]=a=>n.recipient_name=a),maxlength:"50"},null,8,["modelValue"])]),_:1}),l(i,{label:"收货手机",required:""},{default:t(()=>[l(v,{modelValue:n.recipient_phone,"onUpdate:modelValue":e[14]||(e[14]=a=>n.recipient_phone=a),maxlength:"20"},null,8,["modelValue"])]),_:1}),l(i,{label:"费用类别",required:""},{default:t(()=>[l(A,{modelValue:n.fee_type,"onUpdate:modelValue":e[15]||(e[15]=a=>n.fee_type=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C(me,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"订单金额",required:""},{default:t(()=>[l(Z,{modelValue:n.amount,"onUpdate:modelValue":e[16]||(e[16]=a=>n.amount=a),min:0,precision:2,step:10,class:"w-full"},null,8,["modelValue"])]),_:1})]),l(i,{label:"收货地址",required:""},{default:t(()=>[l(v,{modelValue:n.shipping_address,"onUpdate:modelValue":e[17]||(e[17]=a=>n.shipping_address=a),maxlength:"500"},null,8,["modelValue"])]),_:1}),X("div",Va,[l(i,{label:"承运商"},{default:t(()=>[l(A,{modelValue:n.express_company,"onUpdate:modelValue":e[18]||(e[18]=a=>n.express_company=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C($,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"快递单号"},{default:t(()=>[l(v,{modelValue:n.tracking_number,"onUpdate:modelValue":e[19]||(e[19]=a=>n.tracking_number=a),maxlength:"80",clearable:""},null,8,["modelValue"])]),_:1})]),l(i,{label:"医助备注"},{default:t(()=>[l(v,{modelValue:n.remark_assistant,"onUpdate:modelValue":e[20]||(e[20]=a=>n.remark_assistant=a),type:"textarea",rows:2,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"药房备注"},{default:t(()=>[l(v,{modelValue:n.remark_extra,"onUpdate:modelValue":e[21]||(e[21]=a=>n.remark_extra=a),type:"textarea",rows:2,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(h,{title:"保存后会沿用原订单编辑规则;非已发货订单的支付审核将重新变为待审核。",type:"info",closable:!1,"show-icon":""})]),_:1})),[[qe,H.value]])]),_:1},8,["modelValue"]),l(U,{modelValue:j.value,"onUpdate:modelValue":e[30]||(e[30]=a=>j.value=a),title:"补齐支付单",width:"520px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[29]||(e[29]=a=>j.value=!1)},{default:t(()=>[...e[51]||(e[51]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:we},{default:t(()=>[...e[52]||(e[52]=[s("确认新增",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:`订单金额 ¥${ae(d.value.amount)},已关联支付 ¥${ae(d.value.linked_pay_paid_total)}`,type:"info",closable:!1,"show-icon":"",class:"mb-4"},null,8,["title"]),l(T,{"label-width":"108px"},{default:t(()=>[l(i,{label:"支付单类型"},{default:t(()=>[l(A,{modelValue:u.order_type,"onUpdate:modelValue":e[24]||(e[24]=a=>u.order_type=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C(fe,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"创建方式"},{default:t(()=>[l(Se,{modelValue:u.pay_create_type,"onUpdate:modelValue":e[25]||(e[25]=a=>u.pay_create_type=a)},{default:t(()=>[l(ie,{value:"fubei"},{default:t(()=>[...e[48]||(e[48]=[s("付呗支付",-1)])]),_:1}),l(ie,{value:"express_cod"},{default:t(()=>[...e[49]||(e[49]=[s("快递代收",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"补齐金额",required:""},{default:t(()=>[l(Z,{modelValue:u.pay_amount,"onUpdate:modelValue":e[26]||(e[26]=a=>u.pay_amount=a),min:0,precision:2,step:10,class:"w-full"},null,8,["modelValue"])]),_:1}),l(i,{label:"支付备注"},{default:t(()=>[l(v,{modelValue:u.pay_remark,"onUpdate:modelValue":e[27]||(e[27]=a=>u.pay_remark=a),type:"textarea",rows:3,maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"完单申请"},{default:t(()=>[l(he,{modelValue:u.completion_request,"onUpdate:modelValue":e[28]||(e[28]=a=>u.completion_request=a),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[50]||(e[50]=X("span",{class:"form-tip"},"同时提交完单申请",-1))]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:I.value,"onUpdate:modelValue":e[33]||(e[33]=a=>I.value=a),title:"完成订单",width:"480px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[32]||(e[32]=a=>I.value=!1)},{default:t(()=>[...e[53]||(e[53]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:Ve},{default:t(()=>[...e[54]||(e[54]=[s("确认完成",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"请选择真实履约结果。退款必须使用单独的“退款”操作。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(T,{"label-width":"100px"},{default:t(()=>[l(i,{label:"结案状态",required:""},{default:t(()=>[l(A,{modelValue:G.value,"onUpdate:modelValue":e[31]||(e[31]=a=>G.value=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C(_e,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:L.value,"onUpdate:modelValue":e[37]||(e[37]=a=>L.value=a),title:"订单退款",width:"500px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[36]||(e[36]=a=>L.value=!1)},{default:t(()=>[...e[55]||(e[55]=[s("取消",-1)])]),_:1}),l(p,{type:"danger",loading:o.value,onClick:xe},{default:t(()=>[...e[56]||(e[56]=[s("确认退款",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"退款会同步更新关联支付单和订单金额;退款金额留空时按系统计算的最大可退金额处理。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(T,{"label-width":"100px"},{default:t(()=>[l(i,{label:"退款原因",required:""},{default:t(()=>[l(v,{modelValue:k.reason,"onUpdate:modelValue":e[34]||(e[34]=a=>k.reason=a),type:"textarea",rows:3,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"退款金额"},{default:t(()=>[l(Z,{modelValue:k.refund_amount,"onUpdate:modelValue":e[35]||(e[35]=a=>k.refund_amount=a),min:0,precision:2,step:10,class:"w-full",placeholder:"留空则退最大可退金额"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)}}}),Oa=ta(xa,[["__scopeId","data-v-3c102918"]]),ha=Object.freeze(Object.defineProperty({__proto__:null,default:Oa},Symbol.toStringTag,{value:"Module"}));export{Oa as O,ha as a,ka as c,pe as m};
diff --git a/server/public/admin/assets/OrderPanel-gymPu1h1.js b/server/public/admin/assets/OrderPanel-CY_e1eQx.js
similarity index 94%
rename from server/public/admin/assets/OrderPanel-gymPu1h1.js
rename to server/public/admin/assets/OrderPanel-CY_e1eQx.js
index dd8980163..80c5a6252 100644
--- a/server/public/admin/assets/OrderPanel-gymPu1h1.js
+++ b/server/public/admin/assets/OrderPanel-CY_e1eQx.js
@@ -1 +1 @@
-import{o as re,p as E,ap as de,q as p,r as b,s as t,v as n,D as a,u as m,cP as ue,w as me,L as d,T as i,by as pe,K as _e,F,G as O,bb as fe,bc as ce,b8 as be,bA as z,b7 as ge,bp as ve,ae as T,ac as ye,bi as ke,O as P,bk as we,br as Ce,P as S,$ as xe,cl as Ne,Z as Ve,_ as he,bB as De,bj as Ee,C as Fe,M as Y,ba as Oe}from"./.pnpm-BHOjf1ZS.js";import{_ as Pe}from"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import{u as je}from"./usePaging-oaNM6A9T.js";import{q as Re}from"./first_visit-ClR5pGNH.js";import{c as Te,m as H,O as Ae}from"./OrderActionHost-CBLJoo0n.js";import{_ as Be}from"./index-B31vLELt.js";import"./PrescriptionOrderDetailDrawer-C-APB0h9.js";import"./tcm-BkYsBTA3.js";import"./prescription-order-utils-CXfs2Bra.js";import"./perm-LGazrkDZ.js";const Ie={class:"embedded-panel"},Le={class:"panel-toolbar"},Me={class:"toolbar-actions"},Ue={class:"scope-chip"},$e={class:"filter-panel"},ze={class:"filter-heading"},Se={class:"status-filter-list"},Ye={class:"status-filter-row"},He={class:"status-filter-row"},Ke={class:"status-filter-row status-filter-row--fulfillment"},qe={class:"search-filter-row"},Ge={class:"filter-field filter-field--keyword"},Ze={class:"filter-field filter-field--date"},Je={class:"filter-actions"},Qe={class:"metric-grid"},We={class:"metric-card"},Xe={class:"metric-card"},et={class:"metric-card metric-warning"},tt={class:"metric-card metric-success"},lt={class:"primary-cell"},nt={class:"primary-cell"},at={class:"id-stack"},st={key:0,class:"amount"},ot={key:1,class:"amount-excluded"},it={class:"order-actions"},rt={class:"pagination-wrap"},dt=re({__name:"OrderPanel",emits:["openDiagnosis"],setup(ut,{expose:K,emit:q}){const G=q,j=Y(),R=Y([]),o=Oe({keyword:"",prescription_audit_status:"",payment_slip_audit_status:"",fulfillment_status:"",start_date:"",end_date:""}),A=[{label:"全部",value:""},{label:"待审核",value:0},{label:"已通过",value:1},{label:"已驳回",value:2}],Z=[{label:"全部",value:""},{label:"待双审通过",value:1},{label:"待发货",value:2},{label:"已完成",value:3},{label:"已取消",value:4},{label:"已发货",value:5},{label:"已签收",value:6},{label:"进行中",value:7},{label:"暂不制药",value:8},{label:"拒收",value:9},{label:"退款",value:10},{label:"保留药方",value:11},{label:"制药缓发",value:12}],{pager:u,getLists:C,resetPage:x}=je({fetchFun:Re,params:o,size:15,firstLoading:!0}),g=E(()=>{var s,e,f,_,y,k,N,V,r,w,h,D;return{orders:Number(((e=(s=u.extend)==null?void 0:s.summary)==null?void 0:e.orders)||0),amount:Number(((_=(f=u.extend)==null?void 0:f.summary)==null?void 0:_.amount)||0),pending:Number(((k=(y=u.extend)==null?void 0:y.summary)==null?void 0:k.pending)||0),completed:Number(((V=(N=u.extend)==null?void 0:N.summary)==null?void 0:V.completed)||0),rejected:Number(((w=(r=u.extend)==null?void 0:r.summary)==null?void 0:w.rejected)||0),rejectionRate:Number(((D=(h=u.extend)==null?void 0:h.summary)==null?void 0:D.rejection_rate)||0)}}),J=E(()=>{var s,e;return((e=(s=u.extend)==null?void 0:s.scope)==null?void 0:e.label)||"按权限加载"}),Q=E(()=>!!(o.keyword.trim()||o.prescription_audit_status!==""||o.payment_slip_audit_status!==""||o.fulfillment_status!==""||o.start_date||o.end_date));function v(){x()}function B(){return C()}function W(s){o.start_date=(s==null?void 0:s[0])||"",o.end_date=(s==null?void 0:s[1])||(s==null?void 0:s[0])||"",x()}function I(){o.keyword="",o.prescription_audit_status="",o.payment_slip_audit_status="",o.fulfillment_status="",o.start_date="",o.end_date="",R.value=[],x()}function L(){o.fulfillment_status=Number(o.fulfillment_status)===9?"":9,x()}function M(s){return Number(s||0).toFixed(2)}function X(s){const e=Number(s||0);return`${Number.isInteger(e)?e.toFixed(0):e.toFixed(2)}%`}function U(s){return Number(s)===1?"success":Number(s)===2?"danger":"warning"}function ee(s){const e=Number(s);return[3,6].includes(e)?"success":[4,9,10].includes(e)?"danger":[2,5,7].includes(e)?"primary":"warning"}function te({row:s}){return[2].includes(Number(s.prescription_audit_status))||[2].includes(Number(s.payment_slip_audit_status))?"order-row-risk":[3,6].includes(Number(s.fulfillment_status))?"order-row-done":""}function le(s,e){var f;(f=j.value)==null||f.openAction(s,e)}return K({refresh:B,loading:E(()=>u.loading)}),de(C),(s,e)=>{const f=me,_=_e,y=fe,k=ce,N=ge,V=ve,r=we,w=Ce,h=he,D=Ve,ne=xe,ae=De,se=Ee,oe=Pe,ie=ke;return p(),b("section",Ie,[t("div",Le,[e[7]||(e[7]=t("div",null,[t("h2",null,"订单管理"),t("p",null,"展示当前患者范围内的处方业务订单,订单创建人不参与数据归属判断")],-1)),t("div",Me,[t("span",Ue,[n(f,null,{default:a(()=>[n(m(ue))]),_:1}),d(i(J.value),1)]),n(_,{icon:m(pe),loading:m(u).loading,onClick:B},{default:a(()=>[...e[6]||(e[6]=[d("刷新",-1)])]),_:1},8,["icon","loading"])])]),t("div",$e,[t("div",ze,[e[9]||(e[9]=t("div",null,[t("h3",null,"订单检索"),t("p",null,"审核与履约状态直接展示,点击后立即筛选")],-1)),n(_,{link:"",disabled:!Q.value,onClick:I},{default:a(()=>[...e[8]||(e[8]=[d("清空全部条件",-1)])]),_:1},8,["disabled"])]),t("div",Se,[t("div",Ye,[e[10]||(e[10]=t("span",{class:"filter-label"},"处方审核",-1)),n(k,{modelValue:o.prescription_audit_status,"onUpdate:modelValue":e[0]||(e[0]=l=>o.prescription_audit_status=l),onChange:v},{default:a(()=>[(p(),b(F,null,O(A,l=>n(y,{key:String(l.value),value:l.value},{default:a(()=>[d(i(l.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),t("div",He,[e[11]||(e[11]=t("span",{class:"filter-label"},"支付单审核",-1)),n(k,{modelValue:o.payment_slip_audit_status,"onUpdate:modelValue":e[1]||(e[1]=l=>o.payment_slip_audit_status=l),onChange:v},{default:a(()=>[(p(),b(F,null,O(A,l=>n(y,{key:String(l.value),value:l.value},{default:a(()=>[d(i(l.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),t("div",Ke,[e[12]||(e[12]=t("span",{class:"filter-label"},"履约状态",-1)),n(k,{modelValue:o.fulfillment_status,"onUpdate:modelValue":e[2]||(e[2]=l=>o.fulfillment_status=l),onChange:v},{default:a(()=>[(p(),b(F,null,O(Z,l=>n(y,{key:String(l.value),value:l.value},{default:a(()=>[d(i(l.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])])]),t("div",qe,[t("label",Ge,[e[13]||(e[13]=t("span",null,"关键词",-1)),n(N,{modelValue:o.keyword,"onUpdate:modelValue":e[3]||(e[3]=l=>o.keyword=l),clearable:"","prefix-icon":m(z),placeholder:"订单号 / 患者 / 手机号 / 处方ID / 诊单ID",onKeyup:be(v,["enter"]),onClear:v},null,8,["modelValue","prefix-icon"])]),t("label",Ze,[e[14]||(e[14]=t("span",null,"创建时间",-1)),n(V,{modelValue:R.value,"onUpdate:modelValue":e[4]||(e[4]=l=>R.value=l),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",clearable:"",onChange:W},null,8,["modelValue"])]),t("div",Je,[n(_,{type:"primary",icon:m(z),onClick:v},{default:a(()=>[...e[15]||(e[15]=[d("查询",-1)])]),_:1},8,["icon"]),n(_,{onClick:I},{default:a(()=>[...e[16]||(e[16]=[d("重置",-1)])]),_:1})])])]),t("div",Qe,[t("div",We,[e[17]||(e[17]=t("span",null,"订单数量",-1)),t("strong",null,i(g.value.orders),1),e[18]||(e[18]=t("small",null,"笔",-1))]),t("div",Xe,[e[19]||(e[19]=t("span",null,"有效订单金额",-1)),t("strong",null,"¥"+i(M(g.value.amount)),1),e[20]||(e[20]=t("small",null,"排除取消、拒收及退款",-1))]),t("div",et,[e[21]||(e[21]=t("span",null,"待审核",-1)),t("strong",null,i(g.value.pending),1),e[22]||(e[22]=t("small",null,"任一审核待处理",-1))]),t("div",tt,[e[23]||(e[23]=t("span",null,"已完成 / 签收",-1)),t("strong",null,i(g.value.completed),1),e[24]||(e[24]=t("small",null,"笔",-1))]),t("button",{class:T(["metric-card metric-card--interactive metric-rejected",{"is-active":Number(o.fulfillment_status)===9}]),type:"button",onClick:L},[e[25]||(e[25]=t("span",null,"拒收订单",-1)),t("strong",null,i(g.value.rejected),1),e[26]||(e[26]=t("small",null,"笔 · 点击查看明细",-1))],2),t("button",{class:T(["metric-card metric-card--interactive metric-rejected-rate",{"is-active":Number(o.fulfillment_status)===9}]),type:"button",onClick:L},[e[27]||(e[27]=t("span",null,"拒收率",-1)),t("strong",null,i(X(g.value.rejectionRate)),1),e[28]||(e[28]=t("small",null,"拒收订单 ÷ 同检索范围订单",-1))],2)]),ye((p(),P(se,{data:m(u).lists,class:"embedded-table","row-class-name":te},{empty:a(()=>[n(ae,{description:"当前范围内暂无订单"})]),default:a(()=>[n(r,{label:"订单","min-width":"174",fixed:"left"},{default:a(({row:l})=>[t("div",lt,[t("strong",null,i(l.order_no||"—"),1),t("span",null,"#"+i(l.id)+" · "+i(l.fee_type_text),1)])]),_:1}),n(r,{label:"患者","min-width":"150"},{default:a(({row:l})=>[t("div",nt,[t("strong",null,i(l.patient_name||l.recipient_name||"—"),1),t("span",null,i(l.patient_phone_masked||l.recipient_phone_masked||"无手机号"),1)])]),_:1}),n(r,{label:"处方 / 诊单","min-width":"118"},{default:a(({row:l})=>[t("div",at,[t("span",null,"处方 #"+i(l.prescription_id||"—"),1),t("span",null,"诊单 #"+i(l.diagnosis_id||"—"),1)])]),_:1}),n(r,{label:"有效金额",width:"118",align:"right"},{default:a(({row:l})=>[l.amount_included?(p(),b("strong",st,"¥"+i(M(l.effective_amount)),1)):(p(),b("span",ot,i(l.amount_exclusion_text||"不计入"),1))]),_:1}),n(r,{label:"处方审核",width:"104",align:"center"},{default:a(({row:l})=>[n(w,{size:"small",type:U(l.prescription_audit_status),effect:"light"},{default:a(()=>[d(i(l.prescription_audit_text),1)]),_:2},1032,["type"])]),_:1}),n(r,{label:"支付单审核",width:"112",align:"center"},{default:a(({row:l})=>[n(w,{size:"small",type:U(l.payment_slip_audit_status),effect:"light"},{default:a(()=>[d(i(l.payment_slip_audit_text),1)]),_:2},1032,["type"])]),_:1}),n(r,{label:"履约状态",width:"112",align:"center"},{default:a(({row:l})=>[n(w,{size:"small",type:ee(l.fulfillment_status),effect:"light"},{default:a(()=>[d(i(l.fulfillment_text),1)]),_:2},1032,["type"])]),_:1}),n(r,{label:"关联支付单",width:"100",align:"center"},{default:a(({row:l})=>[d(i(Number(l.linked_pay_order_count)>0?`${l.linked_pay_order_count} 笔`:"—"),1)]),_:1}),n(r,{prop:"assistant_name",label:"归属助理","min-width":"100","show-overflow-tooltip":""}),n(r,{prop:"doctor_name",label:"开方人","min-width":"90","show-overflow-tooltip":""}),n(r,{prop:"creator_name",label:"创建人","min-width":"90","show-overflow-tooltip":""}),n(r,{prop:"create_time_text",label:"创建时间","min-width":"145"}),n(r,{label:"操作",width:"190",fixed:"right"},{default:a(({row:l})=>[t("div",it,[n(_,{type:"primary",link:"",onClick:c=>G("openDiagnosis",l)},{default:a(()=>[...e[29]||(e[29]=[d("诊单",-1)])]),_:1},8,["onClick"]),m(Te)()?(p(),P(_,{key:0,type:"primary",link:"",onClick:c=>{var $;return($=j.value)==null?void 0:$.openDetail(l)}},{default:a(()=>[...e[30]||(e[30]=[d("详情",-1)])]),_:1},8,["onClick"])):S("",!0),m(H)(l).length?(p(),P(ne,{key:1,trigger:"click",onCommand:c=>le(l,c)},{dropdown:a(()=>[n(D,null,{default:a(()=>[(p(!0),b(F,null,O(m(H)(l),c=>(p(),P(h,{key:c.key,command:c.key,class:T({"danger-menu-item":c.danger})},{default:a(()=>[d(i(c.label),1)]),_:2},1032,["command","class"]))),128))]),_:2},1024)]),default:a(()=>[n(_,{type:"primary",link:""},{default:a(()=>[e[31]||(e[31]=d(" 操作",-1)),n(f,{class:"el-icon--right"},{default:a(()=>[n(m(Ne))]),_:1})]),_:1})]),_:2},1032,["onCommand"])):S("",!0)])]),_:1})]),_:1},8,["data"])),[[ie,m(u).loading]]),t("div",rt,[n(oe,{modelValue:m(u),"onUpdate:modelValue":e[5]||(e[5]=l=>Fe(u)?u.value=l:null),onChange:m(C)},null,8,["modelValue","onChange"])]),n(Ae,{ref_key:"orderActionHostRef",ref:j,onChanged:m(C)},null,8,["onChanged"])])}}}),wt=Be(dt,[["__scopeId","data-v-4c5a29ab"]]);export{wt as default};
+import{o as re,p as E,ap as de,q as p,r as b,s as t,v as n,D as a,u as m,cP as ue,w as me,L as d,T as i,by as pe,K as _e,F,G as O,bb as fe,bc as ce,b8 as be,bA as z,b7 as ge,be as ve,ae as T,ac as ye,bl as ke,O as P,bj as we,bk as Ce,P as S,$ as xe,cl as Ne,Z as Ve,_ as he,bB as De,bi as Ee,C as Fe,M as Y,ba as Oe}from"./.pnpm-BuKxIMgQ.js";import{_ as Pe}from"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import{u as je}from"./usePaging-DNtxCypz.js";import{q as Re}from"./first_visit-Ciw6inl9.js";import{c as Te,m as H,O as Ae}from"./OrderActionHost-CSRcGqEo.js";import{_ as Be}from"./index-BZAvl557.js";import"./PrescriptionOrderDetailDrawer-BaDbxBr8.js";import"./tcm-BZvWmp4G.js";import"./prescription-order-utils-CXfs2Bra.js";import"./perm-DZClfK-E.js";const Ie={class:"embedded-panel"},Le={class:"panel-toolbar"},Me={class:"toolbar-actions"},Ue={class:"scope-chip"},$e={class:"filter-panel"},ze={class:"filter-heading"},Se={class:"status-filter-list"},Ye={class:"status-filter-row"},He={class:"status-filter-row"},Ke={class:"status-filter-row status-filter-row--fulfillment"},qe={class:"search-filter-row"},Ge={class:"filter-field filter-field--keyword"},Ze={class:"filter-field filter-field--date"},Je={class:"filter-actions"},Qe={class:"metric-grid"},We={class:"metric-card"},Xe={class:"metric-card"},et={class:"metric-card metric-warning"},tt={class:"metric-card metric-success"},lt={class:"primary-cell"},nt={class:"primary-cell"},at={class:"id-stack"},st={key:0,class:"amount"},ot={key:1,class:"amount-excluded"},it={class:"order-actions"},rt={class:"pagination-wrap"},dt=re({__name:"OrderPanel",emits:["openDiagnosis"],setup(ut,{expose:K,emit:q}){const G=q,j=Y(),R=Y([]),o=Oe({keyword:"",prescription_audit_status:"",payment_slip_audit_status:"",fulfillment_status:"",start_date:"",end_date:""}),A=[{label:"全部",value:""},{label:"待审核",value:0},{label:"已通过",value:1},{label:"已驳回",value:2}],Z=[{label:"全部",value:""},{label:"待双审通过",value:1},{label:"待发货",value:2},{label:"已完成",value:3},{label:"已取消",value:4},{label:"已发货",value:5},{label:"已签收",value:6},{label:"进行中",value:7},{label:"暂不制药",value:8},{label:"拒收",value:9},{label:"退款",value:10},{label:"保留药方",value:11},{label:"制药缓发",value:12}],{pager:u,getLists:C,resetPage:x}=je({fetchFun:Re,params:o,size:15,firstLoading:!0}),g=E(()=>{var s,e,f,_,y,k,N,V,r,w,h,D;return{orders:Number(((e=(s=u.extend)==null?void 0:s.summary)==null?void 0:e.orders)||0),amount:Number(((_=(f=u.extend)==null?void 0:f.summary)==null?void 0:_.amount)||0),pending:Number(((k=(y=u.extend)==null?void 0:y.summary)==null?void 0:k.pending)||0),completed:Number(((V=(N=u.extend)==null?void 0:N.summary)==null?void 0:V.completed)||0),rejected:Number(((w=(r=u.extend)==null?void 0:r.summary)==null?void 0:w.rejected)||0),rejectionRate:Number(((D=(h=u.extend)==null?void 0:h.summary)==null?void 0:D.rejection_rate)||0)}}),J=E(()=>{var s,e;return((e=(s=u.extend)==null?void 0:s.scope)==null?void 0:e.label)||"按权限加载"}),Q=E(()=>!!(o.keyword.trim()||o.prescription_audit_status!==""||o.payment_slip_audit_status!==""||o.fulfillment_status!==""||o.start_date||o.end_date));function v(){x()}function B(){return C()}function W(s){o.start_date=(s==null?void 0:s[0])||"",o.end_date=(s==null?void 0:s[1])||(s==null?void 0:s[0])||"",x()}function I(){o.keyword="",o.prescription_audit_status="",o.payment_slip_audit_status="",o.fulfillment_status="",o.start_date="",o.end_date="",R.value=[],x()}function L(){o.fulfillment_status=Number(o.fulfillment_status)===9?"":9,x()}function M(s){return Number(s||0).toFixed(2)}function X(s){const e=Number(s||0);return`${Number.isInteger(e)?e.toFixed(0):e.toFixed(2)}%`}function U(s){return Number(s)===1?"success":Number(s)===2?"danger":"warning"}function ee(s){const e=Number(s);return[3,6].includes(e)?"success":[4,9,10].includes(e)?"danger":[2,5,7].includes(e)?"primary":"warning"}function te({row:s}){return[2].includes(Number(s.prescription_audit_status))||[2].includes(Number(s.payment_slip_audit_status))?"order-row-risk":[3,6].includes(Number(s.fulfillment_status))?"order-row-done":""}function le(s,e){var f;(f=j.value)==null||f.openAction(s,e)}return K({refresh:B,loading:E(()=>u.loading)}),de(C),(s,e)=>{const f=me,_=_e,y=fe,k=ce,N=ge,V=ve,r=we,w=Ce,h=he,D=Ve,ne=xe,ae=De,se=Ee,oe=Pe,ie=ke;return p(),b("section",Ie,[t("div",Le,[e[7]||(e[7]=t("div",null,[t("h2",null,"订单管理"),t("p",null,"展示当前患者范围内的处方业务订单,订单创建人不参与数据归属判断")],-1)),t("div",Me,[t("span",Ue,[n(f,null,{default:a(()=>[n(m(ue))]),_:1}),d(i(J.value),1)]),n(_,{icon:m(pe),loading:m(u).loading,onClick:B},{default:a(()=>[...e[6]||(e[6]=[d("刷新",-1)])]),_:1},8,["icon","loading"])])]),t("div",$e,[t("div",ze,[e[9]||(e[9]=t("div",null,[t("h3",null,"订单检索"),t("p",null,"审核与履约状态直接展示,点击后立即筛选")],-1)),n(_,{link:"",disabled:!Q.value,onClick:I},{default:a(()=>[...e[8]||(e[8]=[d("清空全部条件",-1)])]),_:1},8,["disabled"])]),t("div",Se,[t("div",Ye,[e[10]||(e[10]=t("span",{class:"filter-label"},"处方审核",-1)),n(k,{modelValue:o.prescription_audit_status,"onUpdate:modelValue":e[0]||(e[0]=l=>o.prescription_audit_status=l),onChange:v},{default:a(()=>[(p(),b(F,null,O(A,l=>n(y,{key:String(l.value),value:l.value},{default:a(()=>[d(i(l.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),t("div",He,[e[11]||(e[11]=t("span",{class:"filter-label"},"支付单审核",-1)),n(k,{modelValue:o.payment_slip_audit_status,"onUpdate:modelValue":e[1]||(e[1]=l=>o.payment_slip_audit_status=l),onChange:v},{default:a(()=>[(p(),b(F,null,O(A,l=>n(y,{key:String(l.value),value:l.value},{default:a(()=>[d(i(l.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),t("div",Ke,[e[12]||(e[12]=t("span",{class:"filter-label"},"履约状态",-1)),n(k,{modelValue:o.fulfillment_status,"onUpdate:modelValue":e[2]||(e[2]=l=>o.fulfillment_status=l),onChange:v},{default:a(()=>[(p(),b(F,null,O(Z,l=>n(y,{key:String(l.value),value:l.value},{default:a(()=>[d(i(l.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])])]),t("div",qe,[t("label",Ge,[e[13]||(e[13]=t("span",null,"关键词",-1)),n(N,{modelValue:o.keyword,"onUpdate:modelValue":e[3]||(e[3]=l=>o.keyword=l),clearable:"","prefix-icon":m(z),placeholder:"订单号 / 患者 / 手机号 / 处方ID / 诊单ID",onKeyup:be(v,["enter"]),onClear:v},null,8,["modelValue","prefix-icon"])]),t("label",Ze,[e[14]||(e[14]=t("span",null,"创建时间",-1)),n(V,{modelValue:R.value,"onUpdate:modelValue":e[4]||(e[4]=l=>R.value=l),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",clearable:"",onChange:W},null,8,["modelValue"])]),t("div",Je,[n(_,{type:"primary",icon:m(z),onClick:v},{default:a(()=>[...e[15]||(e[15]=[d("查询",-1)])]),_:1},8,["icon"]),n(_,{onClick:I},{default:a(()=>[...e[16]||(e[16]=[d("重置",-1)])]),_:1})])])]),t("div",Qe,[t("div",We,[e[17]||(e[17]=t("span",null,"订单数量",-1)),t("strong",null,i(g.value.orders),1),e[18]||(e[18]=t("small",null,"笔",-1))]),t("div",Xe,[e[19]||(e[19]=t("span",null,"有效订单金额",-1)),t("strong",null,"¥"+i(M(g.value.amount)),1),e[20]||(e[20]=t("small",null,"排除取消、拒收及退款",-1))]),t("div",et,[e[21]||(e[21]=t("span",null,"待审核",-1)),t("strong",null,i(g.value.pending),1),e[22]||(e[22]=t("small",null,"任一审核待处理",-1))]),t("div",tt,[e[23]||(e[23]=t("span",null,"已完成 / 签收",-1)),t("strong",null,i(g.value.completed),1),e[24]||(e[24]=t("small",null,"笔",-1))]),t("button",{class:T(["metric-card metric-card--interactive metric-rejected",{"is-active":Number(o.fulfillment_status)===9}]),type:"button",onClick:L},[e[25]||(e[25]=t("span",null,"拒收订单",-1)),t("strong",null,i(g.value.rejected),1),e[26]||(e[26]=t("small",null,"笔 · 点击查看明细",-1))],2),t("button",{class:T(["metric-card metric-card--interactive metric-rejected-rate",{"is-active":Number(o.fulfillment_status)===9}]),type:"button",onClick:L},[e[27]||(e[27]=t("span",null,"拒收率",-1)),t("strong",null,i(X(g.value.rejectionRate)),1),e[28]||(e[28]=t("small",null,"拒收订单 ÷ 同检索范围订单",-1))],2)]),ye((p(),P(se,{data:m(u).lists,class:"embedded-table","row-class-name":te},{empty:a(()=>[n(ae,{description:"当前范围内暂无订单"})]),default:a(()=>[n(r,{label:"订单","min-width":"174",fixed:"left"},{default:a(({row:l})=>[t("div",lt,[t("strong",null,i(l.order_no||"—"),1),t("span",null,"#"+i(l.id)+" · "+i(l.fee_type_text),1)])]),_:1}),n(r,{label:"患者","min-width":"150"},{default:a(({row:l})=>[t("div",nt,[t("strong",null,i(l.patient_name||l.recipient_name||"—"),1),t("span",null,i(l.patient_phone_masked||l.recipient_phone_masked||"无手机号"),1)])]),_:1}),n(r,{label:"处方 / 诊单","min-width":"118"},{default:a(({row:l})=>[t("div",at,[t("span",null,"处方 #"+i(l.prescription_id||"—"),1),t("span",null,"诊单 #"+i(l.diagnosis_id||"—"),1)])]),_:1}),n(r,{label:"有效金额",width:"118",align:"right"},{default:a(({row:l})=>[l.amount_included?(p(),b("strong",st,"¥"+i(M(l.effective_amount)),1)):(p(),b("span",ot,i(l.amount_exclusion_text||"不计入"),1))]),_:1}),n(r,{label:"处方审核",width:"104",align:"center"},{default:a(({row:l})=>[n(w,{size:"small",type:U(l.prescription_audit_status),effect:"light"},{default:a(()=>[d(i(l.prescription_audit_text),1)]),_:2},1032,["type"])]),_:1}),n(r,{label:"支付单审核",width:"112",align:"center"},{default:a(({row:l})=>[n(w,{size:"small",type:U(l.payment_slip_audit_status),effect:"light"},{default:a(()=>[d(i(l.payment_slip_audit_text),1)]),_:2},1032,["type"])]),_:1}),n(r,{label:"履约状态",width:"112",align:"center"},{default:a(({row:l})=>[n(w,{size:"small",type:ee(l.fulfillment_status),effect:"light"},{default:a(()=>[d(i(l.fulfillment_text),1)]),_:2},1032,["type"])]),_:1}),n(r,{label:"关联支付单",width:"100",align:"center"},{default:a(({row:l})=>[d(i(Number(l.linked_pay_order_count)>0?`${l.linked_pay_order_count} 笔`:"—"),1)]),_:1}),n(r,{prop:"assistant_name",label:"归属助理","min-width":"100","show-overflow-tooltip":""}),n(r,{prop:"doctor_name",label:"开方人","min-width":"90","show-overflow-tooltip":""}),n(r,{prop:"creator_name",label:"创建人","min-width":"90","show-overflow-tooltip":""}),n(r,{prop:"create_time_text",label:"创建时间","min-width":"145"}),n(r,{label:"操作",width:"190",fixed:"right"},{default:a(({row:l})=>[t("div",it,[n(_,{type:"primary",link:"",onClick:c=>G("openDiagnosis",l)},{default:a(()=>[...e[29]||(e[29]=[d("诊单",-1)])]),_:1},8,["onClick"]),m(Te)()?(p(),P(_,{key:0,type:"primary",link:"",onClick:c=>{var $;return($=j.value)==null?void 0:$.openDetail(l)}},{default:a(()=>[...e[30]||(e[30]=[d("详情",-1)])]),_:1},8,["onClick"])):S("",!0),m(H)(l).length?(p(),P(ne,{key:1,trigger:"click",onCommand:c=>le(l,c)},{dropdown:a(()=>[n(D,null,{default:a(()=>[(p(!0),b(F,null,O(m(H)(l),c=>(p(),P(h,{key:c.key,command:c.key,class:T({"danger-menu-item":c.danger})},{default:a(()=>[d(i(c.label),1)]),_:2},1032,["command","class"]))),128))]),_:2},1024)]),default:a(()=>[n(_,{type:"primary",link:""},{default:a(()=>[e[31]||(e[31]=d(" 操作",-1)),n(f,{class:"el-icon--right"},{default:a(()=>[n(m(Ne))]),_:1})]),_:1})]),_:2},1032,["onCommand"])):S("",!0)])]),_:1})]),_:1},8,["data"])),[[ie,m(u).loading]]),t("div",rt,[n(oe,{modelValue:m(u),"onUpdate:modelValue":e[5]||(e[5]=l=>Fe(u)?u.value=l:null),onChange:m(C)},null,8,["modelValue","onChange"])]),n(Ae,{ref_key:"orderActionHostRef",ref:j,onChanged:m(C)},null,8,["onChanged"])])}}}),wt=Be(dt,[["__scopeId","data-v-4c5a29ab"]]);export{wt as default};
diff --git a/server/public/admin/assets/PaibanPanel-CKBOg3dI.js b/server/public/admin/assets/PaibanPanel-CbtQVskF.js
similarity index 84%
rename from server/public/admin/assets/PaibanPanel-CKBOg3dI.js
rename to server/public/admin/assets/PaibanPanel-CbtQVskF.js
index c1470e3c0..789d97540 100644
--- a/server/public/admin/assets/PaibanPanel-CKBOg3dI.js
+++ b/server/public/admin/assets/PaibanPanel-CbtQVskF.js
@@ -1 +1 @@
-import{o as H,ap as J,aq as Q,ac as X,bi as Z,q as r,r as _,v as p,D as c,b9 as ee,b6 as ae,s as b,bc as te,F as E,G as C,O as w,bf as se,L as M,T,bB as le,K as oe,ae as L,P as ne,u as ie,by as re,bg as ce,M as g,ba as de,p as $,n as ue}from"./.pnpm-BHOjf1ZS.js";import{d,i as me}from"./dayjs-CF5xpNFg.js";import{g as ve}from"./tcm-BkYsBTA3.js";import{r as fe,g as _e}from"./doctor-CI72mqZm.js";import{j as v,_ as pe}from"./index-B31vLELt.js";const be={class:"paiban-container"},ge={class:"card-header"},ye={class:"doctor-list"},he={key:2,class:"paiban-time-container"},De={class:"date-selector"},ke={key:0,class:"time-slots-container"},we={class:"time-slots-grid"},Te=["onClick"],Ye={class:"slot-time"},Ee=H({__name:"PaibanPanel",setup(Ce,{expose:A}){d.extend(me);const u=g(!1),Y=g(!1),y=g([]),f=g([]),o=g(0),i=g([]);let h=null,D=!1;const s=de({date:"",selectedTime:""}),I=$(()=>{if(!o.value||i.value.length===0)return[];const e=[],a=["日","一","二","三","四","五","六"],t=d().startOf("day");for(const n of i.value){const m=d(n);m.isBefore(t)||e.push({date:n,label:`${m.format("MM月DD日")} (${a[m.day()]})`})}return e}),z=$(()=>{if(!s.date||f.value.length===0)return[];const e=d().format("YYYY-MM-DD");if(s.date!==e)return f.value;const a=d();return f.value.map(t=>{const n=d(`${s.date} ${t.time}`);return n.isBefore(a)||n.isSame(a,"minute")?{...t,available:!1}:t})}),S=async()=>{try{u.value=!0;const e=await ve();y.value=e||[],y.value.length>0&&!o.value&&(o.value=y.value[0].id,await x())}catch(e){console.error("加载医生列表失败:",e),v.msgError("加载医生列表失败")}finally{u.value=!1}},x=async()=>{s.selectedTime="",s.date="",f.value=[],i.value=[],o.value&&await F()},F=async()=>{if(o.value)try{u.value=!0;const e=d().format("YYYY-MM-DD"),a=d().add(6,"day").format("YYYY-MM-DD"),t=await fe({doctor_id:o.value,start_date:e,end_date:a,status:1});if(t!=null&&t.lists&&t.lists.length>0){if(i.value=[...new Set(t.lists.map(n=>n.date))],i.value.sort(),await ue(),i.value.length>0){const n=d().format("YYYY-MM-DD"),m=i.value.includes(n)?n:i.value[0];B(m)}}else i.value=[],v.msgWarning("该医生暂无排班")}catch(e){console.error("加载医生排班失败:",e),v.msgError("加载医生排班失败"),i.value=[]}finally{u.value=!1}},B=e=>{s.date=e,s.selectedTime="",o.value&&k()},k=async(e=!1)=>{if(!(!o.value||!s.date)){if(D){console.log("正在加载中,跳过本次请求");return}try{D=!0,e||(u.value=!0);const a=await _e({doctor_id:o.value,appointment_date:s.date,period:"all"});f.value=((a==null?void 0:a.slots)||[]).map(t=>({time:t.time,available:t.available,hasAppointment:!!(t.has_appointment??t.available===!1),quota:t.available?1:0}))}catch(a){console.error("加载时间段失败:",a),e||v.msgError("加载时间段失败"),f.value=[]}finally{D=!1,e||(u.value=!1)}}},N=e=>{if(!e.available){v.msgWarning("该时间段不可预约");return}s.selectedTime=e.time},W=async()=>{if(!(!o.value||!s.date)){if(D){v.msgWarning("正在刷新中,请稍候");return}try{Y.value=!0;const e=s.selectedTime;if(s.selectedTime="",await k(),e){const a=f.value.find(t=>t.time===e);a&&a.available&&(s.selectedTime=e)}v.msgSuccess("刷新成功")}catch(e){console.error("刷新失败:",e),v.msgError("刷新失败,请重试")}finally{Y.value=!1}}},j=()=>{R(),h=window.setInterval(()=>{o.value&&s.date&&k(!0)},5e3)},R=()=>{h&&(clearInterval(h),h=null)};async function q(){if(o.value&&s.date){await k();return}await S()}return A({refresh:q,loading:u}),J(()=>{S(),j()}),Q(()=>{R()}),(e,a)=>{const t=oe,n=se,m=te,P=ae,V=le,G=ee,U=ce,K=Z;return X((r(),_("div",be,[p(U,{shadow:"never"},{header:c(()=>[b("div",ge,[a[2]||(a[2]=b("span",null,"医生排班管理",-1)),p(t,{text:"",type:"primary",size:"small",loading:Y.value,disabled:!o.value||!s.date,onClick:W},{icon:c(()=>[p(ie(re))]),default:c(()=>[a[1]||(a[1]=M(" 刷新 ",-1))]),_:1},8,["loading","disabled"])])]),default:c(()=>[p(G,{model:s,"label-width":"100px",class:"paiban-form"},{default:c(()=>[p(P,{label:"选择医生:"},{default:c(()=>[b("div",ye,[p(m,{modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=l=>o.value=l),onChange:x},{default:c(()=>[(r(!0),_(E,null,C(y.value,l=>(r(),w(n,{key:l.id,value:l.id,class:"doctor-radio"},{default:c(()=>[M(T(l.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])]),_:1}),p(P,{label:"排班时间:"},{default:c(()=>[o.value?o.value&&i.value.length===0?(r(),w(V,{key:1,description:"该医生暂无排班","image-size":80})):(r(),_("div",he,[b("div",De,[(r(!0),_(E,null,C(I.value,l=>(r(),w(t,{key:l.date,type:s.date===l.date?"primary":"",class:"date-button",onClick:O=>B(l.date)},{default:c(()=>[M(T(l.label),1)]),_:2},1032,["type","onClick"]))),128))]),s.date?(r(),_("div",ke,[b("div",we,[(r(!0),_(E,null,C(z.value,l=>(r(),_("div",{key:l.time,class:L(["time-slot-item",{available:l.available,unavailable:!l.available,selected:s.selectedTime===l.time}]),onClick:O=>N(l)},[b("div",Ye,T(l.time),1),b("div",{class:L(["slot-status",{"status-available":l.available}])},T(l.available?"可约":l.hasAppointment?"已约":"空号"),3)],10,Te))),128))])])):ne("",!0)])):(r(),w(V,{key:0,description:"请先选择医生","image-size":80}))]),_:1})]),_:1},8,["model"])]),_:1})])),[[K,u.value]])}}}),Pe=pe(Ee,[["__scopeId","data-v-8368484f"]]);export{Pe as default};
+import{o as H,ap as J,aq as Q,ac as X,bl as Z,q as r,r as _,v as p,D as c,b9 as ee,b6 as ae,s as b,bc as te,F as E,G as C,O as w,bo as se,L as M,T,bB as le,K as oe,ae as L,P as ne,u as ie,by as re,bh as ce,M as y,ba as de,p as $,n as ue}from"./.pnpm-BuKxIMgQ.js";import{d,i as me}from"./dayjs-7f8aMLm8.js";import{g as ve}from"./tcm-BZvWmp4G.js";import{r as fe,g as _e}from"./doctor-DlXZd1P5.js";import{j as v,_ as pe}from"./index-BZAvl557.js";const be={class:"paiban-container"},ye={class:"card-header"},ge={class:"doctor-list"},he={key:2,class:"paiban-time-container"},De={class:"date-selector"},ke={key:0,class:"time-slots-container"},we={class:"time-slots-grid"},Te=["onClick"],Ye={class:"slot-time"},Ee=H({__name:"PaibanPanel",setup(Ce,{expose:A}){d.extend(me);const u=y(!1),Y=y(!1),g=y([]),f=y([]),o=y(0),i=y([]);let h=null,D=!1;const s=de({date:"",selectedTime:""}),I=$(()=>{if(!o.value||i.value.length===0)return[];const e=[],a=["日","一","二","三","四","五","六"],t=d().startOf("day");for(const n of i.value){const m=d(n);m.isBefore(t)||e.push({date:n,label:`${m.format("MM月DD日")} (${a[m.day()]})`})}return e}),z=$(()=>{if(!s.date||f.value.length===0)return[];const e=d().format("YYYY-MM-DD");if(s.date!==e)return f.value;const a=d();return f.value.map(t=>{const n=d(`${s.date} ${t.time}`);return n.isBefore(a)||n.isSame(a,"minute")?{...t,available:!1}:t})}),S=async()=>{try{u.value=!0;const e=await ve();g.value=e||[],g.value.length>0&&!o.value&&(o.value=g.value[0].id,await x())}catch(e){console.error("加载医生列表失败:",e),v.msgError("加载医生列表失败")}finally{u.value=!1}},x=async()=>{s.selectedTime="",s.date="",f.value=[],i.value=[],o.value&&await F()},F=async()=>{if(o.value)try{u.value=!0;const e=d().format("YYYY-MM-DD"),a=d().add(6,"day").format("YYYY-MM-DD"),t=await fe({doctor_id:o.value,start_date:e,end_date:a,status:1});if(t!=null&&t.lists&&t.lists.length>0){if(i.value=[...new Set(t.lists.map(n=>n.date))],i.value.sort(),await ue(),i.value.length>0){const n=d().format("YYYY-MM-DD"),m=i.value.includes(n)?n:i.value[0];B(m)}}else i.value=[],v.msgWarning("该医生暂无排班")}catch(e){console.error("加载医生排班失败:",e),v.msgError("加载医生排班失败"),i.value=[]}finally{u.value=!1}},B=e=>{s.date=e,s.selectedTime="",o.value&&k()},k=async(e=!1)=>{if(!(!o.value||!s.date)){if(D){console.log("正在加载中,跳过本次请求");return}try{D=!0,e||(u.value=!0);const a=await _e({doctor_id:o.value,appointment_date:s.date,period:"all"});f.value=((a==null?void 0:a.slots)||[]).map(t=>({time:t.time,available:t.available,hasAppointment:!!(t.has_appointment??t.available===!1),quota:t.available?1:0}))}catch(a){console.error("加载时间段失败:",a),e||v.msgError("加载时间段失败"),f.value=[]}finally{D=!1,e||(u.value=!1)}}},N=e=>{if(!e.available){v.msgWarning("该时间段不可预约");return}s.selectedTime=e.time},W=async()=>{if(!(!o.value||!s.date)){if(D){v.msgWarning("正在刷新中,请稍候");return}try{Y.value=!0;const e=s.selectedTime;if(s.selectedTime="",await k(),e){const a=f.value.find(t=>t.time===e);a&&a.available&&(s.selectedTime=e)}v.msgSuccess("刷新成功")}catch(e){console.error("刷新失败:",e),v.msgError("刷新失败,请重试")}finally{Y.value=!1}}},j=()=>{R(),h=window.setInterval(()=>{o.value&&s.date&&k(!0)},5e3)},R=()=>{h&&(clearInterval(h),h=null)};async function q(){if(o.value&&s.date){await k();return}await S()}return A({refresh:q,loading:u}),J(()=>{S(),j()}),Q(()=>{R()}),(e,a)=>{const t=oe,n=se,m=te,P=ae,V=le,G=ee,U=ce,K=Z;return X((r(),_("div",be,[p(U,{shadow:"never"},{header:c(()=>[b("div",ye,[a[2]||(a[2]=b("span",null,"医生排班管理",-1)),p(t,{text:"",type:"primary",size:"small",loading:Y.value,disabled:!o.value||!s.date,onClick:W},{icon:c(()=>[p(ie(re))]),default:c(()=>[a[1]||(a[1]=M(" 刷新 ",-1))]),_:1},8,["loading","disabled"])])]),default:c(()=>[p(G,{model:s,"label-width":"100px",class:"paiban-form"},{default:c(()=>[p(P,{label:"选择医生:"},{default:c(()=>[b("div",ge,[p(m,{modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=l=>o.value=l),onChange:x},{default:c(()=>[(r(!0),_(E,null,C(g.value,l=>(r(),w(n,{key:l.id,value:l.id,class:"doctor-radio"},{default:c(()=>[M(T(l.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])]),_:1}),p(P,{label:"排班时间:"},{default:c(()=>[o.value?o.value&&i.value.length===0?(r(),w(V,{key:1,description:"该医生暂无排班","image-size":80})):(r(),_("div",he,[b("div",De,[(r(!0),_(E,null,C(I.value,l=>(r(),w(t,{key:l.date,type:s.date===l.date?"primary":"",class:"date-button",onClick:O=>B(l.date)},{default:c(()=>[M(T(l.label),1)]),_:2},1032,["type","onClick"]))),128))]),s.date?(r(),_("div",ke,[b("div",we,[(r(!0),_(E,null,C(z.value,l=>(r(),_("div",{key:l.time,class:L(["time-slot-item",{available:l.available,unavailable:!l.available,selected:s.selectedTime===l.time}]),onClick:O=>N(l)},[b("div",Ye,T(l.time),1),b("div",{class:L(["slot-status",{"status-available":l.available}])},T(l.available?"可约":l.hasAppointment?"已约":"空号"),3)],10,Te))),128))])])):ne("",!0)])):(r(),w(V,{key:0,description:"请先选择医生","image-size":80}))]),_:1})]),_:1},8,["model"])]),_:1})])),[[K,u.value]])}}}),Pe=pe(Ee,[["__scopeId","data-v-8368484f"]]);export{Pe as default};
diff --git a/server/public/admin/assets/PatientCaseCard-1VwB2t3C.js b/server/public/admin/assets/PatientCaseCard-B84wsZD1.js
similarity index 98%
rename from server/public/admin/assets/PatientCaseCard-1VwB2t3C.js
rename to server/public/admin/assets/PatientCaseCard-B84wsZD1.js
index 14c15f9e5..c8d0247b2 100644
--- a/server/public/admin/assets/PatientCaseCard-1VwB2t3C.js
+++ b/server/public/admin/assets/PatientCaseCard-B84wsZD1.js
@@ -1 +1 @@
-import{i as G,a as J,b as Q}from"./blood-thresholds-CJ1fqMjh.js";import{m as R,j as U,b as W}from"./diag-display-DCz_VAqj.js";import{f as E}from"./diabetes-discovery-display-B_wmGXQJ.js";import{o as X,q as F,r as M,s,L as Y,T as g,v as l,u as i,P as Z,p,y as d}from"./.pnpm-BHOjf1ZS.js";import{_ as P}from"./index-B31vLELt.js";const ll={class:"card case-card"},al={class:"card-title"},el={class:"case-sub"},il={class:"grid-block"},tl={class:"kv-grid four"},sl={class:"grid-block"},ul={class:"kv-grid four"},nl={class:"grid-block"},dl={class:"kv-grid four"},vl={class:"grid-block"},ol={class:"kv-grid three"},gl={class:"grid-block"},cl={class:"kv-grid three"},rl={class:"grid-block"},bl={class:"kv-grid three"},hl={key:0,class:"grid-block"},ml={class:"kv-grid one"},yl={class:"grid-block"},fl={class:"rx-note"},kl=X({__name:"PatientCaseCard",props:{apt:{default:()=>({})},diag:{default:()=>({})}},setup(e){const c=e,z=p(()=>((c.diag||{}).consultation_type==="follow_up","复诊")),u=W(()=>c.diag||{}),a=n=>{const t=n.value,v=t==null||t===""||Array.isArray(t)&&t.length===0;return d("div",{class:["kv-item",n.multiline?"multiline":"",v?"empty":""],style:n.span?`grid-column: span ${n.span}`:""},[d("span",{class:"kv-label"},n.label),d("span",{class:"kv-value"},v?"—":String(t))])},o=n=>{const t=n.value===void 0||n.value===null||n.value==="";return d("div",{class:["kv-item","metric-kv-item",t?"empty":""],style:n.span?`grid-column: span ${n.span}`:""},[d("span",{class:"kv-label"},n.label),d("span",{class:["kv-value","metric-kv-value",n.high?"high":""]},t?"—":[`${n.value}${n.unit||""}`,n.high?d("span",{class:"metric-up"},"↑"):null])])};return(n,t)=>{var v,r,b,h,m,y,f,k,_,x,w,C,D,V,H,B,I,N,S,T,$,A,L,j,K,O,q;return F(),M("div",ll,[s("div",al,[t[0]||(t[0]=Y(" 患者病例 ",-1)),s("span",el,g(z.value)+" · 诊断日期 "+g(((v=e.diag)==null?void 0:v.diagnosis_date)||((r=e.apt)==null?void 0:r.appointment_date)||"—"),1)]),s("div",il,[t[1]||(t[1]=s("div",{class:"grid-title"},"基本信息",-1)),s("div",tl,[l(a,{label:"诊单ID",value:(b=e.diag)==null?void 0:b.patient_id},null,8,["value"]),l(a,{label:"姓名",value:(h=e.diag)==null?void 0:h.patient_name},null,8,["value"]),l(a,{label:"身份证号",value:(m=e.diag)==null?void 0:m.id_card},null,8,["value"]),l(a,{label:"手机号",value:i(R)(((y=e.diag)==null?void 0:y.phone)||((f=e.apt)==null?void 0:f.patient_phone))},null,8,["value"]),l(a,{label:"性别",value:i(u)("gender")},null,8,["value"]),l(a,{label:"年龄",value:((k=e.diag)==null?void 0:k.age)!=null?e.diag.age+"岁":""},null,8,["value"]),l(a,{label:"婚姻状态",value:i(u)("marital_status")},null,8,["value"]),l(a,{label:"地区",value:(_=e.diag)==null?void 0:_.region},null,8,["value"])])]),s("div",sl,[t[2]||(t[2]=s("div",{class:"grid-title"},"生命体征",-1)),s("div",ul,[l(a,{label:"身高",value:(x=e.diag)!=null&&x.height?e.diag.height+" cm":""},null,8,["value"]),l(a,{label:"体重",value:(w=e.diag)!=null&&w.weight?e.diag.weight+" kg":""},null,8,["value"]),l(o,{label:"高压",value:(C=e.diag)==null?void 0:C.systolic_pressure,unit:" mmHg",high:i(G)((D=e.diag)==null?void 0:D.systolic_pressure)},null,8,["value","high"]),l(o,{label:"低压",value:(V=e.diag)==null?void 0:V.diastolic_pressure,unit:" mmHg",high:i(J)((H=e.diag)==null?void 0:H.diastolic_pressure)},null,8,["value","high"]),l(a,{label:"诊断类型",value:i(u)("diagnosis_type")},null,8,["value"]),l(o,{label:"空腹血糖",value:(B=e.diag)==null?void 0:B.fasting_blood_sugar,unit:" mmol/L",high:i(Q)((I=e.diag)==null?void 0:I.fasting_blood_sugar,(N=e.diag)==null?void 0:N.age)},null,8,["value","high"]),l(a,{label:"在用药物",value:(S=e.diag)==null?void 0:S.current_medications,multiline:""},null,8,["value"])])]),s("div",nl,[t[3]||(t[3]=s("div",{class:"grid-title"},"主诉",-1)),s("div",dl,[l(a,{label:"当地医院诊断日期",value:(T=e.diag)==null?void 0:T.diagnosis_date},null,8,["value"]),l(a,{label:"发现糖尿病病史",value:i(E)?i(E)(($=e.diag)==null?void 0:$.diabetes_discovery_year):(A=e.diag)==null?void 0:A.diabetes_discovery_year},null,8,["value"]),l(a,{label:"当地就诊医院",value:(L=e.diag)==null?void 0:L.local_hospital_name},null,8,["value"]),l(a,{label:"当地医院诊断结果",value:i(U)((j=e.diag)==null?void 0:j.local_hospital_diagnosis)},null,8,["value"])])]),s("div",vl,[t[4]||(t[4]=s("div",{class:"grid-title"},"现病史",-1)),s("div",ol,[l(a,{label:"口腔感觉",value:i(u)("appetite")},null,8,["value"]),l(a,{label:"每日饮水量",value:i(u)("water_intake")},null,8,["value"]),l(a,{label:"近月体重变化",value:i(u)("weight_change")},null,8,["value"]),l(a,{label:"脂肪肝程度",value:i(u)("fatty_liver_degree")},null,8,["value"]),l(a,{label:"饮食情况",value:i(u)("diet_condition"),span:"2"},null,8,["value"]),l(a,{label:"肢体感觉",value:i(u)("body_feeling")},null,8,["value"]),l(a,{label:"睡眠情况",value:i(u)("sleep_condition")},null,8,["value"]),l(a,{label:"眼睛情况",value:i(u)("eye_condition")},null,8,["value"]),l(a,{label:"头部感觉",value:i(u)("head_feeling")},null,8,["value"]),l(a,{label:"出汗情况",value:i(u)("sweat_condition")},null,8,["value"]),l(a,{label:"皮肤情况",value:i(u)("skin_condition")},null,8,["value"]),l(a,{label:"小便情况",value:i(u)("urine_condition")},null,8,["value"]),l(a,{label:"大便情况",value:i(u)("stool_condition")},null,8,["value"]),l(a,{label:"腰肾情况",value:i(u)("kidney_condition")},null,8,["value"]),l(a,{label:"其他补充",value:(K=e.diag)==null?void 0:K.symptoms,span:"3",multiline:""},null,8,["value"])])]),s("div",gl,[t[5]||(t[5]=s("div",{class:"grid-title"},"既往史",-1)),s("div",cl,[l(a,{label:"既往病史",value:i(u)("past_history"),span:"3"},null,8,["value"])])]),s("div",rl,[t[6]||(t[6]=s("div",{class:"grid-title"},"其他病史",-1)),s("div",bl,[l(a,{label:"外伤史",value:i(u)("trauma_history")},null,8,["value"]),l(a,{label:"手术史",value:i(u)("surgery_history")},null,8,["value"]),l(a,{label:"过敏史",value:i(u)("allergy_history")},null,8,["value"]),l(a,{label:"家族病史",value:i(u)("family_history")},null,8,["value"]),l(a,{label:"妊娠哺乳史",value:i(u)("pregnancy_history")},null,8,["value"])])]),(O=e.diag)!=null&&O.remark?(F(),M("div",hl,[t[7]||(t[7]=s("div",{class:"grid-title"},"病史补充",-1)),s("div",ml,[l(a,{label:"",value:e.diag.remark,multiline:""},null,8,["value"])])])):Z("",!0),s("div",yl,[t[8]||(t[8]=s("div",{class:"grid-title"},"处方意见",-1)),s("div",fl,g((q=e.apt)!=null&&q.has_prescription?"已开方。":"当前未开方。"),1)])])}}}),Vl=P(kl,[["__scopeId","data-v-7b1b11be"]]);export{Vl as default};
+import{i as G,a as J,b as Q}from"./blood-thresholds-CJ1fqMjh.js";import{m as R,j as U,b as W}from"./diag-display-DCz_VAqj.js";import{f as E}from"./diabetes-discovery-display-B_wmGXQJ.js";import{o as X,q as F,r as M,s,L as Y,T as g,v as l,u as i,P as Z,p,y as d}from"./.pnpm-BuKxIMgQ.js";import{_ as P}from"./index-BZAvl557.js";const ll={class:"card case-card"},al={class:"card-title"},el={class:"case-sub"},il={class:"grid-block"},tl={class:"kv-grid four"},sl={class:"grid-block"},ul={class:"kv-grid four"},nl={class:"grid-block"},dl={class:"kv-grid four"},vl={class:"grid-block"},ol={class:"kv-grid three"},gl={class:"grid-block"},cl={class:"kv-grid three"},rl={class:"grid-block"},bl={class:"kv-grid three"},hl={key:0,class:"grid-block"},ml={class:"kv-grid one"},yl={class:"grid-block"},fl={class:"rx-note"},kl=X({__name:"PatientCaseCard",props:{apt:{default:()=>({})},diag:{default:()=>({})}},setup(e){const c=e,z=p(()=>((c.diag||{}).consultation_type==="follow_up","复诊")),u=W(()=>c.diag||{}),a=n=>{const t=n.value,v=t==null||t===""||Array.isArray(t)&&t.length===0;return d("div",{class:["kv-item",n.multiline?"multiline":"",v?"empty":""],style:n.span?`grid-column: span ${n.span}`:""},[d("span",{class:"kv-label"},n.label),d("span",{class:"kv-value"},v?"—":String(t))])},o=n=>{const t=n.value===void 0||n.value===null||n.value==="";return d("div",{class:["kv-item","metric-kv-item",t?"empty":""],style:n.span?`grid-column: span ${n.span}`:""},[d("span",{class:"kv-label"},n.label),d("span",{class:["kv-value","metric-kv-value",n.high?"high":""]},t?"—":[`${n.value}${n.unit||""}`,n.high?d("span",{class:"metric-up"},"↑"):null])])};return(n,t)=>{var v,r,b,h,m,y,f,k,_,x,w,C,D,V,H,B,I,N,S,T,$,A,L,j,K,O,q;return F(),M("div",ll,[s("div",al,[t[0]||(t[0]=Y(" 患者病例 ",-1)),s("span",el,g(z.value)+" · 诊断日期 "+g(((v=e.diag)==null?void 0:v.diagnosis_date)||((r=e.apt)==null?void 0:r.appointment_date)||"—"),1)]),s("div",il,[t[1]||(t[1]=s("div",{class:"grid-title"},"基本信息",-1)),s("div",tl,[l(a,{label:"诊单ID",value:(b=e.diag)==null?void 0:b.patient_id},null,8,["value"]),l(a,{label:"姓名",value:(h=e.diag)==null?void 0:h.patient_name},null,8,["value"]),l(a,{label:"身份证号",value:(m=e.diag)==null?void 0:m.id_card},null,8,["value"]),l(a,{label:"手机号",value:i(R)(((y=e.diag)==null?void 0:y.phone)||((f=e.apt)==null?void 0:f.patient_phone))},null,8,["value"]),l(a,{label:"性别",value:i(u)("gender")},null,8,["value"]),l(a,{label:"年龄",value:((k=e.diag)==null?void 0:k.age)!=null?e.diag.age+"岁":""},null,8,["value"]),l(a,{label:"婚姻状态",value:i(u)("marital_status")},null,8,["value"]),l(a,{label:"地区",value:(_=e.diag)==null?void 0:_.region},null,8,["value"])])]),s("div",sl,[t[2]||(t[2]=s("div",{class:"grid-title"},"生命体征",-1)),s("div",ul,[l(a,{label:"身高",value:(x=e.diag)!=null&&x.height?e.diag.height+" cm":""},null,8,["value"]),l(a,{label:"体重",value:(w=e.diag)!=null&&w.weight?e.diag.weight+" kg":""},null,8,["value"]),l(o,{label:"高压",value:(C=e.diag)==null?void 0:C.systolic_pressure,unit:" mmHg",high:i(G)((D=e.diag)==null?void 0:D.systolic_pressure)},null,8,["value","high"]),l(o,{label:"低压",value:(V=e.diag)==null?void 0:V.diastolic_pressure,unit:" mmHg",high:i(J)((H=e.diag)==null?void 0:H.diastolic_pressure)},null,8,["value","high"]),l(a,{label:"诊断类型",value:i(u)("diagnosis_type")},null,8,["value"]),l(o,{label:"空腹血糖",value:(B=e.diag)==null?void 0:B.fasting_blood_sugar,unit:" mmol/L",high:i(Q)((I=e.diag)==null?void 0:I.fasting_blood_sugar,(N=e.diag)==null?void 0:N.age)},null,8,["value","high"]),l(a,{label:"在用药物",value:(S=e.diag)==null?void 0:S.current_medications,multiline:""},null,8,["value"])])]),s("div",nl,[t[3]||(t[3]=s("div",{class:"grid-title"},"主诉",-1)),s("div",dl,[l(a,{label:"当地医院诊断日期",value:(T=e.diag)==null?void 0:T.diagnosis_date},null,8,["value"]),l(a,{label:"发现糖尿病病史",value:i(E)?i(E)(($=e.diag)==null?void 0:$.diabetes_discovery_year):(A=e.diag)==null?void 0:A.diabetes_discovery_year},null,8,["value"]),l(a,{label:"当地就诊医院",value:(L=e.diag)==null?void 0:L.local_hospital_name},null,8,["value"]),l(a,{label:"当地医院诊断结果",value:i(U)((j=e.diag)==null?void 0:j.local_hospital_diagnosis)},null,8,["value"])])]),s("div",vl,[t[4]||(t[4]=s("div",{class:"grid-title"},"现病史",-1)),s("div",ol,[l(a,{label:"口腔感觉",value:i(u)("appetite")},null,8,["value"]),l(a,{label:"每日饮水量",value:i(u)("water_intake")},null,8,["value"]),l(a,{label:"近月体重变化",value:i(u)("weight_change")},null,8,["value"]),l(a,{label:"脂肪肝程度",value:i(u)("fatty_liver_degree")},null,8,["value"]),l(a,{label:"饮食情况",value:i(u)("diet_condition"),span:"2"},null,8,["value"]),l(a,{label:"肢体感觉",value:i(u)("body_feeling")},null,8,["value"]),l(a,{label:"睡眠情况",value:i(u)("sleep_condition")},null,8,["value"]),l(a,{label:"眼睛情况",value:i(u)("eye_condition")},null,8,["value"]),l(a,{label:"头部感觉",value:i(u)("head_feeling")},null,8,["value"]),l(a,{label:"出汗情况",value:i(u)("sweat_condition")},null,8,["value"]),l(a,{label:"皮肤情况",value:i(u)("skin_condition")},null,8,["value"]),l(a,{label:"小便情况",value:i(u)("urine_condition")},null,8,["value"]),l(a,{label:"大便情况",value:i(u)("stool_condition")},null,8,["value"]),l(a,{label:"腰肾情况",value:i(u)("kidney_condition")},null,8,["value"]),l(a,{label:"其他补充",value:(K=e.diag)==null?void 0:K.symptoms,span:"3",multiline:""},null,8,["value"])])]),s("div",gl,[t[5]||(t[5]=s("div",{class:"grid-title"},"既往史",-1)),s("div",cl,[l(a,{label:"既往病史",value:i(u)("past_history"),span:"3"},null,8,["value"])])]),s("div",rl,[t[6]||(t[6]=s("div",{class:"grid-title"},"其他病史",-1)),s("div",bl,[l(a,{label:"外伤史",value:i(u)("trauma_history")},null,8,["value"]),l(a,{label:"手术史",value:i(u)("surgery_history")},null,8,["value"]),l(a,{label:"过敏史",value:i(u)("allergy_history")},null,8,["value"]),l(a,{label:"家族病史",value:i(u)("family_history")},null,8,["value"]),l(a,{label:"妊娠哺乳史",value:i(u)("pregnancy_history")},null,8,["value"])])]),(O=e.diag)!=null&&O.remark?(F(),M("div",hl,[t[7]||(t[7]=s("div",{class:"grid-title"},"病史补充",-1)),s("div",ml,[l(a,{label:"",value:e.diag.remark,multiline:""},null,8,["value"])])])):Z("",!0),s("div",yl,[t[8]||(t[8]=s("div",{class:"grid-title"},"处方意见",-1)),s("div",fl,g((q=e.apt)!=null&&q.has_prescription?"已开方。":"当前未开方。"),1)])])}}}),Vl=P(kl,[["__scopeId","data-v-7b1b11be"]]);export{Vl as default};
diff --git a/server/public/admin/assets/PatientInfoCard-7pCNn1rH.js b/server/public/admin/assets/PatientInfoCard-DqN7fQ-G.js
similarity index 96%
rename from server/public/admin/assets/PatientInfoCard-7pCNn1rH.js
rename to server/public/admin/assets/PatientInfoCard-DqN7fQ-G.js
index ddf9a0187..874ef0c80 100644
--- a/server/public/admin/assets/PatientInfoCard-7pCNn1rH.js
+++ b/server/public/admin/assets/PatientInfoCard-DqN7fQ-G.js
@@ -1 +1 @@
-import{m as I,f as p,a as w}from"./diag-display-DCz_VAqj.js";import{o as y,q as x,r as B,s as e,T as a,u as i,P as N}from"./.pnpm-BHOjf1ZS.js";import{_ as V}from"./index-B31vLELt.js";const b={class:"card patient-card"},q={class:"patient-hero"},D={class:"patient-name"},E={class:"patient-meta"},G={key:0},S=y({__name:"PatientInfoCard",props:{apt:{default:()=>({})},diag:{default:()=>({})}},setup(t){return(T,n)=>{var d,s,o,c,m,l,r,g,u,f,h,v,k,P,C;return x(),B("div",b,[n[0]||(n[0]=e("div",{class:"card-title"},"患者信息",-1)),e("div",q,[e("div",D,a(((d=t.apt)==null?void 0:d.patient_name)||"—"),1),e("div",E,[e("div",null,a(i(I)((s=t.apt)==null?void 0:s.patient_phone))+" · "+a(i(p)((o=t.diag)==null?void 0:o.gender))+" · "+a(((c=t.diag)==null?void 0:c.age)!=null?t.diag.age+"岁":"—"),1),e("div",null,a((m=t.diag)!=null&&m.height?t.diag.height+"cm":"—")+" / "+a((l=t.diag)!=null&&l.weight?t.diag.weight+"kg":"—")+" · "+a(((r=t.diag)==null?void 0:r.region)||"—"),1),e("div",null," 预约:"+a((g=t.apt)==null?void 0:g.appointment_date)+" "+a((u=t.apt)==null?void 0:u.appointment_time)+" · "+a(i(w)((f=t.apt)==null?void 0:f.period)),1),e("div",null,"医生:"+a(((h=t.apt)==null?void 0:h.doctor_name)||"—")+" 客服:"+a(((v=t.apt)==null?void 0:v.assistant_name)||"—"),1),e("div",null," 状态:"+a(((k=t.apt)==null?void 0:k.status_desc)||"—")+" · "+a((P=t.apt)!=null&&P.has_prescription?"已开方":"未开方"),1),(C=t.apt)!=null&&C.remark?(x(),B("div",G,"备注:"+a(t.apt.remark),1)):N("",!0)])])])}}}),F=V(S,[["__scopeId","data-v-1b0de09c"]]);export{F as default};
+import{m as I,f as p,a as w}from"./diag-display-DCz_VAqj.js";import{o as y,q as x,r as B,s as e,T as a,u as i,P as N}from"./.pnpm-BuKxIMgQ.js";import{_ as V}from"./index-BZAvl557.js";const b={class:"card patient-card"},q={class:"patient-hero"},D={class:"patient-name"},E={class:"patient-meta"},G={key:0},S=y({__name:"PatientInfoCard",props:{apt:{default:()=>({})},diag:{default:()=>({})}},setup(t){return(T,n)=>{var d,s,o,c,m,l,r,g,u,f,h,v,k,P,C;return x(),B("div",b,[n[0]||(n[0]=e("div",{class:"card-title"},"患者信息",-1)),e("div",q,[e("div",D,a(((d=t.apt)==null?void 0:d.patient_name)||"—"),1),e("div",E,[e("div",null,a(i(I)((s=t.apt)==null?void 0:s.patient_phone))+" · "+a(i(p)((o=t.diag)==null?void 0:o.gender))+" · "+a(((c=t.diag)==null?void 0:c.age)!=null?t.diag.age+"岁":"—"),1),e("div",null,a((m=t.diag)!=null&&m.height?t.diag.height+"cm":"—")+" / "+a((l=t.diag)!=null&&l.weight?t.diag.weight+"kg":"—")+" · "+a(((r=t.diag)==null?void 0:r.region)||"—"),1),e("div",null," 预约:"+a((g=t.apt)==null?void 0:g.appointment_date)+" "+a((u=t.apt)==null?void 0:u.appointment_time)+" · "+a(i(w)((f=t.apt)==null?void 0:f.period)),1),e("div",null,"医生:"+a(((h=t.apt)==null?void 0:h.doctor_name)||"—")+" 客服:"+a(((v=t.apt)==null?void 0:v.assistant_name)||"—"),1),e("div",null," 状态:"+a(((k=t.apt)==null?void 0:k.status_desc)||"—")+" · "+a((P=t.apt)!=null&&P.has_prescription?"已开方":"未开方"),1),(C=t.apt)!=null&&C.remark?(x(),B("div",G,"备注:"+a(t.apt.remark),1)):N("",!0)])])])}}}),F=V(S,[["__scopeId","data-v-1b0de09c"]]);export{F as default};
diff --git a/server/public/admin/assets/PatientOrderList-CTDKS20W.js b/server/public/admin/assets/PatientOrderList-CuVwKAbH.js
similarity index 92%
rename from server/public/admin/assets/PatientOrderList-CTDKS20W.js
rename to server/public/admin/assets/PatientOrderList-CuVwKAbH.js
index c25aefec1..8493c9270 100644
--- a/server/public/admin/assets/PatientOrderList-CTDKS20W.js
+++ b/server/public/admin/assets/PatientOrderList-CuVwKAbH.js
@@ -1 +1 @@
-import{o as G,R as H,be as Q,q as l,r as v,v as a,bB as X,F as Y,s as b,D as i,w as Z,u as d,ci as tt,a1 as et,ac as h,J as st,T as m,O as g,K as at,L as f,P as it,bj as ot,bk as lt,br as nt,bi as rt,C as dt,p as S,M as y,ba as ft}from"./.pnpm-BHOjf1ZS.js";import{_ as ut}from"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import{u as ct}from"./usePaging-oaNM6A9T.js";import{z as mt,ab as pt,av as _t}from"./tcm-BkYsBTA3.js";import vt from"./PrescriptionOrderDetailDrawer-C-APB0h9.js";import{j as V,_ as bt}from"./index-B31vLELt.js";import{B as gt,a as yt,f as wt}from"./prescription-order-utils-CXfs2Bra.js";const xt={class:"patient-order-list"},ht={key:0,class:"po-empty-tip"},St={key:0,class:"po-revisit-offset-bar mb-3"},kt={class:"po-revisit-offset-bar__main"},Nt={class:"text-xs text-gray-500 ml-2"},It={key:0},Dt={key:1,class:"text-gray-400"},Ot={class:"text-red-500 font-semibold"},Et={class:"flex justify-end mt-3"},Ct=G({__name:"PatientOrderList",props:{diagnosisId:{},patientId:{}},setup(E,{expose:F}){const r=E,k=S(()=>{const e=Number(r.patientId);return Number.isFinite(e)&&e>0?e:0}),N=S(()=>k.value>0),p=ft({}),{pager:u,getLists:I,resetPage:L}=ct({fetchFun:mt,params:p,size:10}),c=y(0),w=y(0),x=y(!1),C=y(!1),P=S(()=>Number(c.value)!==Number(w.value)),B=S(()=>{const e=Number(c.value),o=(Number.isFinite(e)?e:0)+1,_=["","一","二","三","四","五","六","七","八","九","十"];return o>=1&&o<=10?_[o]+"诊":`第${o}诊`}),z=()=>{Object.keys(p).forEach(e=>delete p[e]),r.diagnosisId>0&&(p.context_diagnosis_id=r.diagnosisId),N.value&&(p.patient_id=k.value),p.scene="diagnosis_edit"};async function q(){if(!(r.diagnosisId<=0)){C.value=!0;try{const e=await pt({id:r.diagnosisId}),t=(e==null?void 0:e.data)??e??{},o=Number(t.revisit_slot_start_offset),_=Number.isFinite(o)&&o>=0&&o<=20?o:0;c.value=_,w.value=_}catch{c.value=0,w.value=0}finally{C.value=!1}}}async function j(){if(r.diagnosisId<=0)return;const e=Number(c.value);if(!Number.isFinite(e)||e<0||e>20){V.msgWarning("起始偏移须在 0~20 之间");return}x.value=!0;try{await _t({id:r.diagnosisId,revisit_slot_start_offset:e}),w.value=e,V.msgSuccess("保存成功"),I()}catch{}finally{x.value=!1}}const R=y();function $(e){var t;(t=R.value)==null||t.open(e)}const A=e=>{const t=Number(e);return Number.isFinite(t)?t.toFixed(2):"0.00"};return H(()=>[r.diagnosisId,k.value],()=>{if(!N.value){u.lists=[],u.count=0;return}z(),q(),L()},{immediate:!0}),F({refresh:()=>I()}),(e,t)=>{const o=X,_=Z,U=et,J=st,T=at,n=lt,D=nt,K=ot,M=ut,O=Q("perms"),W=rt;return l(),v("div",xt,[N.value?(l(),v(Y,{key:1},[E.diagnosisId>0?(l(),v("div",St,[b("div",kt,[t[3]||(t[3]=b("span",{class:"text-sm text-gray-600"},"复诊统计起始偏移",-1)),a(U,{placement:"top"},{content:i(()=>[...t[2]||(t[2]=[b("div",{class:"max-w-xs leading-relaxed"}," 在实单诊次序号上叠加偏移量。设为 0(默认):第 1 笔实单计为一诊;设为 1:第 1 笔实单计为二诊;设为 2:第 1 笔实单计为三诊——若有 5 笔实单且偏移 2,则统计上相当于计至七诊(5+2)。 ",-1)])]),default:i(()=>[a(_,{class:"text-gray-400 align-middle ml-1"},{default:i(()=>[a(d(tt))]),_:1})]),_:1}),h(a(J,{modelValue:c.value,"onUpdate:modelValue":t[0]||(t[0]=s=>c.value=s),min:0,max:20,step:1,"controls-position":"right",class:"w-[120px] ml-3",disabled:x.value},null,8,["modelValue","disabled"]),[[O,["tcm.diagnosis/setRevisitSlotStartOffset"]]]),b("span",Nt," 第 1 笔实单计为"+m(B.value),1)]),h((l(),g(T,{type:"primary",size:"small",loading:x.value,disabled:!P.value,onClick:j},{default:i(()=>[...t[4]||(t[4]=[f(" 保存 ",-1)])]),_:1},8,["loading","disabled"])),[[O,["tcm.diagnosis/setRevisitSlotStartOffset"]]])])):it("",!0),h((l(),g(K,{data:d(u).lists,border:"",stripe:"","empty-text":"暂无业务订单"},{default:i(()=>[a(n,{label:"订单编号",prop:"order_no","min-width":"200","show-overflow-tooltip":""}),a(n,{label:"全局诊次",width:"96",align:"center"},{default:i(({row:s})=>[s.global_visit_seq?(l(),v("span",It,m(s.global_visit_seq)+"诊",1)):(l(),v("span",Dt,"—"))]),_:1}),a(n,{label:"计入统计",width:"96",align:"center"},{default:i(({row:s})=>[s.counts_for_revisit_rate?(l(),g(D,{key:0,type:"success",size:"small",effect:"plain"},{default:i(()=>[...t[5]||(t[5]=[f("是",-1)])]),_:1})):(l(),g(D,{key:1,type:"info",size:"small",effect:"plain"},{default:i(()=>[...t[6]||(t[6]=[f("否",-1)])]),_:1}))]),_:1}),a(n,{label:"金额",width:"120",align:"right"},{default:i(({row:s})=>[b("span",Ot,"¥"+m(A(s.amount)),1)]),_:1}),a(n,{label:"医生",prop:"doctor_name",width:"110","show-overflow-tooltip":""},{default:i(({row:s})=>[f(m(s.doctor_name||"—"),1)]),_:1}),a(n,{label:"医助",prop:"assistant_name",width:"110","show-overflow-tooltip":""},{default:i(({row:s})=>[f(m(s.assistant_name||"—"),1)]),_:1}),a(n,{label:"履约状态",width:"110"},{default:i(({row:s})=>[a(D,{type:d(gt)(s.fulfillment_status),size:"small",effect:"light"},{default:i(()=>[f(m(d(yt)(s.fulfillment_status)),1)]),_:2},1032,["type"])]),_:1}),a(n,{label:"创建时间","min-width":"170"},{default:i(({row:s})=>[f(m(d(wt)(s.create_time)),1)]),_:1}),a(n,{label:"操作",width:"100",fixed:"right"},{default:i(({row:s})=>[h((l(),g(T,{type:"primary",link:"",onClick:Rt=>$(s.id)},{default:i(()=>[...t[7]||(t[7]=[f("查看详情",-1)])]),_:1},8,["onClick"])),[[O,["tcm.prescriptionOrder/detail"]]])]),_:1})]),_:1},8,["data"])),[[W,d(u).loading]]),b("div",Et,[a(M,{modelValue:d(u),"onUpdate:modelValue":t[1]||(t[1]=s=>dt(u)?u.value=s:null),onChange:d(I)},null,8,["modelValue","onChange"])])],64)):(l(),v("div",ht,[a(o,{description:"当前诊单未携带患者ID,无法列出业务订单"})])),a(vt,{ref_key:"detailDrawerRef",ref:R,readonly:"","append-to-body":""},null,512)])}}}),qt=bt(Ct,[["__scopeId","data-v-fe72f000"]]);export{qt as default};
+import{o as G,R as H,bn as Q,q as l,r as v,v as a,bB as X,F as Y,s as b,D as i,w as Z,u as d,ci as tt,a1 as et,ac as h,J as st,T as m,O as g,K as at,L as f,P as it,bi as ot,bj as lt,bk as nt,bl as rt,C as dt,p as S,M as y,ba as ft}from"./.pnpm-BuKxIMgQ.js";import{_ as ut}from"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import{u as ct}from"./usePaging-DNtxCypz.js";import{z as mt,ab as pt,av as _t}from"./tcm-BZvWmp4G.js";import vt from"./PrescriptionOrderDetailDrawer-BaDbxBr8.js";import{j as V,_ as bt}from"./index-BZAvl557.js";import{B as gt,a as yt,f as wt}from"./prescription-order-utils-CXfs2Bra.js";const xt={class:"patient-order-list"},ht={key:0,class:"po-empty-tip"},St={key:0,class:"po-revisit-offset-bar mb-3"},kt={class:"po-revisit-offset-bar__main"},Nt={class:"text-xs text-gray-500 ml-2"},It={key:0},Dt={key:1,class:"text-gray-400"},Ot={class:"text-red-500 font-semibold"},Et={class:"flex justify-end mt-3"},Ct=G({__name:"PatientOrderList",props:{diagnosisId:{},patientId:{}},setup(E,{expose:F}){const r=E,k=S(()=>{const e=Number(r.patientId);return Number.isFinite(e)&&e>0?e:0}),N=S(()=>k.value>0),p=ft({}),{pager:u,getLists:I,resetPage:L}=ct({fetchFun:mt,params:p,size:10}),c=y(0),w=y(0),x=y(!1),C=y(!1),P=S(()=>Number(c.value)!==Number(w.value)),B=S(()=>{const e=Number(c.value),o=(Number.isFinite(e)?e:0)+1,_=["","一","二","三","四","五","六","七","八","九","十"];return o>=1&&o<=10?_[o]+"诊":`第${o}诊`}),z=()=>{Object.keys(p).forEach(e=>delete p[e]),r.diagnosisId>0&&(p.context_diagnosis_id=r.diagnosisId),N.value&&(p.patient_id=k.value),p.scene="diagnosis_edit"};async function q(){if(!(r.diagnosisId<=0)){C.value=!0;try{const e=await pt({id:r.diagnosisId}),t=(e==null?void 0:e.data)??e??{},o=Number(t.revisit_slot_start_offset),_=Number.isFinite(o)&&o>=0&&o<=20?o:0;c.value=_,w.value=_}catch{c.value=0,w.value=0}finally{C.value=!1}}}async function j(){if(r.diagnosisId<=0)return;const e=Number(c.value);if(!Number.isFinite(e)||e<0||e>20){V.msgWarning("起始偏移须在 0~20 之间");return}x.value=!0;try{await _t({id:r.diagnosisId,revisit_slot_start_offset:e}),w.value=e,V.msgSuccess("保存成功"),I()}catch{}finally{x.value=!1}}const R=y();function $(e){var t;(t=R.value)==null||t.open(e)}const A=e=>{const t=Number(e);return Number.isFinite(t)?t.toFixed(2):"0.00"};return H(()=>[r.diagnosisId,k.value],()=>{if(!N.value){u.lists=[],u.count=0;return}z(),q(),L()},{immediate:!0}),F({refresh:()=>I()}),(e,t)=>{const o=X,_=Z,U=et,J=st,T=at,n=lt,D=nt,K=ot,M=ut,O=Q("perms"),W=rt;return l(),v("div",xt,[N.value?(l(),v(Y,{key:1},[E.diagnosisId>0?(l(),v("div",St,[b("div",kt,[t[3]||(t[3]=b("span",{class:"text-sm text-gray-600"},"复诊统计起始偏移",-1)),a(U,{placement:"top"},{content:i(()=>[...t[2]||(t[2]=[b("div",{class:"max-w-xs leading-relaxed"}," 在实单诊次序号上叠加偏移量。设为 0(默认):第 1 笔实单计为一诊;设为 1:第 1 笔实单计为二诊;设为 2:第 1 笔实单计为三诊——若有 5 笔实单且偏移 2,则统计上相当于计至七诊(5+2)。 ",-1)])]),default:i(()=>[a(_,{class:"text-gray-400 align-middle ml-1"},{default:i(()=>[a(d(tt))]),_:1})]),_:1}),h(a(J,{modelValue:c.value,"onUpdate:modelValue":t[0]||(t[0]=s=>c.value=s),min:0,max:20,step:1,"controls-position":"right",class:"w-[120px] ml-3",disabled:x.value},null,8,["modelValue","disabled"]),[[O,["tcm.diagnosis/setRevisitSlotStartOffset"]]]),b("span",Nt," 第 1 笔实单计为"+m(B.value),1)]),h((l(),g(T,{type:"primary",size:"small",loading:x.value,disabled:!P.value,onClick:j},{default:i(()=>[...t[4]||(t[4]=[f(" 保存 ",-1)])]),_:1},8,["loading","disabled"])),[[O,["tcm.diagnosis/setRevisitSlotStartOffset"]]])])):it("",!0),h((l(),g(K,{data:d(u).lists,border:"",stripe:"","empty-text":"暂无业务订单"},{default:i(()=>[a(n,{label:"订单编号",prop:"order_no","min-width":"200","show-overflow-tooltip":""}),a(n,{label:"全局诊次",width:"96",align:"center"},{default:i(({row:s})=>[s.global_visit_seq?(l(),v("span",It,m(s.global_visit_seq)+"诊",1)):(l(),v("span",Dt,"—"))]),_:1}),a(n,{label:"计入统计",width:"96",align:"center"},{default:i(({row:s})=>[s.counts_for_revisit_rate?(l(),g(D,{key:0,type:"success",size:"small",effect:"plain"},{default:i(()=>[...t[5]||(t[5]=[f("是",-1)])]),_:1})):(l(),g(D,{key:1,type:"info",size:"small",effect:"plain"},{default:i(()=>[...t[6]||(t[6]=[f("否",-1)])]),_:1}))]),_:1}),a(n,{label:"金额",width:"120",align:"right"},{default:i(({row:s})=>[b("span",Ot,"¥"+m(A(s.amount)),1)]),_:1}),a(n,{label:"医生",prop:"doctor_name",width:"110","show-overflow-tooltip":""},{default:i(({row:s})=>[f(m(s.doctor_name||"—"),1)]),_:1}),a(n,{label:"医助",prop:"assistant_name",width:"110","show-overflow-tooltip":""},{default:i(({row:s})=>[f(m(s.assistant_name||"—"),1)]),_:1}),a(n,{label:"履约状态",width:"110"},{default:i(({row:s})=>[a(D,{type:d(gt)(s.fulfillment_status),size:"small",effect:"light"},{default:i(()=>[f(m(d(yt)(s.fulfillment_status)),1)]),_:2},1032,["type"])]),_:1}),a(n,{label:"创建时间","min-width":"170"},{default:i(({row:s})=>[f(m(d(wt)(s.create_time)),1)]),_:1}),a(n,{label:"操作",width:"100",fixed:"right"},{default:i(({row:s})=>[h((l(),g(T,{type:"primary",link:"",onClick:Rt=>$(s.id)},{default:i(()=>[...t[7]||(t[7]=[f("查看详情",-1)])]),_:1},8,["onClick"])),[[O,["tcm.prescriptionOrder/detail"]]])]),_:1})]),_:1},8,["data"])),[[W,d(u).loading]]),b("div",Et,[a(M,{modelValue:d(u),"onUpdate:modelValue":t[1]||(t[1]=s=>dt(u)?u.value=s:null),onChange:d(I)},null,8,["modelValue","onChange"])])],64)):(l(),v("div",ht,[a(o,{description:"当前诊单未携带患者ID,无法列出业务订单"})])),a(vt,{ref_key:"detailDrawerRef",ref:R,readonly:"","append-to-body":""},null,512)])}}}),qt=bt(Ct,[["__scopeId","data-v-fe72f000"]]);export{qt as default};
diff --git a/server/public/admin/assets/PrescriptionAiBatchGenerateDialog-M_9qGwF4.js b/server/public/admin/assets/PrescriptionAiBatchGenerateDialog-BwZP3zkC.js
similarity index 96%
rename from server/public/admin/assets/PrescriptionAiBatchGenerateDialog-M_9qGwF4.js
rename to server/public/admin/assets/PrescriptionAiBatchGenerateDialog-BwZP3zkC.js
index 7f6402c7a..b380c0cdb 100644
--- a/server/public/admin/assets/PrescriptionAiBatchGenerateDialog-M_9qGwF4.js
+++ b/server/public/admin/assets/PrescriptionAiBatchGenerateDialog-BwZP3zkC.js
@@ -1 +1 @@
-import{o as de,q as r,O as g,D as u,s as l,v as c,bh as ce,u as t,r as h,bZ as pe,bB as ve,T as i,K as fe,L as v,F as me,br as ge,P as C,bX as _e,bj as ye,bk as he,C as be,bt as ke,M as d,p as J,a8 as we}from"./.pnpm-BHOjf1ZS.js";import{a as Ce,b as Ee}from"./tcm-BkYsBTA3.js";import{j as L,_ as Me}from"./index-B31vLELt.js";const $e={class:"batch-dialog-body"},xe={key:0,class:"loading-state"},Ae={key:1,class:"load-error-state"},Be={class:"state-description"},Ie={class:"overview-panel"},Re={class:"overview-meta"},Se={key:0,class:"refresh-error"},Te={key:2,class:"progress-panel"},ze={class:"progress-heading"},Ne={key:0,class:"current-prescription"},Ge={class:"counter-grid"},Le={class:"counter-item counter-processed"},Ve={class:"counter-item counter-success"},qe={class:"counter-item counter-partial"},Pe={class:"counter-item counter-failed"},De={key:3,class:"issues-panel"},Fe={class:"section-heading"},je={class:"issue-name"},We={class:"state-description"},He={key:5,class:"pending-panel"},Ke={class:"section-heading"},Oe={class:"pending-count"},Ue={class:"dialog-footer"},Xe={key:0,class:"footer-tip"},Ze={key:1},B=500,Je=de({__name:"PrescriptionAiBatchGenerateDialog",emits:["changed"],setup(Qe,{expose:Q,emit:Y}){const ee=Y,E=d(!1),z=d(0),I=d(0),N=d(!1),R=d(""),S=d(""),f=d([]),M=d(0),V=d(B),F=d(!1),p=d(!1),_=d(!1),j=d("idle"),y=d(0),w=d(0),W=d(0),q=d(0),G=d(0),b=d(null),$=d([]),P=we(null),te=J(()=>y.value?Math.min(100,Math.round(w.value/y.value*100)):0),se=J(()=>{const s=Math.max(0,M.value-f.value.length);return s>0?`待生成数量超过单次上限,本次最多处理 ${f.value.length} 份;完成后可再次继续处理其余约 ${s} 份。`:`后端标记清单已截断,本次最多处理 ${V.value} 份;完成后可再次继续。`}),K=()=>{_.value=!1,j.value="idle",y.value=0,w.value=0,W.value=0,q.value=0,G.value=0,b.value=null,$.value=[]},O=()=>{N.value=!1,R.value="",S.value="",f.value=[],M.value=0,V.value=B,F.value=!1,K()},H=s=>{if(typeof s=="string"&&s.trim())return s;if(s&&typeof s=="object"){const e=s,n=e.response,a=n==null?void 0:n.data,o=e.msg||e.message||e.error||(a==null?void 0:a.msg)||(a==null?void 0:a.message);if(typeof o=="string"&&o.trim())return o}return"请求失败,请稍后重试"},k=s=>s===z.value&&E.value,D=async(s=z.value,e={})=>{const n=++I.value;e.silent||(N.value=!0,R.value="");try{const a=await Ce({limit:B});if(!k(s)||n!==I.value)return;const o=Array.isArray(a.items)?a.items.slice(0,B):[];f.value=o,M.value=Math.max(o.length,Number(a.total||0)),V.value=Math.min(B,Math.max(1,Number(a.limit||B))),F.value=a.truncated===!0||M.value>o.length,S.value=""}catch(a){if(!k(s)||n!==I.value)return;e.silent?S.value=`本轮已结束,但最新待生成清单读取失败:${H(a)}`:R.value=H(a)}finally{k(s)&&n===I.value&&(N.value=!1)}},U=s=>(s.results||[]).filter(n=>n.status==="error").map(n=>`${n.model_label||n.model_name}: ${n.error_message||"生成失败"}`).join(";")||"模型未返回完整报告",le=(s,e)=>{const n=Number(e.success_count||0),a=Number(e.failure_count||0),o=e.status==="partial"||e.partial===!0||n>0&&a>0,T=e.status==="error"||a>0&&n===0;return o?(q.value+=1,$.value.push({id:s.id,prescription_name:s.prescription_name||`处方 #${s.id}`,status:"partial",message:U(e)}),!0):T?(G.value+=1,$.value.push({id:s.id,prescription_name:s.prescription_name||`处方 #${s.id}`,status:"failed",message:U(e)}),!1):(W.value+=1,!0)},ae=(s,e)=>{G.value+=1,$.value.push({id:s.id,prescription_name:s.prescription_name||`处方 #${s.id}`,status:"failed",message:H(e)})},X=()=>{!p.value||_.value||(_.value=!0)},ne=async()=>{if(p.value||!f.value.length)return;const s=z.value,e=f.value.slice(0,B);try{await L.confirm(`确定按顺序为 ${e.length} 份处方生成 AI 报告吗?每份会调用双模型,过程中可请求停止。`)}catch{return}if(!k(s)||p.value)return;K(),y.value=e.length,p.value=!0,S.value="";const n=new Set;try{for(const a of e){if(!k(s)||_.value)break;b.value=a;try{const o=await Ee({id:a.id});if(!k(s))return;le(a,o)&&n.add(a.id)}catch(o){if(!k(s))return;ae(a,o)}w.value+=1,b.value=null}}finally{if(!k(s))return;const a=_.value&&w.value!n.has(T.id)),M.value=Math.max(0,M.value-n.size)),w.value>0&&ee("changed");const o=P.value;if(P.value=null,o){o();return}if(await D(s,{silent:!0}),!k(s))return;a?L.msgWarning(`已停止,本轮共处理 ${w.value} 份处方`):G.value>0||q.value>0?L.msgWarning("批量生成已完成,请查看失败与部分成功明细"):L.msgSuccess("批量生成报告完成")}},oe=s=>{if(!p.value){s();return}X(),P.value=s,L.msgWarning("已请求停止,当前处方完成后将关闭窗口")},ie=()=>{++z.value,++I.value,P.value=null,p.value=!1,O()};return Q({open:()=>{if(p.value){E.value=!0;return}const s=++z.value;++I.value,O(),E.value=!0,D(s)}}),(s,e)=>{const n=ce,a=pe,o=fe,T=ve,x=ge,re=_e,A=he,Z=ye,ue=ke;return r(),g(ue,{modelValue:t(E),"onUpdate:modelValue":e[3]||(e[3]=m=>be(E)?E.value=m:null),class:"prescription-ai-batch-dialog",width:"min(820px, calc(100vw - 32px))",top:"6vh",title:"批量生成处方 AI 报告","close-on-click-modal":!1,"destroy-on-close":"","before-close":oe,onClosed:ie},{footer:u(()=>[l("div",Ue,[t(p)?(r(),h("span",Xe,"生成请求不会自动重试,也不会并发执行。")):(r(),h("span",Ze)),l("div",null,[t(p)?C("",!0):(r(),g(o,{key:0,onClick:e[2]||(e[2]=m=>E.value=!1)},{default:u(()=>[...e[20]||(e[20]=[v("关闭",-1)])]),_:1})),t(p)?(r(),g(o,{key:1,type:"warning",plain:"",disabled:t(_),onClick:X},{default:u(()=>[v(i(t(_)?"正在停止…":"停止"),1)]),_:1},8,["disabled"])):(r(),g(o,{key:2,type:"primary",disabled:t(N)||!!t(R)||!t(f).length,onClick:ne},{default:u(()=>[v(i(t(y)>0?"继续生成剩余报告":"开始批量生成"),1)]),_:1},8,["disabled"]))])])]),default:u(()=>[l("div",$e,[c(n,{type:"info",closable:!1,"show-icon":"",title:"仅统计完全没有任何 AI 报告的处方;已有报告不会被本批次覆盖。"}),t(N)?(r(),h("div",xe,[c(a,{rows:5,animated:""})])):t(R)?(r(),h("div",Ae,[c(T,{description:"待生成清单加载失败","image-size":72},{default:u(()=>[l("p",Be,i(t(R)),1),c(o,{type:"primary",plain:"",onClick:e[0]||(e[0]=m=>D())},{default:u(()=>[...e[4]||(e[4]=[v("重新加载",-1)])]),_:1})]),_:1})])):(r(),h(me,{key:2},[l("section",Ie,[l("div",null,[e[5]||(e[5]=l("span",{class:"overview-label"},"当前完全缺失报告",-1)),l("strong",null,i(t(M)),1),e[6]||(e[6]=l("span",{class:"overview-unit"},"份处方",-1))]),l("div",Re,[v(" 本次载入 "+i(t(f).length)+" 份 ",1),c(x,{size:"small",type:"info",effect:"plain"},{default:u(()=>[v("上限 "+i(t(V)),1)]),_:1})])]),t(S)?(r(),h("div",Se,[c(n,{type:"error",closable:!1,"show-icon":"",title:t(S)},null,8,["title"]),c(o,{type:"primary",plain:"",onClick:e[1]||(e[1]=m=>D())},{default:u(()=>[...e[7]||(e[7]=[v("重新读取清单",-1)])]),_:1})])):C("",!0),t(F)?(r(),g(n,{key:1,class:"truncated-alert",type:"warning",closable:!1,"show-icon":"",title:t(se)},null,8,["title"])):C("",!0),t(p)||t(y)>0?(r(),h("section",Te,[l("div",ze,[l("div",null,[e[8]||(e[8]=l("span",{class:"section-kicker"},"本轮进度",-1)),l("strong",null,i(t(w))+" / "+i(t(y)),1)]),t(p)&&!t(_)?(r(),g(x,{key:0,type:"primary"},{default:u(()=>[...e[9]||(e[9]=[v("顺序生成中",-1)])]),_:1})):t(p)&&t(_)?(r(),g(x,{key:1,type:"warning"},{default:u(()=>[...e[10]||(e[10]=[v("等待当前请求完成",-1)])]),_:1})):t(j)==="stopped"?(r(),g(x,{key:2,type:"warning"},{default:u(()=>[...e[11]||(e[11]=[v("已停止",-1)])]),_:1})):(r(),g(x,{key:3,type:"success"},{default:u(()=>[...e[12]||(e[12]=[v("本轮完成",-1)])]),_:1}))]),c(re,{percentage:t(te),"stroke-width":10},null,8,["percentage"]),t(b)?(r(),h("div",Ne,[e[13]||(e[13]=l("span",null,"当前处方",-1)),l("strong",null,i(t(b).prescription_name||`处方 #${t(b).id}`),1),l("small",null,"#"+i(t(b).id)+" · "+i(t(b).formula_type||"未分类"),1)])):C("",!0),l("div",Ge,[l("div",Le,[e[14]||(e[14]=l("span",null,"已处理",-1)),l("strong",null,i(t(w)),1)]),l("div",Ve,[e[15]||(e[15]=l("span",null,"成功",-1)),l("strong",null,i(t(W)),1)]),l("div",qe,[e[16]||(e[16]=l("span",null,"部分成功",-1)),l("strong",null,i(t(q)),1)]),l("div",Pe,[e[17]||(e[17]=l("span",null,"失败",-1)),l("strong",null,i(t(G)),1)])]),t(_)&&t(p)?(r(),g(n,{key:1,class:"stop-alert",type:"warning",closable:!1,"show-icon":"",title:"已请求停止;当前处方生成完成后,不会继续发起下一条请求。"})):C("",!0)])):C("",!0),t($).length?(r(),h("section",De,[l("div",Fe,[e[18]||(e[18]=l("div",null,[l("span",{class:"section-kicker"},"失败清单"),l("strong",null,"失败与部分成功明细")],-1)),c(x,{type:"danger",effect:"plain"},{default:u(()=>[v(i(t($).length)+" 条",1)]),_:1})]),c(Z,{data:t($),"max-height":"240",size:"small"},{default:u(()=>[c(A,{label:"处方","min-width":"180"},{default:u(({row:m})=>[l("div",je,i(m.prescription_name),1),l("small",null,"#"+i(m.id),1)]),_:1}),c(A,{label:"结果",width:"100"},{default:u(({row:m})=>[c(x,{size:"small",type:m.status==="partial"?"warning":"danger"},{default:u(()=>[v(i(m.status==="partial"?"部分成功":"失败"),1)]),_:2},1032,["type"])]),_:1}),c(A,{label:"原因","min-width":"300","show-overflow-tooltip":"",prop:"message"})]),_:1},8,["data"])])):C("",!0),!t(f).length&&!t(p)?(r(),g(T,{key:4,description:t(y)>0?"当前范围已无待生成处方":"暂无完全缺失 AI 报告的处方","image-size":76},{default:u(()=>[l("p",We,i(t(y)>0?"已重新读取数据库中的最新待生成清单。":"所有可见处方均已有至少一份持久化报告。"),1)]),_:1},8,["description"])):t(p)?C("",!0):(r(),h("section",He,[l("div",Ke,[e[19]||(e[19]=l("div",null,[l("span",{class:"section-kicker"},"待生成清单"),l("strong",null,"本次将按以下顺序逐条处理")],-1)),l("span",Oe,i(t(f).length)+" 份",1)]),c(Z,{data:t(f),"max-height":"280",size:"small"},{default:u(()=>[c(A,{label:"ID",prop:"id",width:"80"}),c(A,{label:"处方名称",prop:"prescription_name","min-width":"220","show-overflow-tooltip":""}),c(A,{label:"类型",prop:"formula_type",width:"100"}),c(A,{label:"药材数",width:"100",align:"right"},{default:u(({row:m})=>[v(i(m.herb_count)+" 味",1)]),_:1})]),_:1},8,["data"])]))],64))])]),_:1},8,["modelValue"])}}}),lt=Me(Je,[["__scopeId","data-v-e1699253"]]);export{lt as default};
+import{o as de,q as r,O as g,D as u,s as l,v as c,bm as ce,u as t,r as h,bZ as pe,bB as ve,T as i,K as fe,L as v,F as me,bk as ge,P as C,bX as _e,bi as ye,bj as he,C as be,bt as ke,M as d,p as J,a8 as we}from"./.pnpm-BuKxIMgQ.js";import{a as Ce,b as Ee}from"./tcm-BZvWmp4G.js";import{j as L,_ as Me}from"./index-BZAvl557.js";const $e={class:"batch-dialog-body"},xe={key:0,class:"loading-state"},Ae={key:1,class:"load-error-state"},Be={class:"state-description"},Ie={class:"overview-panel"},Re={class:"overview-meta"},Se={key:0,class:"refresh-error"},Te={key:2,class:"progress-panel"},ze={class:"progress-heading"},Ne={key:0,class:"current-prescription"},Ge={class:"counter-grid"},Le={class:"counter-item counter-processed"},Ve={class:"counter-item counter-success"},qe={class:"counter-item counter-partial"},Pe={class:"counter-item counter-failed"},De={key:3,class:"issues-panel"},Fe={class:"section-heading"},je={class:"issue-name"},We={class:"state-description"},He={key:5,class:"pending-panel"},Ke={class:"section-heading"},Oe={class:"pending-count"},Ue={class:"dialog-footer"},Xe={key:0,class:"footer-tip"},Ze={key:1},B=500,Je=de({__name:"PrescriptionAiBatchGenerateDialog",emits:["changed"],setup(Qe,{expose:Q,emit:Y}){const ee=Y,E=d(!1),z=d(0),I=d(0),N=d(!1),R=d(""),S=d(""),f=d([]),M=d(0),V=d(B),F=d(!1),p=d(!1),_=d(!1),j=d("idle"),y=d(0),w=d(0),W=d(0),q=d(0),G=d(0),b=d(null),$=d([]),P=we(null),te=J(()=>y.value?Math.min(100,Math.round(w.value/y.value*100)):0),se=J(()=>{const s=Math.max(0,M.value-f.value.length);return s>0?`待生成数量超过单次上限,本次最多处理 ${f.value.length} 份;完成后可再次继续处理其余约 ${s} 份。`:`后端标记清单已截断,本次最多处理 ${V.value} 份;完成后可再次继续。`}),K=()=>{_.value=!1,j.value="idle",y.value=0,w.value=0,W.value=0,q.value=0,G.value=0,b.value=null,$.value=[]},O=()=>{N.value=!1,R.value="",S.value="",f.value=[],M.value=0,V.value=B,F.value=!1,K()},H=s=>{if(typeof s=="string"&&s.trim())return s;if(s&&typeof s=="object"){const e=s,n=e.response,a=n==null?void 0:n.data,o=e.msg||e.message||e.error||(a==null?void 0:a.msg)||(a==null?void 0:a.message);if(typeof o=="string"&&o.trim())return o}return"请求失败,请稍后重试"},k=s=>s===z.value&&E.value,D=async(s=z.value,e={})=>{const n=++I.value;e.silent||(N.value=!0,R.value="");try{const a=await Ce({limit:B});if(!k(s)||n!==I.value)return;const o=Array.isArray(a.items)?a.items.slice(0,B):[];f.value=o,M.value=Math.max(o.length,Number(a.total||0)),V.value=Math.min(B,Math.max(1,Number(a.limit||B))),F.value=a.truncated===!0||M.value>o.length,S.value=""}catch(a){if(!k(s)||n!==I.value)return;e.silent?S.value=`本轮已结束,但最新待生成清单读取失败:${H(a)}`:R.value=H(a)}finally{k(s)&&n===I.value&&(N.value=!1)}},U=s=>(s.results||[]).filter(n=>n.status==="error").map(n=>`${n.model_label||n.model_name}: ${n.error_message||"生成失败"}`).join(";")||"模型未返回完整报告",le=(s,e)=>{const n=Number(e.success_count||0),a=Number(e.failure_count||0),o=e.status==="partial"||e.partial===!0||n>0&&a>0,T=e.status==="error"||a>0&&n===0;return o?(q.value+=1,$.value.push({id:s.id,prescription_name:s.prescription_name||`处方 #${s.id}`,status:"partial",message:U(e)}),!0):T?(G.value+=1,$.value.push({id:s.id,prescription_name:s.prescription_name||`处方 #${s.id}`,status:"failed",message:U(e)}),!1):(W.value+=1,!0)},ae=(s,e)=>{G.value+=1,$.value.push({id:s.id,prescription_name:s.prescription_name||`处方 #${s.id}`,status:"failed",message:H(e)})},X=()=>{!p.value||_.value||(_.value=!0)},ne=async()=>{if(p.value||!f.value.length)return;const s=z.value,e=f.value.slice(0,B);try{await L.confirm(`确定按顺序为 ${e.length} 份处方生成 AI 报告吗?每份会调用双模型,过程中可请求停止。`)}catch{return}if(!k(s)||p.value)return;K(),y.value=e.length,p.value=!0,S.value="";const n=new Set;try{for(const a of e){if(!k(s)||_.value)break;b.value=a;try{const o=await Ee({id:a.id});if(!k(s))return;le(a,o)&&n.add(a.id)}catch(o){if(!k(s))return;ae(a,o)}w.value+=1,b.value=null}}finally{if(!k(s))return;const a=_.value&&w.value!n.has(T.id)),M.value=Math.max(0,M.value-n.size)),w.value>0&&ee("changed");const o=P.value;if(P.value=null,o){o();return}if(await D(s,{silent:!0}),!k(s))return;a?L.msgWarning(`已停止,本轮共处理 ${w.value} 份处方`):G.value>0||q.value>0?L.msgWarning("批量生成已完成,请查看失败与部分成功明细"):L.msgSuccess("批量生成报告完成")}},oe=s=>{if(!p.value){s();return}X(),P.value=s,L.msgWarning("已请求停止,当前处方完成后将关闭窗口")},ie=()=>{++z.value,++I.value,P.value=null,p.value=!1,O()};return Q({open:()=>{if(p.value){E.value=!0;return}const s=++z.value;++I.value,O(),E.value=!0,D(s)}}),(s,e)=>{const n=ce,a=pe,o=fe,T=ve,x=ge,re=_e,A=he,Z=ye,ue=ke;return r(),g(ue,{modelValue:t(E),"onUpdate:modelValue":e[3]||(e[3]=m=>be(E)?E.value=m:null),class:"prescription-ai-batch-dialog",width:"min(820px, calc(100vw - 32px))",top:"6vh",title:"批量生成处方 AI 报告","close-on-click-modal":!1,"destroy-on-close":"","before-close":oe,onClosed:ie},{footer:u(()=>[l("div",Ue,[t(p)?(r(),h("span",Xe,"生成请求不会自动重试,也不会并发执行。")):(r(),h("span",Ze)),l("div",null,[t(p)?C("",!0):(r(),g(o,{key:0,onClick:e[2]||(e[2]=m=>E.value=!1)},{default:u(()=>[...e[20]||(e[20]=[v("关闭",-1)])]),_:1})),t(p)?(r(),g(o,{key:1,type:"warning",plain:"",disabled:t(_),onClick:X},{default:u(()=>[v(i(t(_)?"正在停止…":"停止"),1)]),_:1},8,["disabled"])):(r(),g(o,{key:2,type:"primary",disabled:t(N)||!!t(R)||!t(f).length,onClick:ne},{default:u(()=>[v(i(t(y)>0?"继续生成剩余报告":"开始批量生成"),1)]),_:1},8,["disabled"]))])])]),default:u(()=>[l("div",$e,[c(n,{type:"info",closable:!1,"show-icon":"",title:"仅统计完全没有任何 AI 报告的处方;已有报告不会被本批次覆盖。"}),t(N)?(r(),h("div",xe,[c(a,{rows:5,animated:""})])):t(R)?(r(),h("div",Ae,[c(T,{description:"待生成清单加载失败","image-size":72},{default:u(()=>[l("p",Be,i(t(R)),1),c(o,{type:"primary",plain:"",onClick:e[0]||(e[0]=m=>D())},{default:u(()=>[...e[4]||(e[4]=[v("重新加载",-1)])]),_:1})]),_:1})])):(r(),h(me,{key:2},[l("section",Ie,[l("div",null,[e[5]||(e[5]=l("span",{class:"overview-label"},"当前完全缺失报告",-1)),l("strong",null,i(t(M)),1),e[6]||(e[6]=l("span",{class:"overview-unit"},"份处方",-1))]),l("div",Re,[v(" 本次载入 "+i(t(f).length)+" 份 ",1),c(x,{size:"small",type:"info",effect:"plain"},{default:u(()=>[v("上限 "+i(t(V)),1)]),_:1})])]),t(S)?(r(),h("div",Se,[c(n,{type:"error",closable:!1,"show-icon":"",title:t(S)},null,8,["title"]),c(o,{type:"primary",plain:"",onClick:e[1]||(e[1]=m=>D())},{default:u(()=>[...e[7]||(e[7]=[v("重新读取清单",-1)])]),_:1})])):C("",!0),t(F)?(r(),g(n,{key:1,class:"truncated-alert",type:"warning",closable:!1,"show-icon":"",title:t(se)},null,8,["title"])):C("",!0),t(p)||t(y)>0?(r(),h("section",Te,[l("div",ze,[l("div",null,[e[8]||(e[8]=l("span",{class:"section-kicker"},"本轮进度",-1)),l("strong",null,i(t(w))+" / "+i(t(y)),1)]),t(p)&&!t(_)?(r(),g(x,{key:0,type:"primary"},{default:u(()=>[...e[9]||(e[9]=[v("顺序生成中",-1)])]),_:1})):t(p)&&t(_)?(r(),g(x,{key:1,type:"warning"},{default:u(()=>[...e[10]||(e[10]=[v("等待当前请求完成",-1)])]),_:1})):t(j)==="stopped"?(r(),g(x,{key:2,type:"warning"},{default:u(()=>[...e[11]||(e[11]=[v("已停止",-1)])]),_:1})):(r(),g(x,{key:3,type:"success"},{default:u(()=>[...e[12]||(e[12]=[v("本轮完成",-1)])]),_:1}))]),c(re,{percentage:t(te),"stroke-width":10},null,8,["percentage"]),t(b)?(r(),h("div",Ne,[e[13]||(e[13]=l("span",null,"当前处方",-1)),l("strong",null,i(t(b).prescription_name||`处方 #${t(b).id}`),1),l("small",null,"#"+i(t(b).id)+" · "+i(t(b).formula_type||"未分类"),1)])):C("",!0),l("div",Ge,[l("div",Le,[e[14]||(e[14]=l("span",null,"已处理",-1)),l("strong",null,i(t(w)),1)]),l("div",Ve,[e[15]||(e[15]=l("span",null,"成功",-1)),l("strong",null,i(t(W)),1)]),l("div",qe,[e[16]||(e[16]=l("span",null,"部分成功",-1)),l("strong",null,i(t(q)),1)]),l("div",Pe,[e[17]||(e[17]=l("span",null,"失败",-1)),l("strong",null,i(t(G)),1)])]),t(_)&&t(p)?(r(),g(n,{key:1,class:"stop-alert",type:"warning",closable:!1,"show-icon":"",title:"已请求停止;当前处方生成完成后,不会继续发起下一条请求。"})):C("",!0)])):C("",!0),t($).length?(r(),h("section",De,[l("div",Fe,[e[18]||(e[18]=l("div",null,[l("span",{class:"section-kicker"},"失败清单"),l("strong",null,"失败与部分成功明细")],-1)),c(x,{type:"danger",effect:"plain"},{default:u(()=>[v(i(t($).length)+" 条",1)]),_:1})]),c(Z,{data:t($),"max-height":"240",size:"small"},{default:u(()=>[c(A,{label:"处方","min-width":"180"},{default:u(({row:m})=>[l("div",je,i(m.prescription_name),1),l("small",null,"#"+i(m.id),1)]),_:1}),c(A,{label:"结果",width:"100"},{default:u(({row:m})=>[c(x,{size:"small",type:m.status==="partial"?"warning":"danger"},{default:u(()=>[v(i(m.status==="partial"?"部分成功":"失败"),1)]),_:2},1032,["type"])]),_:1}),c(A,{label:"原因","min-width":"300","show-overflow-tooltip":"",prop:"message"})]),_:1},8,["data"])])):C("",!0),!t(f).length&&!t(p)?(r(),g(T,{key:4,description:t(y)>0?"当前范围已无待生成处方":"暂无完全缺失 AI 报告的处方","image-size":76},{default:u(()=>[l("p",We,i(t(y)>0?"已重新读取数据库中的最新待生成清单。":"所有可见处方均已有至少一份持久化报告。"),1)]),_:1},8,["description"])):t(p)?C("",!0):(r(),h("section",He,[l("div",Ke,[e[19]||(e[19]=l("div",null,[l("span",{class:"section-kicker"},"待生成清单"),l("strong",null,"本次将按以下顺序逐条处理")],-1)),l("span",Oe,i(t(f).length)+" 份",1)]),c(Z,{data:t(f),"max-height":"280",size:"small"},{default:u(()=>[c(A,{label:"ID",prop:"id",width:"80"}),c(A,{label:"处方名称",prop:"prescription_name","min-width":"220","show-overflow-tooltip":""}),c(A,{label:"类型",prop:"formula_type",width:"100"}),c(A,{label:"药材数",width:"100",align:"right"},{default:u(({row:m})=>[v(i(m.herb_count)+" 味",1)]),_:1})]),_:1},8,["data"])]))],64))])]),_:1},8,["modelValue"])}}}),lt=Me(Je,[["__scopeId","data-v-e1699253"]]);export{lt as default};
diff --git a/server/public/admin/assets/PrescriptionAiReportDialog-DbiIi_rL.js b/server/public/admin/assets/PrescriptionAiReportDialog-BPrzKJ6c.js
similarity index 98%
rename from server/public/admin/assets/PrescriptionAiReportDialog-DbiIi_rL.js
rename to server/public/admin/assets/PrescriptionAiReportDialog-BPrzKJ6c.js
index d19a3cfd4..cdc45ad75 100644
--- a/server/public/admin/assets/PrescriptionAiReportDialog-DbiIi_rL.js
+++ b/server/public/admin/assets/PrescriptionAiReportDialog-BPrzKJ6c.js
@@ -1,4 +1,4 @@
-import{o as $e,q as i,O as f,D as n,r as k,s as o,T as y,v as g,bh as Je,P as b,bZ as We,bB as Ke,K as Xe,L as _,br as Ye,Y as Ze,F as Ie,G as He,X as Qe,ac as et,a2 as tt,b7 as rt,u as X,bi as st,ae as at,bt as ot,y as re,M as R,ba as it,p as q}from"./.pnpm-BHOjf1ZS.js";import{c as nt,d as lt,b as ut}from"./tcm-BkYsBTA3.js";import{u as pt,j as B,_ as dt}from"./index-B31vLELt.js";const ct={class:"dialog-heading"},ft=["id"],vt={key:0,class:"report-shell"},mt={class:"prescription-snapshot"},yt={class:"snapshot-content"},_t={key:1,class:"report-loading"},gt={key:2,class:"report-error"},bt={class:"error-message"},kt={key:3,class:"report-error"},Et={class:"model-tab-label"},ht={class:"model-name"},Rt={class:"report-pane","element-loading-text":"正在重新生成整个诊断报告…"},wt={key:0,class:"report-error"},At={class:"error-message"},St={class:"report-document"},Ct={class:"report-meta"},xt={class:"report-meta-main"},$t={class:"report-title-line"},It={class:"report-times"},Tt={key:0},Vt={key:1,class:"report-editor"},Bt={class:"editor-actions"},zt={key:0,class:"report-summary"},Lt={class:"report-grid"},Nt={class:"report-section"},Pt={class:"report-section"},Dt={class:"report-section"},Ft={class:"report-section"},Ot={key:1,class:"report-section report-section-wide"},jt={class:"report-cautions"},qt={class:"report-disclaimer"},Ut={key:3,class:"report-section report-section-wide"},Gt={class:"raw-content"},Mt=$e({__name:"PrescriptionAiReportDialog",setup(Jt,{expose:Te}){const U=$e({name:"PrescriptionAiReportList",props:{items:{type:Array,default:()=>[]},emptyText:{type:String,default:"暂无"}},setup(t){return()=>t.items.length?re("ul",{class:"report-list"},t.items.map(e=>re("li",{key:e},e))):re("p",{class:"report-empty-text"},t.emptyText)}}),x=[{profile:"qwen",label:"千问",name:"qwen3.6-35b"},{profile:"openai",label:"OpenAI",name:"gpt-5.6-sol"}],Ve=["tcm.prescriptionLibrary/editAiReport","wcf.prescription/editAiReport"],Y=()=>({error:"",data:null,editing:!1,structuredEdit:!1,saving:!1,draft:"",originalContent:"",editError:""}),Be=pt(),z=R(!1),E=R(null),L=R("qwen"),I=R(0),N=R(0),T=R(!1),$=R(""),h=R(!1),A=R(""),C=R(!1),P=R(!1),s=it({qwen:Y(),openai:Y()}),ze=q(()=>{var e;const t=((e=E.value)==null?void 0:e.herbs)||[];return t.length?t.map(a=>`${a.name||"未命名药材"} ${a.dosage??"-"}g`).join("、"):"暂无药材"}),Z=q(()=>x.some(({profile:t})=>!!(s[t].data||s[t].error))),D=q(()=>x.some(({profile:t})=>s[t].saving)),F=q(()=>x.some(({profile:t})=>s[t].editing)),Le=q(()=>{const t=Be.perms||[];return t.includes("*")||Ve.some(e=>t.includes(e))}),H=()=>{x.forEach(({profile:t})=>Object.assign(s[t],Y()))},G=t=>{if(typeof t=="string"&&t.trim())return t;if(t&&typeof t=="object"){const e=t,a=e.msg||e.message||e.error;if(typeof a=="string"&&a.trim())return a}return"模型服务暂时不可用,请稍后重试"},S=t=>t===I.value&&z.value&&!!E.value,se=t=>{var l,m;H(),C.value=t.can_refresh===!0||((l=t.capabilities)==null?void 0:l.can_refresh)===!0,P.value=t.can_edit===!0||((m=t.capabilities)==null?void 0:m.can_edit)===!0,(Array.isArray(t.reports)?t.reports:[]).forEach(c=>{const v=s[c.model_key];v&&(v.data=c)}),(Array.isArray(t.results)?t.results:[]).forEach(c=>{const v=s[c.model_key];!v||c.status!=="error"||(v.error=c.error_message||"该模型报告生成失败,请重新生成整个报告")});const u=s[L.value];if(!u.data&&!u.error){const c=x.find(({profile:v})=>s[v].data||s[v].error);c&&(L.value=c.profile)}},Q=async(t=I.value,e={})=>{const a=E.value;if(!a)return;const u=++N.value;e.silent||(T.value=!0,$.value="");try{const l=await nt({id:a.id});if(!S(t)||u!==N.value)return;se(l),$.value=""}catch(l){if(!S(t)||u!==N.value)return;e.silent?A.value=`报告已保存,但刷新最新内容失败:${G(l)}`:$.value=G(l)}finally{S(t)&&u===N.value&&!e.silent&&(T.value=!1)}},Ne=async()=>{const t=E.value;if(!t||h.value)return;if(F.value){B.msgWarning("请先保存或取消正在编辑的报告");return}const e=I.value;h.value=!0,A.value="";try{const a=await ut({id:t.id});if(!S(e))return;se(a),a.status==="partial"?(A.value="部分模型重新生成失败;成功结果已保存,失败模型仍显示上一次保存版本。",B.msgWarning("诊断报告部分生成成功")):a.status==="error"?(A.value="全部模型重新生成失败,已保留原有报告。",B.msgError("诊断报告生成失败")):B.msgSuccess("诊断报告已生成并保存")}catch(a){if(!S(e))return;A.value=G(a)}finally{S(e)&&(h.value=!1)}},M=async()=>{if(Z.value)try{await B.confirm("重新生成会再次调用全部模型,并以新结果覆盖当前诊断报告。确定继续吗?")}catch{return}await Ne()},ae=t=>x.find(e=>e.profile===t),oe=t=>{var e;return((e=s[t].data)==null?void 0:e.model_label)||ae(t).label},ie=t=>{var e;return((e=s[t].data)==null?void 0:e.model_name)||ae(t).name},Pe=t=>{const e=s[t].data;return(e==null?void 0:e.generated_at)||"—"},ne=t=>{const e=s[t].data;return(e==null?void 0:e.edited_at)||""},De=t=>{const e=s[t].data;return(e==null?void 0:e.is_edited)===!0},Fe=t=>{var e;return!!((e=s[t].data)!=null&&e.report)},J=["核心判断","可能症状与证候","主治方向","主要功效","可能适用人群","配伍分析","用药与复核提醒","免责声明"],le=t=>{const e=t.replace(/^\uFEFF/,"").replace(/\r\n?/g,`
+import{o as $e,q as i,O as f,D as n,r as k,s as o,T as y,v as g,bm as Je,P as b,bZ as We,bB as Ke,K as Xe,L as _,bk as Ye,Y as Ze,F as Ie,G as He,X as Qe,ac as et,a2 as tt,b7 as rt,u as X,bl as st,ae as at,bt as ot,y as re,M as R,ba as it,p as q}from"./.pnpm-BuKxIMgQ.js";import{c as nt,d as lt,b as ut}from"./tcm-BZvWmp4G.js";import{u as pt,j as B,_ as dt}from"./index-BZAvl557.js";const ct={class:"dialog-heading"},ft=["id"],vt={key:0,class:"report-shell"},mt={class:"prescription-snapshot"},yt={class:"snapshot-content"},_t={key:1,class:"report-loading"},gt={key:2,class:"report-error"},bt={class:"error-message"},kt={key:3,class:"report-error"},Et={class:"model-tab-label"},ht={class:"model-name"},Rt={class:"report-pane","element-loading-text":"正在重新生成整个诊断报告…"},wt={key:0,class:"report-error"},At={class:"error-message"},St={class:"report-document"},Ct={class:"report-meta"},xt={class:"report-meta-main"},$t={class:"report-title-line"},It={class:"report-times"},Tt={key:0},Vt={key:1,class:"report-editor"},Bt={class:"editor-actions"},zt={key:0,class:"report-summary"},Lt={class:"report-grid"},Nt={class:"report-section"},Pt={class:"report-section"},Dt={class:"report-section"},Ft={class:"report-section"},Ot={key:1,class:"report-section report-section-wide"},jt={class:"report-cautions"},qt={class:"report-disclaimer"},Ut={key:3,class:"report-section report-section-wide"},Gt={class:"raw-content"},Mt=$e({__name:"PrescriptionAiReportDialog",setup(Jt,{expose:Te}){const U=$e({name:"PrescriptionAiReportList",props:{items:{type:Array,default:()=>[]},emptyText:{type:String,default:"暂无"}},setup(t){return()=>t.items.length?re("ul",{class:"report-list"},t.items.map(e=>re("li",{key:e},e))):re("p",{class:"report-empty-text"},t.emptyText)}}),x=[{profile:"qwen",label:"千问",name:"qwen3.6-35b"},{profile:"openai",label:"OpenAI",name:"gpt-5.6-sol"}],Ve=["tcm.prescriptionLibrary/editAiReport","wcf.prescription/editAiReport"],Y=()=>({error:"",data:null,editing:!1,structuredEdit:!1,saving:!1,draft:"",originalContent:"",editError:""}),Be=pt(),z=R(!1),E=R(null),L=R("qwen"),I=R(0),N=R(0),T=R(!1),$=R(""),h=R(!1),A=R(""),C=R(!1),P=R(!1),s=it({qwen:Y(),openai:Y()}),ze=q(()=>{var e;const t=((e=E.value)==null?void 0:e.herbs)||[];return t.length?t.map(a=>`${a.name||"未命名药材"} ${a.dosage??"-"}g`).join("、"):"暂无药材"}),Z=q(()=>x.some(({profile:t})=>!!(s[t].data||s[t].error))),D=q(()=>x.some(({profile:t})=>s[t].saving)),F=q(()=>x.some(({profile:t})=>s[t].editing)),Le=q(()=>{const t=Be.perms||[];return t.includes("*")||Ve.some(e=>t.includes(e))}),H=()=>{x.forEach(({profile:t})=>Object.assign(s[t],Y()))},G=t=>{if(typeof t=="string"&&t.trim())return t;if(t&&typeof t=="object"){const e=t,a=e.msg||e.message||e.error;if(typeof a=="string"&&a.trim())return a}return"模型服务暂时不可用,请稍后重试"},S=t=>t===I.value&&z.value&&!!E.value,se=t=>{var l,m;H(),C.value=t.can_refresh===!0||((l=t.capabilities)==null?void 0:l.can_refresh)===!0,P.value=t.can_edit===!0||((m=t.capabilities)==null?void 0:m.can_edit)===!0,(Array.isArray(t.reports)?t.reports:[]).forEach(c=>{const v=s[c.model_key];v&&(v.data=c)}),(Array.isArray(t.results)?t.results:[]).forEach(c=>{const v=s[c.model_key];!v||c.status!=="error"||(v.error=c.error_message||"该模型报告生成失败,请重新生成整个报告")});const u=s[L.value];if(!u.data&&!u.error){const c=x.find(({profile:v})=>s[v].data||s[v].error);c&&(L.value=c.profile)}},Q=async(t=I.value,e={})=>{const a=E.value;if(!a)return;const u=++N.value;e.silent||(T.value=!0,$.value="");try{const l=await nt({id:a.id});if(!S(t)||u!==N.value)return;se(l),$.value=""}catch(l){if(!S(t)||u!==N.value)return;e.silent?A.value=`报告已保存,但刷新最新内容失败:${G(l)}`:$.value=G(l)}finally{S(t)&&u===N.value&&!e.silent&&(T.value=!1)}},Ne=async()=>{const t=E.value;if(!t||h.value)return;if(F.value){B.msgWarning("请先保存或取消正在编辑的报告");return}const e=I.value;h.value=!0,A.value="";try{const a=await ut({id:t.id});if(!S(e))return;se(a),a.status==="partial"?(A.value="部分模型重新生成失败;成功结果已保存,失败模型仍显示上一次保存版本。",B.msgWarning("诊断报告部分生成成功")):a.status==="error"?(A.value="全部模型重新生成失败,已保留原有报告。",B.msgError("诊断报告生成失败")):B.msgSuccess("诊断报告已生成并保存")}catch(a){if(!S(e))return;A.value=G(a)}finally{S(e)&&(h.value=!1)}},M=async()=>{if(Z.value)try{await B.confirm("重新生成会再次调用全部模型,并以新结果覆盖当前诊断报告。确定继续吗?")}catch{return}await Ne()},ae=t=>x.find(e=>e.profile===t),oe=t=>{var e;return((e=s[t].data)==null?void 0:e.model_label)||ae(t).label},ie=t=>{var e;return((e=s[t].data)==null?void 0:e.model_name)||ae(t).name},Pe=t=>{const e=s[t].data;return(e==null?void 0:e.generated_at)||"—"},ne=t=>{const e=s[t].data;return(e==null?void 0:e.edited_at)||""},De=t=>{const e=s[t].data;return(e==null?void 0:e.is_edited)===!0},Fe=t=>{var e;return!!((e=s[t].data)!=null&&e.report)},J=["核心判断","可能症状与证候","主治方向","主要功效","可能适用人群","配伍分析","用药与复核提醒","免责声明"],le=t=>{const e=t.replace(/^\uFEFF/,"").replace(/\r\n?/g,`
`).split(`
`),a=[];for(const p of J){const d=e.reduce((w,V,te)=>(V.trim()===p&&w.push(te),w),[]);if(!d.length)return{ok:!1,error:`缺少章节标题“${p}”。请保留全部八个中文章节标题后再保存。`};if(d.length>1)return{ok:!1,error:`章节标题“${p}”出现了多次,请仅保留一个标题。`};a.push(d[0])}for(let p=1;p{const d=a[p]+1,w=a[p+1]??e.length;return e.slice(d,w).join(`
`).trim()},l=J.map((p,d)=>u(d)),m=l.findIndex(p=>!p);if(m>=0)return{ok:!1,error:`章节“${J[m]}”内容不能为空;如无内容请填写“暂无”。`};const c=p=>p==="暂无"?"":p,v=p=>p==="暂无"?[]:p.split(`
diff --git a/server/public/admin/assets/PrescriptionOrderDetailDrawer-C-APB0h9.js b/server/public/admin/assets/PrescriptionOrderDetailDrawer-BaDbxBr8.js
similarity index 98%
rename from server/public/admin/assets/PrescriptionOrderDetailDrawer-C-APB0h9.js
rename to server/public/admin/assets/PrescriptionOrderDetailDrawer-BaDbxBr8.js
index 46737ac42..949616f97 100644
--- a/server/public/admin/assets/PrescriptionOrderDetailDrawer-C-APB0h9.js
+++ b/server/public/admin/assets/PrescriptionOrderDetailDrawer-BaDbxBr8.js
@@ -1 +1 @@
-import{o as xt,ap as Mt,be as Ht,q as s,O as c,B as Jt,D as a,bZ as Kt,r as m,bh as Wt,s as n,L as d,T as i,P as p,F as O,G as Y,br as Gt,v as r,b_ as Qt,b$ as Zt,u as k,bg as Xt,ac as J,K as Yt,ae as K,c0 as ea,c1 as ta,bj as aa,bk as sa,bB as la,bA as ra,U as ia,S as na,b7 as oa,b8 as ua,bm as da,bn as pa,w as ma,by as ca,c2 as _a,bq as ya,b5 as va,c3 as fa,c4 as ga,bt as ba,b9 as xa,b6 as ka,J as wa,ah as ot,p as x,M as V,ba as ut,n as ha}from"./.pnpm-BHOjf1ZS.js";import{e as Na,f as Sa,h as Va,i as Pa,j as La,k as Oa,l as Ta,m as za}from"./tcm-BkYsBTA3.js";import{u as Aa,j as I,n as Da,_ as Ua}from"./index-B31vLELt.js";import{f as Ue,a as dt,c as pt,b as Ce,d as Ca,e as Ea,g as Ee,p as mt,o as ct,h as _t,i as yt,j as Ia,l as ja,k as Ra,m as vt,n as qa,q as Ba,T as Fa,P as ft,r as $a,s as Ma,t as gt,u as Ha,v as bt,w as Ja,x as Ka,y as Wa}from"./prescription-order-utils-CXfs2Bra.js";const Ga={class:"po-detail-drawer-head flex items-center justify-between"},Qa={class:"flex items-center"},Za={key:0,class:"flex items-center gap-2 mr-6"},Xa={key:1,class:"po-detail-body px-6 pb-6 h-full overflow-y-auto"},Ya={class:"text-sm leading-relaxed"},es={class:"font-mono font-semibold text-red-700"},ts={class:"font-mono font-semibold text-red-700"},as={class:"text-sm leading-relaxed space-y-1.5"},ss={key:0,class:"flex flex-wrap gap-1.5 items-center"},ls={key:1,class:"list-disc pl-5 space-y-1 text-red-50"},rs={key:2,class:"bg-gray-50/80 border border-gray-100 rounded-lg p-5 mb-5 shadow-sm"},is={key:0,class:"text-red-500 font-medium"},ns={key:1},os={key:2,class:"text-green-600"},us={key:3,class:"text-gray-400"},ds={key:0,class:"text-red-500 font-medium"},ps={key:1},ms={key:2,class:"text-green-600"},cs={key:3,class:"text-gray-400"},_s={key:0,class:"text-amber-600 font-medium"},ys={key:1,class:"text-primary font-medium"},vs={key:2},fs={key:3,class:"text-green-600"},gs={key:4,class:"text-red-500 font-medium"},bs={class:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-4 mb-5"},xs={class:"flex items-center justify-between mb-1"},ks={class:"stat-value text-red-500 font-bold text-xl"},ws={class:"stat-value text-green-600 font-bold text-xl"},hs={class:"stat-value text-primary font-bold text-xl"},Ns={class:"grid grid-cols-1 md:grid-cols-2 gap-4 mb-4"},Ss={key:0,class:"audit-stamp stamp-pass"},Vs={key:1,class:"audit-stamp stamp-reject"},Ps={class:"flex items-center justify-between"},Ls={class:"flex items-center gap-3"},Os={key:0,class:"text-xs text-gray-500"},Ts={class:"text-primary font-medium"},zs={class:"text-xs text-gray-400"},As={class:"text-red-500 font-medium"},Ds={class:"flex flex-col gap-1 text-sm leading-relaxed"},Us={key:0,class:"text-gray-500 mr-1"},Cs={key:1,class:"ml-2 text-gray-500"},Es={key:0},Is={key:1,class:"ml-2 text-gray-500"},js={class:"flex items-center gap-1"},Rs={class:"flex flex-col gap-1.5 text-sm leading-relaxed"},qs={key:0},Bs={key:0,class:"mt-4"},Fs={class:"flex flex-col gap-4 h-full"},$s={class:"text-red-500"},Ms={key:0,class:"audit-stamp stamp-pass"},Hs={key:1,class:"audit-stamp stamp-reject"},Js={class:"flex items-center justify-between"},Ks={class:"flex items-center gap-3"},Ws={key:0,class:"text-xs text-gray-500"},Gs={class:"text-primary font-medium"},Qs={class:"text-red-500"},Zs={class:"font-mono"},Xs={key:0,class:"text-[13px] space-y-1"},Ys={class:"font-medium text-gray-900"},el={key:0,class:"text-gray-500 ml-2 font-mono text-xs"},tl={key:0,class:"text-gray-600 text-xs leading-relaxed"},al={key:1,class:"text-gray-400"},sl={key:0,class:"space-y-1.5"},ll={class:"text-gray-800 break-all"},rl={key:1,class:"text-gray-400"},il={class:"flex flex-wrap items-center gap-x-4 gap-y-1 text-[13px]"},nl={class:"font-mono text-primary"},ol={class:"text-gray-500"},ul={key:0},dl={key:1,class:"text-gray-500"},pl={key:0,class:"text-xs text-gray-500 mt-1"},ml={key:1,class:"text-gray-400"},cl={class:"po-audit-remark"},_l={class:"po-audit-remark"},yl={class:"flex items-center gap-2 flex-wrap"},vl={class:"text-xs text-gray-400 font-mono"},fl={key:0,class:"po-logistics-tip text-gray-400 text-xs mb-3 font-normal"},gl={class:"flex flex-wrap items-center gap-3 mb-4"},bl={key:1,class:"ml-2 flex items-center gap-4 border-l pl-4 border-gray-200"},xl={key:2,class:"py-6 text-center text-sm text-gray-500"},kl={key:3,class:"logistics-content bg-gray-50/50 p-4 rounded-md"},wl={key:0,class:"text-sm mb-4 font-medium flex items-center gap-2"},hl={class:"text-gray-800"},Nl={key:1,class:"text-xs text-gray-400 ml-1"},Sl={key:2,class:"text-xs text-gray-400"},Vl={class:"flex items-center justify-between gap-2"},Pl={class:"flex items-center gap-2 mb-1"},Ll={class:"font-medium text-[13px]"},Ol={key:0,class:"text-xs text-gray-400 mt-1"},Tl={key:0,class:"text-xs text-gray-400 mt-1"},zl={key:0,class:"text-xs font-medium text-gray-500 mb-3"},Al={class:"flex items-center gap-1 w-full"},Dl={class:"flex items-center gap-1 w-full"},Ul={class:"flex items-center gap-1 w-full"},Cl=xt({name:"PrescriptionOrderDetailDrawer"}),El=xt({...Cl,props:{readonly:{type:Boolean,default:!1},gancaoPreviewLoading:{type:Boolean,default:!1},appendToBody:{type:Boolean,default:!1},detailLoader:{type:Function,default:void 0},loadRelatedData:{type:Boolean,default:!0}},emits:["update-amount","patch-rx-patient","view-prescription","test-gancao-preview","view-patient","detail-changed"],setup(b,{expose:kt,emit:wt}){const U=b,j=wt,ee=Aa(),fe=x(()=>{const t=ee.userInfo;if(!t||Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(o=>Number(o)):[];return e.includes(Fa)?e.some(o=>ft.includes(o)):!0}),R=V(!1),ge=V(!1),l=V(null),W=V([]),G=V([]),te=V(null),Ie=x(()=>!U.readonly&&pt(l.value)&&We("tcm.prescriptionOrder/unlinkPayOrder"));async function ht(t){var y,v,S;const e=Number((y=l.value)==null?void 0:y.id),o=Number(t.id);if(!(!Ie.value||!e||!o||te.value!==null)&&[2,5].includes(Number(t.status))){te.value=o;try{if(await I.confirm(`确定移除收款记录「${t.order_no||"#"+o}」(¥${Ce(t.amount)})?仅解除关联,原收款记录保留;订单总金额不变,已付金额与需代收金额按剩余关联收款重新计算。`),!R.value||Number((v=l.value)==null?void 0:v.id)!==e)return;const z=await Na({id:e,pay_order_id:o}),w=(z==null?void 0:z.data)??z;Number((S=l.value)==null?void 0:S.id)===e&&Number(w==null?void 0:w.id)===e&&Object.assign(l.value,w),I.msgSuccess("收款关联已移除,金额已同步更新"),j("detail-changed"),await et(e)}catch{}finally{te.value=null}}}const _=x(()=>{var e;const t=(e=l.value)==null?void 0:e.prescription;return t&&typeof t=="object"?t:null}),je=x(()=>{var t;return $a((t=_.value)==null?void 0:t.dietary_taboo)}),be=x(()=>{const t=l.value;if(!t)return[];const e=t.linked_pay_orders;return Array.isArray(e)?e:[]}),Re=x(()=>{const t=l.value;if(!t)return 0;const e=t.agency_collect_amount;if(e!=null&&e!=="")return Number(e)||0;const o=Number(t.amount)||0,y=Number(t.linked_pay_paid_total)||0;return Math.round((o-y)*100)/100}),oe=x(()=>{if(!l.value)return 0;const t=Number(l.value.fulfillment_status),e=Number(l.value.prescription_audit_status),o=Number(l.value.payment_slip_audit_status);return t===3||[8,9,10,11,12].includes(t)?5:t===6||t===5||t===7?4:t===4?e===2?1:o===2?2:3:t===2?3:e===0||e===2?1:o===0||o===2?2:3}),ue=x(()=>{var e;const t=Number((e=l.value)==null?void 0:e.prescription_audit_status);return t===1?"success":t===2?"error":oe.value===1?"process":"wait"}),de=x(()=>{var e;const t=Number((e=l.value)==null?void 0:e.payment_slip_audit_status);return t===1?"success":t===2?"error":oe.value===2?"process":"wait"}),Q=x(()=>{var e;const t=Number((e=l.value)==null?void 0:e.fulfillment_status);return t===3||t===5||t===6||t===8||t===11||t===12?"success":t===4||t===9||t===10?"error":t===7||oe.value===3?"process":"wait"}),ae=x(()=>{var o,y;const t=(o=_.value)==null?void 0:o.phone,e=(y=l.value)==null?void 0:y.recipient_phone;return Ma(e,t)}),Nt=x(()=>{var e;return gt((e=_.value)==null?void 0:e.phone)||"—"}),St=x(()=>{var e;return gt((e=l.value)==null?void 0:e.recipient_phone)||"—"}),qe=x(()=>{var e,o;const t=String(((e=l.value)==null?void 0:e.order_creator_dept_path)??((o=l.value)==null?void 0:o.diagnosis_creator_dept_path)??"").trim();return t?t.split(";").map(y=>y.trim()).filter(Boolean).map(y=>y.includes(" / ")?y.split(" / ").map(v=>v.trim()).filter(Boolean):y.split("/").map(v=>v.trim()).filter(Boolean)).filter(y=>y.length>0):[]}),Be=x(()=>{const t=l.value;if(!t)return"";const e=String(t.creator_account??"").trim(),o=String(t.creator_mobile??"").trim(),y=[];return e&&y.push(`登录账号:${e}`),o&&y.push(`手机:${o}`),y.join(" · ")}),A=x(()=>{var e;const t=(e=l.value)==null?void 0:e.linked_appointment;return t&&typeof t=="object"?t:null}),Fe=x(()=>{var e;const t=String(((e=A.value)==null?void 0:e.resolved_from)||"");return t==="prescription"?"处方绑定挂号":t==="diagnosis"?"诊单关联挂号":""}),$e=x(()=>{const t=A.value;if(!t)return"";const e=String(t.channel_source_desc??"").trim();return e||String(t.channel_source??"").trim()}),Me=x(()=>{var t;return Ha((t=_.value)==null?void 0:t.herbs)}),q=x(()=>bt(_.value)),T=x(()=>{const t=_.value;if(!t||!bt(t))return null;const e=t.aux_usage;return e==null||e===""||Array.isArray(e)&&e.length===0?null:Ja(e,t.prescription_type||"浓缩水丸")}),Vt=x(()=>{var t;return((t=l.value)==null?void 0:t.prescription_detail_herbs_visible)!==!1}),He=x(()=>{var t,e;return!U.readonly&&((t=l.value)==null?void 0:t.internal_cost)!=null&&((e=l.value)==null?void 0:e.internal_cost)!==""}),Pt=x(()=>{const t=l.value;if(!t)return"—";const e=[];return t.shipping_province&&e.push(t.shipping_province),t.shipping_city&&e.push(t.shipping_city),t.shipping_district&&e.push(t.shipping_district),t.shipping_address&&e.push(t.shipping_address),e.length>0?e.join(" "):"—"}),xe=V([]);async function Je(){if(!(xe.value.length>0))try{const t=await Da({type:"server_order"}),e=qa(t==null?void 0:t.server_order);e.length>0&&(xe.value=e)}catch{}}const Lt=x(()=>{var t;return Ka((t=l.value)==null?void 0:t.service_package,xe.value)});Mt(()=>{Je()});function Ot(){const t=ee.perms||[];return t.includes("*")||t.includes("tcm.prescriptionOrder/logs")}async function Ke(t){if(!Ot()){W.value=[];return}try{const e=await Oa({id:t});W.value=(e==null?void 0:e.data)??e??[]}catch{W.value=[]}}function We(t){const e=ee.perms||[];return e.includes("*")||e.includes(t)}function Tt(){return We("tcm.prescriptionOrder/addLog")}const ke=x(()=>{const t=ee.userInfo;return!t||Number(t.root)===1?!0:(Array.isArray(t.role_ids)?t.role_ids.map(o=>Number(o)):[]).some(o=>ft.includes(o))}),we=x(()=>{const t=ee.userInfo;return!t||Number(t.root)===1?!0:(Array.isArray(t.role_ids)?t.role_ids.map(o=>Number(o)):[]).some(o=>[0,3].includes(o))}),se=V(!1),he=V(!1),pe=V(),g=ut({summary:"",prescription_audit_status:"",payment_slip_audit_status:"",prescription_audit_remark:"",payment_slip_audit_remark:""}),zt={summary:[{required:!0,message:"请填写日志内容",trigger:"blur"}]},le=V(!1),Ne=V(!1),Se=V(),h=ut({times_per_day:3,usage_days:7,aux_times_per_day:3,aux_usage_days:7,medication_days:void 0}),At=x(()=>{const t={times_per_day:[{required:!0,message:"请填写主方每天次数",trigger:"change"}],usage_days:[{required:!0,message:"请填写主方开立天数",trigger:"change"}],medication_days:[{required:!0,message:"请填写订单服用天数",trigger:"change"}]};return q.value&&(t.aux_times_per_day=[{required:!0,message:"请填写辅方每天次数",trigger:"change"}],t.aux_usage_days=[{required:!0,message:"请填写辅方开立天数",trigger:"change"}]),t});function Dt(){const t=_.value,e=l.value;if(!t||!(e!=null&&e.id)||!e.prescription_id){I.msgWarning("无处方数据");return}const o=T.value;h.times_per_day=Number(t.times_per_day)>0?Number(t.times_per_day):3,h.usage_days=Number(t.usage_days)>0?Number(t.usage_days):7,h.aux_times_per_day=o&&Number(o.times_per_day)>0?Number(o.times_per_day):3,h.aux_usage_days=o&&Number(o.usage_days)>0?Number(o.usage_days):7;const y=Number(e.medication_days);h.medication_days=y>0?y:Number(t.usage_days)>0?Number(t.usage_days):7,le.value=!0,ha(()=>{var v;return(v=Se.value)==null?void 0:v.clearValidate()})}function Ut(){h.times_per_day=3,h.usage_days=7,h.aux_times_per_day=3,h.aux_usage_days=7,h.medication_days=void 0}async function Ct(){var o;const t=Se.value;if(!t)return;try{await t.validate()}catch{return}const e=(o=l.value)==null?void 0:o.id;if(e){Ne.value=!0;try{const y={id:e,times_per_day:Number(h.times_per_day),usage_days:Number(h.usage_days),medication_days:Number(h.medication_days)};q.value&&(y.aux_times_per_day=Number(h.aux_times_per_day),y.aux_usage_days=Number(h.aux_usage_days)),await Sa(y),I.msgSuccess("保存成功"),le.value=!1,await ce(),j("detail-changed")}catch{}finally{Ne.value=!1}}}function Ge(){var t;g.summary="",g.prescription_audit_status="",g.payment_slip_audit_status="",g.prescription_audit_remark="",g.payment_slip_audit_remark="",(t=pe.value)==null||t.clearValidate()}function Et(){var e;if(!((e=l.value)!=null&&e.id))return;Ge();const t=l.value;g.prescription_audit_remark=String(t.prescription_audit_remark||""),g.payment_slip_audit_remark=String(t.payment_slip_audit_remark||""),se.value=!0}async function It(){var t;if(!(!pe.value||!((t=l.value)!=null&&t.id))){await pe.value.validate(),he.value=!0;try{const e={id:l.value.id,summary:g.summary.trim()};ke.value&&g.prescription_audit_status!==""&&g.prescription_audit_status!==null&&g.prescription_audit_status!==void 0&&(e.prescription_audit_status=g.prescription_audit_status,e.prescription_audit_remark=g.prescription_audit_remark),we.value&&g.payment_slip_audit_status!==""&&g.payment_slip_audit_status!==null&&g.payment_slip_audit_status!==void 0&&(e.payment_slip_audit_status=g.payment_slip_audit_status,e.payment_slip_audit_remark=g.payment_slip_audit_remark),await Va(e),I.msgSuccess("日志已添加"),se.value=!1,await ce(),j("detail-changed")}catch{}finally{he.value=!1}}}async function Qe(t,e,o){var y;if(!t){G.value=[];return}try{const v=await Ta({diagnosis_id:t,prescription_order_id:e}),S=(v==null?void 0:v.lists)??((y=v==null?void 0:v.data)==null?void 0:y.lists)??[],z=Array.isArray(S)?S.filter(w=>!o.includes(w.id)):[];G.value=z}catch{G.value=[]}}const Z=V("auto"),me=V(!1),Ve=V(!1),P=V(null),re=V("");let Pe=0;function Ze(){Pe+=1,P.value=null}function Le(t){var e,o;return t.requestSeq!==Pe||Number((e=l.value)==null?void 0:e.id)!==t.orderId?!1:String(((o=l.value)==null?void 0:o.tracking_number)||"").trim()===t.trackingNumber}const Oe=x(()=>{var o;const t=String(((o=l.value)==null?void 0:o.tracking_number)||"").trim();if(!t)return{sf:"javascript:void(0)",jd:"javascript:void(0)",jt:"javascript:void(0)"};const e=encodeURIComponent(t);return{sf:`https://www.sf-express.com/cn/sc/dynamic_function/waybill/#search/bill-number/${e}`,jd:`https://www.jdl.com/#/trackQuery?waybillCode=${e}`,jt:`https://www.jtexpress.com.cn/index/query/gzquery.html?bills=${e}`}}),Xe=x(()=>{const t=P.value;return!t||!Array.isArray(t.traces)?[]:t.traces}),B=x(()=>Wa(P.value));async function ie(){var v,S;const t=Number((v=l.value)==null?void 0:v.id),e=String(((S=l.value)==null?void 0:S.tracking_number)||"").trim();if(!t||!e)return;const y={requestSeq:++Pe,orderId:t,trackingNumber:e};me.value=!0;try{const z=String(re.value||"").replace(/\D/g,""),w={id:t,express_company:Z.value};z.length>=4&&(w.phone_tail=z);const D=await Pa(w);if(!Le(y))return;P.value=Ba(D,e,t)}catch{if(!Le(y))return;P.value=null}finally{Le(y)&&(me.value=!1)}}async function jt(){var o,y;const t=Number((o=l.value)==null?void 0:o.id),e=String(((y=l.value)==null?void 0:y.tracking_number)||"").trim();if(!t||!e){I.msgWarning("当前订单未填写快递单号");return}Ve.value=!0;try{const v=await La({id:t});I.msgSuccess((v==null?void 0:v.message)||"京东物流轨迹已更新"),await ie()}catch(v){I.msgError((v==null?void 0:v.message)||"京东物流更新失败")}finally{Ve.value=!1}}function Ye(t){return U.detailLoader?U.detailLoader({id:t}):za({id:t})}async function Rt(t){Je(),l.value=null,G.value=[],Ze(),Z.value="auto",re.value="",W.value=[],R.value=!0,ge.value=!0;try{const e=await Ye(t),o=(e==null?void 0:e.data)??e??null;if(l.value=o,o){Z.value=String(o.express_company||"auto")||"auto";const y=String(o.recipient_phone||"").replace(/\D/g,"");re.value=y.length>=4?y:"",U.loadRelatedData&&String(o.tracking_number||"").trim()&&ie(),U.loadRelatedData&&Ke(t);const v=o.diagnosis_id,S=o.pay_order_ids||[];U.loadRelatedData&&v&&Qe(v,t,S)}}catch(e){I.msgError((e==null?void 0:e.message)||"加载失败"),R.value=!1}finally{ge.value=!1}}async function ce(){var e,o;const t=Number((e=l.value)==null?void 0:e.id);if(t)try{const y=await Ye(t),v=(y==null?void 0:y.data)??y??null;if(!v)return;const S=String(((o=l.value)==null?void 0:o.tracking_number)||"").trim();l.value=v;const z=String(v.tracking_number||"").trim();U.loadRelatedData&&z&&z!==S&&(Ze(),Z.value=String(v.express_company||"auto")||"auto",ie()),U.loadRelatedData&&Ke(t);const w=v.diagnosis_id;U.loadRelatedData&&w&&Qe(w,t,v.pay_order_ids||[])}catch{}}async function et(t){var o;const e=Number(t);!R.value||!(e>0)||Number((o=l.value)==null?void 0:o.id)!==e||await ce()}function qt(){R.value=!1}return kt({open:Rt,refresh:ce,refreshIfCurrent:et,close:qt,detail:l,visible:R}),(t,e)=>{const o=Gt,y=Kt,v=Wt,S=Zt,z=Qt,w=Yt,D=Xt,f=ta,tt=ea,N=sa,Te=aa,X=la,Bt=na,Ft=ia,_e=oa,C=pa,ze=da,Ae=ma,De=ya,at=ga,st=fa,E=ka,lt=xa,rt=ba,ne=wa,$t=Jt,F=Ht("perms");return s(),c($t,{modelValue:R.value,"onUpdate:modelValue":e[21]||(e[21]=$=>R.value=$),class:"po-detail-drawer",size:"80%","destroy-on-close":"","close-on-click-modal":!1,"append-to-body":b.appendToBody},{header:a(()=>{var $,u,L;return[n("div",Ga,[n("div",Qa,[e[22]||(e[22]=n("span",{class:"po-detail-drawer-title text-gray-800 font-semibold text-lg"},"业务订单详情",-1)),($=l.value)!=null&&$.order_no?(s(),c(o,{key:0,type:"primary",effect:"plain",round:"",class:"ml-3"},{default:a(()=>[d(i(l.value.order_no),1)]),_:1})):p("",!0),(u=l.value)!=null&&u.gancao_reciperl_order_no?(s(),c(o,{key:1,type:"success",effect:"plain",round:"",class:"ml-2"},{default:a(()=>[d("甘草 "+i(l.value.gancao_reciperl_order_no),1)]),_:1})):p("",!0),(L=l.value)!=null&&L.ej_pharmacy_order_no?(s(),c(o,{key:2,type:"warning",effect:"plain",round:"",class:"ml-2"},{default:a(()=>[d("洛阳 "+i(l.value.ej_pharmacy_order_no),1)]),_:1})):p("",!0),l.value?ot(t.$slots,"header-extra",{key:3,detail:l.value},void 0,!0):p("",!0)]),l.value?(s(),m("div",Za,[ot(t.$slots,"header-actions",{detail:l.value},void 0,!0)])):p("",!0)])]}),default:a(()=>{var $;return[ge.value?(s(),c(y,{key:0,rows:12,animated:"",class:"px-6 py-4"})):l.value?(s(),m("div",Xa,[!b.readonly&&ae.value?(s(),c(v,{key:0,type:"error",closable:!1,"show-icon":"",class:"mb-4 !items-start",title:"业务订单收货手机与处方登记手机不一致"},{default:a(()=>[n("div",Ya,[n("div",null,[e[23]||(e[23]=d(" 处方手机: ",-1)),n("span",es,i(Nt.value),1)]),n("div",null,[e[24]||(e[24]=d(" 订单收货手机: ",-1)),n("span",ts,i(St.value),1)]),e[25]||(e[25]=n("div",{class:"text-gray-600 mt-1"},"请核对是否代收货或录入错误,避免物流与回访联系错人。",-1))])]),_:1})):p("",!0),!b.readonly&&B.value.show&&String((($=l.value)==null?void 0:$.tracking_number)||"").trim()?(s(),c(v,{key:1,type:"error",effect:"dark",closable:!1,"show-icon":"",class:"mb-4 !items-start ring-2 ring-red-600/90 shadow-lg",title:"物流异常:轨迹中出现拒收 / 退回等字样,请优先跟进处理"},{default:a(()=>[n("div",as,[B.value.keywords.length?(s(),m("div",ss,[e[26]||(e[26]=n("span",{class:"text-red-100 text-xs"},"命中关键词:",-1)),(s(!0),m(O,null,Y(B.value.keywords,u=>(s(),c(o,{key:u,type:"danger",effect:"plain",size:"small",class:"!border-white/40 !text-white"},{default:a(()=>[d(i(u),1)]),_:2},1024))),128))])):p("",!0),B.value.lines.length?(s(),m("ul",ls,[(s(!0),m(O,null,Y(B.value.lines,(u,L)=>(s(),m("li",{key:L},i(u),1))),128))])):p("",!0),e[27]||(e[27]=n("div",{class:"text-xs text-red-100/90 pt-1 border-t border-white/15"}," 请核实是否需改址重发、拦截退件或协调患者签收,并在备注中记录处理结果。 ",-1))])]),_:1})):p("",!0),b.readonly?p("",!0):(s(),m("div",rs,[r(z,{active:oe.value,"align-center":"","finish-status":"success"},{default:a(()=>[r(S,{title:"业务订单创建",description:k(Ue)(l.value.create_time)},null,8,["description"]),r(S,{title:"处方单双审",status:ue.value},{description:a(()=>[ue.value==="error"?(s(),m("span",is,"处方被驳回")):ue.value==="wait"?(s(),m("span",ns,"等待审核")):ue.value==="success"?(s(),m("span",os,"双审通过")):(s(),m("span",us,"进行中"))]),_:1},8,["status"]),r(S,{title:"支付单审核",status:de.value},{description:a(()=>[de.value==="error"?(s(),m("span",ds,"支付审核驳回")):de.value==="wait"?(s(),m("span",ps,"等待审核")):de.value==="success"?(s(),m("span",ms,"审核通过")):(s(),m("span",cs,"进行中"))]),_:1},8,["status"]),r(S,{title:"发货与履约",status:Q.value},{description:a(()=>{var u,L,M;return[Q.value==="process"&&Number((u=l.value)==null?void 0:u.fulfillment_status)===7?(s(),m("span",_s,"进行中")):Q.value==="process"?(s(),m("span",ys,"等待发货/补充单号")):Q.value==="wait"?(s(),m("span",vs,"待转入履约")):Q.value==="success"?(s(),m("span",fs,i(k(dt)((L=l.value)==null?void 0:L.fulfillment_status)),1)):Q.value==="error"?(s(),m("span",gs,i(k(dt)((M=l.value)==null?void 0:M.fulfillment_status)),1)):p("",!0)]}),_:1},8,["status"]),r(S,{title:"订单完成"})]),_:1},8,["active"])])),n("div",bs,[r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[n("div",xs,[e[29]||(e[29]=n("div",{class:"stat-title text-gray-500 text-xs"},"总金额",-1)),!b.readonly&&k(pt)(l.value)?J((s(),c(w,{key:0,type:"primary",size:"small",link:"",onClick:e[0]||(e[0]=u=>j("update-amount"))},{default:a(()=>[...e[28]||(e[28]=[d(" 修改 ",-1)])]),_:1})),[[F,["tcm.prescriptionOrder/updateAmount"]]]):p("",!0)]),n("div",ks,"¥"+i(l.value.amount),1)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[30]||(e[30]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"已付总额",-1)),n("div",ws,"¥"+i(l.value.linked_pay_paid_total||0),1)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[31]||(e[31]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"退款金额",-1)),n("div",{class:K(["stat-value font-bold text-xl",Number(l.value.refund_amount)>0?"text-rose-500":"text-gray-400"])}," ¥"+i(k(Ce)(l.value.refund_amount||0)),3)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[32]||(e[32]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"需代收",-1)),n("div",{class:K(["stat-value font-bold text-xl",Re.value>0?"text-amber-600":"text-gray-500"])}," ¥"+i(k(Ce)(Re.value)),3)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[33]||(e[33]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"已付笔数",-1)),n("div",hs,i(be.value.length)+" 笔",1)]),_:1})]),n("div",Ns,[r(D,{shadow:"never",class:"po-panel po-panel-rx border-gray-100 h-full relative overflow-hidden"},{header:a(()=>[n("div",Ps,[n("div",Ls,[e[40]||(e[40]=n("span",{class:"font-medium text-[15px]"},"处方详情",-1)),l.value.doctor_name?(s(),m("span",Os,[e[36]||(e[36]=d(" 开方人:",-1)),n("span",Ts,i(l.value.doctor_name),1)])):p("",!0),!b.readonly&&l.value.prescription_id&&_.value&&!String(l.value.prescription_detail_error||"").trim()?J((s(),c(w,{key:1,type:"default",size:"small",link:"",onClick:e[1]||(e[1]=u=>j("patch-rx-patient"))},{default:a(()=>[...e[37]||(e[37]=[d(" 改患者信息 ",-1)])]),_:1})),[[F,["tcm.prescriptionOrder/patchPrescriptionPatient"]]]):p("",!0),!b.readonly&&l.value.prescription_id&&fe.value?(s(),c(w,{key:2,type:"primary",size:"small",link:"",onClick:e[2]||(e[2]=u=>j("view-prescription"))},{default:a(()=>[...e[38]||(e[38]=[d(" 详细 ",-1)])]),_:1})):p("",!0),!b.readonly&&l.value.id&&fe.value?(s(),c(w,{key:3,type:"warning",size:"small",link:"",loading:b.gancaoPreviewLoading,icon:k(ra),onClick:e[3]||(e[3]=u=>j("test-gancao-preview"))},{default:a(()=>[...e[39]||(e[39]=[d(" 测试价格 ",-1)])]),_:1},8,["loading","icon"])):p("",!0)]),n("span",zs,"ID: "+i(l.value.prescription_id||"—"),1)])]),default:a(()=>[l.value.prescription_audit_status===1?(s(),m("div",Ss,[...e[34]||(e[34]=[n("div",{class:"stamp-inner"},"审核通过",-1)])])):p("",!0),l.value.prescription_audit_status===2?(s(),m("div",Vs,[...e[35]||(e[35]=[n("div",{class:"stamp-inner"},"已驳回",-1)])])):p("",!0),!b.readonly&&String(l.value.prescription_detail_error||"").trim()?(s(),c(v,{key:2,title:l.value.prescription_detail_error,type:"warning",closable:!1,"show-icon":"",class:"mb-3"},null,8,["title"])):_.value?(s(),m(O,{key:3},[r(tt,{column:2,border:"",size:"small",class:"po-desc bg-white"},{default:a(()=>[r(f,{label:"处方编号",span:2},{default:a(()=>[d(i(_.value.sn||"—"),1)]),_:1}),r(f,{label:"患者"},{default:a(()=>[d(i(_.value.patient_name||"—"),1)]),_:1}),r(f,{label:"性别 / 年龄"},{default:a(()=>[d(i(_.value.gender_desc||"—")+" · "+i(_.value.age??"—")+"岁 ",1)]),_:1}),r(f,{label:"手机"},{default:a(()=>[n("span",{class:K(ae.value?"rx-phone-mismatch text-red-600 font-bold":"")},i(_.value.phone||"—"),3),ae.value?(s(),c(o,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-2 align-middle"},{default:a(()=>[...e[41]||(e[41]=[d(" 与订单手机不一致 ",-1)])]),_:1})):p("",!0)]),_:1}),r(f,{label:"处方日期"},{default:a(()=>[d(i(_.value.prescription_date||"—"),1)]),_:1}),r(f,{label:"医师"},{default:a(()=>[d(i(_.value.doctor_name||"—"),1)]),_:1}),r(f,{label:"类型"},{default:a(()=>[d(i(_.value.prescription_type||"—"),1)]),_:1}),r(f,{label:"临床诊断",span:2},{default:a(()=>[d(i(_.value.clinical_diagnosis||"—"),1)]),_:1}),fe.value?(s(),c(f,{key:0,label:"剂数 / 用法",span:2},{default:a(()=>[d(i(l.value.dose_count??_.value.dose_count??"—")+" "+i(l.value.dose_unit||"剂")+" · "+i(_.value.usage_instruction||_.value.usage_method||"—"),1)]),_:1})):p("",!0),r(f,{label:"处方金额"},{default:a(()=>[n("span",As,"¥"+i(_.value.amount??"—"),1)]),_:1}),r(f,{label:"消费者审核"},{default:a(()=>[r(o,{type:k(Ca)(_.value.audit_status),size:"small"},{default:a(()=>[d(i(k(Ea)(_.value.audit_status)),1)]),_:1},8,["type"])]),_:1}),r(f,{label:"用量"},{default:a(()=>[n("div",Ds,[n("div",null,[q.value?(s(),m("span",Us,"主方:")):p("",!0),_.value.dosage_amount?(s(),m(O,{key:1},[d(i(_.value.dosage_amount)+i(_.value.dosage_unit||"g")+" ",1),_.value.prescription_type==="浓缩水丸"?(s(),m(O,{key:0},[d(" · "+i(Number(_.value.dosage_bag_count)>0?Number(_.value.dosage_bag_count):1)+"袋 ",1)],64)):p("",!0),_.value.prescription_type==="饮片"&&_.value.need_decoction!==null?(s(),m("span",Cs," ("+i(_.value.need_decoction?"代煎":"不代煎")+") ",1)):p("",!0)],64)):(s(),m(O,{key:2},[d("—")],64))]),q.value&&T.value?(s(),m("div",Es,[e[42]||(e[42]=n("span",{class:"text-gray-500 mr-1"},"辅方:",-1)),T.value.dosage_amount!=null&&T.value.dosage_amount!==0?(s(),m(O,{key:0},[d(i(T.value.dosage_amount)+i(_.value.dosage_unit||"g")+" ",1),_.value.prescription_type==="浓缩水丸"?(s(),m(O,{key:0},[d(" · "+i(Number(T.value.dosage_bag_count)>0?Number(T.value.dosage_bag_count):1)+"袋 ",1)],64)):p("",!0),_.value.prescription_type==="饮片"?(s(),m("span",Is," ("+i(T.value.need_decoction?"代煎":"不代煎")+") ",1)):p("",!0)],64)):(s(),m(O,{key:1},[d("—")],64))])):p("",!0)])]),_:1}),r(f,null,{label:a(()=>[n("div",js,[e[44]||(e[44]=n("span",null,"服用方式",-1)),!b.readonly&&l.value.prescription_id&&_.value&&!String(l.value.prescription_detail_error||"").trim()?J((s(),c(w,{key:0,type:"primary",size:"small",link:"",onClick:Dt},{default:a(()=>[...e[43]||(e[43]=[d(" 修改 ",-1)])]),_:1})),[[F,["tcm.prescriptionOrder/patchPrescriptionUsage"]]]):p("",!0)])]),default:a(()=>[n("div",Rs,[q.value?(s(),m(O,{key:0},[n("div",null,[e[45]||(e[45]=n("span",{class:"text-gray-500 mr-1"},"主方:",-1)),d(" 每天 "+i(_.value.times_per_day?_.value.times_per_day+" 次":"— 次")+" · 处方开立 "+i(_.value.usage_days!=null&&_.value.usage_days!==""?_.value.usage_days+" 天":"— 天"),1)]),T.value?(s(),m("div",qs,[e[46]||(e[46]=n("span",{class:"text-gray-500 mr-1"},"辅方:",-1)),d(" 每天 "+i(T.value.times_per_day?T.value.times_per_day+" 次":"— 次")+" · 处方开立 "+i(T.value.usage_days!=null&&Number(T.value.usage_days)>0?T.value.usage_days+" 天":"— 天"),1)])):p("",!0)],64)):(s(),m(O,{key:1},[n("div",null,[e[47]||(e[47]=n("span",{class:"text-gray-500"},"每天次数:",-1)),d(" "+i(_.value.times_per_day?_.value.times_per_day+" 次":"—"),1)]),n("div",null,[e[48]||(e[48]=n("span",{class:"text-gray-500"},"处方开立:",-1)),d(" "+i(_.value.usage_days!=null&&_.value.usage_days!==""?_.value.usage_days+" 天":"—"),1)])],64)),n("div",null,[e[49]||(e[49]=n("span",{class:"text-gray-500"},"订单设置:",-1)),d(" "+i(l.value.medication_days!=null&&String(l.value.medication_days).trim()!==""?l.value.medication_days+" 天":"—"),1)])])]),_:1}),je.value?(s(),c(f,{key:1,label:"忌口",span:2},{default:a(()=>[d(i(je.value),1)]),_:1})):p("",!0),r(f,{label:"状态",span:2},{default:a(()=>[r(o,{type:Number(_.value.void_status)===1?"danger":"success",size:"small"},{default:a(()=>[d(i(Number(_.value.void_status)===1?"已作废":"正常"),1)]),_:1},8,["type"])]),_:1})]),_:1}),!b.readonly&&Vt.value?(s(),m("div",Bs,[e[50]||(e[50]=n("div",{class:"text-xs font-medium text-gray-500 mb-2 px-1"},"药材明细",-1)),Me.value.length?(s(),c(Te,{key:0,data:Me.value,size:"small",border:"",stripe:"","max-height":"260"},{default:a(()=>[r(N,{type:"index",label:"#",width:"48",align:"center"}),r(N,{prop:"name",label:"药名","min-width":"120","show-overflow-tooltip":""}),r(N,{prop:"dosage",label:"用量(g)",width:"96",align:"right"})]),_:1},8,["data"])):(s(),c(X,{key:1,description:"无处方药材明细","image-size":64}))])):p("",!0)],64)):(s(),c(X,{key:4,description:"无处方数据","image-size":72}))]),_:1}),n("div",Fs,[r(D,{shadow:"never",class:"po-panel border-gray-100"},{header:a(()=>[...e[51]||(e[51]=[n("div",{class:"flex items-center justify-between"},[n("span",{class:"font-medium text-[15px]"},"未关联的收款记录"),n("span",{class:"text-xs text-gray-400"},"本诊单下未被占用的支付单")],-1)])]),default:a(()=>[G.value.length?(s(),c(Te,{key:0,data:G.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:a(()=>[r(N,{prop:"id",label:"ID",width:"70"}),r(N,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),r(N,{label:"类型",width:"90"},{default:a(({row:u})=>[d(i(u.order_type_desc||k(Ee)(u.order_type)),1)]),_:1}),r(N,{label:"金额",width:"86",align:"right"},{default:a(({row:u})=>[n("span",$s,"¥"+i(u.amount),1)]),_:1}),r(N,{label:"状态",width:"100",align:"center"},{default:a(({row:u})=>[r(o,{type:k(mt)(u.status),size:"small"},{default:a(()=>[d(i(u.status_desc||k(ct)(u.status)),1)]),_:2},1032,["type"]),!b.readonly&&u.is_exempt===1?(s(),c(o,{key:0,type:"warning",size:"small",class:"ml-1"},{default:a(()=>[...e[52]||(e[52]=[d("豁免",-1)])]),_:1})):p("",!0)]),_:1}),b.readonly?p("",!0):(s(),c(N,{key:0,label:"方式","min-width":"120","show-overflow-tooltip":""},{default:a(({row:u})=>[d(i(k(_t)(u)),1)]),_:1})),r(N,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),r(N,{label:"创建时间","min-width":"136"},{default:a(({row:u})=>[d(i(k(yt)(u.create_time)),1)]),_:1})]),_:1},8,["data"])):(s(),c(X,{key:1,description:"无未关联的收款单","image-size":60}))]),_:1}),r(D,{shadow:"never",class:"po-panel po-panel-pay border-gray-100 relative overflow-hidden"},{header:a(()=>[n("div",Js,[n("div",Ks,[e[56]||(e[56]=n("span",{class:"font-medium text-[15px]"},"关联收款记录",-1)),l.value.creator_name?(s(),m("span",Ws,[e[55]||(e[55]=d(" 创建人:",-1)),n("span",Gs,i(l.value.creator_name),1)])):p("",!0)])])]),default:a(()=>[l.value.payment_slip_audit_status===1?(s(),m("div",Ms,[...e[53]||(e[53]=[n("div",{class:"stamp-inner"},"审核通过",-1)])])):p("",!0),l.value.payment_slip_audit_status===2?(s(),m("div",Hs,[...e[54]||(e[54]=[n("div",{class:"stamp-inner"},"已驳回",-1)])])):p("",!0),be.value.length?(s(),c(Te,{key:2,data:be.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:a(()=>[r(N,{prop:"id",label:"ID",width:"70"}),r(N,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),r(N,{label:"类型",width:"90"},{default:a(({row:u})=>[d(i(u.order_type_desc||k(Ee)(u.order_type)),1)]),_:1}),r(N,{label:"金额",width:"86",align:"right"},{default:a(({row:u})=>[n("span",Qs,"¥"+i(u.amount),1)]),_:1}),r(N,{label:"状态",width:"100",align:"center"},{default:a(({row:u})=>[r(o,{type:k(mt)(u.status),size:"small"},{default:a(()=>[d(i(u.status_desc||k(ct)(u.status)),1)]),_:2},1032,["type"]),!b.readonly&&u.is_exempt===1?(s(),c(o,{key:0,type:"warning",size:"small",class:"ml-1"},{default:a(()=>[...e[57]||(e[57]=[d("豁免",-1)])]),_:1})):p("",!0)]),_:1}),b.readonly?p("",!0):(s(),c(N,{key:0,label:"方式","min-width":"120","show-overflow-tooltip":""},{default:a(({row:u})=>[d(i(k(_t)(u)),1)]),_:1})),r(N,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),r(N,{label:"创建时间","min-width":"136"},{default:a(({row:u})=>[d(i(k(yt)(u.create_time)),1)]),_:1}),Ie.value?(s(),c(N,{key:1,label:"操作",width:"80",fixed:"right",align:"center"},{default:a(({row:u})=>[r(w,{type:"danger",size:"small",link:"",loading:te.value===Number(u.id),disabled:te.value!==null||![2,5].includes(Number(u.status)),title:Number(u.status)===4?"已退款收款记录不可移除":"解除关联并更新已付金额,总金额不变",onClick:L=>ht(u)},{default:a(()=>[...e[58]||(e[58]=[d("移除",-1)])]),_:1},8,["loading","disabled","title","onClick"])]),_:1})):p("",!0)]),_:1},8,["data"])):(s(),c(X,{key:3,description:"未关联收款单","image-size":60}))]),_:1})])]),r(D,{shadow:"never",class:"po-panel po-panel-biz border-gray-100 mb-4"},{header:a(()=>[...e[59]||(e[59]=[n("span",{class:"font-medium text-[15px]"},"履约与收货信息",-1)])]),default:a(()=>[r(tt,{column:3,border:"",size:"small",class:"po-desc"},{default:a(()=>[r(f,{label:"诊单ID",span:3},{default:a(()=>[n("span",Zs,i(l.value.diagnosis_id),1),!b.readonly&&Number(l.value.diagnosis_id)>0?(s(),c(w,{key:0,type:"primary",link:"",size:"small",class:"ml-2 align-baseline",onClick:e[4]||(e[4]=u=>j("view-patient"))},{default:a(()=>[...e[60]||(e[60]=[d(" 查看患者信息 ",-1)])]),_:1})):p("",!0)]),_:1}),r(f,{label:"创建时间",span:1},{default:a(()=>[d(i(k(Ue)(l.value.create_time)),1)]),_:1}),r(f,{label:"业务订单创建人",span:2},{default:a(()=>[Number(l.value.creator_id)>0||l.value.creator_name?(s(),m("div",Xs,[n("div",null,[n("span",Ys,i(l.value.creator_name||"—"),1),!b.readonly&&Number(l.value.creator_id)>0?(s(),m("span",el,"ID "+i(l.value.creator_id),1)):p("",!0)]),Be.value?(s(),m("div",tl,i(Be.value),1)):p("",!0)])):(s(),m("span",al,"—"))]),_:1}),r(f,{label:"创建人所属部门",span:3},{default:a(()=>[qe.value.length?(s(),m("div",sl,[(s(!0),m(O,null,Y(qe.value,(u,L)=>(s(),m("div",{key:L,class:"min-w-0"},[u.length?(s(),c(Ft,{key:0,class:"po-diagnosis-creator-dept-breadcrumb text-[13px] leading-relaxed",separator:"/"},{default:a(()=>[(s(!0),m(O,null,Y(u,(M,ye)=>(s(),c(Bt,{key:ye},{default:a(()=>[n("span",ll,i(M),1)]),_:2},1024))),128))]),_:2},1024)):p("",!0)]))),128))])):(s(),m("span",rl,"—"))]),_:1}),r(f,{label:"收货人"},{default:a(()=>[d(i(l.value.recipient_name),1)]),_:1}),b.readonly?p("",!0):(s(),c(f,{key:0,label:"挂号关联",span:3},{default:a(()=>[A.value?(s(),m(O,{key:0},[n("div",il,[n("span",null,[e[61]||(e[61]=d("流转编号(挂号) ",-1)),n("span",nl,"#"+i(A.value.id),1)]),n("span",ol,"时间:"+i(A.value.appointment_date)+" "+i(A.value.period)+" "+i(A.value.appointment_time),1),r(o,{size:"small",type:"info"},{default:a(()=>[d(i(A.value.appointment_type_desc),1)]),_:1}),r(o,{size:"small"},{default:a(()=>[d(i(A.value.status_desc),1)]),_:1}),A.value.doctor_name?(s(),m("span",ul,"接诊:"+i(A.value.doctor_name),1)):p("",!0),$e.value?(s(),m("span",dl,"渠道:"+i($e.value),1)):p("",!0),Fe.value?(s(),c(o,{key:2,size:"small",effect:"plain"},{default:a(()=>[d(i(Fe.value),1)]),_:1})):p("",!0)]),String(A.value.remark||"").trim()?(s(),m("p",pl," 备注:"+i(A.value.remark),1)):p("",!0)],64)):(s(),m("span",ml,"暂无挂号预约记录(未绑定或诊单下无预约)"))]),_:1})),r(f,{label:"收货手机"},{default:a(()=>[n("span",{class:K(ae.value?"text-red-600 font-bold font-mono":"font-mono")},i(l.value.recipient_phone||"—"),3),ae.value?(s(),c(o,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-2 align-middle"},{default:a(()=>[...e[62]||(e[62]=[d(" 与处方手机不一致 ",-1)])]),_:1})):p("",!0)]),_:1}),r(f,{label:"收货地址",span:2},{default:a(()=>[d(i(Pt.value),1)]),_:1}),r(f,{label:"复诊"},{default:a(()=>[d(i(l.value.is_follow_up?"是":"否"),1)]),_:1}),r(f,{label:"用药疗程"},{default:a(()=>[d(i(l.value.medication_days?l.value.medication_days+" 天":"—"),1)]),_:1}),r(f,{label:"上次医护"},{default:a(()=>[d(i(l.value.prev_staff||"—"),1)]),_:1}),r(f,{label:"服务渠道"},{default:a(()=>[d(i(l.value.service_channel||"—"),1)]),_:1}),r(f,{label:"服务套餐"},{default:a(()=>[d(i(Lt.value),1)]),_:1}),r(f,{label:"费用类别"},{default:a(()=>[d(i(k(Ee)(l.value.fee_type)),1)]),_:1}),He.value?(s(),c(f,{key:1,label:"内部成本"},{default:a(()=>[d(" ¥"+i(l.value.internal_cost),1)]),_:1})):p("",!0),r(f,{label:"快递单号",span:He.value?1:2},{default:a(()=>[d(i(l.value.tracking_number||"—"),1)]),_:1},8,["span"]),r(f,{label:"快递公司"},{default:a(()=>[d(i(k(Ia)(l.value.express_company)),1)]),_:1}),J((s(),c(f,{label:"药房备注",span:3},{default:a(()=>[d(i(l.value.remark_extra||"—"),1)]),_:1})),[[F,["tcm.prescriptionOrder/editRemarkExtra"]]]),r(f,{label:"医助备注",span:3},{default:a(()=>[d(i(l.value.remark_assistant||"—"),1)]),_:1}),r(f,{label:"处方审核意见",span:3},{default:a(()=>[n("span",cl,i(l.value.prescription_audit_remark||"—"),1)]),_:1}),r(f,{label:"支付审核意见",span:3},{default:a(()=>[n("span",_l,i(l.value.payment_slip_audit_remark||"—"),1)]),_:1})]),_:1})]),_:1}),b.loadRelatedData&&String(l.value.tracking_number||"").trim()?(s(),c(D,{key:3,shadow:"never",class:K(["po-panel po-panel-logistics",!b.readonly&&B.value.show?"!border-2 !border-red-500 shadow-md shadow-red-500/10":"border-gray-100"])},{header:a(()=>[n("div",yl,[e[64]||(e[64]=n("span",{class:"font-medium text-[15px]"},"物流轨迹",-1)),n("span",vl,i(l.value.tracking_number),1),!b.readonly&&B.value.show?(s(),c(o,{key:0,type:"danger",effect:"dark",size:"small"},{default:a(()=>[...e[63]||(e[63]=[d(" 拒收/退回 · 待处理 ",-1)])]),_:1})):p("",!0)])]),default:a(()=>{var u,L,M,ye,it,nt;return[b.readonly?p("",!0):(s(),m("p",fl," 优先读库,无记录时走快递100。顺丰会校验单号+电话(快递100要求完整手机号更易通过);默认预填订单收货手机,若仍提示验证码错误请改成与顺丰面单一致的号码。 ")),n("div",gl,[r(_e,{modelValue:re.value,"onUpdate:modelValue":e[5]||(e[5]=H=>re.value=H),clearable:"",maxlength:"20",placeholder:"收件手机(建议11位,与面单一致)",class:"w-[180px]",onKeyup:ua(ie,["enter"])},null,8,["modelValue"]),r(ze,{modelValue:Z.value,"onUpdate:modelValue":e[6]||(e[6]=H=>Z.value=H),placeholder:"承运商",style:{width:"140px"}},{default:a(()=>[r(C,{label:"自动识别",value:"auto"}),r(C,{label:"顺丰速运",value:"sf"}),r(C,{label:"京东快递",value:"jd"}),r(C,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),J((s(),c(w,{type:"primary",plain:"",size:"default",loading:me.value,onClick:ie},{icon:a(()=>[r(Ae,null,{default:a(()=>[r(k(ca))]),_:1})]),default:a(()=>[e[65]||(e[65]=d(" 刷新轨迹 ",-1))]),_:1},8,["loading"])),[[F,["tcm.prescriptionOrder/logisticsTrace"]]]),b.readonly?p("",!0):J((s(),c(w,{key:0,type:"warning",plain:"",size:"default",loading:Ve.value,onClick:jt},{icon:a(()=>[r(Ae,null,{default:a(()=>[r(k(_a))]),_:1})]),default:a(()=>[e[66]||(e[66]=d(" 京东接口更新 ",-1))]),_:1},8,["loading"])),[[F,["tcm.prescriptionOrder/logisticsTrace"]]]),b.readonly?p("",!0):(s(),m("div",bl,[r(De,{href:Oe.value.sf,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:a(()=>[...e[67]||(e[67]=[d("顺丰官网",-1)])]),_:1},8,["href"]),r(De,{href:Oe.value.jd,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:a(()=>[...e[68]||(e[68]=[d("京东物流",-1)])]),_:1},8,["href"]),r(De,{href:Oe.value.jt,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:a(()=>[...e[69]||(e[69]=[d("极兔",-1)])]),_:1},8,["href"])]))]),!b.readonly&&String(((u=P.value)==null?void 0:u.hint)||"").trim()?(s(),c(v,{key:1,title:String(((L=P.value)==null?void 0:L.hint)||""),type:"info",closable:!1,class:"mb-4","show-icon":""},null,8,["title"])):p("",!0),me.value&&!P.value?(s(),m("div",xl,[r(Ae,{class:"is-loading mr-1"},{default:a(()=>[r(k(va))]),_:1}),e[70]||(e[70]=d("正在加载物流轨迹... ",-1))])):P.value?(s(),m("div",kl,[(M=P.value)!=null&&M.state_text?(s(),m("div",wl,[n("span",hl,"状态:"+i(P.value.state_text),1),(ye=P.value)!=null&&ye.carrier_label?(s(),c(o,{key:0,size:"small",type:"info"},{default:a(()=>[d(i(P.value.carrier_label),1)]),_:1})):p("",!0),!b.readonly&&((it=P.value)!=null&&it.source)?(s(),m("span",Nl," ["+i(P.value.source==="database"?"数据库缓存":"API拉取")+"] ",1)):p("",!0),!b.readonly&&((nt=P.value)!=null&&nt.last_query_time)?(s(),m("span",Sl," 更新时间:"+i(P.value.last_query_time),1)):p("",!0)])):p("",!0),Xe.value.length?(s(),c(st,{key:1,class:"mt-2 pl-2"},{default:a(()=>[(s(!0),m(O,null,Y(Xe.value,(H,ve)=>(s(),c(at,{key:ve,type:ve===0?"primary":"info",hollow:ve!==0,timestamp:H.time,placement:"top"},{default:a(()=>[n("span",{class:K([ve===0?"text-gray-800 font-medium":"text-gray-500",!b.readonly&&k(ja)(H.context)?"!text-red-700 font-semibold bg-red-50 px-1.5 py-0.5 rounded":""])},i(H.context),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(s(),c(X,{key:2,description:"暂无轨迹节点记录","image-size":64}))])):p("",!0)]}),_:1},8,["class"])):p("",!0),b.loadRelatedData?J((s(),c(D,{key:4,shadow:"never",class:"po-panel border-gray-100 mt-4"},{header:a(()=>[n("div",Vl,[e[72]||(e[72]=n("span",{class:"font-medium text-[15px]"},"操作日志",-1)),Tt()?(s(),c(w,{key:0,type:"primary",link:"",size:"small",onClick:Et},{default:a(()=>[...e[71]||(e[71]=[d(" 新增日志 ",-1)])]),_:1})):p("",!0)])]),default:a(()=>[W.value.length?(s(),c(st,{key:0,class:"mt-2 pl-2"},{default:a(()=>[(s(!0),m(O,null,Y(W.value,(u,L)=>(s(),c(at,{key:u.id,type:L===0?"primary":"info",hollow:L!==0,timestamp:k(Ue)(u.create_time),placement:"top"},{default:a(()=>[n("div",Pl,[n("span",Ll,i(u.admin_name),1),r(o,{size:"small",type:"info"},{default:a(()=>[d(i(k(Ra)(u.action)),1)]),_:2},1024)]),n("span",{class:K(L===0?"text-gray-800 font-medium":"text-gray-500")},i(u.summary),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(s(),c(X,{key:1,description:"暂无操作日志","image-size":64}))]),_:1})),[[F,["tcm.prescriptionOrder/logs"]]]):p("",!0),r(rt,{modelValue:se.value,"onUpdate:modelValue":e[13]||(e[13]=u=>se.value=u),title:"新增操作日志",width:"520px","close-on-click-modal":!1,"destroy-on-close":"","append-to-body":"",onClosed:Ge},{footer:a(()=>[r(w,{onClick:e[12]||(e[12]=u=>se.value=!1)},{default:a(()=>[...e[73]||(e[73]=[d("取消",-1)])]),_:1}),r(w,{type:"primary",loading:he.value,onClick:It},{default:a(()=>[...e[74]||(e[74]=[d("保存",-1)])]),_:1},8,["loading"])]),default:a(()=>[r(lt,{ref_key:"addLogFormRef",ref:pe,model:g,rules:zt,"label-width":"108px"},{default:a(()=>[r(E,{label:"日志内容",prop:"summary"},{default:a(()=>[r(_e,{modelValue:g.summary,"onUpdate:modelValue":e[7]||(e[7]=u=>g.summary=u),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"记录本次操作说明、沟通结果等"},null,8,["modelValue"])]),_:1}),ke.value?(s(),c(E,{key:0,label:"处方审核"},{default:a(()=>[r(ze,{modelValue:g.prescription_audit_status,"onUpdate:modelValue":e[8]||(e[8]=u=>g.prescription_audit_status=u),class:"w-full",clearable:"",placeholder:"不修改"},{default:a(()=>[r(C,{label:"待审核",value:0}),r(C,{label:"已通过",value:1}),r(C,{label:"已驳回",value:2})]),_:1},8,["modelValue"]),l.value?(s(),m("div",Ol," 当前:"+i(k(vt)(l.value.prescription_audit_status)),1)):p("",!0)]),_:1})):p("",!0),ke.value&&g.prescription_audit_status!==""&&g.prescription_audit_status!==null&&g.prescription_audit_status!==void 0?(s(),c(E,{key:1,label:"处方审核意见"},{default:a(()=>[r(_e,{modelValue:g.prescription_audit_remark,"onUpdate:modelValue":e[9]||(e[9]=u=>g.prescription_audit_remark=u),type:"textarea",rows:2,maxlength:"500","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1})):p("",!0),we.value?(s(),c(E,{key:2,label:"支付单审核"},{default:a(()=>[r(ze,{modelValue:g.payment_slip_audit_status,"onUpdate:modelValue":e[10]||(e[10]=u=>g.payment_slip_audit_status=u),class:"w-full",clearable:"",placeholder:"不修改"},{default:a(()=>[r(C,{label:"待审核",value:0}),r(C,{label:"已通过",value:1}),r(C,{label:"已驳回",value:2})]),_:1},8,["modelValue"]),l.value?(s(),m("div",Tl," 当前:"+i(k(vt)(l.value.payment_slip_audit_status)),1)):p("",!0)]),_:1})):p("",!0),we.value&&g.payment_slip_audit_status!==""&&g.payment_slip_audit_status!==null&&g.payment_slip_audit_status!==void 0?(s(),c(E,{key:3,label:"支付审核意见"},{default:a(()=>[r(_e,{modelValue:g.payment_slip_audit_remark,"onUpdate:modelValue":e[11]||(e[11]=u=>g.payment_slip_audit_remark=u),type:"textarea",rows:2,maxlength:"500","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1})):p("",!0)]),_:1},8,["model"])]),_:1},8,["modelValue"]),r(rt,{modelValue:le.value,"onUpdate:modelValue":e[20]||(e[20]=u=>le.value=u),title:"修改服用参数",width:"480px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:Ut},{footer:a(()=>[r(w,{onClick:e[19]||(e[19]=u=>le.value=!1)},{default:a(()=>[...e[80]||(e[80]=[d("取消",-1)])]),_:1}),r(w,{type:"primary",loading:Ne.value,onClick:Ct},{default:a(()=>[...e[81]||(e[81]=[d("保存",-1)])]),_:1},8,["loading"])]),default:a(()=>[r(lt,{ref_key:"patchUsageFormRef",ref:Se,model:h,rules:At.value,"label-width":"108px"},{default:a(()=>[q.value?(s(),m("div",zl,"主方")):p("",!0),r(E,{label:"每天次数",prop:"times_per_day"},{default:a(()=>[r(ne,{modelValue:h.times_per_day,"onUpdate:modelValue":e[14]||(e[14]=u=>h.times_per_day=u),min:1,max:6,step:1,"controls-position":"right",class:"w-full"},null,8,["modelValue"])]),_:1}),r(E,{label:"处方开立",prop:"usage_days"},{default:a(()=>[n("div",Al,[r(ne,{modelValue:h.usage_days,"onUpdate:modelValue":e[15]||(e[15]=u=>h.usage_days=u),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[75]||(e[75]=n("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1}),q.value?(s(),m(O,{key:1},[e[77]||(e[77]=n("div",{class:"text-xs font-medium text-gray-500 mb-3 mt-2 pt-2 border-t border-gray-100"},"辅方",-1)),r(E,{label:"每天次数",prop:"aux_times_per_day"},{default:a(()=>[r(ne,{modelValue:h.aux_times_per_day,"onUpdate:modelValue":e[16]||(e[16]=u=>h.aux_times_per_day=u),min:1,max:6,step:1,"controls-position":"right",class:"w-full"},null,8,["modelValue"])]),_:1}),r(E,{label:"处方开立",prop:"aux_usage_days"},{default:a(()=>[n("div",Dl,[r(ne,{modelValue:h.aux_usage_days,"onUpdate:modelValue":e[17]||(e[17]=u=>h.aux_usage_days=u),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[76]||(e[76]=n("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1})],64)):p("",!0),e[79]||(e[79]=n("div",{class:"text-xs font-medium text-gray-500 mb-3 mt-2 pt-2 border-t border-gray-100"},"订单设置",-1)),r(E,{label:"服用天数",prop:"medication_days"},{default:a(()=>[n("div",Ul,[r(ne,{modelValue:h.medication_days,"onUpdate:modelValue":e[18]||(e[18]=u=>h.medication_days=u),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[78]||(e[78]=n("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue"])])):p("",!0)]}),_:3},8,["modelValue","append-to-body"])}}}),Bl=Ua(El,[["__scopeId","data-v-3fe6d04f"]]);export{Bl as default};
+import{o as xt,ap as Mt,bn as Ht,q as s,O as c,B as Jt,D as a,bZ as Kt,r as m,bm as Wt,s as n,L as d,T as i,P as p,F as O,G as Y,bk as Gt,v as r,b_ as Qt,b$ as Zt,u as k,bh as Xt,ac as J,K as Yt,ae as K,c0 as ea,c1 as ta,bi as aa,bj as sa,bB as la,bA as ra,U as ia,S as na,b7 as oa,b8 as ua,bf as da,bg as pa,w as ma,by as ca,c2 as _a,br as ya,b5 as va,c3 as fa,c4 as ga,bt as ba,b9 as xa,b6 as ka,J as wa,ah as ot,p as x,M as V,ba as ut,n as ha}from"./.pnpm-BuKxIMgQ.js";import{e as Na,f as Sa,h as Va,i as Pa,j as La,k as Oa,l as Ta,m as za}from"./tcm-BZvWmp4G.js";import{u as Aa,j as I,n as Da,_ as Ua}from"./index-BZAvl557.js";import{f as Ue,a as dt,c as pt,b as Ce,d as Ca,e as Ea,g as Ee,p as mt,o as ct,h as _t,i as yt,j as Ia,l as ja,k as Ra,m as vt,n as qa,q as Ba,T as Fa,P as ft,r as $a,s as Ma,t as gt,u as Ha,v as bt,w as Ja,x as Ka,y as Wa}from"./prescription-order-utils-CXfs2Bra.js";const Ga={class:"po-detail-drawer-head flex items-center justify-between"},Qa={class:"flex items-center"},Za={key:0,class:"flex items-center gap-2 mr-6"},Xa={key:1,class:"po-detail-body px-6 pb-6 h-full overflow-y-auto"},Ya={class:"text-sm leading-relaxed"},es={class:"font-mono font-semibold text-red-700"},ts={class:"font-mono font-semibold text-red-700"},as={class:"text-sm leading-relaxed space-y-1.5"},ss={key:0,class:"flex flex-wrap gap-1.5 items-center"},ls={key:1,class:"list-disc pl-5 space-y-1 text-red-50"},rs={key:2,class:"bg-gray-50/80 border border-gray-100 rounded-lg p-5 mb-5 shadow-sm"},is={key:0,class:"text-red-500 font-medium"},ns={key:1},os={key:2,class:"text-green-600"},us={key:3,class:"text-gray-400"},ds={key:0,class:"text-red-500 font-medium"},ps={key:1},ms={key:2,class:"text-green-600"},cs={key:3,class:"text-gray-400"},_s={key:0,class:"text-amber-600 font-medium"},ys={key:1,class:"text-primary font-medium"},vs={key:2},fs={key:3,class:"text-green-600"},gs={key:4,class:"text-red-500 font-medium"},bs={class:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-4 mb-5"},xs={class:"flex items-center justify-between mb-1"},ks={class:"stat-value text-red-500 font-bold text-xl"},ws={class:"stat-value text-green-600 font-bold text-xl"},hs={class:"stat-value text-primary font-bold text-xl"},Ns={class:"grid grid-cols-1 md:grid-cols-2 gap-4 mb-4"},Ss={key:0,class:"audit-stamp stamp-pass"},Vs={key:1,class:"audit-stamp stamp-reject"},Ps={class:"flex items-center justify-between"},Ls={class:"flex items-center gap-3"},Os={key:0,class:"text-xs text-gray-500"},Ts={class:"text-primary font-medium"},zs={class:"text-xs text-gray-400"},As={class:"text-red-500 font-medium"},Ds={class:"flex flex-col gap-1 text-sm leading-relaxed"},Us={key:0,class:"text-gray-500 mr-1"},Cs={key:1,class:"ml-2 text-gray-500"},Es={key:0},Is={key:1,class:"ml-2 text-gray-500"},js={class:"flex items-center gap-1"},Rs={class:"flex flex-col gap-1.5 text-sm leading-relaxed"},qs={key:0},Bs={key:0,class:"mt-4"},Fs={class:"flex flex-col gap-4 h-full"},$s={class:"text-red-500"},Ms={key:0,class:"audit-stamp stamp-pass"},Hs={key:1,class:"audit-stamp stamp-reject"},Js={class:"flex items-center justify-between"},Ks={class:"flex items-center gap-3"},Ws={key:0,class:"text-xs text-gray-500"},Gs={class:"text-primary font-medium"},Qs={class:"text-red-500"},Zs={class:"font-mono"},Xs={key:0,class:"text-[13px] space-y-1"},Ys={class:"font-medium text-gray-900"},el={key:0,class:"text-gray-500 ml-2 font-mono text-xs"},tl={key:0,class:"text-gray-600 text-xs leading-relaxed"},al={key:1,class:"text-gray-400"},sl={key:0,class:"space-y-1.5"},ll={class:"text-gray-800 break-all"},rl={key:1,class:"text-gray-400"},il={class:"flex flex-wrap items-center gap-x-4 gap-y-1 text-[13px]"},nl={class:"font-mono text-primary"},ol={class:"text-gray-500"},ul={key:0},dl={key:1,class:"text-gray-500"},pl={key:0,class:"text-xs text-gray-500 mt-1"},ml={key:1,class:"text-gray-400"},cl={class:"po-audit-remark"},_l={class:"po-audit-remark"},yl={class:"flex items-center gap-2 flex-wrap"},vl={class:"text-xs text-gray-400 font-mono"},fl={key:0,class:"po-logistics-tip text-gray-400 text-xs mb-3 font-normal"},gl={class:"flex flex-wrap items-center gap-3 mb-4"},bl={key:1,class:"ml-2 flex items-center gap-4 border-l pl-4 border-gray-200"},xl={key:2,class:"py-6 text-center text-sm text-gray-500"},kl={key:3,class:"logistics-content bg-gray-50/50 p-4 rounded-md"},wl={key:0,class:"text-sm mb-4 font-medium flex items-center gap-2"},hl={class:"text-gray-800"},Nl={key:1,class:"text-xs text-gray-400 ml-1"},Sl={key:2,class:"text-xs text-gray-400"},Vl={class:"flex items-center justify-between gap-2"},Pl={class:"flex items-center gap-2 mb-1"},Ll={class:"font-medium text-[13px]"},Ol={key:0,class:"text-xs text-gray-400 mt-1"},Tl={key:0,class:"text-xs text-gray-400 mt-1"},zl={key:0,class:"text-xs font-medium text-gray-500 mb-3"},Al={class:"flex items-center gap-1 w-full"},Dl={class:"flex items-center gap-1 w-full"},Ul={class:"flex items-center gap-1 w-full"},Cl=xt({name:"PrescriptionOrderDetailDrawer"}),El=xt({...Cl,props:{readonly:{type:Boolean,default:!1},gancaoPreviewLoading:{type:Boolean,default:!1},appendToBody:{type:Boolean,default:!1},detailLoader:{type:Function,default:void 0},loadRelatedData:{type:Boolean,default:!0}},emits:["update-amount","patch-rx-patient","view-prescription","test-gancao-preview","view-patient","detail-changed"],setup(b,{expose:kt,emit:wt}){const U=b,j=wt,ee=Aa(),fe=x(()=>{const t=ee.userInfo;if(!t||Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(o=>Number(o)):[];return e.includes(Fa)?e.some(o=>ft.includes(o)):!0}),R=V(!1),ge=V(!1),l=V(null),W=V([]),G=V([]),te=V(null),Ie=x(()=>!U.readonly&&pt(l.value)&&We("tcm.prescriptionOrder/unlinkPayOrder"));async function ht(t){var y,v,S;const e=Number((y=l.value)==null?void 0:y.id),o=Number(t.id);if(!(!Ie.value||!e||!o||te.value!==null)&&[2,5].includes(Number(t.status))){te.value=o;try{if(await I.confirm(`确定移除收款记录「${t.order_no||"#"+o}」(¥${Ce(t.amount)})?仅解除关联,原收款记录保留;订单总金额不变,已付金额与需代收金额按剩余关联收款重新计算。`),!R.value||Number((v=l.value)==null?void 0:v.id)!==e)return;const z=await Na({id:e,pay_order_id:o}),w=(z==null?void 0:z.data)??z;Number((S=l.value)==null?void 0:S.id)===e&&Number(w==null?void 0:w.id)===e&&Object.assign(l.value,w),I.msgSuccess("收款关联已移除,金额已同步更新"),j("detail-changed"),await et(e)}catch{}finally{te.value=null}}}const _=x(()=>{var e;const t=(e=l.value)==null?void 0:e.prescription;return t&&typeof t=="object"?t:null}),je=x(()=>{var t;return $a((t=_.value)==null?void 0:t.dietary_taboo)}),be=x(()=>{const t=l.value;if(!t)return[];const e=t.linked_pay_orders;return Array.isArray(e)?e:[]}),Re=x(()=>{const t=l.value;if(!t)return 0;const e=t.agency_collect_amount;if(e!=null&&e!=="")return Number(e)||0;const o=Number(t.amount)||0,y=Number(t.linked_pay_paid_total)||0;return Math.round((o-y)*100)/100}),oe=x(()=>{if(!l.value)return 0;const t=Number(l.value.fulfillment_status),e=Number(l.value.prescription_audit_status),o=Number(l.value.payment_slip_audit_status);return t===3||[8,9,10,11,12].includes(t)?5:t===6||t===5||t===7?4:t===4?e===2?1:o===2?2:3:t===2?3:e===0||e===2?1:o===0||o===2?2:3}),ue=x(()=>{var e;const t=Number((e=l.value)==null?void 0:e.prescription_audit_status);return t===1?"success":t===2?"error":oe.value===1?"process":"wait"}),de=x(()=>{var e;const t=Number((e=l.value)==null?void 0:e.payment_slip_audit_status);return t===1?"success":t===2?"error":oe.value===2?"process":"wait"}),Q=x(()=>{var e;const t=Number((e=l.value)==null?void 0:e.fulfillment_status);return t===3||t===5||t===6||t===8||t===11||t===12?"success":t===4||t===9||t===10?"error":t===7||oe.value===3?"process":"wait"}),ae=x(()=>{var o,y;const t=(o=_.value)==null?void 0:o.phone,e=(y=l.value)==null?void 0:y.recipient_phone;return Ma(e,t)}),Nt=x(()=>{var e;return gt((e=_.value)==null?void 0:e.phone)||"—"}),St=x(()=>{var e;return gt((e=l.value)==null?void 0:e.recipient_phone)||"—"}),qe=x(()=>{var e,o;const t=String(((e=l.value)==null?void 0:e.order_creator_dept_path)??((o=l.value)==null?void 0:o.diagnosis_creator_dept_path)??"").trim();return t?t.split(";").map(y=>y.trim()).filter(Boolean).map(y=>y.includes(" / ")?y.split(" / ").map(v=>v.trim()).filter(Boolean):y.split("/").map(v=>v.trim()).filter(Boolean)).filter(y=>y.length>0):[]}),Be=x(()=>{const t=l.value;if(!t)return"";const e=String(t.creator_account??"").trim(),o=String(t.creator_mobile??"").trim(),y=[];return e&&y.push(`登录账号:${e}`),o&&y.push(`手机:${o}`),y.join(" · ")}),A=x(()=>{var e;const t=(e=l.value)==null?void 0:e.linked_appointment;return t&&typeof t=="object"?t:null}),Fe=x(()=>{var e;const t=String(((e=A.value)==null?void 0:e.resolved_from)||"");return t==="prescription"?"处方绑定挂号":t==="diagnosis"?"诊单关联挂号":""}),$e=x(()=>{const t=A.value;if(!t)return"";const e=String(t.channel_source_desc??"").trim();return e||String(t.channel_source??"").trim()}),Me=x(()=>{var t;return Ha((t=_.value)==null?void 0:t.herbs)}),q=x(()=>bt(_.value)),T=x(()=>{const t=_.value;if(!t||!bt(t))return null;const e=t.aux_usage;return e==null||e===""||Array.isArray(e)&&e.length===0?null:Ja(e,t.prescription_type||"浓缩水丸")}),Vt=x(()=>{var t;return((t=l.value)==null?void 0:t.prescription_detail_herbs_visible)!==!1}),He=x(()=>{var t,e;return!U.readonly&&((t=l.value)==null?void 0:t.internal_cost)!=null&&((e=l.value)==null?void 0:e.internal_cost)!==""}),Pt=x(()=>{const t=l.value;if(!t)return"—";const e=[];return t.shipping_province&&e.push(t.shipping_province),t.shipping_city&&e.push(t.shipping_city),t.shipping_district&&e.push(t.shipping_district),t.shipping_address&&e.push(t.shipping_address),e.length>0?e.join(" "):"—"}),xe=V([]);async function Je(){if(!(xe.value.length>0))try{const t=await Da({type:"server_order"}),e=qa(t==null?void 0:t.server_order);e.length>0&&(xe.value=e)}catch{}}const Lt=x(()=>{var t;return Ka((t=l.value)==null?void 0:t.service_package,xe.value)});Mt(()=>{Je()});function Ot(){const t=ee.perms||[];return t.includes("*")||t.includes("tcm.prescriptionOrder/logs")}async function Ke(t){if(!Ot()){W.value=[];return}try{const e=await Oa({id:t});W.value=(e==null?void 0:e.data)??e??[]}catch{W.value=[]}}function We(t){const e=ee.perms||[];return e.includes("*")||e.includes(t)}function Tt(){return We("tcm.prescriptionOrder/addLog")}const ke=x(()=>{const t=ee.userInfo;return!t||Number(t.root)===1?!0:(Array.isArray(t.role_ids)?t.role_ids.map(o=>Number(o)):[]).some(o=>ft.includes(o))}),we=x(()=>{const t=ee.userInfo;return!t||Number(t.root)===1?!0:(Array.isArray(t.role_ids)?t.role_ids.map(o=>Number(o)):[]).some(o=>[0,3].includes(o))}),se=V(!1),he=V(!1),pe=V(),g=ut({summary:"",prescription_audit_status:"",payment_slip_audit_status:"",prescription_audit_remark:"",payment_slip_audit_remark:""}),zt={summary:[{required:!0,message:"请填写日志内容",trigger:"blur"}]},le=V(!1),Ne=V(!1),Se=V(),h=ut({times_per_day:3,usage_days:7,aux_times_per_day:3,aux_usage_days:7,medication_days:void 0}),At=x(()=>{const t={times_per_day:[{required:!0,message:"请填写主方每天次数",trigger:"change"}],usage_days:[{required:!0,message:"请填写主方开立天数",trigger:"change"}],medication_days:[{required:!0,message:"请填写订单服用天数",trigger:"change"}]};return q.value&&(t.aux_times_per_day=[{required:!0,message:"请填写辅方每天次数",trigger:"change"}],t.aux_usage_days=[{required:!0,message:"请填写辅方开立天数",trigger:"change"}]),t});function Dt(){const t=_.value,e=l.value;if(!t||!(e!=null&&e.id)||!e.prescription_id){I.msgWarning("无处方数据");return}const o=T.value;h.times_per_day=Number(t.times_per_day)>0?Number(t.times_per_day):3,h.usage_days=Number(t.usage_days)>0?Number(t.usage_days):7,h.aux_times_per_day=o&&Number(o.times_per_day)>0?Number(o.times_per_day):3,h.aux_usage_days=o&&Number(o.usage_days)>0?Number(o.usage_days):7;const y=Number(e.medication_days);h.medication_days=y>0?y:Number(t.usage_days)>0?Number(t.usage_days):7,le.value=!0,ha(()=>{var v;return(v=Se.value)==null?void 0:v.clearValidate()})}function Ut(){h.times_per_day=3,h.usage_days=7,h.aux_times_per_day=3,h.aux_usage_days=7,h.medication_days=void 0}async function Ct(){var o;const t=Se.value;if(!t)return;try{await t.validate()}catch{return}const e=(o=l.value)==null?void 0:o.id;if(e){Ne.value=!0;try{const y={id:e,times_per_day:Number(h.times_per_day),usage_days:Number(h.usage_days),medication_days:Number(h.medication_days)};q.value&&(y.aux_times_per_day=Number(h.aux_times_per_day),y.aux_usage_days=Number(h.aux_usage_days)),await Sa(y),I.msgSuccess("保存成功"),le.value=!1,await ce(),j("detail-changed")}catch{}finally{Ne.value=!1}}}function Ge(){var t;g.summary="",g.prescription_audit_status="",g.payment_slip_audit_status="",g.prescription_audit_remark="",g.payment_slip_audit_remark="",(t=pe.value)==null||t.clearValidate()}function Et(){var e;if(!((e=l.value)!=null&&e.id))return;Ge();const t=l.value;g.prescription_audit_remark=String(t.prescription_audit_remark||""),g.payment_slip_audit_remark=String(t.payment_slip_audit_remark||""),se.value=!0}async function It(){var t;if(!(!pe.value||!((t=l.value)!=null&&t.id))){await pe.value.validate(),he.value=!0;try{const e={id:l.value.id,summary:g.summary.trim()};ke.value&&g.prescription_audit_status!==""&&g.prescription_audit_status!==null&&g.prescription_audit_status!==void 0&&(e.prescription_audit_status=g.prescription_audit_status,e.prescription_audit_remark=g.prescription_audit_remark),we.value&&g.payment_slip_audit_status!==""&&g.payment_slip_audit_status!==null&&g.payment_slip_audit_status!==void 0&&(e.payment_slip_audit_status=g.payment_slip_audit_status,e.payment_slip_audit_remark=g.payment_slip_audit_remark),await Va(e),I.msgSuccess("日志已添加"),se.value=!1,await ce(),j("detail-changed")}catch{}finally{he.value=!1}}}async function Qe(t,e,o){var y;if(!t){G.value=[];return}try{const v=await Ta({diagnosis_id:t,prescription_order_id:e}),S=(v==null?void 0:v.lists)??((y=v==null?void 0:v.data)==null?void 0:y.lists)??[],z=Array.isArray(S)?S.filter(w=>!o.includes(w.id)):[];G.value=z}catch{G.value=[]}}const Z=V("auto"),me=V(!1),Ve=V(!1),P=V(null),re=V("");let Pe=0;function Ze(){Pe+=1,P.value=null}function Le(t){var e,o;return t.requestSeq!==Pe||Number((e=l.value)==null?void 0:e.id)!==t.orderId?!1:String(((o=l.value)==null?void 0:o.tracking_number)||"").trim()===t.trackingNumber}const Oe=x(()=>{var o;const t=String(((o=l.value)==null?void 0:o.tracking_number)||"").trim();if(!t)return{sf:"javascript:void(0)",jd:"javascript:void(0)",jt:"javascript:void(0)"};const e=encodeURIComponent(t);return{sf:`https://www.sf-express.com/cn/sc/dynamic_function/waybill/#search/bill-number/${e}`,jd:`https://www.jdl.com/#/trackQuery?waybillCode=${e}`,jt:`https://www.jtexpress.com.cn/index/query/gzquery.html?bills=${e}`}}),Xe=x(()=>{const t=P.value;return!t||!Array.isArray(t.traces)?[]:t.traces}),B=x(()=>Wa(P.value));async function ie(){var v,S;const t=Number((v=l.value)==null?void 0:v.id),e=String(((S=l.value)==null?void 0:S.tracking_number)||"").trim();if(!t||!e)return;const y={requestSeq:++Pe,orderId:t,trackingNumber:e};me.value=!0;try{const z=String(re.value||"").replace(/\D/g,""),w={id:t,express_company:Z.value};z.length>=4&&(w.phone_tail=z);const D=await Pa(w);if(!Le(y))return;P.value=Ba(D,e,t)}catch{if(!Le(y))return;P.value=null}finally{Le(y)&&(me.value=!1)}}async function jt(){var o,y;const t=Number((o=l.value)==null?void 0:o.id),e=String(((y=l.value)==null?void 0:y.tracking_number)||"").trim();if(!t||!e){I.msgWarning("当前订单未填写快递单号");return}Ve.value=!0;try{const v=await La({id:t});I.msgSuccess((v==null?void 0:v.message)||"京东物流轨迹已更新"),await ie()}catch(v){I.msgError((v==null?void 0:v.message)||"京东物流更新失败")}finally{Ve.value=!1}}function Ye(t){return U.detailLoader?U.detailLoader({id:t}):za({id:t})}async function Rt(t){Je(),l.value=null,G.value=[],Ze(),Z.value="auto",re.value="",W.value=[],R.value=!0,ge.value=!0;try{const e=await Ye(t),o=(e==null?void 0:e.data)??e??null;if(l.value=o,o){Z.value=String(o.express_company||"auto")||"auto";const y=String(o.recipient_phone||"").replace(/\D/g,"");re.value=y.length>=4?y:"",U.loadRelatedData&&String(o.tracking_number||"").trim()&&ie(),U.loadRelatedData&&Ke(t);const v=o.diagnosis_id,S=o.pay_order_ids||[];U.loadRelatedData&&v&&Qe(v,t,S)}}catch(e){I.msgError((e==null?void 0:e.message)||"加载失败"),R.value=!1}finally{ge.value=!1}}async function ce(){var e,o;const t=Number((e=l.value)==null?void 0:e.id);if(t)try{const y=await Ye(t),v=(y==null?void 0:y.data)??y??null;if(!v)return;const S=String(((o=l.value)==null?void 0:o.tracking_number)||"").trim();l.value=v;const z=String(v.tracking_number||"").trim();U.loadRelatedData&&z&&z!==S&&(Ze(),Z.value=String(v.express_company||"auto")||"auto",ie()),U.loadRelatedData&&Ke(t);const w=v.diagnosis_id;U.loadRelatedData&&w&&Qe(w,t,v.pay_order_ids||[])}catch{}}async function et(t){var o;const e=Number(t);!R.value||!(e>0)||Number((o=l.value)==null?void 0:o.id)!==e||await ce()}function qt(){R.value=!1}return kt({open:Rt,refresh:ce,refreshIfCurrent:et,close:qt,detail:l,visible:R}),(t,e)=>{const o=Gt,y=Kt,v=Wt,S=Zt,z=Qt,w=Yt,D=Xt,f=ta,tt=ea,N=sa,Te=aa,X=la,Bt=na,Ft=ia,_e=oa,C=pa,ze=da,Ae=ma,De=ya,at=ga,st=fa,E=ka,lt=xa,rt=ba,ne=wa,$t=Jt,F=Ht("perms");return s(),c($t,{modelValue:R.value,"onUpdate:modelValue":e[21]||(e[21]=$=>R.value=$),class:"po-detail-drawer",size:"80%","destroy-on-close":"","close-on-click-modal":!1,"append-to-body":b.appendToBody},{header:a(()=>{var $,u,L;return[n("div",Ga,[n("div",Qa,[e[22]||(e[22]=n("span",{class:"po-detail-drawer-title text-gray-800 font-semibold text-lg"},"业务订单详情",-1)),($=l.value)!=null&&$.order_no?(s(),c(o,{key:0,type:"primary",effect:"plain",round:"",class:"ml-3"},{default:a(()=>[d(i(l.value.order_no),1)]),_:1})):p("",!0),(u=l.value)!=null&&u.gancao_reciperl_order_no?(s(),c(o,{key:1,type:"success",effect:"plain",round:"",class:"ml-2"},{default:a(()=>[d("甘草 "+i(l.value.gancao_reciperl_order_no),1)]),_:1})):p("",!0),(L=l.value)!=null&&L.ej_pharmacy_order_no?(s(),c(o,{key:2,type:"warning",effect:"plain",round:"",class:"ml-2"},{default:a(()=>[d("洛阳 "+i(l.value.ej_pharmacy_order_no),1)]),_:1})):p("",!0),l.value?ot(t.$slots,"header-extra",{key:3,detail:l.value},void 0,!0):p("",!0)]),l.value?(s(),m("div",Za,[ot(t.$slots,"header-actions",{detail:l.value},void 0,!0)])):p("",!0)])]}),default:a(()=>{var $;return[ge.value?(s(),c(y,{key:0,rows:12,animated:"",class:"px-6 py-4"})):l.value?(s(),m("div",Xa,[!b.readonly&&ae.value?(s(),c(v,{key:0,type:"error",closable:!1,"show-icon":"",class:"mb-4 !items-start",title:"业务订单收货手机与处方登记手机不一致"},{default:a(()=>[n("div",Ya,[n("div",null,[e[23]||(e[23]=d(" 处方手机: ",-1)),n("span",es,i(Nt.value),1)]),n("div",null,[e[24]||(e[24]=d(" 订单收货手机: ",-1)),n("span",ts,i(St.value),1)]),e[25]||(e[25]=n("div",{class:"text-gray-600 mt-1"},"请核对是否代收货或录入错误,避免物流与回访联系错人。",-1))])]),_:1})):p("",!0),!b.readonly&&B.value.show&&String((($=l.value)==null?void 0:$.tracking_number)||"").trim()?(s(),c(v,{key:1,type:"error",effect:"dark",closable:!1,"show-icon":"",class:"mb-4 !items-start ring-2 ring-red-600/90 shadow-lg",title:"物流异常:轨迹中出现拒收 / 退回等字样,请优先跟进处理"},{default:a(()=>[n("div",as,[B.value.keywords.length?(s(),m("div",ss,[e[26]||(e[26]=n("span",{class:"text-red-100 text-xs"},"命中关键词:",-1)),(s(!0),m(O,null,Y(B.value.keywords,u=>(s(),c(o,{key:u,type:"danger",effect:"plain",size:"small",class:"!border-white/40 !text-white"},{default:a(()=>[d(i(u),1)]),_:2},1024))),128))])):p("",!0),B.value.lines.length?(s(),m("ul",ls,[(s(!0),m(O,null,Y(B.value.lines,(u,L)=>(s(),m("li",{key:L},i(u),1))),128))])):p("",!0),e[27]||(e[27]=n("div",{class:"text-xs text-red-100/90 pt-1 border-t border-white/15"}," 请核实是否需改址重发、拦截退件或协调患者签收,并在备注中记录处理结果。 ",-1))])]),_:1})):p("",!0),b.readonly?p("",!0):(s(),m("div",rs,[r(z,{active:oe.value,"align-center":"","finish-status":"success"},{default:a(()=>[r(S,{title:"业务订单创建",description:k(Ue)(l.value.create_time)},null,8,["description"]),r(S,{title:"处方单双审",status:ue.value},{description:a(()=>[ue.value==="error"?(s(),m("span",is,"处方被驳回")):ue.value==="wait"?(s(),m("span",ns,"等待审核")):ue.value==="success"?(s(),m("span",os,"双审通过")):(s(),m("span",us,"进行中"))]),_:1},8,["status"]),r(S,{title:"支付单审核",status:de.value},{description:a(()=>[de.value==="error"?(s(),m("span",ds,"支付审核驳回")):de.value==="wait"?(s(),m("span",ps,"等待审核")):de.value==="success"?(s(),m("span",ms,"审核通过")):(s(),m("span",cs,"进行中"))]),_:1},8,["status"]),r(S,{title:"发货与履约",status:Q.value},{description:a(()=>{var u,L,M;return[Q.value==="process"&&Number((u=l.value)==null?void 0:u.fulfillment_status)===7?(s(),m("span",_s,"进行中")):Q.value==="process"?(s(),m("span",ys,"等待发货/补充单号")):Q.value==="wait"?(s(),m("span",vs,"待转入履约")):Q.value==="success"?(s(),m("span",fs,i(k(dt)((L=l.value)==null?void 0:L.fulfillment_status)),1)):Q.value==="error"?(s(),m("span",gs,i(k(dt)((M=l.value)==null?void 0:M.fulfillment_status)),1)):p("",!0)]}),_:1},8,["status"]),r(S,{title:"订单完成"})]),_:1},8,["active"])])),n("div",bs,[r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[n("div",xs,[e[29]||(e[29]=n("div",{class:"stat-title text-gray-500 text-xs"},"总金额",-1)),!b.readonly&&k(pt)(l.value)?J((s(),c(w,{key:0,type:"primary",size:"small",link:"",onClick:e[0]||(e[0]=u=>j("update-amount"))},{default:a(()=>[...e[28]||(e[28]=[d(" 修改 ",-1)])]),_:1})),[[F,["tcm.prescriptionOrder/updateAmount"]]]):p("",!0)]),n("div",ks,"¥"+i(l.value.amount),1)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[30]||(e[30]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"已付总额",-1)),n("div",ws,"¥"+i(l.value.linked_pay_paid_total||0),1)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[31]||(e[31]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"退款金额",-1)),n("div",{class:K(["stat-value font-bold text-xl",Number(l.value.refund_amount)>0?"text-rose-500":"text-gray-400"])}," ¥"+i(k(Ce)(l.value.refund_amount||0)),3)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[32]||(e[32]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"需代收",-1)),n("div",{class:K(["stat-value font-bold text-xl",Re.value>0?"text-amber-600":"text-gray-500"])}," ¥"+i(k(Ce)(Re.value)),3)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[33]||(e[33]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"已付笔数",-1)),n("div",hs,i(be.value.length)+" 笔",1)]),_:1})]),n("div",Ns,[r(D,{shadow:"never",class:"po-panel po-panel-rx border-gray-100 h-full relative overflow-hidden"},{header:a(()=>[n("div",Ps,[n("div",Ls,[e[40]||(e[40]=n("span",{class:"font-medium text-[15px]"},"处方详情",-1)),l.value.doctor_name?(s(),m("span",Os,[e[36]||(e[36]=d(" 开方人:",-1)),n("span",Ts,i(l.value.doctor_name),1)])):p("",!0),!b.readonly&&l.value.prescription_id&&_.value&&!String(l.value.prescription_detail_error||"").trim()?J((s(),c(w,{key:1,type:"default",size:"small",link:"",onClick:e[1]||(e[1]=u=>j("patch-rx-patient"))},{default:a(()=>[...e[37]||(e[37]=[d(" 改患者信息 ",-1)])]),_:1})),[[F,["tcm.prescriptionOrder/patchPrescriptionPatient"]]]):p("",!0),!b.readonly&&l.value.prescription_id&&fe.value?(s(),c(w,{key:2,type:"primary",size:"small",link:"",onClick:e[2]||(e[2]=u=>j("view-prescription"))},{default:a(()=>[...e[38]||(e[38]=[d(" 详细 ",-1)])]),_:1})):p("",!0),!b.readonly&&l.value.id&&fe.value?(s(),c(w,{key:3,type:"warning",size:"small",link:"",loading:b.gancaoPreviewLoading,icon:k(ra),onClick:e[3]||(e[3]=u=>j("test-gancao-preview"))},{default:a(()=>[...e[39]||(e[39]=[d(" 测试价格 ",-1)])]),_:1},8,["loading","icon"])):p("",!0)]),n("span",zs,"ID: "+i(l.value.prescription_id||"—"),1)])]),default:a(()=>[l.value.prescription_audit_status===1?(s(),m("div",Ss,[...e[34]||(e[34]=[n("div",{class:"stamp-inner"},"审核通过",-1)])])):p("",!0),l.value.prescription_audit_status===2?(s(),m("div",Vs,[...e[35]||(e[35]=[n("div",{class:"stamp-inner"},"已驳回",-1)])])):p("",!0),!b.readonly&&String(l.value.prescription_detail_error||"").trim()?(s(),c(v,{key:2,title:l.value.prescription_detail_error,type:"warning",closable:!1,"show-icon":"",class:"mb-3"},null,8,["title"])):_.value?(s(),m(O,{key:3},[r(tt,{column:2,border:"",size:"small",class:"po-desc bg-white"},{default:a(()=>[r(f,{label:"处方编号",span:2},{default:a(()=>[d(i(_.value.sn||"—"),1)]),_:1}),r(f,{label:"患者"},{default:a(()=>[d(i(_.value.patient_name||"—"),1)]),_:1}),r(f,{label:"性别 / 年龄"},{default:a(()=>[d(i(_.value.gender_desc||"—")+" · "+i(_.value.age??"—")+"岁 ",1)]),_:1}),r(f,{label:"手机"},{default:a(()=>[n("span",{class:K(ae.value?"rx-phone-mismatch text-red-600 font-bold":"")},i(_.value.phone||"—"),3),ae.value?(s(),c(o,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-2 align-middle"},{default:a(()=>[...e[41]||(e[41]=[d(" 与订单手机不一致 ",-1)])]),_:1})):p("",!0)]),_:1}),r(f,{label:"处方日期"},{default:a(()=>[d(i(_.value.prescription_date||"—"),1)]),_:1}),r(f,{label:"医师"},{default:a(()=>[d(i(_.value.doctor_name||"—"),1)]),_:1}),r(f,{label:"类型"},{default:a(()=>[d(i(_.value.prescription_type||"—"),1)]),_:1}),r(f,{label:"临床诊断",span:2},{default:a(()=>[d(i(_.value.clinical_diagnosis||"—"),1)]),_:1}),fe.value?(s(),c(f,{key:0,label:"剂数 / 用法",span:2},{default:a(()=>[d(i(l.value.dose_count??_.value.dose_count??"—")+" "+i(l.value.dose_unit||"剂")+" · "+i(_.value.usage_instruction||_.value.usage_method||"—"),1)]),_:1})):p("",!0),r(f,{label:"处方金额"},{default:a(()=>[n("span",As,"¥"+i(_.value.amount??"—"),1)]),_:1}),r(f,{label:"消费者审核"},{default:a(()=>[r(o,{type:k(Ca)(_.value.audit_status),size:"small"},{default:a(()=>[d(i(k(Ea)(_.value.audit_status)),1)]),_:1},8,["type"])]),_:1}),r(f,{label:"用量"},{default:a(()=>[n("div",Ds,[n("div",null,[q.value?(s(),m("span",Us,"主方:")):p("",!0),_.value.dosage_amount?(s(),m(O,{key:1},[d(i(_.value.dosage_amount)+i(_.value.dosage_unit||"g")+" ",1),_.value.prescription_type==="浓缩水丸"?(s(),m(O,{key:0},[d(" · "+i(Number(_.value.dosage_bag_count)>0?Number(_.value.dosage_bag_count):1)+"袋 ",1)],64)):p("",!0),_.value.prescription_type==="饮片"&&_.value.need_decoction!==null?(s(),m("span",Cs," ("+i(_.value.need_decoction?"代煎":"不代煎")+") ",1)):p("",!0)],64)):(s(),m(O,{key:2},[d("—")],64))]),q.value&&T.value?(s(),m("div",Es,[e[42]||(e[42]=n("span",{class:"text-gray-500 mr-1"},"辅方:",-1)),T.value.dosage_amount!=null&&T.value.dosage_amount!==0?(s(),m(O,{key:0},[d(i(T.value.dosage_amount)+i(_.value.dosage_unit||"g")+" ",1),_.value.prescription_type==="浓缩水丸"?(s(),m(O,{key:0},[d(" · "+i(Number(T.value.dosage_bag_count)>0?Number(T.value.dosage_bag_count):1)+"袋 ",1)],64)):p("",!0),_.value.prescription_type==="饮片"?(s(),m("span",Is," ("+i(T.value.need_decoction?"代煎":"不代煎")+") ",1)):p("",!0)],64)):(s(),m(O,{key:1},[d("—")],64))])):p("",!0)])]),_:1}),r(f,null,{label:a(()=>[n("div",js,[e[44]||(e[44]=n("span",null,"服用方式",-1)),!b.readonly&&l.value.prescription_id&&_.value&&!String(l.value.prescription_detail_error||"").trim()?J((s(),c(w,{key:0,type:"primary",size:"small",link:"",onClick:Dt},{default:a(()=>[...e[43]||(e[43]=[d(" 修改 ",-1)])]),_:1})),[[F,["tcm.prescriptionOrder/patchPrescriptionUsage"]]]):p("",!0)])]),default:a(()=>[n("div",Rs,[q.value?(s(),m(O,{key:0},[n("div",null,[e[45]||(e[45]=n("span",{class:"text-gray-500 mr-1"},"主方:",-1)),d(" 每天 "+i(_.value.times_per_day?_.value.times_per_day+" 次":"— 次")+" · 处方开立 "+i(_.value.usage_days!=null&&_.value.usage_days!==""?_.value.usage_days+" 天":"— 天"),1)]),T.value?(s(),m("div",qs,[e[46]||(e[46]=n("span",{class:"text-gray-500 mr-1"},"辅方:",-1)),d(" 每天 "+i(T.value.times_per_day?T.value.times_per_day+" 次":"— 次")+" · 处方开立 "+i(T.value.usage_days!=null&&Number(T.value.usage_days)>0?T.value.usage_days+" 天":"— 天"),1)])):p("",!0)],64)):(s(),m(O,{key:1},[n("div",null,[e[47]||(e[47]=n("span",{class:"text-gray-500"},"每天次数:",-1)),d(" "+i(_.value.times_per_day?_.value.times_per_day+" 次":"—"),1)]),n("div",null,[e[48]||(e[48]=n("span",{class:"text-gray-500"},"处方开立:",-1)),d(" "+i(_.value.usage_days!=null&&_.value.usage_days!==""?_.value.usage_days+" 天":"—"),1)])],64)),n("div",null,[e[49]||(e[49]=n("span",{class:"text-gray-500"},"订单设置:",-1)),d(" "+i(l.value.medication_days!=null&&String(l.value.medication_days).trim()!==""?l.value.medication_days+" 天":"—"),1)])])]),_:1}),je.value?(s(),c(f,{key:1,label:"忌口",span:2},{default:a(()=>[d(i(je.value),1)]),_:1})):p("",!0),r(f,{label:"状态",span:2},{default:a(()=>[r(o,{type:Number(_.value.void_status)===1?"danger":"success",size:"small"},{default:a(()=>[d(i(Number(_.value.void_status)===1?"已作废":"正常"),1)]),_:1},8,["type"])]),_:1})]),_:1}),!b.readonly&&Vt.value?(s(),m("div",Bs,[e[50]||(e[50]=n("div",{class:"text-xs font-medium text-gray-500 mb-2 px-1"},"药材明细",-1)),Me.value.length?(s(),c(Te,{key:0,data:Me.value,size:"small",border:"",stripe:"","max-height":"260"},{default:a(()=>[r(N,{type:"index",label:"#",width:"48",align:"center"}),r(N,{prop:"name",label:"药名","min-width":"120","show-overflow-tooltip":""}),r(N,{prop:"dosage",label:"用量(g)",width:"96",align:"right"})]),_:1},8,["data"])):(s(),c(X,{key:1,description:"无处方药材明细","image-size":64}))])):p("",!0)],64)):(s(),c(X,{key:4,description:"无处方数据","image-size":72}))]),_:1}),n("div",Fs,[r(D,{shadow:"never",class:"po-panel border-gray-100"},{header:a(()=>[...e[51]||(e[51]=[n("div",{class:"flex items-center justify-between"},[n("span",{class:"font-medium text-[15px]"},"未关联的收款记录"),n("span",{class:"text-xs text-gray-400"},"本诊单下未被占用的支付单")],-1)])]),default:a(()=>[G.value.length?(s(),c(Te,{key:0,data:G.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:a(()=>[r(N,{prop:"id",label:"ID",width:"70"}),r(N,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),r(N,{label:"类型",width:"90"},{default:a(({row:u})=>[d(i(u.order_type_desc||k(Ee)(u.order_type)),1)]),_:1}),r(N,{label:"金额",width:"86",align:"right"},{default:a(({row:u})=>[n("span",$s,"¥"+i(u.amount),1)]),_:1}),r(N,{label:"状态",width:"100",align:"center"},{default:a(({row:u})=>[r(o,{type:k(mt)(u.status),size:"small"},{default:a(()=>[d(i(u.status_desc||k(ct)(u.status)),1)]),_:2},1032,["type"]),!b.readonly&&u.is_exempt===1?(s(),c(o,{key:0,type:"warning",size:"small",class:"ml-1"},{default:a(()=>[...e[52]||(e[52]=[d("豁免",-1)])]),_:1})):p("",!0)]),_:1}),b.readonly?p("",!0):(s(),c(N,{key:0,label:"方式","min-width":"120","show-overflow-tooltip":""},{default:a(({row:u})=>[d(i(k(_t)(u)),1)]),_:1})),r(N,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),r(N,{label:"创建时间","min-width":"136"},{default:a(({row:u})=>[d(i(k(yt)(u.create_time)),1)]),_:1})]),_:1},8,["data"])):(s(),c(X,{key:1,description:"无未关联的收款单","image-size":60}))]),_:1}),r(D,{shadow:"never",class:"po-panel po-panel-pay border-gray-100 relative overflow-hidden"},{header:a(()=>[n("div",Js,[n("div",Ks,[e[56]||(e[56]=n("span",{class:"font-medium text-[15px]"},"关联收款记录",-1)),l.value.creator_name?(s(),m("span",Ws,[e[55]||(e[55]=d(" 创建人:",-1)),n("span",Gs,i(l.value.creator_name),1)])):p("",!0)])])]),default:a(()=>[l.value.payment_slip_audit_status===1?(s(),m("div",Ms,[...e[53]||(e[53]=[n("div",{class:"stamp-inner"},"审核通过",-1)])])):p("",!0),l.value.payment_slip_audit_status===2?(s(),m("div",Hs,[...e[54]||(e[54]=[n("div",{class:"stamp-inner"},"已驳回",-1)])])):p("",!0),be.value.length?(s(),c(Te,{key:2,data:be.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:a(()=>[r(N,{prop:"id",label:"ID",width:"70"}),r(N,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),r(N,{label:"类型",width:"90"},{default:a(({row:u})=>[d(i(u.order_type_desc||k(Ee)(u.order_type)),1)]),_:1}),r(N,{label:"金额",width:"86",align:"right"},{default:a(({row:u})=>[n("span",Qs,"¥"+i(u.amount),1)]),_:1}),r(N,{label:"状态",width:"100",align:"center"},{default:a(({row:u})=>[r(o,{type:k(mt)(u.status),size:"small"},{default:a(()=>[d(i(u.status_desc||k(ct)(u.status)),1)]),_:2},1032,["type"]),!b.readonly&&u.is_exempt===1?(s(),c(o,{key:0,type:"warning",size:"small",class:"ml-1"},{default:a(()=>[...e[57]||(e[57]=[d("豁免",-1)])]),_:1})):p("",!0)]),_:1}),b.readonly?p("",!0):(s(),c(N,{key:0,label:"方式","min-width":"120","show-overflow-tooltip":""},{default:a(({row:u})=>[d(i(k(_t)(u)),1)]),_:1})),r(N,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),r(N,{label:"创建时间","min-width":"136"},{default:a(({row:u})=>[d(i(k(yt)(u.create_time)),1)]),_:1}),Ie.value?(s(),c(N,{key:1,label:"操作",width:"80",fixed:"right",align:"center"},{default:a(({row:u})=>[r(w,{type:"danger",size:"small",link:"",loading:te.value===Number(u.id),disabled:te.value!==null||![2,5].includes(Number(u.status)),title:Number(u.status)===4?"已退款收款记录不可移除":"解除关联并更新已付金额,总金额不变",onClick:L=>ht(u)},{default:a(()=>[...e[58]||(e[58]=[d("移除",-1)])]),_:1},8,["loading","disabled","title","onClick"])]),_:1})):p("",!0)]),_:1},8,["data"])):(s(),c(X,{key:3,description:"未关联收款单","image-size":60}))]),_:1})])]),r(D,{shadow:"never",class:"po-panel po-panel-biz border-gray-100 mb-4"},{header:a(()=>[...e[59]||(e[59]=[n("span",{class:"font-medium text-[15px]"},"履约与收货信息",-1)])]),default:a(()=>[r(tt,{column:3,border:"",size:"small",class:"po-desc"},{default:a(()=>[r(f,{label:"诊单ID",span:3},{default:a(()=>[n("span",Zs,i(l.value.diagnosis_id),1),!b.readonly&&Number(l.value.diagnosis_id)>0?(s(),c(w,{key:0,type:"primary",link:"",size:"small",class:"ml-2 align-baseline",onClick:e[4]||(e[4]=u=>j("view-patient"))},{default:a(()=>[...e[60]||(e[60]=[d(" 查看患者信息 ",-1)])]),_:1})):p("",!0)]),_:1}),r(f,{label:"创建时间",span:1},{default:a(()=>[d(i(k(Ue)(l.value.create_time)),1)]),_:1}),r(f,{label:"业务订单创建人",span:2},{default:a(()=>[Number(l.value.creator_id)>0||l.value.creator_name?(s(),m("div",Xs,[n("div",null,[n("span",Ys,i(l.value.creator_name||"—"),1),!b.readonly&&Number(l.value.creator_id)>0?(s(),m("span",el,"ID "+i(l.value.creator_id),1)):p("",!0)]),Be.value?(s(),m("div",tl,i(Be.value),1)):p("",!0)])):(s(),m("span",al,"—"))]),_:1}),r(f,{label:"创建人所属部门",span:3},{default:a(()=>[qe.value.length?(s(),m("div",sl,[(s(!0),m(O,null,Y(qe.value,(u,L)=>(s(),m("div",{key:L,class:"min-w-0"},[u.length?(s(),c(Ft,{key:0,class:"po-diagnosis-creator-dept-breadcrumb text-[13px] leading-relaxed",separator:"/"},{default:a(()=>[(s(!0),m(O,null,Y(u,(M,ye)=>(s(),c(Bt,{key:ye},{default:a(()=>[n("span",ll,i(M),1)]),_:2},1024))),128))]),_:2},1024)):p("",!0)]))),128))])):(s(),m("span",rl,"—"))]),_:1}),r(f,{label:"收货人"},{default:a(()=>[d(i(l.value.recipient_name),1)]),_:1}),b.readonly?p("",!0):(s(),c(f,{key:0,label:"挂号关联",span:3},{default:a(()=>[A.value?(s(),m(O,{key:0},[n("div",il,[n("span",null,[e[61]||(e[61]=d("流转编号(挂号) ",-1)),n("span",nl,"#"+i(A.value.id),1)]),n("span",ol,"时间:"+i(A.value.appointment_date)+" "+i(A.value.period)+" "+i(A.value.appointment_time),1),r(o,{size:"small",type:"info"},{default:a(()=>[d(i(A.value.appointment_type_desc),1)]),_:1}),r(o,{size:"small"},{default:a(()=>[d(i(A.value.status_desc),1)]),_:1}),A.value.doctor_name?(s(),m("span",ul,"接诊:"+i(A.value.doctor_name),1)):p("",!0),$e.value?(s(),m("span",dl,"渠道:"+i($e.value),1)):p("",!0),Fe.value?(s(),c(o,{key:2,size:"small",effect:"plain"},{default:a(()=>[d(i(Fe.value),1)]),_:1})):p("",!0)]),String(A.value.remark||"").trim()?(s(),m("p",pl," 备注:"+i(A.value.remark),1)):p("",!0)],64)):(s(),m("span",ml,"暂无挂号预约记录(未绑定或诊单下无预约)"))]),_:1})),r(f,{label:"收货手机"},{default:a(()=>[n("span",{class:K(ae.value?"text-red-600 font-bold font-mono":"font-mono")},i(l.value.recipient_phone||"—"),3),ae.value?(s(),c(o,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-2 align-middle"},{default:a(()=>[...e[62]||(e[62]=[d(" 与处方手机不一致 ",-1)])]),_:1})):p("",!0)]),_:1}),r(f,{label:"收货地址",span:2},{default:a(()=>[d(i(Pt.value),1)]),_:1}),r(f,{label:"复诊"},{default:a(()=>[d(i(l.value.is_follow_up?"是":"否"),1)]),_:1}),r(f,{label:"用药疗程"},{default:a(()=>[d(i(l.value.medication_days?l.value.medication_days+" 天":"—"),1)]),_:1}),r(f,{label:"上次医护"},{default:a(()=>[d(i(l.value.prev_staff||"—"),1)]),_:1}),r(f,{label:"服务渠道"},{default:a(()=>[d(i(l.value.service_channel||"—"),1)]),_:1}),r(f,{label:"服务套餐"},{default:a(()=>[d(i(Lt.value),1)]),_:1}),r(f,{label:"费用类别"},{default:a(()=>[d(i(k(Ee)(l.value.fee_type)),1)]),_:1}),He.value?(s(),c(f,{key:1,label:"内部成本"},{default:a(()=>[d(" ¥"+i(l.value.internal_cost),1)]),_:1})):p("",!0),r(f,{label:"快递单号",span:He.value?1:2},{default:a(()=>[d(i(l.value.tracking_number||"—"),1)]),_:1},8,["span"]),r(f,{label:"快递公司"},{default:a(()=>[d(i(k(Ia)(l.value.express_company)),1)]),_:1}),J((s(),c(f,{label:"药房备注",span:3},{default:a(()=>[d(i(l.value.remark_extra||"—"),1)]),_:1})),[[F,["tcm.prescriptionOrder/editRemarkExtra"]]]),r(f,{label:"医助备注",span:3},{default:a(()=>[d(i(l.value.remark_assistant||"—"),1)]),_:1}),r(f,{label:"处方审核意见",span:3},{default:a(()=>[n("span",cl,i(l.value.prescription_audit_remark||"—"),1)]),_:1}),r(f,{label:"支付审核意见",span:3},{default:a(()=>[n("span",_l,i(l.value.payment_slip_audit_remark||"—"),1)]),_:1})]),_:1})]),_:1}),b.loadRelatedData&&String(l.value.tracking_number||"").trim()?(s(),c(D,{key:3,shadow:"never",class:K(["po-panel po-panel-logistics",!b.readonly&&B.value.show?"!border-2 !border-red-500 shadow-md shadow-red-500/10":"border-gray-100"])},{header:a(()=>[n("div",yl,[e[64]||(e[64]=n("span",{class:"font-medium text-[15px]"},"物流轨迹",-1)),n("span",vl,i(l.value.tracking_number),1),!b.readonly&&B.value.show?(s(),c(o,{key:0,type:"danger",effect:"dark",size:"small"},{default:a(()=>[...e[63]||(e[63]=[d(" 拒收/退回 · 待处理 ",-1)])]),_:1})):p("",!0)])]),default:a(()=>{var u,L,M,ye,it,nt;return[b.readonly?p("",!0):(s(),m("p",fl," 优先读库,无记录时走快递100。顺丰会校验单号+电话(快递100要求完整手机号更易通过);默认预填订单收货手机,若仍提示验证码错误请改成与顺丰面单一致的号码。 ")),n("div",gl,[r(_e,{modelValue:re.value,"onUpdate:modelValue":e[5]||(e[5]=H=>re.value=H),clearable:"",maxlength:"20",placeholder:"收件手机(建议11位,与面单一致)",class:"w-[180px]",onKeyup:ua(ie,["enter"])},null,8,["modelValue"]),r(ze,{modelValue:Z.value,"onUpdate:modelValue":e[6]||(e[6]=H=>Z.value=H),placeholder:"承运商",style:{width:"140px"}},{default:a(()=>[r(C,{label:"自动识别",value:"auto"}),r(C,{label:"顺丰速运",value:"sf"}),r(C,{label:"京东快递",value:"jd"}),r(C,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),J((s(),c(w,{type:"primary",plain:"",size:"default",loading:me.value,onClick:ie},{icon:a(()=>[r(Ae,null,{default:a(()=>[r(k(ca))]),_:1})]),default:a(()=>[e[65]||(e[65]=d(" 刷新轨迹 ",-1))]),_:1},8,["loading"])),[[F,["tcm.prescriptionOrder/logisticsTrace"]]]),b.readonly?p("",!0):J((s(),c(w,{key:0,type:"warning",plain:"",size:"default",loading:Ve.value,onClick:jt},{icon:a(()=>[r(Ae,null,{default:a(()=>[r(k(_a))]),_:1})]),default:a(()=>[e[66]||(e[66]=d(" 京东接口更新 ",-1))]),_:1},8,["loading"])),[[F,["tcm.prescriptionOrder/logisticsTrace"]]]),b.readonly?p("",!0):(s(),m("div",bl,[r(De,{href:Oe.value.sf,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:a(()=>[...e[67]||(e[67]=[d("顺丰官网",-1)])]),_:1},8,["href"]),r(De,{href:Oe.value.jd,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:a(()=>[...e[68]||(e[68]=[d("京东物流",-1)])]),_:1},8,["href"]),r(De,{href:Oe.value.jt,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:a(()=>[...e[69]||(e[69]=[d("极兔",-1)])]),_:1},8,["href"])]))]),!b.readonly&&String(((u=P.value)==null?void 0:u.hint)||"").trim()?(s(),c(v,{key:1,title:String(((L=P.value)==null?void 0:L.hint)||""),type:"info",closable:!1,class:"mb-4","show-icon":""},null,8,["title"])):p("",!0),me.value&&!P.value?(s(),m("div",xl,[r(Ae,{class:"is-loading mr-1"},{default:a(()=>[r(k(va))]),_:1}),e[70]||(e[70]=d("正在加载物流轨迹... ",-1))])):P.value?(s(),m("div",kl,[(M=P.value)!=null&&M.state_text?(s(),m("div",wl,[n("span",hl,"状态:"+i(P.value.state_text),1),(ye=P.value)!=null&&ye.carrier_label?(s(),c(o,{key:0,size:"small",type:"info"},{default:a(()=>[d(i(P.value.carrier_label),1)]),_:1})):p("",!0),!b.readonly&&((it=P.value)!=null&&it.source)?(s(),m("span",Nl," ["+i(P.value.source==="database"?"数据库缓存":"API拉取")+"] ",1)):p("",!0),!b.readonly&&((nt=P.value)!=null&&nt.last_query_time)?(s(),m("span",Sl," 更新时间:"+i(P.value.last_query_time),1)):p("",!0)])):p("",!0),Xe.value.length?(s(),c(st,{key:1,class:"mt-2 pl-2"},{default:a(()=>[(s(!0),m(O,null,Y(Xe.value,(H,ve)=>(s(),c(at,{key:ve,type:ve===0?"primary":"info",hollow:ve!==0,timestamp:H.time,placement:"top"},{default:a(()=>[n("span",{class:K([ve===0?"text-gray-800 font-medium":"text-gray-500",!b.readonly&&k(ja)(H.context)?"!text-red-700 font-semibold bg-red-50 px-1.5 py-0.5 rounded":""])},i(H.context),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(s(),c(X,{key:2,description:"暂无轨迹节点记录","image-size":64}))])):p("",!0)]}),_:1},8,["class"])):p("",!0),b.loadRelatedData?J((s(),c(D,{key:4,shadow:"never",class:"po-panel border-gray-100 mt-4"},{header:a(()=>[n("div",Vl,[e[72]||(e[72]=n("span",{class:"font-medium text-[15px]"},"操作日志",-1)),Tt()?(s(),c(w,{key:0,type:"primary",link:"",size:"small",onClick:Et},{default:a(()=>[...e[71]||(e[71]=[d(" 新增日志 ",-1)])]),_:1})):p("",!0)])]),default:a(()=>[W.value.length?(s(),c(st,{key:0,class:"mt-2 pl-2"},{default:a(()=>[(s(!0),m(O,null,Y(W.value,(u,L)=>(s(),c(at,{key:u.id,type:L===0?"primary":"info",hollow:L!==0,timestamp:k(Ue)(u.create_time),placement:"top"},{default:a(()=>[n("div",Pl,[n("span",Ll,i(u.admin_name),1),r(o,{size:"small",type:"info"},{default:a(()=>[d(i(k(Ra)(u.action)),1)]),_:2},1024)]),n("span",{class:K(L===0?"text-gray-800 font-medium":"text-gray-500")},i(u.summary),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(s(),c(X,{key:1,description:"暂无操作日志","image-size":64}))]),_:1})),[[F,["tcm.prescriptionOrder/logs"]]]):p("",!0),r(rt,{modelValue:se.value,"onUpdate:modelValue":e[13]||(e[13]=u=>se.value=u),title:"新增操作日志",width:"520px","close-on-click-modal":!1,"destroy-on-close":"","append-to-body":"",onClosed:Ge},{footer:a(()=>[r(w,{onClick:e[12]||(e[12]=u=>se.value=!1)},{default:a(()=>[...e[73]||(e[73]=[d("取消",-1)])]),_:1}),r(w,{type:"primary",loading:he.value,onClick:It},{default:a(()=>[...e[74]||(e[74]=[d("保存",-1)])]),_:1},8,["loading"])]),default:a(()=>[r(lt,{ref_key:"addLogFormRef",ref:pe,model:g,rules:zt,"label-width":"108px"},{default:a(()=>[r(E,{label:"日志内容",prop:"summary"},{default:a(()=>[r(_e,{modelValue:g.summary,"onUpdate:modelValue":e[7]||(e[7]=u=>g.summary=u),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"记录本次操作说明、沟通结果等"},null,8,["modelValue"])]),_:1}),ke.value?(s(),c(E,{key:0,label:"处方审核"},{default:a(()=>[r(ze,{modelValue:g.prescription_audit_status,"onUpdate:modelValue":e[8]||(e[8]=u=>g.prescription_audit_status=u),class:"w-full",clearable:"",placeholder:"不修改"},{default:a(()=>[r(C,{label:"待审核",value:0}),r(C,{label:"已通过",value:1}),r(C,{label:"已驳回",value:2})]),_:1},8,["modelValue"]),l.value?(s(),m("div",Ol," 当前:"+i(k(vt)(l.value.prescription_audit_status)),1)):p("",!0)]),_:1})):p("",!0),ke.value&&g.prescription_audit_status!==""&&g.prescription_audit_status!==null&&g.prescription_audit_status!==void 0?(s(),c(E,{key:1,label:"处方审核意见"},{default:a(()=>[r(_e,{modelValue:g.prescription_audit_remark,"onUpdate:modelValue":e[9]||(e[9]=u=>g.prescription_audit_remark=u),type:"textarea",rows:2,maxlength:"500","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1})):p("",!0),we.value?(s(),c(E,{key:2,label:"支付单审核"},{default:a(()=>[r(ze,{modelValue:g.payment_slip_audit_status,"onUpdate:modelValue":e[10]||(e[10]=u=>g.payment_slip_audit_status=u),class:"w-full",clearable:"",placeholder:"不修改"},{default:a(()=>[r(C,{label:"待审核",value:0}),r(C,{label:"已通过",value:1}),r(C,{label:"已驳回",value:2})]),_:1},8,["modelValue"]),l.value?(s(),m("div",Tl," 当前:"+i(k(vt)(l.value.payment_slip_audit_status)),1)):p("",!0)]),_:1})):p("",!0),we.value&&g.payment_slip_audit_status!==""&&g.payment_slip_audit_status!==null&&g.payment_slip_audit_status!==void 0?(s(),c(E,{key:3,label:"支付审核意见"},{default:a(()=>[r(_e,{modelValue:g.payment_slip_audit_remark,"onUpdate:modelValue":e[11]||(e[11]=u=>g.payment_slip_audit_remark=u),type:"textarea",rows:2,maxlength:"500","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1})):p("",!0)]),_:1},8,["model"])]),_:1},8,["modelValue"]),r(rt,{modelValue:le.value,"onUpdate:modelValue":e[20]||(e[20]=u=>le.value=u),title:"修改服用参数",width:"480px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:Ut},{footer:a(()=>[r(w,{onClick:e[19]||(e[19]=u=>le.value=!1)},{default:a(()=>[...e[80]||(e[80]=[d("取消",-1)])]),_:1}),r(w,{type:"primary",loading:Ne.value,onClick:Ct},{default:a(()=>[...e[81]||(e[81]=[d("保存",-1)])]),_:1},8,["loading"])]),default:a(()=>[r(lt,{ref_key:"patchUsageFormRef",ref:Se,model:h,rules:At.value,"label-width":"108px"},{default:a(()=>[q.value?(s(),m("div",zl,"主方")):p("",!0),r(E,{label:"每天次数",prop:"times_per_day"},{default:a(()=>[r(ne,{modelValue:h.times_per_day,"onUpdate:modelValue":e[14]||(e[14]=u=>h.times_per_day=u),min:1,max:6,step:1,"controls-position":"right",class:"w-full"},null,8,["modelValue"])]),_:1}),r(E,{label:"处方开立",prop:"usage_days"},{default:a(()=>[n("div",Al,[r(ne,{modelValue:h.usage_days,"onUpdate:modelValue":e[15]||(e[15]=u=>h.usage_days=u),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[75]||(e[75]=n("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1}),q.value?(s(),m(O,{key:1},[e[77]||(e[77]=n("div",{class:"text-xs font-medium text-gray-500 mb-3 mt-2 pt-2 border-t border-gray-100"},"辅方",-1)),r(E,{label:"每天次数",prop:"aux_times_per_day"},{default:a(()=>[r(ne,{modelValue:h.aux_times_per_day,"onUpdate:modelValue":e[16]||(e[16]=u=>h.aux_times_per_day=u),min:1,max:6,step:1,"controls-position":"right",class:"w-full"},null,8,["modelValue"])]),_:1}),r(E,{label:"处方开立",prop:"aux_usage_days"},{default:a(()=>[n("div",Dl,[r(ne,{modelValue:h.aux_usage_days,"onUpdate:modelValue":e[17]||(e[17]=u=>h.aux_usage_days=u),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[76]||(e[76]=n("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1})],64)):p("",!0),e[79]||(e[79]=n("div",{class:"text-xs font-medium text-gray-500 mb-3 mt-2 pt-2 border-t border-gray-100"},"订单设置",-1)),r(E,{label:"服用天数",prop:"medication_days"},{default:a(()=>[n("div",Ul,[r(ne,{modelValue:h.medication_days,"onUpdate:modelValue":e[18]||(e[18]=u=>h.medication_days=u),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[78]||(e[78]=n("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue"])])):p("",!0)]}),_:3},8,["modelValue","append-to-body"])}}}),Bl=Ua(El,[["__scopeId","data-v-3fe6d04f"]]);export{Bl as default};
diff --git a/server/public/admin/assets/PrescriptionOrderTimeDialog-C9b_tMUk.js b/server/public/admin/assets/PrescriptionOrderTimeDialog-C9b_tMUk.js
deleted file mode 100644
index e98353f99..000000000
--- a/server/public/admin/assets/PrescriptionOrderTimeDialog-C9b_tMUk.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-BIpP1RlH.js";import"./.pnpm-BHOjf1ZS.js";import"./tcm-BkYsBTA3.js";import"./index-B31vLELt.js";export{o as default};
diff --git a/server/public/admin/assets/PrescriptionOrderTimeDialog-_1HXxqbO.js b/server/public/admin/assets/PrescriptionOrderTimeDialog-_1HXxqbO.js
new file mode 100644
index 000000000..375d5e476
--- /dev/null
+++ b/server/public/admin/assets/PrescriptionOrderTimeDialog-_1HXxqbO.js
@@ -0,0 +1 @@
+import{_ as o}from"./PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-DesUlYHv.js";import"./.pnpm-BuKxIMgQ.js";import"./tcm-BZvWmp4G.js";import"./index-BZAvl557.js";export{o as default};
diff --git a/server/public/admin/assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-BIpP1RlH.js b/server/public/admin/assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-DesUlYHv.js
similarity index 93%
rename from server/public/admin/assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-BIpP1RlH.js
rename to server/public/admin/assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-DesUlYHv.js
index 61a965f6e..a790f46e2 100644
--- a/server/public/admin/assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-BIpP1RlH.js
+++ b/server/public/admin/assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-DesUlYHv.js
@@ -1 +1 @@
-import{o as $,q as T,O as Y,D as r,v as n,b9 as w,b6 as E,s as _,T as M,bp as S,K as H,L as v,bt as B,M as p,ba as C,n as F}from"./.pnpm-BHOjf1ZS.js";import{n as O}from"./tcm-BkYsBTA3.js";import{j as q}from"./index-B31vLELt.js";const P={class:"break-all"},K=$({__name:"PrescriptionOrderTimeDialog",emits:["saved"],setup(R,{expose:b,emit:g}){const k=g,d=p(!1),t=p(!1),f=p(""),m=p(),a=C({id:0,create_time:""}),y={create_time:[{required:!0,message:"请选择创建时间",trigger:"change"}]};function D(o){const e=String(o??"").trim();if(/^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}(:\d{2})?$/.test(e))return e.replace("T"," ").padEnd(19,":00");if(!/^\d+$/.test(e)||Number(e)<=0)return"";const i=Number(e),l=new Date(i<1e11?i*1e3:i);if(Number.isNaN(l.getTime()))return"";const s=u=>String(u).padStart(2,"0");return`${l.getFullYear()}-${s(l.getMonth()+1)}-${s(l.getDate())} ${s(l.getHours())}:${s(l.getMinutes())}:${s(l.getSeconds())}`}function N(o){t.value||!Number(o.id)||(a.id=Number(o.id),a.create_time=D(o.create_time),f.value=String(o.order_no||""),d.value=!0,F(()=>{var e;return(e=m.value)==null?void 0:e.clearValidate()}))}async function x(){if(!(t.value||!m.value)){t.value=!0;try{if(!await m.value.validate().catch(()=>!1))return;await O({id:a.id,create_time:a.create_time}),q.msgSuccess("订单创建时间已修改"),d.value=!1,k("saved",a.id)}catch{}finally{t.value=!1}}}return b({open:N}),(o,e)=>{const i=E,l=S,s=w,u=H,V=B;return T(),Y(V,{modelValue:d.value,"onUpdate:modelValue":e[2]||(e[2]=c=>d.value=c),title:"修改订单创建时间",width:"min(440px, 94vw)","append-to-body":"","destroy-on-close":"","close-on-click-modal":!1,"close-on-press-escape":!t.value,"show-close":!t.value},{footer:r(()=>[n(u,{disabled:t.value,onClick:e[1]||(e[1]=c=>d.value=!1)},{default:r(()=>[...e[3]||(e[3]=[v("取消",-1)])]),_:1},8,["disabled"]),n(u,{type:"primary",loading:t.value,onClick:x},{default:r(()=>[...e[4]||(e[4]=[v("保存",-1)])]),_:1},8,["loading"])]),default:r(()=>[n(s,{ref_key:"formRef",ref:m,model:a,rules:y,"label-position":"top"},{default:r(()=>[n(i,{label:"业务订单"},{default:r(()=>[_("span",P,M(f.value||`#${a.id}`),1)]),_:1}),n(i,{label:"创建时间",prop:"create_time"},{default:r(()=>[n(l,{modelValue:a.create_time,"onUpdate:modelValue":e[0]||(e[0]=c=>a.create_time=c),type:"datetime",format:"YYYY-MM-DD HH:mm:ss","value-format":"YYYY-MM-DD HH:mm:ss",placeholder:"请选择创建时间",clearable:!1,disabled:t.value,class:"!w-full"},null,8,["modelValue","disabled"])]),_:1})]),_:1},8,["model"]),e[5]||(e[5]=_("p",{class:"text-xs text-gray-500"},"保存后,列表和业绩统计将按新的创建时间归属日期,修改记录可在订单日志中查看。",-1))]),_:1},8,["modelValue","close-on-press-escape","show-close"])}}});export{K as _};
+import{o as $,q as T,O as Y,D as r,v as n,b9 as w,b6 as E,s as _,T as M,be as S,K as H,L as v,bt as B,M as p,ba as C,n as F}from"./.pnpm-BuKxIMgQ.js";import{n as O}from"./tcm-BZvWmp4G.js";import{j as q}from"./index-BZAvl557.js";const P={class:"break-all"},K=$({__name:"PrescriptionOrderTimeDialog",emits:["saved"],setup(R,{expose:b,emit:g}){const k=g,d=p(!1),t=p(!1),f=p(""),m=p(),a=C({id:0,create_time:""}),y={create_time:[{required:!0,message:"请选择创建时间",trigger:"change"}]};function D(o){const e=String(o??"").trim();if(/^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}(:\d{2})?$/.test(e))return e.replace("T"," ").padEnd(19,":00");if(!/^\d+$/.test(e)||Number(e)<=0)return"";const i=Number(e),l=new Date(i<1e11?i*1e3:i);if(Number.isNaN(l.getTime()))return"";const s=u=>String(u).padStart(2,"0");return`${l.getFullYear()}-${s(l.getMonth()+1)}-${s(l.getDate())} ${s(l.getHours())}:${s(l.getMinutes())}:${s(l.getSeconds())}`}function N(o){t.value||!Number(o.id)||(a.id=Number(o.id),a.create_time=D(o.create_time),f.value=String(o.order_no||""),d.value=!0,F(()=>{var e;return(e=m.value)==null?void 0:e.clearValidate()}))}async function x(){if(!(t.value||!m.value)){t.value=!0;try{if(!await m.value.validate().catch(()=>!1))return;await O({id:a.id,create_time:a.create_time}),q.msgSuccess("订单创建时间已修改"),d.value=!1,k("saved",a.id)}catch{}finally{t.value=!1}}}return b({open:N}),(o,e)=>{const i=E,l=S,s=w,u=H,V=B;return T(),Y(V,{modelValue:d.value,"onUpdate:modelValue":e[2]||(e[2]=c=>d.value=c),title:"修改订单创建时间",width:"min(440px, 94vw)","append-to-body":"","destroy-on-close":"","close-on-click-modal":!1,"close-on-press-escape":!t.value,"show-close":!t.value},{footer:r(()=>[n(u,{disabled:t.value,onClick:e[1]||(e[1]=c=>d.value=!1)},{default:r(()=>[...e[3]||(e[3]=[v("取消",-1)])]),_:1},8,["disabled"]),n(u,{type:"primary",loading:t.value,onClick:x},{default:r(()=>[...e[4]||(e[4]=[v("保存",-1)])]),_:1},8,["loading"])]),default:r(()=>[n(s,{ref_key:"formRef",ref:m,model:a,rules:y,"label-position":"top"},{default:r(()=>[n(i,{label:"业务订单"},{default:r(()=>[_("span",P,M(f.value||`#${a.id}`),1)]),_:1}),n(i,{label:"创建时间",prop:"create_time"},{default:r(()=>[n(l,{modelValue:a.create_time,"onUpdate:modelValue":e[0]||(e[0]=c=>a.create_time=c),type:"datetime",format:"YYYY-MM-DD HH:mm:ss","value-format":"YYYY-MM-DD HH:mm:ss",placeholder:"请选择创建时间",clearable:!1,disabled:t.value,class:"!w-full"},null,8,["modelValue","disabled"])]),_:1})]),_:1},8,["model"]),e[5]||(e[5]=_("p",{class:"text-xs text-gray-500"},"保存后,列表和业绩统计将按新的创建时间归属日期,修改记录可在订单日志中查看。",-1))]),_:1},8,["modelValue","close-on-press-escape","show-close"])}}});export{K as _};
diff --git a/server/public/admin/assets/ProgressPanel-BvIjTzp7.js b/server/public/admin/assets/ProgressPanel-Dfz7niPK.js
similarity index 96%
rename from server/public/admin/assets/ProgressPanel-BvIjTzp7.js
rename to server/public/admin/assets/ProgressPanel-Dfz7niPK.js
index 1b77636a4..471ca031d 100644
--- a/server/public/admin/assets/ProgressPanel-BvIjTzp7.js
+++ b/server/public/admin/assets/ProgressPanel-Dfz7niPK.js
@@ -1 +1 @@
-import{o as ie,p,ap as de,aq as re,q as d,r,s as e,T as s,v as m,D as h,u as f,cP as ue,w as ce,L as v,ae as k,F as x,G as L,P as G,O as W,bB as _e,ac as pe,bi as me,bk as ve,br as ge,bj as he,C as fe,M as we,ba as be}from"./.pnpm-BHOjf1ZS.js";import{_ as ye}from"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import{d as $}from"./dayjs-CF5xpNFg.js";import{u as ke}from"./usePaging-oaNM6A9T.js";import{r as xe}from"./first_visit-ClR5pGNH.js";import{_ as De}from"./index-B31vLELt.js";const Ne={class:"progress-board"},Se={class:"board-section overview-section"},qe={class:"section-heading"},Ce={class:"heading-copy"},Me={class:"heading-badge"},$e={class:"scope-chip"},Pe={class:"overview-grid"},Ae={class:"overview-card"},Le={class:"overview-card"},Te={key:0},Ve={key:1},Ye={key:0,class:"remaining-detail"},Ee={class:"remaining-detail-heading"},ze={class:"remaining-doctor-list"},Be={class:"remaining-doctor-identity"},Re={class:"doctor-index"},Ie={class:"remaining-doctor-metrics"},Oe={class:"is-remaining"},je={class:"board-section schedule-section"},Fe={class:"section-heading"},Ue={class:"heading-copy"},Ge={class:"heading-badge"},We={class:"schedule-range"},He={class:"schedule-grid"},Je=["aria-pressed","onClick"],Ke={class:"schedule-date"},Qe={class:"schedule-card-stats"},Xe={class:"schedule-card-action"},Ze={class:"schedule-drilldown"},es={class:"drilldown-heading"},ss={key:0,class:"doctor-schedule-list"},ts={class:"doctor-identity"},ns={class:"doctor-index"},os={class:"doctor-windows"},ls={class:"doctor-metric"},as={class:"doctor-metric doctor-metric-booked"},is={key:0,class:"doctor-metric doctor-metric-completed"},ds={class:"doctor-metric doctor-metric-passed"},rs={class:"doctor-metric doctor-metric-empty"},us={class:"board-section queue-section"},cs={class:"section-heading queue-heading"},_s={class:"heading-copy"},ps={class:"queue-count"},ms={class:"queue-number"},vs={class:"patient-cell"},gs={class:"appointment-clock"},hs={key:0,class:"pagination-wrap"},fs=ie({__name:"ProgressPanel",emits:["openDiagnosis"],setup(ws,{expose:H,emit:J}){const K=J,w=$().format("YYYY-MM-DD"),b=we(w),P=be({keyword:"",status:1,start_date:w,end_date:w}),{pager:a,getLists:N,resetPage:Q}=ke({fetchFun:xe,params:P,size:15,firstLoading:!0,latestOnly:!0}),g=p(()=>{var t,o,i,_,c,S,q,C,M,n,y,B,R,I,O,j,F,U;return{totalVisits:Number(((o=(t=a.extend)==null?void 0:t.today_overview)==null?void 0:o.total_visits)||0),booked:Number(((_=(i=a.extend)==null?void 0:i.today_overview)==null?void 0:_.booked)||0),completed:Number(((S=(c=a.extend)==null?void 0:c.today_overview)==null?void 0:S.completed)||0),missed:Number(((C=(q=a.extend)==null?void 0:q.today_overview)==null?void 0:C.missed)||0),emptySlots:Number(((n=(M=a.extend)==null?void 0:M.today_overview)==null?void 0:n.empty_slots)||0),passedSlots:Number(((B=(y=a.extend)==null?void 0:y.today_overview)==null?void 0:B.passed_slots)||0),remainingSlots:Number(((I=(R=a.extend)==null?void 0:R.today_overview)==null?void 0:I.remaining_slots)??((j=(O=a.extend)==null?void 0:O.today_overview)==null?void 0:j.empty_slots)??0),doctorCount:Number(((U=(F=a.extend)==null?void 0:F.today_overview)==null?void 0:U.doctor_count)||0)}}),l=p(()=>{var t;return((t=a.extend)==null?void 0:t.schedule_mode)==="ownership"}),D=p(()=>{var o;const t=Array.isArray((o=a.extend)==null?void 0:o.week_schedule)?a.extend.week_schedule:[];return t.length?t:Array.from({length:7},(i,_)=>{const c=$().add(_,"day");return{date:c.format("YYYY-MM-DD"),date_text:c.format("MM-DD"),weekday:`周${"日一二三四五六"[c.day()]}`,total_slots:0,booked_slots:0,passed_slots:0,remaining_slots:0,empty_slots:0,doctor_count:0,doctors:[],total_appointments:0,waiting_appointments:0,completed_appointments:0,missed_appointments:0}})}),u=p(()=>D.value.find(t=>t.date===b.value)||D.value[0]||{date:w,date_text:$().format("MM-DD"),weekday:`周${"日一二三四五六"[$().day()]}`,total_slots:0,booked_slots:0,passed_slots:0,remaining_slots:0,empty_slots:0,doctor_count:0,doctors:[],total_appointments:0,waiting_appointments:0,completed_appointments:0,missed_appointments:0}),T=p(()=>{var t;return Array.isArray((t=u.value)==null?void 0:t.doctors)?u.value.doctors:[]}),V=p(()=>{const t=D.value.find(i=>i.date===w);return(Array.isArray(t==null?void 0:t.doctors)?t.doctors:[]).map(i=>({...i,remaining_slots:Number(i.remaining_slots??i.empty_slots??0),passed_slots:Number(i.passed_slots||0)})).sort((i,_)=>_.remaining_slots-i.remaining_slots||_.booked_slots-i.booked_slots||String(i.doctor_name||"").localeCompare(String(_.doctor_name||""),"zh-CN"))}),Y=p(()=>{const t=u.value;return`${t.date_text||""} ${t.weekday||""} `}),E=p(()=>b.value===w?"今日":Y.value.trim()||b.value),X=p(()=>{var t,o;return((o=(t=a.extend)==null?void 0:t.scope)==null?void 0:o.label)||"按权限加载"}),Z=p(()=>{const t=D.value;return t.length?`${t[0].date_text} 至 ${t[t.length-1].date_text}`:""});let A=null;function ee(t){return N(t)}function se(t){t&&(b.value=t,P.start_date=t,P.end_date=t,Q())}function z(t){const o=l.value?t.appointment_times:t.schedule_windows,i=Array.isArray(o)?o.filter(Boolean):[];return i.length?i.join("、"):l.value?"暂无预约时刻":"未设置具体时段"}function te(t){return String(t.appointment_time||"").slice(0,5)||"—"}function ne(t){if(t.queue_status==="consulting")return"0(进行中)";if(t.queue_status==="next")return"0(待接诊)";const o=Math.max(0,Number(t.ahead_count||0));return o===0?"0 位":`${o} 位 · 约 ${Number(t.estimated_wait_minutes||o*15)} 分钟`}function oe(t){return t==="consulting"?"success":t==="next"?"warning":t==="completed"?"success":t==="missed"?"danger":"info"}function le({row:t}){return Number(t.is_self_patient)===1?"queue-row-self":""}function ae(t){K("openDiagnosis",t)}return H({refresh:ee,loading:p(()=>a.loading)}),de(()=>{N(),A=setInterval(()=>N({silent:!0}),15e3)}),re(()=>{A&&clearInterval(A)}),(t,o)=>{const i=ce,_=_e,c=ve,S=ge,q=he,C=ye,M=me;return d(),r("div",Ne,[e("section",Se,[e("div",qe,[e("div",Ce,[o[1]||(o[1]=e("h2",null,"今日面诊概览",-1)),e("span",Me,s(l.value?"按本人归属":"与排班合并"),1)]),e("span",$e,[m(i,null,{default:h(()=>[m(f(ue))]),_:1}),v(s(X.value),1)])]),e("div",Pe,[e("article",Ae,[e("span",null,s(l.value?"今日本人面诊":"今日面诊总号源"),1),e("strong",null,s(g.value.totalVisits),1),e("small",null,s(g.value.doctorCount)+" 位"+s(l.value?"接诊":"排班")+"医生",1)]),e("article",Le,[e("span",null,s(l.value?"待面诊":"已预约"),1),e("strong",null,s(g.value.booked),1),e("small",null,s(l.value?"本人归属患者的有效挂号":"按有效挂号占用号源"),1)]),e("article",{class:k(["overview-card",l.value?"overview-card-completed":"overview-card-empty"])},[e("span",null,s(l.value?"已完成":"空号"),1),e("strong",null,s(l.value?g.value.completed:g.value.remainingSlots),1),l.value?(d(),r("small",Te,"已过号 "+s(g.value.missed)+" 人",1)):(d(),r("small",Ve,"过号 "+s(g.value.passedSlots)+" · 未挂号 "+s(g.value.remainingSlots),1))],2)]),!l.value&&V.value.length?(d(),r("div",Ye,[e("div",Ee,[o[2]||(o[2]=e("h3",null,"医生剩余号源详情",-1)),e("span",null,"合计剩余可约 "+s(g.value.remainingSlots),1)]),e("div",ze,[(d(!0),r(x,null,L(V.value,(n,y)=>(d(),r("article",{key:n.doctor_id,class:"remaining-doctor-row"},[e("div",Be,[e("span",Re,s(y+1),1),e("div",null,[e("strong",null,s(n.doctor_name),1),e("small",null,s(z(n)),1)])]),e("div",Ie,[e("span",null,[o[3]||(o[3]=v("过号 ",-1)),e("strong",null,s(n.passed_slots||0),1)]),e("span",Oe,[o[4]||(o[4]=v("未挂号 / 剩余 ",-1)),e("strong",null,s(n.remaining_slots||0),1)])])]))),128))])])):G("",!0)]),e("section",je,[e("div",Fe,[e("div",Ue,[e("h2",null,s(l.value?"近一周面诊安排":"近一周排班"),1),e("span",Ge,s(l.value?"本人患者":"今日起 7 天"),1)]),e("span",We,s(Z.value),1)]),e("div",He,[(d(!0),r(x,null,L(D.value,n=>(d(),r("button",{key:n.date,type:"button",class:k(["schedule-card",{"is-today":n.date===f(w),"is-selected":n.date===b.value}]),"aria-pressed":n.date===b.value,onClick:y=>se(n.date)},[e("span",Ke,s(n.date_text)+" "+s(n.weekday),1),e("strong",null,s(l.value?n.total_appointments:n.total_slots),1),e("span",Qe,[e("span",null,s(l.value?"待诊":"已约")+" "+s(l.value?n.waiting_appointments:n.booked_slots),1),o[5]||(o[5]=e("i",null,"/",-1)),e("span",{class:k({"is-completed":l.value})},s(l.value?"完成":"剩余")+" "+s(l.value?n.completed_appointments:n.remaining_slots??n.empty_slots),3)]),e("span",Xe,[e("span",null,s(n.doctor_count)+" 位医生",1),e("span",null,s(n.date===b.value?"正在查看":"查看明细")+" ›",1)])],10,Je))),128))]),e("div",Ze,[e("div",es,[e("div",null,[e("h3",null,s(Y.value)+s(l.value?"面诊安排":"排班明细"),1),e("p",null,"共 "+s(u.value.doctor_count)+" 位"+s(l.value?"接诊":"排班")+"医生,点击上方日期可切换",1)]),e("div",{class:k(["drilldown-summary",{"is-ownership":l.value}])},[e("span",null,[v(s(l.value?"面诊总数":"总号源")+" ",1),e("strong",null,s(l.value?u.value.total_appointments:u.value.total_slots),1)]),e("span",null,[v(s(l.value?"待面诊":"已预约")+" ",1),e("strong",null,s(l.value?u.value.waiting_appointments:u.value.booked_slots),1)]),l.value?(d(),r(x,{key:0},[e("span",null,[o[6]||(o[6]=v("已完成 ",-1)),e("strong",null,s(u.value.completed_appointments),1)]),e("span",null,[o[7]||(o[7]=v("已过号 ",-1)),e("strong",null,s(u.value.missed_appointments),1)])],64)):(d(),r(x,{key:1},[e("span",null,[o[8]||(o[8]=v("过号 ",-1)),e("strong",null,s(u.value.passed_slots||0),1)]),e("span",null,[o[9]||(o[9]=v("剩余可约 ",-1)),e("strong",null,s(u.value.remaining_slots??u.value.empty_slots),1)])],64))],2)]),T.value.length?(d(),r("div",ss,[(d(!0),r(x,null,L(T.value,(n,y)=>(d(),r("article",{key:n.doctor_id,class:k(["doctor-schedule-row",{"is-ownership":l.value}])},[e("div",ts,[e("span",ns,s(y+1),1),e("div",null,[e("strong",null,s(n.doctor_name),1),e("small",null,s(l.value?"本人患者接诊医生":"医生排班"),1)])]),e("div",os,[e("span",null,s(l.value?"预约时刻":"排班时段"),1),e("strong",null,s(z(n)),1)]),e("div",ls,[e("span",null,s(l.value?"面诊总数":"总号源"),1),e("strong",null,s(l.value?n.total_appointments:n.total_slots),1)]),e("div",as,[e("span",null,s(l.value?"待面诊":"已预约"),1),e("strong",null,s(l.value?n.waiting_appointments:n.booked_slots),1)]),l.value?(d(),r("div",is,[o[10]||(o[10]=e("span",null,"完成 / 过号",-1)),e("strong",null,s(n.completed_appointments)+" / "+s(n.missed_appointments),1)])):(d(),r(x,{key:1},[e("div",ds,[o[11]||(o[11]=e("span",null,"过号",-1)),e("strong",null,s(n.passed_slots||0),1)]),e("div",rs,[o[12]||(o[12]=e("span",null,"未挂号 / 剩余",-1)),e("strong",null,s(n.remaining_slots??n.empty_slots),1)])],64))],2))),128))])):(d(),W(_,{key:1,"image-size":56,description:l.value?"该日期暂无本人归属患者的有效挂号":"该日期暂无当前权限范围内的医生排班"},null,8,["description"]))])]),e("section",us,[e("div",cs,[e("div",_s,[e("h2",null,s(E.value)+"候诊列表",1),o[13]||(o[13]=e("span",{class:"heading-badge"},"按医生排队",-1)),e("span",ps,"共 "+s(f(a).count)+" 人",1)]),o[14]||(o[14]=e("span",{class:"refresh-time"},"每 15 秒自动刷新",-1))]),pe((d(),W(q,{data:f(a).lists,class:"queue-table","row-class-name":le,onRowDblclick:ae},{empty:h(()=>[m(_,{description:`当前权限范围内${E.value}暂无候诊患者`},null,8,["description"])]),default:h(()=>[m(c,{label:"排队",width:"92"},{default:h(({row:n})=>[e("span",ms,s(n.queue_no||"—"),1)]),_:1}),m(c,{label:"患者","min-width":"170"},{default:h(({row:n})=>[e("div",vs,[e("strong",null,s(n.patient_name||"未命名患者"),1),e("span",null,s(n.phone_masked||"无手机号"),1)])]),_:1}),m(c,{prop:"doctor_name",label:"医生","min-width":"130","show-overflow-tooltip":""}),m(c,{label:"预约时间","min-width":"135"},{default:h(({row:n})=>[e("span",gs,s(te(n)),1)]),_:1}),m(c,{label:"前方等待","min-width":"180"},{default:h(({row:n})=>[e("span",{class:k(["waiting-text",`is-${n.queue_status||"waiting"}`])},s(ne(n)),3)]),_:1}),m(c,{label:"状态","min-width":"110"},{default:h(({row:n})=>[m(S,{size:"small",round:"",effect:"light",type:oe(n.queue_status)},{default:h(()=>[v(s(n.queue_status_text||"等待中"),1)]),_:2},1032,["type"])]),_:1})]),_:1},8,["data"])),[[M,f(a).loading]]),f(a).count>f(a).size?(d(),r("div",hs,[m(C,{modelValue:f(a),"onUpdate:modelValue":o[0]||(o[0]=n=>fe(a)?a.value=n:null),onChange:f(N)},null,8,["modelValue","onChange"])])):G("",!0)])])}}}),Ss=De(fs,[["__scopeId","data-v-315ced2e"]]);export{Ss as default};
+import{o as ie,p,ap as de,aq as re,q as d,r,s as e,T as s,v as m,D as h,u as f,cP as ue,w as ce,L as v,ae as k,F as x,G as L,P as G,O as W,bB as _e,ac as pe,bl as me,bj as ve,bk as ge,bi as he,C as fe,M as we,ba as be}from"./.pnpm-BuKxIMgQ.js";import{_ as ye}from"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import{d as $}from"./dayjs-7f8aMLm8.js";import{u as ke}from"./usePaging-DNtxCypz.js";import{r as xe}from"./first_visit-Ciw6inl9.js";import{_ as De}from"./index-BZAvl557.js";const Ne={class:"progress-board"},Se={class:"board-section overview-section"},qe={class:"section-heading"},Ce={class:"heading-copy"},Me={class:"heading-badge"},$e={class:"scope-chip"},Pe={class:"overview-grid"},Ae={class:"overview-card"},Le={class:"overview-card"},Te={key:0},Ve={key:1},Ye={key:0,class:"remaining-detail"},Ee={class:"remaining-detail-heading"},ze={class:"remaining-doctor-list"},Be={class:"remaining-doctor-identity"},Re={class:"doctor-index"},Ie={class:"remaining-doctor-metrics"},Oe={class:"is-remaining"},je={class:"board-section schedule-section"},Fe={class:"section-heading"},Ue={class:"heading-copy"},Ge={class:"heading-badge"},We={class:"schedule-range"},He={class:"schedule-grid"},Je=["aria-pressed","onClick"],Ke={class:"schedule-date"},Qe={class:"schedule-card-stats"},Xe={class:"schedule-card-action"},Ze={class:"schedule-drilldown"},es={class:"drilldown-heading"},ss={key:0,class:"doctor-schedule-list"},ts={class:"doctor-identity"},ns={class:"doctor-index"},os={class:"doctor-windows"},ls={class:"doctor-metric"},as={class:"doctor-metric doctor-metric-booked"},is={key:0,class:"doctor-metric doctor-metric-completed"},ds={class:"doctor-metric doctor-metric-passed"},rs={class:"doctor-metric doctor-metric-empty"},us={class:"board-section queue-section"},cs={class:"section-heading queue-heading"},_s={class:"heading-copy"},ps={class:"queue-count"},ms={class:"queue-number"},vs={class:"patient-cell"},gs={class:"appointment-clock"},hs={key:0,class:"pagination-wrap"},fs=ie({__name:"ProgressPanel",emits:["openDiagnosis"],setup(ws,{expose:H,emit:J}){const K=J,w=$().format("YYYY-MM-DD"),b=we(w),P=be({keyword:"",status:1,start_date:w,end_date:w}),{pager:a,getLists:N,resetPage:Q}=ke({fetchFun:xe,params:P,size:15,firstLoading:!0,latestOnly:!0}),g=p(()=>{var t,o,i,_,c,S,q,C,M,n,y,B,R,I,O,j,F,U;return{totalVisits:Number(((o=(t=a.extend)==null?void 0:t.today_overview)==null?void 0:o.total_visits)||0),booked:Number(((_=(i=a.extend)==null?void 0:i.today_overview)==null?void 0:_.booked)||0),completed:Number(((S=(c=a.extend)==null?void 0:c.today_overview)==null?void 0:S.completed)||0),missed:Number(((C=(q=a.extend)==null?void 0:q.today_overview)==null?void 0:C.missed)||0),emptySlots:Number(((n=(M=a.extend)==null?void 0:M.today_overview)==null?void 0:n.empty_slots)||0),passedSlots:Number(((B=(y=a.extend)==null?void 0:y.today_overview)==null?void 0:B.passed_slots)||0),remainingSlots:Number(((I=(R=a.extend)==null?void 0:R.today_overview)==null?void 0:I.remaining_slots)??((j=(O=a.extend)==null?void 0:O.today_overview)==null?void 0:j.empty_slots)??0),doctorCount:Number(((U=(F=a.extend)==null?void 0:F.today_overview)==null?void 0:U.doctor_count)||0)}}),l=p(()=>{var t;return((t=a.extend)==null?void 0:t.schedule_mode)==="ownership"}),D=p(()=>{var o;const t=Array.isArray((o=a.extend)==null?void 0:o.week_schedule)?a.extend.week_schedule:[];return t.length?t:Array.from({length:7},(i,_)=>{const c=$().add(_,"day");return{date:c.format("YYYY-MM-DD"),date_text:c.format("MM-DD"),weekday:`周${"日一二三四五六"[c.day()]}`,total_slots:0,booked_slots:0,passed_slots:0,remaining_slots:0,empty_slots:0,doctor_count:0,doctors:[],total_appointments:0,waiting_appointments:0,completed_appointments:0,missed_appointments:0}})}),u=p(()=>D.value.find(t=>t.date===b.value)||D.value[0]||{date:w,date_text:$().format("MM-DD"),weekday:`周${"日一二三四五六"[$().day()]}`,total_slots:0,booked_slots:0,passed_slots:0,remaining_slots:0,empty_slots:0,doctor_count:0,doctors:[],total_appointments:0,waiting_appointments:0,completed_appointments:0,missed_appointments:0}),T=p(()=>{var t;return Array.isArray((t=u.value)==null?void 0:t.doctors)?u.value.doctors:[]}),V=p(()=>{const t=D.value.find(i=>i.date===w);return(Array.isArray(t==null?void 0:t.doctors)?t.doctors:[]).map(i=>({...i,remaining_slots:Number(i.remaining_slots??i.empty_slots??0),passed_slots:Number(i.passed_slots||0)})).sort((i,_)=>_.remaining_slots-i.remaining_slots||_.booked_slots-i.booked_slots||String(i.doctor_name||"").localeCompare(String(_.doctor_name||""),"zh-CN"))}),Y=p(()=>{const t=u.value;return`${t.date_text||""} ${t.weekday||""} `}),E=p(()=>b.value===w?"今日":Y.value.trim()||b.value),X=p(()=>{var t,o;return((o=(t=a.extend)==null?void 0:t.scope)==null?void 0:o.label)||"按权限加载"}),Z=p(()=>{const t=D.value;return t.length?`${t[0].date_text} 至 ${t[t.length-1].date_text}`:""});let A=null;function ee(t){return N(t)}function se(t){t&&(b.value=t,P.start_date=t,P.end_date=t,Q())}function z(t){const o=l.value?t.appointment_times:t.schedule_windows,i=Array.isArray(o)?o.filter(Boolean):[];return i.length?i.join("、"):l.value?"暂无预约时刻":"未设置具体时段"}function te(t){return String(t.appointment_time||"").slice(0,5)||"—"}function ne(t){if(t.queue_status==="consulting")return"0(进行中)";if(t.queue_status==="next")return"0(待接诊)";const o=Math.max(0,Number(t.ahead_count||0));return o===0?"0 位":`${o} 位 · 约 ${Number(t.estimated_wait_minutes||o*15)} 分钟`}function oe(t){return t==="consulting"?"success":t==="next"?"warning":t==="completed"?"success":t==="missed"?"danger":"info"}function le({row:t}){return Number(t.is_self_patient)===1?"queue-row-self":""}function ae(t){K("openDiagnosis",t)}return H({refresh:ee,loading:p(()=>a.loading)}),de(()=>{N(),A=setInterval(()=>N({silent:!0}),15e3)}),re(()=>{A&&clearInterval(A)}),(t,o)=>{const i=ce,_=_e,c=ve,S=ge,q=he,C=ye,M=me;return d(),r("div",Ne,[e("section",Se,[e("div",qe,[e("div",Ce,[o[1]||(o[1]=e("h2",null,"今日面诊概览",-1)),e("span",Me,s(l.value?"按本人归属":"与排班合并"),1)]),e("span",$e,[m(i,null,{default:h(()=>[m(f(ue))]),_:1}),v(s(X.value),1)])]),e("div",Pe,[e("article",Ae,[e("span",null,s(l.value?"今日本人面诊":"今日面诊总号源"),1),e("strong",null,s(g.value.totalVisits),1),e("small",null,s(g.value.doctorCount)+" 位"+s(l.value?"接诊":"排班")+"医生",1)]),e("article",Le,[e("span",null,s(l.value?"待面诊":"已预约"),1),e("strong",null,s(g.value.booked),1),e("small",null,s(l.value?"本人归属患者的有效挂号":"按有效挂号占用号源"),1)]),e("article",{class:k(["overview-card",l.value?"overview-card-completed":"overview-card-empty"])},[e("span",null,s(l.value?"已完成":"空号"),1),e("strong",null,s(l.value?g.value.completed:g.value.remainingSlots),1),l.value?(d(),r("small",Te,"已过号 "+s(g.value.missed)+" 人",1)):(d(),r("small",Ve,"过号 "+s(g.value.passedSlots)+" · 未挂号 "+s(g.value.remainingSlots),1))],2)]),!l.value&&V.value.length?(d(),r("div",Ye,[e("div",Ee,[o[2]||(o[2]=e("h3",null,"医生剩余号源详情",-1)),e("span",null,"合计剩余可约 "+s(g.value.remainingSlots),1)]),e("div",ze,[(d(!0),r(x,null,L(V.value,(n,y)=>(d(),r("article",{key:n.doctor_id,class:"remaining-doctor-row"},[e("div",Be,[e("span",Re,s(y+1),1),e("div",null,[e("strong",null,s(n.doctor_name),1),e("small",null,s(z(n)),1)])]),e("div",Ie,[e("span",null,[o[3]||(o[3]=v("过号 ",-1)),e("strong",null,s(n.passed_slots||0),1)]),e("span",Oe,[o[4]||(o[4]=v("未挂号 / 剩余 ",-1)),e("strong",null,s(n.remaining_slots||0),1)])])]))),128))])])):G("",!0)]),e("section",je,[e("div",Fe,[e("div",Ue,[e("h2",null,s(l.value?"近一周面诊安排":"近一周排班"),1),e("span",Ge,s(l.value?"本人患者":"今日起 7 天"),1)]),e("span",We,s(Z.value),1)]),e("div",He,[(d(!0),r(x,null,L(D.value,n=>(d(),r("button",{key:n.date,type:"button",class:k(["schedule-card",{"is-today":n.date===f(w),"is-selected":n.date===b.value}]),"aria-pressed":n.date===b.value,onClick:y=>se(n.date)},[e("span",Ke,s(n.date_text)+" "+s(n.weekday),1),e("strong",null,s(l.value?n.total_appointments:n.total_slots),1),e("span",Qe,[e("span",null,s(l.value?"待诊":"已约")+" "+s(l.value?n.waiting_appointments:n.booked_slots),1),o[5]||(o[5]=e("i",null,"/",-1)),e("span",{class:k({"is-completed":l.value})},s(l.value?"完成":"剩余")+" "+s(l.value?n.completed_appointments:n.remaining_slots??n.empty_slots),3)]),e("span",Xe,[e("span",null,s(n.doctor_count)+" 位医生",1),e("span",null,s(n.date===b.value?"正在查看":"查看明细")+" ›",1)])],10,Je))),128))]),e("div",Ze,[e("div",es,[e("div",null,[e("h3",null,s(Y.value)+s(l.value?"面诊安排":"排班明细"),1),e("p",null,"共 "+s(u.value.doctor_count)+" 位"+s(l.value?"接诊":"排班")+"医生,点击上方日期可切换",1)]),e("div",{class:k(["drilldown-summary",{"is-ownership":l.value}])},[e("span",null,[v(s(l.value?"面诊总数":"总号源")+" ",1),e("strong",null,s(l.value?u.value.total_appointments:u.value.total_slots),1)]),e("span",null,[v(s(l.value?"待面诊":"已预约")+" ",1),e("strong",null,s(l.value?u.value.waiting_appointments:u.value.booked_slots),1)]),l.value?(d(),r(x,{key:0},[e("span",null,[o[6]||(o[6]=v("已完成 ",-1)),e("strong",null,s(u.value.completed_appointments),1)]),e("span",null,[o[7]||(o[7]=v("已过号 ",-1)),e("strong",null,s(u.value.missed_appointments),1)])],64)):(d(),r(x,{key:1},[e("span",null,[o[8]||(o[8]=v("过号 ",-1)),e("strong",null,s(u.value.passed_slots||0),1)]),e("span",null,[o[9]||(o[9]=v("剩余可约 ",-1)),e("strong",null,s(u.value.remaining_slots??u.value.empty_slots),1)])],64))],2)]),T.value.length?(d(),r("div",ss,[(d(!0),r(x,null,L(T.value,(n,y)=>(d(),r("article",{key:n.doctor_id,class:k(["doctor-schedule-row",{"is-ownership":l.value}])},[e("div",ts,[e("span",ns,s(y+1),1),e("div",null,[e("strong",null,s(n.doctor_name),1),e("small",null,s(l.value?"本人患者接诊医生":"医生排班"),1)])]),e("div",os,[e("span",null,s(l.value?"预约时刻":"排班时段"),1),e("strong",null,s(z(n)),1)]),e("div",ls,[e("span",null,s(l.value?"面诊总数":"总号源"),1),e("strong",null,s(l.value?n.total_appointments:n.total_slots),1)]),e("div",as,[e("span",null,s(l.value?"待面诊":"已预约"),1),e("strong",null,s(l.value?n.waiting_appointments:n.booked_slots),1)]),l.value?(d(),r("div",is,[o[10]||(o[10]=e("span",null,"完成 / 过号",-1)),e("strong",null,s(n.completed_appointments)+" / "+s(n.missed_appointments),1)])):(d(),r(x,{key:1},[e("div",ds,[o[11]||(o[11]=e("span",null,"过号",-1)),e("strong",null,s(n.passed_slots||0),1)]),e("div",rs,[o[12]||(o[12]=e("span",null,"未挂号 / 剩余",-1)),e("strong",null,s(n.remaining_slots??n.empty_slots),1)])],64))],2))),128))])):(d(),W(_,{key:1,"image-size":56,description:l.value?"该日期暂无本人归属患者的有效挂号":"该日期暂无当前权限范围内的医生排班"},null,8,["description"]))])]),e("section",us,[e("div",cs,[e("div",_s,[e("h2",null,s(E.value)+"候诊列表",1),o[13]||(o[13]=e("span",{class:"heading-badge"},"按医生排队",-1)),e("span",ps,"共 "+s(f(a).count)+" 人",1)]),o[14]||(o[14]=e("span",{class:"refresh-time"},"每 15 秒自动刷新",-1))]),pe((d(),W(q,{data:f(a).lists,class:"queue-table","row-class-name":le,onRowDblclick:ae},{empty:h(()=>[m(_,{description:`当前权限范围内${E.value}暂无候诊患者`},null,8,["description"])]),default:h(()=>[m(c,{label:"排队",width:"92"},{default:h(({row:n})=>[e("span",ms,s(n.queue_no||"—"),1)]),_:1}),m(c,{label:"患者","min-width":"170"},{default:h(({row:n})=>[e("div",vs,[e("strong",null,s(n.patient_name||"未命名患者"),1),e("span",null,s(n.phone_masked||"无手机号"),1)])]),_:1}),m(c,{prop:"doctor_name",label:"医生","min-width":"130","show-overflow-tooltip":""}),m(c,{label:"预约时间","min-width":"135"},{default:h(({row:n})=>[e("span",gs,s(te(n)),1)]),_:1}),m(c,{label:"前方等待","min-width":"180"},{default:h(({row:n})=>[e("span",{class:k(["waiting-text",`is-${n.queue_status||"waiting"}`])},s(ne(n)),3)]),_:1}),m(c,{label:"状态","min-width":"110"},{default:h(({row:n})=>[m(S,{size:"small",round:"",effect:"light",type:oe(n.queue_status)},{default:h(()=>[v(s(n.queue_status_text||"等待中"),1)]),_:2},1032,["type"])]),_:1})]),_:1},8,["data"])),[[M,f(a).loading]]),f(a).count>f(a).size?(d(),r("div",hs,[m(C,{modelValue:f(a),"onUpdate:modelValue":o[0]||(o[0]=n=>fe(a)?a.value=n:null),onChange:f(N)},null,8,["modelValue","onChange"])])):G("",!0)])])}}}),Ss=De(fs,[["__scopeId","data-v-315ced2e"]]);export{Ss as default};
diff --git a/server/public/admin/assets/PromotionAutomationForm-ByBNVLrX.js b/server/public/admin/assets/PromotionAutomationForm-V9XP-orG.js
similarity index 97%
rename from server/public/admin/assets/PromotionAutomationForm-ByBNVLrX.js
rename to server/public/admin/assets/PromotionAutomationForm-V9XP-orG.js
index 3668336d7..50fb952df 100644
--- a/server/public/admin/assets/PromotionAutomationForm-ByBNVLrX.js
+++ b/server/public/admin/assets/PromotionAutomationForm-V9XP-orG.js
@@ -1 +1 @@
-import{o as Ue,R as ve,bx as Ee,q as s,r as i,v as o,bh as Ce,s as d,b6 as xe,D as u,bc as Ie,bf as Te,L as r,F as y,G as V,T as _,K as He,cA as Me,u as H,O as h,bd as Se,c5 as Be,P as c,bm as $e,bn as Ne,cw as ee,ae as le,I as Ae,cC as De,by as ze,b7 as Pe,b8 as Re,aw as Fe,p as b,M as w,n as Ge}from"./.pnpm-BHOjf1ZS.js";import{y as Ke,z as Le}from"./first_visit-ClR5pGNH.js";import{w as pe,t as Oe,W as ce,p as We,v as Ye}from"./WelcomeMessageEditor-BfxFV3dB.js";import{_ as je}from"./index-B31vLELt.js";const qe={class:"automation-form"},Je={key:0,class:"reception-schedules"},Qe={class:"schedule-heading"},Xe={class:"time-row"},Ze={key:0},el={key:0,class:"inline-error"},ll={key:0,class:"legacy-tags-warning full-width",role:"alert"},al={key:1,class:"full-width tags-content"},tl={class:"tag-select-row"},sl={key:0,role:"alert",class:"inline-error"},ol={key:1,class:"field-help"},dl={key:2,class:"custom-tag-editor"},ul={class:"custom-tag-row"},nl={key:0,role:"alert",class:"inline-error"},il={key:3,role:"status",class:"tag-success"},rl={key:0,class:"full-width remark-content"},ml={class:"token-buttons"},vl={class:"remark-preview"},pl={class:"field-help"},cl={key:0,class:"field-help"},bl={key:1,class:"field-help warning-help"},fl={key:2,class:"field-help warning-help"},_l={class:"welcome-block"},gl={key:0},kl={class:"schedule-heading"},yl={class:"time-row"},wl={key:0},Vl=Ue({__name:"PromotionAutomationForm",props:{modelValue:{},mainMemberIds:{},members:{},disabled:{type:Boolean},disabledSections:{},backupExcludedMemberIds:{}},emits:["update:modelValue","busy"],setup(Y,{emit:be}){const C=Y,j=be,t=b({get:()=>C.modelValue,set:a=>j("update:modelValue",a)}),q=a=>{var e;return!!(C.disabled||(e=C.disabledSections)!=null&&e.includes(a))},x=b(()=>q("reception")),m=b(()=>q("customer")),U=b(()=>q("welcome")),fe=b(()=>C.backupExcludedMemberIds||C.mainMemberIds),ae=b(()=>C.members.filter(a=>C.mainMemberIds.includes(Number(a.id)))),_e=b(()=>t.value.backup_member_admin_ids.filter(a=>!C.members.some(e=>Number(e.id)===a))),P=b(()=>{var a;return((a=ae.value[0])==null?void 0:a.name)||"小陈"}),te=b(()=>We(t.value.remark_template,P.value,20)),R=w(),J=w({start:0,end:0}),M=w([]),T=w(!1),B=w(""),se=w(!1),g=w(!1),F=w(!1),$=w(""),S=w(""),N=w(""),ge=b(()=>t.value.tag_ids.length>1),G=b({get:()=>t.value.tag_ids.length===1?t.value.tag_ids[0]:"",set:a=>{t.value.tag_ids=a?[a]:[],N.value=""}}),ke=b(()=>{const a=M.value.flatMap(e=>e.tag);return t.value.tag_ids.map(e=>{var v;return((v=a.find(p=>p.id===e))==null?void 0:v.name)||e}).join("、")}),K=w(new Set),A=b(()=>K.value.size>0);ve([g,A],([a,e])=>j("busy",a||e),{flush:"sync"});const oe=b(()=>{const a=new Set(M.value.flatMap(e=>e.tag.map(v=>v.id)));return t.value.tag_ids.filter(e=>!a.has(e))});ve([()=>t.value.tags_enabled,m],([a,e])=>{a&&!e&&!se.value&&!T.value&&ne()},{immediate:!0});function de(a){var e;return`${a.name} · ${((e=a.dept_names)==null?void 0:e.join(" / "))||a.userid||"未分部门"}`}function ye(){t.value.reception_schedule.push({weekdays:[1,2,3,4,5],start:"09:00",end:"18:00",member_admin_ids:[...C.mainMemberIds]})}function we(){t.value.welcome_schedule.push({weekdays:[1,2,3,4,5],start:"09:00",end:"18:00",text:"",attachments:[]})}function Ve(a){t.value.welcome_schedule.splice(a,1),K.value.clear()}function ue(a,e){e?K.value.add(a):K.value.delete(a)}async function ne(){if(!(g.value||T.value)){T.value=!0,B.value="";try{const a=await Ke();if(!Array.isArray(a==null?void 0:a.tag_groups))throw new Error("标签接口未返回有效的标签列表。");M.value=a.tag_groups.map(e=>({...e,tag:Array.isArray(e.tag)?e.tag:[]})),se.value=!0}catch(a){B.value=a instanceof Error?a.message:typeof a=="string"?a:"企业微信标签加载失败。"}finally{T.value=!1}}}async function ie(){var a;if(!(m.value||g.value||T.value)&&(S.value=Ye($.value),N.value="",!S.value)){g.value=!0;try{const e=await Le({name:$.value.trim()});if(!((a=e==null?void 0:e.tag)!=null&&a.id)||!e.tag.name||!e.group_id)throw new Error("企业微信未返回有效的标签 ID,请刷新标签后确认。");let v=M.value.find(I=>I.group_id===e.group_id);v||(v={group_id:e.group_id,group_name:e.group_name,tag:[]},M.value.push(v));const p=v.tag.findIndex(I=>I.id===e.tag.id);p>=0?v.tag[p]=e.tag:v.tag.push(e.tag),G.value=e.tag.id,N.value=`${e.reused?"已选用已有":"已创建并选用"}标签“${e.tag.name}”,保存方案后生效。`,$.value="",F.value=!1}catch(e){S.value=e instanceof Error?e.message:typeof e=="string"?e:"自定义标签创建失败,请刷新确认或重试。"}finally{g.value=!1}}}function L(){var e;const a=(e=R.value)==null?void 0:e.input;a&&(J.value={start:a.selectionStart||0,end:a.selectionEnd||0})}async function he(a){var I,E,k,D;const{start:e,end:v}=J.value;t.value.remark_template=t.value.remark_template.slice(0,e)+a+t.value.remark_template.slice(v),await Ge();const p=e+a.length;(E=(I=R.value)==null?void 0:I.input)==null||E.focus(),(D=(k=R.value)==null?void 0:k.input)==null||D.setSelectionRange(p,p),J.value={start:p,end:p}}return Ee(()=>j("busy",!1)),(a,e)=>{const v=Ce,p=Te,I=Ie,E=xe,k=He,D=Se,re=Me,O=Be,z=Ne,Q=$e,W=Ae,me=De,X=Pe;return s(),i("div",qe,[o(v,{class:"automation-note",type:"info","show-icon":"",closable:!1,title:"自动化设置只作用于之后新添加的客户,不会写入企微获客链接详情中的“欢迎语/客户标签”配置。",description:"系统会在客户添加回调中立即发送渠道欢迎语并添加标签,后台任务负责失败重试及其他补偿。测试时请使用系统复制的、带渠道参数的链接。"}),d("section",{class:le(["automation-section",{"is-disabled":x.value}])},[e[24]||(e[24]=d("h3",{class:"form-section-title"},"接待设置",-1)),o(E,{label:"接待模式"},{default:u(()=>[o(I,{modelValue:t.value.reception_mode,"onUpdate:modelValue":e[0]||(e[0]=l=>t.value.reception_mode=l),disabled:x.value},{default:u(()=>[o(p,{value:"always"},{default:u(()=>[...e[16]||(e[16]=[r("全天接待",-1)])]),_:1}),o(p,{value:"scheduled"},{default:u(()=>[...e[17]||(e[17]=[r("按星期时段自动上下线",-1)])]),_:1})]),_:1},8,["modelValue","disabled"]),e[18]||(e[18]=d("p",{class:"field-help"},"成员仍受每日上限、有效期及启用状态限制;时间统一使用北京时间。",-1))]),_:1}),t.value.reception_mode==="scheduled"?(s(),i("div",Je,[(s(!0),i(y,null,V(t.value.reception_schedule,(l,f)=>(s(),i("div",{key:f,class:"schedule-card"},[d("div",Qe,[d("strong",null,"接待时段 "+_(f+1),1),o(k,{type:"danger",text:"",size:"small",disabled:x.value,onClick:n=>t.value.reception_schedule.splice(f,1)},{default:u(()=>[...e[19]||(e[19]=[r("删除时段",-1)])]),_:1},8,["disabled","onClick"])]),o(re,{modelValue:l.weekdays,"onUpdate:modelValue":n=>l.weekdays=n,class:"weekday-select",disabled:x.value},{default:u(()=>[(s(!0),i(y,null,V(H(pe),(n,Z)=>(s(),h(D,{key:n,value:Z+1},{default:u(()=>[r(_(n),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"]),d("div",Xe,[o(O,{modelValue:l.start,"onUpdate:modelValue":n=>l.start=n,disabled:x.value,format:"HH:mm","value-format":"HH:mm",placeholder:"开始时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),e[20]||(e[20]=d("span",null,"至",-1)),o(O,{modelValue:l.end,"onUpdate:modelValue":n=>l.end=n,disabled:x.value,format:"HH:mm","value-format":"HH:mm",placeholder:"结束时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),l.endl.member_admin_ids=n,disabled:x.value,multiple:"",filterable:"",clearable:"",placeholder:"从上方主接待成员中选择",style:{width:"100%"}},{default:u(()=>[(s(!0),i(y,null,V(ae.value,n=>(s(),h(z,{key:n.id,value:Number(n.id),label:de(n)},null,8,["value","label"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"]),l.member_admin_ids.some(n=>!Y.mainMemberIds.includes(n))?(s(),i("p",el,"该时段含已从主接待移除的成员,请重新选择。")):c("",!0)]))),128)),o(k,{icon:H(ee),disabled:x.value||t.value.reception_schedule.length>=30,onClick:ye},{default:u(()=>[...e[21]||(e[21]=[r("添加接待时段",-1)])]),_:1},8,["icon","disabled"]),e[22]||(e[22]=d("p",{class:"field-help"},"最多 30 个时段。跨午夜时段归属开始日,例如星期一 22:00 至 02:00 包含星期二凌晨;接待时段重叠时取成员并集。",-1))])):c("",!0),o(E,{label:"备用成员",required:t.value.reception_mode==="scheduled"},{default:u(()=>[o(Q,{modelValue:t.value.backup_member_admin_ids,"onUpdate:modelValue":e[1]||(e[1]=l=>t.value.backup_member_admin_ids=l),disabled:x.value,multiple:"",filterable:"",clearable:"","collapse-tags":"","collapse-tags-tooltip":"","max-collapse-tags":3,"multiple-limit":500,placeholder:"主接待成员均不可用时由备用成员接待",style:{width:"100%"}},{default:u(()=>[(s(!0),i(y,null,V(Y.members,l=>(s(),h(z,{key:l.id,value:Number(l.id),label:de(l),disabled:fe.value.includes(Number(l.id))},null,8,["value","label","disabled"]))),128)),(s(!0),i(y,null,V(_e.value,l=>(s(),h(z,{key:`missing-${l}`,value:l,label:`成员 ${l}(当前不可选,请移除后重新选择)`,disabled:""},null,8,["value","label"]))),128))]),_:1},8,["modelValue","disabled"]),e[23]||(e[23]=d("p",{class:"field-help"},"备用成员不能与主接待重复。按时段模式至少配置一名备用成员;仅当无可用主接待时进入官方成员范围。",-1))]),_:1},8,["required"])],2),d("section",{class:le(["automation-section",{"is-disabled":m.value}])},[e[31]||(e[31]=d("h3",{class:"form-section-title"},"客户设置",-1)),o(E,{label:"自动添加客户标签"},{default:u(()=>[o(W,{modelValue:t.value.tags_enabled,"onUpdate:modelValue":e[2]||(e[2]=l=>t.value.tags_enabled=l),disabled:m.value||g.value},null,8,["modelValue","disabled"]),ge.value?(s(),i("div",ll,[d("p",null,"原方案设置了多个标签:"+_(ke.value)+"。现在仅支持单选,请重新选择一个标签,或清空原标签。",1),o(k,{size:"small",disabled:m.value||g.value,onClick:e[3]||(e[3]=l=>G.value="")},{default:u(()=>[...e[25]||(e[25]=[r("清空原标签",-1)])]),_:1},8,["disabled"])])):c("",!0),t.value.tags_enabled?(s(),i("div",al,[d("div",tl,[o(Q,{modelValue:G.value,"onUpdate:modelValue":e[4]||(e[4]=l=>G.value=l),disabled:m.value||g.value,loading:T.value,filterable:"",clearable:"",placeholder:"选择一个企业微信客户标签","aria-label":"企业微信客户标签",class:"tag-select"},{default:u(()=>[(s(!0),i(y,null,V(M.value,l=>(s(),h(me,{key:l.group_id,label:l.group_name},{default:u(()=>[(s(!0),i(y,null,V(l.tag,f=>(s(),h(z,{key:f.id,value:f.id,label:f.name},null,8,["value","label"]))),128))]),_:2},1032,["label"]))),128)),oe.value.length?(s(),h(me,{key:0,label:"已选标签(名称暂不可用)"},{default:u(()=>[(s(!0),i(y,null,V(oe.value,l=>(s(),h(z,{key:l,value:l,label:`已选标签 · ${l}`},null,8,["value","label"]))),128))]),_:1})):c("",!0)]),_:1},8,["modelValue","disabled","loading"]),o(k,{icon:H(ee),disabled:m.value||g.value,onClick:e[5]||(e[5]=l=>F.value=!F.value)},{default:u(()=>[...e[26]||(e[26]=[r("自定义标签",-1)])]),_:1},8,["icon","disabled"]),o(k,{icon:H(ze),disabled:m.value||g.value,loading:T.value,onClick:ne},{default:u(()=>[r(_(B.value?"重试":"刷新标签"),1)]),_:1},8,["icon","disabled","loading"])]),B.value?(s(),i("p",sl,_(B.value)+" 已保留原有标签,点击“重试”重新加载。",1)):(s(),i("p",ol,"每个方案只选一个标签,可选择已有企业微信标签,也可自定义创建。客户添加成功后由系统调用企微接口打标,不会显示在企微获客链接详情的“客户标签”配置中。")),F.value?(s(),i("div",dl,[e[28]||(e[28]=d("label",{for:"promotion-custom-tag-name"},"自定义标签名称",-1)),d("div",ul,[o(X,{id:"promotion-custom-tag-name",modelValue:$.value,"onUpdate:modelValue":e[6]||(e[6]=l=>$.value=l),disabled:m.value||g.value,maxlength:"30","show-word-limit":"",placeholder:"例如:官网咨询",onInput:e[7]||(e[7]=l=>S.value=""),onKeydown:Re(Fe(ie,["prevent"]),["enter"])},null,8,["modelValue","disabled","onKeydown"]),o(k,{type:"primary",disabled:m.value||T.value,loading:g.value,onClick:ie},{default:u(()=>[...e[27]||(e[27]=[r("创建并选用",-1)])]),_:1},8,["disabled","loading"])]),e[29]||(e[29]=d("p",{class:"field-help"},"创建到企业微信“推广渠道”分组,同组同名标签会复用。创建后即保存到企微标签库,取消方案编辑不会删除标签。",-1)),S.value?(s(),i("p",nl,_(S.value)+" 原有选择未改变。",1)):c("",!0)])):c("",!0),N.value?(s(),i("p",il,_(N.value),1)):c("",!0)])):c("",!0)]),_:1}),o(E,{label:"自动设置客户备注"},{default:u(()=>[o(W,{modelValue:t.value.remark_enabled,"onUpdate:modelValue":e[8]||(e[8]=l=>t.value.remark_enabled=l),disabled:m.value},null,8,["modelValue","disabled"]),t.value.remark_enabled?(s(),i("div",rl,[d("div",ml,[(s(!0),i(y,null,V(H(Oe),l=>(s(),h(k,{key:l.value,size:"small",disabled:m.value,onClick:f=>he(l.value)},{default:u(()=>[r("插入"+_(l.label),1)]),_:2},1032,["disabled","onClick"]))),128))]),o(X,{ref_key:"remarkInput",ref:R,modelValue:t.value.remark_template,"onUpdate:modelValue":e[9]||(e[9]=l=>t.value.remark_template=l),disabled:m.value,maxlength:"200","show-word-limit":"",placeholder:"例如:官网-{customer_name}",onSelect:L,onKeyup:L,onClick:L,onBlur:L},null,8,["modelValue","disabled"]),d("div",vl,[e[30]||(e[30]=d("span",null,"备注预览",-1)),d("strong",null,_(te.value||"—"),1),d("small",null,_(Array.from(te.value).length)+"/20 字",1)]),d("p",pl,"示例客户:张女士;员工:"+_(P.value)+"。添加时间格式为 YYYY-MM-DD,生成后的备注最多保留前 20 字。",1)])):c("",!0)]),_:1}),o(E,{label:"自动设置客户描述"},{default:u(()=>[o(W,{modelValue:t.value.description_enabled,"onUpdate:modelValue":e[10]||(e[10]=l=>t.value.description_enabled=l),disabled:m.value},null,8,["modelValue","disabled"]),t.value.description_enabled?(s(),h(X,{key:0,modelValue:t.value.description,"onUpdate:modelValue":e[11]||(e[11]=l=>t.value.description=l),class:"description-input",disabled:m.value,type:"textarea",rows:3,maxlength:"150","show-word-limit":"",placeholder:"请输入客户描述,最多 150 字"},null,8,["modelValue","disabled"])):c("",!0)]),_:1})],2),d("section",{class:le(["automation-section",{"is-disabled":U.value}])},[e[42]||(e[42]=d("h3",{class:"form-section-title"},"欢迎语设置",-1)),o(E,{label:"欢迎语模式"},{default:u(()=>[o(I,{modelValue:t.value.welcome_mode,"onUpdate:modelValue":e[12]||(e[12]=l=>t.value.welcome_mode=l),disabled:U.value||A.value},{default:u(()=>[o(p,{value:"channel"},{default:u(()=>[...e[32]||(e[32]=[r("渠道欢迎语",-1)])]),_:1}),o(p,{value:"default"},{default:u(()=>[...e[33]||(e[33]=[r("默认欢迎语",-1)])]),_:1}),o(p,{value:"none"},{default:u(()=>[...e[34]||(e[34]=[r("不发送欢迎语",-1)])]),_:1})]),_:1},8,["modelValue","disabled"]),t.value.welcome_mode==="default"?(s(),i("p",cl,"沿用企业微信后台配置,本系统不发送欢迎语。")):t.value.welcome_mode==="none"?(s(),i("p",bl,"仅关闭本系统欢迎语,无法覆盖或关闭企业微信后台已配置的欢迎语。")):(s(),i("p",fl,"渠道欢迎语由客户添加回调即时发送,不会显示在企微获客链接详情中。同一接待成员若已配置企微原生欢迎语,企微可能不再下发欢迎码,请先关闭冲突配置。"))]),_:1}),t.value.welcome_mode==="channel"?(s(),i(y,{key:0},[d("div",_l,[e[35]||(e[35]=d("h4",null,"基础渠道欢迎语",-1)),e[36]||(e[36]=d("p",{class:"field-help"},"未开启分时欢迎语,或新客户添加时间未匹配任何时段时,使用以下内容。",-1)),o(ce,{modelValue:t.value.welcome,"onUpdate:modelValue":e[13]||(e[13]=l=>t.value.welcome=l),disabled:U.value,"employee-name":P.value,onBusy:e[14]||(e[14]=l=>ue("basic",l))},null,8,["modelValue","disabled","employee-name"])]),o(E,{class:"schedule-switch",label:"分时欢迎语"},{default:u(()=>[o(W,{modelValue:t.value.welcome_schedule_enabled,"onUpdate:modelValue":e[15]||(e[15]=l=>t.value.welcome_schedule_enabled=l),disabled:U.value||A.value},null,8,["modelValue","disabled"]),e[37]||(e[37]=d("span",{class:"switch-help"},"按客户添加时的北京时间匹配,时段不能重叠",-1))]),_:1}),t.value.welcome_schedule_enabled?(s(),i("div",gl,[(s(!0),i(y,null,V(t.value.welcome_schedule,(l,f)=>(s(),i("div",{key:f,class:"schedule-card welcome-schedule"},[d("div",kl,[d("strong",null,"欢迎语时段 "+_(f+1),1),o(k,{type:"danger",text:"",size:"small",disabled:U.value||A.value,onClick:n=>Ve(f)},{default:u(()=>[...e[38]||(e[38]=[r("删除时段",-1)])]),_:1},8,["disabled","onClick"])]),o(re,{modelValue:l.weekdays,"onUpdate:modelValue":n=>l.weekdays=n,class:"weekday-select",disabled:U.value},{default:u(()=>[(s(!0),i(y,null,V(H(pe),(n,Z)=>(s(),h(D,{key:n,value:Z+1},{default:u(()=>[r(_(n),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"]),d("div",yl,[o(O,{modelValue:l.start,"onUpdate:modelValue":n=>l.start=n,disabled:U.value,format:"HH:mm","value-format":"HH:mm",placeholder:"开始时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),e[39]||(e[39]=d("span",null,"至",-1)),o(O,{modelValue:l.end,"onUpdate:modelValue":n=>l.end=n,disabled:U.value,format:"HH:mm","value-format":"HH:mm",placeholder:"结束时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),l.endObject.assign(l,n),onBusy:n=>ue(`slot-${f}`,n)},null,8,["model-value","disabled","employee-name","onUpdate:modelValue","onBusy"])]))),128)),o(k,{icon:H(ee),disabled:U.value||A.value||t.value.welcome_schedule.length>=30,onClick:we},{default:u(()=>[...e[40]||(e[40]=[r("添加欢迎语时段",-1)])]),_:1},8,["icon","disabled"]),e[41]||(e[41]=d("p",{class:"field-help"},"最多 30 个时段,支持跨午夜。时段外自动使用基础渠道欢迎语,不会随机选择内容。",-1))])):c("",!0)],64)):c("",!0)],2)])}}}),xl=je(Vl,[["__scopeId","data-v-a7e42c87"]]);export{xl as default};
+import{o as Ue,R as ve,bx as Ee,q as s,r as i,v as o,bm as Ce,s as d,b6 as xe,D as u,bc as Ie,bo as Te,L as r,F as y,G as V,T as _,K as He,cA as Me,u as H,O as h,bd as Se,c5 as Be,P as c,bf as $e,bg as Ne,cw as ee,ae as le,I as Ae,cC as De,by as ze,b7 as Pe,b8 as Re,aw as Fe,p as b,M as w,n as Ge}from"./.pnpm-BuKxIMgQ.js";import{y as Ke,z as Le}from"./first_visit-Ciw6inl9.js";import{w as pe,t as Oe,W as ce,p as We,v as Ye}from"./WelcomeMessageEditor-BZUQXRAA.js";import{_ as je}from"./index-BZAvl557.js";const qe={class:"automation-form"},Je={key:0,class:"reception-schedules"},Qe={class:"schedule-heading"},Xe={class:"time-row"},Ze={key:0},el={key:0,class:"inline-error"},ll={key:0,class:"legacy-tags-warning full-width",role:"alert"},al={key:1,class:"full-width tags-content"},tl={class:"tag-select-row"},sl={key:0,role:"alert",class:"inline-error"},ol={key:1,class:"field-help"},dl={key:2,class:"custom-tag-editor"},ul={class:"custom-tag-row"},nl={key:0,role:"alert",class:"inline-error"},il={key:3,role:"status",class:"tag-success"},rl={key:0,class:"full-width remark-content"},ml={class:"token-buttons"},vl={class:"remark-preview"},pl={class:"field-help"},cl={key:0,class:"field-help"},bl={key:1,class:"field-help warning-help"},fl={key:2,class:"field-help warning-help"},_l={class:"welcome-block"},gl={key:0},kl={class:"schedule-heading"},yl={class:"time-row"},wl={key:0},Vl=Ue({__name:"PromotionAutomationForm",props:{modelValue:{},mainMemberIds:{},members:{},disabled:{type:Boolean},disabledSections:{},backupExcludedMemberIds:{}},emits:["update:modelValue","busy"],setup(Y,{emit:be}){const C=Y,j=be,t=b({get:()=>C.modelValue,set:a=>j("update:modelValue",a)}),q=a=>{var e;return!!(C.disabled||(e=C.disabledSections)!=null&&e.includes(a))},x=b(()=>q("reception")),m=b(()=>q("customer")),U=b(()=>q("welcome")),fe=b(()=>C.backupExcludedMemberIds||C.mainMemberIds),ae=b(()=>C.members.filter(a=>C.mainMemberIds.includes(Number(a.id)))),_e=b(()=>t.value.backup_member_admin_ids.filter(a=>!C.members.some(e=>Number(e.id)===a))),P=b(()=>{var a;return((a=ae.value[0])==null?void 0:a.name)||"小陈"}),te=b(()=>We(t.value.remark_template,P.value,20)),R=w(),J=w({start:0,end:0}),M=w([]),T=w(!1),B=w(""),se=w(!1),g=w(!1),F=w(!1),$=w(""),S=w(""),N=w(""),ge=b(()=>t.value.tag_ids.length>1),G=b({get:()=>t.value.tag_ids.length===1?t.value.tag_ids[0]:"",set:a=>{t.value.tag_ids=a?[a]:[],N.value=""}}),ke=b(()=>{const a=M.value.flatMap(e=>e.tag);return t.value.tag_ids.map(e=>{var v;return((v=a.find(p=>p.id===e))==null?void 0:v.name)||e}).join("、")}),K=w(new Set),A=b(()=>K.value.size>0);ve([g,A],([a,e])=>j("busy",a||e),{flush:"sync"});const oe=b(()=>{const a=new Set(M.value.flatMap(e=>e.tag.map(v=>v.id)));return t.value.tag_ids.filter(e=>!a.has(e))});ve([()=>t.value.tags_enabled,m],([a,e])=>{a&&!e&&!se.value&&!T.value&&ne()},{immediate:!0});function de(a){var e;return`${a.name} · ${((e=a.dept_names)==null?void 0:e.join(" / "))||a.userid||"未分部门"}`}function ye(){t.value.reception_schedule.push({weekdays:[1,2,3,4,5],start:"09:00",end:"18:00",member_admin_ids:[...C.mainMemberIds]})}function we(){t.value.welcome_schedule.push({weekdays:[1,2,3,4,5],start:"09:00",end:"18:00",text:"",attachments:[]})}function Ve(a){t.value.welcome_schedule.splice(a,1),K.value.clear()}function ue(a,e){e?K.value.add(a):K.value.delete(a)}async function ne(){if(!(g.value||T.value)){T.value=!0,B.value="";try{const a=await Ke();if(!Array.isArray(a==null?void 0:a.tag_groups))throw new Error("标签接口未返回有效的标签列表。");M.value=a.tag_groups.map(e=>({...e,tag:Array.isArray(e.tag)?e.tag:[]})),se.value=!0}catch(a){B.value=a instanceof Error?a.message:typeof a=="string"?a:"企业微信标签加载失败。"}finally{T.value=!1}}}async function ie(){var a;if(!(m.value||g.value||T.value)&&(S.value=Ye($.value),N.value="",!S.value)){g.value=!0;try{const e=await Le({name:$.value.trim()});if(!((a=e==null?void 0:e.tag)!=null&&a.id)||!e.tag.name||!e.group_id)throw new Error("企业微信未返回有效的标签 ID,请刷新标签后确认。");let v=M.value.find(I=>I.group_id===e.group_id);v||(v={group_id:e.group_id,group_name:e.group_name,tag:[]},M.value.push(v));const p=v.tag.findIndex(I=>I.id===e.tag.id);p>=0?v.tag[p]=e.tag:v.tag.push(e.tag),G.value=e.tag.id,N.value=`${e.reused?"已选用已有":"已创建并选用"}标签“${e.tag.name}”,保存方案后生效。`,$.value="",F.value=!1}catch(e){S.value=e instanceof Error?e.message:typeof e=="string"?e:"自定义标签创建失败,请刷新确认或重试。"}finally{g.value=!1}}}function L(){var e;const a=(e=R.value)==null?void 0:e.input;a&&(J.value={start:a.selectionStart||0,end:a.selectionEnd||0})}async function he(a){var I,E,k,D;const{start:e,end:v}=J.value;t.value.remark_template=t.value.remark_template.slice(0,e)+a+t.value.remark_template.slice(v),await Ge();const p=e+a.length;(E=(I=R.value)==null?void 0:I.input)==null||E.focus(),(D=(k=R.value)==null?void 0:k.input)==null||D.setSelectionRange(p,p),J.value={start:p,end:p}}return Ee(()=>j("busy",!1)),(a,e)=>{const v=Ce,p=Te,I=Ie,E=xe,k=He,D=Se,re=Me,O=Be,z=Ne,Q=$e,W=Ae,me=De,X=Pe;return s(),i("div",qe,[o(v,{class:"automation-note",type:"info","show-icon":"",closable:!1,title:"自动化设置只作用于之后新添加的客户,不会写入企微获客链接详情中的“欢迎语/客户标签”配置。",description:"系统会在客户添加回调中立即发送渠道欢迎语并添加标签,后台任务负责失败重试及其他补偿。测试时请使用系统复制的、带渠道参数的链接。"}),d("section",{class:le(["automation-section",{"is-disabled":x.value}])},[e[24]||(e[24]=d("h3",{class:"form-section-title"},"接待设置",-1)),o(E,{label:"接待模式"},{default:u(()=>[o(I,{modelValue:t.value.reception_mode,"onUpdate:modelValue":e[0]||(e[0]=l=>t.value.reception_mode=l),disabled:x.value},{default:u(()=>[o(p,{value:"always"},{default:u(()=>[...e[16]||(e[16]=[r("全天接待",-1)])]),_:1}),o(p,{value:"scheduled"},{default:u(()=>[...e[17]||(e[17]=[r("按星期时段自动上下线",-1)])]),_:1})]),_:1},8,["modelValue","disabled"]),e[18]||(e[18]=d("p",{class:"field-help"},"成员仍受每日上限、有效期及启用状态限制;时间统一使用北京时间。",-1))]),_:1}),t.value.reception_mode==="scheduled"?(s(),i("div",Je,[(s(!0),i(y,null,V(t.value.reception_schedule,(l,f)=>(s(),i("div",{key:f,class:"schedule-card"},[d("div",Qe,[d("strong",null,"接待时段 "+_(f+1),1),o(k,{type:"danger",text:"",size:"small",disabled:x.value,onClick:n=>t.value.reception_schedule.splice(f,1)},{default:u(()=>[...e[19]||(e[19]=[r("删除时段",-1)])]),_:1},8,["disabled","onClick"])]),o(re,{modelValue:l.weekdays,"onUpdate:modelValue":n=>l.weekdays=n,class:"weekday-select",disabled:x.value},{default:u(()=>[(s(!0),i(y,null,V(H(pe),(n,Z)=>(s(),h(D,{key:n,value:Z+1},{default:u(()=>[r(_(n),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"]),d("div",Xe,[o(O,{modelValue:l.start,"onUpdate:modelValue":n=>l.start=n,disabled:x.value,format:"HH:mm","value-format":"HH:mm",placeholder:"开始时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),e[20]||(e[20]=d("span",null,"至",-1)),o(O,{modelValue:l.end,"onUpdate:modelValue":n=>l.end=n,disabled:x.value,format:"HH:mm","value-format":"HH:mm",placeholder:"结束时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),l.endl.member_admin_ids=n,disabled:x.value,multiple:"",filterable:"",clearable:"",placeholder:"从上方主接待成员中选择",style:{width:"100%"}},{default:u(()=>[(s(!0),i(y,null,V(ae.value,n=>(s(),h(z,{key:n.id,value:Number(n.id),label:de(n)},null,8,["value","label"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"]),l.member_admin_ids.some(n=>!Y.mainMemberIds.includes(n))?(s(),i("p",el,"该时段含已从主接待移除的成员,请重新选择。")):c("",!0)]))),128)),o(k,{icon:H(ee),disabled:x.value||t.value.reception_schedule.length>=30,onClick:ye},{default:u(()=>[...e[21]||(e[21]=[r("添加接待时段",-1)])]),_:1},8,["icon","disabled"]),e[22]||(e[22]=d("p",{class:"field-help"},"最多 30 个时段。跨午夜时段归属开始日,例如星期一 22:00 至 02:00 包含星期二凌晨;接待时段重叠时取成员并集。",-1))])):c("",!0),o(E,{label:"备用成员",required:t.value.reception_mode==="scheduled"},{default:u(()=>[o(Q,{modelValue:t.value.backup_member_admin_ids,"onUpdate:modelValue":e[1]||(e[1]=l=>t.value.backup_member_admin_ids=l),disabled:x.value,multiple:"",filterable:"",clearable:"","collapse-tags":"","collapse-tags-tooltip":"","max-collapse-tags":3,"multiple-limit":500,placeholder:"主接待成员均不可用时由备用成员接待",style:{width:"100%"}},{default:u(()=>[(s(!0),i(y,null,V(Y.members,l=>(s(),h(z,{key:l.id,value:Number(l.id),label:de(l),disabled:fe.value.includes(Number(l.id))},null,8,["value","label","disabled"]))),128)),(s(!0),i(y,null,V(_e.value,l=>(s(),h(z,{key:`missing-${l}`,value:l,label:`成员 ${l}(当前不可选,请移除后重新选择)`,disabled:""},null,8,["value","label"]))),128))]),_:1},8,["modelValue","disabled"]),e[23]||(e[23]=d("p",{class:"field-help"},"备用成员不能与主接待重复。按时段模式至少配置一名备用成员;仅当无可用主接待时进入官方成员范围。",-1))]),_:1},8,["required"])],2),d("section",{class:le(["automation-section",{"is-disabled":m.value}])},[e[31]||(e[31]=d("h3",{class:"form-section-title"},"客户设置",-1)),o(E,{label:"自动添加客户标签"},{default:u(()=>[o(W,{modelValue:t.value.tags_enabled,"onUpdate:modelValue":e[2]||(e[2]=l=>t.value.tags_enabled=l),disabled:m.value||g.value},null,8,["modelValue","disabled"]),ge.value?(s(),i("div",ll,[d("p",null,"原方案设置了多个标签:"+_(ke.value)+"。现在仅支持单选,请重新选择一个标签,或清空原标签。",1),o(k,{size:"small",disabled:m.value||g.value,onClick:e[3]||(e[3]=l=>G.value="")},{default:u(()=>[...e[25]||(e[25]=[r("清空原标签",-1)])]),_:1},8,["disabled"])])):c("",!0),t.value.tags_enabled?(s(),i("div",al,[d("div",tl,[o(Q,{modelValue:G.value,"onUpdate:modelValue":e[4]||(e[4]=l=>G.value=l),disabled:m.value||g.value,loading:T.value,filterable:"",clearable:"",placeholder:"选择一个企业微信客户标签","aria-label":"企业微信客户标签",class:"tag-select"},{default:u(()=>[(s(!0),i(y,null,V(M.value,l=>(s(),h(me,{key:l.group_id,label:l.group_name},{default:u(()=>[(s(!0),i(y,null,V(l.tag,f=>(s(),h(z,{key:f.id,value:f.id,label:f.name},null,8,["value","label"]))),128))]),_:2},1032,["label"]))),128)),oe.value.length?(s(),h(me,{key:0,label:"已选标签(名称暂不可用)"},{default:u(()=>[(s(!0),i(y,null,V(oe.value,l=>(s(),h(z,{key:l,value:l,label:`已选标签 · ${l}`},null,8,["value","label"]))),128))]),_:1})):c("",!0)]),_:1},8,["modelValue","disabled","loading"]),o(k,{icon:H(ee),disabled:m.value||g.value,onClick:e[5]||(e[5]=l=>F.value=!F.value)},{default:u(()=>[...e[26]||(e[26]=[r("自定义标签",-1)])]),_:1},8,["icon","disabled"]),o(k,{icon:H(ze),disabled:m.value||g.value,loading:T.value,onClick:ne},{default:u(()=>[r(_(B.value?"重试":"刷新标签"),1)]),_:1},8,["icon","disabled","loading"])]),B.value?(s(),i("p",sl,_(B.value)+" 已保留原有标签,点击“重试”重新加载。",1)):(s(),i("p",ol,"每个方案只选一个标签,可选择已有企业微信标签,也可自定义创建。客户添加成功后由系统调用企微接口打标,不会显示在企微获客链接详情的“客户标签”配置中。")),F.value?(s(),i("div",dl,[e[28]||(e[28]=d("label",{for:"promotion-custom-tag-name"},"自定义标签名称",-1)),d("div",ul,[o(X,{id:"promotion-custom-tag-name",modelValue:$.value,"onUpdate:modelValue":e[6]||(e[6]=l=>$.value=l),disabled:m.value||g.value,maxlength:"30","show-word-limit":"",placeholder:"例如:官网咨询",onInput:e[7]||(e[7]=l=>S.value=""),onKeydown:Re(Fe(ie,["prevent"]),["enter"])},null,8,["modelValue","disabled","onKeydown"]),o(k,{type:"primary",disabled:m.value||T.value,loading:g.value,onClick:ie},{default:u(()=>[...e[27]||(e[27]=[r("创建并选用",-1)])]),_:1},8,["disabled","loading"])]),e[29]||(e[29]=d("p",{class:"field-help"},"创建到企业微信“推广渠道”分组,同组同名标签会复用。创建后即保存到企微标签库,取消方案编辑不会删除标签。",-1)),S.value?(s(),i("p",nl,_(S.value)+" 原有选择未改变。",1)):c("",!0)])):c("",!0),N.value?(s(),i("p",il,_(N.value),1)):c("",!0)])):c("",!0)]),_:1}),o(E,{label:"自动设置客户备注"},{default:u(()=>[o(W,{modelValue:t.value.remark_enabled,"onUpdate:modelValue":e[8]||(e[8]=l=>t.value.remark_enabled=l),disabled:m.value},null,8,["modelValue","disabled"]),t.value.remark_enabled?(s(),i("div",rl,[d("div",ml,[(s(!0),i(y,null,V(H(Oe),l=>(s(),h(k,{key:l.value,size:"small",disabled:m.value,onClick:f=>he(l.value)},{default:u(()=>[r("插入"+_(l.label),1)]),_:2},1032,["disabled","onClick"]))),128))]),o(X,{ref_key:"remarkInput",ref:R,modelValue:t.value.remark_template,"onUpdate:modelValue":e[9]||(e[9]=l=>t.value.remark_template=l),disabled:m.value,maxlength:"200","show-word-limit":"",placeholder:"例如:官网-{customer_name}",onSelect:L,onKeyup:L,onClick:L,onBlur:L},null,8,["modelValue","disabled"]),d("div",vl,[e[30]||(e[30]=d("span",null,"备注预览",-1)),d("strong",null,_(te.value||"—"),1),d("small",null,_(Array.from(te.value).length)+"/20 字",1)]),d("p",pl,"示例客户:张女士;员工:"+_(P.value)+"。添加时间格式为 YYYY-MM-DD,生成后的备注最多保留前 20 字。",1)])):c("",!0)]),_:1}),o(E,{label:"自动设置客户描述"},{default:u(()=>[o(W,{modelValue:t.value.description_enabled,"onUpdate:modelValue":e[10]||(e[10]=l=>t.value.description_enabled=l),disabled:m.value},null,8,["modelValue","disabled"]),t.value.description_enabled?(s(),h(X,{key:0,modelValue:t.value.description,"onUpdate:modelValue":e[11]||(e[11]=l=>t.value.description=l),class:"description-input",disabled:m.value,type:"textarea",rows:3,maxlength:"150","show-word-limit":"",placeholder:"请输入客户描述,最多 150 字"},null,8,["modelValue","disabled"])):c("",!0)]),_:1})],2),d("section",{class:le(["automation-section",{"is-disabled":U.value}])},[e[42]||(e[42]=d("h3",{class:"form-section-title"},"欢迎语设置",-1)),o(E,{label:"欢迎语模式"},{default:u(()=>[o(I,{modelValue:t.value.welcome_mode,"onUpdate:modelValue":e[12]||(e[12]=l=>t.value.welcome_mode=l),disabled:U.value||A.value},{default:u(()=>[o(p,{value:"channel"},{default:u(()=>[...e[32]||(e[32]=[r("渠道欢迎语",-1)])]),_:1}),o(p,{value:"default"},{default:u(()=>[...e[33]||(e[33]=[r("默认欢迎语",-1)])]),_:1}),o(p,{value:"none"},{default:u(()=>[...e[34]||(e[34]=[r("不发送欢迎语",-1)])]),_:1})]),_:1},8,["modelValue","disabled"]),t.value.welcome_mode==="default"?(s(),i("p",cl,"沿用企业微信后台配置,本系统不发送欢迎语。")):t.value.welcome_mode==="none"?(s(),i("p",bl,"仅关闭本系统欢迎语,无法覆盖或关闭企业微信后台已配置的欢迎语。")):(s(),i("p",fl,"渠道欢迎语由客户添加回调即时发送,不会显示在企微获客链接详情中。同一接待成员若已配置企微原生欢迎语,企微可能不再下发欢迎码,请先关闭冲突配置。"))]),_:1}),t.value.welcome_mode==="channel"?(s(),i(y,{key:0},[d("div",_l,[e[35]||(e[35]=d("h4",null,"基础渠道欢迎语",-1)),e[36]||(e[36]=d("p",{class:"field-help"},"未开启分时欢迎语,或新客户添加时间未匹配任何时段时,使用以下内容。",-1)),o(ce,{modelValue:t.value.welcome,"onUpdate:modelValue":e[13]||(e[13]=l=>t.value.welcome=l),disabled:U.value,"employee-name":P.value,onBusy:e[14]||(e[14]=l=>ue("basic",l))},null,8,["modelValue","disabled","employee-name"])]),o(E,{class:"schedule-switch",label:"分时欢迎语"},{default:u(()=>[o(W,{modelValue:t.value.welcome_schedule_enabled,"onUpdate:modelValue":e[15]||(e[15]=l=>t.value.welcome_schedule_enabled=l),disabled:U.value||A.value},null,8,["modelValue","disabled"]),e[37]||(e[37]=d("span",{class:"switch-help"},"按客户添加时的北京时间匹配,时段不能重叠",-1))]),_:1}),t.value.welcome_schedule_enabled?(s(),i("div",gl,[(s(!0),i(y,null,V(t.value.welcome_schedule,(l,f)=>(s(),i("div",{key:f,class:"schedule-card welcome-schedule"},[d("div",kl,[d("strong",null,"欢迎语时段 "+_(f+1),1),o(k,{type:"danger",text:"",size:"small",disabled:U.value||A.value,onClick:n=>Ve(f)},{default:u(()=>[...e[38]||(e[38]=[r("删除时段",-1)])]),_:1},8,["disabled","onClick"])]),o(re,{modelValue:l.weekdays,"onUpdate:modelValue":n=>l.weekdays=n,class:"weekday-select",disabled:U.value},{default:u(()=>[(s(!0),i(y,null,V(H(pe),(n,Z)=>(s(),h(D,{key:n,value:Z+1},{default:u(()=>[r(_(n),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"]),d("div",yl,[o(O,{modelValue:l.start,"onUpdate:modelValue":n=>l.start=n,disabled:U.value,format:"HH:mm","value-format":"HH:mm",placeholder:"开始时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),e[39]||(e[39]=d("span",null,"至",-1)),o(O,{modelValue:l.end,"onUpdate:modelValue":n=>l.end=n,disabled:U.value,format:"HH:mm","value-format":"HH:mm",placeholder:"结束时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),l.endObject.assign(l,n),onBusy:n=>ue(`slot-${f}`,n)},null,8,["model-value","disabled","employee-name","onUpdate:modelValue","onBusy"])]))),128)),o(k,{icon:H(ee),disabled:U.value||A.value||t.value.welcome_schedule.length>=30,onClick:we},{default:u(()=>[...e[40]||(e[40]=[r("添加欢迎语时段",-1)])]),_:1},8,["icon","disabled"]),e[41]||(e[41]=d("p",{class:"field-help"},"最多 30 个时段,支持跨午夜。时段外自动使用基础渠道欢迎语,不会随机选择内容。",-1))])):c("",!0)],64)):c("",!0)],2)])}}}),xl=je(Vl,[["__scopeId","data-v-a7e42c87"]]);export{xl as default};
diff --git a/server/public/admin/assets/RecordingPlaybackBlock-CGNt462L.js b/server/public/admin/assets/RecordingPlaybackBlock-lcAipGfC.js
similarity index 84%
rename from server/public/admin/assets/RecordingPlaybackBlock-CGNt462L.js
rename to server/public/admin/assets/RecordingPlaybackBlock-lcAipGfC.js
index 2798603ca..29a7c9a1f 100644
--- a/server/public/admin/assets/RecordingPlaybackBlock-CGNt462L.js
+++ b/server/public/admin/assets/RecordingPlaybackBlock-lcAipGfC.js
@@ -1 +1 @@
-import{o as L,q as i,r as c,s as d,F as v,O as m,bq as q,D as _,L as k,P as y,G as B,p as f,T as w}from"./.pnpm-BHOjf1ZS.js";import H from"./RecordingVideoPlayer-D3gHlSLF.js";import{e as I,_ as P}from"./index-B31vLELt.js";const R={key:0,class:"recording-list"},C={class:"recording-item"},V={key:1,class:"recording-alternates"},N={class:"recording-alternates__links"},D={key:1,class:"text-gray-400"},E=L({__name:"RecordingPlaybackBlock",props:{recordId:{},urls:{}},setup(l){const $=l,h=I(),u=f(()=>{const e=$.urls||[],t=new Set,r=[];for(const o of e){const s=String(o??"").trim();!s||t.has(s)||(t.add(s),r.push(s))}return r}),a=f(()=>{const e=u.value;if(!e.length)return null;const t=e.find(n=>/\.mp4(\?|#|$)/i.test(n));if(t)return t;const r=e.find(n=>/\.m3u8(\?|#|$)/i.test(n)&&/vod-qcloud\.com/i.test(n));if(r)return r;const o=e.find(n=>/\.m3u8(\?|#|$)/i.test(n)&&/\.cos\.[^/]+\.myqcloud\.com/i.test(n));if(o)return o;const s=e.find(n=>/\.m3u8(\?|#|$)/i.test(n));return s||e[0]}),p=f(()=>{const e=u.value,t=a.value;return t?e.filter(r=>r!==t):e.slice(1)});function b(e){if(!e||typeof e!="string")return!1;const t=e.trim();return/^https?:\/\//i.test(t)?/\.(mp4|webm|ogg|mov|mkv|m4v|m3u8)(\?|#|$)/i.test(t):/\.(mp4|webm|ogg|mov|mkv|m4v|m3u8)(\?|#|$)/i.test(t)||t.startsWith("/uploads/")}function g(e){return h.getImageUrl(String(e||"").trim())}function S(e,t){const r=e.trim();return/\.mp4(\?|#|$)/i.test(r)?`MP4 ${t+1}`:/vod-qcloud\.com/i.test(r)&&/\.m3u8/i.test(r)?`点播 ${t+1}`:/\.cos\.[^/]+\.myqcloud\.com/i.test(r)&&/\.m3u8/i.test(r)?`COS HLS ${t+1}`:/\.m3u8/i.test(r)?`HLS ${t+1}`:`链接 ${t+1}`}return(e,t)=>{const r=q;return u.value.length?(i(),c("div",R,[d("div",C,[a.value?(i(),c(v,{key:0},[b(a.value)?(i(),m(H,{key:`${l.recordId}-${a.value}`,src:a.value},null,8,["src"])):(i(),m(r,{key:1,href:g(a.value),target:"_blank",type:"primary"},{default:_(()=>[...t[0]||(t[0]=[k(" 打开回放 ",-1)])]),_:1},8,["href"]))],64)):y("",!0),p.value.length?(i(),c("div",V,[t[1]||(t[1]=d("span",{class:"recording-alternates__label"},"备用地址",-1)),d("div",N,[(i(!0),c(v,null,B(p.value,(o,s)=>(i(),m(r,{key:`${l.recordId}-alt-${s}-${o.slice(-32)}`,href:g(o),target:"_blank",type:"primary",class:"recording-alternates__link"},{default:_(()=>[k(w(S(o,s)),1)]),_:2},1032,["href"]))),128))])])):y("",!0)])])):(i(),c("span",D,"暂无"))}}}),x=P(E,[["__scopeId","data-v-d67b2e91"]]);export{x as default};
+import{o as L,q as i,r as c,s as d,F as v,O as m,br as B,D as _,L as k,P as y,G as q,p as f,T as w}from"./.pnpm-BuKxIMgQ.js";import H from"./RecordingVideoPlayer-Cp0NJ94z.js";import{e as I,_ as P}from"./index-BZAvl557.js";const R={key:0,class:"recording-list"},C={class:"recording-item"},V={key:1,class:"recording-alternates"},N={class:"recording-alternates__links"},D={key:1,class:"text-gray-400"},E=L({__name:"RecordingPlaybackBlock",props:{recordId:{},urls:{}},setup(l){const $=l,h=I(),u=f(()=>{const e=$.urls||[],t=new Set,r=[];for(const o of e){const s=String(o??"").trim();!s||t.has(s)||(t.add(s),r.push(s))}return r}),a=f(()=>{const e=u.value;if(!e.length)return null;const t=e.find(n=>/\.mp4(\?|#|$)/i.test(n));if(t)return t;const r=e.find(n=>/\.m3u8(\?|#|$)/i.test(n)&&/vod-qcloud\.com/i.test(n));if(r)return r;const o=e.find(n=>/\.m3u8(\?|#|$)/i.test(n)&&/\.cos\.[^/]+\.myqcloud\.com/i.test(n));if(o)return o;const s=e.find(n=>/\.m3u8(\?|#|$)/i.test(n));return s||e[0]}),p=f(()=>{const e=u.value,t=a.value;return t?e.filter(r=>r!==t):e.slice(1)});function b(e){if(!e||typeof e!="string")return!1;const t=e.trim();return/^https?:\/\//i.test(t)?/\.(mp4|webm|ogg|mov|mkv|m4v|m3u8)(\?|#|$)/i.test(t):/\.(mp4|webm|ogg|mov|mkv|m4v|m3u8)(\?|#|$)/i.test(t)||t.startsWith("/uploads/")}function g(e){return h.getImageUrl(String(e||"").trim())}function S(e,t){const r=e.trim();return/\.mp4(\?|#|$)/i.test(r)?`MP4 ${t+1}`:/vod-qcloud\.com/i.test(r)&&/\.m3u8/i.test(r)?`点播 ${t+1}`:/\.cos\.[^/]+\.myqcloud\.com/i.test(r)&&/\.m3u8/i.test(r)?`COS HLS ${t+1}`:/\.m3u8/i.test(r)?`HLS ${t+1}`:`链接 ${t+1}`}return(e,t)=>{const r=B;return u.value.length?(i(),c("div",R,[d("div",C,[a.value?(i(),c(v,{key:0},[b(a.value)?(i(),m(H,{key:`${l.recordId}-${a.value}`,src:a.value},null,8,["src"])):(i(),m(r,{key:1,href:g(a.value),target:"_blank",type:"primary"},{default:_(()=>[...t[0]||(t[0]=[k(" 打开回放 ",-1)])]),_:1},8,["href"]))],64)):y("",!0),p.value.length?(i(),c("div",V,[t[1]||(t[1]=d("span",{class:"recording-alternates__label"},"备用地址",-1)),d("div",N,[(i(!0),c(v,null,q(p.value,(o,s)=>(i(),m(r,{key:`${l.recordId}-alt-${s}-${o.slice(-32)}`,href:g(o),target:"_blank",type:"primary",class:"recording-alternates__link"},{default:_(()=>[k(w(S(o,s)),1)]),_:2},1032,["href"]))),128))])])):y("",!0)])])):(i(),c("span",D,"暂无"))}}}),x=P(E,[["__scopeId","data-v-d67b2e91"]]);export{x as default};
diff --git a/server/public/admin/assets/RecordingVideoPlayer-D3gHlSLF.js b/server/public/admin/assets/RecordingVideoPlayer-Cp0NJ94z.js
similarity index 88%
rename from server/public/admin/assets/RecordingVideoPlayer-D3gHlSLF.js
rename to server/public/admin/assets/RecordingVideoPlayer-Cp0NJ94z.js
index a6c0a37ee..824764daf 100644
--- a/server/public/admin/assets/RecordingVideoPlayer-D3gHlSLF.js
+++ b/server/public/admin/assets/RecordingVideoPlayer-Cp0NJ94z.js
@@ -1,2 +1,2 @@
-const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/.pnpm-BHOjf1ZS.js","assets/.pnpm-B3v8nGpq.css"])))=>i.map(i=>d[i]);
-import{o as K,ap as z,n as S,R as H,aq as G,q as v,r as p,s as f,ac as O,ad as Q,b8 as W,aw as $,F as w,v as k,D as I,u as j,b5 as J,w as X,P,L as Y,bq as Z,M as _,p as E,al as ee}from"./.pnpm-BHOjf1ZS.js";import{e as ae,_ as ne}from"./index-B31vLELt.js";const te={class:"recording-playback__shell"},re=["preload"],oe=["onKeydown"],le=K({__name:"RecordingVideoPlayer",props:{src:{}},setup(B){const V=B,A=ae(),b=_(null),m=_(null),c=_(!1),s=_(!1),t=_(!1);let d=null,r=null,l=0,u=null;function i(){u!==null&&(clearTimeout(u),u=null)}const y=E(()=>{const e=String(V.src||"").trim();return e?U(A.getImageUrl(e)):""}),D=E(()=>{if(!s.value)return"none";const e=y.value;return e&&!L(e)?"metadata":"none"}),q=E(()=>!s.value||t.value);function U(e){if(!e||!/^https?:\/\//i.test(e))return e;try{const a=new URL(e),n=a.hostname.toLowerCase();if(n.includes("myqcloud.com")||n.includes("vod-qcloud.com")||n.includes("vod-qcloud"))return a.pathname.includes("+")&&(a.pathname=a.pathname.replace(/\+/g,"%2B")),a.href}catch{}return e}function L(e){return/\.m3u8(\?|#|$)/i.test(e)}function C(){var n;t.value=!1,i();const e=m.value,a=(n=e==null?void 0:e.error)==null?void 0:n.code;a===MediaError.MEDIA_ERR_ABORTED||a===1||(c.value=!0)}function h(){d&&(d.destroy(),d=null);const e=m.value;e&&(e.pause(),e.removeAttribute("src"),e.load())}function R(e,a){let n=!1;const o=()=>{n||a!==l||(n=!0,i(),t.value=!1)};e.addEventListener("loadedmetadata",()=>o(),{once:!0}),e.addEventListener("loadeddata",()=>o(),{once:!0}),e.addEventListener("canplay",()=>o(),{once:!0}),e.addEventListener("playing",()=>o(),{once:!0}),e.addEventListener("progress",()=>{try{e.buffered.length>0&&e.buffered.end(0)>0&&o("progress-buffered")}catch{}},{passive:!0})}async function g(){if(!s.value)return;await S();const e=m.value,a=y.value;if(!e)return;if(!a){t.value=!1,i();return}const n=++l;if(t.value=!0,i(),h(),c.value=!1,L(a)){try{const o=await ee(()=>import("./.pnpm-BHOjf1ZS.js").then(M=>M.dQ),__vite__mapDeps([0,1])),x=o.default;if(x.isSupported()){d=new x({enableWorker:!0,lowLatencyMode:!1,maxBufferLength:20,maxMaxBufferLength:120}),d.on(o.Events.MANIFEST_PARSED,()=>{n===l&&(t.value=!1,i())}),d.on(o.Events.ERROR,(M,F)=>{if(F.fatal){if(n!==l)return;t.value=!1,i(),c.value=!0,h()}}),d.loadSource(a),d.attachMedia(e),u=setTimeout(()=>{u=null,n===l&&t.value&&(t.value=!1)},45e3);return}if(e.canPlayType("application/vnd.apple.mpegurl")){R(e,n),e.src=a,u=setTimeout(()=>{u=null,n===l&&t.value&&(t.value=!1)},45e3);return}}catch{if(n!==l)return;t.value=!1,i(),c.value=!0;return}if(n!==l)return;t.value=!1,i(),c.value=!0;return}R(e,n),e.src=a,u=setTimeout(()=>{u=null,n===l&&t.value&&(t.value=!1)},25e3)}function N(){const e=b.value;if(!e||typeof IntersectionObserver>"u"){s.value=!0,g();return}r=new IntersectionObserver(a=>{for(const n of a)if(n.isIntersecting){r==null||r.disconnect(),r=null,s.value=!0,g();break}},{root:null,rootMargin:"240px 0px",threshold:0}),r.observe(e)}function T(){r==null||r.disconnect(),r=null,s.value||(s.value=!0),g()}return z(()=>{S(()=>{N()})}),H(y,()=>{s.value&&g()}),G(()=>{r==null||r.disconnect(),r=null,i(),l++,h()}),(e,a)=>{const n=X,o=Z;return v(),p("div",{ref_key:"wrapRef",ref:b,class:"recording-playback"},[f("div",te,[O(f("video",{ref_key:"videoRef",ref:m,class:"recording-video",controls:"",playsinline:"","webkit-playsinline":"",preload:D.value,onError:C},null,40,re),[[Q,!c.value]]),!c.value&&q.value?(v(),p("div",{key:0,class:"recording-playback__overlay",role:"button",tabindex:"0",onClick:T,onKeydown:W($(T,["prevent"]),["enter"])},[s.value?(v(),p(w,{key:1},[k(n,{class:"recording-playback__spin"},{default:I(()=>[k(j(J))]),_:1}),a[2]||(a[2]=f("span",null,"正在加载…",-1))],64)):(v(),p(w,{key:0},[a[0]||(a[0]=f("span",{class:"recording-playback__overlay-title"},"预览待加载",-1)),a[1]||(a[1]=f("span",{class:"recording-playback__overlay-desc"},"滚动至此处将自动加载(减轻并发卡顿),也可点击立即加载",-1))],64))],40,oe)):P("",!0)]),c.value?(v(),p(w,{key:0},[k(o,{href:y.value||"#",target:"_blank",type:"primary"},{default:I(()=>[...a[3]||(a[3]=[Y("在新窗口打开",-1)])]),_:1},8,["href"]),a[4]||(a[4]=f("div",{class:"recording-playback__hint"}," 内嵌播放失败(编码不支持、跨域或私有存储等)时可尝试在新窗口打开。 ",-1))],64)):P("",!0)],512)}}}),ie=ne(le,[["__scopeId","data-v-749b0199"]]);export{ie as default};
+const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/.pnpm-BuKxIMgQ.js","assets/.pnpm-B3v8nGpq.css"])))=>i.map(i=>d[i]);
+import{o as K,ap as z,n as S,R as H,aq as G,q as v,r as p,s as f,ac as O,ad as Q,b8 as W,aw as $,F as w,v as k,D as I,u as j,b5 as J,w as X,P,L as Y,br as Z,M as _,p as E,al as ee}from"./.pnpm-BuKxIMgQ.js";import{e as ae,_ as ne}from"./index-BZAvl557.js";const te={class:"recording-playback__shell"},re=["preload"],oe=["onKeydown"],le=K({__name:"RecordingVideoPlayer",props:{src:{}},setup(B){const V=B,A=ae(),b=_(null),m=_(null),c=_(!1),s=_(!1),t=_(!1);let d=null,r=null,l=0,u=null;function i(){u!==null&&(clearTimeout(u),u=null)}const y=E(()=>{const e=String(V.src||"").trim();return e?q(A.getImageUrl(e)):""}),D=E(()=>{if(!s.value)return"none";const e=y.value;return e&&!L(e)?"metadata":"none"}),U=E(()=>!s.value||t.value);function q(e){if(!e||!/^https?:\/\//i.test(e))return e;try{const a=new URL(e),n=a.hostname.toLowerCase();if(n.includes("myqcloud.com")||n.includes("vod-qcloud.com")||n.includes("vod-qcloud"))return a.pathname.includes("+")&&(a.pathname=a.pathname.replace(/\+/g,"%2B")),a.href}catch{}return e}function L(e){return/\.m3u8(\?|#|$)/i.test(e)}function C(){var n;t.value=!1,i();const e=m.value,a=(n=e==null?void 0:e.error)==null?void 0:n.code;a===MediaError.MEDIA_ERR_ABORTED||a===1||(c.value=!0)}function h(){d&&(d.destroy(),d=null);const e=m.value;e&&(e.pause(),e.removeAttribute("src"),e.load())}function R(e,a){let n=!1;const o=()=>{n||a!==l||(n=!0,i(),t.value=!1)};e.addEventListener("loadedmetadata",()=>o(),{once:!0}),e.addEventListener("loadeddata",()=>o(),{once:!0}),e.addEventListener("canplay",()=>o(),{once:!0}),e.addEventListener("playing",()=>o(),{once:!0}),e.addEventListener("progress",()=>{try{e.buffered.length>0&&e.buffered.end(0)>0&&o("progress-buffered")}catch{}},{passive:!0})}async function g(){if(!s.value)return;await S();const e=m.value,a=y.value;if(!e)return;if(!a){t.value=!1,i();return}const n=++l;if(t.value=!0,i(),h(),c.value=!1,L(a)){try{const o=await ee(()=>import("./.pnpm-BuKxIMgQ.js").then(M=>M.dQ),__vite__mapDeps([0,1])),x=o.default;if(x.isSupported()){d=new x({enableWorker:!0,lowLatencyMode:!1,maxBufferLength:20,maxMaxBufferLength:120}),d.on(o.Events.MANIFEST_PARSED,()=>{n===l&&(t.value=!1,i())}),d.on(o.Events.ERROR,(M,F)=>{if(F.fatal){if(n!==l)return;t.value=!1,i(),c.value=!0,h()}}),d.loadSource(a),d.attachMedia(e),u=setTimeout(()=>{u=null,n===l&&t.value&&(t.value=!1)},45e3);return}if(e.canPlayType("application/vnd.apple.mpegurl")){R(e,n),e.src=a,u=setTimeout(()=>{u=null,n===l&&t.value&&(t.value=!1)},45e3);return}}catch{if(n!==l)return;t.value=!1,i(),c.value=!0;return}if(n!==l)return;t.value=!1,i(),c.value=!0;return}R(e,n),e.src=a,u=setTimeout(()=>{u=null,n===l&&t.value&&(t.value=!1)},25e3)}function N(){const e=b.value;if(!e||typeof IntersectionObserver>"u"){s.value=!0,g();return}r=new IntersectionObserver(a=>{for(const n of a)if(n.isIntersecting){r==null||r.disconnect(),r=null,s.value=!0,g();break}},{root:null,rootMargin:"240px 0px",threshold:0}),r.observe(e)}function T(){r==null||r.disconnect(),r=null,s.value||(s.value=!0),g()}return z(()=>{S(()=>{N()})}),H(y,()=>{s.value&&g()}),G(()=>{r==null||r.disconnect(),r=null,i(),l++,h()}),(e,a)=>{const n=X,o=Z;return v(),p("div",{ref_key:"wrapRef",ref:b,class:"recording-playback"},[f("div",te,[O(f("video",{ref_key:"videoRef",ref:m,class:"recording-video",controls:"",playsinline:"","webkit-playsinline":"",preload:D.value,onError:C},null,40,re),[[Q,!c.value]]),!c.value&&U.value?(v(),p("div",{key:0,class:"recording-playback__overlay",role:"button",tabindex:"0",onClick:T,onKeydown:W($(T,["prevent"]),["enter"])},[s.value?(v(),p(w,{key:1},[k(n,{class:"recording-playback__spin"},{default:I(()=>[k(j(J))]),_:1}),a[2]||(a[2]=f("span",null,"正在加载…",-1))],64)):(v(),p(w,{key:0},[a[0]||(a[0]=f("span",{class:"recording-playback__overlay-title"},"预览待加载",-1)),a[1]||(a[1]=f("span",{class:"recording-playback__overlay-desc"},"滚动至此处将自动加载(减轻并发卡顿),也可点击立即加载",-1))],64))],40,oe)):P("",!0)]),c.value?(v(),p(w,{key:0},[k(o,{href:y.value||"#",target:"_blank",type:"primary"},{default:I(()=>[...a[3]||(a[3]=[Y("在新窗口打开",-1)])]),_:1},8,["href"]),a[4]||(a[4]=f("div",{class:"recording-playback__hint"}," 内嵌播放失败(编码不支持、跨域或私有存储等)时可尝试在新窗口打开。 ",-1))],64)):P("",!0)],512)}}}),ie=ne(le,[["__scopeId","data-v-749b0199"]]);export{ie as default};
diff --git a/server/public/admin/assets/SendPanel-DE3x5dJZ.js b/server/public/admin/assets/SendPanel-DlctIYaw.js
similarity index 98%
rename from server/public/admin/assets/SendPanel-DE3x5dJZ.js
rename to server/public/admin/assets/SendPanel-DlctIYaw.js
index 37ee30757..a146fd8b0 100644
--- a/server/public/admin/assets/SendPanel-DE3x5dJZ.js
+++ b/server/public/admin/assets/SendPanel-DlctIYaw.js
@@ -1 +1 @@
-import{o as te,q as c,r as w,F as I,G as ae,ae as ne,O as T,aa as ie,v as l,w as se,D as t,u as b,bH as P,s as x,T as F,bI as K,bJ as N,P as $,K as oe,av as ue,b7 as re,b8 as de,aw as me,a1 as pe,bE as fe,bF as ve,L as C,bt as ce,b9 as ge,b6 as _e,M as V,p as ye}from"./.pnpm-BHOjf1ZS.js";import{r as y,j as _,_ as ke}from"./index-B31vLELt.js";import{u as G}from"./file-DFj3ko4j.js";function $e(r){return y.get({url:"/qywx.message/session_list",params:r})}function Be(r){return y.get({url:"/qywx.message/archive_list",params:r})}function De(r){return y.post({url:"/qywx.message/mark_read",params:{session_id:r}})}function We(r){return y.post({url:"/qywx.message/send",params:r})}function je(r){return y.get({url:"/qywx.message/send_task_list",params:r})}function Ae(r,h=""){return y.get({url:"/qywx.message/send_task_detail",params:{task_id:r,cursor:h}})}function Oe(r=""){return y.get({url:"/qywx.message/staff_list",params:{keyword:r}})}function Pe(){return y.get({url:"/qywx.message/archive_status"})}function Ke(r=5,h=!1){return y.post({url:"/qywx.message/pull_archive",params:{max_batches:r,download:h}})}async function H(r,h){const M=new FormData;return M.append("file",r),M.append("type",h),y.post({url:"/qywx.message/upload_to_qywx",data:M,headers:{"Content-Type":"multipart/form-data"}})}const we={class:"send-panel"},be={key:0,class:"attachment-list"},xe=["src"],Ve={class:"attachment-filename"},he={class:"attachment-filename"},qe={class:"attachment-filename"},Ce={class:"send-toolbar"},Me={class:"toolbar-left"},Se={class:"toolbar-right"},Ue={class:"link-picurl-row"},Ee={key:0,class:"mini-preview"},Le=te({__name:"SendPanel",props:{canSendMessage:{type:Boolean}},emits:["send"],setup(r,{emit:h}){const M=r,J=h,S=V(""),d=V([]),L=V(!1),f=V(null),z=V("image"),U=V(!1),v=V({title:"",url:"",picurl:"",desc:""}),E=V(!1),m=V({title:"",appid:"",page:"",pic_media_id:"",preview:""}),B=ye(()=>{if(!M.canSendMessage||L.value)return!1;const o=S.value.trim().length>0,e=d.value.some(s=>!s.uploading);return o||e});function R(o){if(d.value.length>=9){_.msgWarning("最多添加 9 个附件");return}z.value=o;const e=o==="image"?"image/*":o==="video"?"video/*":"*/*";f.value&&(f.value.accept=e,f.value.value="",f.value.click())}function Q(){z.value="link-cover",f.value&&(f.value.accept="image/*",f.value.value="",f.value.click())}function X(){z.value="mini-cover",f.value&&(f.value.accept="image/*",f.value.value="",f.value.click())}async function Y(o){var g;const s=(g=o.target.files)==null?void 0:g[0];if(!s)return;const n=z.value;if(n==="link-cover"){try{const u=await G(s,s.name);v.value.picurl=u.uri||u.url,_.msgSuccess("封面上传成功")}catch(u){_.msgError((u==null?void 0:u.message)||"封面上传失败")}return}if(n==="mini-cover"){try{const u=await H(s,"image");m.value.pic_media_id=u.media_id;const k=await G(s,s.name);m.value.preview=k.uri||k.url,_.msgSuccess("小程序封面上传成功")}catch(u){_.msgError((u==null?void 0:u.message)||"封面上传失败")}return}const i=n==="file"?"":URL.createObjectURL(s),p={msgtype:n,uploading:!0,preview:i,file_name:s.name};d.value.push(p);const q=d.value.length-1;try{const k=(await H(s,n)).media_id;n==="image"?p.image={media_id:k}:n==="video"?p.video={media_id:k}:p.file={media_id:k},p.uploading=!1}catch(u){_.msgError((u==null?void 0:u.message)||"上传失败"),d.value.splice(q,1)}}function Z(o){const e=d.value[o];e!=null&&e.preview&&e.preview.startsWith("blob:")&&URL.revokeObjectURL(e.preview),d.value.splice(o,1)}function ee(){const{title:o,url:e,picurl:s,desc:n}=v.value;if(!o.trim()||!e.trim()||!s.trim()){_.msgWarning("请完整填写标题、链接地址与封面图");return}if(d.value.length>=9){_.msgWarning("最多添加 9 个附件");return}d.value.push({msgtype:"link",link:{title:o,url:e,picurl:s,desc:n}}),U.value=!1,v.value={title:"",url:"",picurl:"",desc:""}}function le(){const{title:o,appid:e,page:s,pic_media_id:n}=m.value;if(!o.trim()||!e.trim()||!s.trim()||!n){_.msgWarning("请完整填写小程序信息");return}if(d.value.length>=9){_.msgWarning("最多添加 9 个附件");return}d.value.push({msgtype:"miniprogram",miniprogram:{title:o,appid:e,page:s,pic_media_id:n}}),E.value=!1,m.value={title:"",appid:"",page:"",pic_media_id:"",preview:""}}async function D(){if(!B.value)return;const o=d.value.filter(n=>!n.uploading).map(n=>{const i={msgtype:n.msgtype};return n.image&&(i.image=n.image),n.video&&(i.video=n.video),n.file&&(i.file=n.file),n.link&&(i.link=n.link),n.miniprogram&&(i.miniprogram=n.miniprogram),i}),e={},s=S.value.trim();s&&(e.text={content:s}),o.length&&(e.attachments=o),L.value=!0;try{await J("send",e),S.value="",d.value.forEach(n=>{var i;(i=n.preview)!=null&&i.startsWith("blob:")&&URL.revokeObjectURL(n.preview)}),d.value=[]}finally{L.value=!1}}return(o,e)=>{const s=ie,n=se,i=oe,p=re,q=pe,g=_e,u=ge,k=ce;return c(),w("div",we,[d.value.length?(c(),w("div",be,[(c(!0),w(I,null,ae(d.value,(a,W)=>{var j,A,O;return c(),w("div",{key:W,class:ne(["attachment-item","attachment-"+a.msgtype])},[a.msgtype==="image"?(c(),T(s,{key:0,src:a.preview||"",fit:"cover",class:"attachment-preview"},null,8,["src"])):a.msgtype==="video"?(c(),w("video",{key:1,src:a.preview||"",class:"attachment-preview",muted:""},null,8,xe)):a.msgtype==="file"?(c(),w(I,{key:2},[l(n,{size:20},{default:t(()=>[l(b(P))]),_:1}),x("span",Ve,F(a.file_name),1)],64)):a.msgtype==="link"?(c(),w(I,{key:3},[l(n,{size:20},{default:t(()=>[l(b(K))]),_:1}),x("span",he,F(((j=a.link)==null?void 0:j.title)||((A=a.link)==null?void 0:A.url)),1)],64)):a.msgtype==="miniprogram"?(c(),w(I,{key:4},[l(n,{size:20},{default:t(()=>[l(b(N))]),_:1}),x("span",qe,F((O=a.miniprogram)==null?void 0:O.title),1)],64)):$("",!0),a.uploading?(c(),T(i,{key:5,type:"primary",link:"",loading:"",size:"small"})):(c(),T(i,{key:6,class:"attachment-remove",type:"danger",link:"",onClick:Ie=>Z(W)},{default:t(()=>[l(n,null,{default:t(()=>[l(b(ue))]),_:1})]),_:1},8,["onClick"]))],2)}),128))])):$("",!0),l(p,{modelValue:S.value,"onUpdate:modelValue":e[0]||(e[0]=a=>S.value=a),type:"textarea",rows:3,placeholder:"在此输入消息,Ctrl+Enter 发送。该消息以代发员工身份发给客户,员工手机端确认后送达。",resize:"none",onKeydown:de(me(D,["ctrl"]),["enter"])},null,8,["modelValue","onKeydown"]),x("div",Ce,[x("div",Me,[l(q,{content:"图片",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[1]||(e[1]=a=>R("image"))},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(fe))]),_:1})]),_:1})]),_:1}),l(q,{content:"视频",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[2]||(e[2]=a=>R("video"))},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(ve))]),_:1})]),_:1})]),_:1}),l(q,{content:"文件",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[3]||(e[3]=a=>R("file"))},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(P))]),_:1})]),_:1})]),_:1}),l(q,{content:"链接",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[4]||(e[4]=a=>U.value=!0)},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(K))]),_:1})]),_:1})]),_:1}),l(q,{content:"小程序",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[5]||(e[5]=a=>E.value=!0)},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(N))]),_:1})]),_:1})]),_:1})]),x("div",Se,[e[18]||(e[18]=x("span",{class:"send-hint"}," 员工手机端确认后送达客户 · Ctrl+Enter 快速发送 ",-1)),l(i,{type:"primary",disabled:!B.value,loading:L.value,onClick:D},{default:t(()=>[...e[17]||(e[17]=[C(" 发送 ",-1)])]),_:1},8,["disabled","loading"])])]),x("input",{ref_key:"fileInputRef",ref:f,type:"file",hidden:"",onChange:Y},null,544),l(k,{modelValue:U.value,"onUpdate:modelValue":e[11]||(e[11]=a=>U.value=a),title:"添加链接",width:"480px"},{footer:t(()=>[l(i,{onClick:e[10]||(e[10]=a=>U.value=!1)},{default:t(()=>[...e[20]||(e[20]=[C("取消",-1)])]),_:1}),l(i,{type:"primary",onClick:ee},{default:t(()=>[...e[21]||(e[21]=[C("确定",-1)])]),_:1})]),default:t(()=>[l(u,{"label-width":"80px",model:v.value},{default:t(()=>[l(g,{label:"标题"},{default:t(()=>[l(p,{modelValue:v.value.title,"onUpdate:modelValue":e[6]||(e[6]=a=>v.value.title=a),maxlength:"128"},null,8,["modelValue"])]),_:1}),l(g,{label:"链接地址"},{default:t(()=>[l(p,{modelValue:v.value.url,"onUpdate:modelValue":e[7]||(e[7]=a=>v.value.url=a),placeholder:"https://..."},null,8,["modelValue"])]),_:1}),l(g,{label:"封面图"},{default:t(()=>[x("div",Ue,[l(p,{modelValue:v.value.picurl,"onUpdate:modelValue":e[8]||(e[8]=a=>v.value.picurl=a),placeholder:"https://..."},null,8,["modelValue"]),l(i,{onClick:Q},{default:t(()=>[...e[19]||(e[19]=[C("本地上传",-1)])]),_:1})])]),_:1}),l(g,{label:"描述"},{default:t(()=>[l(p,{modelValue:v.value.desc,"onUpdate:modelValue":e[9]||(e[9]=a=>v.value.desc=a),type:"textarea",rows:2,maxlength:"512"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(k,{modelValue:E.value,"onUpdate:modelValue":e[16]||(e[16]=a=>E.value=a),title:"添加小程序",width:"480px"},{footer:t(()=>[l(i,{onClick:e[15]||(e[15]=a=>E.value=!1)},{default:t(()=>[...e[22]||(e[22]=[C("取消",-1)])]),_:1}),l(i,{type:"primary",disabled:!m.value.pic_media_id||!m.value.appid,onClick:le},{default:t(()=>[...e[23]||(e[23]=[C(" 确定 ",-1)])]),_:1},8,["disabled"])]),default:t(()=>[l(u,{"label-width":"100px",model:m.value},{default:t(()=>[l(g,{label:"标题"},{default:t(()=>[l(p,{modelValue:m.value.title,"onUpdate:modelValue":e[12]||(e[12]=a=>m.value.title=a)},null,8,["modelValue"])]),_:1}),l(g,{label:"appid"},{default:t(()=>[l(p,{modelValue:m.value.appid,"onUpdate:modelValue":e[13]||(e[13]=a=>m.value.appid=a),placeholder:"wx..."},null,8,["modelValue"])]),_:1}),l(g,{label:"页面路径"},{default:t(()=>[l(p,{modelValue:m.value.page,"onUpdate:modelValue":e[14]||(e[14]=a=>m.value.page=a),placeholder:"/pages/index/index"},null,8,["modelValue"])]),_:1}),l(g,{label:"封面图"},{default:t(()=>[l(i,{onClick:X},{default:t(()=>[C(F(m.value.pic_media_id?"已选择 · 重新选择":"上传封面(必填)"),1)]),_:1}),m.value.preview?(c(),w("div",Ee,[l(s,{src:m.value.preview,fit:"cover"},null,8,["src"])])):$("",!0)]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),ze=ke(Le,[["__scopeId","data-v-afee3bd0"]]),Ne=Object.freeze(Object.defineProperty({__proto__:null,default:ze},Symbol.toStringTag,{value:"Module"}));export{ze as S,Pe as a,Ke as b,Oe as c,De as d,Be as e,We as f,je as g,Ae as h,Ne as i,$e as q};
+import{o as te,q as c,r as w,F as I,G as ae,ae as ne,O as T,aa as ie,v as l,w as se,D as t,u as b,bH as P,s as x,T as F,bI as K,bJ as N,P as $,K as oe,av as ue,b7 as re,b8 as de,aw as me,a1 as pe,bE as fe,bF as ve,L as C,bt as ce,b9 as ge,b6 as _e,M as V,p as ye}from"./.pnpm-BuKxIMgQ.js";import{r as y,j as _,_ as ke}from"./index-BZAvl557.js";import{u as G}from"./file-4O37R3TG.js";function $e(r){return y.get({url:"/qywx.message/session_list",params:r})}function Be(r){return y.get({url:"/qywx.message/archive_list",params:r})}function De(r){return y.post({url:"/qywx.message/mark_read",params:{session_id:r}})}function We(r){return y.post({url:"/qywx.message/send",params:r})}function je(r){return y.get({url:"/qywx.message/send_task_list",params:r})}function Ae(r,h=""){return y.get({url:"/qywx.message/send_task_detail",params:{task_id:r,cursor:h}})}function Oe(r=""){return y.get({url:"/qywx.message/staff_list",params:{keyword:r}})}function Pe(){return y.get({url:"/qywx.message/archive_status"})}function Ke(r=5,h=!1){return y.post({url:"/qywx.message/pull_archive",params:{max_batches:r,download:h}})}async function H(r,h){const M=new FormData;return M.append("file",r),M.append("type",h),y.post({url:"/qywx.message/upload_to_qywx",data:M,headers:{"Content-Type":"multipart/form-data"}})}const we={class:"send-panel"},be={key:0,class:"attachment-list"},xe=["src"],Ve={class:"attachment-filename"},he={class:"attachment-filename"},qe={class:"attachment-filename"},Ce={class:"send-toolbar"},Me={class:"toolbar-left"},Se={class:"toolbar-right"},Ue={class:"link-picurl-row"},Ee={key:0,class:"mini-preview"},Le=te({__name:"SendPanel",props:{canSendMessage:{type:Boolean}},emits:["send"],setup(r,{emit:h}){const M=r,J=h,S=V(""),d=V([]),L=V(!1),f=V(null),z=V("image"),U=V(!1),v=V({title:"",url:"",picurl:"",desc:""}),E=V(!1),m=V({title:"",appid:"",page:"",pic_media_id:"",preview:""}),B=ye(()=>{if(!M.canSendMessage||L.value)return!1;const o=S.value.trim().length>0,e=d.value.some(s=>!s.uploading);return o||e});function R(o){if(d.value.length>=9){_.msgWarning("最多添加 9 个附件");return}z.value=o;const e=o==="image"?"image/*":o==="video"?"video/*":"*/*";f.value&&(f.value.accept=e,f.value.value="",f.value.click())}function Q(){z.value="link-cover",f.value&&(f.value.accept="image/*",f.value.value="",f.value.click())}function X(){z.value="mini-cover",f.value&&(f.value.accept="image/*",f.value.value="",f.value.click())}async function Y(o){var g;const s=(g=o.target.files)==null?void 0:g[0];if(!s)return;const n=z.value;if(n==="link-cover"){try{const u=await G(s,s.name);v.value.picurl=u.uri||u.url,_.msgSuccess("封面上传成功")}catch(u){_.msgError((u==null?void 0:u.message)||"封面上传失败")}return}if(n==="mini-cover"){try{const u=await H(s,"image");m.value.pic_media_id=u.media_id;const k=await G(s,s.name);m.value.preview=k.uri||k.url,_.msgSuccess("小程序封面上传成功")}catch(u){_.msgError((u==null?void 0:u.message)||"封面上传失败")}return}const i=n==="file"?"":URL.createObjectURL(s),p={msgtype:n,uploading:!0,preview:i,file_name:s.name};d.value.push(p);const q=d.value.length-1;try{const k=(await H(s,n)).media_id;n==="image"?p.image={media_id:k}:n==="video"?p.video={media_id:k}:p.file={media_id:k},p.uploading=!1}catch(u){_.msgError((u==null?void 0:u.message)||"上传失败"),d.value.splice(q,1)}}function Z(o){const e=d.value[o];e!=null&&e.preview&&e.preview.startsWith("blob:")&&URL.revokeObjectURL(e.preview),d.value.splice(o,1)}function ee(){const{title:o,url:e,picurl:s,desc:n}=v.value;if(!o.trim()||!e.trim()||!s.trim()){_.msgWarning("请完整填写标题、链接地址与封面图");return}if(d.value.length>=9){_.msgWarning("最多添加 9 个附件");return}d.value.push({msgtype:"link",link:{title:o,url:e,picurl:s,desc:n}}),U.value=!1,v.value={title:"",url:"",picurl:"",desc:""}}function le(){const{title:o,appid:e,page:s,pic_media_id:n}=m.value;if(!o.trim()||!e.trim()||!s.trim()||!n){_.msgWarning("请完整填写小程序信息");return}if(d.value.length>=9){_.msgWarning("最多添加 9 个附件");return}d.value.push({msgtype:"miniprogram",miniprogram:{title:o,appid:e,page:s,pic_media_id:n}}),E.value=!1,m.value={title:"",appid:"",page:"",pic_media_id:"",preview:""}}async function D(){if(!B.value)return;const o=d.value.filter(n=>!n.uploading).map(n=>{const i={msgtype:n.msgtype};return n.image&&(i.image=n.image),n.video&&(i.video=n.video),n.file&&(i.file=n.file),n.link&&(i.link=n.link),n.miniprogram&&(i.miniprogram=n.miniprogram),i}),e={},s=S.value.trim();s&&(e.text={content:s}),o.length&&(e.attachments=o),L.value=!0;try{await J("send",e),S.value="",d.value.forEach(n=>{var i;(i=n.preview)!=null&&i.startsWith("blob:")&&URL.revokeObjectURL(n.preview)}),d.value=[]}finally{L.value=!1}}return(o,e)=>{const s=ie,n=se,i=oe,p=re,q=pe,g=_e,u=ge,k=ce;return c(),w("div",we,[d.value.length?(c(),w("div",be,[(c(!0),w(I,null,ae(d.value,(a,W)=>{var j,A,O;return c(),w("div",{key:W,class:ne(["attachment-item","attachment-"+a.msgtype])},[a.msgtype==="image"?(c(),T(s,{key:0,src:a.preview||"",fit:"cover",class:"attachment-preview"},null,8,["src"])):a.msgtype==="video"?(c(),w("video",{key:1,src:a.preview||"",class:"attachment-preview",muted:""},null,8,xe)):a.msgtype==="file"?(c(),w(I,{key:2},[l(n,{size:20},{default:t(()=>[l(b(P))]),_:1}),x("span",Ve,F(a.file_name),1)],64)):a.msgtype==="link"?(c(),w(I,{key:3},[l(n,{size:20},{default:t(()=>[l(b(K))]),_:1}),x("span",he,F(((j=a.link)==null?void 0:j.title)||((A=a.link)==null?void 0:A.url)),1)],64)):a.msgtype==="miniprogram"?(c(),w(I,{key:4},[l(n,{size:20},{default:t(()=>[l(b(N))]),_:1}),x("span",qe,F((O=a.miniprogram)==null?void 0:O.title),1)],64)):$("",!0),a.uploading?(c(),T(i,{key:5,type:"primary",link:"",loading:"",size:"small"})):(c(),T(i,{key:6,class:"attachment-remove",type:"danger",link:"",onClick:Ie=>Z(W)},{default:t(()=>[l(n,null,{default:t(()=>[l(b(ue))]),_:1})]),_:1},8,["onClick"]))],2)}),128))])):$("",!0),l(p,{modelValue:S.value,"onUpdate:modelValue":e[0]||(e[0]=a=>S.value=a),type:"textarea",rows:3,placeholder:"在此输入消息,Ctrl+Enter 发送。该消息以代发员工身份发给客户,员工手机端确认后送达。",resize:"none",onKeydown:de(me(D,["ctrl"]),["enter"])},null,8,["modelValue","onKeydown"]),x("div",Ce,[x("div",Me,[l(q,{content:"图片",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[1]||(e[1]=a=>R("image"))},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(fe))]),_:1})]),_:1})]),_:1}),l(q,{content:"视频",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[2]||(e[2]=a=>R("video"))},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(ve))]),_:1})]),_:1})]),_:1}),l(q,{content:"文件",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[3]||(e[3]=a=>R("file"))},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(P))]),_:1})]),_:1})]),_:1}),l(q,{content:"链接",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[4]||(e[4]=a=>U.value=!0)},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(K))]),_:1})]),_:1})]),_:1}),l(q,{content:"小程序",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[5]||(e[5]=a=>E.value=!0)},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(N))]),_:1})]),_:1})]),_:1})]),x("div",Se,[e[18]||(e[18]=x("span",{class:"send-hint"}," 员工手机端确认后送达客户 · Ctrl+Enter 快速发送 ",-1)),l(i,{type:"primary",disabled:!B.value,loading:L.value,onClick:D},{default:t(()=>[...e[17]||(e[17]=[C(" 发送 ",-1)])]),_:1},8,["disabled","loading"])])]),x("input",{ref_key:"fileInputRef",ref:f,type:"file",hidden:"",onChange:Y},null,544),l(k,{modelValue:U.value,"onUpdate:modelValue":e[11]||(e[11]=a=>U.value=a),title:"添加链接",width:"480px"},{footer:t(()=>[l(i,{onClick:e[10]||(e[10]=a=>U.value=!1)},{default:t(()=>[...e[20]||(e[20]=[C("取消",-1)])]),_:1}),l(i,{type:"primary",onClick:ee},{default:t(()=>[...e[21]||(e[21]=[C("确定",-1)])]),_:1})]),default:t(()=>[l(u,{"label-width":"80px",model:v.value},{default:t(()=>[l(g,{label:"标题"},{default:t(()=>[l(p,{modelValue:v.value.title,"onUpdate:modelValue":e[6]||(e[6]=a=>v.value.title=a),maxlength:"128"},null,8,["modelValue"])]),_:1}),l(g,{label:"链接地址"},{default:t(()=>[l(p,{modelValue:v.value.url,"onUpdate:modelValue":e[7]||(e[7]=a=>v.value.url=a),placeholder:"https://..."},null,8,["modelValue"])]),_:1}),l(g,{label:"封面图"},{default:t(()=>[x("div",Ue,[l(p,{modelValue:v.value.picurl,"onUpdate:modelValue":e[8]||(e[8]=a=>v.value.picurl=a),placeholder:"https://..."},null,8,["modelValue"]),l(i,{onClick:Q},{default:t(()=>[...e[19]||(e[19]=[C("本地上传",-1)])]),_:1})])]),_:1}),l(g,{label:"描述"},{default:t(()=>[l(p,{modelValue:v.value.desc,"onUpdate:modelValue":e[9]||(e[9]=a=>v.value.desc=a),type:"textarea",rows:2,maxlength:"512"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(k,{modelValue:E.value,"onUpdate:modelValue":e[16]||(e[16]=a=>E.value=a),title:"添加小程序",width:"480px"},{footer:t(()=>[l(i,{onClick:e[15]||(e[15]=a=>E.value=!1)},{default:t(()=>[...e[22]||(e[22]=[C("取消",-1)])]),_:1}),l(i,{type:"primary",disabled:!m.value.pic_media_id||!m.value.appid,onClick:le},{default:t(()=>[...e[23]||(e[23]=[C(" 确定 ",-1)])]),_:1},8,["disabled"])]),default:t(()=>[l(u,{"label-width":"100px",model:m.value},{default:t(()=>[l(g,{label:"标题"},{default:t(()=>[l(p,{modelValue:m.value.title,"onUpdate:modelValue":e[12]||(e[12]=a=>m.value.title=a)},null,8,["modelValue"])]),_:1}),l(g,{label:"appid"},{default:t(()=>[l(p,{modelValue:m.value.appid,"onUpdate:modelValue":e[13]||(e[13]=a=>m.value.appid=a),placeholder:"wx..."},null,8,["modelValue"])]),_:1}),l(g,{label:"页面路径"},{default:t(()=>[l(p,{modelValue:m.value.page,"onUpdate:modelValue":e[14]||(e[14]=a=>m.value.page=a),placeholder:"/pages/index/index"},null,8,["modelValue"])]),_:1}),l(g,{label:"封面图"},{default:t(()=>[l(i,{onClick:X},{default:t(()=>[C(F(m.value.pic_media_id?"已选择 · 重新选择":"上传封面(必填)"),1)]),_:1}),m.value.preview?(c(),w("div",Ee,[l(s,{src:m.value.preview,fit:"cover"},null,8,["src"])])):$("",!0)]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),ze=ke(Le,[["__scopeId","data-v-afee3bd0"]]),Ne=Object.freeze(Object.defineProperty({__proto__:null,default:ze},Symbol.toStringTag,{value:"Module"}));export{ze as S,Pe as a,Ke as b,Oe as c,De as d,Be as e,We as f,je as g,Ae as h,Ne as i,$e as q};
diff --git a/server/public/admin/assets/TrackingMatrix-ClIkbT0i.js b/server/public/admin/assets/TrackingMatrix-BGO3nSml.js
similarity index 95%
rename from server/public/admin/assets/TrackingMatrix-ClIkbT0i.js
rename to server/public/admin/assets/TrackingMatrix-BGO3nSml.js
index 8ed887e43..a15989021 100644
--- a/server/public/admin/assets/TrackingMatrix-ClIkbT0i.js
+++ b/server/public/admin/assets/TrackingMatrix-BGO3nSml.js
@@ -1 +1 @@
-import{o as O,R as U,ap as j,ac as G,bi as W,q as n,r as i,s as r,v as p,D as d,bb as J,L as f,bc as K,O as M,bp as Q,P as m,bB as X,bk as Z,ae as R,T as c,a1 as ee,bj as te,M as y,p as B}from"./.pnpm-BHOjf1ZS.js";import{f as se,c as ae,d as ne,e as le,b as ie}from"./blood-thresholds-CJ1fqMjh.js";import{_ as oe}from"./tcm-BkYsBTA3.js";import{_ as re}from"./index-B31vLELt.js";const de={class:"tracking-matrix"},ce={class:"toolbar"},ue={key:0,class:"cell-blood"},pe={class:"value"},_e={key:0,class:"cell-up"},ge={class:"value"},fe={key:0,class:"cell-up"},me={class:"value"},he={key:0,class:"cell-up"},ve={key:1,class:"cell-empty"},ye={key:0,class:"cell-up"},ke={key:1,class:"cell-empty"},be={key:0},xe={key:1,class:"cell-empty"},De={key:0},He={key:1,class:"cell-empty"},Se={class:"diet-tip"},Me={key:1,class:"cell-empty"},Be={class:"exercise-tip"},Te={key:0},Ce={class:"cell-checked"},Re={key:0,class:"meta"},Ve={key:1,class:"meta"},Ee={key:1,class:"cell-empty"},Ie=O({__name:"TrackingMatrix",props:{diagnosisId:{},age:{default:null}},setup(Y,{expose:q}){const g=Y,h=y("30"),k=y(null),T=y(!1),b=y([]),x=y([]),D=y([]);let C=0;const E=s=>`${s.getFullYear()}-${String(s.getMonth()+1).padStart(2,"0")}-${String(s.getDate()).padStart(2,"0")}`,I=s=>{if(s==="custom"){const[_,o]=k.value||["",""];return{start:_||"",end:o||""}}const e=s==="7"?7:30,t=new Date;t.setHours(0,0,0,0);const l=new Date(t);return l.setDate(l.getDate()-(e-1)),{start:E(l),end:E(t)}},N=s=>s.getTime()>Date.now(),H=async()=>{if(!g.diagnosisId||g.diagnosisId<=0){b.value=[],x.value=[],D.value=[];return}const s=I(h.value);if(h.value==="custom"&&(!s.start||!s.end))return;const e=++C;T.value=!0;try{const t=await oe({id:g.diagnosisId,start_date:s.start,end_date:s.end});if(e!==C)return;b.value=(t==null?void 0:t.blood_records)||[],x.value=(t==null?void 0:t.diet_records)||[],D.value=(t==null?void 0:t.exercise_records)||[]}catch{e===C&&(b.value=[],x.value=[],D.value=[])}finally{e===C&&(T.value=!1)}},P=()=>{if(h.value==="custom"&&!k.value){const s=I("30");k.value=[s.start,s.end]}H()},$=()=>{h.value==="custom"&&H()};U(()=>g.diagnosisId,s=>{s&&s>0&&H()}),j(()=>{g.diagnosisId&&g.diagnosisId>0&&H()});const w=B(()=>{const s=new Map;for(const e of b.value){const t=String(e.record_date||"");if(!t)continue;s.has(t)||s.set(t,{record_date:t,record_date_ts:e.record_date_ts});const l=s.get(t),_=["fasting_blood_sugar","postprandial_blood_sugar","other_blood_sugar","systolic_pressure","diastolic_pressure","western_medicine","insulin"];for(const o of _)(l[o]===void 0||l[o]===null||l[o]==="")&&e[o]!==void 0&&e[o]!==null&&e[o]!==""&&(l[o]=e[o])}return s}),z=B(()=>{const s=new Map;for(const e of x.value){const t=String(e.record_date||"");t&&(s.has(t)||s.set(t,e))}return s}),A=B(()=>{const s=new Map;for(const e of D.value){const t=String(e.record_date||"");t&&(s.has(t)||s.set(t,e))}return s}),L=B(()=>{const s=new Set;for(const t of b.value)t.record_date&&s.add(String(t.record_date));for(const t of x.value)t.record_date&&s.add(String(t.record_date));for(const t of D.value)t.record_date&&s.add(String(t.record_date));const e=Array.from(s).filter(t=>t.length===10);return e.sort((t,l)=>tl?-1:0),e}),F=B(()=>L.value.map(s=>{const e=w.value.get(s),t=z.value.get(s),l=A.value.get(s),_=(e==null?void 0:e.fasting_blood_sugar)??null,o=(e==null?void 0:e.postprandial_blood_sugar)??null,u=(e==null?void 0:e.other_blood_sugar)??null,v=(e==null?void 0:e.systolic_pressure)??null,S=(e==null?void 0:e.diastolic_pressure)??null,V=_!==null&&_!==""||o!==null&&o!==""||u!==null&&u!=="",a=v||S?se({systolic_pressure:v,diastolic_pressure:S}):"";return{date:s,dateLabel:`${s}`,bloodAny:V,fasting:_??"—",postprandial:o??"—",other:u??"—",fastingHigh:ie(_,g.age),postprandialHigh:le(o,g.age),otherHigh:ne(u,g.age),bp:a,bpHigh:ae({systolic_pressure:v,diastolic_pressure:S}),westernMedicine:(e==null?void 0:e.western_medicine)||"",insulin:(e==null?void 0:e.insulin)||"",diet:t?{breakfast:t.breakfast||"",lunch:t.lunch||"",dinner:t.dinner||""}:null,exercise:l?{duration:l.duration||0,intensityText:l.intensity_text||"",remark:l.remark||""}:null}}));return q({refresh:H}),(s,e)=>{const t=J,l=K,_=Q,o=X,u=Z,v=ee,S=te,V=W;return G((n(),i("div",de,[r("div",ce,[p(l,{modelValue:h.value,"onUpdate:modelValue":e[0]||(e[0]=a=>h.value=a),onChange:P},{default:d(()=>[p(t,{value:"7"},{default:d(()=>[...e[2]||(e[2]=[f("最近 7 天",-1)])]),_:1}),p(t,{value:"30"},{default:d(()=>[...e[3]||(e[3]=[f("最近 30 天",-1)])]),_:1}),p(t,{value:"custom"},{default:d(()=>[...e[4]||(e[4]=[f("自定义",-1)])]),_:1})]),_:1},8,["modelValue"]),h.value==="custom"?(n(),M(_,{key:0,modelValue:k.value,"onUpdate:modelValue":e[1]||(e[1]=a=>k.value=a),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",clearable:!1,size:"default","disabled-date":N,onChange:$},null,8,["modelValue"])):m("",!0),e[5]||(e[5]=r("span",{class:"hint"}," 超阈值红字↑(年龄分段:<50:空7/餐9,≥50:空8/餐10) ",-1))]),!T.value&&L.value.length===0?(n(),M(o,{key:0,description:"所选区间内无任何打卡记录","image-size":80})):(n(),M(S,{key:1,data:F.value,border:"",stripe:"",class:"matrix-table","empty-text":"暂无数据","row-key":"date","max-height":"640"},{default:d(()=>[p(u,{prop:"dateLabel",label:"日期",width:"120",fixed:"left"}),p(u,{label:"血糖 (mmol/L)","min-width":"180"},{default:d(({row:a})=>[a.bloodAny?(n(),i("div",ue,[r("span",{class:R({"cell-high":a.fastingHigh})},[e[6]||(e[6]=f(" 空 ",-1)),r("span",pe,c(a.fasting??"—"),1),a.fastingHigh?(n(),i("span",_e,"↑")):m("",!0)],2),r("span",{class:R({"cell-high":a.postprandialHigh})},[e[7]||(e[7]=f(" 餐 ",-1)),r("span",ge,c(a.postprandial??"—"),1),a.postprandialHigh?(n(),i("span",fe,"↑")):m("",!0)],2),r("span",{class:R({"cell-high":a.otherHigh})},[e[8]||(e[8]=f(" 其他 ",-1)),r("span",me,c(a.other??"—"),1),a.otherHigh?(n(),i("span",he,"↑")):m("",!0)],2)])):(n(),i("span",ve,"—"))]),_:1}),p(u,{label:"血压 (mmHg)",width:"120",align:"center"},{default:d(({row:a})=>[a.bp?(n(),i("span",{key:0,class:R({"cell-high":a.bpHigh})},[f(c(a.bp)+" ",1),a.bpHigh?(n(),i("span",ye,"↑")):m("",!0)],2)):(n(),i("span",ke,"—"))]),_:1}),p(u,{label:"西药","min-width":"120","show-overflow-tooltip":""},{default:d(({row:a})=>[a.westernMedicine?(n(),i("span",be,c(a.westernMedicine),1)):(n(),i("span",xe,"—"))]),_:1}),p(u,{label:"胰岛素","min-width":"120","show-overflow-tooltip":""},{default:d(({row:a})=>[a.insulin?(n(),i("span",De,c(a.insulin),1)):(n(),i("span",He,"—"))]),_:1}),p(u,{label:"饮食打卡",width:"110",align:"center"},{default:d(({row:a})=>[a.diet?(n(),M(v,{key:0,placement:"top",disabled:!a.diet,effect:"light"},{content:d(()=>[r("div",Se,[r("div",null,"早:"+c(a.diet.breakfast||"—"),1),r("div",null,"午:"+c(a.diet.lunch||"—"),1),r("div",null,"晚:"+c(a.diet.dinner||"—"),1)])]),default:d(()=>[e[9]||(e[9]=r("span",{class:"cell-checked"},"已打卡",-1))]),_:2},1032,["disabled"])):(n(),i("span",Me,"—"))]),_:1}),p(u,{label:"运动打卡","min-width":"160",align:"center"},{default:d(({row:a})=>[a.exercise?(n(),M(v,{key:0,placement:"top",effect:"light"},{content:d(()=>[r("div",Be,[r("div",null,"强度:"+c(a.exercise.intensityText||"—"),1),r("div",null,"时长:"+c(a.exercise.duration?a.exercise.duration+" min":"—"),1),a.exercise.remark?(n(),i("div",Te,"备注:"+c(a.exercise.remark),1)):m("",!0)])]),default:d(()=>[r("span",Ce,[e[10]||(e[10]=f(" 已打卡 ",-1)),a.exercise.duration?(n(),i("span",Re,"· "+c(a.exercise.duration)+"min",1)):m("",!0),a.exercise.intensityText?(n(),i("span",Ve,"· "+c(a.exercise.intensityText),1)):m("",!0)])]),_:2},1024)):(n(),i("span",Ee,"—"))]),_:1})]),_:1},8,["data"]))])),[[V,T.value]])}}}),Pe=re(Ie,[["__scopeId","data-v-87978983"]]);export{Pe as default};
+import{o as O,R as U,ap as j,ac as G,bl as W,q as n,r as i,s as r,v as p,D as d,bb as J,L as f,bc as K,O as M,be as Q,P as m,bB as X,bj as Z,ae as R,T as c,a1 as ee,bi as te,M as y,p as B}from"./.pnpm-BuKxIMgQ.js";import{f as se,c as ae,d as ne,e as le,b as ie}from"./blood-thresholds-CJ1fqMjh.js";import{_ as oe}from"./tcm-BZvWmp4G.js";import{_ as re}from"./index-BZAvl557.js";const de={class:"tracking-matrix"},ce={class:"toolbar"},ue={key:0,class:"cell-blood"},pe={class:"value"},_e={key:0,class:"cell-up"},ge={class:"value"},fe={key:0,class:"cell-up"},me={class:"value"},he={key:0,class:"cell-up"},ve={key:1,class:"cell-empty"},ye={key:0,class:"cell-up"},ke={key:1,class:"cell-empty"},be={key:0},xe={key:1,class:"cell-empty"},De={key:0},He={key:1,class:"cell-empty"},Se={class:"diet-tip"},Me={key:1,class:"cell-empty"},Be={class:"exercise-tip"},Te={key:0},Ce={class:"cell-checked"},Re={key:0,class:"meta"},Ve={key:1,class:"meta"},Ee={key:1,class:"cell-empty"},Ie=O({__name:"TrackingMatrix",props:{diagnosisId:{},age:{default:null}},setup(Y,{expose:q}){const g=Y,h=y("30"),k=y(null),T=y(!1),b=y([]),x=y([]),D=y([]);let C=0;const E=s=>`${s.getFullYear()}-${String(s.getMonth()+1).padStart(2,"0")}-${String(s.getDate()).padStart(2,"0")}`,I=s=>{if(s==="custom"){const[_,o]=k.value||["",""];return{start:_||"",end:o||""}}const e=s==="7"?7:30,t=new Date;t.setHours(0,0,0,0);const l=new Date(t);return l.setDate(l.getDate()-(e-1)),{start:E(l),end:E(t)}},N=s=>s.getTime()>Date.now(),H=async()=>{if(!g.diagnosisId||g.diagnosisId<=0){b.value=[],x.value=[],D.value=[];return}const s=I(h.value);if(h.value==="custom"&&(!s.start||!s.end))return;const e=++C;T.value=!0;try{const t=await oe({id:g.diagnosisId,start_date:s.start,end_date:s.end});if(e!==C)return;b.value=(t==null?void 0:t.blood_records)||[],x.value=(t==null?void 0:t.diet_records)||[],D.value=(t==null?void 0:t.exercise_records)||[]}catch{e===C&&(b.value=[],x.value=[],D.value=[])}finally{e===C&&(T.value=!1)}},P=()=>{if(h.value==="custom"&&!k.value){const s=I("30");k.value=[s.start,s.end]}H()},$=()=>{h.value==="custom"&&H()};U(()=>g.diagnosisId,s=>{s&&s>0&&H()}),j(()=>{g.diagnosisId&&g.diagnosisId>0&&H()});const w=B(()=>{const s=new Map;for(const e of b.value){const t=String(e.record_date||"");if(!t)continue;s.has(t)||s.set(t,{record_date:t,record_date_ts:e.record_date_ts});const l=s.get(t),_=["fasting_blood_sugar","postprandial_blood_sugar","other_blood_sugar","systolic_pressure","diastolic_pressure","western_medicine","insulin"];for(const o of _)(l[o]===void 0||l[o]===null||l[o]==="")&&e[o]!==void 0&&e[o]!==null&&e[o]!==""&&(l[o]=e[o])}return s}),z=B(()=>{const s=new Map;for(const e of x.value){const t=String(e.record_date||"");t&&(s.has(t)||s.set(t,e))}return s}),A=B(()=>{const s=new Map;for(const e of D.value){const t=String(e.record_date||"");t&&(s.has(t)||s.set(t,e))}return s}),L=B(()=>{const s=new Set;for(const t of b.value)t.record_date&&s.add(String(t.record_date));for(const t of x.value)t.record_date&&s.add(String(t.record_date));for(const t of D.value)t.record_date&&s.add(String(t.record_date));const e=Array.from(s).filter(t=>t.length===10);return e.sort((t,l)=>tl?-1:0),e}),F=B(()=>L.value.map(s=>{const e=w.value.get(s),t=z.value.get(s),l=A.value.get(s),_=(e==null?void 0:e.fasting_blood_sugar)??null,o=(e==null?void 0:e.postprandial_blood_sugar)??null,u=(e==null?void 0:e.other_blood_sugar)??null,v=(e==null?void 0:e.systolic_pressure)??null,S=(e==null?void 0:e.diastolic_pressure)??null,V=_!==null&&_!==""||o!==null&&o!==""||u!==null&&u!=="",a=v||S?se({systolic_pressure:v,diastolic_pressure:S}):"";return{date:s,dateLabel:`${s}`,bloodAny:V,fasting:_??"—",postprandial:o??"—",other:u??"—",fastingHigh:ie(_,g.age),postprandialHigh:le(o,g.age),otherHigh:ne(u,g.age),bp:a,bpHigh:ae({systolic_pressure:v,diastolic_pressure:S}),westernMedicine:(e==null?void 0:e.western_medicine)||"",insulin:(e==null?void 0:e.insulin)||"",diet:t?{breakfast:t.breakfast||"",lunch:t.lunch||"",dinner:t.dinner||""}:null,exercise:l?{duration:l.duration||0,intensityText:l.intensity_text||"",remark:l.remark||""}:null}}));return q({refresh:H}),(s,e)=>{const t=J,l=K,_=Q,o=X,u=Z,v=ee,S=te,V=W;return G((n(),i("div",de,[r("div",ce,[p(l,{modelValue:h.value,"onUpdate:modelValue":e[0]||(e[0]=a=>h.value=a),onChange:P},{default:d(()=>[p(t,{value:"7"},{default:d(()=>[...e[2]||(e[2]=[f("最近 7 天",-1)])]),_:1}),p(t,{value:"30"},{default:d(()=>[...e[3]||(e[3]=[f("最近 30 天",-1)])]),_:1}),p(t,{value:"custom"},{default:d(()=>[...e[4]||(e[4]=[f("自定义",-1)])]),_:1})]),_:1},8,["modelValue"]),h.value==="custom"?(n(),M(_,{key:0,modelValue:k.value,"onUpdate:modelValue":e[1]||(e[1]=a=>k.value=a),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",clearable:!1,size:"default","disabled-date":N,onChange:$},null,8,["modelValue"])):m("",!0),e[5]||(e[5]=r("span",{class:"hint"}," 超阈值红字↑(年龄分段:<50:空7/餐9,≥50:空8/餐10) ",-1))]),!T.value&&L.value.length===0?(n(),M(o,{key:0,description:"所选区间内无任何打卡记录","image-size":80})):(n(),M(S,{key:1,data:F.value,border:"",stripe:"",class:"matrix-table","empty-text":"暂无数据","row-key":"date","max-height":"640"},{default:d(()=>[p(u,{prop:"dateLabel",label:"日期",width:"120",fixed:"left"}),p(u,{label:"血糖 (mmol/L)","min-width":"180"},{default:d(({row:a})=>[a.bloodAny?(n(),i("div",ue,[r("span",{class:R({"cell-high":a.fastingHigh})},[e[6]||(e[6]=f(" 空 ",-1)),r("span",pe,c(a.fasting??"—"),1),a.fastingHigh?(n(),i("span",_e,"↑")):m("",!0)],2),r("span",{class:R({"cell-high":a.postprandialHigh})},[e[7]||(e[7]=f(" 餐 ",-1)),r("span",ge,c(a.postprandial??"—"),1),a.postprandialHigh?(n(),i("span",fe,"↑")):m("",!0)],2),r("span",{class:R({"cell-high":a.otherHigh})},[e[8]||(e[8]=f(" 其他 ",-1)),r("span",me,c(a.other??"—"),1),a.otherHigh?(n(),i("span",he,"↑")):m("",!0)],2)])):(n(),i("span",ve,"—"))]),_:1}),p(u,{label:"血压 (mmHg)",width:"120",align:"center"},{default:d(({row:a})=>[a.bp?(n(),i("span",{key:0,class:R({"cell-high":a.bpHigh})},[f(c(a.bp)+" ",1),a.bpHigh?(n(),i("span",ye,"↑")):m("",!0)],2)):(n(),i("span",ke,"—"))]),_:1}),p(u,{label:"西药","min-width":"120","show-overflow-tooltip":""},{default:d(({row:a})=>[a.westernMedicine?(n(),i("span",be,c(a.westernMedicine),1)):(n(),i("span",xe,"—"))]),_:1}),p(u,{label:"胰岛素","min-width":"120","show-overflow-tooltip":""},{default:d(({row:a})=>[a.insulin?(n(),i("span",De,c(a.insulin),1)):(n(),i("span",He,"—"))]),_:1}),p(u,{label:"饮食打卡",width:"110",align:"center"},{default:d(({row:a})=>[a.diet?(n(),M(v,{key:0,placement:"top",disabled:!a.diet,effect:"light"},{content:d(()=>[r("div",Se,[r("div",null,"早:"+c(a.diet.breakfast||"—"),1),r("div",null,"午:"+c(a.diet.lunch||"—"),1),r("div",null,"晚:"+c(a.diet.dinner||"—"),1)])]),default:d(()=>[e[9]||(e[9]=r("span",{class:"cell-checked"},"已打卡",-1))]),_:2},1032,["disabled"])):(n(),i("span",Me,"—"))]),_:1}),p(u,{label:"运动打卡","min-width":"160",align:"center"},{default:d(({row:a})=>[a.exercise?(n(),M(v,{key:0,placement:"top",effect:"light"},{content:d(()=>[r("div",Be,[r("div",null,"强度:"+c(a.exercise.intensityText||"—"),1),r("div",null,"时长:"+c(a.exercise.duration?a.exercise.duration+" min":"—"),1),a.exercise.remark?(n(),i("div",Te,"备注:"+c(a.exercise.remark),1)):m("",!0)])]),default:d(()=>[r("span",Ce,[e[10]||(e[10]=f(" 已打卡 ",-1)),a.exercise.duration?(n(),i("span",Re,"· "+c(a.exercise.duration)+"min",1)):m("",!0),a.exercise.intensityText?(n(),i("span",Ve,"· "+c(a.exercise.intensityText),1)):m("",!0)])]),_:2},1024)):(n(),i("span",Ee,"—"))]),_:1})]),_:1},8,["data"]))])),[[V,T.value]])}}}),Pe=re(Ie,[["__scopeId","data-v-87978983"]]);export{Pe as default};
diff --git a/server/public/admin/assets/TrackingNoteTimeline-CgCsRsCv.js b/server/public/admin/assets/TrackingNoteTimeline-DCE37DVg.js
similarity index 93%
rename from server/public/admin/assets/TrackingNoteTimeline-CgCsRsCv.js
rename to server/public/admin/assets/TrackingNoteTimeline-DCE37DVg.js
index cbcf55822..40f05a7d2 100644
--- a/server/public/admin/assets/TrackingNoteTimeline-CgCsRsCv.js
+++ b/server/public/admin/assets/TrackingNoteTimeline-DCE37DVg.js
@@ -1,2 +1,2 @@
-import{o as T,q as e,r as t,v as m,b7 as V,s as d,D as w,L as I,K as E,P as r,F as u,G as v,T as g,O as C,bB as z,M as p}from"./.pnpm-BHOjf1ZS.js";import{a6 as L}from"./tcm-BkYsBTA3.js";import{j as M,_ as S}from"./index-B31vLELt.js";/* empty css */const D={class:"tracking-timeline-wrap"},F={key:0,class:"timeline-input"},H={class:"input-actions"},j={key:1,class:"tracking-timeline"},q={class:"timeline-date"},A={class:"timeline-body"},G={key:0,class:"timeline-content"},K=T({__name:"TrackingNoteTimeline",props:{notes:{},diagnosisId:{},readonly:{type:Boolean}},emits:["refresh"],setup(n,{emit:f}){const c=n,y=f,o=p(""),l=p(!1),_=s=>s?s.split(`
+import{o as T,q as e,r as t,v as m,b7 as V,s as d,D as w,L as I,K as E,P as r,F as u,G as v,T as g,O as C,bB as z,M as p}from"./.pnpm-BuKxIMgQ.js";import{a6 as L}from"./tcm-BZvWmp4G.js";import{j as M,_ as S}from"./index-BZAvl557.js";/* empty css */const D={class:"tracking-timeline-wrap"},F={key:0,class:"timeline-input"},H={class:"input-actions"},j={key:1,class:"tracking-timeline"},q={class:"timeline-date"},A={class:"timeline-body"},G={key:0,class:"timeline-content"},K=T({__name:"TrackingNoteTimeline",props:{notes:{},diagnosisId:{},readonly:{type:Boolean}},emits:["refresh"],setup(n,{emit:f}){const c=n,y=f,o=p(""),l=p(!1),_=s=>s?s.split(`
`).filter(Boolean):[],k=async()=>{if(!c.diagnosisId)return;const s=o.value.trim();if(s){l.value=!0;try{await L({diagnosis_id:c.diagnosisId,tracking_content:s}),M.msgSuccess("已添加"),o.value="",y("refresh")}finally{l.value=!1}}};return(s,i)=>{const b=V,h=E,B=z;return e(),t("div",D,[!n.readonly&&n.diagnosisId?(e(),t("div",F,[m(b,{modelValue:o.value,"onUpdate:modelValue":i[0]||(i[0]=a=>o.value=a),type:"textarea",rows:2,placeholder:"输入跟踪备注,回车换行;保存后将以「[HH:MM] 内容」追加到当天记录",maxlength:"1000","show-word-limit":"",resize:"none",disabled:l.value},null,8,["modelValue","disabled"]),d("div",H,[m(h,{type:"primary",size:"small",loading:l.value,disabled:!o.value.trim(),onClick:k},{default:w(()=>[...i[1]||(i[1]=[I(" 添加 ",-1)])]),_:1},8,["loading","disabled"])])])):r("",!0),n.notes.length?(e(),t("div",j,[(e(!0),t(u,null,v(n.notes,a=>(e(),t("div",{key:a.id,class:"timeline-node"},[i[2]||(i[2]=d("div",{class:"timeline-dot"},null,-1)),d("div",q,g(a.note_date),1),d("div",A,[a.content?(e(),t("div",G,[(e(!0),t(u,null,v(_(a.content),(x,N)=>(e(),t("div",{key:N,class:"content-line"},g(x),1))),128))])):r("",!0)])]))),128))])):r("",!0),!n.notes.length&&n.readonly?(e(),C(B,{key:2,description:"暂无跟踪备注","image-size":48})):r("",!0)])}}}),Q=S(K,[["__scopeId","data-v-82b635bd"]]);export{Q as default};
diff --git a/server/public/admin/assets/WecomFloatingWidgetBuilder-Bax2iNSs.js b/server/public/admin/assets/WecomFloatingWidgetBuilder-CATAQiHt.js
similarity index 99%
rename from server/public/admin/assets/WecomFloatingWidgetBuilder-Bax2iNSs.js
rename to server/public/admin/assets/WecomFloatingWidgetBuilder-CATAQiHt.js
index dcacdc39c..b4268d227 100644
--- a/server/public/admin/assets/WecomFloatingWidgetBuilder-Bax2iNSs.js
+++ b/server/public/admin/assets/WecomFloatingWidgetBuilder-CATAQiHt.js
@@ -1 +1 @@
-import{o as ae,ba as re,M as T,R as de,q as v,r as V,s as t,v as l,D as a,u as m,cY as ue,w as ce,ae as E,L as _,T as f,F as pe,G as me,O as fe,at as L,P as O,b6 as be,I as _e,H as ge,b7 as ye,bc as we,bb as ve,cZ as xe,J as ke,aw as z,b9 as Ve,cp as Ee,c_ as Ce,K as he,c$ as Ae,d0 as R,t as Se,cB as Te,d1 as Oe,d2 as P,p as B,E as p}from"./.pnpm-BHOjf1ZS.js";import{B as Be}from"./first_visit-ClR5pGNH.js";import{_ as We}from"./index-B31vLELt.js";const Ue=["bubble","pill","card","message","edge","bar"],y=Object.freeze({v:1,enabled:!1,template:"bubble",position:"bottom-right",title:"专属顾问在线",subtitle:"点击添加企业微信,获取一对一服务",button_text:"立即咨询",primary_color:"#139A8C",bottom_offset:28,show_mobile:!0}),W=Object.freeze([{id:"bubble",name:"轻巧气泡",description:"圆形入口,占用空间最少",scene:"内容型页面"},{id:"pill",name:"行动胶囊",description:"图标与按钮文案同时露出",scene:"营销落地页"},{id:"card",name:"顾问名片",description:"完整呈现标题、说明与行动按钮",scene:"高意向咨询"},{id:"message",name:"消息提醒",description:"模拟新消息,视觉提醒更明确",scene:"活动推广页"},{id:"edge",name:"贴边咨询",description:"沿浏览器边缘停靠,干扰更低",scene:"工具与内容页"},{id:"bar",name:"底部咨询条",description:"宽幅行动区,移动端更醒目",scene:"移动端页面"}]),Ie=new Set(Ue),Ne=new Set(["bottom-right","bottom-left"]),$e=/^#[0-9A-F]{6}$/i;function De(n){if(n&&typeof n=="object"&&!Array.isArray(n))return n;if(typeof n!="string"||!n.trim())return{};try{const r=JSON.parse(n);return r&&typeof r=="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function j(n,r){return n===!0||n===1||n==="1"||n==="true"?!0:n===!1||n===0||n==="0"||n==="false"?!1:r}function U(n,r,d){return n==null?r:Array.from(String(n).trim()).slice(0,d).join("")}function I(n){const r=De(n),d=String(r.template||""),A=String(r.position||""),o=String(r.primary_color||"").trim().toUpperCase(),b=Number(r.bottom_offset),x=Number.isFinite(b)?Math.min(160,Math.max(16,Math.round(b))):y.bottom_offset;return{v:1,enabled:j(r.enabled,y.enabled),template:Ie.has(d)?d:y.template,position:Ne.has(A)?A:y.position,title:U(r.title,y.title,24),subtitle:U(r.subtitle,y.subtitle,48),button_text:U(r.button_text,y.button_text,12),primary_color:$e.test(o)?o:y.primary_color,bottom_offset:x,show_mobile:j(r.show_mobile,y.show_mobile)}}function N(){return{...y}}const Fe={class:"widget-builder","aria-label":"企业微信浮窗客服配置"},Me={class:"builder-header"},Le={class:"builder-intro"},ze={class:"builder-icon"},Re={class:"publish-state"},Pe={class:"builder-layout"},je={class:"builder-controls"},Ge={class:"control-section template-section"},He={class:"template-grid",role:"radiogroup","aria-label":"浮窗客服模板"},Je=["aria-checked","onClick","onKeydown"],Ke={class:"template-copy"},qe={class:"control-section config-section"},Xe={class:"control-heading"},Ye={key:0,class:"dirty-state"},Ze={class:"form-grid"},Qe={class:"switch-control"},et={class:"switch-control"},tt={class:"color-control"},ot={class:"offset-control"},lt={class:"form-actions"},st={class:"action-note"},nt={class:"action-buttons"},it={class:"preview-panel","aria-label":"浮窗实时预览"},at={class:"preview-header"},rt={key:0,class:"mobile-hidden-note"},dt=["aria-label"],ut={class:"widget-copy"},ct={class:"widget-title"},pt={key:0,class:"widget-subtitle"},mt={class:"widget-cta"},ft={class:"install-section"},bt={class:"install-heading"},_t={class:"code-grid"},gt={class:"code-card"},yt={class:"code-card"},wt={class:"install-tip"},vt=ae({__name:"WecomFloatingWidgetBuilder",props:{pool:{}},emits:["saved"],setup(n,{emit:r}){const d=n,A=r,o=re(N()),b=T(N()),x=T("desktop"),S=T(!1),G=["#139A8C","#168C74","#2878D0","#C76A2B","#BA4E68","#43546A"],H=B(()=>({"--widget-primary":o.primary_color,"--widget-bottom":`${o.bottom_offset}px`})),J=B(()=>JSON.stringify(o)!==JSON.stringify(b.value)),K=B(()=>o.enabled?b.value.enabled?"保存更新":"保存并启用":b.value.enabled?"保存并停用":"保存配置");function q(){return d.pool.widget_config??d.pool.widget??d.pool.widgetConfig}function X(){const i=I(q());Object.assign(o,i),b.value={...i}}de(()=>[d.pool.id,d.pool.widget_config,d.pool.widget,d.pool.widgetConfig],X,{immediate:!0,deep:!0});function Y(i,e){if(!["ArrowRight","ArrowDown","ArrowLeft","ArrowUp","Home","End"].includes(i.key))return;i.preventDefault();const g=W.length-1;let c=e;(i.key==="ArrowRight"||i.key==="ArrowDown")&&(c=e===g?0:e+1),(i.key==="ArrowLeft"||i.key==="ArrowUp")&&(c=e===0?g:e-1),i.key==="Home"&&(c=0),i.key==="End"&&(c=g),o.template=W[c].id;const C=i.currentTarget.closest(".template-grid"),w=C==null?void 0:C.querySelectorAll(".template-option");window.requestAnimationFrame(()=>{var k;return(k=w==null?void 0:w[c])==null?void 0:k.focus()})}function Z(){o.primary_color=I({...o,primary_color:typeof o.primary_color=="string"?o.primary_color:""}).primary_color}function Q(){Object.assign(o,N()),p.info("已恢复默认配置,保存后生效")}function ee(){if(!o.title.trim())return p.warning("请输入浮窗标题"),!1;if(!o.button_text.trim())return p.warning("请输入按钮文字"),!1;const i=typeof o.primary_color=="string"?o.primary_color.trim():"";return/^#[0-9A-F]{6}$/i.test(i)?!0:(p.warning("主题色请输入 #RRGGBB 格式"),!1)}async function te(){if(!ee())return;const i=b.value.enabled,e=o.enabled,u=I({...o,enabled:e});S.value=!0;try{await Be({pool_id:Number(d.pool.id),...u}),Object.assign(o,u),b.value={...u},!e&&i?p.success("浮窗已停用,最多 60 秒生效"):e?i?p.success("浮窗配置已保存,最多 60 秒生效"):p.success("浮窗已启用,最多 60 秒生效"):p.success("浮窗配置已保存,当前保持未启用"),A("saved",u)}catch(g){p.error((g==null?void 0:g.message)||"浮窗配置保存失败")}finally{S.value=!1}}function $(i){const e=document.createElement("textarea");e.value=i,e.setAttribute("readonly",""),e.style.position="fixed",e.style.left="-9999px",e.style.opacity="0",document.body.appendChild(e);try{if(e.focus(),e.select(),!document.execCommand("copy"))throw new Error("copy command failed")}finally{e.remove()}}async function D(i,e){var u;if(!i){p.warning(`${e}暂无内容`);return}try{if(window.isSecureContext&&((u=navigator.clipboard)!=null&&u.writeText))try{await navigator.clipboard.writeText(i)}catch{$(i)}else $(i);p.success(`${e}已复制`)}catch{p.error(`${e}复制失败,请手动选择代码复制`)}}function oe(){const i=d.pool.main_url||d.pool.go_url||d.pool.compat_go_url;if(!i){p.warning("当前方案暂无测试链接");return}window.open(i,"_blank","noopener,noreferrer")}return(i,e)=>{const u=ce,g=_e,c=be,C=ge,w=ye,k=ve,F=we,le=xe,se=ke,ne=Ve,h=he;return v(),V("section",Fe,[t("header",Me,[t("div",Le,[t("span",ze,[l(u,null,{default:a(()=>[l(m(ue))]),_:1})]),e[15]||(e[15]=t("div",null,[t("h3",null,"浮窗客服模板"),t("p",null,"选择模板并调整内容,保存后基础脚本会自动在推广页展示浮窗。")],-1))]),t("div",Re,[t("span",{class:E(["state-badge",b.value.enabled?"is-enabled":"is-disabled"])},[e[16]||(e[16]=t("i",{"aria-hidden":"true"},null,-1)),_(f(b.value.enabled?"已启用":"未启用"),1)],2),e[17]||(e[17]=t("small",null,"配置保存后最多 60 秒生效",-1))])]),t("div",Pe,[t("div",je,[t("section",Ge,[e[19]||(e[19]=t("div",{class:"control-heading"},[t("div",null,[t("span",{class:"section-index"},"01"),t("h4",null,"选择展示模板")]),t("span",null,"支持方向键切换")],-1)),t("div",He,[(v(!0),V(pe,null,me(m(W),(s,ie)=>(v(),V("button",{key:s.id,type:"button",class:E(["template-option",{active:o.template===s.id}]),role:"radio","aria-checked":o.template===s.id,onClick:M=>o.template=s.id,onKeydown:M=>Y(M,ie)},[t("span",{class:E(["template-swatch",`is-${s.id}`]),"aria-hidden":"true"},[...e[18]||(e[18]=[t("i",{class:"swatch-icon"},null,-1),t("i",{class:"swatch-line is-long"},null,-1),t("i",{class:"swatch-line is-short"},null,-1),t("i",{class:"swatch-action"},null,-1)])],2),t("span",Ke,[t("strong",null,f(s.name),1),t("small",null,f(s.description),1),t("em",null,f(s.scene),1)]),o.template===s.id?(v(),fe(u,{key:0,class:"selected-check"},{default:a(()=>[l(m(L))]),_:1})):O("",!0)],42,Je))),128))])]),t("section",qe,[t("div",Xe,[e[20]||(e[20]=t("div",null,[t("span",{class:"section-index"},"02"),t("h4",null,"调整浮窗内容")],-1)),J.value?(v(),V("span",Ye,"有未保存更改")):O("",!0)]),l(ne,{class:"widget-form","label-position":"top",onSubmit:e[10]||(e[10]=z(()=>{},["prevent"]))},{default:a(()=>[t("div",Ze,[l(c,{label:"显示浮窗"},{default:a(()=>[t("div",Qe,[l(g,{modelValue:o.enabled,"onUpdate:modelValue":e[0]||(e[0]=s=>o.enabled=s),"active-text":"显示","inactive-text":"隐藏"},null,8,["modelValue"]),e[21]||(e[21]=t("small",null,"保存后应用到推广页",-1))])]),_:1}),l(c,{label:"移动端展示"},{default:a(()=>[t("div",et,[l(g,{modelValue:o.show_mobile,"onUpdate:modelValue":e[1]||(e[1]=s=>o.show_mobile=s),"active-text":"展示","inactive-text":"隐藏"},null,8,["modelValue"]),e[22]||(e[22]=t("small",null,"关闭后仅在桌面端出现",-1))])]),_:1}),l(c,{label:"主题色"},{default:a(()=>[t("div",tt,[l(C,{modelValue:o.primary_color,"onUpdate:modelValue":e[2]||(e[2]=s=>o.primary_color=s),predefine:G},null,8,["modelValue"]),l(w,{modelValue:o.primary_color,"onUpdate:modelValue":e[3]||(e[3]=s=>o.primary_color=s),maxlength:"7","aria-label":"主题色十六进制值",onBlur:Z},null,8,["modelValue"])])]),_:1}),l(c,{label:"左右位置"},{default:a(()=>[l(F,{modelValue:o.position,"onUpdate:modelValue":e[4]||(e[4]=s=>o.position=s),class:"position-control"},{default:a(()=>[l(k,{value:"bottom-left"},{default:a(()=>[...e[23]||(e[23]=[_("左下角",-1)])]),_:1}),l(k,{value:"bottom-right"},{default:a(()=>[...e[24]||(e[24]=[_("右下角",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(c,{label:"距底距离",class:"is-wide"},{default:a(()=>[t("div",ot,[l(le,{modelValue:o.bottom_offset,"onUpdate:modelValue":e[5]||(e[5]=s=>o.bottom_offset=s),min:16,max:160,step:4},null,8,["modelValue"]),l(se,{modelValue:o.bottom_offset,"onUpdate:modelValue":e[6]||(e[6]=s=>o.bottom_offset=s),min:16,max:160,step:4,"controls-position":"right","aria-label":"距底距离,单位像素"},null,8,["modelValue"]),e[25]||(e[25]=t("span",null,"px",-1))])]),_:1}),l(c,{label:"标题",class:"is-wide"},{default:a(()=>[l(w,{modelValue:o.title,"onUpdate:modelValue":e[7]||(e[7]=s=>o.title=s),maxlength:"24","show-word-limit":"",placeholder:"例如:专属顾问在线"},null,8,["modelValue"])]),_:1}),l(c,{label:"副文案",class:"is-wide"},{default:a(()=>[l(w,{modelValue:o.subtitle,"onUpdate:modelValue":e[8]||(e[8]=s=>o.subtitle=s),maxlength:"48","show-word-limit":"",placeholder:"说明点击后可以获得什么服务"},null,8,["modelValue"])]),_:1}),l(c,{label:"按钮文字",class:"is-wide"},{default:a(()=>[l(w,{modelValue:o.button_text,"onUpdate:modelValue":e[9]||(e[9]=s=>o.button_text=s),maxlength:"12","show-word-limit":"",placeholder:"例如:立即咨询"},null,8,["modelValue"])]),_:1})])]),_:1}),t("footer",lt,[t("div",st,[l(u,null,{default:a(()=>[l(m(Ee))]),_:1}),t("span",null,"当前方案:"+f(n.pool.name||`方案 ${n.pool.id}`),1)]),t("div",nt,[l(h,{icon:m(Ce),onClick:Q},{default:a(()=>[...e[26]||(e[26]=[_("恢复默认",-1)])]),_:1},8,["icon"]),l(h,{type:"primary",loading:S.value,onClick:te},{default:a(()=>[_(f(K.value),1)]),_:1},8,["loading"])])])])]),t("aside",it,[t("header",at,[t("div",null,[e[27]||(e[27]=t("strong",null,"实时预览",-1)),t("span",null,f(o.enabled?"保存后按此样式展示":"配置预览,当前尚未启用"),1)]),l(F,{modelValue:x.value,"onUpdate:modelValue":e[11]||(e[11]=s=>x.value=s),size:"small","aria-label":"预览设备"},{default:a(()=>[l(k,{value:"desktop"},{default:a(()=>[l(u,null,{default:a(()=>[l(m(Ae))]),_:1}),e[28]||(e[28]=_("桌面",-1))]),_:1}),l(k,{value:"mobile"},{default:a(()=>[l(u,null,{default:a(()=>[l(m(R))]),_:1}),e[29]||(e[29]=_("手机",-1))]),_:1})]),_:1},8,["modelValue"])]),t("div",{class:E(["preview-canvas",`is-${x.value}`])},[e[34]||(e[34]=t("div",{class:"browser-chrome","aria-hidden":"true"},[t("span"),t("span"),t("span"),t("i",null,"promotion.example.com")],-1)),t("div",{class:E(["preview-stage",[`position-${o.position}`,{"is-mobile-hidden":x.value==="mobile"&&!o.show_mobile}]]),style:Se(H.value)},[e[33]||(e[33]=Te('
',1)),x.value==="mobile"&&!o.show_mobile?(v(),V("div",rt,[l(u,null,{default:a(()=>[l(m(R))]),_:1}),e[30]||(e[30]=t("strong",null,"移动端已隐藏",-1)),e[31]||(e[31]=t("span",null,"开启“移动端展示”后可查看效果",-1))])):(v(),V("button",{key:1,type:"button",class:E(["live-widget",`template-${o.template}`]),"aria-label":o.button_text||o.title||"企业微信咨询",onClick:e[12]||(e[12]=z(()=>{},["prevent"]))},[e[32]||(e[32]=t("span",{class:"consult-icon","aria-hidden":"true"},"企",-1)),t("span",ut,[t("strong",ct,f(o.title),1),o.subtitle?(v(),V("small",pt,f(o.subtitle),1)):O("",!0)]),t("span",mt,f(o.button_text),1)],10,dt))],6)],2)])]),t("section",ft,[t("div",bt,[e[36]||(e[36]=t("div",null,[t("span",{class:"section-index"},"03"),t("h4",null,"安装与手动触发"),t("p",null,"基础脚本只需安装一次;启用浮窗后,脚本会自动读取本方案的最新配置。")],-1)),l(h,{type:"primary",plain:"",icon:m(Oe),disabled:!n.pool.go_url,onClick:oe},{default:a(()=>[...e[35]||(e[35]=[_(" 打开测试链接 ",-1)])]),_:1},8,["icon","disabled"])]),t("div",_t,[t("article",gt,[e[38]||(e[38]=t("div",{class:"code-title"},[t("span",null,"1"),t("div",null,[t("strong",null,"安装基础脚本"),t("small",null,"放在页面 之前,只需一次。")])],-1)),t("pre",null,[t("code",null,f(n.pool.install_code||"暂无基础脚本"),1)]),l(h,{type:"primary",plain:"",icon:m(P),onClick:e[13]||(e[13]=s=>D(n.pool.install_code,"基础脚本"))},{default:a(()=>[...e[37]||(e[37]=[_(" 复制基础脚本 ",-1)])]),_:1},8,["icon"])]),t("article",yt,[e[40]||(e[40]=t("div",{class:"code-title"},[t("span",null,"2"),t("div",null,[t("strong",null,"手动触发代码"),t("small",null,"需要额外入口时,将属性放到按钮或链接上。")])],-1)),t("pre",null,[t("code",null,f(n.pool.trigger_code||"暂无手动触发代码"),1)]),l(h,{type:"primary",plain:"",icon:m(P),onClick:e[14]||(e[14]=s=>D(n.pool.trigger_code,"手动触发代码"))},{default:a(()=>[...e[39]||(e[39]=[_(" 复制触发代码 ",-1)])]),_:1},8,["icon"])])]),t("div",wt,[l(u,null,{default:a(()=>[l(m(L))]),_:1}),e[41]||(e[41]=t("span",null,[t("strong",null,"一个方案,一个官方链接"),_("浮窗会直接打开企业微信链接,多名医助由企业微信执行均衡分流。")],-1))])])])}}}),Et=We(vt,[["__scopeId","data-v-51ceed15"]]);export{Et as default};
+import{o as ae,ba as re,M as T,R as de,q as v,r as V,s as t,v as l,D as a,u as m,cY as ue,w as ce,ae as E,L as _,T as f,F as pe,G as me,O as fe,at as L,P as O,b6 as be,I as _e,H as ge,b7 as ye,bc as we,bb as ve,cZ as xe,J as ke,aw as z,b9 as Ve,cp as Ee,c_ as Ce,K as he,c$ as Ae,d0 as R,t as Se,cB as Te,d1 as Oe,d2 as P,p as B,E as p}from"./.pnpm-BuKxIMgQ.js";import{B as Be}from"./first_visit-Ciw6inl9.js";import{_ as We}from"./index-BZAvl557.js";const Ue=["bubble","pill","card","message","edge","bar"],y=Object.freeze({v:1,enabled:!1,template:"bubble",position:"bottom-right",title:"专属顾问在线",subtitle:"点击添加企业微信,获取一对一服务",button_text:"立即咨询",primary_color:"#139A8C",bottom_offset:28,show_mobile:!0}),W=Object.freeze([{id:"bubble",name:"轻巧气泡",description:"圆形入口,占用空间最少",scene:"内容型页面"},{id:"pill",name:"行动胶囊",description:"图标与按钮文案同时露出",scene:"营销落地页"},{id:"card",name:"顾问名片",description:"完整呈现标题、说明与行动按钮",scene:"高意向咨询"},{id:"message",name:"消息提醒",description:"模拟新消息,视觉提醒更明确",scene:"活动推广页"},{id:"edge",name:"贴边咨询",description:"沿浏览器边缘停靠,干扰更低",scene:"工具与内容页"},{id:"bar",name:"底部咨询条",description:"宽幅行动区,移动端更醒目",scene:"移动端页面"}]),Ie=new Set(Ue),Ne=new Set(["bottom-right","bottom-left"]),$e=/^#[0-9A-F]{6}$/i;function De(n){if(n&&typeof n=="object"&&!Array.isArray(n))return n;if(typeof n!="string"||!n.trim())return{};try{const r=JSON.parse(n);return r&&typeof r=="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function j(n,r){return n===!0||n===1||n==="1"||n==="true"?!0:n===!1||n===0||n==="0"||n==="false"?!1:r}function U(n,r,d){return n==null?r:Array.from(String(n).trim()).slice(0,d).join("")}function I(n){const r=De(n),d=String(r.template||""),A=String(r.position||""),o=String(r.primary_color||"").trim().toUpperCase(),b=Number(r.bottom_offset),x=Number.isFinite(b)?Math.min(160,Math.max(16,Math.round(b))):y.bottom_offset;return{v:1,enabled:j(r.enabled,y.enabled),template:Ie.has(d)?d:y.template,position:Ne.has(A)?A:y.position,title:U(r.title,y.title,24),subtitle:U(r.subtitle,y.subtitle,48),button_text:U(r.button_text,y.button_text,12),primary_color:$e.test(o)?o:y.primary_color,bottom_offset:x,show_mobile:j(r.show_mobile,y.show_mobile)}}function N(){return{...y}}const Fe={class:"widget-builder","aria-label":"企业微信浮窗客服配置"},Me={class:"builder-header"},Le={class:"builder-intro"},ze={class:"builder-icon"},Re={class:"publish-state"},Pe={class:"builder-layout"},je={class:"builder-controls"},Ge={class:"control-section template-section"},He={class:"template-grid",role:"radiogroup","aria-label":"浮窗客服模板"},Je=["aria-checked","onClick","onKeydown"],Ke={class:"template-copy"},qe={class:"control-section config-section"},Xe={class:"control-heading"},Ye={key:0,class:"dirty-state"},Ze={class:"form-grid"},Qe={class:"switch-control"},et={class:"switch-control"},tt={class:"color-control"},ot={class:"offset-control"},lt={class:"form-actions"},st={class:"action-note"},nt={class:"action-buttons"},it={class:"preview-panel","aria-label":"浮窗实时预览"},at={class:"preview-header"},rt={key:0,class:"mobile-hidden-note"},dt=["aria-label"],ut={class:"widget-copy"},ct={class:"widget-title"},pt={key:0,class:"widget-subtitle"},mt={class:"widget-cta"},ft={class:"install-section"},bt={class:"install-heading"},_t={class:"code-grid"},gt={class:"code-card"},yt={class:"code-card"},wt={class:"install-tip"},vt=ae({__name:"WecomFloatingWidgetBuilder",props:{pool:{}},emits:["saved"],setup(n,{emit:r}){const d=n,A=r,o=re(N()),b=T(N()),x=T("desktop"),S=T(!1),G=["#139A8C","#168C74","#2878D0","#C76A2B","#BA4E68","#43546A"],H=B(()=>({"--widget-primary":o.primary_color,"--widget-bottom":`${o.bottom_offset}px`})),J=B(()=>JSON.stringify(o)!==JSON.stringify(b.value)),K=B(()=>o.enabled?b.value.enabled?"保存更新":"保存并启用":b.value.enabled?"保存并停用":"保存配置");function q(){return d.pool.widget_config??d.pool.widget??d.pool.widgetConfig}function X(){const i=I(q());Object.assign(o,i),b.value={...i}}de(()=>[d.pool.id,d.pool.widget_config,d.pool.widget,d.pool.widgetConfig],X,{immediate:!0,deep:!0});function Y(i,e){if(!["ArrowRight","ArrowDown","ArrowLeft","ArrowUp","Home","End"].includes(i.key))return;i.preventDefault();const g=W.length-1;let c=e;(i.key==="ArrowRight"||i.key==="ArrowDown")&&(c=e===g?0:e+1),(i.key==="ArrowLeft"||i.key==="ArrowUp")&&(c=e===0?g:e-1),i.key==="Home"&&(c=0),i.key==="End"&&(c=g),o.template=W[c].id;const C=i.currentTarget.closest(".template-grid"),w=C==null?void 0:C.querySelectorAll(".template-option");window.requestAnimationFrame(()=>{var k;return(k=w==null?void 0:w[c])==null?void 0:k.focus()})}function Z(){o.primary_color=I({...o,primary_color:typeof o.primary_color=="string"?o.primary_color:""}).primary_color}function Q(){Object.assign(o,N()),p.info("已恢复默认配置,保存后生效")}function ee(){if(!o.title.trim())return p.warning("请输入浮窗标题"),!1;if(!o.button_text.trim())return p.warning("请输入按钮文字"),!1;const i=typeof o.primary_color=="string"?o.primary_color.trim():"";return/^#[0-9A-F]{6}$/i.test(i)?!0:(p.warning("主题色请输入 #RRGGBB 格式"),!1)}async function te(){if(!ee())return;const i=b.value.enabled,e=o.enabled,u=I({...o,enabled:e});S.value=!0;try{await Be({pool_id:Number(d.pool.id),...u}),Object.assign(o,u),b.value={...u},!e&&i?p.success("浮窗已停用,最多 60 秒生效"):e?i?p.success("浮窗配置已保存,最多 60 秒生效"):p.success("浮窗已启用,最多 60 秒生效"):p.success("浮窗配置已保存,当前保持未启用"),A("saved",u)}catch(g){p.error((g==null?void 0:g.message)||"浮窗配置保存失败")}finally{S.value=!1}}function $(i){const e=document.createElement("textarea");e.value=i,e.setAttribute("readonly",""),e.style.position="fixed",e.style.left="-9999px",e.style.opacity="0",document.body.appendChild(e);try{if(e.focus(),e.select(),!document.execCommand("copy"))throw new Error("copy command failed")}finally{e.remove()}}async function D(i,e){var u;if(!i){p.warning(`${e}暂无内容`);return}try{if(window.isSecureContext&&((u=navigator.clipboard)!=null&&u.writeText))try{await navigator.clipboard.writeText(i)}catch{$(i)}else $(i);p.success(`${e}已复制`)}catch{p.error(`${e}复制失败,请手动选择代码复制`)}}function oe(){const i=d.pool.main_url||d.pool.go_url||d.pool.compat_go_url;if(!i){p.warning("当前方案暂无测试链接");return}window.open(i,"_blank","noopener,noreferrer")}return(i,e)=>{const u=ce,g=_e,c=be,C=ge,w=ye,k=ve,F=we,le=xe,se=ke,ne=Ve,h=he;return v(),V("section",Fe,[t("header",Me,[t("div",Le,[t("span",ze,[l(u,null,{default:a(()=>[l(m(ue))]),_:1})]),e[15]||(e[15]=t("div",null,[t("h3",null,"浮窗客服模板"),t("p",null,"选择模板并调整内容,保存后基础脚本会自动在推广页展示浮窗。")],-1))]),t("div",Re,[t("span",{class:E(["state-badge",b.value.enabled?"is-enabled":"is-disabled"])},[e[16]||(e[16]=t("i",{"aria-hidden":"true"},null,-1)),_(f(b.value.enabled?"已启用":"未启用"),1)],2),e[17]||(e[17]=t("small",null,"配置保存后最多 60 秒生效",-1))])]),t("div",Pe,[t("div",je,[t("section",Ge,[e[19]||(e[19]=t("div",{class:"control-heading"},[t("div",null,[t("span",{class:"section-index"},"01"),t("h4",null,"选择展示模板")]),t("span",null,"支持方向键切换")],-1)),t("div",He,[(v(!0),V(pe,null,me(m(W),(s,ie)=>(v(),V("button",{key:s.id,type:"button",class:E(["template-option",{active:o.template===s.id}]),role:"radio","aria-checked":o.template===s.id,onClick:M=>o.template=s.id,onKeydown:M=>Y(M,ie)},[t("span",{class:E(["template-swatch",`is-${s.id}`]),"aria-hidden":"true"},[...e[18]||(e[18]=[t("i",{class:"swatch-icon"},null,-1),t("i",{class:"swatch-line is-long"},null,-1),t("i",{class:"swatch-line is-short"},null,-1),t("i",{class:"swatch-action"},null,-1)])],2),t("span",Ke,[t("strong",null,f(s.name),1),t("small",null,f(s.description),1),t("em",null,f(s.scene),1)]),o.template===s.id?(v(),fe(u,{key:0,class:"selected-check"},{default:a(()=>[l(m(L))]),_:1})):O("",!0)],42,Je))),128))])]),t("section",qe,[t("div",Xe,[e[20]||(e[20]=t("div",null,[t("span",{class:"section-index"},"02"),t("h4",null,"调整浮窗内容")],-1)),J.value?(v(),V("span",Ye,"有未保存更改")):O("",!0)]),l(ne,{class:"widget-form","label-position":"top",onSubmit:e[10]||(e[10]=z(()=>{},["prevent"]))},{default:a(()=>[t("div",Ze,[l(c,{label:"显示浮窗"},{default:a(()=>[t("div",Qe,[l(g,{modelValue:o.enabled,"onUpdate:modelValue":e[0]||(e[0]=s=>o.enabled=s),"active-text":"显示","inactive-text":"隐藏"},null,8,["modelValue"]),e[21]||(e[21]=t("small",null,"保存后应用到推广页",-1))])]),_:1}),l(c,{label:"移动端展示"},{default:a(()=>[t("div",et,[l(g,{modelValue:o.show_mobile,"onUpdate:modelValue":e[1]||(e[1]=s=>o.show_mobile=s),"active-text":"展示","inactive-text":"隐藏"},null,8,["modelValue"]),e[22]||(e[22]=t("small",null,"关闭后仅在桌面端出现",-1))])]),_:1}),l(c,{label:"主题色"},{default:a(()=>[t("div",tt,[l(C,{modelValue:o.primary_color,"onUpdate:modelValue":e[2]||(e[2]=s=>o.primary_color=s),predefine:G},null,8,["modelValue"]),l(w,{modelValue:o.primary_color,"onUpdate:modelValue":e[3]||(e[3]=s=>o.primary_color=s),maxlength:"7","aria-label":"主题色十六进制值",onBlur:Z},null,8,["modelValue"])])]),_:1}),l(c,{label:"左右位置"},{default:a(()=>[l(F,{modelValue:o.position,"onUpdate:modelValue":e[4]||(e[4]=s=>o.position=s),class:"position-control"},{default:a(()=>[l(k,{value:"bottom-left"},{default:a(()=>[...e[23]||(e[23]=[_("左下角",-1)])]),_:1}),l(k,{value:"bottom-right"},{default:a(()=>[...e[24]||(e[24]=[_("右下角",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(c,{label:"距底距离",class:"is-wide"},{default:a(()=>[t("div",ot,[l(le,{modelValue:o.bottom_offset,"onUpdate:modelValue":e[5]||(e[5]=s=>o.bottom_offset=s),min:16,max:160,step:4},null,8,["modelValue"]),l(se,{modelValue:o.bottom_offset,"onUpdate:modelValue":e[6]||(e[6]=s=>o.bottom_offset=s),min:16,max:160,step:4,"controls-position":"right","aria-label":"距底距离,单位像素"},null,8,["modelValue"]),e[25]||(e[25]=t("span",null,"px",-1))])]),_:1}),l(c,{label:"标题",class:"is-wide"},{default:a(()=>[l(w,{modelValue:o.title,"onUpdate:modelValue":e[7]||(e[7]=s=>o.title=s),maxlength:"24","show-word-limit":"",placeholder:"例如:专属顾问在线"},null,8,["modelValue"])]),_:1}),l(c,{label:"副文案",class:"is-wide"},{default:a(()=>[l(w,{modelValue:o.subtitle,"onUpdate:modelValue":e[8]||(e[8]=s=>o.subtitle=s),maxlength:"48","show-word-limit":"",placeholder:"说明点击后可以获得什么服务"},null,8,["modelValue"])]),_:1}),l(c,{label:"按钮文字",class:"is-wide"},{default:a(()=>[l(w,{modelValue:o.button_text,"onUpdate:modelValue":e[9]||(e[9]=s=>o.button_text=s),maxlength:"12","show-word-limit":"",placeholder:"例如:立即咨询"},null,8,["modelValue"])]),_:1})])]),_:1}),t("footer",lt,[t("div",st,[l(u,null,{default:a(()=>[l(m(Ee))]),_:1}),t("span",null,"当前方案:"+f(n.pool.name||`方案 ${n.pool.id}`),1)]),t("div",nt,[l(h,{icon:m(Ce),onClick:Q},{default:a(()=>[...e[26]||(e[26]=[_("恢复默认",-1)])]),_:1},8,["icon"]),l(h,{type:"primary",loading:S.value,onClick:te},{default:a(()=>[_(f(K.value),1)]),_:1},8,["loading"])])])])]),t("aside",it,[t("header",at,[t("div",null,[e[27]||(e[27]=t("strong",null,"实时预览",-1)),t("span",null,f(o.enabled?"保存后按此样式展示":"配置预览,当前尚未启用"),1)]),l(F,{modelValue:x.value,"onUpdate:modelValue":e[11]||(e[11]=s=>x.value=s),size:"small","aria-label":"预览设备"},{default:a(()=>[l(k,{value:"desktop"},{default:a(()=>[l(u,null,{default:a(()=>[l(m(Ae))]),_:1}),e[28]||(e[28]=_("桌面",-1))]),_:1}),l(k,{value:"mobile"},{default:a(()=>[l(u,null,{default:a(()=>[l(m(R))]),_:1}),e[29]||(e[29]=_("手机",-1))]),_:1})]),_:1},8,["modelValue"])]),t("div",{class:E(["preview-canvas",`is-${x.value}`])},[e[34]||(e[34]=t("div",{class:"browser-chrome","aria-hidden":"true"},[t("span"),t("span"),t("span"),t("i",null,"promotion.example.com")],-1)),t("div",{class:E(["preview-stage",[`position-${o.position}`,{"is-mobile-hidden":x.value==="mobile"&&!o.show_mobile}]]),style:Se(H.value)},[e[33]||(e[33]=Te('
',1)),x.value==="mobile"&&!o.show_mobile?(v(),V("div",rt,[l(u,null,{default:a(()=>[l(m(R))]),_:1}),e[30]||(e[30]=t("strong",null,"移动端已隐藏",-1)),e[31]||(e[31]=t("span",null,"开启“移动端展示”后可查看效果",-1))])):(v(),V("button",{key:1,type:"button",class:E(["live-widget",`template-${o.template}`]),"aria-label":o.button_text||o.title||"企业微信咨询",onClick:e[12]||(e[12]=z(()=>{},["prevent"]))},[e[32]||(e[32]=t("span",{class:"consult-icon","aria-hidden":"true"},"企",-1)),t("span",ut,[t("strong",ct,f(o.title),1),o.subtitle?(v(),V("small",pt,f(o.subtitle),1)):O("",!0)]),t("span",mt,f(o.button_text),1)],10,dt))],6)],2)])]),t("section",ft,[t("div",bt,[e[36]||(e[36]=t("div",null,[t("span",{class:"section-index"},"03"),t("h4",null,"安装与手动触发"),t("p",null,"基础脚本只需安装一次;启用浮窗后,脚本会自动读取本方案的最新配置。")],-1)),l(h,{type:"primary",plain:"",icon:m(Oe),disabled:!n.pool.go_url,onClick:oe},{default:a(()=>[...e[35]||(e[35]=[_(" 打开测试链接 ",-1)])]),_:1},8,["icon","disabled"])]),t("div",_t,[t("article",gt,[e[38]||(e[38]=t("div",{class:"code-title"},[t("span",null,"1"),t("div",null,[t("strong",null,"安装基础脚本"),t("small",null,"放在页面 之前,只需一次。")])],-1)),t("pre",null,[t("code",null,f(n.pool.install_code||"暂无基础脚本"),1)]),l(h,{type:"primary",plain:"",icon:m(P),onClick:e[13]||(e[13]=s=>D(n.pool.install_code,"基础脚本"))},{default:a(()=>[...e[37]||(e[37]=[_(" 复制基础脚本 ",-1)])]),_:1},8,["icon"])]),t("article",yt,[e[40]||(e[40]=t("div",{class:"code-title"},[t("span",null,"2"),t("div",null,[t("strong",null,"手动触发代码"),t("small",null,"需要额外入口时,将属性放到按钮或链接上。")])],-1)),t("pre",null,[t("code",null,f(n.pool.trigger_code||"暂无手动触发代码"),1)]),l(h,{type:"primary",plain:"",icon:m(P),onClick:e[14]||(e[14]=s=>D(n.pool.trigger_code,"手动触发代码"))},{default:a(()=>[...e[39]||(e[39]=[_(" 复制触发代码 ",-1)])]),_:1},8,["icon"])])]),t("div",wt,[l(u,null,{default:a(()=>[l(m(L))]),_:1}),e[41]||(e[41]=t("span",null,[t("strong",null,"一个方案,一个官方链接"),_("浮窗会直接打开企业微信链接,多名医助由企业微信执行均衡分流。")],-1))])])])}}}),Et=We(vt,[["__scopeId","data-v-51ceed15"]]);export{Et as default};
diff --git a/server/public/admin/assets/WelcomeMessageEditor-BfxFV3dB.js b/server/public/admin/assets/WelcomeMessageEditor-BZUQXRAA.js
similarity index 99%
rename from server/public/admin/assets/WelcomeMessageEditor-BfxFV3dB.js
rename to server/public/admin/assets/WelcomeMessageEditor-BZUQXRAA.js
index ab38d2f32..a3fc54dbc 100644
--- a/server/public/admin/assets/WelcomeMessageEditor-BfxFV3dB.js
+++ b/server/public/admin/assets/WelcomeMessageEditor-BZUQXRAA.js
@@ -1 +1 @@
-import{o as de,bx as oe,q as u,r as f,s as a,v as c,bY as re,D as v,F as C,G as I,T as o,K as ue,L as w,O as W,u as h,b7 as me,ae as G,$ as ce,cw as pe,Z as fe,_ as be,P as z,cW as X,w as ge,bE as _e,bJ as ve,cX as ye,bH as ke,M as T,p as Y,n as Q,E as we}from"./.pnpm-BHOjf1ZS.js";import{A as he}from"./first_visit-ClR5pGNH.js";import{_ as Ve}from"./index-B31vLELt.js";const ol=["星期一","星期二","星期三","星期四","星期五","星期六","星期日"],xe=[{label:"客户昵称",value:"{customer_name}"},{label:"员工昵称",value:"{employee_name}"},{label:"添加时间",value:"{add_time}"}],E=e=>new TextEncoder().encode(e).length;function rl(e){return e.trim()?/[\p{C}\u2028\u2029]/u.test(e)?"标签名称不能包含换行、控制字符或不可见格式字符":Array.from(e.trim()).length>30?"标签名称最多 30 个字符":"":"请输入自定义标签名称"}function Ce(){return{reception_mode:"always",reception_schedule:[],backup_member_admin_ids:[],tags_enabled:!1,tag_ids:[],remark_enabled:!1,remark_template:"{customer_name}",description_enabled:!1,description:"",welcome_mode:"default",welcome:{text:"",attachments:[]},welcome_schedule_enabled:!1,welcome_schedule:[]}}function ul(e){var m,n;const b=Ce();if(!e)return b;const s=JSON.parse(JSON.stringify(e));return{reception_mode:s.reception_mode==="scheduled"?"scheduled":"always",reception_schedule:(s.reception_schedule||[]).map(({weekdays:r,start:$,end:V,member_admin_ids:y})=>({weekdays:[...r],start:$,end:V,member_admin_ids:y.map(Number)})),backup_member_admin_ids:(s.backup_member_admin_ids||[]).map(Number),tags_enabled:!!s.tags_enabled,tag_ids:[...s.tag_ids||[]],remark_enabled:!!s.remark_enabled,remark_template:s.remark_template??b.remark_template,description_enabled:!!s.description_enabled,description:s.description||"",welcome_mode:s.welcome_mode||"default",welcome:{text:((m=s.welcome)==null?void 0:m.text)||"",attachments:((n=s.welcome)==null?void 0:n.attachments)||[]},welcome_schedule_enabled:!!s.welcome_schedule_enabled,welcome_schedule:(s.welcome_schedule||[]).map(({weekdays:r,start:$,end:V,text:y,attachments:U})=>({weekdays:[...r],start:$,end:V,text:y||"",attachments:U||[]}))}}function ml(e){return{...e,tags_enabled:e.tags_enabled?1:0,remark_enabled:e.remark_enabled?1:0,description_enabled:e.description_enabled?1:0,welcome_schedule_enabled:e.welcome_schedule_enabled?1:0}}function $e(e,b="小陈",s){const m=new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Shanghai",year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date),n=e.replace(/\{(customer_name|employee_name|add_time)\}/g,r=>({"{customer_name}":"张女士","{employee_name}":b,"{add_time}":m})[r]||r);return s?Array.from(n).slice(0,s).join(""):n}function F(e){try{return["https:","http:"].includes(new URL(e).protocol)}catch{return!1}}function ee(e,b){return!e.weekdays.length||e.weekdays.some(s=>s<1||s>7)?`${b}请选择星期`:!/^(?:[01]\d|2[0-3]):[0-5]\d$/.test(e.start)||!/^(?:[01]\d|2[0-3]):[0-5]\d$/.test(e.end)?`${b}请填写有效的起止时间`:e.start===e.end?`${b}开始与结束时间不能相同,全天接待请选择全天模式`:""}function le(e,b,s=!0){if(Array.from(e.text).length>1200)return`${b}正文不能超过 1200 字`;if(E(e.text)>4e3)return`${b}正文不能超过 4000 UTF-8 字节,请减少表情或文字`;if(e.attachments.length>9)return`${b}最多添加 9 个附件`;if(s&&!e.text.trim()&&!e.attachments.length)return`${b}请填写正文或添加附件`;for(const[m,n]of e.attachments.entries()){const r=`${b}第 ${m+1} 个附件:`;switch(n.msgtype){case"image":if(!n.image.asset_id&&!F(n.image.pic_url||""))return r+"请上传图片或填写有效图片地址";break;case"video":if(!n.video.asset_id)return r+"请先上传视频";break;case"file":if(!n.file.asset_id)return r+"请先上传文件";break;case"link":if(!n.link.title.trim()||!F(n.link.url))return r+"请填写网页标题和有效的 HTTP/HTTPS 链接";if(E(n.link.title)>128||E(n.link.desc)>512)return r+"网页标题限 128 字节,描述限 512 字节";if(n.link.picurl&&!F(n.link.picurl))return r+"网页封面地址无效";break;case"miniprogram":if(!n.miniprogram.title.trim()||!n.miniprogram.appid.trim()||!n.miniprogram.page.trim()||!n.miniprogram.pic_asset_id)return r+"请填写小程序标题、AppID、页面路径并上传封面";if(E(n.miniprogram.title)>64)return r+"小程序标题不能超过 64 字节";break}}return""}function Ue(e){const b=new Set;for(const s of e){const[m,n]=s.start.split(":").map(Number),[r,$]=s.end.split(":").map(Number),V=m*60+n,y=(r*60+$-V+1440)%1440;for(const U of new Set(s.weekdays))for(let N=0;Nb.includes(m)))return"备用成员不能与主接待成员重复";if(e.reception_schedule.length>30||e.welcome_schedule.length>30)return"每类时段最多添加 30 条";if(e.reception_mode==="scheduled"){if(!e.reception_schedule.length)return"按时段接待至少需要一个接待时段";if(!e.backup_member_admin_ids.length)return"按时段接待至少需要一名备用成员,以承接非接待时段的客户"}for(const[m,n]of e.reception_schedule.entries()){const r=ee(n,`接待时段 ${m+1}:`);if(r)return r;if(!n.member_admin_ids.length)return`接待时段 ${m+1}:请至少选择一名成员`;if(n.member_admin_ids.some($=>!b.includes($)))return`接待时段 ${m+1}:成员必须来自主接待成员,请重新选择`}if(e.tags_enabled&&!e.tag_ids.length)return"启用客户标签后,请选择一个企业微信标签,或创建自定义标签";if(e.tag_ids.length>1)return"客户标签只能选择一个,请重新选择或清空原标签";if(e.remark_enabled&&!e.remark_template.trim())return"请填写客户备注模板";if(Array.from(e.remark_template).length>200)return"客户备注模板不能超过 200 字";if(e.description_enabled&&!e.description.trim())return"请填写客户描述";if(Array.from(e.description).length>150)return"客户描述不能超过 150 字";const s=le(e.welcome,"基础渠道欢迎语:",e.welcome_mode==="channel");if(s)return s;if(e.welcome_mode==="channel"&&e.welcome_schedule_enabled&&!e.welcome_schedule.length)return"请至少添加一个分时欢迎语时段";for(const[m,n]of e.welcome_schedule.entries()){const r=ee(n,`欢迎语时段 ${m+1}:`)||le(n,`欢迎语时段 ${m+1}:`);if(r)return r}return Ue(e.welcome_schedule)?"分时欢迎语的时间范围不能重叠(跨午夜时段归属开始日)":""}const Ae={class:"welcome-editor"},Ee={class:"welcome-editor__fields"},Ne={class:"text-tools"},Te={class:"emoji-grid"},Se=["onClick"],Be={class:"attachments-heading"},Pe={key:0,class:"attachment-empty"},Me={class:"attachment-card__heading"},Ie={class:"upload-field"},ze={class:"field-tip"},De={class:"attachment-label"},je={class:"attachment-label"},Le={class:"attachment-label"},Oe={class:"upload-field mini-upload"},We={key:3,role:"alert",class:"upload-error"},Ge=["accept"],Fe={class:"welcome-preview","aria-label":"欢迎语手机预览"},Je={class:"phone-heading"},Re={class:"phone-content"},He={key:0,class:"chat-row"},Ke={class:"chat-avatar"},Ze={class:"chat-bubble"},qe={class:"chat-avatar"},Xe={class:"chat-bubble attachment-preview"},Ye=["src"],Qe={key:1,class:"media-placeholder"},el=["src"],ll={key:1,class:"media-placeholder"},tl={key:1,class:"preview-empty"},al=de({__name:"WelcomeMessageEditor",props:{modelValue:{},disabled:{type:Boolean},employeeName:{}},emits:["update:modelValue","busy"],setup(e,{emit:b}){const s=e,m=b,n=T(),r=T(),$=T({start:0,end:0}),V=T(-1),y=Y(()=>V.value>=0),U=T({}),N=T({}),M=T({index:0,type:"image"}),J=T("image/jpeg,image/png"),te=["😊","😀","👋","🌹","❤️","👍","🙏","🎉","☀️","✨","💐","🤝","💬","✅","🌿","🍀"],R=[{value:"image",label:"图片"},{value:"link",label:"网页"},{value:"miniprogram",label:"小程序"},{value:"video",label:"视频"},{value:"file",label:"文件"}],ae=Y(()=>Array.from(s.modelValue.text).length>1200||E(s.modelValue.text)>4e3);function H(i){m("update:modelValue",{...s.modelValue,text:i})}function D(){var l;const i=(l=n.value)==null?void 0:l.textarea;i&&($.value={start:i.selectionStart,end:i.selectionEnd})}async function K(i){var _,S,A,k;if(s.disabled)return;const{start:l,end:d}=$.value;H(s.modelValue.text.slice(0,l)+i+s.modelValue.text.slice(d)),await Q();const x=l+i.length;(S=(_=n.value)==null?void 0:_.textarea)==null||S.focus(),(k=(A=n.value)==null?void 0:A.textarea)==null||k.setSelectionRange(x,x),$.value={start:x,end:x}}function L(i){var l;return((l=R.find(d=>d.value===i))==null?void 0:l.label)||"附件"}function se(i){if(s.disabled||y.value||s.modelValue.attachments.length>=9)return;let l;i==="image"?l={msgtype:"image",image:{asset_id:""}}:i==="video"?l={msgtype:"video",video:{asset_id:""}}:i==="file"?l={msgtype:"file",file:{asset_id:""}}:i==="link"?l={msgtype:"link",link:{title:"",url:"",desc:"",picurl:""}}:l={msgtype:"miniprogram",miniprogram:{title:"",appid:"",page:"",pic_asset_id:""}},m("update:modelValue",{...s.modelValue,attachments:[...s.modelValue.attachments,l]})}function ie(i){U.value={},m("update:modelValue",{...s.modelValue,attachments:s.modelValue.attachments.filter((l,d)=>d!==i)})}function Z(i,l){const d=[...s.modelValue.attachments];[d[i],d[i+l]]=[d[i+l],d[i]],U.value={},m("update:modelValue",{...s.modelValue,attachments:d})}function B(i){return i.msgtype==="image"?i.image.asset_id||"":i.msgtype==="video"?i.video.asset_id:i.msgtype==="file"?i.file.asset_id:i.msgtype==="miniprogram"?i.miniprogram.pic_asset_id:""}function O(i){var d;const l=B(i);return l?((d=N.value[l])==null?void 0:d.name)||`已保存素材 ${l.slice(-10)}`:i.msgtype==="image"&&i.image.pic_url?"已保存的企微图片":"尚未上传"}function j(i){var l;return((l=N.value[B(i)])==null?void 0:l.url)||""}async function q(i,l){var d;M.value={index:i,type:l},J.value=l==="image"?".jpg,.jpeg,.png":l==="video"?".mp4":"*",await Q(),(d=r.value)==null||d.click()}async function ne(i){var P;const l=i.target,d=(P=l.files)==null?void 0:P[0];if(l.value="",!d)return;const{index:x,type:_}=M.value,S=_==="file"?20:10;let A="";if(d.size<=5||d.size>S*1024*1024?A=`文件必须大于 5 字节且不超过 ${S}MB`:_==="image"&&!/\.(jpe?g|png)$/i.test(d.name)?A="图片仅支持 JPG / PNG 格式":_==="video"&&!/\.mp4$/i.test(d.name)&&(A="视频仅支持 MP4 格式"),A){U.value[x]=A;return}const k=s.modelValue.attachments[x];if(k){V.value=x,m("busy",!0),delete U.value[x];try{const t=await he(d,_);if(!(t!=null&&t.asset_id))throw new Error("上传接口未返回素材 ID");const p=String(t.asset_id);N.value[p]={name:t.name||d.name,url:_==="image"?URL.createObjectURL(d):void 0},k.msgtype==="image"?k.image={asset_id:p}:k.msgtype==="video"?k.video.asset_id=p:k.msgtype==="file"?k.file.asset_id=p:k.msgtype==="miniprogram"&&(k.miniprogram.pic_asset_id=p),we.success("素材已上传")}catch(t){U.value[x]=t instanceof Error?t.message:typeof t=="string"?t:"素材上传失败"}finally{V.value=-1,m("busy",!1)}}}return oe(()=>{Object.values(N.value).forEach(i=>{i.url&&URL.revokeObjectURL(i.url)}),m("busy",!1)}),(i,l)=>{const d=ue,x=re,_=me,S=be,A=fe,k=ce,P=ge;return u(),f("div",Ae,[a("div",Ee,[a("div",Ne,[c(x,{placement:"bottom-start",trigger:"click",width:240,disabled:e.disabled},{reference:v(()=>[c(d,{size:"small",disabled:e.disabled},{default:v(()=>[...l[0]||(l[0]=[w("☺ 插入表情",-1)])]),_:1},8,["disabled"])]),default:v(()=>[a("div",Te,[(u(),f(C,null,I(te,t=>a("button",{key:t,type:"button",onClick:p=>K(t)},o(t),9,Se)),64))])]),_:1},8,["disabled"]),(u(!0),f(C,null,I(h(xe),t=>(u(),W(d,{key:t.value,size:"small",disabled:e.disabled,onClick:p=>K(t.value)},{default:v(()=>[w(o(t.label),1)]),_:2},1032,["disabled","onClick"]))),128))]),c(_,{ref_key:"textInput",ref:n,"model-value":e.modelValue.text,type:"textarea",rows:6,disabled:e.disabled,placeholder:"请输入欢迎语,也可插入客户昵称、员工昵称和添加日期","onUpdate:modelValue":H,onSelect:D,onKeyup:D,onClick:D,onBlur:D},null,8,["model-value","disabled"]),a("div",{class:G(["text-count",{"is-error":ae.value}])},o(Array.from(e.modelValue.text).length)+"/1200 字 · "+o(h(E)(e.modelValue.text))+"/4000 字节",3),a("div",Be,[a("strong",null,[l[1]||(l[1]=w("附件 ",-1)),a("span",null,o(e.modelValue.attachments.length)+"/9",1)]),c(k,{disabled:e.disabled||e.modelValue.attachments.length>=9||y.value,onCommand:se},{dropdown:v(()=>[c(A,null,{default:v(()=>[(u(),f(C,null,I(R,t=>c(S,{key:t.value,command:t.value},{default:v(()=>[w(o(t.label),1)]),_:2},1032,["command"])),64))]),_:1})]),default:v(()=>[c(d,{size:"small",disabled:e.disabled||e.modelValue.attachments.length>=9||y.value,icon:h(pe)},{default:v(()=>[...l[2]||(l[2]=[w("添加附件",-1)])]),_:1},8,["disabled","icon"])]),_:1},8,["disabled"])]),e.modelValue.attachments.length?z("",!0):(u(),f("div",Pe,"可添加图片、网页、小程序、视频或文件。")),(u(!0),f(C,null,I(e.modelValue.attachments,(t,p)=>(u(),f("div",{key:p,class:"attachment-card"},[a("div",Me,[a("strong",null,o(p+1)+". "+o(L(t.msgtype)),1),a("div",null,[c(d,{text:"",size:"small",disabled:e.disabled||y.value||p===0,onClick:g=>Z(p,-1)},{default:v(()=>[...l[3]||(l[3]=[w("上移",-1)])]),_:1},8,["disabled","onClick"]),c(d,{text:"",size:"small",disabled:e.disabled||y.value||p===e.modelValue.attachments.length-1,onClick:g=>Z(p,1)},{default:v(()=>[...l[4]||(l[4]=[w("下移",-1)])]),_:1},8,["disabled","onClick"]),c(d,{text:"",type:"danger",size:"small",disabled:e.disabled||y.value,onClick:g=>ie(p)},{default:v(()=>[...l[5]||(l[5]=[w("删除",-1)])]),_:1},8,["disabled","onClick"])])]),t.msgtype==="image"||t.msgtype==="video"||t.msgtype==="file"?(u(),f(C,{key:0},[a("div",Ie,[c(d,{size:"small",icon:h(X),loading:V.value===p,disabled:e.disabled||y.value,onClick:g=>q(p,t.msgtype)},{default:v(()=>[w(o(B(t)?"重新上传":"上传")+o(L(t.msgtype)),1)]),_:2},1032,["icon","loading","disabled","onClick"]),a("span",{class:G(B(t)?"asset-ready":"muted")},o(O(t)),3)]),a("small",ze,o(t.msgtype==="image"?"JPG / PNG,最多 10MB。":t.msgtype==="video"?"MP4,最多 10MB。":"文件最多 20MB。")+"上传成功后由服务端保存素材;未上传完成不能提交。",1)],64)):t.msgtype==="link"?(u(),f(C,{key:1},[a("label",De,[l[6]||(l[6]=w("网页标题 ",-1)),a("span",null,o(h(E)(t.link.title))+"/128 字节",1)]),c(_,{modelValue:t.link.title,"onUpdate:modelValue":g=>t.link.title=g,disabled:e.disabled,placeholder:"必填:网页标题"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[8]||(l[8]=a("label",{class:"attachment-label"},"网页地址",-1)),c(_,{modelValue:t.link.url,"onUpdate:modelValue":g=>t.link.url=g,disabled:e.disabled,placeholder:"https://"},null,8,["modelValue","onUpdate:modelValue","disabled"]),a("label",je,[l[7]||(l[7]=w("网页描述 ",-1)),a("span",null,o(h(E)(t.link.desc))+"/512 字节",1)]),c(_,{modelValue:t.link.desc,"onUpdate:modelValue":g=>t.link.desc=g,disabled:e.disabled,type:"textarea",rows:2,placeholder:"选填:网页摘要"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[9]||(l[9]=a("label",{class:"attachment-label"},"网页封面地址",-1)),c(_,{modelValue:t.link.picurl,"onUpdate:modelValue":g=>t.link.picurl=g,disabled:e.disabled,placeholder:"选填:公网可访问的 HTTPS 图片地址"},null,8,["modelValue","onUpdate:modelValue","disabled"])],64)):t.msgtype==="miniprogram"?(u(),f(C,{key:2},[a("label",Le,[l[10]||(l[10]=w("小程序标题 ",-1)),a("span",null,o(h(E)(t.miniprogram.title))+"/64 字节",1)]),c(_,{modelValue:t.miniprogram.title,"onUpdate:modelValue":g=>t.miniprogram.title=g,disabled:e.disabled,placeholder:"必填:小程序标题"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[11]||(l[11]=a("label",{class:"attachment-label"},"AppID",-1)),c(_,{modelValue:t.miniprogram.appid,"onUpdate:modelValue":g=>t.miniprogram.appid=g,disabled:e.disabled,placeholder:"必填:小程序 AppID"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[12]||(l[12]=a("label",{class:"attachment-label"},"页面路径",-1)),c(_,{modelValue:t.miniprogram.page,"onUpdate:modelValue":g=>t.miniprogram.page=g,disabled:e.disabled,placeholder:"pages/index/index,可包含查询参数"},null,8,["modelValue","onUpdate:modelValue","disabled"]),a("div",Oe,[c(d,{size:"small",icon:h(X),loading:V.value===p,disabled:e.disabled||y.value,onClick:g=>q(p,"image")},{default:v(()=>[w(o(t.miniprogram.pic_asset_id?"更换封面":"上传小程序封面"),1)]),_:2},1032,["icon","loading","disabled","onClick"]),a("span",{class:G(B(t)?"asset-ready":"muted")},o(O(t)),3)]),l[13]||(l[13]=a("small",{class:"field-tip"},"JPG / PNG,最多 10MB。",-1))],64)):z("",!0),U.value[p]?(u(),f("div",We,o(U.value[p])+" 请重试上传,原素材未被替换。",1)):z("",!0)]))),128)),a("input",{ref_key:"fileInput",ref:r,class:"file-input",type:"file",accept:J.value,onChange:ne},null,40,Ge)]),a("aside",Fe,[a("div",Je,[l[14]||(l[14]=a("span",null,"‹",-1)),a("strong",null,o(e.employeeName||"接待员工"),1),l[15]||(l[15]=a("span",null,"···",-1))]),a("div",Re,[l[19]||(l[19]=a("div",{class:"preview-time"},"添加成功 · 预览示例",-1)),e.modelValue.text?(u(),f("div",He,[a("span",Ke,o((e.employeeName||"员").slice(0,1)),1),a("div",Ze,o(h($e)(e.modelValue.text,e.employeeName)),1)])):z("",!0),(u(!0),f(C,null,I(e.modelValue.attachments,(t,p)=>(u(),f("div",{key:p,class:"chat-row"},[a("span",qe,o((e.employeeName||"员").slice(0,1)),1),a("div",Xe,[t.msgtype==="image"?(u(),f(C,{key:0},[j(t)?(u(),f("img",{key:0,src:j(t),alt:"欢迎语图片预览"},null,8,Ye)):(u(),f("div",Qe,[c(P,null,{default:v(()=>[c(h(_e))]),_:1}),a("span",null,o(B(t)?"已保存的图片素材":"待上传图片"),1)]))],64)):t.msgtype==="link"?(u(),f(C,{key:1},[a("strong",null,o(t.link.title||"网页标题"),1),a("p",null,o(t.link.desc||"网页摘要"),1),l[16]||(l[16]=a("small",null,"网页链接",-1))],64)):t.msgtype==="miniprogram"?(u(),f(C,{key:2},[l[18]||(l[18]=a("small",null,"小程序",-1)),a("strong",null,o(t.miniprogram.title||"小程序标题"),1),j(t)?(u(),f("img",{key:0,src:j(t),alt:"小程序封面预览"},null,8,el)):(u(),f("div",ll,[c(P,null,{default:v(()=>[c(h(ve))]),_:1}),l[17]||(l[17]=a("span",null,"小程序封面",-1))]))],64)):(u(),f(C,{key:3},[c(P,{class:"file-icon"},{default:v(()=>[t.msgtype==="video"?(u(),W(h(ye),{key:0})):(u(),W(h(ke),{key:1}))]),_:2},1024),a("strong",null,o(O(t)),1),a("small",null,o(L(t.msgtype)),1)],64))])]))),128)),!e.modelValue.text&&!e.modelValue.attachments.length?(u(),f("div",tl,"编辑内容后在这里预览")):z("",!0)]),l[20]||(l[20]=a("div",{class:"phone-input"},[a("span",null,"⊕"),a("span",{class:"phone-input__blank"}),a("span",null,"☺")],-1)),l[21]||(l[21]=a("p",{class:"preview-note"},"仅为排版示意,昵称与时间会替换为实际值。",-1))])])}}}),sl=Ve(al,[["__scopeId","data-v-1e5d0e03"]]),pl=Object.freeze(Object.defineProperty({__proto__:null,default:sl},Symbol.toStringTag,{value:"Module"}));export{sl as W,cl as a,pl as b,ul as c,Ce as d,F as i,$e as p,ml as s,xe as t,rl as v,ol as w};
+import{o as de,bx as oe,q as u,r as f,s as a,v as c,bY as re,D as v,F as C,G as I,T as o,K as ue,L as w,O as W,u as h,b7 as me,ae as G,$ as ce,cw as pe,Z as fe,_ as be,P as z,cW as X,w as ge,bE as _e,bJ as ve,cX as ye,bH as ke,M as T,p as Y,n as Q,E as we}from"./.pnpm-BuKxIMgQ.js";import{A as he}from"./first_visit-Ciw6inl9.js";import{_ as Ve}from"./index-BZAvl557.js";const ol=["星期一","星期二","星期三","星期四","星期五","星期六","星期日"],xe=[{label:"客户昵称",value:"{customer_name}"},{label:"员工昵称",value:"{employee_name}"},{label:"添加时间",value:"{add_time}"}],E=e=>new TextEncoder().encode(e).length;function rl(e){return e.trim()?/[\p{C}\u2028\u2029]/u.test(e)?"标签名称不能包含换行、控制字符或不可见格式字符":Array.from(e.trim()).length>30?"标签名称最多 30 个字符":"":"请输入自定义标签名称"}function Ce(){return{reception_mode:"always",reception_schedule:[],backup_member_admin_ids:[],tags_enabled:!1,tag_ids:[],remark_enabled:!1,remark_template:"{customer_name}",description_enabled:!1,description:"",welcome_mode:"default",welcome:{text:"",attachments:[]},welcome_schedule_enabled:!1,welcome_schedule:[]}}function ul(e){var m,n;const b=Ce();if(!e)return b;const s=JSON.parse(JSON.stringify(e));return{reception_mode:s.reception_mode==="scheduled"?"scheduled":"always",reception_schedule:(s.reception_schedule||[]).map(({weekdays:r,start:$,end:V,member_admin_ids:y})=>({weekdays:[...r],start:$,end:V,member_admin_ids:y.map(Number)})),backup_member_admin_ids:(s.backup_member_admin_ids||[]).map(Number),tags_enabled:!!s.tags_enabled,tag_ids:[...s.tag_ids||[]],remark_enabled:!!s.remark_enabled,remark_template:s.remark_template??b.remark_template,description_enabled:!!s.description_enabled,description:s.description||"",welcome_mode:s.welcome_mode||"default",welcome:{text:((m=s.welcome)==null?void 0:m.text)||"",attachments:((n=s.welcome)==null?void 0:n.attachments)||[]},welcome_schedule_enabled:!!s.welcome_schedule_enabled,welcome_schedule:(s.welcome_schedule||[]).map(({weekdays:r,start:$,end:V,text:y,attachments:U})=>({weekdays:[...r],start:$,end:V,text:y||"",attachments:U||[]}))}}function ml(e){return{...e,tags_enabled:e.tags_enabled?1:0,remark_enabled:e.remark_enabled?1:0,description_enabled:e.description_enabled?1:0,welcome_schedule_enabled:e.welcome_schedule_enabled?1:0}}function $e(e,b="小陈",s){const m=new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Shanghai",year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date),n=e.replace(/\{(customer_name|employee_name|add_time)\}/g,r=>({"{customer_name}":"张女士","{employee_name}":b,"{add_time}":m})[r]||r);return s?Array.from(n).slice(0,s).join(""):n}function F(e){try{return["https:","http:"].includes(new URL(e).protocol)}catch{return!1}}function ee(e,b){return!e.weekdays.length||e.weekdays.some(s=>s<1||s>7)?`${b}请选择星期`:!/^(?:[01]\d|2[0-3]):[0-5]\d$/.test(e.start)||!/^(?:[01]\d|2[0-3]):[0-5]\d$/.test(e.end)?`${b}请填写有效的起止时间`:e.start===e.end?`${b}开始与结束时间不能相同,全天接待请选择全天模式`:""}function le(e,b,s=!0){if(Array.from(e.text).length>1200)return`${b}正文不能超过 1200 字`;if(E(e.text)>4e3)return`${b}正文不能超过 4000 UTF-8 字节,请减少表情或文字`;if(e.attachments.length>9)return`${b}最多添加 9 个附件`;if(s&&!e.text.trim()&&!e.attachments.length)return`${b}请填写正文或添加附件`;for(const[m,n]of e.attachments.entries()){const r=`${b}第 ${m+1} 个附件:`;switch(n.msgtype){case"image":if(!n.image.asset_id&&!F(n.image.pic_url||""))return r+"请上传图片或填写有效图片地址";break;case"video":if(!n.video.asset_id)return r+"请先上传视频";break;case"file":if(!n.file.asset_id)return r+"请先上传文件";break;case"link":if(!n.link.title.trim()||!F(n.link.url))return r+"请填写网页标题和有效的 HTTP/HTTPS 链接";if(E(n.link.title)>128||E(n.link.desc)>512)return r+"网页标题限 128 字节,描述限 512 字节";if(n.link.picurl&&!F(n.link.picurl))return r+"网页封面地址无效";break;case"miniprogram":if(!n.miniprogram.title.trim()||!n.miniprogram.appid.trim()||!n.miniprogram.page.trim()||!n.miniprogram.pic_asset_id)return r+"请填写小程序标题、AppID、页面路径并上传封面";if(E(n.miniprogram.title)>64)return r+"小程序标题不能超过 64 字节";break}}return""}function Ue(e){const b=new Set;for(const s of e){const[m,n]=s.start.split(":").map(Number),[r,$]=s.end.split(":").map(Number),V=m*60+n,y=(r*60+$-V+1440)%1440;for(const U of new Set(s.weekdays))for(let N=0;Nb.includes(m)))return"备用成员不能与主接待成员重复";if(e.reception_schedule.length>30||e.welcome_schedule.length>30)return"每类时段最多添加 30 条";if(e.reception_mode==="scheduled"){if(!e.reception_schedule.length)return"按时段接待至少需要一个接待时段";if(!e.backup_member_admin_ids.length)return"按时段接待至少需要一名备用成员,以承接非接待时段的客户"}for(const[m,n]of e.reception_schedule.entries()){const r=ee(n,`接待时段 ${m+1}:`);if(r)return r;if(!n.member_admin_ids.length)return`接待时段 ${m+1}:请至少选择一名成员`;if(n.member_admin_ids.some($=>!b.includes($)))return`接待时段 ${m+1}:成员必须来自主接待成员,请重新选择`}if(e.tags_enabled&&!e.tag_ids.length)return"启用客户标签后,请选择一个企业微信标签,或创建自定义标签";if(e.tag_ids.length>1)return"客户标签只能选择一个,请重新选择或清空原标签";if(e.remark_enabled&&!e.remark_template.trim())return"请填写客户备注模板";if(Array.from(e.remark_template).length>200)return"客户备注模板不能超过 200 字";if(e.description_enabled&&!e.description.trim())return"请填写客户描述";if(Array.from(e.description).length>150)return"客户描述不能超过 150 字";const s=le(e.welcome,"基础渠道欢迎语:",e.welcome_mode==="channel");if(s)return s;if(e.welcome_mode==="channel"&&e.welcome_schedule_enabled&&!e.welcome_schedule.length)return"请至少添加一个分时欢迎语时段";for(const[m,n]of e.welcome_schedule.entries()){const r=ee(n,`欢迎语时段 ${m+1}:`)||le(n,`欢迎语时段 ${m+1}:`);if(r)return r}return Ue(e.welcome_schedule)?"分时欢迎语的时间范围不能重叠(跨午夜时段归属开始日)":""}const Ae={class:"welcome-editor"},Ee={class:"welcome-editor__fields"},Ne={class:"text-tools"},Te={class:"emoji-grid"},Se=["onClick"],Be={class:"attachments-heading"},Pe={key:0,class:"attachment-empty"},Me={class:"attachment-card__heading"},Ie={class:"upload-field"},ze={class:"field-tip"},De={class:"attachment-label"},je={class:"attachment-label"},Le={class:"attachment-label"},Oe={class:"upload-field mini-upload"},We={key:3,role:"alert",class:"upload-error"},Ge=["accept"],Fe={class:"welcome-preview","aria-label":"欢迎语手机预览"},Je={class:"phone-heading"},Re={class:"phone-content"},He={key:0,class:"chat-row"},Ke={class:"chat-avatar"},Ze={class:"chat-bubble"},qe={class:"chat-avatar"},Xe={class:"chat-bubble attachment-preview"},Ye=["src"],Qe={key:1,class:"media-placeholder"},el=["src"],ll={key:1,class:"media-placeholder"},tl={key:1,class:"preview-empty"},al=de({__name:"WelcomeMessageEditor",props:{modelValue:{},disabled:{type:Boolean},employeeName:{}},emits:["update:modelValue","busy"],setup(e,{emit:b}){const s=e,m=b,n=T(),r=T(),$=T({start:0,end:0}),V=T(-1),y=Y(()=>V.value>=0),U=T({}),N=T({}),M=T({index:0,type:"image"}),J=T("image/jpeg,image/png"),te=["😊","😀","👋","🌹","❤️","👍","🙏","🎉","☀️","✨","💐","🤝","💬","✅","🌿","🍀"],R=[{value:"image",label:"图片"},{value:"link",label:"网页"},{value:"miniprogram",label:"小程序"},{value:"video",label:"视频"},{value:"file",label:"文件"}],ae=Y(()=>Array.from(s.modelValue.text).length>1200||E(s.modelValue.text)>4e3);function H(i){m("update:modelValue",{...s.modelValue,text:i})}function D(){var l;const i=(l=n.value)==null?void 0:l.textarea;i&&($.value={start:i.selectionStart,end:i.selectionEnd})}async function K(i){var _,S,A,k;if(s.disabled)return;const{start:l,end:d}=$.value;H(s.modelValue.text.slice(0,l)+i+s.modelValue.text.slice(d)),await Q();const x=l+i.length;(S=(_=n.value)==null?void 0:_.textarea)==null||S.focus(),(k=(A=n.value)==null?void 0:A.textarea)==null||k.setSelectionRange(x,x),$.value={start:x,end:x}}function L(i){var l;return((l=R.find(d=>d.value===i))==null?void 0:l.label)||"附件"}function se(i){if(s.disabled||y.value||s.modelValue.attachments.length>=9)return;let l;i==="image"?l={msgtype:"image",image:{asset_id:""}}:i==="video"?l={msgtype:"video",video:{asset_id:""}}:i==="file"?l={msgtype:"file",file:{asset_id:""}}:i==="link"?l={msgtype:"link",link:{title:"",url:"",desc:"",picurl:""}}:l={msgtype:"miniprogram",miniprogram:{title:"",appid:"",page:"",pic_asset_id:""}},m("update:modelValue",{...s.modelValue,attachments:[...s.modelValue.attachments,l]})}function ie(i){U.value={},m("update:modelValue",{...s.modelValue,attachments:s.modelValue.attachments.filter((l,d)=>d!==i)})}function Z(i,l){const d=[...s.modelValue.attachments];[d[i],d[i+l]]=[d[i+l],d[i]],U.value={},m("update:modelValue",{...s.modelValue,attachments:d})}function B(i){return i.msgtype==="image"?i.image.asset_id||"":i.msgtype==="video"?i.video.asset_id:i.msgtype==="file"?i.file.asset_id:i.msgtype==="miniprogram"?i.miniprogram.pic_asset_id:""}function O(i){var d;const l=B(i);return l?((d=N.value[l])==null?void 0:d.name)||`已保存素材 ${l.slice(-10)}`:i.msgtype==="image"&&i.image.pic_url?"已保存的企微图片":"尚未上传"}function j(i){var l;return((l=N.value[B(i)])==null?void 0:l.url)||""}async function q(i,l){var d;M.value={index:i,type:l},J.value=l==="image"?".jpg,.jpeg,.png":l==="video"?".mp4":"*",await Q(),(d=r.value)==null||d.click()}async function ne(i){var P;const l=i.target,d=(P=l.files)==null?void 0:P[0];if(l.value="",!d)return;const{index:x,type:_}=M.value,S=_==="file"?20:10;let A="";if(d.size<=5||d.size>S*1024*1024?A=`文件必须大于 5 字节且不超过 ${S}MB`:_==="image"&&!/\.(jpe?g|png)$/i.test(d.name)?A="图片仅支持 JPG / PNG 格式":_==="video"&&!/\.mp4$/i.test(d.name)&&(A="视频仅支持 MP4 格式"),A){U.value[x]=A;return}const k=s.modelValue.attachments[x];if(k){V.value=x,m("busy",!0),delete U.value[x];try{const t=await he(d,_);if(!(t!=null&&t.asset_id))throw new Error("上传接口未返回素材 ID");const p=String(t.asset_id);N.value[p]={name:t.name||d.name,url:_==="image"?URL.createObjectURL(d):void 0},k.msgtype==="image"?k.image={asset_id:p}:k.msgtype==="video"?k.video.asset_id=p:k.msgtype==="file"?k.file.asset_id=p:k.msgtype==="miniprogram"&&(k.miniprogram.pic_asset_id=p),we.success("素材已上传")}catch(t){U.value[x]=t instanceof Error?t.message:typeof t=="string"?t:"素材上传失败"}finally{V.value=-1,m("busy",!1)}}}return oe(()=>{Object.values(N.value).forEach(i=>{i.url&&URL.revokeObjectURL(i.url)}),m("busy",!1)}),(i,l)=>{const d=ue,x=re,_=me,S=be,A=fe,k=ce,P=ge;return u(),f("div",Ae,[a("div",Ee,[a("div",Ne,[c(x,{placement:"bottom-start",trigger:"click",width:240,disabled:e.disabled},{reference:v(()=>[c(d,{size:"small",disabled:e.disabled},{default:v(()=>[...l[0]||(l[0]=[w("☺ 插入表情",-1)])]),_:1},8,["disabled"])]),default:v(()=>[a("div",Te,[(u(),f(C,null,I(te,t=>a("button",{key:t,type:"button",onClick:p=>K(t)},o(t),9,Se)),64))])]),_:1},8,["disabled"]),(u(!0),f(C,null,I(h(xe),t=>(u(),W(d,{key:t.value,size:"small",disabled:e.disabled,onClick:p=>K(t.value)},{default:v(()=>[w(o(t.label),1)]),_:2},1032,["disabled","onClick"]))),128))]),c(_,{ref_key:"textInput",ref:n,"model-value":e.modelValue.text,type:"textarea",rows:6,disabled:e.disabled,placeholder:"请输入欢迎语,也可插入客户昵称、员工昵称和添加日期","onUpdate:modelValue":H,onSelect:D,onKeyup:D,onClick:D,onBlur:D},null,8,["model-value","disabled"]),a("div",{class:G(["text-count",{"is-error":ae.value}])},o(Array.from(e.modelValue.text).length)+"/1200 字 · "+o(h(E)(e.modelValue.text))+"/4000 字节",3),a("div",Be,[a("strong",null,[l[1]||(l[1]=w("附件 ",-1)),a("span",null,o(e.modelValue.attachments.length)+"/9",1)]),c(k,{disabled:e.disabled||e.modelValue.attachments.length>=9||y.value,onCommand:se},{dropdown:v(()=>[c(A,null,{default:v(()=>[(u(),f(C,null,I(R,t=>c(S,{key:t.value,command:t.value},{default:v(()=>[w(o(t.label),1)]),_:2},1032,["command"])),64))]),_:1})]),default:v(()=>[c(d,{size:"small",disabled:e.disabled||e.modelValue.attachments.length>=9||y.value,icon:h(pe)},{default:v(()=>[...l[2]||(l[2]=[w("添加附件",-1)])]),_:1},8,["disabled","icon"])]),_:1},8,["disabled"])]),e.modelValue.attachments.length?z("",!0):(u(),f("div",Pe,"可添加图片、网页、小程序、视频或文件。")),(u(!0),f(C,null,I(e.modelValue.attachments,(t,p)=>(u(),f("div",{key:p,class:"attachment-card"},[a("div",Me,[a("strong",null,o(p+1)+". "+o(L(t.msgtype)),1),a("div",null,[c(d,{text:"",size:"small",disabled:e.disabled||y.value||p===0,onClick:g=>Z(p,-1)},{default:v(()=>[...l[3]||(l[3]=[w("上移",-1)])]),_:1},8,["disabled","onClick"]),c(d,{text:"",size:"small",disabled:e.disabled||y.value||p===e.modelValue.attachments.length-1,onClick:g=>Z(p,1)},{default:v(()=>[...l[4]||(l[4]=[w("下移",-1)])]),_:1},8,["disabled","onClick"]),c(d,{text:"",type:"danger",size:"small",disabled:e.disabled||y.value,onClick:g=>ie(p)},{default:v(()=>[...l[5]||(l[5]=[w("删除",-1)])]),_:1},8,["disabled","onClick"])])]),t.msgtype==="image"||t.msgtype==="video"||t.msgtype==="file"?(u(),f(C,{key:0},[a("div",Ie,[c(d,{size:"small",icon:h(X),loading:V.value===p,disabled:e.disabled||y.value,onClick:g=>q(p,t.msgtype)},{default:v(()=>[w(o(B(t)?"重新上传":"上传")+o(L(t.msgtype)),1)]),_:2},1032,["icon","loading","disabled","onClick"]),a("span",{class:G(B(t)?"asset-ready":"muted")},o(O(t)),3)]),a("small",ze,o(t.msgtype==="image"?"JPG / PNG,最多 10MB。":t.msgtype==="video"?"MP4,最多 10MB。":"文件最多 20MB。")+"上传成功后由服务端保存素材;未上传完成不能提交。",1)],64)):t.msgtype==="link"?(u(),f(C,{key:1},[a("label",De,[l[6]||(l[6]=w("网页标题 ",-1)),a("span",null,o(h(E)(t.link.title))+"/128 字节",1)]),c(_,{modelValue:t.link.title,"onUpdate:modelValue":g=>t.link.title=g,disabled:e.disabled,placeholder:"必填:网页标题"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[8]||(l[8]=a("label",{class:"attachment-label"},"网页地址",-1)),c(_,{modelValue:t.link.url,"onUpdate:modelValue":g=>t.link.url=g,disabled:e.disabled,placeholder:"https://"},null,8,["modelValue","onUpdate:modelValue","disabled"]),a("label",je,[l[7]||(l[7]=w("网页描述 ",-1)),a("span",null,o(h(E)(t.link.desc))+"/512 字节",1)]),c(_,{modelValue:t.link.desc,"onUpdate:modelValue":g=>t.link.desc=g,disabled:e.disabled,type:"textarea",rows:2,placeholder:"选填:网页摘要"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[9]||(l[9]=a("label",{class:"attachment-label"},"网页封面地址",-1)),c(_,{modelValue:t.link.picurl,"onUpdate:modelValue":g=>t.link.picurl=g,disabled:e.disabled,placeholder:"选填:公网可访问的 HTTPS 图片地址"},null,8,["modelValue","onUpdate:modelValue","disabled"])],64)):t.msgtype==="miniprogram"?(u(),f(C,{key:2},[a("label",Le,[l[10]||(l[10]=w("小程序标题 ",-1)),a("span",null,o(h(E)(t.miniprogram.title))+"/64 字节",1)]),c(_,{modelValue:t.miniprogram.title,"onUpdate:modelValue":g=>t.miniprogram.title=g,disabled:e.disabled,placeholder:"必填:小程序标题"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[11]||(l[11]=a("label",{class:"attachment-label"},"AppID",-1)),c(_,{modelValue:t.miniprogram.appid,"onUpdate:modelValue":g=>t.miniprogram.appid=g,disabled:e.disabled,placeholder:"必填:小程序 AppID"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[12]||(l[12]=a("label",{class:"attachment-label"},"页面路径",-1)),c(_,{modelValue:t.miniprogram.page,"onUpdate:modelValue":g=>t.miniprogram.page=g,disabled:e.disabled,placeholder:"pages/index/index,可包含查询参数"},null,8,["modelValue","onUpdate:modelValue","disabled"]),a("div",Oe,[c(d,{size:"small",icon:h(X),loading:V.value===p,disabled:e.disabled||y.value,onClick:g=>q(p,"image")},{default:v(()=>[w(o(t.miniprogram.pic_asset_id?"更换封面":"上传小程序封面"),1)]),_:2},1032,["icon","loading","disabled","onClick"]),a("span",{class:G(B(t)?"asset-ready":"muted")},o(O(t)),3)]),l[13]||(l[13]=a("small",{class:"field-tip"},"JPG / PNG,最多 10MB。",-1))],64)):z("",!0),U.value[p]?(u(),f("div",We,o(U.value[p])+" 请重试上传,原素材未被替换。",1)):z("",!0)]))),128)),a("input",{ref_key:"fileInput",ref:r,class:"file-input",type:"file",accept:J.value,onChange:ne},null,40,Ge)]),a("aside",Fe,[a("div",Je,[l[14]||(l[14]=a("span",null,"‹",-1)),a("strong",null,o(e.employeeName||"接待员工"),1),l[15]||(l[15]=a("span",null,"···",-1))]),a("div",Re,[l[19]||(l[19]=a("div",{class:"preview-time"},"添加成功 · 预览示例",-1)),e.modelValue.text?(u(),f("div",He,[a("span",Ke,o((e.employeeName||"员").slice(0,1)),1),a("div",Ze,o(h($e)(e.modelValue.text,e.employeeName)),1)])):z("",!0),(u(!0),f(C,null,I(e.modelValue.attachments,(t,p)=>(u(),f("div",{key:p,class:"chat-row"},[a("span",qe,o((e.employeeName||"员").slice(0,1)),1),a("div",Xe,[t.msgtype==="image"?(u(),f(C,{key:0},[j(t)?(u(),f("img",{key:0,src:j(t),alt:"欢迎语图片预览"},null,8,Ye)):(u(),f("div",Qe,[c(P,null,{default:v(()=>[c(h(_e))]),_:1}),a("span",null,o(B(t)?"已保存的图片素材":"待上传图片"),1)]))],64)):t.msgtype==="link"?(u(),f(C,{key:1},[a("strong",null,o(t.link.title||"网页标题"),1),a("p",null,o(t.link.desc||"网页摘要"),1),l[16]||(l[16]=a("small",null,"网页链接",-1))],64)):t.msgtype==="miniprogram"?(u(),f(C,{key:2},[l[18]||(l[18]=a("small",null,"小程序",-1)),a("strong",null,o(t.miniprogram.title||"小程序标题"),1),j(t)?(u(),f("img",{key:0,src:j(t),alt:"小程序封面预览"},null,8,el)):(u(),f("div",ll,[c(P,null,{default:v(()=>[c(h(ve))]),_:1}),l[17]||(l[17]=a("span",null,"小程序封面",-1))]))],64)):(u(),f(C,{key:3},[c(P,{class:"file-icon"},{default:v(()=>[t.msgtype==="video"?(u(),W(h(ye),{key:0})):(u(),W(h(ke),{key:1}))]),_:2},1024),a("strong",null,o(O(t)),1),a("small",null,o(L(t.msgtype)),1)],64))])]))),128)),!e.modelValue.text&&!e.modelValue.attachments.length?(u(),f("div",tl,"编辑内容后在这里预览")):z("",!0)]),l[20]||(l[20]=a("div",{class:"phone-input"},[a("span",null,"⊕"),a("span",{class:"phone-input__blank"}),a("span",null,"☺")],-1)),l[21]||(l[21]=a("p",{class:"preview-note"},"仅为排版示意,昵称与时间会替换为实际值。",-1))])])}}}),sl=Ve(al,[["__scopeId","data-v-1e5d0e03"]]),pl=Object.freeze(Object.defineProperty({__proto__:null,default:sl},Symbol.toStringTag,{value:"Module"}));export{sl as W,cl as a,pl as b,ul as c,Ce as d,F as i,$e as p,ml as s,xe as t,rl as v,ol as w};
diff --git a/server/public/admin/assets/account-adjust-BO2CHU9n.js b/server/public/admin/assets/account-adjust-BO2CHU9n.js
deleted file mode 100644
index 0aaf08819..000000000
--- a/server/public/admin/assets/account-adjust-BO2CHU9n.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./account-adjust.vue_vue_type_script_setup_true_lang-Ci_LgSpd.js";import"./.pnpm-BHOjf1ZS.js";import"./index-Dt_C33Jx.js";import"./index-B31vLELt.js";export{o as default};
diff --git a/server/public/admin/assets/account-adjust-kr-XxYPx.js b/server/public/admin/assets/account-adjust-kr-XxYPx.js
new file mode 100644
index 000000000..1f37fb8d5
--- /dev/null
+++ b/server/public/admin/assets/account-adjust-kr-XxYPx.js
@@ -0,0 +1 @@
+import{_ as o}from"./account-adjust.vue_vue_type_script_setup_true_lang-DdsFQNga.js";import"./.pnpm-BuKxIMgQ.js";import"./index-BARAiw4K.js";import"./index-BZAvl557.js";export{o as default};
diff --git a/server/public/admin/assets/account-adjust.vue_vue_type_script_setup_true_lang-Ci_LgSpd.js b/server/public/admin/assets/account-adjust.vue_vue_type_script_setup_true_lang-DdsFQNga.js
similarity index 91%
rename from server/public/admin/assets/account-adjust.vue_vue_type_script_setup_true_lang-Ci_LgSpd.js
rename to server/public/admin/assets/account-adjust.vue_vue_type_script_setup_true_lang-DdsFQNga.js
index 2a2456b38..ce0b6bc3c 100644
--- a/server/public/admin/assets/account-adjust.vue_vue_type_script_setup_true_lang-Ci_LgSpd.js
+++ b/server/public/admin/assets/account-adjust.vue_vue_type_script_setup_true_lang-DdsFQNga.js
@@ -1 +1 @@
-import{o as h,R as v,q,O as B,D as l,s as j,v as t,b9 as D,u as n,b6 as F,L as u,T as w,bc as I,bf as S,b7 as T,a8 as y,ba as U,p as G}from"./.pnpm-BHOjf1ZS.js";import{_ as L}from"./index-Dt_C33Jx.js";import{j as V}from"./index-B31vLELt.js";const M={class:"pr-8"},H=h({__name:"account-adjust",props:{show:{type:Boolean,required:!0},value:{type:[Number,String],required:!0}},emits:["update:show","confirm"],setup(d,{emit:k}){const s=y(),i=d,f=k,o=U({action:1,num:"",remark:""}),m=y(),c=G(()=>Number(i.value)+Number(o.num)*(o.action==1?1:-1)),R={num:[{required:!0,message:"请输入调整的金额"}]},g=e=>{if(e.includes("-"))return V.msgError("请输入正整数");o.num=e},x=async()=>{var e;await((e=s.value)==null?void 0:e.validate()),f("confirm",o)},E=()=>{var e;f("update:show",!1),(e=s.value)==null||e.resetFields()};return v(()=>i.show,e=>{var a,r;e?(a=m.value)==null||a.open():(r=m.value)==null||r.close()}),v(c,e=>{e<0&&(V.msgError("调整后余额需大于0"),o.num="")}),(e,a)=>{const r=F,_=S,C=I,b=T,N=D;return q(),B(L,{ref_key:"popupRef",ref:m,title:"余额调整",width:"500px",onConfirm:x,async:!0,onClose:E},{default:l(()=>[j("div",M,[t(N,{ref_key:"formRef",ref:s,model:n(o),"label-width":"120px",rules:R},{default:l(()=>[t(r,{label:"当前余额"},{default:l(()=>[u("¥ "+w(d.value),1)]),_:1}),t(r,{label:"余额增减",required:"",prop:"action"},{default:l(()=>[t(C,{modelValue:n(o).action,"onUpdate:modelValue":a[0]||(a[0]=p=>n(o).action=p)},{default:l(()=>[t(_,{value:1},{default:l(()=>[...a[2]||(a[2]=[u("增加余额",-1)])]),_:1}),t(_,{value:2},{default:l(()=>[...a[3]||(a[3]=[u("扣减余额",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"调整余额",prop:"num"},{default:l(()=>[t(b,{"model-value":n(o).num,placeholder:"请输入调整的金额",type:"number",onInput:g},null,8,["model-value"])]),_:1}),t(r,{label:"调整后余额"},{default:l(()=>[u(" ¥ "+w(n(c)),1)]),_:1}),t(r,{label:"备注",prop:"remark"},{default:l(()=>[t(b,{modelValue:n(o).remark,"onUpdate:modelValue":a[1]||(a[1]=p=>n(o).remark=p),type:"textarea",rows:4},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},512)}}});export{H as _};
+import{o as h,R as v,q,O as B,D as l,s as j,v as t,b9 as D,u as n,b6 as F,L as u,T as w,bc as I,bo as S,b7 as T,a8 as y,ba as U,p as G}from"./.pnpm-BuKxIMgQ.js";import{_ as L}from"./index-BARAiw4K.js";import{j as V}from"./index-BZAvl557.js";const M={class:"pr-8"},H=h({__name:"account-adjust",props:{show:{type:Boolean,required:!0},value:{type:[Number,String],required:!0}},emits:["update:show","confirm"],setup(d,{emit:k}){const s=y(),i=d,f=k,o=U({action:1,num:"",remark:""}),m=y(),c=G(()=>Number(i.value)+Number(o.num)*(o.action==1?1:-1)),R={num:[{required:!0,message:"请输入调整的金额"}]},g=e=>{if(e.includes("-"))return V.msgError("请输入正整数");o.num=e},x=async()=>{var e;await((e=s.value)==null?void 0:e.validate()),f("confirm",o)},E=()=>{var e;f("update:show",!1),(e=s.value)==null||e.resetFields()};return v(()=>i.show,e=>{var a,r;e?(a=m.value)==null||a.open():(r=m.value)==null||r.close()}),v(c,e=>{e<0&&(V.msgError("调整后余额需大于0"),o.num="")}),(e,a)=>{const r=F,_=S,C=I,b=T,N=D;return q(),B(L,{ref_key:"popupRef",ref:m,title:"余额调整",width:"500px",onConfirm:x,async:!0,onClose:E},{default:l(()=>[j("div",M,[t(N,{ref_key:"formRef",ref:s,model:n(o),"label-width":"120px",rules:R},{default:l(()=>[t(r,{label:"当前余额"},{default:l(()=>[u("¥ "+w(d.value),1)]),_:1}),t(r,{label:"余额增减",required:"",prop:"action"},{default:l(()=>[t(C,{modelValue:n(o).action,"onUpdate:modelValue":a[0]||(a[0]=p=>n(o).action=p)},{default:l(()=>[t(_,{value:1},{default:l(()=>[...a[2]||(a[2]=[u("增加余额",-1)])]),_:1}),t(_,{value:2},{default:l(()=>[...a[3]||(a[3]=[u("扣减余额",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"调整余额",prop:"num"},{default:l(()=>[t(b,{"model-value":n(o).num,placeholder:"请输入调整的金额",type:"number",onInput:g},null,8,["model-value"])]),_:1}),t(r,{label:"调整后余额"},{default:l(()=>[u(" ¥ "+w(n(c)),1)]),_:1}),t(r,{label:"备注",prop:"remark"},{default:l(()=>[t(b,{modelValue:n(o).remark,"onUpdate:modelValue":a[1]||(a[1]=p=>n(o).remark=p),type:"textarea",rows:4},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},512)}}});export{H as _};
diff --git a/server/public/admin/assets/account_cost-cML2p4Ld.js b/server/public/admin/assets/account_cost-C0tC2N7d.js
similarity index 86%
rename from server/public/admin/assets/account_cost-cML2p4Ld.js
rename to server/public/admin/assets/account_cost-C0tC2N7d.js
index 85192ef50..b71d56e3a 100644
--- a/server/public/admin/assets/account_cost-cML2p4Ld.js
+++ b/server/public/admin/assets/account_cost-C0tC2N7d.js
@@ -1 +1 @@
-import{o as P,W as ie,ap as re,be as pe,q as i,r as D,v as t,D as s,s as r,T as g,u as o,bg as ce,b9 as ue,C as S,b6 as me,bK as _e,b7 as fe,b8 as ve,K as ge,L as u,O as m,P as A,ac as h,bj as ye,bk as be,a1 as we,bi as he,a8 as Ce,M as F,p as ke,ba as xe,n as O}from"./.pnpm-BHOjf1ZS.js";import{_ as Ve}from"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import{c as Te,l as Ee,j as De,_ as Se}from"./index-B31vLELt.js";import{p as Re,a as Le}from"./self_input_stats-Crp9Jl6D.js";import{d as Ae}from"./department-C6mdNFMs.js";import{u as Fe}from"./usePaging-oaNM6A9T.js";import{_ as Oe}from"./cost-edit.vue_vue_type_script_setup_true_lang-N-p2ZMZi.js";import{_ as Pe}from"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-xuHF5G6T.js";import{u as $e}from"./useMediaSourceOptions-e9NzRa8a.js";import{L as Me,u as Ue}from"./useListTimeFilter-D-QBm9m2.js";import"./index-Dt_C33Jx.js";const Be={class:"personal-account-cost-page"},Ie={class:"flex flex-wrap"},Ke={class:"w-1/2 md:w-1/3"},Ne={class:"text-4xl"},je={class:"w-1/2 md:w-1/3"},qe={class:"text-4xl"},ze={class:"dept-cell"},Qe={key:1},We={key:2,class:"text-gray-400"},Ge={class:"flex justify-end mt-4"},He=P({name:"personalAccountCost"}),Je=P({...He,setup(Xe){const $=ie(),y=Ce(),b=F(!1),C=F([]),{mediaSourceOptions:R,mediaSourceLoading:L,loadMediaSourceOptions:M,refreshMediaSourceOptions:k}=$e(),U={value:"id",label:"name",children:"children"},x=ke(()=>Ee("stats.self_input/overview")||""),B=()=>{x.value&&$.push(x.value)},l=xe({media_source:"",dept_id:void 0,remark:""}),{time_type:V,dateRange:T,resolve:I,handleTimeTypeChange:K,handleCustomDateChange:N,resetTimeFilter:j}=Ue("today"),{pager:d,getLists:_}=Fe({fetchFun:async n=>{const[e,c]=I();return Re({...n,start_date:e,end_date:c})},params:l}),f=()=>{d.page=1,_()},q=()=>K(f),z=()=>N(f),Q=()=>{j(),l.media_source="",l.dept_id=void 0,l.remark="",d.page=1,d.size=15,_()},W=n=>{n&&k()},G=async()=>{await k(),_()},H=async()=>{var n;await k(),b.value=!0,await O(),(n=y.value)==null||n.open("add")},J=async n=>{var e,c;b.value=!0,await O(),(e=y.value)==null||e.open("edit"),(c=y.value)==null||c.setFormData(n)},X=async n=>{await De.confirm("确定删除该账户消耗记录?"),await Le({id:n}),_()},Y=async()=>{try{const n=await Ae({apply_data_scope:1});Array.isArray(n)&&(C.value=n)}catch{C.value=[]}};return re(async()=>{Y(),M(),await _()}),(n,e)=>{const c=ce,Z=_e,w=me,ee=fe,v=ge,te=ue,ae=Te,p=be,oe=we,se=ye,ne=Ve,E=pe("perms"),le=he;return i(),D("div",Be,[t(c,{class:"!border-none mb-4",shadow:"never"},{default:s(()=>[r("div",Ie,[r("div",Ke,[e[7]||(e[7]=r("div",{class:"leading-10"},"当前筛选天数",-1)),r("div",Ne,g(o(d).extend.days_count??0),1)]),r("div",je,[e[8]||(e[8]=r("div",{class:"leading-10"},"累计账户消耗 (元)",-1)),r("div",qe,"¥"+g(o(d).extend.total_amount??"0.00"),1)])])]),_:1}),t(c,{class:"!border-none",shadow:"never"},{default:s(()=>[t(te,{inline:!0,model:o(l),class:"stats-filter-form"},{default:s(()=>[t(Me,{"time-type":o(V),"onUpdate:timeType":e[0]||(e[0]=a=>S(V)?V.value=a:null),"date-range":o(T),"onUpdate:dateRange":e[1]||(e[1]=a=>S(T)?T.value=a:null),onTimeTypeChange:q,onCustomChange:z},null,8,["time-type","date-range"]),t(w,{label:"部门"},{default:s(()=>[t(Z,{modelValue:o(l).dept_id,"onUpdate:modelValue":e[2]||(e[2]=a=>o(l).dept_id=a),data:o(C),"node-key":"id",props:U,"default-expand-all":!0,"check-strictly":"",placeholder:"全部部门",clearable:"",filterable:"",class:"w-[220px]",onChange:f},null,8,["modelValue","data"])]),_:1}),t(w,{label:"自媒体来源"},{default:s(()=>[t(Pe,{modelValue:o(l).media_source,"onUpdate:modelValue":e[3]||(e[3]=a=>o(l).media_source=a),options:o(R),loading:o(L),placeholder:"全部来源","allow-create":!1,"select-class":"w-[220px]",onChange:f,onVisibleChange:W},null,8,["modelValue","options","loading"])]),_:1}),t(w,{class:"w-[280px]",label:"备注/录入人"},{default:s(()=>[t(ee,{modelValue:o(l).remark,"onUpdate:modelValue":e[4]||(e[4]=a=>o(l).remark=a),placeholder:"备注 / 创建人",clearable:"",onKeyup:ve(f,["enter"])},null,8,["modelValue"])]),_:1}),t(w,null,{default:s(()=>[t(v,{type:"primary",loading:o(d).loading,onClick:f},{default:s(()=>[...e[9]||(e[9]=[u("查询",-1)])]),_:1},8,["loading"]),t(v,{onClick:Q},{default:s(()=>[...e[10]||(e[10]=[u("重置",-1)])]),_:1}),o(x)?(i(),m(v,{key:0,class:"ml-2",onClick:B},{default:s(()=>[...e[11]||(e[11]=[u("返回统计",-1)])]),_:1})):A("",!0)]),_:1})]),_:1},8,["model"])]),_:1}),t(c,{class:"!border-none mt-4",shadow:"never"},{default:s(()=>[r("div",null,[h((i(),m(v,{type:"primary",onClick:H},{icon:s(()=>[t(ae,{name:"el-icon-Plus"})]),default:s(()=>[e[12]||(e[12]=u(" 新增 ",-1))]),_:1})),[[E,["stats.personal_account_cost/add"]]])]),h((i(),m(se,{class:"mt-4",size:"large",data:o(d).lists},{default:s(()=>[t(p,{label:"日期",prop:"cost_date","min-width":"120"}),t(p,{label:"自媒体来源",prop:"media_source","min-width":"160","show-overflow-tooltip":""}),t(p,{label:"账户消耗","min-width":"120"},{default:s(({row:a})=>[u("¥"+g(a.amount),1)]),_:1}),t(p,{label:"备注",prop:"remark","min-width":"200","show-overflow-tooltip":""}),t(p,{label:"录入人",prop:"creator_name","min-width":"100"}),t(p,{label:"部门",prop:"dept_name","min-width":"140"},{default:s(({row:a})=>[a.dept_path?(i(),m(oe,{key:0,content:a.dept_path,placement:"top",effect:"dark"},{default:s(()=>[r("span",ze,g(a.dept_name||"未分配"),1)]),_:2},1032,["content"])):a.dept_name?(i(),D("span",Qe,g(a.dept_name),1)):(i(),D("span",We,"未分配"))]),_:1}),t(p,{label:"最后修改人",prop:"updater_name","min-width":"100"}),t(p,{label:"更新时间",prop:"update_time","min-width":"180"}),t(p,{label:"操作",width:"160",fixed:"right"},{default:s(({row:a})=>[h((i(),m(v,{type:"primary",link:"",onClick:de=>J(a)},{default:s(()=>[...e[13]||(e[13]=[u(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[E,["stats.personal_account_cost/edit"]]]),h((i(),m(v,{type:"danger",link:"",onClick:de=>X(a.id)},{default:s(()=>[...e[14]||(e[14]=[u(" 删除 ",-1)])]),_:1},8,["onClick"])),[[E,["stats.personal_account_cost/delete"]]])]),_:1})]),_:1},8,["data"])),[[le,o(d).loading]]),r("div",Ge,[t(ne,{modelValue:o(d),"onUpdate:modelValue":e[5]||(e[5]=a=>S(d)?d.value=a:null),onChange:o(_)},null,8,["modelValue","onChange"])])]),_:1}),o(b)?(i(),m(Oe,{key:0,ref_key:"editRef",ref:y,"media-source-options":o(R),"media-source-loading":o(L),onSuccess:G,onClose:e[6]||(e[6]=a=>b.value=!1)},null,8,["media-source-options","media-source-loading"])):A("",!0)])}}}),rt=Se(Je,[["__scopeId","data-v-1e1f4e9b"]]);export{rt as default};
+import{o as P,W as ie,ap as re,bn as pe,q as i,r as D,v as t,D as s,s as r,T as g,u as o,bh as ce,b9 as ue,C as S,b6 as me,bK as _e,b7 as fe,b8 as ve,K as ge,L as u,O as m,P as A,ac as h,bi as ye,bj as be,a1 as we,bl as he,a8 as Ce,M as F,p as ke,ba as xe,n as O}from"./.pnpm-BuKxIMgQ.js";import{_ as Ve}from"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import{c as Te,l as Ee,j as De,_ as Se}from"./index-BZAvl557.js";import{p as Re,a as Le}from"./self_input_stats-CtGK3wyk.js";import{d as Ae}from"./department-CGkU6VW9.js";import{u as Fe}from"./usePaging-DNtxCypz.js";import{_ as Oe}from"./cost-edit.vue_vue_type_script_setup_true_lang-3wJ2tWIk.js";import{_ as Pe}from"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-DlP55LpE.js";import{u as $e}from"./useMediaSourceOptions-LgT6u0lr.js";import{L as Me,u as Ue}from"./useListTimeFilter-BQhDgnPB.js";import"./index-BARAiw4K.js";const Be={class:"personal-account-cost-page"},Ie={class:"flex flex-wrap"},Ke={class:"w-1/2 md:w-1/3"},Ne={class:"text-4xl"},je={class:"w-1/2 md:w-1/3"},qe={class:"text-4xl"},ze={class:"dept-cell"},Qe={key:1},We={key:2,class:"text-gray-400"},Ge={class:"flex justify-end mt-4"},He=P({name:"personalAccountCost"}),Je=P({...He,setup(Xe){const $=ie(),y=Ce(),b=F(!1),C=F([]),{mediaSourceOptions:R,mediaSourceLoading:L,loadMediaSourceOptions:M,refreshMediaSourceOptions:k}=$e(),U={value:"id",label:"name",children:"children"},x=ke(()=>Ee("stats.self_input/overview")||""),B=()=>{x.value&&$.push(x.value)},l=xe({media_source:"",dept_id:void 0,remark:""}),{time_type:V,dateRange:T,resolve:I,handleTimeTypeChange:K,handleCustomDateChange:N,resetTimeFilter:j}=Ue("today"),{pager:d,getLists:_}=Fe({fetchFun:async n=>{const[e,c]=I();return Re({...n,start_date:e,end_date:c})},params:l}),f=()=>{d.page=1,_()},q=()=>K(f),z=()=>N(f),Q=()=>{j(),l.media_source="",l.dept_id=void 0,l.remark="",d.page=1,d.size=15,_()},W=n=>{n&&k()},G=async()=>{await k(),_()},H=async()=>{var n;await k(),b.value=!0,await O(),(n=y.value)==null||n.open("add")},J=async n=>{var e,c;b.value=!0,await O(),(e=y.value)==null||e.open("edit"),(c=y.value)==null||c.setFormData(n)},X=async n=>{await De.confirm("确定删除该账户消耗记录?"),await Le({id:n}),_()},Y=async()=>{try{const n=await Ae({apply_data_scope:1});Array.isArray(n)&&(C.value=n)}catch{C.value=[]}};return re(async()=>{Y(),M(),await _()}),(n,e)=>{const c=ce,Z=_e,w=me,ee=fe,v=ge,te=ue,ae=Te,p=be,oe=we,se=ye,ne=Ve,E=pe("perms"),le=he;return i(),D("div",Be,[t(c,{class:"!border-none mb-4",shadow:"never"},{default:s(()=>[r("div",Ie,[r("div",Ke,[e[7]||(e[7]=r("div",{class:"leading-10"},"当前筛选天数",-1)),r("div",Ne,g(o(d).extend.days_count??0),1)]),r("div",je,[e[8]||(e[8]=r("div",{class:"leading-10"},"累计账户消耗 (元)",-1)),r("div",qe,"¥"+g(o(d).extend.total_amount??"0.00"),1)])])]),_:1}),t(c,{class:"!border-none",shadow:"never"},{default:s(()=>[t(te,{inline:!0,model:o(l),class:"stats-filter-form"},{default:s(()=>[t(Me,{"time-type":o(V),"onUpdate:timeType":e[0]||(e[0]=a=>S(V)?V.value=a:null),"date-range":o(T),"onUpdate:dateRange":e[1]||(e[1]=a=>S(T)?T.value=a:null),onTimeTypeChange:q,onCustomChange:z},null,8,["time-type","date-range"]),t(w,{label:"部门"},{default:s(()=>[t(Z,{modelValue:o(l).dept_id,"onUpdate:modelValue":e[2]||(e[2]=a=>o(l).dept_id=a),data:o(C),"node-key":"id",props:U,"default-expand-all":!0,"check-strictly":"",placeholder:"全部部门",clearable:"",filterable:"",class:"w-[220px]",onChange:f},null,8,["modelValue","data"])]),_:1}),t(w,{label:"自媒体来源"},{default:s(()=>[t(Pe,{modelValue:o(l).media_source,"onUpdate:modelValue":e[3]||(e[3]=a=>o(l).media_source=a),options:o(R),loading:o(L),placeholder:"全部来源","allow-create":!1,"select-class":"w-[220px]",onChange:f,onVisibleChange:W},null,8,["modelValue","options","loading"])]),_:1}),t(w,{class:"w-[280px]",label:"备注/录入人"},{default:s(()=>[t(ee,{modelValue:o(l).remark,"onUpdate:modelValue":e[4]||(e[4]=a=>o(l).remark=a),placeholder:"备注 / 创建人",clearable:"",onKeyup:ve(f,["enter"])},null,8,["modelValue"])]),_:1}),t(w,null,{default:s(()=>[t(v,{type:"primary",loading:o(d).loading,onClick:f},{default:s(()=>[...e[9]||(e[9]=[u("查询",-1)])]),_:1},8,["loading"]),t(v,{onClick:Q},{default:s(()=>[...e[10]||(e[10]=[u("重置",-1)])]),_:1}),o(x)?(i(),m(v,{key:0,class:"ml-2",onClick:B},{default:s(()=>[...e[11]||(e[11]=[u("返回统计",-1)])]),_:1})):A("",!0)]),_:1})]),_:1},8,["model"])]),_:1}),t(c,{class:"!border-none mt-4",shadow:"never"},{default:s(()=>[r("div",null,[h((i(),m(v,{type:"primary",onClick:H},{icon:s(()=>[t(ae,{name:"el-icon-Plus"})]),default:s(()=>[e[12]||(e[12]=u(" 新增 ",-1))]),_:1})),[[E,["stats.personal_account_cost/add"]]])]),h((i(),m(se,{class:"mt-4",size:"large",data:o(d).lists},{default:s(()=>[t(p,{label:"日期",prop:"cost_date","min-width":"120"}),t(p,{label:"自媒体来源",prop:"media_source","min-width":"160","show-overflow-tooltip":""}),t(p,{label:"账户消耗","min-width":"120"},{default:s(({row:a})=>[u("¥"+g(a.amount),1)]),_:1}),t(p,{label:"备注",prop:"remark","min-width":"200","show-overflow-tooltip":""}),t(p,{label:"录入人",prop:"creator_name","min-width":"100"}),t(p,{label:"部门",prop:"dept_name","min-width":"140"},{default:s(({row:a})=>[a.dept_path?(i(),m(oe,{key:0,content:a.dept_path,placement:"top",effect:"dark"},{default:s(()=>[r("span",ze,g(a.dept_name||"未分配"),1)]),_:2},1032,["content"])):a.dept_name?(i(),D("span",Qe,g(a.dept_name),1)):(i(),D("span",We,"未分配"))]),_:1}),t(p,{label:"最后修改人",prop:"updater_name","min-width":"100"}),t(p,{label:"更新时间",prop:"update_time","min-width":"180"}),t(p,{label:"操作",width:"160",fixed:"right"},{default:s(({row:a})=>[h((i(),m(v,{type:"primary",link:"",onClick:de=>J(a)},{default:s(()=>[...e[13]||(e[13]=[u(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[E,["stats.personal_account_cost/edit"]]]),h((i(),m(v,{type:"danger",link:"",onClick:de=>X(a.id)},{default:s(()=>[...e[14]||(e[14]=[u(" 删除 ",-1)])]),_:1},8,["onClick"])),[[E,["stats.personal_account_cost/delete"]]])]),_:1})]),_:1},8,["data"])),[[le,o(d).loading]]),r("div",Ge,[t(ne,{modelValue:o(d),"onUpdate:modelValue":e[5]||(e[5]=a=>S(d)?d.value=a:null),onChange:o(_)},null,8,["modelValue","onChange"])])]),_:1}),o(b)?(i(),m(Oe,{key:0,ref_key:"editRef",ref:y,"media-source-options":o(R),"media-source-loading":o(L),onSuccess:G,onClose:e[6]||(e[6]=a=>b.value=!1)},null,8,["media-source-options","media-source-loading"])):A("",!0)])}}}),rt=Se(Je,[["__scopeId","data-v-1e1f4e9b"]]);export{rt as default};
diff --git a/server/public/admin/assets/add-DUwXGXzQ.js b/server/public/admin/assets/add-DYMTT4Hw.js
similarity index 98%
rename from server/public/admin/assets/add-DUwXGXzQ.js
rename to server/public/admin/assets/add-DYMTT4Hw.js
index 7b45df64f..7da16924d 100644
--- a/server/public/admin/assets/add-DUwXGXzQ.js
+++ b/server/public/admin/assets/add-DYMTT4Hw.js
@@ -1 +1 @@
-import{o as pe,W as me,Q as _e,ap as fe,bx as be,q as u,r as f,s as _,v as a,D as o,w as ye,u as t,cu as ge,L as s,K as Ve,T as w,b6 as ve,b7 as ce,bc as ke,bf as we,J as Ue,bp as xe,bm as Ee,bn as Oe,F as g,G as V,O as v,cA as qe,di as De,bb as Be,b9 as Ce,M as p,p as Se,E as le}from"./.pnpm-BHOjf1ZS.js";import{ab as ae,ac as Ie,ad as Re,ae as Pe,af as Le}from"./tcm-BkYsBTA3.js";import{n as c,j as te,_ as Me}from"./index-B31vLELt.js";const Ne={class:"diagnosis-page"},Fe={class:"page-header"},Te={class:"page-title"},Ye={class:"page-content"},$e={class:"form-section"},Ge={class:"form-section"},Ae={class:"form-section"},He={class:"form-section"},Xe={class:"form-section"},je={class:"form-section"},Je={class:"form-section"},Ke={class:"form-section"},Qe={class:"page-footer"},We=pe({__name:"add",setup(he){const P=me(),oe=_e(),L=p(),S=p("add"),I=p(!1),de=Se(()=>S.value==="add"?"新增诊单":"编辑诊单"),d=p({id:"",patient_id:"",patient_name:"",id_card:"",phone:"",gender:1,age:void 0,diagnosis_date:"",diagnosis_type:"",syndrome_type:"",diabetes_type:"",diabetes_discovery_year:"",local_hospital_diagnosis:[],local_hospital_name:"",marital_status:void 0,height:void 0,weight:void 0,region:"",systolic_pressure:void 0,diastolic_pressure:void 0,fasting_blood_sugar:"",appetite:"",water_intake:"",diet_condition:[],weight_change:"",body_feeling:[],sleep_condition:[],eye_condition:[],head_feeling:[],sweat_condition:[],skin_condition:[],urine_condition:[],stool_condition:[],kidney_condition:[],fatty_liver_degree:"",past_history:[],trauma_history:0,surgery_history:0,allergy_history:0,family_history:0,pregnancy_history:0,symptoms:"",tongue_coating:"",pulse:"",treatment_principle:"",prescription:"",doctor_advice:"",remark:"",current_medications:"",status:1}),ne={patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],id_card:[{validator:(r,e,i)=>{if(!e){i();return}if(!/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e)){i(new Error("身份证号格式不正确"));return}i()},trigger:"blur"}],phone:[{required:!0,validator:(r,e,i)=>{if(!e){i(new Error("请输入手机号"));return}if(!/^1[3-9]\d{9}$/.test(e)){i(new Error("手机号格式不正确"));return}i()},trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],age:[{required:!0,message:"请输入年龄",trigger:"blur"}],diagnosis_type:[{required:!0,message:"请选择诊断类型",trigger:"change"}],syndrome_type:[{required:!0,message:"请选择证型",trigger:"change"}],diabetes_type:[{required:!0,message:"请选择糖尿病期数",trigger:"change"}],local_hospital_name:[{required:!0,message:"请输入当地就诊医院名称",trigger:"blur"}],diabetes_discovery_year:[{max:50,message:"最多50个字符",trigger:"blur"}]},M=p([]),N=p([]),F=p([]),T=p([]),Y=p([]),$=p([]),G=p([]),A=p([]),H=p([]),X=p([]),j=p([]),J=p([]),K=p([]),Q=p([]),W=p([]),h=p([]),z=p([]),Z=p([]),ue=async()=>{try{const[r,e,i,x,m,n,b,U,O,B,E,q,y,k,D,C,l,R]=await Promise.all([c({type:"diagnosis_type"}),c({type:"syndrome_type"}),c({type:"diabetes_type"}),c({type:"past_history"}),c({type:"appetite"}),c({type:"water_intake"}),c({type:"diet_condition"}),c({type:"weight_change"}),c({type:"body_feeling"}),c({type:"sleep_condition"}),c({type:"eye_condition"}),c({type:"head_feeling"}),c({type:"sweat_condition"}),c({type:"skin_condition"}),c({type:"urine_condition"}),c({type:"stool_condition"}),c({type:"kidney_condition"}),c({type:"fatty_liver_degree"})]);M.value=(r==null?void 0:r.diagnosis_type)||[],N.value=(e==null?void 0:e.syndrome_type)||[],F.value=(i==null?void 0:i.diabetes_type)||[],T.value=(x==null?void 0:x.past_history)||[],Y.value=(m==null?void 0:m.appetite)||[],$.value=(n==null?void 0:n.water_intake)||[],G.value=(b==null?void 0:b.diet_condition)||[],A.value=(U==null?void 0:U.weight_change)||[],H.value=(O==null?void 0:O.body_feeling)||[],X.value=(B==null?void 0:B.sleep_condition)||[],j.value=(E==null?void 0:E.eye_condition)||[],J.value=(q==null?void 0:q.head_feeling)||[],K.value=(y==null?void 0:y.sweat_condition)||[],Q.value=(k==null?void 0:k.skin_condition)||[],W.value=(D==null?void 0:D.urine_condition)||[],h.value=(C==null?void 0:C.stool_condition)||[],z.value=(l==null?void 0:l.kidney_condition)||[],Z.value=(R==null?void 0:R.fatty_liver_degree)||[]}catch(r){console.error("获取字典数据失败:",r)}},se=async()=>{if(!(!d.value.phone||!/^1[3-9]\d{9}$/.test(d.value.phone)))try{const r=await Ie({phone:d.value.phone,id:d.value.id||""});r.exists&&le.warning(r.message)}catch(r){console.error("检查手机号失败:",r)}},re=async()=>{if(!(!d.value.id_card||!/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(d.value.id_card)))try{const r=await Re({id_card:d.value.id_card,id:d.value.id||""});r.exists&&le.warning(r.message)}catch(r){console.error("检查身份证号失败:",r)}},ie=async()=>{var r;await((r=L.value)==null?void 0:r.validate()),I.value=!0;try{if(S.value==="add"){const e=await Pe(d.value);if(te.msgSuccess("新增成功"),e&&e.id){S.value="edit",d.value.id=e.id;try{const i=await ae({id:e.id});d.value.patient_id=i.patient_id}catch(i){console.error("获取详情失败:",i)}P.replace({query:{id:e.id}})}}else await Le(d.value),te.msgSuccess("编辑成功")}catch(e){console.error("提交失败:",e)}finally{I.value=!1}},ee=()=>{P.back()};return fe(async()=>{await ue(),setTimeout(()=>{const e=document.querySelector(".el-aside");e&&(e.style.display="none");const i=document.querySelector(".el-main");i&&(i.style.width="100%"(i).style.marginLeft="0");const x=document.querySelector(".el-container");x&&(x.style.width="100%")},100);const r=oe.query.id;if(r){S.value="edit";const e=await ae({id:Number(r)});d.value=e}}),be(()=>{const r=document.querySelector(".el-aside");r&&(r.style.display="");const e=document.querySelector(".el-main");e&&(e.style.width=""(e).style.marginLeft="");const i=document.querySelector(".el-container");i&&(i.style.width="")}),(r,e)=>{const i=ye,x=Ve,m=ce,n=ve,b=we,U=ke,O=Ue,B=xe,E=Oe,q=Ee,y=De,k=qe,D=Be,C=Ce;return u(),f("div",Ne,[_("div",Fe,[a(x,{link:"",onClick:ee,class:"back-btn"},{default:o(()=>[a(i,null,{default:o(()=>[a(t(ge))]),_:1}),e[49]||(e[49]=s(" 返回 ",-1))]),_:1}),_("h1",Te,w(t(de)),1)]),_("div",Ye,[a(C,{ref_key:"formRef",ref:L,model:t(d),rules:ne,"label-width":"auto",class:"diagnosis-form"},{default:o(()=>[_("div",$e,[e[52]||(e[52]=_("div",{class:"section-title"},"基本信息",-1)),a(n,{label:"患者ID"},{default:o(()=>[a(m,{modelValue:t(d).patient_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t(d).patient_id=l),disabled:"",placeholder:"系统自动生成"},null,8,["modelValue"])]),_:1}),a(n,{label:"患者姓名",prop:"patient_name"},{default:o(()=>[a(m,{modelValue:t(d).patient_name,"onUpdate:modelValue":e[1]||(e[1]=l=>t(d).patient_name=l),placeholder:"请输入患者姓名"},null,8,["modelValue"])]),_:1}),a(n,{label:"身份证号",prop:"id_card"},{default:o(()=>[a(m,{modelValue:t(d).id_card,"onUpdate:modelValue":e[2]||(e[2]=l=>t(d).id_card=l),placeholder:"请输入身份证号",maxlength:"18",onBlur:re},null,8,["modelValue"])]),_:1}),a(n,{label:"手机号",prop:"phone"},{default:o(()=>[a(m,{modelValue:t(d).phone,"onUpdate:modelValue":e[3]||(e[3]=l=>t(d).phone=l),placeholder:"请输入手机号",maxlength:"11",onBlur:se},null,8,["modelValue"])]),_:1}),a(n,{label:"性别",prop:"gender"},{default:o(()=>[a(U,{modelValue:t(d).gender,"onUpdate:modelValue":e[4]||(e[4]=l=>t(d).gender=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[50]||(e[50]=[s("男",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[51]||(e[51]=[s("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"年龄",prop:"age"},{default:o(()=>[a(O,{modelValue:t(d).age,"onUpdate:modelValue":e[5]||(e[5]=l=>t(d).age=l),min:0,max:150,placeholder:"请输入年龄",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"诊断日期",prop:"diagnosis_date"},{default:o(()=>[a(B,{modelValue:t(d).diagnosis_date,"onUpdate:modelValue":e[6]||(e[6]=l=>t(d).diagnosis_date=l),type:"date",placeholder:"请选择诊断日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1})]),_("div",Ge,[e[53]||(e[53]=_("div",{class:"section-title"},"生命体征",-1)),a(n,{label:"婚姻状态",prop:"marital_status"},{default:o(()=>[a(q,{modelValue:t(d).marital_status,"onUpdate:modelValue":e[7]||(e[7]=l=>t(d).marital_status=l),placeholder:"请选择婚姻状态",class:"w-full"},{default:o(()=>[a(E,{label:"未婚",value:0}),a(E,{label:"已婚",value:1}),a(E,{label:"离异",value:2})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"身高(cm)",prop:"height"},{default:o(()=>[a(O,{modelValue:t(d).height,"onUpdate:modelValue":e[8]||(e[8]=l=>t(d).height=l),min:0,max:300,placeholder:"请输入身高",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"体重(kg)",prop:"weight"},{default:o(()=>[a(O,{modelValue:t(d).weight,"onUpdate:modelValue":e[9]||(e[9]=l=>t(d).weight=l),min:0,max:500,step:.1,placeholder:"请输入体重",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"地区",prop:"region"},{default:o(()=>[a(m,{modelValue:t(d).region,"onUpdate:modelValue":e[10]||(e[10]=l=>t(d).region=l),placeholder:"请输入地区"},null,8,["modelValue"])]),_:1}),a(n,{label:"收缩压(mmHg)",prop:"systolic_pressure"},{default:o(()=>[a(O,{modelValue:t(d).systolic_pressure,"onUpdate:modelValue":e[11]||(e[11]=l=>t(d).systolic_pressure=l),min:0,max:250,placeholder:"请输入收缩压",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"舒张压(mmHg)",prop:"diastolic_pressure"},{default:o(()=>[a(O,{modelValue:t(d).diastolic_pressure,"onUpdate:modelValue":e[12]||(e[12]=l=>t(d).diastolic_pressure=l),min:0,max:150,placeholder:"请输入舒张压",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"空腹血糖(mmol/L)",prop:"fasting_blood_sugar"},{default:o(()=>[a(m,{modelValue:t(d).fasting_blood_sugar,"onUpdate:modelValue":e[13]||(e[13]=l=>t(d).fasting_blood_sugar=l),placeholder:"请输入空腹血糖,如:8.5 或 8-9",maxlength:"20",class:"w-full"},null,8,["modelValue"])]),_:1})]),_("div",Ae,[e[56]||(e[56]=_("div",{class:"section-title"},"诊断信息",-1)),a(n,{label:"诊断类型",prop:"diagnosis_type"},{default:o(()=>[a(q,{modelValue:t(d).diagnosis_type,"onUpdate:modelValue":e[14]||(e[14]=l=>t(d).diagnosis_type=l),placeholder:"请选择诊断类型",class:"w-full"},{default:o(()=>[(u(!0),f(g,null,V(t(M),l=>(u(),v(E,{key:l.value,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"证型",prop:"syndrome_type"},{default:o(()=>[a(q,{modelValue:t(d).syndrome_type,"onUpdate:modelValue":e[15]||(e[15]=l=>t(d).syndrome_type=l),placeholder:"请选择证型",class:"w-full"},{default:o(()=>[(u(!0),f(g,null,V(t(N),l=>(u(),v(E,{key:l.value,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"糖尿病期数",prop:"diabetes_type"},{default:o(()=>[a(q,{modelValue:t(d).diabetes_type,"onUpdate:modelValue":e[16]||(e[16]=l=>t(d).diabetes_type=l),placeholder:"请选择糖尿病期数",class:"w-full"},{default:o(()=>[(u(!0),f(g,null,V(t(F),l=>(u(),v(E,{key:l.value,label:l.name+(l.remark?" ("+l.remark+")":""),value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"状态",prop:"status"},{default:o(()=>[a(U,{modelValue:t(d).status,"onUpdate:modelValue":e[17]||(e[17]=l=>t(d).status=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[54]||(e[54]=[s("启用",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[55]||(e[55]=[s("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"在用药物",prop:"current_medications"},{default:o(()=>[a(m,{modelValue:t(d).current_medications,"onUpdate:modelValue":e[18]||(e[18]=l=>t(d).current_medications=l),type:"textarea",rows:3,placeholder:"请填写患者当前正在使用的药物(如降压药、降糖药等),多种请换行或顿号分隔",maxlength:"2000","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_("div",He,[e[60]||(e[60]=_("div",{class:"section-title"},"主诉",-1)),a(n,{label:"发现糖尿病就患病史",prop:"diabetes_discovery_year"},{default:o(()=>[a(m,{modelValue:t(d).diabetes_discovery_year,"onUpdate:modelValue":e[19]||(e[19]=l=>t(d).diabetes_discovery_year=l),clearable:"",maxlength:"50","show-word-limit":"",placeholder:"可填数字或文字,如:5、1年、半年",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"当地医院诊断结果"},{default:o(()=>[a(k,{modelValue:t(d).local_hospital_diagnosis,"onUpdate:modelValue":e[20]||(e[20]=l=>t(d).local_hospital_diagnosis=l),class:"checkbox-group"},{default:o(()=>[a(y,{label:"糖尿病"},{default:o(()=>[...e[57]||(e[57]=[s("糖尿病",-1)])]),_:1}),a(y,{label:"高血压"},{default:o(()=>[...e[58]||(e[58]=[s("高血压",-1)])]),_:1}),a(y,{label:"糖尿病高血压"},{default:o(()=>[...e[59]||(e[59]=[s("糖尿病高血压",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"当地就诊医院名称",prop:"local_hospital_name"},{default:o(()=>[a(m,{modelValue:t(d).local_hospital_name,"onUpdate:modelValue":e[21]||(e[21]=l=>t(d).local_hospital_name=l),placeholder:"请输入当地就诊医院名称(不能填写当地、本地、互联网等关键词)"},null,8,["modelValue"])]),_:1})]),_("div",Xe,[e[61]||(e[61]=_("div",{class:"section-title"},"现病史",-1)),a(n,{label:"口腔感觉"},{default:o(()=>[a(U,{modelValue:t(d).appetite,"onUpdate:modelValue":e[22]||(e[22]=l=>t(d).appetite=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t(Y),l=>(u(),v(D,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"每日饮水量"},{default:o(()=>[a(U,{modelValue:t(d).water_intake,"onUpdate:modelValue":e[23]||(e[23]=l=>t(d).water_intake=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t($),l=>(u(),v(D,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"近一个月体重变化"},{default:o(()=>[a(U,{modelValue:t(d).weight_change,"onUpdate:modelValue":e[24]||(e[24]=l=>t(d).weight_change=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t(A),l=>(u(),v(D,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"脂肪肝程度"},{default:o(()=>[a(U,{modelValue:t(d).fatty_liver_degree,"onUpdate:modelValue":e[25]||(e[25]=l=>t(d).fatty_liver_degree=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t(Z),l=>(u(),v(D,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"饮食情况"},{default:o(()=>[a(k,{modelValue:t(d).diet_condition,"onUpdate:modelValue":e[26]||(e[26]=l=>t(d).diet_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(G),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"肢体感觉"},{default:o(()=>[a(k,{modelValue:t(d).body_feeling,"onUpdate:modelValue":e[27]||(e[27]=l=>t(d).body_feeling=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(H),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"睡眠情况"},{default:o(()=>[a(k,{modelValue:t(d).sleep_condition,"onUpdate:modelValue":e[28]||(e[28]=l=>t(d).sleep_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(X),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"眼睛情况"},{default:o(()=>[a(k,{modelValue:t(d).eye_condition,"onUpdate:modelValue":e[29]||(e[29]=l=>t(d).eye_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(j),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"头部感觉"},{default:o(()=>[a(k,{modelValue:t(d).head_feeling,"onUpdate:modelValue":e[30]||(e[30]=l=>t(d).head_feeling=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(J),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"出汗情况"},{default:o(()=>[a(k,{modelValue:t(d).sweat_condition,"onUpdate:modelValue":e[31]||(e[31]=l=>t(d).sweat_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(K),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"皮肤情况"},{default:o(()=>[a(k,{modelValue:t(d).skin_condition,"onUpdate:modelValue":e[32]||(e[32]=l=>t(d).skin_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(Q),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"小便情况"},{default:o(()=>[a(k,{modelValue:t(d).urine_condition,"onUpdate:modelValue":e[33]||(e[33]=l=>t(d).urine_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(W),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"大便情况"},{default:o(()=>[a(k,{modelValue:t(d).stool_condition,"onUpdate:modelValue":e[34]||(e[34]=l=>t(d).stool_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(h),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"腰肾情况"},{default:o(()=>[a(k,{modelValue:t(d).kidney_condition,"onUpdate:modelValue":e[35]||(e[35]=l=>t(d).kidney_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(z),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"病情补充",prop:"symptoms"},{default:o(()=>[a(m,{modelValue:t(d).symptoms,"onUpdate:modelValue":e[36]||(e[36]=l=>t(d).symptoms=l),type:"textarea",rows:3,placeholder:"请输入症状"},null,8,["modelValue"])]),_:1})]),_("div",je,[e[62]||(e[62]=_("div",{class:"section-title"},"既往史",-1)),a(n,{label:""},{default:o(()=>[a(k,{modelValue:t(d).past_history,"onUpdate:modelValue":e[37]||(e[37]=l=>t(d).past_history=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(T),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_("div",Je,[e[73]||(e[73]=_("div",{class:"section-title"},"其他病史",-1)),a(n,{label:"外伤史"},{default:o(()=>[a(U,{modelValue:t(d).trauma_history,"onUpdate:modelValue":e[38]||(e[38]=l=>t(d).trauma_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[63]||(e[63]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[64]||(e[64]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"手术史"},{default:o(()=>[a(U,{modelValue:t(d).surgery_history,"onUpdate:modelValue":e[39]||(e[39]=l=>t(d).surgery_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[65]||(e[65]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[66]||(e[66]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"过敏史"},{default:o(()=>[a(U,{modelValue:t(d).allergy_history,"onUpdate:modelValue":e[40]||(e[40]=l=>t(d).allergy_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[67]||(e[67]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[68]||(e[68]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"家族病史"},{default:o(()=>[a(U,{modelValue:t(d).family_history,"onUpdate:modelValue":e[41]||(e[41]=l=>t(d).family_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[69]||(e[69]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[70]||(e[70]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"妊娠哺乳史"},{default:o(()=>[a(U,{modelValue:t(d).pregnancy_history,"onUpdate:modelValue":e[42]||(e[42]=l=>t(d).pregnancy_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[71]||(e[71]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[72]||(e[72]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_("div",Ke,[e[74]||(e[74]=_("div",{class:"section-title"},"诊断详情",-1)),a(n,{label:"舌苔",prop:"tongue_coating"},{default:o(()=>[a(m,{modelValue:t(d).tongue_coating,"onUpdate:modelValue":e[43]||(e[43]=l=>t(d).tongue_coating=l),placeholder:"请输入舌苔情况"},null,8,["modelValue"])]),_:1}),a(n,{label:"脉象",prop:"pulse"},{default:o(()=>[a(m,{modelValue:t(d).pulse,"onUpdate:modelValue":e[44]||(e[44]=l=>t(d).pulse=l),placeholder:"请输入脉象"},null,8,["modelValue"])]),_:1}),a(n,{label:"治则",prop:"treatment_principle"},{default:o(()=>[a(m,{modelValue:t(d).treatment_principle,"onUpdate:modelValue":e[45]||(e[45]=l=>t(d).treatment_principle=l),type:"textarea",rows:3,placeholder:"请输入治则"},null,8,["modelValue"])]),_:1}),a(n,{label:"处方",prop:"prescription"},{default:o(()=>[a(m,{modelValue:t(d).prescription,"onUpdate:modelValue":e[46]||(e[46]=l=>t(d).prescription=l),type:"textarea",rows:3,placeholder:"请输入处方"},null,8,["modelValue"])]),_:1}),a(n,{label:"医嘱",prop:"doctor_advice"},{default:o(()=>[a(m,{modelValue:t(d).doctor_advice,"onUpdate:modelValue":e[47]||(e[47]=l=>t(d).doctor_advice=l),type:"textarea",rows:3,placeholder:"请输入医嘱"},null,8,["modelValue"])]),_:1}),a(n,{label:"备注",prop:"remark"},{default:o(()=>[a(m,{modelValue:t(d).remark,"onUpdate:modelValue":e[48]||(e[48]=l=>t(d).remark=l),type:"textarea",rows:2,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})])]),_:1},8,["model"])]),_("div",Qe,[a(x,{onClick:ee,class:"btn-cancel"},{default:o(()=>[...e[75]||(e[75]=[s("取消",-1)])]),_:1}),a(x,{type:"primary",onClick:ie,loading:t(I),class:"btn-submit"},{default:o(()=>[...e[76]||(e[76]=[s(" 保存 ",-1)])]),_:1},8,["loading"])])])}}}),tl=Me(We,[["__scopeId","data-v-b3c2cdd1"]]);export{tl as default};
+import{o as pe,W as me,Q as _e,ap as fe,bx as be,q as u,r as f,s as _,v as a,D as o,w as ye,u as t,cu as ge,L as s,K as Ve,T as w,b6 as ve,b7 as ce,bc as ke,bo as we,J as Ue,be as xe,bf as Ee,bg as Oe,F as g,G as V,O as v,cA as qe,di as De,bb as Be,b9 as Ce,M as p,p as Se,E as le}from"./.pnpm-BuKxIMgQ.js";import{ab as ae,ac as Ie,ad as Re,ae as Pe,af as Le}from"./tcm-BZvWmp4G.js";import{n as c,j as te,_ as Me}from"./index-BZAvl557.js";const Ne={class:"diagnosis-page"},Fe={class:"page-header"},Te={class:"page-title"},Ye={class:"page-content"},$e={class:"form-section"},Ge={class:"form-section"},Ae={class:"form-section"},He={class:"form-section"},Xe={class:"form-section"},je={class:"form-section"},Je={class:"form-section"},Ke={class:"form-section"},Qe={class:"page-footer"},We=pe({__name:"add",setup(he){const P=me(),oe=_e(),L=p(),S=p("add"),I=p(!1),de=Se(()=>S.value==="add"?"新增诊单":"编辑诊单"),d=p({id:"",patient_id:"",patient_name:"",id_card:"",phone:"",gender:1,age:void 0,diagnosis_date:"",diagnosis_type:"",syndrome_type:"",diabetes_type:"",diabetes_discovery_year:"",local_hospital_diagnosis:[],local_hospital_name:"",marital_status:void 0,height:void 0,weight:void 0,region:"",systolic_pressure:void 0,diastolic_pressure:void 0,fasting_blood_sugar:"",appetite:"",water_intake:"",diet_condition:[],weight_change:"",body_feeling:[],sleep_condition:[],eye_condition:[],head_feeling:[],sweat_condition:[],skin_condition:[],urine_condition:[],stool_condition:[],kidney_condition:[],fatty_liver_degree:"",past_history:[],trauma_history:0,surgery_history:0,allergy_history:0,family_history:0,pregnancy_history:0,symptoms:"",tongue_coating:"",pulse:"",treatment_principle:"",prescription:"",doctor_advice:"",remark:"",current_medications:"",status:1}),ne={patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],id_card:[{validator:(r,e,i)=>{if(!e){i();return}if(!/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e)){i(new Error("身份证号格式不正确"));return}i()},trigger:"blur"}],phone:[{required:!0,validator:(r,e,i)=>{if(!e){i(new Error("请输入手机号"));return}if(!/^1[3-9]\d{9}$/.test(e)){i(new Error("手机号格式不正确"));return}i()},trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],age:[{required:!0,message:"请输入年龄",trigger:"blur"}],diagnosis_type:[{required:!0,message:"请选择诊断类型",trigger:"change"}],syndrome_type:[{required:!0,message:"请选择证型",trigger:"change"}],diabetes_type:[{required:!0,message:"请选择糖尿病期数",trigger:"change"}],local_hospital_name:[{required:!0,message:"请输入当地就诊医院名称",trigger:"blur"}],diabetes_discovery_year:[{max:50,message:"最多50个字符",trigger:"blur"}]},M=p([]),N=p([]),F=p([]),T=p([]),Y=p([]),$=p([]),G=p([]),A=p([]),H=p([]),X=p([]),j=p([]),J=p([]),K=p([]),Q=p([]),W=p([]),h=p([]),z=p([]),Z=p([]),ue=async()=>{try{const[r,e,i,x,m,n,b,U,O,B,E,q,y,k,D,C,l,R]=await Promise.all([c({type:"diagnosis_type"}),c({type:"syndrome_type"}),c({type:"diabetes_type"}),c({type:"past_history"}),c({type:"appetite"}),c({type:"water_intake"}),c({type:"diet_condition"}),c({type:"weight_change"}),c({type:"body_feeling"}),c({type:"sleep_condition"}),c({type:"eye_condition"}),c({type:"head_feeling"}),c({type:"sweat_condition"}),c({type:"skin_condition"}),c({type:"urine_condition"}),c({type:"stool_condition"}),c({type:"kidney_condition"}),c({type:"fatty_liver_degree"})]);M.value=(r==null?void 0:r.diagnosis_type)||[],N.value=(e==null?void 0:e.syndrome_type)||[],F.value=(i==null?void 0:i.diabetes_type)||[],T.value=(x==null?void 0:x.past_history)||[],Y.value=(m==null?void 0:m.appetite)||[],$.value=(n==null?void 0:n.water_intake)||[],G.value=(b==null?void 0:b.diet_condition)||[],A.value=(U==null?void 0:U.weight_change)||[],H.value=(O==null?void 0:O.body_feeling)||[],X.value=(B==null?void 0:B.sleep_condition)||[],j.value=(E==null?void 0:E.eye_condition)||[],J.value=(q==null?void 0:q.head_feeling)||[],K.value=(y==null?void 0:y.sweat_condition)||[],Q.value=(k==null?void 0:k.skin_condition)||[],W.value=(D==null?void 0:D.urine_condition)||[],h.value=(C==null?void 0:C.stool_condition)||[],z.value=(l==null?void 0:l.kidney_condition)||[],Z.value=(R==null?void 0:R.fatty_liver_degree)||[]}catch(r){console.error("获取字典数据失败:",r)}},se=async()=>{if(!(!d.value.phone||!/^1[3-9]\d{9}$/.test(d.value.phone)))try{const r=await Ie({phone:d.value.phone,id:d.value.id||""});r.exists&&le.warning(r.message)}catch(r){console.error("检查手机号失败:",r)}},re=async()=>{if(!(!d.value.id_card||!/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(d.value.id_card)))try{const r=await Re({id_card:d.value.id_card,id:d.value.id||""});r.exists&&le.warning(r.message)}catch(r){console.error("检查身份证号失败:",r)}},ie=async()=>{var r;await((r=L.value)==null?void 0:r.validate()),I.value=!0;try{if(S.value==="add"){const e=await Pe(d.value);if(te.msgSuccess("新增成功"),e&&e.id){S.value="edit",d.value.id=e.id;try{const i=await ae({id:e.id});d.value.patient_id=i.patient_id}catch(i){console.error("获取详情失败:",i)}P.replace({query:{id:e.id}})}}else await Le(d.value),te.msgSuccess("编辑成功")}catch(e){console.error("提交失败:",e)}finally{I.value=!1}},ee=()=>{P.back()};return fe(async()=>{await ue(),setTimeout(()=>{const e=document.querySelector(".el-aside");e&&(e.style.display="none");const i=document.querySelector(".el-main");i&&(i.style.width="100%"(i).style.marginLeft="0");const x=document.querySelector(".el-container");x&&(x.style.width="100%")},100);const r=oe.query.id;if(r){S.value="edit";const e=await ae({id:Number(r)});d.value=e}}),be(()=>{const r=document.querySelector(".el-aside");r&&(r.style.display="");const e=document.querySelector(".el-main");e&&(e.style.width=""(e).style.marginLeft="");const i=document.querySelector(".el-container");i&&(i.style.width="")}),(r,e)=>{const i=ye,x=Ve,m=ce,n=ve,b=we,U=ke,O=Ue,B=xe,E=Oe,q=Ee,y=De,k=qe,D=Be,C=Ce;return u(),f("div",Ne,[_("div",Fe,[a(x,{link:"",onClick:ee,class:"back-btn"},{default:o(()=>[a(i,null,{default:o(()=>[a(t(ge))]),_:1}),e[49]||(e[49]=s(" 返回 ",-1))]),_:1}),_("h1",Te,w(t(de)),1)]),_("div",Ye,[a(C,{ref_key:"formRef",ref:L,model:t(d),rules:ne,"label-width":"auto",class:"diagnosis-form"},{default:o(()=>[_("div",$e,[e[52]||(e[52]=_("div",{class:"section-title"},"基本信息",-1)),a(n,{label:"患者ID"},{default:o(()=>[a(m,{modelValue:t(d).patient_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t(d).patient_id=l),disabled:"",placeholder:"系统自动生成"},null,8,["modelValue"])]),_:1}),a(n,{label:"患者姓名",prop:"patient_name"},{default:o(()=>[a(m,{modelValue:t(d).patient_name,"onUpdate:modelValue":e[1]||(e[1]=l=>t(d).patient_name=l),placeholder:"请输入患者姓名"},null,8,["modelValue"])]),_:1}),a(n,{label:"身份证号",prop:"id_card"},{default:o(()=>[a(m,{modelValue:t(d).id_card,"onUpdate:modelValue":e[2]||(e[2]=l=>t(d).id_card=l),placeholder:"请输入身份证号",maxlength:"18",onBlur:re},null,8,["modelValue"])]),_:1}),a(n,{label:"手机号",prop:"phone"},{default:o(()=>[a(m,{modelValue:t(d).phone,"onUpdate:modelValue":e[3]||(e[3]=l=>t(d).phone=l),placeholder:"请输入手机号",maxlength:"11",onBlur:se},null,8,["modelValue"])]),_:1}),a(n,{label:"性别",prop:"gender"},{default:o(()=>[a(U,{modelValue:t(d).gender,"onUpdate:modelValue":e[4]||(e[4]=l=>t(d).gender=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[50]||(e[50]=[s("男",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[51]||(e[51]=[s("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"年龄",prop:"age"},{default:o(()=>[a(O,{modelValue:t(d).age,"onUpdate:modelValue":e[5]||(e[5]=l=>t(d).age=l),min:0,max:150,placeholder:"请输入年龄",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"诊断日期",prop:"diagnosis_date"},{default:o(()=>[a(B,{modelValue:t(d).diagnosis_date,"onUpdate:modelValue":e[6]||(e[6]=l=>t(d).diagnosis_date=l),type:"date",placeholder:"请选择诊断日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1})]),_("div",Ge,[e[53]||(e[53]=_("div",{class:"section-title"},"生命体征",-1)),a(n,{label:"婚姻状态",prop:"marital_status"},{default:o(()=>[a(q,{modelValue:t(d).marital_status,"onUpdate:modelValue":e[7]||(e[7]=l=>t(d).marital_status=l),placeholder:"请选择婚姻状态",class:"w-full"},{default:o(()=>[a(E,{label:"未婚",value:0}),a(E,{label:"已婚",value:1}),a(E,{label:"离异",value:2})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"身高(cm)",prop:"height"},{default:o(()=>[a(O,{modelValue:t(d).height,"onUpdate:modelValue":e[8]||(e[8]=l=>t(d).height=l),min:0,max:300,placeholder:"请输入身高",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"体重(kg)",prop:"weight"},{default:o(()=>[a(O,{modelValue:t(d).weight,"onUpdate:modelValue":e[9]||(e[9]=l=>t(d).weight=l),min:0,max:500,step:.1,placeholder:"请输入体重",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"地区",prop:"region"},{default:o(()=>[a(m,{modelValue:t(d).region,"onUpdate:modelValue":e[10]||(e[10]=l=>t(d).region=l),placeholder:"请输入地区"},null,8,["modelValue"])]),_:1}),a(n,{label:"收缩压(mmHg)",prop:"systolic_pressure"},{default:o(()=>[a(O,{modelValue:t(d).systolic_pressure,"onUpdate:modelValue":e[11]||(e[11]=l=>t(d).systolic_pressure=l),min:0,max:250,placeholder:"请输入收缩压",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"舒张压(mmHg)",prop:"diastolic_pressure"},{default:o(()=>[a(O,{modelValue:t(d).diastolic_pressure,"onUpdate:modelValue":e[12]||(e[12]=l=>t(d).diastolic_pressure=l),min:0,max:150,placeholder:"请输入舒张压",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"空腹血糖(mmol/L)",prop:"fasting_blood_sugar"},{default:o(()=>[a(m,{modelValue:t(d).fasting_blood_sugar,"onUpdate:modelValue":e[13]||(e[13]=l=>t(d).fasting_blood_sugar=l),placeholder:"请输入空腹血糖,如:8.5 或 8-9",maxlength:"20",class:"w-full"},null,8,["modelValue"])]),_:1})]),_("div",Ae,[e[56]||(e[56]=_("div",{class:"section-title"},"诊断信息",-1)),a(n,{label:"诊断类型",prop:"diagnosis_type"},{default:o(()=>[a(q,{modelValue:t(d).diagnosis_type,"onUpdate:modelValue":e[14]||(e[14]=l=>t(d).diagnosis_type=l),placeholder:"请选择诊断类型",class:"w-full"},{default:o(()=>[(u(!0),f(g,null,V(t(M),l=>(u(),v(E,{key:l.value,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"证型",prop:"syndrome_type"},{default:o(()=>[a(q,{modelValue:t(d).syndrome_type,"onUpdate:modelValue":e[15]||(e[15]=l=>t(d).syndrome_type=l),placeholder:"请选择证型",class:"w-full"},{default:o(()=>[(u(!0),f(g,null,V(t(N),l=>(u(),v(E,{key:l.value,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"糖尿病期数",prop:"diabetes_type"},{default:o(()=>[a(q,{modelValue:t(d).diabetes_type,"onUpdate:modelValue":e[16]||(e[16]=l=>t(d).diabetes_type=l),placeholder:"请选择糖尿病期数",class:"w-full"},{default:o(()=>[(u(!0),f(g,null,V(t(F),l=>(u(),v(E,{key:l.value,label:l.name+(l.remark?" ("+l.remark+")":""),value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"状态",prop:"status"},{default:o(()=>[a(U,{modelValue:t(d).status,"onUpdate:modelValue":e[17]||(e[17]=l=>t(d).status=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[54]||(e[54]=[s("启用",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[55]||(e[55]=[s("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"在用药物",prop:"current_medications"},{default:o(()=>[a(m,{modelValue:t(d).current_medications,"onUpdate:modelValue":e[18]||(e[18]=l=>t(d).current_medications=l),type:"textarea",rows:3,placeholder:"请填写患者当前正在使用的药物(如降压药、降糖药等),多种请换行或顿号分隔",maxlength:"2000","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_("div",He,[e[60]||(e[60]=_("div",{class:"section-title"},"主诉",-1)),a(n,{label:"发现糖尿病就患病史",prop:"diabetes_discovery_year"},{default:o(()=>[a(m,{modelValue:t(d).diabetes_discovery_year,"onUpdate:modelValue":e[19]||(e[19]=l=>t(d).diabetes_discovery_year=l),clearable:"",maxlength:"50","show-word-limit":"",placeholder:"可填数字或文字,如:5、1年、半年",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"当地医院诊断结果"},{default:o(()=>[a(k,{modelValue:t(d).local_hospital_diagnosis,"onUpdate:modelValue":e[20]||(e[20]=l=>t(d).local_hospital_diagnosis=l),class:"checkbox-group"},{default:o(()=>[a(y,{label:"糖尿病"},{default:o(()=>[...e[57]||(e[57]=[s("糖尿病",-1)])]),_:1}),a(y,{label:"高血压"},{default:o(()=>[...e[58]||(e[58]=[s("高血压",-1)])]),_:1}),a(y,{label:"糖尿病高血压"},{default:o(()=>[...e[59]||(e[59]=[s("糖尿病高血压",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"当地就诊医院名称",prop:"local_hospital_name"},{default:o(()=>[a(m,{modelValue:t(d).local_hospital_name,"onUpdate:modelValue":e[21]||(e[21]=l=>t(d).local_hospital_name=l),placeholder:"请输入当地就诊医院名称(不能填写当地、本地、互联网等关键词)"},null,8,["modelValue"])]),_:1})]),_("div",Xe,[e[61]||(e[61]=_("div",{class:"section-title"},"现病史",-1)),a(n,{label:"口腔感觉"},{default:o(()=>[a(U,{modelValue:t(d).appetite,"onUpdate:modelValue":e[22]||(e[22]=l=>t(d).appetite=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t(Y),l=>(u(),v(D,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"每日饮水量"},{default:o(()=>[a(U,{modelValue:t(d).water_intake,"onUpdate:modelValue":e[23]||(e[23]=l=>t(d).water_intake=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t($),l=>(u(),v(D,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"近一个月体重变化"},{default:o(()=>[a(U,{modelValue:t(d).weight_change,"onUpdate:modelValue":e[24]||(e[24]=l=>t(d).weight_change=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t(A),l=>(u(),v(D,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"脂肪肝程度"},{default:o(()=>[a(U,{modelValue:t(d).fatty_liver_degree,"onUpdate:modelValue":e[25]||(e[25]=l=>t(d).fatty_liver_degree=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t(Z),l=>(u(),v(D,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"饮食情况"},{default:o(()=>[a(k,{modelValue:t(d).diet_condition,"onUpdate:modelValue":e[26]||(e[26]=l=>t(d).diet_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(G),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"肢体感觉"},{default:o(()=>[a(k,{modelValue:t(d).body_feeling,"onUpdate:modelValue":e[27]||(e[27]=l=>t(d).body_feeling=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(H),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"睡眠情况"},{default:o(()=>[a(k,{modelValue:t(d).sleep_condition,"onUpdate:modelValue":e[28]||(e[28]=l=>t(d).sleep_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(X),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"眼睛情况"},{default:o(()=>[a(k,{modelValue:t(d).eye_condition,"onUpdate:modelValue":e[29]||(e[29]=l=>t(d).eye_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(j),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"头部感觉"},{default:o(()=>[a(k,{modelValue:t(d).head_feeling,"onUpdate:modelValue":e[30]||(e[30]=l=>t(d).head_feeling=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(J),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"出汗情况"},{default:o(()=>[a(k,{modelValue:t(d).sweat_condition,"onUpdate:modelValue":e[31]||(e[31]=l=>t(d).sweat_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(K),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"皮肤情况"},{default:o(()=>[a(k,{modelValue:t(d).skin_condition,"onUpdate:modelValue":e[32]||(e[32]=l=>t(d).skin_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(Q),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"小便情况"},{default:o(()=>[a(k,{modelValue:t(d).urine_condition,"onUpdate:modelValue":e[33]||(e[33]=l=>t(d).urine_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(W),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"大便情况"},{default:o(()=>[a(k,{modelValue:t(d).stool_condition,"onUpdate:modelValue":e[34]||(e[34]=l=>t(d).stool_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(h),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"腰肾情况"},{default:o(()=>[a(k,{modelValue:t(d).kidney_condition,"onUpdate:modelValue":e[35]||(e[35]=l=>t(d).kidney_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(z),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"病情补充",prop:"symptoms"},{default:o(()=>[a(m,{modelValue:t(d).symptoms,"onUpdate:modelValue":e[36]||(e[36]=l=>t(d).symptoms=l),type:"textarea",rows:3,placeholder:"请输入症状"},null,8,["modelValue"])]),_:1})]),_("div",je,[e[62]||(e[62]=_("div",{class:"section-title"},"既往史",-1)),a(n,{label:""},{default:o(()=>[a(k,{modelValue:t(d).past_history,"onUpdate:modelValue":e[37]||(e[37]=l=>t(d).past_history=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(T),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_("div",Je,[e[73]||(e[73]=_("div",{class:"section-title"},"其他病史",-1)),a(n,{label:"外伤史"},{default:o(()=>[a(U,{modelValue:t(d).trauma_history,"onUpdate:modelValue":e[38]||(e[38]=l=>t(d).trauma_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[63]||(e[63]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[64]||(e[64]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"手术史"},{default:o(()=>[a(U,{modelValue:t(d).surgery_history,"onUpdate:modelValue":e[39]||(e[39]=l=>t(d).surgery_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[65]||(e[65]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[66]||(e[66]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"过敏史"},{default:o(()=>[a(U,{modelValue:t(d).allergy_history,"onUpdate:modelValue":e[40]||(e[40]=l=>t(d).allergy_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[67]||(e[67]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[68]||(e[68]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"家族病史"},{default:o(()=>[a(U,{modelValue:t(d).family_history,"onUpdate:modelValue":e[41]||(e[41]=l=>t(d).family_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[69]||(e[69]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[70]||(e[70]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"妊娠哺乳史"},{default:o(()=>[a(U,{modelValue:t(d).pregnancy_history,"onUpdate:modelValue":e[42]||(e[42]=l=>t(d).pregnancy_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[71]||(e[71]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[72]||(e[72]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_("div",Ke,[e[74]||(e[74]=_("div",{class:"section-title"},"诊断详情",-1)),a(n,{label:"舌苔",prop:"tongue_coating"},{default:o(()=>[a(m,{modelValue:t(d).tongue_coating,"onUpdate:modelValue":e[43]||(e[43]=l=>t(d).tongue_coating=l),placeholder:"请输入舌苔情况"},null,8,["modelValue"])]),_:1}),a(n,{label:"脉象",prop:"pulse"},{default:o(()=>[a(m,{modelValue:t(d).pulse,"onUpdate:modelValue":e[44]||(e[44]=l=>t(d).pulse=l),placeholder:"请输入脉象"},null,8,["modelValue"])]),_:1}),a(n,{label:"治则",prop:"treatment_principle"},{default:o(()=>[a(m,{modelValue:t(d).treatment_principle,"onUpdate:modelValue":e[45]||(e[45]=l=>t(d).treatment_principle=l),type:"textarea",rows:3,placeholder:"请输入治则"},null,8,["modelValue"])]),_:1}),a(n,{label:"处方",prop:"prescription"},{default:o(()=>[a(m,{modelValue:t(d).prescription,"onUpdate:modelValue":e[46]||(e[46]=l=>t(d).prescription=l),type:"textarea",rows:3,placeholder:"请输入处方"},null,8,["modelValue"])]),_:1}),a(n,{label:"医嘱",prop:"doctor_advice"},{default:o(()=>[a(m,{modelValue:t(d).doctor_advice,"onUpdate:modelValue":e[47]||(e[47]=l=>t(d).doctor_advice=l),type:"textarea",rows:3,placeholder:"请输入医嘱"},null,8,["modelValue"])]),_:1}),a(n,{label:"备注",prop:"remark"},{default:o(()=>[a(m,{modelValue:t(d).remark,"onUpdate:modelValue":e[48]||(e[48]=l=>t(d).remark=l),type:"textarea",rows:2,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})])]),_:1},8,["model"])]),_("div",Qe,[a(x,{onClick:ee,class:"btn-cancel"},{default:o(()=>[...e[75]||(e[75]=[s("取消",-1)])]),_:1}),a(x,{type:"primary",onClick:ie,loading:t(I),class:"btn-submit"},{default:o(()=>[...e[76]||(e[76]=[s(" 保存 ",-1)])]),_:1},8,["loading"])])])}}}),tl=Me(We,[["__scopeId","data-v-b3c2cdd1"]]);export{tl as default};
diff --git a/server/public/admin/assets/add-nav-CD63ggNg.js b/server/public/admin/assets/add-nav-CD63ggNg.js
deleted file mode 100644
index ce74a4b23..000000000
--- a/server/public/admin/assets/add-nav-CD63ggNg.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./add-nav.vue_vue_type_script_setup_true_lang-D6sR8PmU.js";import"./.pnpm-BHOjf1ZS.js";import"./index-Btk0rgzN.js";import"./index-B31vLELt.js";import"./picker-CO5ipFSA.js";import"./index-Dt_C33Jx.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./article-DB3929O1.js";import"./usePaging-oaNM6A9T.js";import"./picker-DY0rRn6Q.js";import"./index-Mwguss-B.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";export{o as default};
diff --git a/server/public/admin/assets/add-nav-DlRqAKef.js b/server/public/admin/assets/add-nav-DlRqAKef.js
new file mode 100644
index 000000000..d06c5c650
--- /dev/null
+++ b/server/public/admin/assets/add-nav-DlRqAKef.js
@@ -0,0 +1 @@
+import{_ as o}from"./add-nav.vue_vue_type_script_setup_true_lang-BvrtwrIg.js";import"./.pnpm-BuKxIMgQ.js";import"./index-BYpT7Ezr.js";import"./index-BZAvl557.js";import"./picker-Bb1gdsBd.js";import"./index-BARAiw4K.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./article-CjHzXUSw.js";import"./usePaging-DNtxCypz.js";import"./picker-C-hBLp_q.js";import"./index-DO2zctlZ.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";export{o as default};
diff --git a/server/public/admin/assets/add-nav.vue_vue_type_script_setup_true_lang-D6sR8PmU.js b/server/public/admin/assets/add-nav.vue_vue_type_script_setup_true_lang-BvrtwrIg.js
similarity index 90%
rename from server/public/admin/assets/add-nav.vue_vue_type_script_setup_true_lang-D6sR8PmU.js
rename to server/public/admin/assets/add-nav.vue_vue_type_script_setup_true_lang-BvrtwrIg.js
index c59de637a..0c7f4729f 100644
--- a/server/public/admin/assets/add-nav.vue_vue_type_script_setup_true_lang-D6sR8PmU.js
+++ b/server/public/admin/assets/add-nav.vue_vue_type_script_setup_true_lang-BvrtwrIg.js
@@ -1 +1 @@
-import{o as E,q as p,r as C,s as l,v as a,u as c,bQ as B,C as N,D as d,O as $,b7 as z,b6 as D,I,K as A,L,p as R}from"./.pnpm-BHOjf1ZS.js";import{_ as j}from"./index-Btk0rgzN.js";import{_ as q}from"./picker-CO5ipFSA.js";import{_ as F}from"./picker-DY0rRn6Q.js";import{c as K,j as r}from"./index-B31vLELt.js";const O={class:"bg-fill-light flex items-center w-full p-4 mb-4"},P={class:"upload-btn w-[60px] h-[60px]"},Q={class:"ml-3 flex-1"},S={class:"flex items-center"},T={class:"flex items-center mt-[18px]"},G={class:"flex-1 flex items-center"},H={class:"drag-move cursor-move ml-auto"},Z=E({__name:"add-nav",props:{modelValue:{type:Array,default:()=>[]},max:{type:Number,default:100},min:{type:Number,default:1}},emits:["update:modelValue"],setup(_,{emit:f}){const t=_,V=f,m=R({get(){return t.modelValue},set(s){V("update:modelValue",s)}}),x=()=>{var s;((s=t.modelValue)==null?void 0:s.length){var e;if(((e=t.modelValue)==null?void 0:e.length)<=t.min)return r.msgError(`最少保留${t.min}个`);m.value.splice(s,1)};return(s,e)=>{const u=K,g=F,b=z,h=q,k=I,w=D,y=j,U=A;return p(),C("div",null,[l("div",null,[a(c(B),{class:"draggable",modelValue:c(m),"onUpdate:modelValue":e[0]||(e[0]=o=>N(m)?m.value=o:null),animation:"300",handle:".drag-move","item-key":"index"},{item:d(({element:o,index:i})=>[(p(),$(y,{class:"w-[467px]",key:i,onClose:n=>v(i)},{default:d(()=>[l("div",O,[a(g,{modelValue:o.image,"onUpdate:modelValue":n=>o.image=n,"upload-class":"bg-body",size:"60px","exclude-domain":""},{upload:d(()=>[l("div",P,[a(u,{name:"el-icon-Plus",size:20})])]),_:1},8,["modelValue","onUpdate:modelValue"]),l("div",Q,[l("div",S,[e[1]||(e[1]=l("span",{class:"text-tx-regular flex-none mr-3"},"名称",-1)),a(b,{modelValue:o.name,"onUpdate:modelValue":n=>o.name=n,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),l("div",T,[e[2]||(e[2]=l("span",{class:"text-tx-regular flex-none mr-3"},"链接",-1)),a(h,{modelValue:o.link,"onUpdate:modelValue":n=>o.link=n},null,8,["modelValue","onUpdate:modelValue"])]),a(w,{label:"是否显示",class:"mt-[18px]"},{default:d(()=>[l("div",G,[a(k,{modelValue:o.is_show,"onUpdate:modelValue":n=>o.is_show=n,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),l("div",H,[a(u,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])]),l("div",null,[a(U,{type:"primary",onClick:x},{default:d(()=>[...e[3]||(e[3]=[L("添加",-1)])]),_:1})])])}}});export{Z as _};
+import{o as E,q as p,r as C,s as l,v as a,u as c,bQ as B,C as N,D as d,O as $,b7 as z,b6 as D,I,K as A,L,p as R}from"./.pnpm-BuKxIMgQ.js";import{_ as j}from"./index-BYpT7Ezr.js";import{_ as q}from"./picker-Bb1gdsBd.js";import{_ as F}from"./picker-C-hBLp_q.js";import{c as K,j as r}from"./index-BZAvl557.js";const O={class:"bg-fill-light flex items-center w-full p-4 mb-4"},P={class:"upload-btn w-[60px] h-[60px]"},Q={class:"ml-3 flex-1"},S={class:"flex items-center"},T={class:"flex items-center mt-[18px]"},G={class:"flex-1 flex items-center"},H={class:"drag-move cursor-move ml-auto"},Z=E({__name:"add-nav",props:{modelValue:{type:Array,default:()=>[]},max:{type:Number,default:100},min:{type:Number,default:1}},emits:["update:modelValue"],setup(_,{emit:f}){const t=_,V=f,m=R({get(){return t.modelValue},set(s){V("update:modelValue",s)}}),x=()=>{var s;((s=t.modelValue)==null?void 0:s.length){var e;if(((e=t.modelValue)==null?void 0:e.length)<=t.min)return r.msgError(`最少保留${t.min}个`);m.value.splice(s,1)};return(s,e)=>{const u=K,g=F,b=z,h=q,k=I,w=D,y=j,U=A;return p(),C("div",null,[l("div",null,[a(c(B),{class:"draggable",modelValue:c(m),"onUpdate:modelValue":e[0]||(e[0]=o=>N(m)?m.value=o:null),animation:"300",handle:".drag-move","item-key":"index"},{item:d(({element:o,index:i})=>[(p(),$(y,{class:"w-[467px]",key:i,onClose:n=>v(i)},{default:d(()=>[l("div",O,[a(g,{modelValue:o.image,"onUpdate:modelValue":n=>o.image=n,"upload-class":"bg-body",size:"60px","exclude-domain":""},{upload:d(()=>[l("div",P,[a(u,{name:"el-icon-Plus",size:20})])]),_:1},8,["modelValue","onUpdate:modelValue"]),l("div",Q,[l("div",S,[e[1]||(e[1]=l("span",{class:"text-tx-regular flex-none mr-3"},"名称",-1)),a(b,{modelValue:o.name,"onUpdate:modelValue":n=>o.name=n,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),l("div",T,[e[2]||(e[2]=l("span",{class:"text-tx-regular flex-none mr-3"},"链接",-1)),a(h,{modelValue:o.link,"onUpdate:modelValue":n=>o.link=n},null,8,["modelValue","onUpdate:modelValue"])]),a(w,{label:"是否显示",class:"mt-[18px]"},{default:d(()=>[l("div",G,[a(k,{modelValue:o.is_show,"onUpdate:modelValue":n=>o.is_show=n,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),l("div",H,[a(u,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])]),l("div",null,[a(U,{type:"primary",onClick:x},{default:d(()=>[...e[3]||(e[3]=[L("添加",-1)])]),_:1})])])}}});export{Z as _};
diff --git a/server/public/admin/assets/admin-MPtc__0S.js b/server/public/admin/assets/admin-BdieSbRQ.js
similarity index 84%
rename from server/public/admin/assets/admin-MPtc__0S.js
rename to server/public/admin/assets/admin-BdieSbRQ.js
index dd221eab9..081e624b9 100644
--- a/server/public/admin/assets/admin-MPtc__0S.js
+++ b/server/public/admin/assets/admin-BdieSbRQ.js
@@ -1 +1 @@
-import{r as n}from"./index-B31vLELt.js";function e(t){return n.get({url:"/auth.admin/lists",params:t},{ignoreCancelToken:!0})}function i(t){return n.post({url:"/auth.admin/add",params:t})}function r(t){return n.post({url:"/auth.admin/edit",params:t})}function u(t){return n.post({url:"/auth.admin/delete",params:t})}function d(t){return n.get({url:"/auth.admin/detail",params:t})}export{e as a,r as b,u as c,i as d,d as e};
+import{r as n}from"./index-BZAvl557.js";function e(t){return n.get({url:"/auth.admin/lists",params:t},{ignoreCancelToken:!0})}function i(t){return n.post({url:"/auth.admin/add",params:t})}function r(t){return n.post({url:"/auth.admin/edit",params:t})}function u(t){return n.post({url:"/auth.admin/delete",params:t})}function d(t){return n.get({url:"/auth.admin/detail",params:t})}export{e as a,r as b,u as c,i as d,d as e};
diff --git a/server/public/admin/assets/ai_mcp-DXfjAR7k.js b/server/public/admin/assets/ai_mcp-DXfjAR7k.js
new file mode 100644
index 000000000..f17c33b11
--- /dev/null
+++ b/server/public/admin/assets/ai_mcp-DXfjAR7k.js
@@ -0,0 +1 @@
+import{r}from"./index-BZAvl557.js";const a={urlPrefix:"mcp"};function s(t){return r.get({url:"/admin/grants",params:t},a)}function i(t){return r.post({url:"/admin/revoke",params:t},a)}function e(t){return r.get({url:"/admin/logs",params:t},a)}function o(t){return r.get({url:"/admin/catalog",params:t},a)}export{e as a,o as b,s as c,i as d};
diff --git a/server/public/admin/assets/appointment-R8XEi85p.js b/server/public/admin/assets/appointment-HiGTpo9o.js
similarity index 66%
rename from server/public/admin/assets/appointment-R8XEi85p.js
rename to server/public/admin/assets/appointment-HiGTpo9o.js
index ed7523956..bd2612a41 100644
--- a/server/public/admin/assets/appointment-R8XEi85p.js
+++ b/server/public/admin/assets/appointment-HiGTpo9o.js
@@ -1 +1 @@
-import{o as Se,q as d,O as D,D as s,ac as Te,r as k,bh as Ve,P as R,v as i,b9 as we,b6 as Ye,s as y,T as w,bc as Ce,bf as Ee,L as h,bm as Me,F as x,G as N,bn as xe,b7 as Ne,bB as Be,K as Ie,u as Ae,by as Le,ae as O,bi as Re,B as Ue,M as p,ba as P,p as S,n as We}from"./.pnpm-BHOjf1ZS.js";import{d as v,i as $e}from"./dayjs-CF5xpNFg.js";import{g as ze}from"./tcm-BkYsBTA3.js";import{n as qe,j as c,_ as Fe}from"./index-B31vLELt.js";import{a as j,r as He,g as Oe,o as Pe}from"./doctor-CI72mqZm.js";import{N as je}from"./first_visit-ClR5pGNH.js";const Ge={class:"text-gray-500"},Qe={class:"doctor-list"},Ke={key:2,class:"appointment-time-container"},Je={class:"date-selector"},Xe={key:0,class:"time-slots-container"},Ze={class:"time-slots-header"},et={class:"time-slots-grid"},tt=["onClick"],at={class:"slot-time"},nt={class:"drawer-footer"},lt=Se({__name:"appointment",props:{apiScene:{default:"default"}},emits:["success"],setup(G,{expose:Q,emit:K}){v.extend($e);const J=G,Y=p(!1),T=p(!1),B=p(!1),I=p(!1),U=p([]),f=p([]),E=p(""),u=p(0),m=p([]),C=p([]),V=p(!1),_=P({id:0,name:"",gender:"",age:0}),a=P({appointmentMethod:"time",appointmentType:"video",patientId:0,date:"",appointmentTime:"",remark:"",channel_source:"",channel_source_detail:""}),X=new Set(["自媒体3Q","自媒体3H","自媒体2H","自媒体2Q"]);function W(e){return X.has(String(e??"").trim())}const Z=S(()=>{const e=a.channel_source;if(e===""||e==null)return"";const t=C.value.find(n=>String(n.value)===String(e));return t?String(t.name??"").trim():""}),A=S(()=>W(Z.value)),ee=e=>{const t=C.value.find(o=>String(o.value)===String(e)),n=t?String(t.name??"").trim():"";W(n)||(a.channel_source_detail="")},te=S(()=>{if(!u.value||m.value.length===0)return[];const e=[],t=["日","一","二","三","四","五","六"],n=v().startOf("day");for(const o of m.value){const r=v(o);if(r.isBefore(n))continue;const g=`${r.format("MM月DD日")} (${t[r.day()]})`;e.push({date:o,label:g})}return e}),ae=S(()=>{if(!a.date||f.value.length===0)return[];const e=v().format("YYYY-MM-DD");if(!(a.date===e))return f.value;const n=v();return f.value.map(o=>{const r=v(`${a.date} ${o.time}`);return r.isBefore(n)||r.isSame(n,"minute")?{...o,available:!1}:o})}),ne=()=>v().format("YYYY-MM-DD"),L=S(()=>a.date===ne()),le=S(()=>V.value?L.value?"该患者今日已有挂号(已预约或已过号),不能重复预约今天,请改选其他日期。":"该患者今日已有挂号记录;可为患者预约其他日期的时段。":""),$=S(()=>V.value&&L.value),oe=S(()=>!$.value&&u.value&&a.date&&a.appointmentTime&&!!a.channel_source&&(!A.value||a.channel_source_detail.trim()!=="")),se=K,ie=async e=>{Y.value=!0,_.id=e.patient_id||e.id,_.name=e.patient_name||e.name,_.gender=e.gender_desc||e.gender,_.age=e.age||0,a.appointmentMethod="time",a.appointmentType="video",a.patientId=_.id,u.value=0,a.date="",a.appointmentTime="",a.remark="",a.channel_source="",a.channel_source_detail="",f.value=[],m.value=[],E.value="",V.value=!1,await de(),await ce(),await ue(),await re()},re=async()=>{V.value=!1;const e=_.id;if(!e)return;const t=v().format("YYYY-MM-DD");try{const n=await j({patient_id:e,start_date:t,end_date:t,page_no:1,page_size:50}),r=((n==null?void 0:n.lists)||[]).find(g=>{const b=Number(g.status);return b===1||b===4});V.value=!!r}catch(n){console.error("检查今日挂号状态失败:",n)}},ue=async()=>{try{const e=await j({patient_id:_.id,status:3,page_no:1,page_size:1});if(e!=null&&e.lists&&e.lists.length>0){const t=e.lists[0];t.appointment_date&&t.appointment_time?E.value=`${t.appointment_date} ${t.appointment_time}`:t.appointment_date&&(E.value=t.appointment_date)}}catch(e){console.error("加载就诊记录失败:",e)}},de=async()=>{try{const e=await qe({type:"channels"}),t=((e==null?void 0:e.channels)||[]).filter(n=>n.status!==0);t.sort((n,o)=>{const r=Number((o==null?void 0:o.sort)??0)-Number((n==null?void 0:n.sort)??0);return r!==0?r:Number((o==null?void 0:o.id)??0)-Number((n==null?void 0:n.id)??0)}),C.value=t.map(n=>({...n,value:(n==null?void 0:n.value)!=null&&n.value!==""?String(n.value):""}))}catch(e){console.error("加载渠道来源失败:",e),C.value=[]}},ce=async()=>{try{T.value=!0;const e=await ze();U.value=e||[]}catch(e){console.error("加载医生列表失败:",e),c.msgError("加载医生列表失败")}finally{T.value=!1}},me=()=>{u.value=0,a.date="",a.appointmentTime="",f.value=[]},pe=async()=>{a.appointmentTime="",a.date="",f.value=[],m.value=[],u.value&&await ve()},ve=async()=>{if(u.value)try{T.value=!0;const e=v().format("YYYY-MM-DD"),t=v().add(6,"day").format("YYYY-MM-DD"),n=await He({doctor_id:u.value,start_date:e,end_date:t,status:1});if(n!=null&&n.lists&&n.lists.length>0){if(m.value=[...new Set(n.lists.map(o=>o.date))],m.value.sort(),await We(),m.value.length>0){const o=v().format("YYYY-MM-DD");let r=m.value.includes(o)?o:m.value[0];V.value&&r===o&&(r=m.value.find(b=>b>o)??m.value.find(b=>b!==o)??r),z(r)}}else m.value=[],c.msgWarning("该医生暂无排班")}catch(e){console.error("加载医生排班失败:",e),c.msgError("加载医生排班失败"),m.value=[]}finally{T.value=!1}},z=e=>{a.date=e,a.appointmentTime="",u.value&&q()},q=async()=>{if(!(!u.value||!a.date))try{T.value=!0;const e=await Oe({doctor_id:u.value,appointment_date:a.date,period:"all"});console.log("时间段数据:",e),f.value=((e==null?void 0:e.slots)||[]).map(t=>({time:t.time,available:t.available,quota:t.available?1:0})),console.log("处理后的时间段:",f.value)}catch(e){console.error("加载时间段失败:",e),c.msgError("加载时间段失败"),f.value=[]}finally{T.value=!1}},fe=e=>{if(!e.available){c.msgWarning("该时间段不可预约");return}a.appointmentTime=e.time},_e=async()=>{if(!(!u.value||!a.date))try{I.value=!0;const e=a.appointmentTime;if(a.appointmentTime="",await q(),e){const t=f.value.find(n=>n.time===e);t&&t.available&&(a.appointmentTime=e)}c.msgSuccess("刷新成功")}catch(e){console.error("刷新失败:",e),c.msgError("刷新失败,请重试")}finally{I.value=!1}},ge=async()=>{if(!u.value){c.msgWarning("请选择医生");return}if(!a.date){c.msgWarning("请选择日期");return}if(!a.appointmentTime){c.msgWarning("请选择预约时间");return}if(!a.channel_source){c.msgWarning("请选择渠道来源");return}if(A.value&&!a.channel_source_detail.trim()){c.msgWarning("请填写自媒体渠道补充信息");return}if($.value){c.msgWarning("该患者今日已有挂号(已预约或已过号),不能重复预约今天,请改选其他日期。");return}try{B.value=!0;const e={patient_id:_.id,doctor_id:u.value,appointment_date:a.date,period:"all",appointment_time:a.appointmentTime,appointment_type:a.appointmentType,remark:a.remark,channel_source:String(a.channel_source??""),channel_source_detail:a.channel_source_detail.trim()};console.log("提交预约参数:",e),J.apiScene==="my_patient"?await je(e):await Pe(e),c.msgSuccess("预约成功"),Y.value=!1,se("success")}catch(e){console.error("预约失败:",e),c.msgError("预约失败")}finally{B.value=!1}};return Q({open:ie}),(e,t)=>{const n=Ve,o=Ye,r=Ee,g=Ce,b=xe,ye=Me,F=Ne,H=Be,M=Ie,he=we,be=Ue,De=Re;return d(),D(be,{modelValue:Y.value,"onUpdate:modelValue":t[8]||(t[8]=l=>Y.value=l),title:"预约问诊",direction:"rtl",size:"60%","close-on-click-modal":!1,"z-index":2e3},{footer:s(()=>[y("div",nt,[i(M,{onClick:t[7]||(t[7]=l=>Y.value=!1)},{default:s(()=>[...t[14]||(t[14]=[h("取消",-1)])]),_:1}),i(M,{type:"primary",onClick:ge,loading:B.value,disabled:!oe.value},{default:s(()=>[...t[15]||(t[15]=[h(" 确定 ",-1)])]),_:1},8,["loading","disabled"])])]),default:s(()=>[Te((d(),k("div",null,[V.value?(d(),D(n,{key:0,type:L.value?"warning":"info",closable:!1,"show-icon":"",class:"today-block-alert",title:le.value},null,8,["type","title"])):R("",!0),i(he,{model:a,"label-width":"100px",class:"appointment-form"},{default:s(()=>[i(o,{label:"上次就诊:"},{default:s(()=>[y("span",Ge,w(E.value||"无就诊记录"),1)]),_:1}),i(o,{label:"预约方式:"},{default:s(()=>[i(g,{modelValue:a.appointmentMethod,"onUpdate:modelValue":t[0]||(t[0]=l=>a.appointmentMethod=l),onChange:me},{default:s(()=>[i(r,{value:"time"},{default:s(()=>[...t[9]||(t[9]=[h("选择时段预约有专医生",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),i(o,{label:"挂号类型:"},{default:s(()=>[i(g,{modelValue:a.appointmentType,"onUpdate:modelValue":t[1]||(t[1]=l=>a.appointmentType=l)},{default:s(()=>[i(r,{value:"video"},{default:s(()=>[...t[10]||(t[10]=[h("视频问诊",-1)])]),_:1}),i(r,{value:"text"},{default:s(()=>[...t[11]||(t[11]=[h("图文问诊",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),i(o,{label:"选择患者:"},{default:s(()=>[i(g,{modelValue:a.patientId,"onUpdate:modelValue":t[2]||(t[2]=l=>a.patientId=l)},{default:s(()=>[i(r,{value:_.id},{default:s(()=>[h(w(_.name),1)]),_:1},8,["value"])]),_:1},8,["modelValue"])]),_:1}),i(o,{label:"渠道来源:",required:""},{default:s(()=>[i(ye,{modelValue:a.channel_source,"onUpdate:modelValue":t[3]||(t[3]=l=>a.channel_source=l),placeholder:"请选择渠道来源",class:"channel-source-select",onChange:ee},{default:s(()=>[(d(!0),k(x,null,N(C.value,l=>(d(),D(b,{key:String(l.value),label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),A.value?(d(),D(o,{key:0,label:"自媒体补充:",required:""},{default:s(()=>[i(F,{modelValue:a.channel_source_detail,"onUpdate:modelValue":t[4]||(t[4]=l=>a.channel_source_detail=l),clearable:"",maxlength:"128","show-word-limit":"",placeholder:"请输入自媒体相关补充内容",class:"channel-source-select"},null,8,["modelValue"])]),_:1})):R("",!0),i(o,{label:"预约医生:"},{default:s(()=>[y("div",Qe,[i(g,{modelValue:u.value,"onUpdate:modelValue":t[5]||(t[5]=l=>u.value=l),onChange:pe},{default:s(()=>[(d(!0),k(x,null,N(U.value,l=>(d(),D(r,{key:l.id,value:l.id,class:"doctor-radio"},{default:s(()=>[h(w(l.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])]),_:1}),i(o,{label:"预约时间:"},{default:s(()=>[u.value?u.value&&m.value.length===0?(d(),D(H,{key:1,description:"该医生暂无排班","image-size":80})):(d(),k("div",Ke,[y("div",Je,[(d(!0),k(x,null,N(te.value,l=>(d(),D(M,{key:l.date,type:a.date===l.date?"primary":"",onClick:ke=>z(l.date),class:"date-button"},{default:s(()=>[h(w(l.label),1)]),_:2},1032,["type","onClick"]))),128))]),a.date?(d(),k("div",Xe,[y("div",Ze,[t[13]||(t[13]=y("span",{class:"header-title"},"可预约时段",-1)),i(M,{text:"",type:"primary",size:"small",loading:I.value,onClick:_e},{icon:s(()=>[i(Ae(Le))]),default:s(()=>[t[12]||(t[12]=h(" 刷新 ",-1))]),_:1},8,["loading"])]),y("div",et,[(d(!0),k(x,null,N(ae.value,l=>(d(),k("div",{key:l.time,class:O(["time-slot-item",{available:l.available,unavailable:!l.available,selected:a.appointmentTime===l.time}]),onClick:ke=>fe(l)},[y("div",at,w(l.time),1),y("div",{class:O(["slot-status",{"status-available":l.available}])},w(l.available?"可约":"已约"),3)],10,tt))),128))])])):R("",!0)])):(d(),D(H,{key:0,description:"请先选择医生","image-size":80}))]),_:1}),i(o,{label:"备注:"},{default:s(()=>[i(F,{modelValue:a.remark,"onUpdate:modelValue":t[6]||(t[6]=l=>a.remark=l),type:"textarea",rows:2,placeholder:"请输入备注信息"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])),[[De,T.value]])]),_:1},8,["modelValue"])}}}),ct=Fe(lt,[["__scopeId","data-v-504aaeec"]]);export{ct as default};
+import{o as Se,q as d,O as D,D as s,ac as Te,r as k,bm as Ve,P as R,v as i,b9 as we,b6 as Ye,s as y,T as w,bc as Ce,bo as Ee,L as h,bf as Me,F as x,G as N,bg as xe,b7 as Ne,bB as Be,K as Ie,u as Ae,by as Le,ae as O,bl as Re,B as Ue,M as p,ba as P,p as S,n as We}from"./.pnpm-BuKxIMgQ.js";import{d as v,i as $e}from"./dayjs-7f8aMLm8.js";import{g as ze}from"./tcm-BZvWmp4G.js";import{n as qe,j as c,_ as Fe}from"./index-BZAvl557.js";import{a as j,r as He,g as Oe,o as Pe}from"./doctor-DlXZd1P5.js";import{N as je}from"./first_visit-Ciw6inl9.js";const Ge={class:"text-gray-500"},Qe={class:"doctor-list"},Ke={key:2,class:"appointment-time-container"},Je={class:"date-selector"},Xe={key:0,class:"time-slots-container"},Ze={class:"time-slots-header"},et={class:"time-slots-grid"},tt=["onClick"],at={class:"slot-time"},lt={class:"drawer-footer"},nt=Se({__name:"appointment",props:{apiScene:{default:"default"}},emits:["success"],setup(G,{expose:Q,emit:K}){v.extend($e);const J=G,Y=p(!1),T=p(!1),B=p(!1),I=p(!1),U=p([]),f=p([]),E=p(""),u=p(0),m=p([]),C=p([]),V=p(!1),_=P({id:0,name:"",gender:"",age:0}),a=P({appointmentMethod:"time",appointmentType:"video",patientId:0,date:"",appointmentTime:"",remark:"",channel_source:"",channel_source_detail:""}),X=new Set(["自媒体3Q","自媒体3H","自媒体2H","自媒体2Q"]);function W(e){return X.has(String(e??"").trim())}const Z=S(()=>{const e=a.channel_source;if(e===""||e==null)return"";const t=C.value.find(l=>String(l.value)===String(e));return t?String(t.name??"").trim():""}),A=S(()=>W(Z.value)),ee=e=>{const t=C.value.find(o=>String(o.value)===String(e)),l=t?String(t.name??"").trim():"";W(l)||(a.channel_source_detail="")},te=S(()=>{if(!u.value||m.value.length===0)return[];const e=[],t=["日","一","二","三","四","五","六"],l=v().startOf("day");for(const o of m.value){const r=v(o);if(r.isBefore(l))continue;const g=`${r.format("MM月DD日")} (${t[r.day()]})`;e.push({date:o,label:g})}return e}),ae=S(()=>{if(!a.date||f.value.length===0)return[];const e=v().format("YYYY-MM-DD");if(!(a.date===e))return f.value;const l=v();return f.value.map(o=>{const r=v(`${a.date} ${o.time}`);return r.isBefore(l)||r.isSame(l,"minute")?{...o,available:!1}:o})}),le=()=>v().format("YYYY-MM-DD"),L=S(()=>a.date===le()),ne=S(()=>V.value?L.value?"该患者今日已有挂号(已预约或已过号),不能重复预约今天,请改选其他日期。":"该患者今日已有挂号记录;可为患者预约其他日期的时段。":""),$=S(()=>V.value&&L.value),oe=S(()=>!$.value&&u.value&&a.date&&a.appointmentTime&&!!a.channel_source&&(!A.value||a.channel_source_detail.trim()!=="")),se=K,ie=async e=>{Y.value=!0,_.id=e.patient_id||e.id,_.name=e.patient_name||e.name,_.gender=e.gender_desc||e.gender,_.age=e.age||0,a.appointmentMethod="time",a.appointmentType="video",a.patientId=_.id,u.value=0,a.date="",a.appointmentTime="",a.remark="",a.channel_source="",a.channel_source_detail="",f.value=[],m.value=[],E.value="",V.value=!1,await de(),await ce(),await ue(),await re()},re=async()=>{V.value=!1;const e=_.id;if(!e)return;const t=v().format("YYYY-MM-DD");try{const l=await j({patient_id:e,start_date:t,end_date:t,page_no:1,page_size:50}),r=((l==null?void 0:l.lists)||[]).find(g=>{const b=Number(g.status);return b===1||b===4});V.value=!!r}catch(l){console.error("检查今日挂号状态失败:",l)}},ue=async()=>{try{const e=await j({patient_id:_.id,status:3,page_no:1,page_size:1});if(e!=null&&e.lists&&e.lists.length>0){const t=e.lists[0];t.appointment_date&&t.appointment_time?E.value=`${t.appointment_date} ${t.appointment_time}`:t.appointment_date&&(E.value=t.appointment_date)}}catch(e){console.error("加载就诊记录失败:",e)}},de=async()=>{try{const e=await qe({type:"channels"}),t=((e==null?void 0:e.channels)||[]).filter(l=>l.status!==0);t.sort((l,o)=>{const r=Number((o==null?void 0:o.sort)??0)-Number((l==null?void 0:l.sort)??0);return r!==0?r:Number((o==null?void 0:o.id)??0)-Number((l==null?void 0:l.id)??0)}),C.value=t.map(l=>({...l,value:(l==null?void 0:l.value)!=null&&l.value!==""?String(l.value):""}))}catch(e){console.error("加载渠道来源失败:",e),C.value=[]}},ce=async()=>{try{T.value=!0;const e=await ze();U.value=e||[]}catch(e){console.error("加载医生列表失败:",e),c.msgError("加载医生列表失败")}finally{T.value=!1}},me=()=>{u.value=0,a.date="",a.appointmentTime="",f.value=[]},pe=async()=>{a.appointmentTime="",a.date="",f.value=[],m.value=[],u.value&&await ve()},ve=async()=>{if(u.value)try{T.value=!0;const e=v().format("YYYY-MM-DD"),t=v().add(6,"day").format("YYYY-MM-DD"),l=await He({doctor_id:u.value,start_date:e,end_date:t,status:1});if(l!=null&&l.lists&&l.lists.length>0){if(m.value=[...new Set(l.lists.map(o=>o.date))],m.value.sort(),await We(),m.value.length>0){const o=v().format("YYYY-MM-DD");let r=m.value.includes(o)?o:m.value[0];V.value&&r===o&&(r=m.value.find(b=>b>o)??m.value.find(b=>b!==o)??r),z(r)}}else m.value=[],c.msgWarning("该医生暂无排班")}catch(e){console.error("加载医生排班失败:",e),c.msgError("加载医生排班失败"),m.value=[]}finally{T.value=!1}},z=e=>{a.date=e,a.appointmentTime="",u.value&&q()},q=async()=>{if(!(!u.value||!a.date))try{T.value=!0;const e=await Oe({doctor_id:u.value,appointment_date:a.date,period:"all"});console.log("时间段数据:",e),f.value=((e==null?void 0:e.slots)||[]).map(t=>({time:t.time,available:t.available,quota:t.available?1:0})),console.log("处理后的时间段:",f.value)}catch(e){console.error("加载时间段失败:",e),c.msgError("加载时间段失败"),f.value=[]}finally{T.value=!1}},fe=e=>{if(!e.available){c.msgWarning("该时间段不可预约");return}a.appointmentTime=e.time},_e=async()=>{if(!(!u.value||!a.date))try{I.value=!0;const e=a.appointmentTime;if(a.appointmentTime="",await q(),e){const t=f.value.find(l=>l.time===e);t&&t.available&&(a.appointmentTime=e)}c.msgSuccess("刷新成功")}catch(e){console.error("刷新失败:",e),c.msgError("刷新失败,请重试")}finally{I.value=!1}},ge=async()=>{if(!u.value){c.msgWarning("请选择医生");return}if(!a.date){c.msgWarning("请选择日期");return}if(!a.appointmentTime){c.msgWarning("请选择预约时间");return}if(!a.channel_source){c.msgWarning("请选择渠道来源");return}if(A.value&&!a.channel_source_detail.trim()){c.msgWarning("请填写自媒体渠道补充信息");return}if($.value){c.msgWarning("该患者今日已有挂号(已预约或已过号),不能重复预约今天,请改选其他日期。");return}try{B.value=!0;const e={patient_id:_.id,doctor_id:u.value,appointment_date:a.date,period:"all",appointment_time:a.appointmentTime,appointment_type:a.appointmentType,remark:a.remark,channel_source:String(a.channel_source??""),channel_source_detail:a.channel_source_detail.trim()};console.log("提交预约参数:",e),J.apiScene==="my_patient"?await je(e):await Pe(e),c.msgSuccess("预约成功"),Y.value=!1,se("success")}catch(e){console.error("预约失败:",e),c.msgError("预约失败")}finally{B.value=!1}};return Q({open:ie}),(e,t)=>{const l=Ve,o=Ye,r=Ee,g=Ce,b=xe,ye=Me,F=Ne,H=Be,M=Ie,he=we,be=Ue,De=Re;return d(),D(be,{modelValue:Y.value,"onUpdate:modelValue":t[8]||(t[8]=n=>Y.value=n),title:"预约问诊",direction:"rtl",size:"60%","close-on-click-modal":!1,"z-index":2e3},{footer:s(()=>[y("div",lt,[i(M,{onClick:t[7]||(t[7]=n=>Y.value=!1)},{default:s(()=>[...t[14]||(t[14]=[h("取消",-1)])]),_:1}),i(M,{type:"primary",onClick:ge,loading:B.value,disabled:!oe.value},{default:s(()=>[...t[15]||(t[15]=[h(" 确定 ",-1)])]),_:1},8,["loading","disabled"])])]),default:s(()=>[Te((d(),k("div",null,[V.value?(d(),D(l,{key:0,type:L.value?"warning":"info",closable:!1,"show-icon":"",class:"today-block-alert",title:ne.value},null,8,["type","title"])):R("",!0),i(he,{model:a,"label-width":"100px",class:"appointment-form"},{default:s(()=>[i(o,{label:"上次就诊:"},{default:s(()=>[y("span",Ge,w(E.value||"无就诊记录"),1)]),_:1}),i(o,{label:"预约方式:"},{default:s(()=>[i(g,{modelValue:a.appointmentMethod,"onUpdate:modelValue":t[0]||(t[0]=n=>a.appointmentMethod=n),onChange:me},{default:s(()=>[i(r,{value:"time"},{default:s(()=>[...t[9]||(t[9]=[h("选择时段预约有专医生",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),i(o,{label:"挂号类型:"},{default:s(()=>[i(g,{modelValue:a.appointmentType,"onUpdate:modelValue":t[1]||(t[1]=n=>a.appointmentType=n)},{default:s(()=>[i(r,{value:"video"},{default:s(()=>[...t[10]||(t[10]=[h("视频问诊",-1)])]),_:1}),i(r,{value:"text"},{default:s(()=>[...t[11]||(t[11]=[h("图文问诊",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),i(o,{label:"选择患者:"},{default:s(()=>[i(g,{modelValue:a.patientId,"onUpdate:modelValue":t[2]||(t[2]=n=>a.patientId=n)},{default:s(()=>[i(r,{value:_.id},{default:s(()=>[h(w(_.name),1)]),_:1},8,["value"])]),_:1},8,["modelValue"])]),_:1}),i(o,{label:"渠道来源:",required:""},{default:s(()=>[i(ye,{modelValue:a.channel_source,"onUpdate:modelValue":t[3]||(t[3]=n=>a.channel_source=n),placeholder:"请选择渠道来源",class:"channel-source-select",onChange:ee},{default:s(()=>[(d(!0),k(x,null,N(C.value,n=>(d(),D(b,{key:String(n.value),label:n.name,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),A.value?(d(),D(o,{key:0,label:"自媒体补充:",required:""},{default:s(()=>[i(F,{modelValue:a.channel_source_detail,"onUpdate:modelValue":t[4]||(t[4]=n=>a.channel_source_detail=n),clearable:"",maxlength:"128","show-word-limit":"",placeholder:"请输入自媒体相关补充内容",class:"channel-source-select"},null,8,["modelValue"])]),_:1})):R("",!0),i(o,{label:"预约医生:"},{default:s(()=>[y("div",Qe,[i(g,{modelValue:u.value,"onUpdate:modelValue":t[5]||(t[5]=n=>u.value=n),onChange:pe},{default:s(()=>[(d(!0),k(x,null,N(U.value,n=>(d(),D(r,{key:n.id,value:n.id,class:"doctor-radio"},{default:s(()=>[h(w(n.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])]),_:1}),i(o,{label:"预约时间:"},{default:s(()=>[u.value?u.value&&m.value.length===0?(d(),D(H,{key:1,description:"该医生暂无排班","image-size":80})):(d(),k("div",Ke,[y("div",Je,[(d(!0),k(x,null,N(te.value,n=>(d(),D(M,{key:n.date,type:a.date===n.date?"primary":"",onClick:ke=>z(n.date),class:"date-button"},{default:s(()=>[h(w(n.label),1)]),_:2},1032,["type","onClick"]))),128))]),a.date?(d(),k("div",Xe,[y("div",Ze,[t[13]||(t[13]=y("span",{class:"header-title"},"可预约时段",-1)),i(M,{text:"",type:"primary",size:"small",loading:I.value,onClick:_e},{icon:s(()=>[i(Ae(Le))]),default:s(()=>[t[12]||(t[12]=h(" 刷新 ",-1))]),_:1},8,["loading"])]),y("div",et,[(d(!0),k(x,null,N(ae.value,n=>(d(),k("div",{key:n.time,class:O(["time-slot-item",{available:n.available,unavailable:!n.available,selected:a.appointmentTime===n.time}]),onClick:ke=>fe(n)},[y("div",at,w(n.time),1),y("div",{class:O(["slot-status",{"status-available":n.available}])},w(n.available?"可约":"已约"),3)],10,tt))),128))])])):R("",!0)])):(d(),D(H,{key:0,description:"请先选择医生","image-size":80}))]),_:1}),i(o,{label:"备注:"},{default:s(()=>[i(F,{modelValue:a.remark,"onUpdate:modelValue":t[6]||(t[6]=n=>a.remark=n),type:"textarea",rows:2,placeholder:"请输入备注信息"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])),[[De,T.value]])]),_:1},8,["modelValue"])}}}),ct=Fe(nt,[["__scopeId","data-v-504aaeec"]]);export{ct as default};
diff --git a/server/public/admin/assets/article-DB3929O1.js b/server/public/admin/assets/article-CjHzXUSw.js
similarity index 93%
rename from server/public/admin/assets/article-DB3929O1.js
rename to server/public/admin/assets/article-CjHzXUSw.js
index 70b522fb8..aec27ad1f 100644
--- a/server/public/admin/assets/article-DB3929O1.js
+++ b/server/public/admin/assets/article-CjHzXUSw.js
@@ -1 +1 @@
-import{r as e}from"./index-B31vLELt.js";function a(t){return e.get({url:"/article.articleCate/lists",params:t})}function l(t){return e.get({url:"/article.articleCate/all",params:t})}function i(t){return e.post({url:"/article.articleCate/add",params:t})}function c(t){return e.post({url:"/article.articleCate/edit",params:t})}function u(t){return e.post({url:"/article.articleCate/delete",params:t})}function n(t){return e.get({url:"/article.articleCate/detail",params:t})}function s(t){return e.post({url:"/article.articleCate/updateStatus",params:t})}function o(t){return e.get({url:"/article.article/lists",params:t})}function d(t){return e.post({url:"/article.article/add",params:t})}function f(t){return e.post({url:"/article.article/edit",params:t})}function C(t){return e.post({url:"/article.article/delete",params:t})}function p(t){return e.get({url:"/article.article/detail",params:t})}function g(t){return e.post({url:"/article.article/updateStatus",params:t})}export{a,u as b,s as c,c as d,i as e,n as f,p as g,f as h,d as i,l as j,o as k,g as l,C as m};
+import{r as e}from"./index-BZAvl557.js";function a(t){return e.get({url:"/article.articleCate/lists",params:t})}function l(t){return e.get({url:"/article.articleCate/all",params:t})}function i(t){return e.post({url:"/article.articleCate/add",params:t})}function c(t){return e.post({url:"/article.articleCate/edit",params:t})}function u(t){return e.post({url:"/article.articleCate/delete",params:t})}function n(t){return e.get({url:"/article.articleCate/detail",params:t})}function s(t){return e.post({url:"/article.articleCate/updateStatus",params:t})}function o(t){return e.get({url:"/article.article/lists",params:t})}function d(t){return e.post({url:"/article.article/add",params:t})}function f(t){return e.post({url:"/article.article/edit",params:t})}function C(t){return e.post({url:"/article.article/delete",params:t})}function p(t){return e.get({url:"/article.article/detail",params:t})}function g(t){return e.post({url:"/article.article/updateStatus",params:t})}export{a,u as b,s as c,c as d,i as e,n as f,p as g,f as h,d as i,l as j,o as k,g as l,C as m};
diff --git a/server/public/admin/assets/asset-BrhimIq1.js b/server/public/admin/assets/asset-eJVxt4Ok.js
similarity index 90%
rename from server/public/admin/assets/asset-BrhimIq1.js
rename to server/public/admin/assets/asset-eJVxt4Ok.js
index 3c5407d37..a0e5bea3c 100644
--- a/server/public/admin/assets/asset-BrhimIq1.js
+++ b/server/public/admin/assets/asset-eJVxt4Ok.js
@@ -1 +1 @@
-import{r as e}from"./index-B31vLELt.js";function r(s){return e.get({url:"/asset.AssetUser/lists",params:s})}function u(s){return e.post({url:"/asset.AssetUser/add",params:s})}function a(s){return e.post({url:"/asset.AssetUser/edit",params:s})}function i(s){return e.post({url:"/asset.AssetUser/delete",params:s})}function o(s){return e.get({url:"/asset.AssetResource/lists",params:s})}function n(s){return e.post({url:"/asset.AssetResource/add",params:s})}function A(s){return e.post({url:"/asset.AssetResource/edit",params:s})}function c(s){return e.post({url:"/asset.AssetResource/delete",params:s})}export{o as a,c as b,A as c,n as d,r as e,a as f,i as g,u as h};
+import{r as e}from"./index-BZAvl557.js";function r(s){return e.get({url:"/asset.AssetUser/lists",params:s})}function u(s){return e.post({url:"/asset.AssetUser/add",params:s})}function a(s){return e.post({url:"/asset.AssetUser/edit",params:s})}function i(s){return e.post({url:"/asset.AssetUser/delete",params:s})}function o(s){return e.get({url:"/asset.AssetResource/lists",params:s})}function n(s){return e.post({url:"/asset.AssetResource/add",params:s})}function A(s){return e.post({url:"/asset.AssetResource/edit",params:s})}function c(s){return e.post({url:"/asset.AssetResource/delete",params:s})}export{o as a,c as b,A as c,n as d,r as e,a as f,i as g,u as h};
diff --git a/server/public/admin/assets/attr-Dm063mqe.js b/server/public/admin/assets/attr-BHqUzb6B.js
similarity index 79%
rename from server/public/admin/assets/attr-Dm063mqe.js
rename to server/public/admin/assets/attr-BHqUzb6B.js
index e75b894b9..842c3d726 100644
--- a/server/public/admin/assets/attr-Dm063mqe.js
+++ b/server/public/admin/assets/attr-BHqUzb6B.js
@@ -1 +1 @@
-import{o as R,q as s,O as i,D as t,v as l,bg as S,s as o,bc as q,u as p,bf as A,L as _,P as x,r as b,bQ as G,F as K,b6 as L,b7 as P,I as Q,K as T,b9 as H,p as J,cn as E}from"./.pnpm-BHOjf1ZS.js";import{_ as M}from"./index-Btk0rgzN.js";import{c as W,j as h,_ as X}from"./index-B31vLELt.js";import{_ as Y}from"./picker-CO5ipFSA.js";import{_ as Z}from"./picker-DY0rRn6Q.js";import"./index-Dt_C33Jx.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./article-DB3929O1.js";import"./usePaging-oaNM6A9T.js";import"./index-Mwguss-B.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";const ee={class:"flex items-end"},te={key:0,class:"text-xs text-tx-secondary ml-2"},le={key:1,class:"text-xs text-tx-secondary ml-2"},oe={class:"flex-1"},ae={class:"bg-fill-light w-full p-4 mt-4"},ne={class:"flex justify-center w-[467px]"},se={class:"flex-1"},de={class:"flex-1 flex items-center"},me={class:"drag-move cursor-move ml-auto"},ue={key:0,class:"mt-4"},y=5,ie=R({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},emits:["update:content"],setup(d,{emit:C}){const g=C,f=d,c=J({get:()=>f.content,set:m=>{g("update:content",m)}}),B=()=>{var m;if(((m=f.content.data)==null?void 0:m.length){var u;if(((u=f.content.data)==null?void 0:u.length)<=1)return h.msgError("最少保留一张图片");const e=E(f.content);e.data.splice(m,1),g("update:content",e)};return(m,e)=>{const u=A,k=q,V=S,v=Z,j=Y,F=P,w=L,I=Q,N=W,$=M,z=T,O=H;return s(),i(O,{"label-width":"70px"},{default:t(()=>[l(V,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[e[5]||(e[5]=o("div",{class:"flex items-end mb-4"},[o("div",{class:"text-base dark:text-[#ffffff] text-[#101010] font-medium"},"展示样式")],-1)),l(k,{modelValue:p(c).style,"onUpdate:modelValue":e[0]||(e[0]=r=>p(c).style=r)},{default:t(()=>[l(u,{value:1},{default:t(()=>[...e[3]||(e[3]=[_("常规",-1)])]),_:1}),l(u,{value:2},{default:t(()=>[...e[4]||(e[4]=[_("大屏",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),d.content.style==1?(s(),i(V,{key:0,shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[e[8]||(e[8]=o("div",{class:"flex items-end mb-4"},[o("div",{class:"text-base text-[#101010] dark:text-[#ffffff] font-medium"},"背景联动")],-1)),l(k,{modelValue:p(c).bg_style,"onUpdate:modelValue":e[1]||(e[1]=r=>p(c).bg_style=r)},{default:t(()=>[l(u,{value:1},{default:t(()=>[...e[6]||(e[6]=[_("开启",-1)])]),_:1}),l(u,{value:0},{default:t(()=>[...e[7]||(e[7]=[_("关闭",-1)])]),_:1})]),_:1},8,["modelValue"]),e[9]||(e[9]=o("div",{class:"p-[15px] rounded-[8px] bg-[#f3f8ff] text-[#136bdf] mt-2"}," 开启背景联动后,需为轮播图设置背景图,轮播图切换时,背景图也跟随切换,此时该页面自身的“页面背景“设置将失效。 ",-1))]),_:1})):x("",!0),l(V,{shadow:"never",class:"!border-none flex-1 mt-2"},{default:t(()=>{var r;return[o("div",ee,[e[10]||(e[10]=o("div",{class:"text-base text-[#101010] dark:text-[#ffffff] font-medium"},"轮播图片",-1)),d.content.style==1?(s(),b("div",te," 最多添加5张,建议图片尺寸:750px*340px ")):(s(),b("div",le," 最多添加5张,建议图片尺寸:750px*1100px "))]),o("div",oe,[l(p(G),{class:"draggable",modelValue:p(c).data,"onUpdate:modelValue":e[2]||(e[2]=a=>p(c).data=a),animation:"300",handle:".drag-move","item-key":"index"},{item:t(({element:a,index:U})=>[(s(),i($,{key:U,onClose:n=>D(U),class:"w-full"},{default:t(()=>[o("div",ae,[o("div",ne,[d.content.style==1?(s(),b(K,{key:0},[l(v,{size:"122px",modelValue:a.image,"onUpdate:modelValue":n=>a.image=n,"upload-class":"bg-body","exclude-domain":""},{upload:t(()=>[...e[11]||(e[11]=[o("div",{class:"w-[122px] h-[122px] banner-upload-btn"}," 轮播图 ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"]),d.content.style==1||d.content.bg_style==1?(s(),i(v,{key:0,class:"ml-[40px]",size:"122px",modelValue:a.bg,"onUpdate:modelValue":n=>a.bg=n,"upload-class":"bg-body","exclude-domain":""},{upload:t(()=>[...e[12]||(e[12]=[o("div",{class:"w-[122px] h-[122px] banner-upload-btn"}," 背景图 ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"])):x("",!0)],64)):(s(),i(v,{key:1,width:"396px",height:"196px",modelValue:a.image,"onUpdate:modelValue":n=>a.image=n,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]))]),o("div",se,[l(w,{class:"mt-[18px]",label:"图片链接"},{default:t(()=>[d.type=="mobile"?(s(),i(j,{key:0,modelValue:a.link,"onUpdate:modelValue":n=>a.link=n},null,8,["modelValue","onUpdate:modelValue"])):x("",!0),d.type=="pc"?(s(),i(F,{key:1,placeholder:"请输入链接",modelValue:a.link.path,"onUpdate:modelValue":n=>a.link.path=n},null,8,["modelValue","onUpdate:modelValue"])):x("",!0)]),_:2},1024),l(w,{label:"是否显示",class:"mt-[18px] !mb-0"},{default:t(()=>[o("div",de,[l(I,{modelValue:a.is_show,"onUpdate:modelValue":n=>a.is_show=n,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),o("div",me,[l(N,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])]),((r=d.content.data)==null?void 0:r.length)[...e[13]||(e[13]=[_("添加图片",-1)])]),_:1})])):x("",!0)]}),_:1})]),_:1})}}}),Ue=X(ie,[["__scopeId","data-v-f10c74d9"]]);export{Ue as default};
+import{o as R,q as s,O as i,D as t,v as l,bh as S,s as o,bc as q,u as p,bo as A,L as _,P as x,r as b,bQ as G,F as K,b6 as L,b7 as P,I as Q,K as T,b9 as H,p as J,cn as E}from"./.pnpm-BuKxIMgQ.js";import{_ as M}from"./index-BYpT7Ezr.js";import{c as W,j as h,_ as X}from"./index-BZAvl557.js";import{_ as Y}from"./picker-Bb1gdsBd.js";import{_ as Z}from"./picker-C-hBLp_q.js";import"./index-BARAiw4K.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./article-CjHzXUSw.js";import"./usePaging-DNtxCypz.js";import"./index-DO2zctlZ.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";const ee={class:"flex items-end"},te={key:0,class:"text-xs text-tx-secondary ml-2"},le={key:1,class:"text-xs text-tx-secondary ml-2"},oe={class:"flex-1"},ae={class:"bg-fill-light w-full p-4 mt-4"},ne={class:"flex justify-center w-[467px]"},se={class:"flex-1"},de={class:"flex-1 flex items-center"},me={class:"drag-move cursor-move ml-auto"},ue={key:0,class:"mt-4"},y=5,ie=R({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},emits:["update:content"],setup(d,{emit:C}){const V=C,f=d,c=J({get:()=>f.content,set:m=>{V("update:content",m)}}),B=()=>{var m;if(((m=f.content.data)==null?void 0:m.length){var u;if(((u=f.content.data)==null?void 0:u.length)<=1)return h.msgError("最少保留一张图片");const e=E(f.content);e.data.splice(m,1),V("update:content",e)};return(m,e)=>{const u=A,k=q,g=S,v=Z,j=Y,F=P,w=L,I=Q,N=W,$=M,z=T,O=H;return s(),i(O,{"label-width":"70px"},{default:t(()=>[l(g,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[e[5]||(e[5]=o("div",{class:"flex items-end mb-4"},[o("div",{class:"text-base dark:text-[#ffffff] text-[#101010] font-medium"},"展示样式")],-1)),l(k,{modelValue:p(c).style,"onUpdate:modelValue":e[0]||(e[0]=r=>p(c).style=r)},{default:t(()=>[l(u,{value:1},{default:t(()=>[...e[3]||(e[3]=[_("常规",-1)])]),_:1}),l(u,{value:2},{default:t(()=>[...e[4]||(e[4]=[_("大屏",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),d.content.style==1?(s(),i(g,{key:0,shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[e[8]||(e[8]=o("div",{class:"flex items-end mb-4"},[o("div",{class:"text-base text-[#101010] dark:text-[#ffffff] font-medium"},"背景联动")],-1)),l(k,{modelValue:p(c).bg_style,"onUpdate:modelValue":e[1]||(e[1]=r=>p(c).bg_style=r)},{default:t(()=>[l(u,{value:1},{default:t(()=>[...e[6]||(e[6]=[_("开启",-1)])]),_:1}),l(u,{value:0},{default:t(()=>[...e[7]||(e[7]=[_("关闭",-1)])]),_:1})]),_:1},8,["modelValue"]),e[9]||(e[9]=o("div",{class:"p-[15px] rounded-[8px] bg-[#f3f8ff] text-[#136bdf] mt-2"}," 开启背景联动后,需为轮播图设置背景图,轮播图切换时,背景图也跟随切换,此时该页面自身的“页面背景“设置将失效。 ",-1))]),_:1})):x("",!0),l(g,{shadow:"never",class:"!border-none flex-1 mt-2"},{default:t(()=>{var r;return[o("div",ee,[e[10]||(e[10]=o("div",{class:"text-base text-[#101010] dark:text-[#ffffff] font-medium"},"轮播图片",-1)),d.content.style==1?(s(),b("div",te," 最多添加5张,建议图片尺寸:750px*340px ")):(s(),b("div",le," 最多添加5张,建议图片尺寸:750px*1100px "))]),o("div",oe,[l(p(G),{class:"draggable",modelValue:p(c).data,"onUpdate:modelValue":e[2]||(e[2]=a=>p(c).data=a),animation:"300",handle:".drag-move","item-key":"index"},{item:t(({element:a,index:U})=>[(s(),i($,{key:U,onClose:n=>D(U),class:"w-full"},{default:t(()=>[o("div",ae,[o("div",ne,[d.content.style==1?(s(),b(K,{key:0},[l(v,{size:"122px",modelValue:a.image,"onUpdate:modelValue":n=>a.image=n,"upload-class":"bg-body","exclude-domain":""},{upload:t(()=>[...e[11]||(e[11]=[o("div",{class:"w-[122px] h-[122px] banner-upload-btn"}," 轮播图 ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"]),d.content.style==1||d.content.bg_style==1?(s(),i(v,{key:0,class:"ml-[40px]",size:"122px",modelValue:a.bg,"onUpdate:modelValue":n=>a.bg=n,"upload-class":"bg-body","exclude-domain":""},{upload:t(()=>[...e[12]||(e[12]=[o("div",{class:"w-[122px] h-[122px] banner-upload-btn"}," 背景图 ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"])):x("",!0)],64)):(s(),i(v,{key:1,width:"396px",height:"196px",modelValue:a.image,"onUpdate:modelValue":n=>a.image=n,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]))]),o("div",se,[l(w,{class:"mt-[18px]",label:"图片链接"},{default:t(()=>[d.type=="mobile"?(s(),i(j,{key:0,modelValue:a.link,"onUpdate:modelValue":n=>a.link=n},null,8,["modelValue","onUpdate:modelValue"])):x("",!0),d.type=="pc"?(s(),i(F,{key:1,placeholder:"请输入链接",modelValue:a.link.path,"onUpdate:modelValue":n=>a.link.path=n},null,8,["modelValue","onUpdate:modelValue"])):x("",!0)]),_:2},1024),l(w,{label:"是否显示",class:"mt-[18px] !mb-0"},{default:t(()=>[o("div",de,[l(I,{modelValue:a.is_show,"onUpdate:modelValue":n=>a.is_show=n,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),o("div",me,[l(N,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])]),((r=d.content.data)==null?void 0:r.length)[...e[13]||(e[13]=[_("添加图片",-1)])]),_:1})])):x("",!0)]}),_:1})]),_:1})}}}),Ue=X(ie,[["__scopeId","data-v-f10c74d9"]]);export{Ue as default};
diff --git a/server/public/admin/assets/attr-BLA0QQqZ.js b/server/public/admin/assets/attr-BLA0QQqZ.js
new file mode 100644
index 000000000..b72c15de5
--- /dev/null
+++ b/server/public/admin/assets/attr-BLA0QQqZ.js
@@ -0,0 +1 @@
+import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-Bpdm4zkI.js";import"./.pnpm-BuKxIMgQ.js";import"./index-BYpT7Ezr.js";import"./index-BZAvl557.js";import"./picker-Bb1gdsBd.js";import"./index-BARAiw4K.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./article-CjHzXUSw.js";import"./usePaging-DNtxCypz.js";import"./picker-C-hBLp_q.js";import"./index-DO2zctlZ.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";export{o as default};
diff --git a/server/public/admin/assets/attr-BphNSOik.js b/server/public/admin/assets/attr-BphNSOik.js
new file mode 100644
index 000000000..07ecce65b
--- /dev/null
+++ b/server/public/admin/assets/attr-BphNSOik.js
@@ -0,0 +1 @@
+import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-B2llNMdT.js";import"./.pnpm-BuKxIMgQ.js";import"./picker-C-hBLp_q.js";import"./index-BARAiw4K.js";import"./index-BZAvl557.js";import"./index-DO2zctlZ.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./index-BYpT7Ezr.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./usePaging-DNtxCypz.js";export{o as default};
diff --git a/server/public/admin/assets/attr-C0rCzh5D.js b/server/public/admin/assets/attr-C0rCzh5D.js
deleted file mode 100644
index 527b342b2..000000000
--- a/server/public/admin/assets/attr-C0rCzh5D.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-Bh9QIjXd.js";import"./.pnpm-BHOjf1ZS.js";import"./index-Btk0rgzN.js";import"./index-B31vLELt.js";import"./picker-CO5ipFSA.js";import"./index-Dt_C33Jx.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./article-DB3929O1.js";import"./usePaging-oaNM6A9T.js";import"./picker-DY0rRn6Q.js";import"./index-Mwguss-B.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";export{o as default};
diff --git a/server/public/admin/assets/attr-CEti6Z1N.js b/server/public/admin/assets/attr-CEti6Z1N.js
deleted file mode 100644
index 70e9216db..000000000
--- a/server/public/admin/assets/attr-CEti6Z1N.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-DNAI5vfX.js";import"./.pnpm-BHOjf1ZS.js";import"./add-nav.vue_vue_type_script_setup_true_lang-D6sR8PmU.js";import"./index-Btk0rgzN.js";import"./index-B31vLELt.js";import"./picker-CO5ipFSA.js";import"./index-Dt_C33Jx.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./article-DB3929O1.js";import"./usePaging-oaNM6A9T.js";import"./picker-DY0rRn6Q.js";import"./index-Mwguss-B.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";export{o as default};
diff --git a/server/public/admin/assets/attr-CFxjbaDW.js b/server/public/admin/assets/attr-CFxjbaDW.js
deleted file mode 100644
index 724da3aa1..000000000
--- a/server/public/admin/assets/attr-CFxjbaDW.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-CUU4ecby.js";import"./.pnpm-BHOjf1ZS.js";import"./add-nav.vue_vue_type_script_setup_true_lang-D6sR8PmU.js";import"./index-Btk0rgzN.js";import"./index-B31vLELt.js";import"./picker-CO5ipFSA.js";import"./index-Dt_C33Jx.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./article-DB3929O1.js";import"./usePaging-oaNM6A9T.js";import"./picker-DY0rRn6Q.js";import"./index-Mwguss-B.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";export{o as default};
diff --git a/server/public/admin/assets/attr-COwbjP06.js b/server/public/admin/assets/attr-COwbjP06.js
new file mode 100644
index 000000000..c92f57d9d
--- /dev/null
+++ b/server/public/admin/assets/attr-COwbjP06.js
@@ -0,0 +1 @@
+import{_ as m}from"./attr.vue_vue_type_script_setup_true_lang-BTYWUQ2V.js";import"./.pnpm-BuKxIMgQ.js";export{m as default};
diff --git a/server/public/admin/assets/attr-oQo0_8qe.js b/server/public/admin/assets/attr-CT8geRN4.js
similarity index 61%
rename from server/public/admin/assets/attr-oQo0_8qe.js
rename to server/public/admin/assets/attr-CT8geRN4.js
index 78216a6a2..d6431e740 100644
--- a/server/public/admin/assets/attr-oQo0_8qe.js
+++ b/server/public/admin/assets/attr-CT8geRN4.js
@@ -1 +1 @@
-import{o as b,q as c,r as V,s as v,v as t,D as a,Y as x,X as E,u as l,b9 as g,F as k,p as w}from"./.pnpm-BHOjf1ZS.js";import{_ as p}from"./menu-set.vue_vue_type_script_setup_true_lang-D_7Zrwd5.js";import"./index-Btk0rgzN.js";import"./index-B31vLELt.js";import"./picker-CO5ipFSA.js";import"./index-Dt_C33Jx.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./article-DB3929O1.js";import"./usePaging-oaNM6A9T.js";import"./picker-DY0rRn6Q.js";import"./index-Mwguss-B.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";const $=b({__name:"attr",props:{modelValue:{type:Object,default:()=>({nav:[],menu:{}})}},emits:["update:modelValue"],setup(s,{emit:u}){const d=s,i=u,o=w({get(){return d.modelValue},set(n){i("update:modelValue",n)}});return(n,e)=>{const r=E,f=x,_=g;return c(),V(k,null,[e[2]||(e[2]=v("div",{class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2"}," pc导航设置 ",-1)),t(_,{class:"mt-4","label-width":"70px"},{default:a(()=>[t(f,{"model-value":"nav"},{default:a(()=>[t(r,{label:"主导航设置",name:"nav"},{default:a(()=>[t(p,{modelValue:l(o).nav,"onUpdate:modelValue":e[0]||(e[0]=m=>l(o).nav=m)},null,8,["modelValue"])]),_:1}),t(r,{label:"菜单设置",name:"menu"},{default:a(()=>[t(p,{modelValue:l(o).menu,"onUpdate:modelValue":e[1]||(e[1]=m=>l(o).menu=m)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],64)}}});export{$ as default};
+import{o as b,q as c,r as V,s as v,v as t,D as a,Y as x,X as E,u as l,b9 as g,F as k,p as w}from"./.pnpm-BuKxIMgQ.js";import{_ as p}from"./menu-set.vue_vue_type_script_setup_true_lang-BUiadzC6.js";import"./index-BYpT7Ezr.js";import"./index-BZAvl557.js";import"./picker-Bb1gdsBd.js";import"./index-BARAiw4K.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./article-CjHzXUSw.js";import"./usePaging-DNtxCypz.js";import"./picker-C-hBLp_q.js";import"./index-DO2zctlZ.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";const $=b({__name:"attr",props:{modelValue:{type:Object,default:()=>({nav:[],menu:{}})}},emits:["update:modelValue"],setup(s,{emit:u}){const d=s,i=u,o=w({get(){return d.modelValue},set(n){i("update:modelValue",n)}});return(n,e)=>{const r=E,f=x,_=g;return c(),V(k,null,[e[2]||(e[2]=v("div",{class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2"}," pc导航设置 ",-1)),t(_,{class:"mt-4","label-width":"70px"},{default:a(()=>[t(f,{"model-value":"nav"},{default:a(()=>[t(r,{label:"主导航设置",name:"nav"},{default:a(()=>[t(p,{modelValue:l(o).nav,"onUpdate:modelValue":e[0]||(e[0]=m=>l(o).nav=m)},null,8,["modelValue"])]),_:1}),t(r,{label:"菜单设置",name:"menu"},{default:a(()=>[t(p,{modelValue:l(o).menu,"onUpdate:modelValue":e[1]||(e[1]=m=>l(o).menu=m)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],64)}}});export{$ as default};
diff --git a/server/public/admin/assets/attr-CaxN7WW4.js b/server/public/admin/assets/attr-CaxN7WW4.js
new file mode 100644
index 000000000..ba2d9f451
--- /dev/null
+++ b/server/public/admin/assets/attr-CaxN7WW4.js
@@ -0,0 +1 @@
+import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-Cg9TUgbx.js";import"./.pnpm-BuKxIMgQ.js";import"./index.vue_vue_type_script_setup_true_lang-BzrKBDTf.js";import"./picker-C-hBLp_q.js";import"./index-BARAiw4K.js";import"./index-BZAvl557.js";import"./index-DO2zctlZ.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./index-BYpT7Ezr.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./usePaging-DNtxCypz.js";export{o as default};
diff --git a/server/public/admin/assets/attr-CuJXXyDm.js b/server/public/admin/assets/attr-CuJXXyDm.js
new file mode 100644
index 000000000..8e2597ff6
--- /dev/null
+++ b/server/public/admin/assets/attr-CuJXXyDm.js
@@ -0,0 +1 @@
+import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-BlUYjyKc.js";import"./.pnpm-BuKxIMgQ.js";import"./add-nav.vue_vue_type_script_setup_true_lang-BvrtwrIg.js";import"./index-BYpT7Ezr.js";import"./index-BZAvl557.js";import"./picker-Bb1gdsBd.js";import"./index-BARAiw4K.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./article-CjHzXUSw.js";import"./usePaging-DNtxCypz.js";import"./picker-C-hBLp_q.js";import"./index-DO2zctlZ.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";export{o as default};
diff --git a/server/public/admin/assets/attr-CzqPe0Sc.js b/server/public/admin/assets/attr-CzqPe0Sc.js
deleted file mode 100644
index f92f8ebba..000000000
--- a/server/public/admin/assets/attr-CzqPe0Sc.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-BiXDmSCm.js";import"./.pnpm-BHOjf1ZS.js";import"./index-Btk0rgzN.js";import"./index-B31vLELt.js";import"./picker-CO5ipFSA.js";import"./index-Dt_C33Jx.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./article-DB3929O1.js";import"./usePaging-oaNM6A9T.js";import"./picker-DY0rRn6Q.js";import"./index-Mwguss-B.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./index.vue_vue_type_script_setup_true_lang-kAZgL5aN.js";export{o as default};
diff --git a/server/public/admin/assets/attr-DcOELR-K.js b/server/public/admin/assets/attr-DcOELR-K.js
deleted file mode 100644
index 54f7f6235..000000000
--- a/server/public/admin/assets/attr-DcOELR-K.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as m}from"./attr.vue_vue_type_script_setup_true_lang-awcvFaxy.js";import"./.pnpm-BHOjf1ZS.js";export{m as default};
diff --git a/server/public/admin/assets/attr-DjL47Z8g.js b/server/public/admin/assets/attr-DjL47Z8g.js
deleted file mode 100644
index 390def0ca..000000000
--- a/server/public/admin/assets/attr-DjL47Z8g.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-BmNWU9N_.js";import"./.pnpm-BHOjf1ZS.js";import"./index-Btk0rgzN.js";import"./index-B31vLELt.js";import"./picker-CO5ipFSA.js";import"./index-Dt_C33Jx.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./article-DB3929O1.js";import"./usePaging-oaNM6A9T.js";import"./picker-DY0rRn6Q.js";import"./index-Mwguss-B.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";export{o as default};
diff --git a/server/public/admin/assets/attr-VeuzZySW.js b/server/public/admin/assets/attr-VeuzZySW.js
new file mode 100644
index 000000000..7044e0fa4
--- /dev/null
+++ b/server/public/admin/assets/attr-VeuzZySW.js
@@ -0,0 +1 @@
+import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-DahpvuQt.js";import"./.pnpm-BuKxIMgQ.js";import"./index-BYpT7Ezr.js";import"./index-BZAvl557.js";import"./picker-Bb1gdsBd.js";import"./index-BARAiw4K.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./article-CjHzXUSw.js";import"./usePaging-DNtxCypz.js";import"./picker-C-hBLp_q.js";import"./index-DO2zctlZ.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";export{o as default};
diff --git a/server/public/admin/assets/attr-YeuLKGy8.js b/server/public/admin/assets/attr-YeuLKGy8.js
new file mode 100644
index 000000000..f71c113d0
--- /dev/null
+++ b/server/public/admin/assets/attr-YeuLKGy8.js
@@ -0,0 +1 @@
+import{_ as m}from"./attr.vue_vue_type_script_setup_true_lang-C1js62HS.js";import"./.pnpm-BuKxIMgQ.js";export{m as default};
diff --git a/server/public/admin/assets/attr-ZhdYYadU.js b/server/public/admin/assets/attr-ZhdYYadU.js
new file mode 100644
index 000000000..4d7d76a4d
--- /dev/null
+++ b/server/public/admin/assets/attr-ZhdYYadU.js
@@ -0,0 +1 @@
+import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-CFcUNFxo.js";import"./.pnpm-BuKxIMgQ.js";import"./add-nav.vue_vue_type_script_setup_true_lang-BvrtwrIg.js";import"./index-BYpT7Ezr.js";import"./index-BZAvl557.js";import"./picker-Bb1gdsBd.js";import"./index-BARAiw4K.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./article-CjHzXUSw.js";import"./usePaging-DNtxCypz.js";import"./picker-C-hBLp_q.js";import"./index-DO2zctlZ.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";export{o as default};
diff --git a/server/public/admin/assets/attr-bHKaqgvW.js b/server/public/admin/assets/attr-bHKaqgvW.js
new file mode 100644
index 000000000..0e4f6b424
--- /dev/null
+++ b/server/public/admin/assets/attr-bHKaqgvW.js
@@ -0,0 +1 @@
+import{_ as m}from"./attr.vue_vue_type_script_setup_true_lang-DLYgO2JI.js";import"./.pnpm-BuKxIMgQ.js";export{m as default};
diff --git a/server/public/admin/assets/attr-eJAi-Vj_.js b/server/public/admin/assets/attr-eJAi-Vj_.js
deleted file mode 100644
index 0f1ccf6f9..000000000
--- a/server/public/admin/assets/attr-eJAi-Vj_.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-D0EQrZlD.js";import"./.pnpm-BHOjf1ZS.js";import"./index.vue_vue_type_script_setup_true_lang-kAZgL5aN.js";import"./picker-DY0rRn6Q.js";import"./index-Dt_C33Jx.js";import"./index-B31vLELt.js";import"./index-Mwguss-B.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./index-Btk0rgzN.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./usePaging-oaNM6A9T.js";export{o as default};
diff --git a/server/public/admin/assets/attr-ovDvLeNQ.js b/server/public/admin/assets/attr-ovDvLeNQ.js
deleted file mode 100644
index fc8fa354a..000000000
--- a/server/public/admin/assets/attr-ovDvLeNQ.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-BmeO7-HE.js";import"./.pnpm-BHOjf1ZS.js";import"./picker-DY0rRn6Q.js";import"./index-Dt_C33Jx.js";import"./index-B31vLELt.js";import"./index-Mwguss-B.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./index-Btk0rgzN.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./usePaging-oaNM6A9T.js";export{o as default};
diff --git a/server/public/admin/assets/attr-qqeREw9s.js b/server/public/admin/assets/attr-qqeREw9s.js
deleted file mode 100644
index c588a23c6..000000000
--- a/server/public/admin/assets/attr-qqeREw9s.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as m}from"./attr.vue_vue_type_script_setup_true_lang-DG0CrN4I.js";import"./.pnpm-BHOjf1ZS.js";export{m as default};
diff --git a/server/public/admin/assets/attr-setting-DckvdpDC.js b/server/public/admin/assets/attr-setting-DckvdpDC.js
new file mode 100644
index 000000000..d30fb817b
--- /dev/null
+++ b/server/public/admin/assets/attr-setting-DckvdpDC.js
@@ -0,0 +1 @@
+import{_ as o}from"./attr-setting.vue_vue_type_script_setup_true_lang-DTHgidmR.js";import"./.pnpm-BuKxIMgQ.js";import"./index-CWFQhiYd.js";import"./attr-BHqUzb6B.js";import"./index-BYpT7Ezr.js";import"./index-BZAvl557.js";import"./picker-Bb1gdsBd.js";import"./index-BARAiw4K.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./article-CjHzXUSw.js";import"./usePaging-DNtxCypz.js";import"./picker-C-hBLp_q.js";import"./index-DO2zctlZ.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./content.vue_vue_type_script_setup_true_lang-CXvQTf5G.js";import"./decoration-img-COeloOZY.js";import"./attr.vue_vue_type_script_setup_true_lang-B2llNMdT.js";import"./content-BFE34N2s.js";import"./attr.vue_vue_type_script_setup_true_lang-Bpdm4zkI.js";import"./content.vue_vue_type_script_setup_true_lang-Cu2HKlUq.js";import"./attr.vue_vue_type_script_setup_true_lang-CFcUNFxo.js";import"./add-nav.vue_vue_type_script_setup_true_lang-BvrtwrIg.js";import"./content-CdRrEmwH.js";import"./attr.vue_vue_type_script_setup_true_lang-BlUYjyKc.js";import"./content.vue_vue_type_script_setup_true_lang-Divalm2R.js";import"./attr.vue_vue_type_script_setup_true_lang-DLYgO2JI.js";import"./content-Dk4wG-ug.js";import"./decoration-BWIcmCdb.js";import"./attr.vue_vue_type_script_setup_true_lang-Cg9TUgbx.js";import"./index.vue_vue_type_script_setup_true_lang-BzrKBDTf.js";import"./content-zTJxa9v2.js";import"./content.vue_vue_type_script_setup_true_lang-DpgmSthO.js";import"./attr.vue_vue_type_script_setup_true_lang-BTYWUQ2V.js";import"./content-NER4aZlI.js";import"./attr.vue_vue_type_script_setup_true_lang-DahpvuQt.js";import"./content.vue_vue_type_script_setup_true_lang-DGqAI3gu.js";import"./attr.vue_vue_type_script_setup_true_lang-C1js62HS.js";import"./content-Bwx4drOK.js";export{o as default};
diff --git a/server/public/admin/assets/attr-setting-LRRGmYrf.js b/server/public/admin/assets/attr-setting-LRRGmYrf.js
deleted file mode 100644
index 2610dc27b..000000000
--- a/server/public/admin/assets/attr-setting-LRRGmYrf.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./attr-setting.vue_vue_type_script_setup_true_lang-B1Hzh7SM.js";import"./.pnpm-BHOjf1ZS.js";import"./index-B2IG71Av.js";import"./attr-Dm063mqe.js";import"./index-Btk0rgzN.js";import"./index-B31vLELt.js";import"./picker-CO5ipFSA.js";import"./index-Dt_C33Jx.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./article-DB3929O1.js";import"./usePaging-oaNM6A9T.js";import"./picker-DY0rRn6Q.js";import"./index-Mwguss-B.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./content.vue_vue_type_script_setup_true_lang-Bee7IN_u.js";import"./decoration-img-kafLJif0.js";import"./attr.vue_vue_type_script_setup_true_lang-BmeO7-HE.js";import"./content-DxwLvQTv.js";import"./attr.vue_vue_type_script_setup_true_lang-BmNWU9N_.js";import"./content.vue_vue_type_script_setup_true_lang-Lj6AFy_2.js";import"./attr.vue_vue_type_script_setup_true_lang-DNAI5vfX.js";import"./add-nav.vue_vue_type_script_setup_true_lang-D6sR8PmU.js";import"./content-D8C9dcKm.js";import"./attr.vue_vue_type_script_setup_true_lang-CUU4ecby.js";import"./content.vue_vue_type_script_setup_true_lang-C_WMwBnF.js";import"./attr.vue_vue_type_script_setup_true_lang-DG0CrN4I.js";import"./content-DFY6JT15.js";import"./decoration-DmpRR_ZE.js";import"./attr.vue_vue_type_script_setup_true_lang-D0EQrZlD.js";import"./index.vue_vue_type_script_setup_true_lang-kAZgL5aN.js";import"./content-BBJJZcdn.js";import"./content.vue_vue_type_script_setup_true_lang-CLHtAkbH.js";import"./attr.vue_vue_type_script_setup_true_lang-awcvFaxy.js";import"./content-DLZMce8O.js";import"./attr.vue_vue_type_script_setup_true_lang-Bh9QIjXd.js";import"./content.vue_vue_type_script_setup_true_lang-C-lINWBh.js";import"./attr.vue_vue_type_script_setup_true_lang-DvEPH3sF.js";import"./content-Ce5HDG_0.js";export{o as default};
diff --git a/server/public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang-B1Hzh7SM.js b/server/public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang-DTHgidmR.js
similarity index 70%
rename from server/public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang-B1Hzh7SM.js
rename to server/public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang-DTHgidmR.js
index 3aec19422..cee555e00 100644
--- a/server/public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang-B1Hzh7SM.js
+++ b/server/public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang-DTHgidmR.js
@@ -1 +1 @@
-import{o as g,q as a,r as b,v as c,bg as y,D as r,s as x,T as _,a2 as h,O as i,a3 as w,a4 as v,u as C}from"./.pnpm-BHOjf1ZS.js";import{e as k}from"./index-B2IG71Av.js";const B={class:"pages-setting"},D={class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2 text-xl font-medium"},O=g({__name:"attr-setting",props:{widget:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},emits:["update:content"],setup(e,{emit:d}){const m=d,p=n=>{m("update:content",n)};return(n,E)=>{const f=y,u=h;return a(),b("div",B,[c(f,{shadow:"never",class:"!border-none flex"},{default:r(()=>{var t;return[x("div",D,_((t=e.widget)==null?void 0:t.title),1)]}),_:1}),c(u,{class:"w-full",style:{height:"calc(100% - 60px)"}},{default:r(()=>{var t,s,o,l;return[(a(),i(w,null,[(a(),i(v((s=C(k)[(t=e.widget)==null?void 0:t.name])==null?void 0:s.attr),{content:(o=e.widget)==null?void 0:o.content,styles:(l=e.widget)==null?void 0:l.styles,type:e.type,"onUpdate:content":p},null,40,["content","styles","type"]))],1024))]}),_:1})])}}});export{O as _};
+import{o as b,q as a,r as g,v as c,bh as y,D as r,s as x,T as _,a2 as h,O as i,a3 as w,a4 as v,u as C}from"./.pnpm-BuKxIMgQ.js";import{e as k}from"./index-CWFQhiYd.js";const B={class:"pages-setting"},D={class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2 text-xl font-medium"},O=b({__name:"attr-setting",props:{widget:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},emits:["update:content"],setup(e,{emit:d}){const m=d,p=n=>{m("update:content",n)};return(n,E)=>{const f=y,u=h;return a(),g("div",B,[c(f,{shadow:"never",class:"!border-none flex"},{default:r(()=>{var t;return[x("div",D,_((t=e.widget)==null?void 0:t.title),1)]}),_:1}),c(u,{class:"w-full",style:{height:"calc(100% - 60px)"}},{default:r(()=>{var t,s,o,l;return[(a(),i(w,null,[(a(),i(v((s=C(k)[(t=e.widget)==null?void 0:t.name])==null?void 0:s.attr),{content:(o=e.widget)==null?void 0:o.content,styles:(l=e.widget)==null?void 0:l.styles,type:e.type,"onUpdate:content":p},null,40,["content","styles","type"]))],1024))]}),_:1})])}}});export{O as _};
diff --git a/server/public/admin/assets/attr-tHefvLXa.js b/server/public/admin/assets/attr-tHefvLXa.js
deleted file mode 100644
index 601d2e865..000000000
--- a/server/public/admin/assets/attr-tHefvLXa.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as m}from"./attr.vue_vue_type_script_setup_true_lang-DvEPH3sF.js";import"./.pnpm-BHOjf1ZS.js";export{m as default};
diff --git a/server/public/admin/assets/attr-yRiIukDw.js b/server/public/admin/assets/attr-yRiIukDw.js
new file mode 100644
index 000000000..9523fb83b
--- /dev/null
+++ b/server/public/admin/assets/attr-yRiIukDw.js
@@ -0,0 +1 @@
+import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-Ybp27V87.js";import"./.pnpm-BuKxIMgQ.js";import"./index-BYpT7Ezr.js";import"./index-BZAvl557.js";import"./picker-Bb1gdsBd.js";import"./index-BARAiw4K.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./article-CjHzXUSw.js";import"./usePaging-DNtxCypz.js";import"./picker-C-hBLp_q.js";import"./index-DO2zctlZ.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./index.vue_vue_type_script_setup_true_lang-BzrKBDTf.js";export{o as default};
diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BmeO7-HE.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-B2llNMdT.js
similarity index 88%
rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BmeO7-HE.js
rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-B2llNMdT.js
index 7b3e86af7..d2a700df0 100644
--- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BmeO7-HE.js
+++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-B2llNMdT.js
@@ -1 +1 @@
-import{o as V,q as b,r as w,v as e,D as n,bg as x,b6 as g,b7 as k,u as o,s as E,b9 as U,p as v}from"./.pnpm-BHOjf1ZS.js";import{_ as q}from"./picker-DY0rRn6Q.js";const C=V({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(u,{emit:p}){const r=p,i=u,l=v({get:()=>i.content,set:d=>{r("update:content",d)}});return(d,t)=>{const s=k,m=g,_=q,c=x,f=U;return b(),w("div",null,[e(f,{"label-width":"90px",size:"large","label-position":"top"},{default:n(()=>[e(c,{shadow:"never",class:"!border-none flex mt-2"},{default:n(()=>[e(m,{label:"平台名称"},{default:n(()=>[e(s,{class:"w-[400px]","show-word-limit":"",maxlength:"20",modelValue:o(l).title,"onUpdate:modelValue":t[0]||(t[0]=a=>o(l).title=a)},null,8,["modelValue"])]),_:1}),e(m,{label:"客服二维码"},{default:n(()=>[E("div",null,[e(_,{modelValue:o(l).qrcode,"onUpdate:modelValue":t[1]||(t[1]=a=>o(l).qrcode=a),"exclude-domain":""},null,8,["modelValue"])])]),_:1}),e(m,{label:"备注"},{default:n(()=>[e(s,{class:"w-[400px]","show-word-limit":"",maxlength:"20",modelValue:o(l).remark,"onUpdate:modelValue":t[2]||(t[2]=a=>o(l).remark=a)},null,8,["modelValue"])]),_:1}),e(m,{label:"联系电话"},{default:n(()=>[e(s,{class:"w-[400px]",modelValue:o(l).mobile,"onUpdate:modelValue":t[3]||(t[3]=a=>o(l).mobile=a)},null,8,["modelValue"])]),_:1}),e(m,{label:"服务时间"},{default:n(()=>[e(s,{class:"w-[400px]","show-word-limit":"",maxlength:"20",modelValue:o(l).time,"onUpdate:modelValue":t[4]||(t[4]=a=>o(l).time=a)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})])}}});export{C as _};
+import{o as V,q as b,r as w,v as e,D as n,bh as x,b6 as g,b7 as k,u as o,s as E,b9 as U,p as v}from"./.pnpm-BuKxIMgQ.js";import{_ as q}from"./picker-C-hBLp_q.js";const C=V({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(u,{emit:p}){const r=p,i=u,l=v({get:()=>i.content,set:d=>{r("update:content",d)}});return(d,t)=>{const s=k,m=g,_=q,c=x,f=U;return b(),w("div",null,[e(f,{"label-width":"90px",size:"large","label-position":"top"},{default:n(()=>[e(c,{shadow:"never",class:"!border-none flex mt-2"},{default:n(()=>[e(m,{label:"平台名称"},{default:n(()=>[e(s,{class:"w-[400px]","show-word-limit":"",maxlength:"20",modelValue:o(l).title,"onUpdate:modelValue":t[0]||(t[0]=a=>o(l).title=a)},null,8,["modelValue"])]),_:1}),e(m,{label:"客服二维码"},{default:n(()=>[E("div",null,[e(_,{modelValue:o(l).qrcode,"onUpdate:modelValue":t[1]||(t[1]=a=>o(l).qrcode=a),"exclude-domain":""},null,8,["modelValue"])])]),_:1}),e(m,{label:"备注"},{default:n(()=>[e(s,{class:"w-[400px]","show-word-limit":"",maxlength:"20",modelValue:o(l).remark,"onUpdate:modelValue":t[2]||(t[2]=a=>o(l).remark=a)},null,8,["modelValue"])]),_:1}),e(m,{label:"联系电话"},{default:n(()=>[e(s,{class:"w-[400px]",modelValue:o(l).mobile,"onUpdate:modelValue":t[3]||(t[3]=a=>o(l).mobile=a)},null,8,["modelValue"])]),_:1}),e(m,{label:"服务时间"},{default:n(()=>[e(s,{class:"w-[400px]","show-word-limit":"",maxlength:"20",modelValue:o(l).time,"onUpdate:modelValue":t[4]||(t[4]=a=>o(l).time=a)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})])}}});export{C as _};
diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DG0CrN4I.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BTYWUQ2V.js
similarity index 70%
rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DG0CrN4I.js
rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BTYWUQ2V.js
index 6fd6f932a..bb3e79629 100644
--- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DG0CrN4I.js
+++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BTYWUQ2V.js
@@ -1 +1 @@
-import{o as e,q as t,r as o}from"./.pnpm-BHOjf1ZS.js";const p=e({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(n){return(r,a)=>(t(),o("div"))}});export{p as _};
+import{o as e,q as t,r as o}from"./.pnpm-BuKxIMgQ.js";const p=e({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(n){return(r,a)=>(t(),o("div"))}});export{p as _};
diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BlUYjyKc.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BlUYjyKc.js
new file mode 100644
index 000000000..ad615c649
--- /dev/null
+++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BlUYjyKc.js
@@ -0,0 +1 @@
+import{o as k,q as d,r as u,v as l,D as o,bh as F,s as n,bc as U,u as s,bo as B,L as x,b6 as C,bf as N,F as b,G as c,bg as O,b9 as j,p as D}from"./.pnpm-BuKxIMgQ.js";import{_ as G}from"./add-nav.vue_vue_type_script_setup_true_lang-BvrtwrIg.js";const L={class:"flex-1 mt-4"},I=k({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(v,{emit:V}){const y=V,w=v,a=D({get:()=>w.content,set:m=>{y("update:content",m)}});return(m,e)=>{const r=B,E=U,p=O,_=N,i=C,f=F,g=j;return d(),u("div",null,[l(g,{"label-width":"70px"},{default:o(()=>[l(f,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[6]||(e[6]=n("div",{class:"flex items-end mb-4"},[n("div",{class:"text-base text-[#101010] font-medium"},"展示样式")],-1)),l(E,{modelValue:s(a).style,"onUpdate:modelValue":e[0]||(e[0]=t=>s(a).style=t)},{default:o(()=>[l(r,{value:1},{default:o(()=>[...e[4]||(e[4]=[x("固定显示",-1)])]),_:1}),l(r,{value:2},{default:o(()=>[...e[5]||(e[5]=[x("分页滑动",-1)])]),_:1})]),_:1},8,["modelValue"]),l(i,{label:"每行数量",class:"mt-4"},{default:o(()=>[l(_,{modelValue:s(a).per_line,"onUpdate:modelValue":e[1]||(e[1]=t=>s(a).per_line=t),style:{width:"300px"}},{default:o(()=>[(d(),u(b,null,c(5,t=>l(p,{key:t,label:t+"个",value:t},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"显示行数"},{default:o(()=>[l(_,{modelValue:s(a).show_line,"onUpdate:modelValue":e[2]||(e[2]=t=>s(a).show_line=t),style:{width:"300px"}},{default:o(()=>[(d(),u(b,null,c(2,t=>l(p,{key:t,label:t+"行",value:t},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(f,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[7]||(e[7]=n("div",{class:"flex items-end"},[n("div",{class:"text-base text-[#101010] font-medium"},"菜单设置"),n("div",{class:"text-xs text-tx-secondary ml-2"},"建议图片尺寸:100px*100px")],-1)),n("div",L,[l(G,{modelValue:s(a).data,"onUpdate:modelValue":e[3]||(e[3]=t=>s(a).data=t)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{I as _};
diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BmNWU9N_.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-Bpdm4zkI.js
similarity index 76%
rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BmNWU9N_.js
rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-Bpdm4zkI.js
index 82fe037b7..4152e8767 100644
--- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BmNWU9N_.js
+++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-Bpdm4zkI.js
@@ -1 +1 @@
-import{o as O,q as d,r as b,v as o,D as s,bg as F,s as l,u as p,bQ as S,O as _,b6 as q,P as r,b7 as z,I as A,K,L,b9 as P,p as Q,cn as v}from"./.pnpm-BHOjf1ZS.js";import{_ as R}from"./index-Btk0rgzN.js";import{c as T,j as k}from"./index-B31vLELt.js";import{_ as G}from"./picker-CO5ipFSA.js";import{_ as H}from"./picker-DY0rRn6Q.js";const J={class:"flex-1"},M={class:"bg-fill-light w-full p-4 mt-4"},W={class:"flex-1"},X={class:"flex-1 flex items-center"},Y={class:"drag-move cursor-move ml-auto"},Z={key:0,class:"mt-4"},f=5,ae=O({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},emits:["update:content"],setup(m,{emit:y}){const u=y,c=m,g=Q({get:()=>c.content,set:a=>{u("update:content",a)}}),w=()=>{var a;if(((a=c.content.data)==null?void 0:a.length){var i;if(((i=c.content.data)==null?void 0:i.length)<=1)return k.msgError("最少保留一张图片");const e=v(c.content);e.data.splice(a,1),u("update:content",e)};return(a,e)=>{const i=H,U=G,C=z,h=q,B=A,D=T,N=R,$=K,j=F,I=P;return d(),b("div",null,[o(I,{"label-width":"70px"},{default:s(()=>[o(j,{shadow:"never",class:"!border-none flex mt-2"},{default:s(()=>{var x;return[e[2]||(e[2]=l("div",{class:"flex items-end"},[l("div",{class:"text-base text-[#101010] font-medium"},"图片设置"),l("div",{class:"text-xs text-tx-secondary ml-2"}," 最多添加5张,建议图片尺寸:750px*200px ")],-1)),l("div",J,[o(p(S),{class:"draggable",modelValue:p(g).data,"onUpdate:modelValue":e[0]||(e[0]=t=>p(g).data=t),animation:"300",handle:".drag-move"},{item:s(({element:t,index:V})=>[(d(),_(N,{key:V,onClose:n=>E(V),class:"w-full"},{default:s(()=>[l("div",M,[o(i,{width:"396px",height:"196px",modelValue:t.image,"onUpdate:modelValue":n=>t.image=n,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),l("div",W,[o(h,{class:"mt-[18px]",label:"图片链接"},{default:s(()=>[m.type=="mobile"?(d(),_(U,{key:0,modelValue:t.link,"onUpdate:modelValue":n=>t.link=n},null,8,["modelValue","onUpdate:modelValue"])):r("",!0),m.type=="pc"?(d(),_(C,{key:1,placeholder:"请输入链接",modelValue:t.link.path,"onUpdate:modelValue":n=>t.link.path=n},null,8,["modelValue","onUpdate:modelValue"])):r("",!0)]),_:2},1024),o(h,{label:"是否显示",class:"mt-[18px] !mb-0"},{default:s(()=>[l("div",X,[o(B,{modelValue:t.is_show,"onUpdate:modelValue":n=>t.is_show=n,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),l("div",Y,[o(D,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])]),((x=m.content.data)==null?void 0:x.length)[...e[1]||(e[1]=[L("添加图片",-1)])]),_:1})])):r("",!0)]}),_:1})]),_:1})])}}});export{ae as _};
+import{o as O,q as d,r as b,v as o,D as s,bh as F,s as l,u as p,bQ as S,O as _,b6 as q,P as r,b7 as z,I as A,K,L,b9 as P,p as Q,cn as v}from"./.pnpm-BuKxIMgQ.js";import{_ as R}from"./index-BYpT7Ezr.js";import{c as T,j as k}from"./index-BZAvl557.js";import{_ as G}from"./picker-Bb1gdsBd.js";import{_ as H}from"./picker-C-hBLp_q.js";const J={class:"flex-1"},M={class:"bg-fill-light w-full p-4 mt-4"},W={class:"flex-1"},X={class:"flex-1 flex items-center"},Y={class:"drag-move cursor-move ml-auto"},Z={key:0,class:"mt-4"},f=5,ae=O({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},emits:["update:content"],setup(m,{emit:y}){const u=y,c=m,h=Q({get:()=>c.content,set:a=>{u("update:content",a)}}),w=()=>{var a;if(((a=c.content.data)==null?void 0:a.length){var i;if(((i=c.content.data)==null?void 0:i.length)<=1)return k.msgError("最少保留一张图片");const e=v(c.content);e.data.splice(a,1),u("update:content",e)};return(a,e)=>{const i=H,U=G,C=z,g=q,B=A,D=T,N=R,$=K,j=F,I=P;return d(),b("div",null,[o(I,{"label-width":"70px"},{default:s(()=>[o(j,{shadow:"never",class:"!border-none flex mt-2"},{default:s(()=>{var x;return[e[2]||(e[2]=l("div",{class:"flex items-end"},[l("div",{class:"text-base text-[#101010] font-medium"},"图片设置"),l("div",{class:"text-xs text-tx-secondary ml-2"}," 最多添加5张,建议图片尺寸:750px*200px ")],-1)),l("div",J,[o(p(S),{class:"draggable",modelValue:p(h).data,"onUpdate:modelValue":e[0]||(e[0]=t=>p(h).data=t),animation:"300",handle:".drag-move"},{item:s(({element:t,index:V})=>[(d(),_(N,{key:V,onClose:n=>E(V),class:"w-full"},{default:s(()=>[l("div",M,[o(i,{width:"396px",height:"196px",modelValue:t.image,"onUpdate:modelValue":n=>t.image=n,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),l("div",W,[o(g,{class:"mt-[18px]",label:"图片链接"},{default:s(()=>[m.type=="mobile"?(d(),_(U,{key:0,modelValue:t.link,"onUpdate:modelValue":n=>t.link=n},null,8,["modelValue","onUpdate:modelValue"])):r("",!0),m.type=="pc"?(d(),_(C,{key:1,placeholder:"请输入链接",modelValue:t.link.path,"onUpdate:modelValue":n=>t.link.path=n},null,8,["modelValue","onUpdate:modelValue"])):r("",!0)]),_:2},1024),o(g,{label:"是否显示",class:"mt-[18px] !mb-0"},{default:s(()=>[l("div",X,[o(B,{modelValue:t.is_show,"onUpdate:modelValue":n=>t.is_show=n,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),l("div",Y,[o(D,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])]),((x=m.content.data)==null?void 0:x.length)[...e[1]||(e[1]=[L("添加图片",-1)])]),_:1})])):r("",!0)]}),_:1})]),_:1})])}}});export{ae as _};
diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DvEPH3sF.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-C1js62HS.js
similarity index 70%
rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DvEPH3sF.js
rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-C1js62HS.js
index 6fd6f932a..bb3e79629 100644
--- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DvEPH3sF.js
+++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-C1js62HS.js
@@ -1 +1 @@
-import{o as e,q as t,r as o}from"./.pnpm-BHOjf1ZS.js";const p=e({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(n){return(r,a)=>(t(),o("div"))}});export{p as _};
+import{o as e,q as t,r as o}from"./.pnpm-BuKxIMgQ.js";const p=e({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(n){return(r,a)=>(t(),o("div"))}});export{p as _};
diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DNAI5vfX.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CFcUNFxo.js
similarity index 81%
rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DNAI5vfX.js
rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CFcUNFxo.js
index 4396abcea..fc72657c7 100644
--- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DNAI5vfX.js
+++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CFcUNFxo.js
@@ -1 +1 @@
-import{o as V,q as E,r as w,v as t,D as o,bg as y,b6 as g,b7 as B,u as s,s as a,bc as C,bf as N,L as u,b9 as U,p as j}from"./.pnpm-BHOjf1ZS.js";import{_ as k}from"./add-nav.vue_vue_type_script_setup_true_lang-D6sR8PmU.js";const D={class:"flex-1"},O=V({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(p,{emit:i}){const f=i,_=p,l=j({get:()=>_.content,set:m=>{f("update:content",m)}});return(m,e)=>{const x=B,c=g,d=y,r=N,b=C,v=U;return E(),w("div",null,[t(v,{"label-width":"70px"},{default:o(()=>[t(d,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[t(c,{label:"标题"},{default:o(()=>[t(x,{class:"w-[396px]",modelValue:s(l).title,"onUpdate:modelValue":e[0]||(e[0]=n=>s(l).title=n)},null,8,["modelValue"])]),_:1})]),_:1}),t(d,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[5]||(e[5]=a("div",{class:"flex items-end mb-4"},[a("div",{class:"text-base text-[#101010] font-medium"},"展示样式")],-1)),t(b,{modelValue:s(l).style,"onUpdate:modelValue":e[1]||(e[1]=n=>s(l).style=n)},{default:o(()=>[t(r,{value:1},{default:o(()=>[...e[3]||(e[3]=[u("横排",-1)])]),_:1}),t(r,{value:2},{default:o(()=>[...e[4]||(e[4]=[u("竖排",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(d,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[6]||(e[6]=a("div",{class:"flex items-end mb-4"},[a("div",{class:"text-base text-[#101010] font-medium"},"菜单"),a("div",{class:"text-xs text-tx-secondary ml-2"},"建议图片尺寸:100px*100px")],-1)),a("div",D,[t(k,{modelValue:s(l).data,"onUpdate:modelValue":e[2]||(e[2]=n=>s(l).data=n)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{O as _};
+import{o as V,q as E,r as w,v as t,D as o,bh as y,b6 as B,b7 as C,u as s,s as a,bc as N,bo as U,L as u,b9 as g,p as j}from"./.pnpm-BuKxIMgQ.js";import{_ as k}from"./add-nav.vue_vue_type_script_setup_true_lang-BvrtwrIg.js";const D={class:"flex-1"},O=V({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(p,{emit:i}){const f=i,_=p,l=j({get:()=>_.content,set:m=>{f("update:content",m)}});return(m,e)=>{const x=C,c=B,d=y,r=U,b=N,v=g;return E(),w("div",null,[t(v,{"label-width":"70px"},{default:o(()=>[t(d,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[t(c,{label:"标题"},{default:o(()=>[t(x,{class:"w-[396px]",modelValue:s(l).title,"onUpdate:modelValue":e[0]||(e[0]=n=>s(l).title=n)},null,8,["modelValue"])]),_:1})]),_:1}),t(d,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[5]||(e[5]=a("div",{class:"flex items-end mb-4"},[a("div",{class:"text-base text-[#101010] font-medium"},"展示样式")],-1)),t(b,{modelValue:s(l).style,"onUpdate:modelValue":e[1]||(e[1]=n=>s(l).style=n)},{default:o(()=>[t(r,{value:1},{default:o(()=>[...e[3]||(e[3]=[u("横排",-1)])]),_:1}),t(r,{value:2},{default:o(()=>[...e[4]||(e[4]=[u("竖排",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(d,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[6]||(e[6]=a("div",{class:"flex items-end mb-4"},[a("div",{class:"text-base text-[#101010] font-medium"},"菜单"),a("div",{class:"text-xs text-tx-secondary ml-2"},"建议图片尺寸:100px*100px")],-1)),a("div",D,[t(k,{modelValue:s(l).data,"onUpdate:modelValue":e[2]||(e[2]=n=>s(l).data=n)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{O as _};
diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CUU4ecby.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CUU4ecby.js
deleted file mode 100644
index 844fb2b26..000000000
--- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CUU4ecby.js
+++ /dev/null
@@ -1 +0,0 @@
-import{o as k,q as d,r as u,v as l,D as o,bg as F,s,bc as U,u as n,bf as B,L as x,b6 as C,bm as N,F as b,G as c,bn as O,b9 as j,p as D}from"./.pnpm-BHOjf1ZS.js";import{_ as G}from"./add-nav.vue_vue_type_script_setup_true_lang-D6sR8PmU.js";const L={class:"flex-1 mt-4"},I=k({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(v,{emit:V}){const y=V,w=v,a=D({get:()=>w.content,set:m=>{y("update:content",m)}});return(m,e)=>{const r=B,E=U,p=O,_=N,i=C,f=F,g=j;return d(),u("div",null,[l(g,{"label-width":"70px"},{default:o(()=>[l(f,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[6]||(e[6]=s("div",{class:"flex items-end mb-4"},[s("div",{class:"text-base text-[#101010] font-medium"},"展示样式")],-1)),l(E,{modelValue:n(a).style,"onUpdate:modelValue":e[0]||(e[0]=t=>n(a).style=t)},{default:o(()=>[l(r,{value:1},{default:o(()=>[...e[4]||(e[4]=[x("固定显示",-1)])]),_:1}),l(r,{value:2},{default:o(()=>[...e[5]||(e[5]=[x("分页滑动",-1)])]),_:1})]),_:1},8,["modelValue"]),l(i,{label:"每行数量",class:"mt-4"},{default:o(()=>[l(_,{modelValue:n(a).per_line,"onUpdate:modelValue":e[1]||(e[1]=t=>n(a).per_line=t),style:{width:"300px"}},{default:o(()=>[(d(),u(b,null,c(5,t=>l(p,{key:t,label:t+"个",value:t},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"显示行数"},{default:o(()=>[l(_,{modelValue:n(a).show_line,"onUpdate:modelValue":e[2]||(e[2]=t=>n(a).show_line=t),style:{width:"300px"}},{default:o(()=>[(d(),u(b,null,c(2,t=>l(p,{key:t,label:t+"行",value:t},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(f,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[7]||(e[7]=s("div",{class:"flex items-end"},[s("div",{class:"text-base text-[#101010] font-medium"},"菜单设置"),s("div",{class:"text-xs text-tx-secondary ml-2"},"建议图片尺寸:100px*100px")],-1)),s("div",L,[l(G,{modelValue:n(a).data,"onUpdate:modelValue":e[3]||(e[3]=t=>n(a).data=t)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{I as _};
diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-D0EQrZlD.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-Cg9TUgbx.js
similarity index 88%
rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-D0EQrZlD.js
rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-Cg9TUgbx.js
index b51b34d0d..cf628368f 100644
--- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-D0EQrZlD.js
+++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-Cg9TUgbx.js
@@ -1 +1 @@
-import{o as E,q as s,O as r,D as t,v as l,bg as F,b6 as C,bc as N,u as a,bf as z,L as p,b7 as B,P as i,s as b,b9 as O,p as j}from"./.pnpm-BHOjf1ZS.js";import{_ as D}from"./index.vue_vue_type_script_setup_true_lang-kAZgL5aN.js";import{_ as I}from"./picker-DY0rRn6Q.js";const G=E({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(d,{emit:g}){const y=g,x=d,o=j({get:()=>x.content,set:f=>{y("update:content",f)}});return(f,e)=>{const m=z,_=N,u=C,v=B,V=I,k=D,U=F,w=O;return s(),r(w,{ref:"form","label-width":"80px",size:"large"},{default:t(()=>[l(U,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[l(u,{label:"页面标题"},{default:t(()=>[l(_,{modelValue:a(o).title_type,"onUpdate:modelValue":e[0]||(e[0]=n=>a(o).title_type=n)},{default:t(()=>[l(m,{value:"1"},{default:t(()=>[...e[7]||(e[7]=[p("文字",-1)])]),_:1}),l(m,{value:"2"},{default:t(()=>[...e[8]||(e[8]=[p("图片",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),d.content.title_type==1?(s(),r(u,{key:0},{default:t(()=>[l(v,{modelValue:a(o).title,"onUpdate:modelValue":e[1]||(e[1]=n=>a(o).title=n),maxlength:"8","show-word-limit":"",class:"w-[300px]",placeholder:"请输入页面标题"},null,8,["modelValue"])]),_:1})):i("",!0),d.content.title_type==2?(s(),r(u,{key:1},{default:t(()=>[l(V,{modelValue:a(o).title_img,"onUpdate:modelValue":e[2]||(e[2]=n=>a(o).title_img=n),limit:1,size:"100px"},null,8,["modelValue"]),e[9]||(e[9]=b("div",{class:"form-tips"},"建议图片尺寸:300px*40px",-1))]),_:1})):i("",!0),d.content.title_type==1?(s(),r(u,{key:2,label:"文字颜色"},{default:t(()=>[l(_,{modelValue:a(o).text_color,"onUpdate:modelValue":e[3]||(e[3]=n=>a(o).text_color=n)},{default:t(()=>[l(m,{value:"1"},{default:t(()=>[...e[10]||(e[10]=[p("白色",-1)])]),_:1}),l(m,{value:"2"},{default:t(()=>[...e[11]||(e[11]=[p("黑色",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})):i("",!0),l(u,{label:"页面背景"},{default:t(()=>[l(_,{modelValue:a(o).bg_type,"onUpdate:modelValue":e[4]||(e[4]=n=>a(o).bg_type=n)},{default:t(()=>[l(m,{value:"1"},{default:t(()=>[...e[12]||(e[12]=[p("背景颜色",-1)])]),_:1}),l(m,{value:"2"},{default:t(()=>[...e[13]||(e[13]=[p("背景图片",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),d.content.bg_type==1?(s(),r(u,{key:3},{default:t(()=>[l(k,{modelValue:a(o).bg_color,"onUpdate:modelValue":e[5]||(e[5]=n=>a(o).bg_color=n),"reset-color":"#F5F5F5"},null,8,["modelValue"])]),_:1})):i("",!0),d.content.bg_type==2?(s(),r(u,{key:4},{default:t(()=>[l(V,{modelValue:a(o).bg_image,"onUpdate:modelValue":e[6]||(e[6]=n=>a(o).bg_image=n),limit:1,size:"100px"},null,8,["modelValue"]),e[14]||(e[14]=b("div",{class:"form-tips"},"建议图片尺寸:750px*高度不限",-1))]),_:1})):i("",!0)]),_:1})]),_:1},512)}}});export{G as _};
+import{o as E,q as s,O as r,D as t,v as l,bh as F,b6 as C,bc as N,u as a,bo as z,L as p,b7 as B,P as i,s as b,b9 as O,p as j}from"./.pnpm-BuKxIMgQ.js";import{_ as D}from"./index.vue_vue_type_script_setup_true_lang-BzrKBDTf.js";import{_ as I}from"./picker-C-hBLp_q.js";const G=E({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(d,{emit:g}){const y=g,x=d,o=j({get:()=>x.content,set:f=>{y("update:content",f)}});return(f,e)=>{const m=z,_=N,u=C,v=B,V=I,k=D,U=F,w=O;return s(),r(w,{ref:"form","label-width":"80px",size:"large"},{default:t(()=>[l(U,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[l(u,{label:"页面标题"},{default:t(()=>[l(_,{modelValue:a(o).title_type,"onUpdate:modelValue":e[0]||(e[0]=n=>a(o).title_type=n)},{default:t(()=>[l(m,{value:"1"},{default:t(()=>[...e[7]||(e[7]=[p("文字",-1)])]),_:1}),l(m,{value:"2"},{default:t(()=>[...e[8]||(e[8]=[p("图片",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),d.content.title_type==1?(s(),r(u,{key:0},{default:t(()=>[l(v,{modelValue:a(o).title,"onUpdate:modelValue":e[1]||(e[1]=n=>a(o).title=n),maxlength:"8","show-word-limit":"",class:"w-[300px]",placeholder:"请输入页面标题"},null,8,["modelValue"])]),_:1})):i("",!0),d.content.title_type==2?(s(),r(u,{key:1},{default:t(()=>[l(V,{modelValue:a(o).title_img,"onUpdate:modelValue":e[2]||(e[2]=n=>a(o).title_img=n),limit:1,size:"100px"},null,8,["modelValue"]),e[9]||(e[9]=b("div",{class:"form-tips"},"建议图片尺寸:300px*40px",-1))]),_:1})):i("",!0),d.content.title_type==1?(s(),r(u,{key:2,label:"文字颜色"},{default:t(()=>[l(_,{modelValue:a(o).text_color,"onUpdate:modelValue":e[3]||(e[3]=n=>a(o).text_color=n)},{default:t(()=>[l(m,{value:"1"},{default:t(()=>[...e[10]||(e[10]=[p("白色",-1)])]),_:1}),l(m,{value:"2"},{default:t(()=>[...e[11]||(e[11]=[p("黑色",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})):i("",!0),l(u,{label:"页面背景"},{default:t(()=>[l(_,{modelValue:a(o).bg_type,"onUpdate:modelValue":e[4]||(e[4]=n=>a(o).bg_type=n)},{default:t(()=>[l(m,{value:"1"},{default:t(()=>[...e[12]||(e[12]=[p("背景颜色",-1)])]),_:1}),l(m,{value:"2"},{default:t(()=>[...e[13]||(e[13]=[p("背景图片",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),d.content.bg_type==1?(s(),r(u,{key:3},{default:t(()=>[l(k,{modelValue:a(o).bg_color,"onUpdate:modelValue":e[5]||(e[5]=n=>a(o).bg_color=n),"reset-color":"#F5F5F5"},null,8,["modelValue"])]),_:1})):i("",!0),d.content.bg_type==2?(s(),r(u,{key:4},{default:t(()=>[l(V,{modelValue:a(o).bg_image,"onUpdate:modelValue":e[6]||(e[6]=n=>a(o).bg_image=n),limit:1,size:"100px"},null,8,["modelValue"]),e[14]||(e[14]=b("div",{class:"form-tips"},"建议图片尺寸:750px*高度不限",-1))]),_:1})):i("",!0)]),_:1})]),_:1},512)}}});export{G as _};
diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-awcvFaxy.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DLYgO2JI.js
similarity index 70%
rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-awcvFaxy.js
rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DLYgO2JI.js
index 6fd6f932a..bb3e79629 100644
--- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-awcvFaxy.js
+++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DLYgO2JI.js
@@ -1 +1 @@
-import{o as e,q as t,r as o}from"./.pnpm-BHOjf1ZS.js";const p=e({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(n){return(r,a)=>(t(),o("div"))}});export{p as _};
+import{o as e,q as t,r as o}from"./.pnpm-BuKxIMgQ.js";const p=e({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(n){return(r,a)=>(t(),o("div"))}});export{p as _};
diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-Bh9QIjXd.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DahpvuQt.js
similarity index 80%
rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-Bh9QIjXd.js
rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DahpvuQt.js
index 4f4482488..366b58d19 100644
--- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-Bh9QIjXd.js
+++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DahpvuQt.js
@@ -1 +1 @@
-import{o as j,q as u,r as g,v as t,D as l,bg as I,s,u as i,bQ as O,O as F,b6 as q,b7 as z,I as A,K,L,P,b9 as Q,p as R,cn as b}from"./.pnpm-BHOjf1ZS.js";import{_ as S}from"./index-Btk0rgzN.js";import{c as T,j as v}from"./index-B31vLELt.js";import{_ as G}from"./picker-CO5ipFSA.js";import{_ as H}from"./picker-DY0rRn6Q.js";const J={class:"bg-fill-light flex items-center w-full p-4 mt-4"},M={class:"ml-3 flex-1"},W={class:"flex-1 flex items-center"},X={class:"drag-move cursor-move ml-auto"},Y={key:0,class:"mt-4"},p=5,le=j({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(r,{emit:h}){const m=h,c=r,f=R({get:()=>c.content,set:a=>{m("update:content",a)}}),k=()=>{var a;if(((a=c.content.data)==null?void 0:a.length){var d;if(((d=c.content.data)==null?void 0:d.length)<=1)return v.msgError("最少保留一张图片");const e=b(c.content);e.data.splice(a,1),m("update:content",e)};return(a,e)=>{const d=H,y=z,_=q,E=G,U=A,C=T,B=S,D=K,N=I,$=Q;return u(),g("div",null,[t($,{"label-width":"70px"},{default:l(()=>[t(N,{shadow:"never",class:"!border-none flex mt-2"},{default:l(()=>{var x;return[e[2]||(e[2]=s("div",{class:"flex items-end mb-4"},[s("div",{class:"text-base text-[#101010] font-medium"},"菜单"),s("div",{class:"text-xs text-tx-secondary ml-2"}," 最多添加5张,建议图片尺寸:750px*200px ")],-1)),t(i(O),{class:"draggable",modelValue:i(f).data,"onUpdate:modelValue":e[0]||(e[0]=o=>i(f).data=o),animation:"300",handle:".drag-move","item-key":"index"},{item:l(({element:o,index:V})=>[(u(),F(B,{key:V,onClose:n=>w(V),class:"w-[467px]"},{default:l(()=>[s("div",J,[t(d,{modelValue:o.image,"onUpdate:modelValue":n=>o.image=n,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),s("div",M,[t(_,{label:"图片名称"},{default:l(()=>[t(y,{modelValue:o.name,"onUpdate:modelValue":n=>o.name=n,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),t(_,{class:"mt-[18px]",label:"图片链接"},{default:l(()=>[t(E,{modelValue:o.link,"onUpdate:modelValue":n=>o.link=n},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),t(_,{label:"是否显示",class:"mt-[18px]"},{default:l(()=>[s("div",W,[t(U,{modelValue:o.is_show,"onUpdate:modelValue":n=>o.is_show=n,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),s("div",X,[t(C,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"]),((x=r.content.data)==null?void 0:x.length)
[...e[1]||(e[1]=[L("添加图片",-1)])]),_:1})])):P("",!0)]}),_:1})]),_:1})])}}});export{le as _};
+import{o as j,q as u,r as b,v as t,D as l,bh as I,s,u as i,bQ as O,O as F,b6 as q,b7 as z,I as A,K,L,P,b9 as Q,p as R,cn as g}from"./.pnpm-BuKxIMgQ.js";import{_ as S}from"./index-BYpT7Ezr.js";import{c as T,j as v}from"./index-BZAvl557.js";import{_ as G}from"./picker-Bb1gdsBd.js";import{_ as H}from"./picker-C-hBLp_q.js";const J={class:"bg-fill-light flex items-center w-full p-4 mt-4"},M={class:"ml-3 flex-1"},W={class:"flex-1 flex items-center"},X={class:"drag-move cursor-move ml-auto"},Y={key:0,class:"mt-4"},p=5,le=j({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(r,{emit:h}){const m=h,c=r,f=R({get:()=>c.content,set:a=>{m("update:content",a)}}),k=()=>{var a;if(((a=c.content.data)==null?void 0:a.length)
{var d;if(((d=c.content.data)==null?void 0:d.length)<=1)return v.msgError("最少保留一张图片");const e=g(c.content);e.data.splice(a,1),m("update:content",e)};return(a,e)=>{const d=H,y=z,_=q,E=G,U=A,C=T,B=S,D=K,N=I,$=Q;return u(),b("div",null,[t($,{"label-width":"70px"},{default:l(()=>[t(N,{shadow:"never",class:"!border-none flex mt-2"},{default:l(()=>{var x;return[e[2]||(e[2]=s("div",{class:"flex items-end mb-4"},[s("div",{class:"text-base text-[#101010] font-medium"},"菜单"),s("div",{class:"text-xs text-tx-secondary ml-2"}," 最多添加5张,建议图片尺寸:750px*200px ")],-1)),t(i(O),{class:"draggable",modelValue:i(f).data,"onUpdate:modelValue":e[0]||(e[0]=o=>i(f).data=o),animation:"300",handle:".drag-move","item-key":"index"},{item:l(({element:o,index:V})=>[(u(),F(B,{key:V,onClose:n=>w(V),class:"w-[467px]"},{default:l(()=>[s("div",J,[t(d,{modelValue:o.image,"onUpdate:modelValue":n=>o.image=n,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),s("div",M,[t(_,{label:"图片名称"},{default:l(()=>[t(y,{modelValue:o.name,"onUpdate:modelValue":n=>o.name=n,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),t(_,{class:"mt-[18px]",label:"图片链接"},{default:l(()=>[t(E,{modelValue:o.link,"onUpdate:modelValue":n=>o.link=n},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),t(_,{label:"是否显示",class:"mt-[18px]"},{default:l(()=>[s("div",W,[t(U,{modelValue:o.is_show,"onUpdate:modelValue":n=>o.is_show=n,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),s("div",X,[t(C,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"]),((x=r.content.data)==null?void 0:x.length)
[...e[1]||(e[1]=[L("添加图片",-1)])]),_:1})])):P("",!0)]}),_:1})]),_:1})])}}});export{le as _};
diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BiXDmSCm.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-Ybp27V87.js
similarity index 92%
rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BiXDmSCm.js
rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-Ybp27V87.js
index b5bcac9b9..0601d5025 100644
--- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BiXDmSCm.js
+++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-Ybp27V87.js
@@ -1 +1 @@
-import{o as L,q as V,r as v,v as e,D as t,s,L as h,bg as q,b6 as A,u as m,bQ as K,ae as M,b7 as O,I as Q,K as R,T as w,P as G,b9 as H,F as J,p as y}from"./.pnpm-BHOjf1ZS.js";import{_ as W}from"./index-Btk0rgzN.js";import{_ as X}from"./picker-CO5ipFSA.js";import{_ as Y}from"./picker-DY0rRn6Q.js";import{c as Z,j as b}from"./index-B31vLELt.js";import{_ as ee}from"./index.vue_vue_type_script_setup_true_lang-kAZgL5aN.js";const le={class:"mb-[18px] max-w-[400px]"},oe={class:"bg-fill-light w-full p-4 mt-4"},te={class:"upload-btn w-[60px] h-[60px]"},se={class:"upload-btn w-[60px] h-[60px]"},ae={class:"flex-1 flex items-center"},ne={class:"drag-move cursor-move ml-auto"},de={key:0,class:"mt-4"},c=5,p=2,_e=L({__name:"attr",props:{modelValue:{type:Object,default:()=>({list:[],style:{}})}},emits:["update:modelValue"],setup(k,{emit:U}){const C=k,E=U,n=y({get(){return C.modelValue},set(a){E("update:modelValue",a)}}),$=y(()=>{var a;return((a=n.value.list)==null?void 0:a.filter(l=>l.is_show=="1"))||[]}),z=()=>{var a;((a=n.value.list)==null?void 0:a.length){var l;if(((l=n.value.list)==null?void 0:l.length)<=p)return b.msgError(`最少保留${p}个`);n.value.list.splice(a,1)},D=a=>a.relatedContext.index!=0,F=a=>{if($.value.length{const _=q,x=ee,i=A,f=Z,g=Y,N=O,I=X,P=Q,S=W,T=R,j=H;return V(),v(J,null,[e(_,{shadow:"never",class:"!border-none flex"},{default:t(()=>[...l[3]||(l[3]=[s("div",{class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2 text-xl font-medium"},[h(" 底部导航设置 "),s("span",{class:"form-tips ml-[10px] !mt-0"}," 至少添加2个导航,最多添加5个导航 ")],-1)])]),_:1}),e(j,{"label-width":"70px"},{default:t(()=>[e(_,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[l[4]||(l[4]=s("div",{class:"flex items-end mb-4"},[s("div",{class:"text-base text-[#101010] font-medium"},"展示样式")],-1)),e(i,{label:"默认颜色"},{default:t(()=>[e(x,{class:"max-w-[400px]",modelValue:m(n).style.default_color,"onUpdate:modelValue":l[0]||(l[0]=u=>m(n).style.default_color=u),"default-color":"#999999"},null,8,["modelValue"])]),_:1}),e(i,{label:"选中颜色",style:{"margin-bottom":"0"}},{default:t(()=>[e(x,{class:"max-w-[400px]",modelValue:m(n).style.selected_color,"onUpdate:modelValue":l[1]||(l[1]=u=>m(n).style.selected_color=u),"default-color":"#4173ff"},null,8,["modelValue"])]),_:1})]),_:1}),e(_,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>{var u;return[l[7]||(l[7]=s("div",{class:"flex items-end mb-4"},[s("div",{class:"text-base text-[#101010] font-medium"},"菜单设置"),s("div",{class:"text-xs text-tx-secondary ml-2"},"建议图片尺寸:100px*100px")],-1)),s("div",le,[e(m(K),{class:"draggable",modelValue:m(n).list,"onUpdate:modelValue":l[2]||(l[2]=o=>m(n).list=o),animation:"300",draggable:".draggable",handle:".drag-move",move:D,"item-key":"index"},{item:t(({element:o,index:r})=>[e(S,{onClose:d=>B(r),class:M(["max-w-[400px]",{draggable:r!=0}]),"show-close":r!==0},{default:t(()=>[s("div",oe,[e(i,{label:"导航图标"},{default:t(()=>[e(g,{modelValue:o.unselected,"onUpdate:modelValue":d=>o.unselected=d,"upload-class":"bg-body","exclude-domain":"",size:"60px"},{upload:t(()=>[s("div",te,[e(f,{name:"el-icon-Plus",size:16}),l[5]||(l[5]=s("span",{class:"text-xs leading-5"}," 未选中 ",-1))])]),_:1},8,["modelValue","onUpdate:modelValue"]),e(g,{modelValue:o.selected,"onUpdate:modelValue":d=>o.selected=d,"exclude-domain":"","upload-class":"bg-body",size:"60px"},{upload:t(()=>[s("div",se,[e(f,{name:"el-icon-Plus",size:16}),l[6]||(l[6]=s("span",{class:"text-xs leading-5"}," 选中 ",-1))])]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"导航名称"},{default:t(()=>[e(N,{modelValue:o.name,"onUpdate:modelValue":d=>o.name=d,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"链接地址"},{default:t(()=>[e(I,{"is-tab":!0,disabled:r===0,modelValue:o.link,"onUpdate:modelValue":d=>o.link=d},null,8,["disabled","modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"是否显示"},{default:t(()=>[s("div",ae,[e(P,{disabled:r==0,modelValue:o.is_show,"onUpdate:modelValue":d=>o.is_show=d,"active-value":1,"inactive-value":0,onChange:d=>F(o)},null,8,["disabled","modelValue","onUpdate:modelValue","onChange"]),s("div",ne,[e(f,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])]),_:2},1032,["onClose","show-close","class"])]),_:1},8,["modelValue"])]),((u=m(n).list)==null?void 0:u.length){var o;return[h(" 添加导航 "+w((o=m(n).list)==null?void 0:o.length)+" / "+w(c),1)]}),_:1})])):G("",!0)]}),_:1})]),_:1})],64)}}});export{_e as _};
+import{o as L,q as V,r as v,v as e,D as t,s,L as h,bh as q,b6 as A,u as m,bQ as K,ae as M,b7 as O,I as Q,K as R,T as w,P as G,b9 as H,F as J,p as y}from"./.pnpm-BuKxIMgQ.js";import{_ as W}from"./index-BYpT7Ezr.js";import{_ as X}from"./picker-Bb1gdsBd.js";import{_ as Y}from"./picker-C-hBLp_q.js";import{c as Z,j as b}from"./index-BZAvl557.js";import{_ as ee}from"./index.vue_vue_type_script_setup_true_lang-BzrKBDTf.js";const le={class:"mb-[18px] max-w-[400px]"},oe={class:"bg-fill-light w-full p-4 mt-4"},te={class:"upload-btn w-[60px] h-[60px]"},se={class:"upload-btn w-[60px] h-[60px]"},ae={class:"flex-1 flex items-center"},ne={class:"drag-move cursor-move ml-auto"},de={key:0,class:"mt-4"},c=5,p=2,_e=L({__name:"attr",props:{modelValue:{type:Object,default:()=>({list:[],style:{}})}},emits:["update:modelValue"],setup(k,{emit:U}){const C=k,E=U,n=y({get(){return C.modelValue},set(a){E("update:modelValue",a)}}),$=y(()=>{var a;return((a=n.value.list)==null?void 0:a.filter(l=>l.is_show=="1"))||[]}),z=()=>{var a;((a=n.value.list)==null?void 0:a.length){var l;if(((l=n.value.list)==null?void 0:l.length)<=p)return b.msgError(`最少保留${p}个`);n.value.list.splice(a,1)},D=a=>a.relatedContext.index!=0,F=a=>{if($.value.length{const _=q,x=ee,i=A,f=Z,g=Y,N=O,I=X,P=Q,S=W,T=R,j=H;return V(),v(J,null,[e(_,{shadow:"never",class:"!border-none flex"},{default:t(()=>[...l[3]||(l[3]=[s("div",{class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2 text-xl font-medium"},[h(" 底部导航设置 "),s("span",{class:"form-tips ml-[10px] !mt-0"}," 至少添加2个导航,最多添加5个导航 ")],-1)])]),_:1}),e(j,{"label-width":"70px"},{default:t(()=>[e(_,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[l[4]||(l[4]=s("div",{class:"flex items-end mb-4"},[s("div",{class:"text-base text-[#101010] font-medium"},"展示样式")],-1)),e(i,{label:"默认颜色"},{default:t(()=>[e(x,{class:"max-w-[400px]",modelValue:m(n).style.default_color,"onUpdate:modelValue":l[0]||(l[0]=u=>m(n).style.default_color=u),"default-color":"#999999"},null,8,["modelValue"])]),_:1}),e(i,{label:"选中颜色",style:{"margin-bottom":"0"}},{default:t(()=>[e(x,{class:"max-w-[400px]",modelValue:m(n).style.selected_color,"onUpdate:modelValue":l[1]||(l[1]=u=>m(n).style.selected_color=u),"default-color":"#4173ff"},null,8,["modelValue"])]),_:1})]),_:1}),e(_,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>{var u;return[l[7]||(l[7]=s("div",{class:"flex items-end mb-4"},[s("div",{class:"text-base text-[#101010] font-medium"},"菜单设置"),s("div",{class:"text-xs text-tx-secondary ml-2"},"建议图片尺寸:100px*100px")],-1)),s("div",le,[e(m(K),{class:"draggable",modelValue:m(n).list,"onUpdate:modelValue":l[2]||(l[2]=o=>m(n).list=o),animation:"300",draggable:".draggable",handle:".drag-move",move:D,"item-key":"index"},{item:t(({element:o,index:r})=>[e(S,{onClose:d=>B(r),class:M(["max-w-[400px]",{draggable:r!=0}]),"show-close":r!==0},{default:t(()=>[s("div",oe,[e(i,{label:"导航图标"},{default:t(()=>[e(g,{modelValue:o.unselected,"onUpdate:modelValue":d=>o.unselected=d,"upload-class":"bg-body","exclude-domain":"",size:"60px"},{upload:t(()=>[s("div",te,[e(f,{name:"el-icon-Plus",size:16}),l[5]||(l[5]=s("span",{class:"text-xs leading-5"}," 未选中 ",-1))])]),_:1},8,["modelValue","onUpdate:modelValue"]),e(g,{modelValue:o.selected,"onUpdate:modelValue":d=>o.selected=d,"exclude-domain":"","upload-class":"bg-body",size:"60px"},{upload:t(()=>[s("div",se,[e(f,{name:"el-icon-Plus",size:16}),l[6]||(l[6]=s("span",{class:"text-xs leading-5"}," 选中 ",-1))])]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"导航名称"},{default:t(()=>[e(N,{modelValue:o.name,"onUpdate:modelValue":d=>o.name=d,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"链接地址"},{default:t(()=>[e(I,{"is-tab":!0,disabled:r===0,modelValue:o.link,"onUpdate:modelValue":d=>o.link=d},null,8,["disabled","modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"是否显示"},{default:t(()=>[s("div",ae,[e(P,{disabled:r==0,modelValue:o.is_show,"onUpdate:modelValue":d=>o.is_show=d,"active-value":1,"inactive-value":0,onChange:d=>F(o)},null,8,["disabled","modelValue","onUpdate:modelValue","onChange"]),s("div",ne,[e(f,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])]),_:2},1032,["onClose","show-close","class"])]),_:1},8,["modelValue"])]),((u=m(n).list)==null?void 0:u.length){var o;return[h(" 添加导航 "+w((o=m(n).list)==null?void 0:o.length)+" / "+w(c),1)]}),_:1})])):G("",!0)]}),_:1})]),_:1})],64)}}});export{_e as _};
diff --git a/server/public/admin/assets/auth-DFt2Mgr5.js b/server/public/admin/assets/auth-DFt2Mgr5.js
deleted file mode 100644
index 33fead630..000000000
--- a/server/public/admin/assets/auth-DFt2Mgr5.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./auth.vue_vue_type_script_setup_true_lang-Bba9yML1.js";import"./.pnpm-BHOjf1ZS.js";import"./menu-O9ulO-rY.js";import"./index-B31vLELt.js";import"./role-DMU3SLD8.js";import"./index-Dt_C33Jx.js";export{o as default};
diff --git a/server/public/admin/assets/auth-Ohqi4cn2.js b/server/public/admin/assets/auth-Ohqi4cn2.js
new file mode 100644
index 000000000..0dd20e0c2
--- /dev/null
+++ b/server/public/admin/assets/auth-Ohqi4cn2.js
@@ -0,0 +1 @@
+import{_ as o}from"./auth.vue_vue_type_script_setup_true_lang-DumDt0UH.js";import"./.pnpm-BuKxIMgQ.js";import"./menu-BxP-O3HL.js";import"./index-BZAvl557.js";import"./role-CFd3KqwG.js";import"./index-BARAiw4K.js";export{o as default};
diff --git a/server/public/admin/assets/auth.vue_vue_type_script_setup_true_lang-Bba9yML1.js b/server/public/admin/assets/auth.vue_vue_type_script_setup_true_lang-Bba9yML1.js
deleted file mode 100644
index 8ef4d40a0..000000000
--- a/server/public/admin/assets/auth.vue_vue_type_script_setup_true_lang-Bba9yML1.js
+++ /dev/null
@@ -1 +0,0 @@
-import{o as O,q as k,r as U,v as s,D as d,ac as H,O as I,b9 as j,u as c,a2 as z,b6 as G,s as y,bd as J,C as P,bU as Q,bi as W,a8 as f,M as r,ba as X,n as b}from"./.pnpm-BHOjf1ZS.js";import{m as Y}from"./menu-O9ulO-rY.js";import{a as Z}from"./role-DMU3SLD8.js";import{_ as $}from"./index-Dt_C33Jx.js";import{y as ee}from"./index-B31vLELt.js";const te={class:"edit-popup"},re=O({__name:"auth",emits:["success","close"],setup(ae,{expose:x,emit:C}){const _=C,l=f(),h=f(),u=f(),g=r(!1),i=r(!0),m=r(!1),v=r([]),p=r([]),o=X({id:"",name:"",desc:"",sort:0,data_scope:1,menu_id:[]}),E={name:[{required:!0,message:"请输入名称",trigger:["blur"]}]},w=()=>{m.value=!0,Y().then(e=>{p.value=e,v.value=ee(e),b(()=>{A()}),m.value=!1})},R=()=>{var a,n;const e=(a=l.value)==null?void 0:a.getCheckedKeys(),t=(n=l.value)==null?void 0:n.getHalfCheckedKeys();return e==null||e.unshift.apply(e,t),e},A=()=>{o.menu_id.forEach(e=>{b(()=>{var t;(t=l.value)==null||t.setChecked(e,!0,!1)})})},D=e=>{const t=p.value;for(let a=0;a{var t,a;e?(t=l.value)==null||t.setCheckedKeys(v.value.map(n=>n.id)):(a=l.value)==null||a.setCheckedKeys([])},V=async()=>{var e,t;await((e=h.value)==null?void 0:e.validate()),o.menu_id=R(),await Z(o),(t=u.value)==null||t.close(),_("success")},B=()=>{_("close")},S=()=>{var e;(e=u.value)==null||e.open()},T=async e=>{for(const t in o)e[t]!=null&&e[t]!=null&&(o[t]=e[t])};return w(),x({open:S,setFormData:T}),(e,t)=>{const a=J,n=Q,F=G,q=z,L=j,M=W;return k(),U("div",te,[s($,{ref_key:"popupRef",ref:u,title:"分配权限",async:!0,width:"550px",onConfirm:V,onClose:B},{default:d(()=>[H((k(),I(L,{class:"ls-form",ref_key:"formRef",ref:h,rules:E,model:c(o),"label-width":"60px"},{default:d(()=>[s(q,{class:"h-[400px] sm:h-[600px]"},{default:d(()=>[s(F,{label:"权限",prop:"menu_id"},{default:d(()=>[y("div",null,[s(a,{label:"展开/折叠",onChange:D}),s(a,{label:"全选/不全选",onChange:K}),s(a,{modelValue:c(i),"onUpdate:modelValue":t[0]||(t[0]=N=>P(i)?i.value=N:null),label:"父子联动"},null,8,["modelValue"]),y("div",null,[s(n,{ref_key:"treeRef",ref:l,data:c(p),props:{label:"name",children:"children"},"check-strictly":!c(i),"node-key":"id","default-expand-all":c(g),"show-checkbox":""},null,8,["data","check-strictly","default-expand-all"])])])]),_:1})]),_:1})]),_:1},8,["model"])),[[M,c(m)]])]),_:1},512)])}}});export{re as _};
diff --git a/server/public/admin/assets/auth.vue_vue_type_script_setup_true_lang-DumDt0UH.js b/server/public/admin/assets/auth.vue_vue_type_script_setup_true_lang-DumDt0UH.js
new file mode 100644
index 000000000..c6adcb868
--- /dev/null
+++ b/server/public/admin/assets/auth.vue_vue_type_script_setup_true_lang-DumDt0UH.js
@@ -0,0 +1 @@
+import{o as O,q as k,r as U,v as s,D as i,ac as H,O as I,b9 as j,u as c,a2 as z,b6 as G,s as y,bd as J,C as P,bU as Q,bl as W,a8 as f,M as r,ba as X,n as b}from"./.pnpm-BuKxIMgQ.js";import{m as Y}from"./menu-BxP-O3HL.js";import{a as Z}from"./role-CFd3KqwG.js";import{_ as $}from"./index-BARAiw4K.js";import{y as ee}from"./index-BZAvl557.js";const te={class:"edit-popup"},re=O({__name:"auth",emits:["success","close"],setup(le,{expose:x,emit:C}){const _=C,a=f(),h=f(),u=f(),g=r(!1),d=r(!0),m=r(!1),v=r([]),p=r([]),o=X({id:"",name:"",desc:"",sort:0,data_scope:1,menu_id:[]}),E={name:[{required:!0,message:"请输入名称",trigger:["blur"]}]},w=()=>{m.value=!0,Y().then(e=>{p.value=e,v.value=ee(e),b(()=>{A()}),m.value=!1})},R=()=>{var l,n;const e=(l=a.value)==null?void 0:l.getCheckedKeys(),t=(n=a.value)==null?void 0:n.getHalfCheckedKeys();return e==null||e.unshift.apply(e,t),e},A=()=>{o.menu_id.forEach(e=>{b(()=>{var t;(t=a.value)==null||t.setChecked(e,!0,!1)})})},D=e=>{const t=p.value;for(let l=0;l{var t,l;e?(t=a.value)==null||t.setCheckedKeys(v.value.map(n=>n.id)):(l=a.value)==null||l.setCheckedKeys([])},V=async()=>{var e,t;await((e=h.value)==null?void 0:e.validate()),o.menu_id=R(),await Z(o),(t=u.value)==null||t.close(),_("success")},B=()=>{_("close")},S=()=>{var e;(e=u.value)==null||e.open()},T=async e=>{for(const t in o)e[t]!=null&&e[t]!=null&&(o[t]=e[t])};return w(),x({open:S,setFormData:T}),(e,t)=>{const l=J,n=Q,F=G,q=z,L=j,M=W;return k(),U("div",te,[s($,{ref_key:"popupRef",ref:u,title:"分配权限",async:!0,width:"550px",onConfirm:V,onClose:B},{default:i(()=>[H((k(),I(L,{class:"ls-form",ref_key:"formRef",ref:h,rules:E,model:c(o),"label-width":"60px"},{default:i(()=>[s(q,{class:"h-[400px] sm:h-[600px]"},{default:i(()=>[s(F,{label:"权限",prop:"menu_id"},{default:i(()=>[y("div",null,[s(l,{label:"展开/折叠",onChange:D}),s(l,{label:"全选/不全选",onChange:K}),s(l,{modelValue:c(d),"onUpdate:modelValue":t[0]||(t[0]=N=>P(d)?d.value=N:null),label:"父子联动"},null,8,["modelValue"]),y("div",null,[s(n,{ref_key:"treeRef",ref:a,data:c(p),props:{label:"name",children:"children"},"check-strictly":!c(d),"node-key":"id","default-expand-all":c(g),"show-checkbox":""},null,8,["data","check-strictly","default-expand-all"])])])]),_:1})]),_:1})]),_:1},8,["model"])),[[M,c(m)]])]),_:1},512)])}}});export{re as _};
diff --git a/server/public/admin/assets/balance_details-1xeLAPzD.js b/server/public/admin/assets/balance_details-ZBdF6Cov.js
similarity index 83%
rename from server/public/admin/assets/balance_details-1xeLAPzD.js
rename to server/public/admin/assets/balance_details-ZBdF6Cov.js
index 32beb51d0..213f0def2 100644
--- a/server/public/admin/assets/balance_details-1xeLAPzD.js
+++ b/server/public/admin/assets/balance_details-ZBdF6Cov.js
@@ -1 +1 @@
-import{o as y,q as m,r as h,v as e,D as l,bh as K,b9 as P,u as a,b6 as N,b7 as O,b8 as j,bm as q,bn as z,F as I,G as R,O as w,K as S,L as _,bg as $,ac as A,bj as G,bk as H,s as p,T as v,ae as J,bi as M,C as Q,ba as W}from"./.pnpm-BHOjf1ZS.js";import{_ as X}from"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import{h as Y}from"./index-B31vLELt.js";import{_ as Z}from"./index.vue_vue_type_script_setup_true_lang-Cmgm_Z5P.js";import{g as ee,h as te}from"./finance-CcpAmLxc.js";import{u as ae}from"./useDictOptions-DnbupH6P.js";import{u as ne}from"./usePaging-oaNM6A9T.js";const le={class:"flex items-center"},oe={class:"flex justify-end mt-4"},se=y({name:"balanceDetail"}),be=y({...se,setup(ie){const o=W({user_info:"",change_type:"",start_time:"",end_time:""}),{pager:i,getLists:d,resetPage:c,resetParams:C}=ne({fetchFun:ee,params:o}),{optionsData:x}=ae({change_type:{api:te}});return d(),(re,n)=>{const V=K,E=O,r=N,u=z,T=q,k=Z,f=S,D=P,b=$,s=H,U=Y,B=G,F=X,L=M;return m(),h("div",null,[e(b,{class:"!border-none",shadow:"never"},{default:l(()=>[e(V,{type:"warning",title:"温馨提示:用户账户变动记录",closable:!1,"show-icon":""}),e(D,{ref:"formRef",class:"mb-[-16px] mt-[16px]",model:a(o),inline:!0},{default:l(()=>[e(r,{class:"w-[280px]",label:"用户信息"},{default:l(()=>[e(E,{modelValue:a(o).user_info,"onUpdate:modelValue":n[0]||(n[0]=t=>a(o).user_info=t),placeholder:"请输入用户账号/昵称/手机号",clearable:"",onKeyup:j(a(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(r,{class:"w-[280px]",label:"变动类型"},{default:l(()=>[e(T,{modelValue:a(o).change_type,"onUpdate:modelValue":n[1]||(n[1]=t=>a(o).change_type=t)},{default:l(()=>[e(u,{label:"全部",value:""}),(m(!0),h(I,null,R(a(x).change_type,(t,g)=>(m(),w(u,{key:g,label:t,value:g},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(r,{label:"记录时间"},{default:l(()=>[e(k,{startTime:a(o).start_time,"onUpdate:startTime":n[2]||(n[2]=t=>a(o).start_time=t),endTime:a(o).end_time,"onUpdate:endTime":n[3]||(n[3]=t=>a(o).end_time=t)},null,8,["startTime","endTime"])]),_:1}),e(r,null,{default:l(()=>[e(f,{type:"primary",onClick:a(c)},{default:l(()=>[...n[5]||(n[5]=[_("查询",-1)])]),_:1},8,["onClick"]),e(f,{onClick:a(C)},{default:l(()=>[...n[6]||(n[6]=[_("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),e(b,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[A((m(),w(B,{size:"large",data:a(i).lists},{default:l(()=>[e(s,{label:"用户账号",prop:"account","min-width":"100"}),e(s,{label:"用户昵称","min-width":"160"},{default:l(({row:t})=>[p("div",le,[e(U,{class:"flex-none mr-2",src:t.avatar,width:40,height:40,"preview-teleported":"",fit:"contain"},null,8,["src"]),_(" "+v(t.nickname),1)])]),_:1}),e(s,{label:"手机号码",prop:"mobile","min-width":"100"}),e(s,{label:"变动金额",prop:"change_amount","min-width":"100"},{default:l(({row:t})=>[p("span",{class:J({"text-error":t.action==2})},v(t.change_amount),3)]),_:1}),e(s,{label:"剩余金额",prop:"left_amount","min-width":"100"}),e(s,{label:"变动类型",prop:"change_type_desc","min-width":"120"}),e(s,{label:"来源单号",prop:"source_sn","min-width":"100"}),e(s,{label:"记录时间",prop:"create_time","min-width":"120"})]),_:1},8,["data"])),[[L,a(i).loading]]),p("div",oe,[e(F,{modelValue:a(i),"onUpdate:modelValue":n[4]||(n[4]=t=>Q(i)?i.value=t:null),onChange:a(d)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{be as default};
+import{o as y,q as m,r as h,v as e,D as l,bm as K,b9 as P,u as a,b6 as N,b7 as O,b8 as j,bf as q,bg as z,F as I,G as R,O as w,K as S,L as _,bh as $,ac as A,bi as G,bj as H,s as p,T as v,ae as J,bl as M,C as Q,ba as W}from"./.pnpm-BuKxIMgQ.js";import{_ as X}from"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import{h as Y}from"./index-BZAvl557.js";import{_ as Z}from"./index.vue_vue_type_script_setup_true_lang-ZyaNl9CV.js";import{g as ee,h as te}from"./finance-Dz8cnGZe.js";import{u as ae}from"./useDictOptions-C2rBJRQa.js";import{u as ne}from"./usePaging-DNtxCypz.js";const le={class:"flex items-center"},oe={class:"flex justify-end mt-4"},se=y({name:"balanceDetail"}),be=y({...se,setup(ie){const o=W({user_info:"",change_type:"",start_time:"",end_time:""}),{pager:i,getLists:d,resetPage:c,resetParams:C}=ne({fetchFun:ee,params:o}),{optionsData:x}=ae({change_type:{api:te}});return d(),(re,n)=>{const V=K,E=O,r=N,u=z,T=q,k=Z,f=S,D=P,b=$,s=H,U=Y,B=G,F=X,L=M;return m(),h("div",null,[e(b,{class:"!border-none",shadow:"never"},{default:l(()=>[e(V,{type:"warning",title:"温馨提示:用户账户变动记录",closable:!1,"show-icon":""}),e(D,{ref:"formRef",class:"mb-[-16px] mt-[16px]",model:a(o),inline:!0},{default:l(()=>[e(r,{class:"w-[280px]",label:"用户信息"},{default:l(()=>[e(E,{modelValue:a(o).user_info,"onUpdate:modelValue":n[0]||(n[0]=t=>a(o).user_info=t),placeholder:"请输入用户账号/昵称/手机号",clearable:"",onKeyup:j(a(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(r,{class:"w-[280px]",label:"变动类型"},{default:l(()=>[e(T,{modelValue:a(o).change_type,"onUpdate:modelValue":n[1]||(n[1]=t=>a(o).change_type=t)},{default:l(()=>[e(u,{label:"全部",value:""}),(m(!0),h(I,null,R(a(x).change_type,(t,g)=>(m(),w(u,{key:g,label:t,value:g},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(r,{label:"记录时间"},{default:l(()=>[e(k,{startTime:a(o).start_time,"onUpdate:startTime":n[2]||(n[2]=t=>a(o).start_time=t),endTime:a(o).end_time,"onUpdate:endTime":n[3]||(n[3]=t=>a(o).end_time=t)},null,8,["startTime","endTime"])]),_:1}),e(r,null,{default:l(()=>[e(f,{type:"primary",onClick:a(c)},{default:l(()=>[...n[5]||(n[5]=[_("查询",-1)])]),_:1},8,["onClick"]),e(f,{onClick:a(C)},{default:l(()=>[...n[6]||(n[6]=[_("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),e(b,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[A((m(),w(B,{size:"large",data:a(i).lists},{default:l(()=>[e(s,{label:"用户账号",prop:"account","min-width":"100"}),e(s,{label:"用户昵称","min-width":"160"},{default:l(({row:t})=>[p("div",le,[e(U,{class:"flex-none mr-2",src:t.avatar,width:40,height:40,"preview-teleported":"",fit:"contain"},null,8,["src"]),_(" "+v(t.nickname),1)])]),_:1}),e(s,{label:"手机号码",prop:"mobile","min-width":"100"}),e(s,{label:"变动金额",prop:"change_amount","min-width":"100"},{default:l(({row:t})=>[p("span",{class:J({"text-error":t.action==2})},v(t.change_amount),3)]),_:1}),e(s,{label:"剩余金额",prop:"left_amount","min-width":"100"}),e(s,{label:"变动类型",prop:"change_type_desc","min-width":"120"}),e(s,{label:"来源单号",prop:"source_sn","min-width":"100"}),e(s,{label:"记录时间",prop:"create_time","min-width":"120"})]),_:1},8,["data"])),[[L,a(i).loading]]),p("div",oe,[e(F,{modelValue:a(i),"onUpdate:modelValue":n[4]||(n[4]=t=>Q(i)?i.value=t:null),onChange:a(d)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{be as default};
diff --git a/server/public/admin/assets/bind-work-wechat-C0n3HUzu.js b/server/public/admin/assets/bind-work-wechat-D2f0pw3P.js
similarity index 95%
rename from server/public/admin/assets/bind-work-wechat-C0n3HUzu.js
rename to server/public/admin/assets/bind-work-wechat-D2f0pw3P.js
index 289f512b5..49df2e3c2 100644
--- a/server/public/admin/assets/bind-work-wechat-C0n3HUzu.js
+++ b/server/public/admin/assets/bind-work-wechat-D2f0pw3P.js
@@ -1 +1 @@
-import{o as T,W as $,ap as j,E as p,aq as z,q as d,r as l,s as r,v as c,D as y,u as S,b5 as I,w as A,F as D,L as M,K as F,M as k,n as C}from"./.pnpm-BHOjf1ZS.js";import{_ as K}from"./footer.vue_vue_type_script_setup_true_lang-lrEHiy-h.js";import{u as Q,g as V,P as L,a as X,b as G,_ as H}from"./index-B31vLELt.js";import{a as J}from"./wecomOauthPostMessage-C_e6VGrO.js";const Y={class:"bind-wx flex flex-col"},Z={class:"flex-1 flex items-center justify-center"},ee={class:"bind-wx-card bg-body rounded-md px-10 py-10 w-[480px]"},te={key:0,class:"text-center py-10"},oe={key:0,class:"text-center py-10"},ne={key:1,id:"wxwork_bind_qrcode_container",class:"wxwork-qrcode mx-auto"},ae={class:"mt-8 flex justify-center gap-4"},w="bind_wxwork",g="like_admin_wx_bind_oauth",se=T({__name:"bind-work-wechat",setup(re){const u=$(),f=Q(),x=k(!1),_=k(!1),m=k({corp_id:"",agent_id:""}),U=()=>/wxwork/i.test(navigator.userAgent),v=()=>window.location.origin+window.location.pathname+"?bind_wxwork=1";function W(){const o=new URLSearchParams(window.location.search),e=window.location.hash||"",t=e.includes("?")?e.split("?").slice(1).join("?"):"";return t&&new URLSearchParams(t).forEach((n,i)=>{o.has(i)||o.set(i,n)}),o}const E=()=>{f.logout()},q=async()=>{try{await f.getUserInfo()}catch{}if(f.isPaw===0){u.replace("/change-password");return}u.replace(L.INDEX)},b=async o=>{_.value=!0;try{await G({code:o}),window.history.replaceState({},"",window.location.pathname),await q()}catch(e){console.error(e),p.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"绑定失败"),_.value=!1}};let s=null;const B=async()=>{if(!m.value.corp_id)return;x.value=!0,window.WwLogin||await new Promise((e,t)=>{const n=document.createElement("script");n.src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js",n.onload=()=>e(),n.onerror=()=>t(new Error("加载企业微信 JS 失败")),document.head.appendChild(n)}),await C(),x.value=!1,await C();const o=encodeURIComponent(v());new window.WwLogin({id:"wxwork_bind_qrcode_container",appid:m.value.corp_id,agentid:m.value.agent_id,redirect_uri:o,lang:"zh",state:w,href:"",self_redirect:!1})};return j(async()=>{let o="";try{o=(new URLSearchParams(window.location.search).get("code")||"").trim()}catch{o=""}if(!V()){p.error("请先登录"),u.push(L.LOGIN);return}const e=W(),t=o||(e.get("code")||"").trim(),n=e.get("state"),i=n!=null?String(n).trim():"",P=i===w||i==="admin_bind_wx"||i.toLowerCase()===w.toLowerCase(),R=e.get("bind_wxwork")==="1",N=!!t&&i===""&&u.currentRoute.value.path==="/bind-work-wechat";if(t&&(P||R||N)){if(sessionStorage.getItem(g)===t)return;sessionStorage.setItem(g,t);try{await b(t)}finally{sessionStorage.removeItem(g)}return}try{const a=await X();if(!(a!=null&&a.enabled)||!a.corp_id){p.error("企业微信未配置,请联系管理员");return}if(m.value={corp_id:a.corp_id,agent_id:a.agent_id},U()){_.value=!0;const h=encodeURIComponent(v()),O=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${a.corp_id}&redirect_uri=${h}&response_type=code&scope=snsapi_privateinfo&agentid=${a.agent_id}&state=${w}#wechat_redirect`;window.location.href=O;return}s==null||s(),s=J({pathIncludes:"bind-work-wechat",lockKey:g,wxBindState:w,onCode:h=>b(h)}),await B()}catch(a){console.error(a),p.error("获取企业微信配置失败")}}),z(()=>{s==null||s(),s=null}),(o,e)=>{const t=A,n=F;return d(),l("div",Y,[r("div",Z,[r("div",ee,[e[4]||(e[4]=r("div",{class:"text-center text-2xl font-medium mb-2"},"绑定企业微信",-1)),e[5]||(e[5]=r("div",{class:"text-center text-gray-500 text-sm mb-8"}," 根据安全策略,需绑定企业微信账号后方可使用管理后台 ",-1)),_.value?(d(),l("div",te,[c(t,{class:"is-loading mb-4",size:40,color:"var(--el-color-primary)"},{default:y(()=>[c(S(I))]),_:1}),e[0]||(e[0]=r("div",{class:"text-gray-500"},"企业微信授权中...",-1))])):(d(),l(D,{key:1},[x.value?(d(),l("div",oe,[c(t,{class:"is-loading",size:32,color:"var(--el-color-primary)"},{default:y(()=>[c(S(I))]),_:1}),e[1]||(e[1]=r("div",{class:"mt-2 text-gray-400 text-sm"},"加载扫码...",-1))])):(d(),l("div",ne)),e[2]||(e[2]=r("div",{class:"text-center text-sm text-gray-400 mt-4"}," 请使用企业微信扫描二维码完成绑定 ",-1))],64)),r("div",ae,[c(n,{onClick:E},{default:y(()=>[...e[3]||(e[3]=[M("退出登录",-1)])]),_:1})])])]),c(K)])}}}),ue=H(se,[["__scopeId","data-v-d4a61522"]]);export{ue as default};
+import{o as T,W as $,ap as j,E as p,aq as z,q as d,r as l,s as r,v as c,D as y,u as S,b5 as I,w as A,F as D,L as M,K as F,M as k,n as C}from"./.pnpm-BuKxIMgQ.js";import{_ as K}from"./footer.vue_vue_type_script_setup_true_lang-CNbytEjb.js";import{u as Q,g as V,P as L,a as X,b as G,_ as H}from"./index-BZAvl557.js";import{a as J}from"./wecomOauthPostMessage-C_e6VGrO.js";const Y={class:"bind-wx flex flex-col"},Z={class:"flex-1 flex items-center justify-center"},ee={class:"bind-wx-card bg-body rounded-md px-10 py-10 w-[480px]"},te={key:0,class:"text-center py-10"},oe={key:0,class:"text-center py-10"},ne={key:1,id:"wxwork_bind_qrcode_container",class:"wxwork-qrcode mx-auto"},ae={class:"mt-8 flex justify-center gap-4"},w="bind_wxwork",g="like_admin_wx_bind_oauth",se=T({__name:"bind-work-wechat",setup(re){const u=$(),f=Q(),x=k(!1),_=k(!1),m=k({corp_id:"",agent_id:""}),U=()=>/wxwork/i.test(navigator.userAgent),v=()=>window.location.origin+window.location.pathname+"?bind_wxwork=1";function W(){const o=new URLSearchParams(window.location.search),e=window.location.hash||"",t=e.includes("?")?e.split("?").slice(1).join("?"):"";return t&&new URLSearchParams(t).forEach((n,i)=>{o.has(i)||o.set(i,n)}),o}const E=()=>{f.logout()},q=async()=>{try{await f.getUserInfo()}catch{}if(f.isPaw===0){u.replace("/change-password");return}u.replace(L.INDEX)},b=async o=>{_.value=!0;try{await G({code:o}),window.history.replaceState({},"",window.location.pathname),await q()}catch(e){console.error(e),p.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"绑定失败"),_.value=!1}};let s=null;const B=async()=>{if(!m.value.corp_id)return;x.value=!0,window.WwLogin||await new Promise((e,t)=>{const n=document.createElement("script");n.src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js",n.onload=()=>e(),n.onerror=()=>t(new Error("加载企业微信 JS 失败")),document.head.appendChild(n)}),await C(),x.value=!1,await C();const o=encodeURIComponent(v());new window.WwLogin({id:"wxwork_bind_qrcode_container",appid:m.value.corp_id,agentid:m.value.agent_id,redirect_uri:o,lang:"zh",state:w,href:"",self_redirect:!1})};return j(async()=>{let o="";try{o=(new URLSearchParams(window.location.search).get("code")||"").trim()}catch{o=""}if(!V()){p.error("请先登录"),u.push(L.LOGIN);return}const e=W(),t=o||(e.get("code")||"").trim(),n=e.get("state"),i=n!=null?String(n).trim():"",P=i===w||i==="admin_bind_wx"||i.toLowerCase()===w.toLowerCase(),R=e.get("bind_wxwork")==="1",N=!!t&&i===""&&u.currentRoute.value.path==="/bind-work-wechat";if(t&&(P||R||N)){if(sessionStorage.getItem(g)===t)return;sessionStorage.setItem(g,t);try{await b(t)}finally{sessionStorage.removeItem(g)}return}try{const a=await X();if(!(a!=null&&a.enabled)||!a.corp_id){p.error("企业微信未配置,请联系管理员");return}if(m.value={corp_id:a.corp_id,agent_id:a.agent_id},U()){_.value=!0;const h=encodeURIComponent(v()),O=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${a.corp_id}&redirect_uri=${h}&response_type=code&scope=snsapi_privateinfo&agentid=${a.agent_id}&state=${w}#wechat_redirect`;window.location.href=O;return}s==null||s(),s=J({pathIncludes:"bind-work-wechat",lockKey:g,wxBindState:w,onCode:h=>b(h)}),await B()}catch(a){console.error(a),p.error("获取企业微信配置失败")}}),z(()=>{s==null||s(),s=null}),(o,e)=>{const t=A,n=F;return d(),l("div",Y,[r("div",Z,[r("div",ee,[e[4]||(e[4]=r("div",{class:"text-center text-2xl font-medium mb-2"},"绑定企业微信",-1)),e[5]||(e[5]=r("div",{class:"text-center text-gray-500 text-sm mb-8"}," 根据安全策略,需绑定企业微信账号后方可使用管理后台 ",-1)),_.value?(d(),l("div",te,[c(t,{class:"is-loading mb-4",size:40,color:"var(--el-color-primary)"},{default:y(()=>[c(S(I))]),_:1}),e[0]||(e[0]=r("div",{class:"text-gray-500"},"企业微信授权中...",-1))])):(d(),l(D,{key:1},[x.value?(d(),l("div",oe,[c(t,{class:"is-loading",size:32,color:"var(--el-color-primary)"},{default:y(()=>[c(S(I))]),_:1}),e[1]||(e[1]=r("div",{class:"mt-2 text-gray-400 text-sm"},"加载扫码...",-1))])):(d(),l("div",ne)),e[2]||(e[2]=r("div",{class:"text-center text-sm text-gray-400 mt-4"}," 请使用企业微信扫描二维码完成绑定 ",-1))],64)),r("div",ae,[c(n,{onClick:E},{default:y(()=>[...e[3]||(e[3]=[M("退出登录",-1)])]),_:1})])])]),c(K)])}}}),ue=H(se,[["__scopeId","data-v-d4a61522"]]);export{ue as default};
diff --git a/server/public/admin/assets/cache-BdPFzPlO.js b/server/public/admin/assets/cache-MlTjchca.js
similarity index 71%
rename from server/public/admin/assets/cache-BdPFzPlO.js
rename to server/public/admin/assets/cache-MlTjchca.js
index 141d08370..1478a68fd 100644
--- a/server/public/admin/assets/cache-BdPFzPlO.js
+++ b/server/public/admin/assets/cache-MlTjchca.js
@@ -1 +1 @@
-import{o as l,q as i,r as m,v as e,D as a,bh as p,bg as f,bj as b,u,bk as h,K as w,L as C,M as k}from"./.pnpm-BHOjf1ZS.js";import{j as E,D as x}from"./index-B31vLELt.js";const y={class:"cache"},g=l({name:"cache"}),j=l({...g,setup(v){const s=k([{content:"系统缓存",desc:"系统运行过程中产生的各类缓存数据"}]),c=async()=>{await E.confirm("确认清除系统缓存?"),await x(),window.location.reload()};return(B,o)=>{const r=p,n=f,t=h,_=w,d=b;return i(),m("div",y,[e(n,{class:"!border-none",shadow:"never"},{default:a(()=>[e(r,{type:"warning",title:"温馨提示:管理系统运行过程中产生的缓存",closable:!1,"show-icon":""})]),_:1}),e(n,{class:"!border-none mt-4",shadow:"never"},{default:a(()=>[e(d,{data:u(s),size:"large"},{default:a(()=>[e(t,{label:"管理内容",prop:"content","min-width":"130"}),e(t,{label:"内容说明",prop:"desc","min-width":"180"}),e(t,{label:"操作",width:"130",fixed:"right"},{default:a(()=>[e(_,{type:"primary",link:"",onClick:c},{default:a(()=>[...o[0]||(o[0]=[C("清除系统缓存",-1)])]),_:1})]),_:1})]),_:1},8,["data"])]),_:1})])}}});export{j as default};
+import{o as l,q as i,r as m,v as e,D as a,bm as p,bh as f,bi as b,u,bj as h,K as w,L as C,M as E}from"./.pnpm-BuKxIMgQ.js";import{j as k,D as x}from"./index-BZAvl557.js";const y={class:"cache"},v=l({name:"cache"}),j=l({...v,setup(g){const s=E([{content:"系统缓存",desc:"系统运行过程中产生的各类缓存数据"}]),c=async()=>{await k.confirm("确认清除系统缓存?"),await x(),window.location.reload()};return(B,o)=>{const r=p,n=f,t=h,_=w,d=b;return i(),m("div",y,[e(n,{class:"!border-none",shadow:"never"},{default:a(()=>[e(r,{type:"warning",title:"温馨提示:管理系统运行过程中产生的缓存",closable:!1,"show-icon":""})]),_:1}),e(n,{class:"!border-none mt-4",shadow:"never"},{default:a(()=>[e(d,{data:u(s),size:"large"},{default:a(()=>[e(t,{label:"管理内容",prop:"content","min-width":"130"}),e(t,{label:"内容说明",prop:"desc","min-width":"180"}),e(t,{label:"操作",width:"130",fixed:"right"},{default:a(()=>[e(_,{type:"primary",link:"",onClick:c},{default:a(()=>[...o[0]||(o[0]=[C("清除系统缓存",-1)])]),_:1})]),_:1})]),_:1},8,["data"])]),_:1})])}}});export{j as default};
diff --git a/server/public/admin/assets/change-password-CrF1l54R.js b/server/public/admin/assets/change-password-BQq1thLn.js
similarity index 90%
rename from server/public/admin/assets/change-password-CrF1l54R.js
rename to server/public/admin/assets/change-password-BQq1thLn.js
index 786e5bb68..bcaee2d5e 100644
--- a/server/public/admin/assets/change-password-CrF1l54R.js
+++ b/server/public/admin/assets/change-password-BQq1thLn.js
@@ -1 +1 @@
-import{o as k,W as v,ap as E,E as l,q as h,r as V,s as n,v as e,D as r,b6 as P,b7 as C,b8 as L,b9 as F,L as z,u as f,K as B,a8 as I,ba as N}from"./.pnpm-BHOjf1ZS.js";import{u as R,g as S,P as q,c as K,d as U,_ as D}from"./index-B31vLELt.js";import{u as M}from"./useLockFn-DZaCbVGv.js";import{_ as T}from"./footer.vue_vue_type_script_setup_true_lang-lrEHiy-h.js";const $={class:"change-password flex flex-col"},j={class:"flex-1 flex items-center justify-center"},G={class:"change-password-card bg-body rounded-md px-10 py-10 w-[480px]"},O=k({__name:"change-password",setup(W){const i=I(),_=v(),m=R();E(()=>{S()||(l.error("请先登录"),_.push(q.LOGIN))});const o=N({password:"",password_confirm:""}),w={password:[{required:!0,message:"请输入新密码",trigger:"blur"},{min:6,message:"密码长度不能少于6位",trigger:"blur"}],password_confirm:[{required:!0,validator:(t,s,a)=>{s===""?a(new Error("请再次输入密码")):s!==o.password?a(new Error("两次输入的密码不一致")):a()},trigger:"blur"}]},p=async()=>{var t;await((t=i.value)==null?void 0:t.validate());try{await U({password:o.password,password_confirm:o.password_confirm}),l.success("密码修改成功,请重新登录"),m.isPaw=1,await m.logout()}catch(s){l.error((s==null?void 0:s.msg)||(s==null?void 0:s.message)||"密码修改失败")}},{isLock:g,lockFn:x}=M(p);return(t,s)=>{const a=K,c=C,u=P,b=F,y=B;return h(),V("div",$,[n("div",j,[n("div",G,[s[3]||(s[3]=n("div",{class:"text-center text-2xl font-medium mb-2"},"首次登录",-1)),s[4]||(s[4]=n("div",{class:"text-center text-gray-500 text-sm mb-8"},"为了您的账号安全,请修改初始密码",-1)),e(b,{ref_key:"formRef",ref:i,model:o,size:"large",rules:w},{default:r(()=>[e(u,{prop:"password"},{default:r(()=>[e(c,{modelValue:o.password,"onUpdate:modelValue":s[0]||(s[0]=d=>o.password=d),type:"password","show-password":"",placeholder:"请输入新密码"},{prepend:r(()=>[e(a,{name:"el-icon-Lock",size:"16"})]),_:1},8,["modelValue"])]),_:1}),e(u,{prop:"password_confirm"},{default:r(()=>[e(c,{modelValue:o.password_confirm,"onUpdate:modelValue":s[1]||(s[1]=d=>o.password_confirm=d),type:"password","show-password":"",placeholder:"请再次输入新密码",onKeyup:L(p,["enter"])},{prepend:r(()=>[e(a,{name:"el-icon-Lock",size:"16"})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"]),e(y,{type:"primary",size:"large",loading:f(g),onClick:f(x),class:"w-full"},{default:r(()=>[...s[2]||(s[2]=[z(" 确认修改 ",-1)])]),_:1},8,["loading","onClick"])])]),e(T)])}}}),Y=D(O,[["__scopeId","data-v-bbd4ab41"]]);export{Y as default};
+import{o as k,W as v,ap as E,E as l,q as h,r as V,s as n,v as e,D as r,b6 as P,b7 as C,b8 as L,b9 as F,L as z,u as f,K as B,a8 as I,ba as N}from"./.pnpm-BuKxIMgQ.js";import{u as R,g as S,P as q,c as K,d as U,_ as D}from"./index-BZAvl557.js";import{u as M}from"./useLockFn-CV0Q3Wq7.js";import{_ as T}from"./footer.vue_vue_type_script_setup_true_lang-CNbytEjb.js";const $={class:"change-password flex flex-col"},j={class:"flex-1 flex items-center justify-center"},G={class:"change-password-card bg-body rounded-md px-10 py-10 w-[480px]"},O=k({__name:"change-password",setup(W){const i=I(),_=v(),m=R();E(()=>{S()||(l.error("请先登录"),_.push(q.LOGIN))});const o=N({password:"",password_confirm:""}),w={password:[{required:!0,message:"请输入新密码",trigger:"blur"},{min:6,message:"密码长度不能少于6位",trigger:"blur"}],password_confirm:[{required:!0,validator:(t,s,a)=>{s===""?a(new Error("请再次输入密码")):s!==o.password?a(new Error("两次输入的密码不一致")):a()},trigger:"blur"}]},p=async()=>{var t;await((t=i.value)==null?void 0:t.validate());try{await U({password:o.password,password_confirm:o.password_confirm}),l.success("密码修改成功,请重新登录"),m.isPaw=1,await m.logout()}catch(s){l.error((s==null?void 0:s.msg)||(s==null?void 0:s.message)||"密码修改失败")}},{isLock:g,lockFn:x}=M(p);return(t,s)=>{const a=K,c=C,u=P,b=F,y=B;return h(),V("div",$,[n("div",j,[n("div",G,[s[3]||(s[3]=n("div",{class:"text-center text-2xl font-medium mb-2"},"首次登录",-1)),s[4]||(s[4]=n("div",{class:"text-center text-gray-500 text-sm mb-8"},"为了您的账号安全,请修改初始密码",-1)),e(b,{ref_key:"formRef",ref:i,model:o,size:"large",rules:w},{default:r(()=>[e(u,{prop:"password"},{default:r(()=>[e(c,{modelValue:o.password,"onUpdate:modelValue":s[0]||(s[0]=d=>o.password=d),type:"password","show-password":"",placeholder:"请输入新密码"},{prepend:r(()=>[e(a,{name:"el-icon-Lock",size:"16"})]),_:1},8,["modelValue"])]),_:1}),e(u,{prop:"password_confirm"},{default:r(()=>[e(c,{modelValue:o.password_confirm,"onUpdate:modelValue":s[1]||(s[1]=d=>o.password_confirm=d),type:"password","show-password":"",placeholder:"请再次输入新密码",onKeyup:L(p,["enter"])},{prepend:r(()=>[e(a,{name:"el-icon-Lock",size:"16"})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"]),e(y,{type:"primary",size:"large",loading:f(g),onClick:f(x),class:"w-full"},{default:r(()=>[...s[2]||(s[2]=[z(" 确认修改 ",-1)])]),_:1},8,["loading","onClick"])])]),e(T)])}}}),Y=D(O,[["__scopeId","data-v-bbd4ab41"]]);export{Y as default};
diff --git a/server/public/admin/assets/code-CsMIcGPz.js b/server/public/admin/assets/code-BRHue65G.js
similarity index 92%
rename from server/public/admin/assets/code-CsMIcGPz.js
rename to server/public/admin/assets/code-BRHue65G.js
index 4109ac87d..c4935663a 100644
--- a/server/public/admin/assets/code-CsMIcGPz.js
+++ b/server/public/admin/assets/code-BRHue65G.js
@@ -1 +1 @@
-import{r as t}from"./index-B31vLELt.js";function o(e){return t.get({url:"/tools.generator/generateTable",params:e})}function n(e){return t.get({url:"/tools.generator/dataTable",params:e})}function a(e){return t.post({url:"/tools.generator/selectTable",params:e})}function l(e){return t.get({url:"/tools.generator/detail",params:e})}function s(e){return t.post({url:"/tools.generator/syncColumn",params:e})}function u(e){return t.post({url:"/tools.generator/delete",params:e})}function g(e){return t.post({url:"/tools.generator/edit",params:e})}function i(e){return t.post({url:"/tools.generator/preview",params:e})}function c(e){return t.post({url:"/tools.generator/generate",params:e})}function f(){return t.get({url:"/tools.generator/getModels"})}export{f as a,o as b,u as c,i as d,c as e,n as f,g,a as h,s,l as t};
+import{r as t}from"./index-BZAvl557.js";function o(e){return t.get({url:"/tools.generator/generateTable",params:e})}function n(e){return t.get({url:"/tools.generator/dataTable",params:e})}function a(e){return t.post({url:"/tools.generator/selectTable",params:e})}function l(e){return t.get({url:"/tools.generator/detail",params:e})}function s(e){return t.post({url:"/tools.generator/syncColumn",params:e})}function u(e){return t.post({url:"/tools.generator/delete",params:e})}function g(e){return t.post({url:"/tools.generator/edit",params:e})}function i(e){return t.post({url:"/tools.generator/preview",params:e})}function c(e){return t.post({url:"/tools.generator/generate",params:e})}function f(){return t.get({url:"/tools.generator/getModels"})}export{f as a,o as b,u as c,i as d,c as e,n as f,g,a as h,s,l as t};
diff --git a/server/public/admin/assets/code-preview-DENEmLd4.js b/server/public/admin/assets/code-preview-DENEmLd4.js
new file mode 100644
index 000000000..cc980637c
--- /dev/null
+++ b/server/public/admin/assets/code-preview-DENEmLd4.js
@@ -0,0 +1 @@
+import{_ as o}from"./code-preview.vue_vue_type_script_setup_true_lang-B8eu99KN.js";import"./.pnpm-BuKxIMgQ.js";import"./index-BZAvl557.js";export{o as default};
diff --git a/server/public/admin/assets/code-preview-DcGMwcxk.js b/server/public/admin/assets/code-preview-DcGMwcxk.js
deleted file mode 100644
index d7ff05e05..000000000
--- a/server/public/admin/assets/code-preview-DcGMwcxk.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./code-preview.vue_vue_type_script_setup_true_lang-B5bYvWa-.js";import"./.pnpm-BHOjf1ZS.js";import"./index-B31vLELt.js";export{o as default};
diff --git a/server/public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang-B5bYvWa-.js b/server/public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang-B8eu99KN.js
similarity index 91%
rename from server/public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang-B5bYvWa-.js
rename to server/public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang-B8eu99KN.js
index 89bdffe82..1b3381d19 100644
--- a/server/public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang-B5bYvWa-.js
+++ b/server/public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang-B8eu99KN.js
@@ -1 +1 @@
-import{o as B,x as T,q as c,r as u,v as t,D as a,Y as j,C as m,u as i,F as D,G as N,O as $,X as F,s as p,a2 as L,K as S,L as U,bt as q,M as G,p as K,aC as M}from"./.pnpm-BHOjf1ZS.js";import{c as O,j as _}from"./index-B31vLELt.js";const P={class:"code-preview"},R={class:"flex",style:{height:"50vh"}},A=B({__name:"code-preview",props:{modelValue:{type:Boolean},code:{}},emits:["update:modelValue"],setup(d,{emit:f}){const b=d,V=f,{toClipboard:v}=M(),n=G("index0"),g=async l=>{try{await v(l),_.msgSuccess("复制成功")}catch{_.msgError("复制失败")}},s=K({get(){return b.modelValue},set(l){V("update:modelValue",l)}});return(l,e)=>{const h=T("highlightjs"),C=L,x=O,y=S,k=F,E=j,w=q;return c(),u("div",P,[t(w,{modelValue:i(s),"onUpdate:modelValue":e[1]||(e[1]=o=>m(s)?s.value=o:null),width:"900px",title:"代码预览"},{default:a(()=>[t(E,{modelValue:i(n),"onUpdate:modelValue":e[0]||(e[0]=o=>m(n)?n.value=o:null)},{default:a(()=>[(c(!0),u(D,null,N(d.code,(o,r)=>(c(),$(k,{label:o.name,name:`index${r}`,key:r},{default:a(()=>[p("div",R,[t(C,{class:"flex-1"},{default:a(()=>[t(h,{autodetect:"",code:o.content},null,8,["code"])]),_:2},1024),p("div",null,[t(y,{onClick:X=>g(o.content),type:"primary",link:""},{icon:a(()=>[t(x,{name:"el-icon-CopyDocument"})]),default:a(()=>[e[2]||(e[2]=U(" 复制 ",-1))]),_:1},8,["onClick"])])])]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])])}}});export{A as _};
+import{o as B,x as T,q as c,r as u,v as t,D as a,Y as j,C as m,u as i,F as D,G as N,O as $,X as F,s as p,a2 as L,K as S,L as U,bt as q,M as G,p as K,aC as M}from"./.pnpm-BuKxIMgQ.js";import{c as O,j as _}from"./index-BZAvl557.js";const P={class:"code-preview"},R={class:"flex",style:{height:"50vh"}},A=B({__name:"code-preview",props:{modelValue:{type:Boolean},code:{}},emits:["update:modelValue"],setup(d,{emit:f}){const b=d,V=f,{toClipboard:v}=M(),n=G("index0"),g=async l=>{try{await v(l),_.msgSuccess("复制成功")}catch{_.msgError("复制失败")}},s=K({get(){return b.modelValue},set(l){V("update:modelValue",l)}});return(l,e)=>{const h=T("highlightjs"),C=L,x=O,y=S,k=F,E=j,w=q;return c(),u("div",P,[t(w,{modelValue:i(s),"onUpdate:modelValue":e[1]||(e[1]=o=>m(s)?s.value=o:null),width:"900px",title:"代码预览"},{default:a(()=>[t(E,{modelValue:i(n),"onUpdate:modelValue":e[0]||(e[0]=o=>m(n)?n.value=o:null)},{default:a(()=>[(c(!0),u(D,null,N(d.code,(o,r)=>(c(),$(k,{label:o.name,name:`index${r}`,key:r},{default:a(()=>[p("div",R,[t(C,{class:"flex-1"},{default:a(()=>[t(h,{autodetect:"",code:o.content},null,8,["code"])]),_:2},1024),p("div",null,[t(y,{onClick:X=>g(o.content),type:"primary",link:""},{icon:a(()=>[t(x,{name:"el-icon-CopyDocument"})]),default:a(()=>[e[2]||(e[2]=U(" 复制 ",-1))]),_:1},8,["onClick"])])])]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])])}}});export{A as _};
diff --git a/server/public/admin/assets/commission-settlement-BNCIwQuF.js b/server/public/admin/assets/commission-settlement-u9hV-maq.js
similarity index 98%
rename from server/public/admin/assets/commission-settlement-BNCIwQuF.js
rename to server/public/admin/assets/commission-settlement-u9hV-maq.js
index aa09a5caf..9f7da28ae 100644
--- a/server/public/admin/assets/commission-settlement-BNCIwQuF.js
+++ b/server/public/admin/assets/commission-settlement-u9hV-maq.js
@@ -1 +1 @@
-import{o as gt,M as p,R as ht,ap as bt,q as u,r as m,s as r,cB as wt,T as _,P as v,v as n,D as o,bp as yt,bd as kt,L as s,bm as xt,bn as Ct,F as S,G as Ue,O as b,cC as St,ac as H,bK as Vt,bi as Ot,K as Dt,w as Et,u as B,bA as zt,cy as Nt,bg as Mt,bh as $t,br as Tt,b7 as Rt,Y as Ft,X as Lt,cD as Bt,bj as Ut,bk as It,bq as Pt,cE as Yt,cF as qt,aw as Ie,ae as Pe,bc as At,bb as Gt,bs as jt,bt as Ht,p as T,ba as Wt,E as w,e as Ye}from"./.pnpm-BHOjf1ZS.js";import{c as qe,a as Qt,b as Xt,d as Jt,e as Kt,f as Zt,g as el}from"./stats-DPp7XNQ1.js";import{_ as tl}from"./index-B31vLELt.js";const ll={class:"cs-page"},al={class:"cs-masthead"},nl={class:"cs-masthead__inner"},ol={key:0,class:"cs-masthead__stats"},sl={class:"cs-stat"},rl={class:"cs-stat__value"},il={key:0,class:"cs-stat"},dl={class:"cs-stat__value cs-stat__value--xs"},ul={key:1,class:"cs-stat"},_l={class:"cs-stat__value cs-stat__value--xs"},cl={class:"filter-surface"},pl={class:"filter-row filter-row--top"},ml={class:"filter-field"},fl={class:"filter-field filter-field--rangewrap"},vl={class:"filter-field"},gl={class:"filter-field filter-field--wide"},hl={class:"filter-select filter-select--dept filter-dept-tree-wrap"},bl={class:"filter-actions"},wl={class:"cs-alert__body"},yl={key:0},kl={key:1},xl={key:2,class:"cs-alert__meta"},Cl={class:"cs-reconcile"},Sl={class:"cs-reconcile__head"},Vl={class:"cs-reconcile__tags"},Ol={key:3,class:"cs-reconcile__meta"},Dl={key:4,class:"cs-reconcile__meta"},El={class:"cs-reconcile__toolbar"},zl={key:0,class:"cs-reconcile__carry"},Nl={class:"cs-table-head"},Ml={class:"cs-table-head__row"},$l={key:0,class:"cs-drill-state"},Tl={class:"cs-dept-link__text"},Rl={key:1,class:"cs-muted"},Fl={class:"cs-dialog__bar"},Ll={class:"cs-patient-cell"},Bl={class:"cs-patient-cell__name"},Ul={key:0,class:"cs-patient-cell__meta cs-muted"},Il={key:0},Pl={key:1,class:"cs-muted"},Yl={key:0,class:"cs-muted"},ql={key:1,class:"cs-muted"},Al={class:"cs-dialog__pager"},Gl={class:"cs-dialog__bar cs-dialog__bar--split"},jl={class:"cs-dialog__hint"},Hl={class:"cs-patient-cell"},Wl={class:"cs-patient-cell__name"},Ql={key:0,class:"cs-patient-cell__meta cs-muted"},Xl={key:0},Jl={key:1,class:"cs-muted"},Kl={key:0,class:"cs-muted"},Zl={key:1,class:"cs-muted"},ea={class:"cs-dialog__pager"},ta=gt({__name:"commission-settlement",setup(la){const Ae={value:"id",label:"name",children:"children"};function Ge(t){if(!t.length)return[];const e=new Map;for(const f of t)e.set(f.id,{...f,children:[]});const i=[];for(const f of t){const g=e.get(f.id),y=Number(f.pid);y>0&&e.has(y)?e.get(y).children.push(g):i.push(g)}const a=f=>{var g;(g=f.children)!=null&&g.length?f.children.forEach(a):delete f.children};i.forEach(a);const x=f=>{var g;f.sort((y,z)=>{const C=y.name.includes("中心")?-1:1,N=z.name.includes("中心")?-1:1;return C!==N?C-N:y.id-z.id});for(const y of f)(g=y.children)!=null&&g.length&&x(y.children)};return x(i),i}function ke(){const t=new Date,e=t.getFullYear(),i=String(t.getMonth()+1).padStart(2,"0");return`${e}-${i}`}function W(t){return String(t).padStart(2,"0")}function xe(t){return`${t.getFullYear()}-${W(t.getMonth()+1)}-${W(t.getDate())} ${W(t.getHours())}:${W(t.getMinutes())}:${W(t.getSeconds())}`}function re(t){const e=/^(\d{4})-(\d{2})$/.exec(t),i=e?parseInt(e[1],10):new Date().getFullYear(),a=e?parseInt(e[2],10):new Date().getMonth()+1,x=new Date(i,a-2,1,0,0,0),f=new Date(i,a-1,0,23,59,59);return[xe(x),xe(f)]}const h=p(ke()),U=p(re(h.value)),ae=p(!1),R=p(!1),ne=p([]),ie=p(!1),je=T(()=>Ge(ne.value)),O=p([]),Ce=p([]),de=p(!1),Q=p(""),ue=p([]),Se=p([]),Ve=p([]),oe=p([]),se=p([]),Oe=p("dept"),I=p({}),c=Wt({settlement_month:"",order_month:"",order_start_time:"",order_end_time:"",fulfillment_status:3,explicit_order_time_window:!1,cutoff_end:"",rule_note:"",channel_name:"",require_system_auto_prescription:!1}),D=p(null),X=p(""),_e=p(!1),ce=p(!1),pe=p(!1),F=T(()=>{var t;return Number((t=D.value)==null?void 0:t.status)===1}),me=p(!1),fe=p(!1),P=p("all"),ve=p([]),ge=p(0),De=p(1),Ee=p(20),J=p(!1),Y=p(null),$=p("all"),q=p([]),A=p(0),K=p(1),ze=p(20),he=p(!1),He=T(()=>{const t=Y.value;return t?t.mode==="dept"?`已完成业绩订单 · ${t.dept_name}`:t.title:"已完成业绩订单"}),Z=T(()=>c.order_start_time&&c.order_end_time?`${c.order_start_time}~${c.order_end_time}`:c.order_month||"—"),We=T(()=>{const t=new Map;for(const e of ne.value){const i=Number(e.pid),a=t.get(i)??[];a.push(e.id),t.set(i,a)}return t}),be=T(()=>{const t=new Map;for(const e of ne.value)t.set(e.id,e);return t}),ee=T(()=>{if(O.value.length!==1)return null;const t=O.value[0];return be.value.get(t)??null}),Qe=T(()=>{const t=ee.value;if(!t)return"返回顶层";const e=Number(t.pid),i=e>0?be.value.get(e):null;return!i||Number(i.pid)<=0?"返回顶层":`返回上级 · ${i.name}`});function Ne(t){if(!t||t<=0)return!1;const e=We.value.get(t);return!!(e&&e.length>0)}function Xe(t){if(!(!t||!t.dept_id||t.dept_id<=0)){if(Ne(t.dept_id)){O.value=[t.dept_id],E();return}Ke(t.dept_id,t.dept_name)}}function Je(){const t=ee.value;if(!t){O.value=[],E();return}const e=Number(t.pid),i=e>0?be.value.get(e):null;!i||Number(i.pid)<=0?O.value=[]:O.value=[e],E()}function Ke(t,e){if(!h.value){w.warning("请选择结算月");return}Y.value={mode:"dept",dept_id:t,dept_name:e},$.value="all",K.value=1,q.value=[],A.value=0,J.value=!0,te(1)}function Ze(t){if(!h.value){w.warning("请选择结算月");return}Y.value={mode:"channel",title:`业务订单 · ${t.appt_channel_name} · 医助 ${t.assistant_name}`,assistant_id:t.assistant_id,appt_channel_value:Number(t.appt_channel_value??0)},$.value="all",K.value=1,q.value=[],A.value=0,J.value=!0,te(1)}function et(t){if(!h.value){w.warning("请选择结算月");return}Y.value={mode:"channel",title:`业务订单 · ${t.appt_channel_name} · 医生 ${t.doctor_name}`,doctor_id:t.doctor_id,appt_channel_value:Number(t.appt_channel_value??0)},$.value="all",K.value=1,q.value=[],A.value=0,J.value=!0,te(1)}async function te(t){if(!(!h.value||!Y.value)){he.value=!0,K.value=t;try{const e=Y.value,i={settlement_month:h.value,page:t,page_size:ze.value};e.mode==="dept"?(Object.assign(i,L()),i.table_row_dept_id=e.dept_id):(Object.assign(i,L()),i.appt_channel_value=e.appt_channel_value,e.assistant_id!=null&&(i.assistant_id=e.assistant_id),e.doctor_id!=null&&(i.doctor_id=e.doctor_id)),$.value&&$.value!=="all"&&(i.bucket=$.value);const a=await qe(i);q.value=(a==null?void 0:a.list)||[],A.value=Number((a==null?void 0:a.count)??0)}catch(e){w.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"加载明细失败"),q.value=[],A.value=0}finally{he.value=!1}}}function k(t){return t==null||!Number.isFinite(Number(t))?"—":`¥ ${Number(t).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}`}async function tt(){ie.value=!0;try{const t=await Qt();ne.value=(t||[]).sort((e,i)=>{const a=e.name.includes("中心")?-1:1,x=i.name.includes("中心")?-1:1;return a!==x?a-x:e.id-i.id})}catch{}finally{ie.value=!1}}async function lt(){de.value=!0;try{const t=await Xt();Ce.value=(t==null?void 0:t.groups)||[]}catch{}finally{de.value=!1}}async function E(){var i;const t=h.value;if(!t){w.warning("请选择结算月");return}const e=U.value;if(!e||!e[0]||!e[1]){w.warning("请设置订单创建时间范围");return}R.value=!0;try{const a=await Jt(L());ue.value=(a==null?void 0:a.rows)||[],Se.value=(a==null?void 0:a.assistant_rows)||[],Ve.value=(a==null?void 0:a.doctor_rows)||[],oe.value=(a==null?void 0:a.assistant_channel_rows)||[],se.value=(a==null?void 0:a.doctor_channel_rows)||[],I.value=(a==null?void 0:a.total)||{},c.settlement_month=(a==null?void 0:a.settlement_month)||t,c.order_month=(a==null?void 0:a.order_month)||"",c.order_start_time=a!=null&&a.order_start_time?String(a.order_start_time):"",c.order_end_time=a!=null&&a.order_end_time?String(a.order_end_time):"",c.fulfillment_status=(a==null?void 0:a.fulfillment_status)!=null?Number(a.fulfillment_status):3,c.explicit_order_time_window=typeof(a==null?void 0:a.explicit_order_time_window)=="boolean"?a.explicit_order_time_window:!!(c.order_start_time&&c.order_end_time),c.cutoff_end=(a==null?void 0:a.cutoff_end)||"",c.rule_note=(a==null?void 0:a.rule_note)||"",c.channel_name=(a==null?void 0:a.channel_name)||"",c.require_system_auto_prescription=typeof(a==null?void 0:a.require_system_auto_prescription)=="boolean"?a.require_system_auto_prescription:!1,D.value=(a==null?void 0:a.confirm)??null,X.value=((i=a==null?void 0:a.confirm)==null?void 0:i.reconcile_note)!=null?String(a.confirm.reconcile_note):""}catch(a){w.error((a==null?void 0:a.msg)||(a==null?void 0:a.message)||"加载失败"),ue.value=[],Se.value=[],Ve.value=[],oe.value=[],se.value=[],I.value={},D.value=null}finally{R.value=!1}}function L(){const e={settlement_month:h.value,fulfillment_status:3},i=U.value;return i&&i[0]&&i[1]&&(e.start_time=i[0],e.end_time=i[1]),ae.value&&(e.require_system_auto_prescription=1),O.value.length>0&&(e.dept_ids=O.value.join(",")),Q.value&&(e.channel_code=Q.value),e}function at(){if(!h.value){w.warning("请选择结算月");return}me.value=!0}function nt(){P.value="all",we(1)}async function we(t){if(h.value){fe.value=!0,De.value=t;try{const e={...L(),page:t,page_size:Ee.value};P.value&&P.value!=="all"&&(e.bucket=P.value);const i=await qe(e);ve.value=(i==null?void 0:i.list)||[],ge.value=Number((i==null?void 0:i.count)??0)}catch(e){w.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"加载明细失败"),ve.value=[],ge.value=0}finally{fe.value=!1}}}async function ot(){if(!h.value){w.warning("请选择结算月");return}if(F.value){w.warning("已确定业绩不可修改备注;请先撤回确定");return}_e.value=!0;try{await Kt({...L(),reconcile_note:X.value}),w.success("已保存核对备注"),await E()}catch(t){w.error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"保存失败")}finally{_e.value=!1}}async function st(){if(!h.value){w.warning("请选择结算月");return}try{await Ye.confirm("确定后将为「顺延下期」订单写入结转记录,下一结算月在相同渠道与部门筛选下自动并入统计。确定后仍可「撤回确定」以清除结转并重新核对(与财务对齐后再操作)。","确定本期业绩",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"})}catch{return}ce.value=!0;try{const t=await Zt({...L(),reconcile_note:X.value});w.success(`已确定本期业绩;结转 ${Number((t==null?void 0:t.deferred_carry_count)??0)} 单至 ${String((t==null?void 0:t.next_settlement_month)??"下期")}`),await E()}catch(t){w.error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"提交失败")}finally{ce.value=!1}}async function rt(){if(!h.value){w.warning("请选择结算月");return}try{await Ye.confirm("将撤回本次「确定业绩」状态,并删除已写入的顺延结转记录(下期将不再汇入这些单)。确定后继续?","撤回确定业绩",{confirmButtonText:"撤回",cancelButtonText:"取消",type:"warning"})}catch{return}pe.value=!0;try{await el(L()),w.success("已撤回确定;可重新保存备注并再次确定本期业绩"),await E()}catch(t){w.error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"撤回失败")}finally{pe.value=!1}}function it(){h.value=ke(),U.value=re(h.value),ae.value=!1,O.value=[],Q.value="",E()}function Me(t){const{columns:e}=t,i=I.value,a=[];return e.forEach((x,f)=>{if(f===0){a[f]="合计";return}const g=x.property;if(!i||!g){a[f]="";return}if(g==="primary_dept_name"||g==="appt_channel_name"){a[f]="";return}if(g==="carry_in_order_count"){a[f]=String(i.carry_in_order_count??0);return}const y={completed_order_count:String(i.completed_order_count??0),completed_order_amount:k(i.completed_order_amount),current_period_count:String(i.current_period_count??0),current_period_amount:k(i.current_period_amount),deferred_period_count:String(i.deferred_period_count??0),deferred_period_amount:k(i.deferred_period_amount)};a[f]=y[String(g)]??""}),a}function $e(t,e){return i=>{const{rowIndex:a,columnIndex:x}=i;if(x>1)return;const f=t.value;if(!f||f.length===0)return;const g=f[a];if(!g)return;const y=g[e],z=a>0?f[a-1]:null;if(z&&z[e]===y)return{rowspan:0,colspan:0};let C=1;for(let N=a+1;N{if(f===0){a[f]="合计";return}const g=x.property;if(!i||!g){a[f]="";return}const y={completed_order_count:String(i.completed_order_count??0),completed_order_amount:k(i.completed_order_amount),current_period_count:String(i.current_period_count??0),current_period_amount:k(i.current_period_amount),deferred_period_count:String(i.deferred_period_count??0),deferred_period_amount:k(i.deferred_period_amount)};a[f]=y[String(g)]??""}),a}return ht(h,t=>{t&&(U.value=re(t))}),bt(async()=>{await Promise.all([tt(),lt()]),await E()}),(t,e)=>{const i=yt,a=kt,x=Ct,f=St,g=xt,y=Vt,z=Et,C=Dt,N=Mt,ct=$t,V=Tt,pt=Rt,mt=Pt,d=It,le=Ut,ye=Lt,ft=Ft,G=Gt,Re=At,Fe=jt,Le=Ht,j=Ot;return u(),m("div",ll,[r("header",al,[r("div",nl,[e[16]||(e[16]=wt(' 财务结算 · 业绩台账 订单池默认与处方订单列表同源:创建时间 start_time~end_time + fulfillment_status(默认完成态 3),账号列表可见性/数据域一并生效。 选结算月仍可套用「物流签收与尾款支付均须在结算月 7 日 24 点前」拆分「本期提成 / 顺延下期」 (仅有签收在范围内、尾款晚于截止仍会顺延); 展示部门/渠道下拉与列表不同,勾选后会与列表计数不同。
',1)),c.settlement_month||c.cutoff_end?(u(),m("dl",ol,[r("div",sl,[e[13]||(e[13]=r("dt",{class:"cs-stat__label"},"结算月",-1)),r("dd",rl,_(c.settlement_month||h.value),1)]),c.order_month||c.order_start_time?(u(),m("div",il,[e[14]||(e[14]=r("dt",{class:"cs-stat__label"},"订单时间窗",-1)),r("dd",dl,_(Z.value),1)])):v("",!0),c.cutoff_end?(u(),m("div",ul,[e[15]||(e[15]=r("dt",{class:"cs-stat__label"},"截止时刻",-1)),r("dd",_l,_(c.cutoff_end),1)])):v("",!0)])):v("",!0)])]),n(N,{class:"cs-panel filter-card",shadow:"never"},{default:o(()=>[r("div",cl,[r("div",pl,[r("div",ml,[e[17]||(e[17]=r("span",{class:"lbl"},"结算月",-1)),n(i,{modelValue:h.value,"onUpdate:modelValue":e[0]||(e[0]=l=>h.value=l),type:"month","value-format":"YYYY-MM",placeholder:"选择结算月",class:"filter-month"},null,8,["modelValue"])]),r("div",fl,[e[19]||(e[19]=r("span",{class:"lbl"},"订单创建",-1)),n(i,{modelValue:U.value,"onUpdate:modelValue":e[1]||(e[1]=l=>U.value=l),type:"datetimerange","value-format":"YYYY-MM-DD HH:mm:ss","range-separator":"至","start-placeholder":"列表 start_time","end-placeholder":"列表 end_time",class:"filter-datetimerange"},null,8,["modelValue"]),n(a,{modelValue:ae.value,"onUpdate:modelValue":e[2]||(e[2]=l=>ae.value=l),class:"filter-sa-check"},{default:o(()=>[...e[18]||(e[18]=[s(" 仅系统代开处方 ",-1)])]),_:1},8,["modelValue"])]),r("div",vl,[e[20]||(e[20]=r("span",{class:"lbl"},"渠道来源",-1)),n(g,{modelValue:Q.value,"onUpdate:modelValue":e[3]||(e[3]=l=>Q.value=l),filterable:"",clearable:"",placeholder:"全部",class:"filter-select filter-select--channel",loading:de.value,onChange:E},{default:o(()=>[n(x,{label:"全部",value:""}),(u(!0),m(S,null,Ue(Ce.value,l=>(u(),b(f,{key:l.group_name,label:l.group_name},{default:o(()=>[(u(!0),m(S,null,Ue(l.channels,M=>(u(),b(x,{key:M.channel_code,label:M.channel_name,value:M.channel_code},null,8,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","loading"])]),r("div",gl,[e[21]||(e[21]=r("span",{class:"lbl"},"展示部门",-1)),H((u(),m("div",hl,[n(y,{modelValue:O.value,"onUpdate:modelValue":e[4]||(e[4]=l=>O.value=l),data:je.value,multiple:"","collapse-tags":"","collapse-tags-tooltip":"",filterable:"","check-strictly":"","render-after-expand":!1,"default-expand-all":!0,placeholder:"默认:所有「中心」部门",class:"filter-dept-tree-select","node-key":"id",props:Ae},null,8,["modelValue","data"])])),[[j,ie.value]])]),r("div",bl,[n(C,{type:"primary",class:"filter-btn filter-btn--query",loading:R.value,onClick:E},{default:o(()=>[n(z,{class:"filter-btn__icon"},{default:o(()=>[n(B(zt))]),_:1}),e[22]||(e[22]=s(" 查询 ",-1))]),_:1},8,["loading"]),n(C,{class:"filter-btn filter-btn--reset",disabled:R.value,onClick:it},{default:o(()=>[n(z,{class:"filter-btn__icon"},{default:o(()=>[n(B(Nt))]),_:1}),e[23]||(e[23]=s(" 重置 ",-1))]),_:1},8,["disabled"])])])])]),_:1}),n(ct,{type:"info",closable:!1,"show-icon":"",class:"cs-alert"},{title:o(()=>[...e[24]||(e[24]=[r("span",{class:"cs-alert__title"},"统计口径",-1)])]),default:o(()=>[r("div",wl,[c.rule_note?(u(),m("p",yl,_(c.rule_note),1)):(u(),m("p",kl,[...e[25]||(e[25]=[s(" 请选择结算月并设置",-1),r("strong",null,"订单创建时间范围",-1),s("(与处方订单列表 URL 参数 ",-1),r("code",null,"start_time",-1),s("/",-1),r("code",null,"end_time",-1),s("/",-1),r("code",null,"fulfillment_status",-1),s(" 一致);切换结算月会自动带出",-1),r("strong",null,"上一自然月整段",-1),s("作为默认时段,可按业务修改(例如 2026-04-02~04-30)。 「仅系统代开处方」勾选后与列表在未限制开方类型时的条数会不一致。 ",-1)])])),c.cutoff_end?(u(),m("p",xl,[e[30]||(e[30]=s(" 当前结算月:",-1)),r("strong",null,_(c.settlement_month),1),e[31]||(e[31]=s(" · 订单时间:",-1)),r("strong",null,_(Z.value),1),e[32]||(e[32]=s(" · 履约状态:",-1)),r("strong",null,_(c.fulfillment_status??3),1),e[33]||(e[33]=s(" · 截止时刻:",-1)),r("strong",null,_(c.cutoff_end),1),c.channel_name?(u(),m(S,{key:0},[e[26]||(e[26]=s(" · 渠道:",-1)),r("strong",null,_(c.channel_name),1)],64)):v("",!0),c.settlement_month?(u(),m(S,{key:1},[e[29]||(e[29]=s(" · 处方池:",-1)),r("strong",null,_(c.require_system_auto_prescription?"仅系统代开":"含手动与系统"),1),c.explicit_order_time_window?(u(),m(S,{key:0},[e[27]||(e[27]=s(" · 列表对齐:",-1)),e[28]||(e[28]=r("strong",null,"是",-1))],64)):v("",!0)],64)):v("",!0)])):v("",!0)])]),_:1}),n(N,{class:"cs-panel cs-reconcile-card",shadow:"never"},{default:o(()=>{var l,M,Be;return[r("div",Cl,[r("div",Sl,[r("div",Vl,[F.value?(u(),b(V,{key:0,type:"success",effect:"dark"},{default:o(()=>[...e[34]||(e[34]=[s("已确定业绩",-1)])]),_:1})):((l=D.value)==null?void 0:l.status)===2?(u(),b(V,{key:1,type:"warning",effect:"plain"},{default:o(()=>[...e[35]||(e[35]=[s("已撤回确定",-1)])]),_:1})):(u(),b(V,{key:2,type:"info",effect:"plain"},{default:o(()=>[...e[36]||(e[36]=[s("待确定业绩",-1)])]),_:1})),F.value&&((M=D.value)!=null&&M.confirmed_at_text)?(u(),m("span",Ol,_(D.value.confirmed_admin_name||"—")+" · "+_(D.value.confirmed_at_text),1)):((Be=D.value)==null?void 0:Be.status)===2&&D.value.revoked_at_text?(u(),m("span",Dl," 撤回:"+_(D.value.revoked_admin_name||"—")+" · "+_(D.value.revoked_at_text),1)):v("",!0)]),r("div",El,[n(C,{type:"primary",plain:"",onClick:at},{default:o(()=>[...e[37]||(e[37]=[s("业绩明细核对",-1)])]),_:1}),n(C,{disabled:F.value||_e.value,onClick:ot},{default:o(()=>[...e[38]||(e[38]=[s(" 保存核对备注 ",-1)])]),_:1},8,["disabled"]),n(C,{type:"warning",disabled:F.value||ce.value,onClick:st},{default:o(()=>[...e[39]||(e[39]=[s(" 确定本期业绩 ",-1)])]),_:1},8,["disabled"]),F.value?(u(),b(C,{key:0,type:"danger",plain:"",loading:pe.value,onClick:rt},{default:o(()=>[...e[40]||(e[40]=[s(" 撤回确定 ",-1)])]),_:1},8,["loading"])):v("",!0)])]),n(pt,{modelValue:X.value,"onUpdate:modelValue":e[5]||(e[5]=vt=>X.value=vt),type:"textarea",rows:2,maxlength:"500","show-word-limit":"",placeholder:"核对备注(可与财务线下对齐后填写;确定业绩前可反复保存)",disabled:F.value,class:"cs-reconcile__note"},null,8,["modelValue","disabled"]),Number(I.value.carry_in_order_count)>0?(u(),m("p",zl,[e[41]||(e[41]=s(" 上期顺延汇入本期:",-1)),r("strong",null,_(I.value.carry_in_order_count),1),e[42]||(e[42]=s(" 单(已并入当前汇总) ",-1))])):v("",!0)])]}),_:1}),n(N,{class:"cs-panel cs-summary-card",shadow:"never"},{default:o(()=>[n(ft,{modelValue:Oe.value,"onUpdate:modelValue":e[6]||(e[6]=l=>Oe.value=l),class:"cs-summary-tabs"},{default:o(()=>[n(ye,{label:"部门汇总",name:"dept"},{default:o(()=>[r("div",Nl,[r("div",Ml,[e[43]||(e[43]=r("span",{class:"cs-table-head__title"},"部门汇总",-1)),ee.value?(u(),m("div",$l,[n(V,{size:"small",type:"info",effect:"plain",class:"cs-drill-state__tag"},{default:o(()=>[s(" 当前下钻:"+_(ee.value.path||ee.value.name),1)]),_:1}),n(C,{link:"",type:"primary",class:"cs-drill-state__back",onClick:Je},{default:o(()=>[n(z,null,{default:o(()=>[n(B(Bt))]),_:1}),s(" "+_(Qe.value),1)]),_:1})])):v("",!0)]),e[44]||(e[44]=r("span",{class:"cs-table-head__hint"},[s(" 金额单位:元;与业绩看板相同的部门摊列规则(业绩归属医助 → 展示「中心」)。 "),r("strong",null,"点击部门"),s(":若有子部门则下钻一层;末级部门弹出「已完成业绩订单」明细。 ")],-1))]),H((u(),b(le,{data:ue.value,border:"",stripe:"",size:"small",class:"cs-table cs-table--clickable","show-summary":"","summary-method":_t},{default:o(()=>[n(d,{prop:"dept_name",label:"部门","min-width":"220",fixed:""},{default:o(({row:l})=>[l.dept_id>0?(u(),b(mt,{key:0,type:"primary",underline:!1,class:"cs-dept-link",onClick:M=>Xe(l)},{default:o(()=>[r("span",Tl,_(l.dept_name),1),n(z,{class:"cs-dept-link__icon"},{default:o(()=>[Ne(l.dept_id)?(u(),b(B(Yt),{key:0})):(u(),b(B(qt),{key:1}))]),_:2},1024)]),_:2},1032,["onClick"])):(u(),m("span",Rl,_(l.dept_name),1))]),_:1}),n(d,{prop:"completed_order_count",label:"已完成单数","min-width":"104",align:"right"}),n(d,{prop:"completed_order_amount",label:"已完成金额","min-width":"112",align:"right"},{default:o(({row:l})=>[s(_(k(l.completed_order_amount)),1)]),_:1}),n(d,{prop:"current_period_count",label:"本期提成单数","min-width":"118",align:"right"}),n(d,{prop:"current_period_amount",label:"本期提成金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.current_period_amount)),1)]),_:1}),n(d,{prop:"deferred_period_count",label:"顺延下期单数","min-width":"118",align:"right"}),n(d,{prop:"deferred_period_amount",label:"顺延下期金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.deferred_period_amount)),1)]),_:1})]),_:1},8,["data"])),[[j,R.value]])]),_:1}),n(ye,{label:"按医助下发",name:"assistant"},{default:o(()=>[e[45]||(e[45]=r("div",{class:"cs-table-head"},[r("span",{class:"cs-table-head__title"},"业绩归属医助 × 挂号渠道"),r("span",{class:"cs-table-head__hint"},[s(" 按诊单业绩归属医助 "),r("strong",null,"×"),s(" 挂号渠道(doctor_appointment.channels)拆分到行; "),r("strong",null,"「复诊2」「复诊3」「自媒体1」等保持各自独立"),s(",未关联挂号统一归到「未匹配挂号渠道」。 同一医助多行"),r("strong",null,"自动合并「医助 / 归属中心」单元格"),s(",「顺延汇入」为上期结转进入本期订单池的单数。 "),r("strong",null,"展示部门"),s("有勾选时,本表仅列出"),r("strong",null,"可归入该部门上下文"),s("的业绩医助(与人事部门落在所选部门范围内的账号一致)。 "),r("strong",null,"点击挂号渠道"),s(":查看该行对应的业务订单明细(与上方部门筛选一致)。 ")])],-1)),H((u(),b(le,{data:oe.value,border:"",stripe:"",size:"small",class:"cs-table cs-table--grouped","show-summary":"","summary-method":Me,"span-method":B(dt)},{default:o(()=>[n(d,{prop:"assistant_name",label:"医助","min-width":"120",fixed:"","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属中心","min-width":"120","show-overflow-tooltip":""}),n(d,{prop:"appt_channel_name",label:"挂号渠道","min-width":"120","show-overflow-tooltip":""},{default:o(({row:l})=>[n(V,{size:"small",class:Pe(["cs-channel-tag cs-channel-tag--clickable",Te(l.appt_channel_name)]),effect:"plain",onClick:Ie(M=>Ze(l),["stop"])},{default:o(()=>[s(_(l.appt_channel_name),1)]),_:2},1032,["class","onClick"])]),_:1}),n(d,{prop:"carry_in_order_count",label:"顺延汇入单数","min-width":"112",align:"right"}),n(d,{prop:"completed_order_count",label:"已完成单数","min-width":"104",align:"right"}),n(d,{prop:"completed_order_amount",label:"已完成金额","min-width":"112",align:"right"},{default:o(({row:l})=>[s(_(k(l.completed_order_amount)),1)]),_:1}),n(d,{prop:"current_period_count",label:"本期提成单数","min-width":"118",align:"right"}),n(d,{prop:"current_period_amount",label:"本期提成金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.current_period_amount)),1)]),_:1}),n(d,{prop:"deferred_period_count",label:"顺延下期单数","min-width":"118",align:"right"}),n(d,{prop:"deferred_period_amount",label:"顺延下期金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.deferred_period_amount)),1)]),_:1})]),_:1},8,["data","span-method"])),[[j,R.value]])]),_:1}),n(ye,{label:"按医生下发",name:"doctor"},{default:o(()=>[e[46]||(e[46]=r("div",{class:"cs-table-head"},[r("span",{class:"cs-table-head__title"},"处方开方医生 × 挂号渠道"),r("span",{class:"cs-table-head__hint"},[s(" 按处方创建账号(开方人) "),r("strong",null,"×"),s(" 挂号渠道拆分; 可与医助维度交叉核对;同一医生多行自动合并「医生 / 归属中心」单元格。 "),r("strong",null,"展示部门"),s("有勾选时,与医助表相同,仅统计"),r("strong",null,"该部门上下文内"),s("订单对应的开方医生。 "),r("strong",null,"点击挂号渠道"),s(":查看该行对应的业务订单明细。 ")])],-1)),H((u(),b(le,{data:se.value,border:"",stripe:"",size:"small",class:"cs-table cs-table--grouped","show-summary":"","summary-method":Me,"span-method":B(ut)},{default:o(()=>[n(d,{prop:"doctor_name",label:"医生","min-width":"120",fixed:"","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属中心","min-width":"120","show-overflow-tooltip":""}),n(d,{prop:"appt_channel_name",label:"挂号渠道","min-width":"120","show-overflow-tooltip":""},{default:o(({row:l})=>[n(V,{size:"small",class:Pe(["cs-channel-tag cs-channel-tag--clickable",Te(l.appt_channel_name)]),effect:"plain",onClick:Ie(M=>et(l),["stop"])},{default:o(()=>[s(_(l.appt_channel_name),1)]),_:2},1032,["class","onClick"])]),_:1}),n(d,{prop:"carry_in_order_count",label:"顺延汇入单数","min-width":"112",align:"right"}),n(d,{prop:"completed_order_count",label:"已完成单数","min-width":"104",align:"right"}),n(d,{prop:"completed_order_amount",label:"已完成金额","min-width":"112",align:"right"},{default:o(({row:l})=>[s(_(k(l.completed_order_amount)),1)]),_:1}),n(d,{prop:"current_period_count",label:"本期提成单数","min-width":"118",align:"right"}),n(d,{prop:"current_period_amount",label:"本期提成金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.current_period_amount)),1)]),_:1}),n(d,{prop:"deferred_period_count",label:"顺延下期单数","min-width":"118",align:"right"}),n(d,{prop:"deferred_period_amount",label:"顺延下期金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.deferred_period_amount)),1)]),_:1})]),_:1},8,["data","span-method"])),[[j,R.value]])]),_:1})]),_:1},8,["modelValue"])]),_:1}),n(Le,{modelValue:me.value,"onUpdate:modelValue":e[9]||(e[9]=l=>me.value=l),title:"业绩明细核对",width:"1280px","destroy-on-close":"",class:"cs-dialog",onOpen:nt},{default:o(()=>[r("div",Fl,[n(Re,{modelValue:P.value,"onUpdate:modelValue":e[7]||(e[7]=l=>P.value=l),size:"small",onChange:e[8]||(e[8]=l=>we(1))},{default:o(()=>[n(G,{label:"all"},{default:o(()=>[...e[47]||(e[47]=[s("全部",-1)])]),_:1}),n(G,{label:"current"},{default:o(()=>[...e[48]||(e[48]=[s("本期提成",-1)])]),_:1}),n(G,{label:"deferred"},{default:o(()=>[...e[49]||(e[49]=[s("顺延下期",-1)])]),_:1})]),_:1},8,["modelValue"])]),H((u(),b(le,{data:ve.value,border:"",stripe:"",size:"small","max-height":"440"},{default:o(()=>[n(d,{prop:"order_no",label:"业务订单号","min-width":"128","show-overflow-tooltip":""}),n(d,{label:"患者","min-width":"112","show-overflow-tooltip":""},{default:o(({row:l})=>[r("div",Ll,[r("span",Bl,_(l.patient_name||"—"),1),l.patient_phone||l.patient_gender_text?(u(),m("span",Ul,[l.patient_gender_text?(u(),m(S,{key:0},[s(_(l.patient_gender_text),1)],64)):v("",!0),l.patient_gender_text&&l.patient_phone?(u(),m(S,{key:1},[s(" · ")],64)):v("",!0),l.patient_phone?(u(),m(S,{key:2},[s(_(l.patient_phone),1)],64)):v("",!0)])):v("",!0)])]),_:1}),n(d,{label:"快递单号","min-width":"132","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.tracking_number||"—"),1)]),_:1}),n(d,{label:"挂号日期","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[r("span",null,_(l.appointment_date_text||"—"),1),l.appointment_status&&Number(l.appointment_status)!==3?(u(),b(V,{key:0,class:"cs-tag-appt-muted",type:"info",size:"small",effect:"plain"},{default:o(()=>[...e[50]||(e[50]=[s("未完结挂号",-1)])]),_:1})):v("",!0)]),_:1}),n(d,{label:"挂号渠道","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.appt_channel_name||"—"),1)]),_:1}),n(d,{prop:"assistant_name",label:"业绩医助","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"doctor_name",label:"开方医生","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属部门","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"amount",label:"金额",width:"108",align:"right"},{default:o(({row:l})=>[s(_(k(l.amount)),1)]),_:1}),n(d,{label:"分段",width:"88",align:"center"},{default:o(({row:l})=>[l.bucket==="current"?(u(),b(V,{key:0,type:"success",size:"small"},{default:o(()=>[...e[51]||(e[51]=[s("本期",-1)])]),_:1})):(u(),b(V,{key:1,type:"warning",size:"small"},{default:o(()=>[...e[52]||(e[52]=[s("顺延",-1)])]),_:1}))]),_:1}),n(d,{label:"结转",width:"72",align:"center"},{default:o(({row:l})=>[l.is_carry_in?(u(),m("span",Il,"是")):(u(),m("span",Pl,"—"))]),_:1}),n(d,{label:"顺延说明","min-width":"200","show-overflow-tooltip":""},{default:o(({row:l})=>[l.bucket==="deferred"&&l.bucket_defer_text?(u(),m("span",Yl,_(l.bucket_defer_text),1)):(u(),m("span",ql,"—"))]),_:1}),n(d,{label:"物流签收","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.sign_time_text||"—"),1)]),_:1}),n(d,{prop:"pay_time_text",label:"尾款支付","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.pay_time_text||"—"),1)]),_:1}),n(d,{prop:"create_time_text",label:"订单创建",width:"152"})]),_:1},8,["data"])),[[j,fe.value]]),r("div",Al,[n(Fe,{layout:"total, prev, pager, next",total:ge.value,"page-size":Ee.value,"current-page":De.value,onCurrentChange:we},null,8,["total","page-size","current-page"])])]),_:1},8,["modelValue"]),n(Le,{modelValue:J.value,"onUpdate:modelValue":e[12]||(e[12]=l=>J.value=l),title:He.value,width:"1280px","destroy-on-close":"",class:"cs-dialog"},{default:o(()=>[r("div",Gl,[n(Re,{modelValue:$.value,"onUpdate:modelValue":e[10]||(e[10]=l=>$.value=l),size:"small",onChange:e[11]||(e[11]=l=>te(1))},{default:o(()=>[n(G,{label:"all"},{default:o(()=>[...e[53]||(e[53]=[s("全部已完成",-1)])]),_:1}),n(G,{label:"current"},{default:o(()=>[...e[54]||(e[54]=[s("本期提成",-1)])]),_:1}),n(G,{label:"deferred"},{default:o(()=>[...e[55]||(e[55]=[s("顺延下期",-1)])]),_:1})]),_:1},8,["modelValue"]),r("span",jl,[e[58]||(e[58]=s(" 结算月:",-1)),r("strong",null,_(c.settlement_month||h.value),1),Z.value&&Z.value!=="—"?(u(),m(S,{key:0},[e[56]||(e[56]=s(" · 订单创建:",-1)),r("strong",null,_(Z.value),1)],64)):v("",!0),c.channel_name?(u(),m(S,{key:1},[e[57]||(e[57]=s(" · 渠道:",-1)),r("strong",null,_(c.channel_name),1)],64)):v("",!0)])]),H((u(),b(le,{data:q.value,border:"",stripe:"",size:"small","max-height":"440"},{default:o(()=>[n(d,{prop:"order_no",label:"业务订单号","min-width":"128","show-overflow-tooltip":""}),n(d,{label:"患者","min-width":"112","show-overflow-tooltip":""},{default:o(({row:l})=>[r("div",Hl,[r("span",Wl,_(l.patient_name||"—"),1),l.patient_phone||l.patient_gender_text?(u(),m("span",Ql,[l.patient_gender_text?(u(),m(S,{key:0},[s(_(l.patient_gender_text),1)],64)):v("",!0),l.patient_gender_text&&l.patient_phone?(u(),m(S,{key:1},[s(" · ")],64)):v("",!0),l.patient_phone?(u(),m(S,{key:2},[s(_(l.patient_phone),1)],64)):v("",!0)])):v("",!0)])]),_:1}),n(d,{label:"快递单号","min-width":"132","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.tracking_number||"—"),1)]),_:1}),n(d,{label:"挂号日期","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[r("span",null,_(l.appointment_date_text||"—"),1),l.appointment_status&&Number(l.appointment_status)!==3?(u(),b(V,{key:0,class:"cs-tag-appt-muted",type:"info",size:"small",effect:"plain"},{default:o(()=>[...e[59]||(e[59]=[s("未完结挂号",-1)])]),_:1})):v("",!0)]),_:1}),n(d,{label:"挂号渠道","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.appt_channel_name||"—"),1)]),_:1}),n(d,{prop:"assistant_name",label:"业绩医助","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"doctor_name",label:"开方医生","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属部门","min-width":"120","show-overflow-tooltip":""}),n(d,{prop:"amount",label:"金额",width:"108",align:"right"},{default:o(({row:l})=>[s(_(k(l.amount)),1)]),_:1}),n(d,{label:"分段",width:"88",align:"center"},{default:o(({row:l})=>[l.bucket==="current"?(u(),b(V,{key:0,type:"success",size:"small"},{default:o(()=>[...e[60]||(e[60]=[s("本期",-1)])]),_:1})):(u(),b(V,{key:1,type:"warning",size:"small"},{default:o(()=>[...e[61]||(e[61]=[s("顺延",-1)])]),_:1}))]),_:1}),n(d,{label:"结转",width:"72",align:"center"},{default:o(({row:l})=>[l.is_carry_in?(u(),m("span",Xl,"是")):(u(),m("span",Jl,"—"))]),_:1}),n(d,{label:"顺延说明","min-width":"200","show-overflow-tooltip":""},{default:o(({row:l})=>[l.bucket==="deferred"&&l.bucket_defer_text?(u(),m("span",Kl,_(l.bucket_defer_text),1)):(u(),m("span",Zl,"—"))]),_:1}),n(d,{label:"物流签收","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.sign_time_text||"—"),1)]),_:1}),n(d,{prop:"pay_time_text",label:"尾款支付","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.pay_time_text||"—"),1)]),_:1}),n(d,{prop:"create_time_text",label:"订单创建",width:"152"})]),_:1},8,["data"])),[[j,he.value]]),r("div",ea,[n(Fe,{layout:"total, prev, pager, next",total:A.value,"page-size":ze.value,"current-page":K.value,onCurrentChange:te},null,8,["total","page-size","current-page"])])]),_:1},8,["modelValue","title"])])}}}),sa=tl(ta,[["__scopeId","data-v-a7de712c"]]);export{sa as default};
+import{o as gt,M as p,R as ht,ap as bt,q as u,r as m,s as r,cB as wt,T as _,P as v,v as n,D as o,be as yt,bd as kt,L as s,bf as xt,bg as Ct,F as S,G as Ue,O as b,cC as St,ac as H,bK as Vt,bl as Ot,K as Dt,w as Et,u as B,bA as zt,cy as Nt,bh as Mt,bm as $t,bk as Tt,b7 as Rt,Y as Ft,X as Lt,cD as Bt,bi as Ut,bj as It,br as Pt,cE as Yt,cF as qt,aw as Ie,ae as Pe,bc as At,bb as Gt,bs as jt,bt as Ht,p as T,ba as Wt,E as w,e as Ye}from"./.pnpm-BuKxIMgQ.js";import{c as qe,a as Qt,b as Xt,d as Jt,e as Kt,f as Zt,g as el}from"./stats-DI0l92te.js";import{_ as tl}from"./index-BZAvl557.js";const ll={class:"cs-page"},al={class:"cs-masthead"},nl={class:"cs-masthead__inner"},ol={key:0,class:"cs-masthead__stats"},sl={class:"cs-stat"},rl={class:"cs-stat__value"},il={key:0,class:"cs-stat"},dl={class:"cs-stat__value cs-stat__value--xs"},ul={key:1,class:"cs-stat"},_l={class:"cs-stat__value cs-stat__value--xs"},cl={class:"filter-surface"},pl={class:"filter-row filter-row--top"},ml={class:"filter-field"},fl={class:"filter-field filter-field--rangewrap"},vl={class:"filter-field"},gl={class:"filter-field filter-field--wide"},hl={class:"filter-select filter-select--dept filter-dept-tree-wrap"},bl={class:"filter-actions"},wl={class:"cs-alert__body"},yl={key:0},kl={key:1},xl={key:2,class:"cs-alert__meta"},Cl={class:"cs-reconcile"},Sl={class:"cs-reconcile__head"},Vl={class:"cs-reconcile__tags"},Ol={key:3,class:"cs-reconcile__meta"},Dl={key:4,class:"cs-reconcile__meta"},El={class:"cs-reconcile__toolbar"},zl={key:0,class:"cs-reconcile__carry"},Nl={class:"cs-table-head"},Ml={class:"cs-table-head__row"},$l={key:0,class:"cs-drill-state"},Tl={class:"cs-dept-link__text"},Rl={key:1,class:"cs-muted"},Fl={class:"cs-dialog__bar"},Ll={class:"cs-patient-cell"},Bl={class:"cs-patient-cell__name"},Ul={key:0,class:"cs-patient-cell__meta cs-muted"},Il={key:0},Pl={key:1,class:"cs-muted"},Yl={key:0,class:"cs-muted"},ql={key:1,class:"cs-muted"},Al={class:"cs-dialog__pager"},Gl={class:"cs-dialog__bar cs-dialog__bar--split"},jl={class:"cs-dialog__hint"},Hl={class:"cs-patient-cell"},Wl={class:"cs-patient-cell__name"},Ql={key:0,class:"cs-patient-cell__meta cs-muted"},Xl={key:0},Jl={key:1,class:"cs-muted"},Kl={key:0,class:"cs-muted"},Zl={key:1,class:"cs-muted"},ea={class:"cs-dialog__pager"},ta=gt({__name:"commission-settlement",setup(la){const Ae={value:"id",label:"name",children:"children"};function Ge(t){if(!t.length)return[];const e=new Map;for(const f of t)e.set(f.id,{...f,children:[]});const i=[];for(const f of t){const g=e.get(f.id),y=Number(f.pid);y>0&&e.has(y)?e.get(y).children.push(g):i.push(g)}const a=f=>{var g;(g=f.children)!=null&&g.length?f.children.forEach(a):delete f.children};i.forEach(a);const x=f=>{var g;f.sort((y,z)=>{const C=y.name.includes("中心")?-1:1,N=z.name.includes("中心")?-1:1;return C!==N?C-N:y.id-z.id});for(const y of f)(g=y.children)!=null&&g.length&&x(y.children)};return x(i),i}function ke(){const t=new Date,e=t.getFullYear(),i=String(t.getMonth()+1).padStart(2,"0");return`${e}-${i}`}function W(t){return String(t).padStart(2,"0")}function xe(t){return`${t.getFullYear()}-${W(t.getMonth()+1)}-${W(t.getDate())} ${W(t.getHours())}:${W(t.getMinutes())}:${W(t.getSeconds())}`}function re(t){const e=/^(\d{4})-(\d{2})$/.exec(t),i=e?parseInt(e[1],10):new Date().getFullYear(),a=e?parseInt(e[2],10):new Date().getMonth()+1,x=new Date(i,a-2,1,0,0,0),f=new Date(i,a-1,0,23,59,59);return[xe(x),xe(f)]}const h=p(ke()),U=p(re(h.value)),ae=p(!1),R=p(!1),ne=p([]),ie=p(!1),je=T(()=>Ge(ne.value)),O=p([]),Ce=p([]),de=p(!1),Q=p(""),ue=p([]),Se=p([]),Ve=p([]),oe=p([]),se=p([]),Oe=p("dept"),I=p({}),c=Wt({settlement_month:"",order_month:"",order_start_time:"",order_end_time:"",fulfillment_status:3,explicit_order_time_window:!1,cutoff_end:"",rule_note:"",channel_name:"",require_system_auto_prescription:!1}),D=p(null),X=p(""),_e=p(!1),ce=p(!1),pe=p(!1),F=T(()=>{var t;return Number((t=D.value)==null?void 0:t.status)===1}),me=p(!1),fe=p(!1),P=p("all"),ve=p([]),ge=p(0),De=p(1),Ee=p(20),J=p(!1),Y=p(null),$=p("all"),q=p([]),A=p(0),K=p(1),ze=p(20),he=p(!1),He=T(()=>{const t=Y.value;return t?t.mode==="dept"?`已完成业绩订单 · ${t.dept_name}`:t.title:"已完成业绩订单"}),Z=T(()=>c.order_start_time&&c.order_end_time?`${c.order_start_time}~${c.order_end_time}`:c.order_month||"—"),We=T(()=>{const t=new Map;for(const e of ne.value){const i=Number(e.pid),a=t.get(i)??[];a.push(e.id),t.set(i,a)}return t}),be=T(()=>{const t=new Map;for(const e of ne.value)t.set(e.id,e);return t}),ee=T(()=>{if(O.value.length!==1)return null;const t=O.value[0];return be.value.get(t)??null}),Qe=T(()=>{const t=ee.value;if(!t)return"返回顶层";const e=Number(t.pid),i=e>0?be.value.get(e):null;return!i||Number(i.pid)<=0?"返回顶层":`返回上级 · ${i.name}`});function Ne(t){if(!t||t<=0)return!1;const e=We.value.get(t);return!!(e&&e.length>0)}function Xe(t){if(!(!t||!t.dept_id||t.dept_id<=0)){if(Ne(t.dept_id)){O.value=[t.dept_id],E();return}Ke(t.dept_id,t.dept_name)}}function Je(){const t=ee.value;if(!t){O.value=[],E();return}const e=Number(t.pid),i=e>0?be.value.get(e):null;!i||Number(i.pid)<=0?O.value=[]:O.value=[e],E()}function Ke(t,e){if(!h.value){w.warning("请选择结算月");return}Y.value={mode:"dept",dept_id:t,dept_name:e},$.value="all",K.value=1,q.value=[],A.value=0,J.value=!0,te(1)}function Ze(t){if(!h.value){w.warning("请选择结算月");return}Y.value={mode:"channel",title:`业务订单 · ${t.appt_channel_name} · 医助 ${t.assistant_name}`,assistant_id:t.assistant_id,appt_channel_value:Number(t.appt_channel_value??0)},$.value="all",K.value=1,q.value=[],A.value=0,J.value=!0,te(1)}function et(t){if(!h.value){w.warning("请选择结算月");return}Y.value={mode:"channel",title:`业务订单 · ${t.appt_channel_name} · 医生 ${t.doctor_name}`,doctor_id:t.doctor_id,appt_channel_value:Number(t.appt_channel_value??0)},$.value="all",K.value=1,q.value=[],A.value=0,J.value=!0,te(1)}async function te(t){if(!(!h.value||!Y.value)){he.value=!0,K.value=t;try{const e=Y.value,i={settlement_month:h.value,page:t,page_size:ze.value};e.mode==="dept"?(Object.assign(i,L()),i.table_row_dept_id=e.dept_id):(Object.assign(i,L()),i.appt_channel_value=e.appt_channel_value,e.assistant_id!=null&&(i.assistant_id=e.assistant_id),e.doctor_id!=null&&(i.doctor_id=e.doctor_id)),$.value&&$.value!=="all"&&(i.bucket=$.value);const a=await qe(i);q.value=(a==null?void 0:a.list)||[],A.value=Number((a==null?void 0:a.count)??0)}catch(e){w.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"加载明细失败"),q.value=[],A.value=0}finally{he.value=!1}}}function k(t){return t==null||!Number.isFinite(Number(t))?"—":`¥ ${Number(t).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}`}async function tt(){ie.value=!0;try{const t=await Qt();ne.value=(t||[]).sort((e,i)=>{const a=e.name.includes("中心")?-1:1,x=i.name.includes("中心")?-1:1;return a!==x?a-x:e.id-i.id})}catch{}finally{ie.value=!1}}async function lt(){de.value=!0;try{const t=await Xt();Ce.value=(t==null?void 0:t.groups)||[]}catch{}finally{de.value=!1}}async function E(){var i;const t=h.value;if(!t){w.warning("请选择结算月");return}const e=U.value;if(!e||!e[0]||!e[1]){w.warning("请设置订单创建时间范围");return}R.value=!0;try{const a=await Jt(L());ue.value=(a==null?void 0:a.rows)||[],Se.value=(a==null?void 0:a.assistant_rows)||[],Ve.value=(a==null?void 0:a.doctor_rows)||[],oe.value=(a==null?void 0:a.assistant_channel_rows)||[],se.value=(a==null?void 0:a.doctor_channel_rows)||[],I.value=(a==null?void 0:a.total)||{},c.settlement_month=(a==null?void 0:a.settlement_month)||t,c.order_month=(a==null?void 0:a.order_month)||"",c.order_start_time=a!=null&&a.order_start_time?String(a.order_start_time):"",c.order_end_time=a!=null&&a.order_end_time?String(a.order_end_time):"",c.fulfillment_status=(a==null?void 0:a.fulfillment_status)!=null?Number(a.fulfillment_status):3,c.explicit_order_time_window=typeof(a==null?void 0:a.explicit_order_time_window)=="boolean"?a.explicit_order_time_window:!!(c.order_start_time&&c.order_end_time),c.cutoff_end=(a==null?void 0:a.cutoff_end)||"",c.rule_note=(a==null?void 0:a.rule_note)||"",c.channel_name=(a==null?void 0:a.channel_name)||"",c.require_system_auto_prescription=typeof(a==null?void 0:a.require_system_auto_prescription)=="boolean"?a.require_system_auto_prescription:!1,D.value=(a==null?void 0:a.confirm)??null,X.value=((i=a==null?void 0:a.confirm)==null?void 0:i.reconcile_note)!=null?String(a.confirm.reconcile_note):""}catch(a){w.error((a==null?void 0:a.msg)||(a==null?void 0:a.message)||"加载失败"),ue.value=[],Se.value=[],Ve.value=[],oe.value=[],se.value=[],I.value={},D.value=null}finally{R.value=!1}}function L(){const e={settlement_month:h.value,fulfillment_status:3},i=U.value;return i&&i[0]&&i[1]&&(e.start_time=i[0],e.end_time=i[1]),ae.value&&(e.require_system_auto_prescription=1),O.value.length>0&&(e.dept_ids=O.value.join(",")),Q.value&&(e.channel_code=Q.value),e}function at(){if(!h.value){w.warning("请选择结算月");return}me.value=!0}function nt(){P.value="all",we(1)}async function we(t){if(h.value){fe.value=!0,De.value=t;try{const e={...L(),page:t,page_size:Ee.value};P.value&&P.value!=="all"&&(e.bucket=P.value);const i=await qe(e);ve.value=(i==null?void 0:i.list)||[],ge.value=Number((i==null?void 0:i.count)??0)}catch(e){w.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"加载明细失败"),ve.value=[],ge.value=0}finally{fe.value=!1}}}async function ot(){if(!h.value){w.warning("请选择结算月");return}if(F.value){w.warning("已确定业绩不可修改备注;请先撤回确定");return}_e.value=!0;try{await Kt({...L(),reconcile_note:X.value}),w.success("已保存核对备注"),await E()}catch(t){w.error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"保存失败")}finally{_e.value=!1}}async function st(){if(!h.value){w.warning("请选择结算月");return}try{await Ye.confirm("确定后将为「顺延下期」订单写入结转记录,下一结算月在相同渠道与部门筛选下自动并入统计。确定后仍可「撤回确定」以清除结转并重新核对(与财务对齐后再操作)。","确定本期业绩",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"})}catch{return}ce.value=!0;try{const t=await Zt({...L(),reconcile_note:X.value});w.success(`已确定本期业绩;结转 ${Number((t==null?void 0:t.deferred_carry_count)??0)} 单至 ${String((t==null?void 0:t.next_settlement_month)??"下期")}`),await E()}catch(t){w.error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"提交失败")}finally{ce.value=!1}}async function rt(){if(!h.value){w.warning("请选择结算月");return}try{await Ye.confirm("将撤回本次「确定业绩」状态,并删除已写入的顺延结转记录(下期将不再汇入这些单)。确定后继续?","撤回确定业绩",{confirmButtonText:"撤回",cancelButtonText:"取消",type:"warning"})}catch{return}pe.value=!0;try{await el(L()),w.success("已撤回确定;可重新保存备注并再次确定本期业绩"),await E()}catch(t){w.error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"撤回失败")}finally{pe.value=!1}}function it(){h.value=ke(),U.value=re(h.value),ae.value=!1,O.value=[],Q.value="",E()}function Me(t){const{columns:e}=t,i=I.value,a=[];return e.forEach((x,f)=>{if(f===0){a[f]="合计";return}const g=x.property;if(!i||!g){a[f]="";return}if(g==="primary_dept_name"||g==="appt_channel_name"){a[f]="";return}if(g==="carry_in_order_count"){a[f]=String(i.carry_in_order_count??0);return}const y={completed_order_count:String(i.completed_order_count??0),completed_order_amount:k(i.completed_order_amount),current_period_count:String(i.current_period_count??0),current_period_amount:k(i.current_period_amount),deferred_period_count:String(i.deferred_period_count??0),deferred_period_amount:k(i.deferred_period_amount)};a[f]=y[String(g)]??""}),a}function $e(t,e){return i=>{const{rowIndex:a,columnIndex:x}=i;if(x>1)return;const f=t.value;if(!f||f.length===0)return;const g=f[a];if(!g)return;const y=g[e],z=a>0?f[a-1]:null;if(z&&z[e]===y)return{rowspan:0,colspan:0};let C=1;for(let N=a+1;N{if(f===0){a[f]="合计";return}const g=x.property;if(!i||!g){a[f]="";return}const y={completed_order_count:String(i.completed_order_count??0),completed_order_amount:k(i.completed_order_amount),current_period_count:String(i.current_period_count??0),current_period_amount:k(i.current_period_amount),deferred_period_count:String(i.deferred_period_count??0),deferred_period_amount:k(i.deferred_period_amount)};a[f]=y[String(g)]??""}),a}return ht(h,t=>{t&&(U.value=re(t))}),bt(async()=>{await Promise.all([tt(),lt()]),await E()}),(t,e)=>{const i=yt,a=kt,x=Ct,f=St,g=xt,y=Vt,z=Et,C=Dt,N=Mt,ct=$t,V=Tt,pt=Rt,mt=Pt,d=It,le=Ut,ye=Lt,ft=Ft,G=Gt,Re=At,Fe=jt,Le=Ht,j=Ot;return u(),m("div",ll,[r("header",al,[r("div",nl,[e[16]||(e[16]=wt(' 财务结算 · 业绩台账 订单池默认与处方订单列表同源:创建时间 start_time~end_time + fulfillment_status(默认完成态 3),账号列表可见性/数据域一并生效。 选结算月仍可套用「物流签收与尾款支付均须在结算月 7 日 24 点前」拆分「本期提成 / 顺延下期」 (仅有签收在范围内、尾款晚于截止仍会顺延); 展示部门/渠道下拉与列表不同,勾选后会与列表计数不同。
',1)),c.settlement_month||c.cutoff_end?(u(),m("dl",ol,[r("div",sl,[e[13]||(e[13]=r("dt",{class:"cs-stat__label"},"结算月",-1)),r("dd",rl,_(c.settlement_month||h.value),1)]),c.order_month||c.order_start_time?(u(),m("div",il,[e[14]||(e[14]=r("dt",{class:"cs-stat__label"},"订单时间窗",-1)),r("dd",dl,_(Z.value),1)])):v("",!0),c.cutoff_end?(u(),m("div",ul,[e[15]||(e[15]=r("dt",{class:"cs-stat__label"},"截止时刻",-1)),r("dd",_l,_(c.cutoff_end),1)])):v("",!0)])):v("",!0)])]),n(N,{class:"cs-panel filter-card",shadow:"never"},{default:o(()=>[r("div",cl,[r("div",pl,[r("div",ml,[e[17]||(e[17]=r("span",{class:"lbl"},"结算月",-1)),n(i,{modelValue:h.value,"onUpdate:modelValue":e[0]||(e[0]=l=>h.value=l),type:"month","value-format":"YYYY-MM",placeholder:"选择结算月",class:"filter-month"},null,8,["modelValue"])]),r("div",fl,[e[19]||(e[19]=r("span",{class:"lbl"},"订单创建",-1)),n(i,{modelValue:U.value,"onUpdate:modelValue":e[1]||(e[1]=l=>U.value=l),type:"datetimerange","value-format":"YYYY-MM-DD HH:mm:ss","range-separator":"至","start-placeholder":"列表 start_time","end-placeholder":"列表 end_time",class:"filter-datetimerange"},null,8,["modelValue"]),n(a,{modelValue:ae.value,"onUpdate:modelValue":e[2]||(e[2]=l=>ae.value=l),class:"filter-sa-check"},{default:o(()=>[...e[18]||(e[18]=[s(" 仅系统代开处方 ",-1)])]),_:1},8,["modelValue"])]),r("div",vl,[e[20]||(e[20]=r("span",{class:"lbl"},"渠道来源",-1)),n(g,{modelValue:Q.value,"onUpdate:modelValue":e[3]||(e[3]=l=>Q.value=l),filterable:"",clearable:"",placeholder:"全部",class:"filter-select filter-select--channel",loading:de.value,onChange:E},{default:o(()=>[n(x,{label:"全部",value:""}),(u(!0),m(S,null,Ue(Ce.value,l=>(u(),b(f,{key:l.group_name,label:l.group_name},{default:o(()=>[(u(!0),m(S,null,Ue(l.channels,M=>(u(),b(x,{key:M.channel_code,label:M.channel_name,value:M.channel_code},null,8,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","loading"])]),r("div",gl,[e[21]||(e[21]=r("span",{class:"lbl"},"展示部门",-1)),H((u(),m("div",hl,[n(y,{modelValue:O.value,"onUpdate:modelValue":e[4]||(e[4]=l=>O.value=l),data:je.value,multiple:"","collapse-tags":"","collapse-tags-tooltip":"",filterable:"","check-strictly":"","render-after-expand":!1,"default-expand-all":!0,placeholder:"默认:所有「中心」部门",class:"filter-dept-tree-select","node-key":"id",props:Ae},null,8,["modelValue","data"])])),[[j,ie.value]])]),r("div",bl,[n(C,{type:"primary",class:"filter-btn filter-btn--query",loading:R.value,onClick:E},{default:o(()=>[n(z,{class:"filter-btn__icon"},{default:o(()=>[n(B(zt))]),_:1}),e[22]||(e[22]=s(" 查询 ",-1))]),_:1},8,["loading"]),n(C,{class:"filter-btn filter-btn--reset",disabled:R.value,onClick:it},{default:o(()=>[n(z,{class:"filter-btn__icon"},{default:o(()=>[n(B(Nt))]),_:1}),e[23]||(e[23]=s(" 重置 ",-1))]),_:1},8,["disabled"])])])])]),_:1}),n(ct,{type:"info",closable:!1,"show-icon":"",class:"cs-alert"},{title:o(()=>[...e[24]||(e[24]=[r("span",{class:"cs-alert__title"},"统计口径",-1)])]),default:o(()=>[r("div",wl,[c.rule_note?(u(),m("p",yl,_(c.rule_note),1)):(u(),m("p",kl,[...e[25]||(e[25]=[s(" 请选择结算月并设置",-1),r("strong",null,"订单创建时间范围",-1),s("(与处方订单列表 URL 参数 ",-1),r("code",null,"start_time",-1),s("/",-1),r("code",null,"end_time",-1),s("/",-1),r("code",null,"fulfillment_status",-1),s(" 一致);切换结算月会自动带出",-1),r("strong",null,"上一自然月整段",-1),s("作为默认时段,可按业务修改(例如 2026-04-02~04-30)。 「仅系统代开处方」勾选后与列表在未限制开方类型时的条数会不一致。 ",-1)])])),c.cutoff_end?(u(),m("p",xl,[e[30]||(e[30]=s(" 当前结算月:",-1)),r("strong",null,_(c.settlement_month),1),e[31]||(e[31]=s(" · 订单时间:",-1)),r("strong",null,_(Z.value),1),e[32]||(e[32]=s(" · 履约状态:",-1)),r("strong",null,_(c.fulfillment_status??3),1),e[33]||(e[33]=s(" · 截止时刻:",-1)),r("strong",null,_(c.cutoff_end),1),c.channel_name?(u(),m(S,{key:0},[e[26]||(e[26]=s(" · 渠道:",-1)),r("strong",null,_(c.channel_name),1)],64)):v("",!0),c.settlement_month?(u(),m(S,{key:1},[e[29]||(e[29]=s(" · 处方池:",-1)),r("strong",null,_(c.require_system_auto_prescription?"仅系统代开":"含手动与系统"),1),c.explicit_order_time_window?(u(),m(S,{key:0},[e[27]||(e[27]=s(" · 列表对齐:",-1)),e[28]||(e[28]=r("strong",null,"是",-1))],64)):v("",!0)],64)):v("",!0)])):v("",!0)])]),_:1}),n(N,{class:"cs-panel cs-reconcile-card",shadow:"never"},{default:o(()=>{var l,M,Be;return[r("div",Cl,[r("div",Sl,[r("div",Vl,[F.value?(u(),b(V,{key:0,type:"success",effect:"dark"},{default:o(()=>[...e[34]||(e[34]=[s("已确定业绩",-1)])]),_:1})):((l=D.value)==null?void 0:l.status)===2?(u(),b(V,{key:1,type:"warning",effect:"plain"},{default:o(()=>[...e[35]||(e[35]=[s("已撤回确定",-1)])]),_:1})):(u(),b(V,{key:2,type:"info",effect:"plain"},{default:o(()=>[...e[36]||(e[36]=[s("待确定业绩",-1)])]),_:1})),F.value&&((M=D.value)!=null&&M.confirmed_at_text)?(u(),m("span",Ol,_(D.value.confirmed_admin_name||"—")+" · "+_(D.value.confirmed_at_text),1)):((Be=D.value)==null?void 0:Be.status)===2&&D.value.revoked_at_text?(u(),m("span",Dl," 撤回:"+_(D.value.revoked_admin_name||"—")+" · "+_(D.value.revoked_at_text),1)):v("",!0)]),r("div",El,[n(C,{type:"primary",plain:"",onClick:at},{default:o(()=>[...e[37]||(e[37]=[s("业绩明细核对",-1)])]),_:1}),n(C,{disabled:F.value||_e.value,onClick:ot},{default:o(()=>[...e[38]||(e[38]=[s(" 保存核对备注 ",-1)])]),_:1},8,["disabled"]),n(C,{type:"warning",disabled:F.value||ce.value,onClick:st},{default:o(()=>[...e[39]||(e[39]=[s(" 确定本期业绩 ",-1)])]),_:1},8,["disabled"]),F.value?(u(),b(C,{key:0,type:"danger",plain:"",loading:pe.value,onClick:rt},{default:o(()=>[...e[40]||(e[40]=[s(" 撤回确定 ",-1)])]),_:1},8,["loading"])):v("",!0)])]),n(pt,{modelValue:X.value,"onUpdate:modelValue":e[5]||(e[5]=vt=>X.value=vt),type:"textarea",rows:2,maxlength:"500","show-word-limit":"",placeholder:"核对备注(可与财务线下对齐后填写;确定业绩前可反复保存)",disabled:F.value,class:"cs-reconcile__note"},null,8,["modelValue","disabled"]),Number(I.value.carry_in_order_count)>0?(u(),m("p",zl,[e[41]||(e[41]=s(" 上期顺延汇入本期:",-1)),r("strong",null,_(I.value.carry_in_order_count),1),e[42]||(e[42]=s(" 单(已并入当前汇总) ",-1))])):v("",!0)])]}),_:1}),n(N,{class:"cs-panel cs-summary-card",shadow:"never"},{default:o(()=>[n(ft,{modelValue:Oe.value,"onUpdate:modelValue":e[6]||(e[6]=l=>Oe.value=l),class:"cs-summary-tabs"},{default:o(()=>[n(ye,{label:"部门汇总",name:"dept"},{default:o(()=>[r("div",Nl,[r("div",Ml,[e[43]||(e[43]=r("span",{class:"cs-table-head__title"},"部门汇总",-1)),ee.value?(u(),m("div",$l,[n(V,{size:"small",type:"info",effect:"plain",class:"cs-drill-state__tag"},{default:o(()=>[s(" 当前下钻:"+_(ee.value.path||ee.value.name),1)]),_:1}),n(C,{link:"",type:"primary",class:"cs-drill-state__back",onClick:Je},{default:o(()=>[n(z,null,{default:o(()=>[n(B(Bt))]),_:1}),s(" "+_(Qe.value),1)]),_:1})])):v("",!0)]),e[44]||(e[44]=r("span",{class:"cs-table-head__hint"},[s(" 金额单位:元;与业绩看板相同的部门摊列规则(业绩归属医助 → 展示「中心」)。 "),r("strong",null,"点击部门"),s(":若有子部门则下钻一层;末级部门弹出「已完成业绩订单」明细。 ")],-1))]),H((u(),b(le,{data:ue.value,border:"",stripe:"",size:"small",class:"cs-table cs-table--clickable","show-summary":"","summary-method":_t},{default:o(()=>[n(d,{prop:"dept_name",label:"部门","min-width":"220",fixed:""},{default:o(({row:l})=>[l.dept_id>0?(u(),b(mt,{key:0,type:"primary",underline:!1,class:"cs-dept-link",onClick:M=>Xe(l)},{default:o(()=>[r("span",Tl,_(l.dept_name),1),n(z,{class:"cs-dept-link__icon"},{default:o(()=>[Ne(l.dept_id)?(u(),b(B(Yt),{key:0})):(u(),b(B(qt),{key:1}))]),_:2},1024)]),_:2},1032,["onClick"])):(u(),m("span",Rl,_(l.dept_name),1))]),_:1}),n(d,{prop:"completed_order_count",label:"已完成单数","min-width":"104",align:"right"}),n(d,{prop:"completed_order_amount",label:"已完成金额","min-width":"112",align:"right"},{default:o(({row:l})=>[s(_(k(l.completed_order_amount)),1)]),_:1}),n(d,{prop:"current_period_count",label:"本期提成单数","min-width":"118",align:"right"}),n(d,{prop:"current_period_amount",label:"本期提成金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.current_period_amount)),1)]),_:1}),n(d,{prop:"deferred_period_count",label:"顺延下期单数","min-width":"118",align:"right"}),n(d,{prop:"deferred_period_amount",label:"顺延下期金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.deferred_period_amount)),1)]),_:1})]),_:1},8,["data"])),[[j,R.value]])]),_:1}),n(ye,{label:"按医助下发",name:"assistant"},{default:o(()=>[e[45]||(e[45]=r("div",{class:"cs-table-head"},[r("span",{class:"cs-table-head__title"},"业绩归属医助 × 挂号渠道"),r("span",{class:"cs-table-head__hint"},[s(" 按诊单业绩归属医助 "),r("strong",null,"×"),s(" 挂号渠道(doctor_appointment.channels)拆分到行; "),r("strong",null,"「复诊2」「复诊3」「自媒体1」等保持各自独立"),s(",未关联挂号统一归到「未匹配挂号渠道」。 同一医助多行"),r("strong",null,"自动合并「医助 / 归属中心」单元格"),s(",「顺延汇入」为上期结转进入本期订单池的单数。 "),r("strong",null,"展示部门"),s("有勾选时,本表仅列出"),r("strong",null,"可归入该部门上下文"),s("的业绩医助(与人事部门落在所选部门范围内的账号一致)。 "),r("strong",null,"点击挂号渠道"),s(":查看该行对应的业务订单明细(与上方部门筛选一致)。 ")])],-1)),H((u(),b(le,{data:oe.value,border:"",stripe:"",size:"small",class:"cs-table cs-table--grouped","show-summary":"","summary-method":Me,"span-method":B(dt)},{default:o(()=>[n(d,{prop:"assistant_name",label:"医助","min-width":"120",fixed:"","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属中心","min-width":"120","show-overflow-tooltip":""}),n(d,{prop:"appt_channel_name",label:"挂号渠道","min-width":"120","show-overflow-tooltip":""},{default:o(({row:l})=>[n(V,{size:"small",class:Pe(["cs-channel-tag cs-channel-tag--clickable",Te(l.appt_channel_name)]),effect:"plain",onClick:Ie(M=>Ze(l),["stop"])},{default:o(()=>[s(_(l.appt_channel_name),1)]),_:2},1032,["class","onClick"])]),_:1}),n(d,{prop:"carry_in_order_count",label:"顺延汇入单数","min-width":"112",align:"right"}),n(d,{prop:"completed_order_count",label:"已完成单数","min-width":"104",align:"right"}),n(d,{prop:"completed_order_amount",label:"已完成金额","min-width":"112",align:"right"},{default:o(({row:l})=>[s(_(k(l.completed_order_amount)),1)]),_:1}),n(d,{prop:"current_period_count",label:"本期提成单数","min-width":"118",align:"right"}),n(d,{prop:"current_period_amount",label:"本期提成金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.current_period_amount)),1)]),_:1}),n(d,{prop:"deferred_period_count",label:"顺延下期单数","min-width":"118",align:"right"}),n(d,{prop:"deferred_period_amount",label:"顺延下期金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.deferred_period_amount)),1)]),_:1})]),_:1},8,["data","span-method"])),[[j,R.value]])]),_:1}),n(ye,{label:"按医生下发",name:"doctor"},{default:o(()=>[e[46]||(e[46]=r("div",{class:"cs-table-head"},[r("span",{class:"cs-table-head__title"},"处方开方医生 × 挂号渠道"),r("span",{class:"cs-table-head__hint"},[s(" 按处方创建账号(开方人) "),r("strong",null,"×"),s(" 挂号渠道拆分; 可与医助维度交叉核对;同一医生多行自动合并「医生 / 归属中心」单元格。 "),r("strong",null,"展示部门"),s("有勾选时,与医助表相同,仅统计"),r("strong",null,"该部门上下文内"),s("订单对应的开方医生。 "),r("strong",null,"点击挂号渠道"),s(":查看该行对应的业务订单明细。 ")])],-1)),H((u(),b(le,{data:se.value,border:"",stripe:"",size:"small",class:"cs-table cs-table--grouped","show-summary":"","summary-method":Me,"span-method":B(ut)},{default:o(()=>[n(d,{prop:"doctor_name",label:"医生","min-width":"120",fixed:"","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属中心","min-width":"120","show-overflow-tooltip":""}),n(d,{prop:"appt_channel_name",label:"挂号渠道","min-width":"120","show-overflow-tooltip":""},{default:o(({row:l})=>[n(V,{size:"small",class:Pe(["cs-channel-tag cs-channel-tag--clickable",Te(l.appt_channel_name)]),effect:"plain",onClick:Ie(M=>et(l),["stop"])},{default:o(()=>[s(_(l.appt_channel_name),1)]),_:2},1032,["class","onClick"])]),_:1}),n(d,{prop:"carry_in_order_count",label:"顺延汇入单数","min-width":"112",align:"right"}),n(d,{prop:"completed_order_count",label:"已完成单数","min-width":"104",align:"right"}),n(d,{prop:"completed_order_amount",label:"已完成金额","min-width":"112",align:"right"},{default:o(({row:l})=>[s(_(k(l.completed_order_amount)),1)]),_:1}),n(d,{prop:"current_period_count",label:"本期提成单数","min-width":"118",align:"right"}),n(d,{prop:"current_period_amount",label:"本期提成金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.current_period_amount)),1)]),_:1}),n(d,{prop:"deferred_period_count",label:"顺延下期单数","min-width":"118",align:"right"}),n(d,{prop:"deferred_period_amount",label:"顺延下期金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.deferred_period_amount)),1)]),_:1})]),_:1},8,["data","span-method"])),[[j,R.value]])]),_:1})]),_:1},8,["modelValue"])]),_:1}),n(Le,{modelValue:me.value,"onUpdate:modelValue":e[9]||(e[9]=l=>me.value=l),title:"业绩明细核对",width:"1280px","destroy-on-close":"",class:"cs-dialog",onOpen:nt},{default:o(()=>[r("div",Fl,[n(Re,{modelValue:P.value,"onUpdate:modelValue":e[7]||(e[7]=l=>P.value=l),size:"small",onChange:e[8]||(e[8]=l=>we(1))},{default:o(()=>[n(G,{label:"all"},{default:o(()=>[...e[47]||(e[47]=[s("全部",-1)])]),_:1}),n(G,{label:"current"},{default:o(()=>[...e[48]||(e[48]=[s("本期提成",-1)])]),_:1}),n(G,{label:"deferred"},{default:o(()=>[...e[49]||(e[49]=[s("顺延下期",-1)])]),_:1})]),_:1},8,["modelValue"])]),H((u(),b(le,{data:ve.value,border:"",stripe:"",size:"small","max-height":"440"},{default:o(()=>[n(d,{prop:"order_no",label:"业务订单号","min-width":"128","show-overflow-tooltip":""}),n(d,{label:"患者","min-width":"112","show-overflow-tooltip":""},{default:o(({row:l})=>[r("div",Ll,[r("span",Bl,_(l.patient_name||"—"),1),l.patient_phone||l.patient_gender_text?(u(),m("span",Ul,[l.patient_gender_text?(u(),m(S,{key:0},[s(_(l.patient_gender_text),1)],64)):v("",!0),l.patient_gender_text&&l.patient_phone?(u(),m(S,{key:1},[s(" · ")],64)):v("",!0),l.patient_phone?(u(),m(S,{key:2},[s(_(l.patient_phone),1)],64)):v("",!0)])):v("",!0)])]),_:1}),n(d,{label:"快递单号","min-width":"132","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.tracking_number||"—"),1)]),_:1}),n(d,{label:"挂号日期","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[r("span",null,_(l.appointment_date_text||"—"),1),l.appointment_status&&Number(l.appointment_status)!==3?(u(),b(V,{key:0,class:"cs-tag-appt-muted",type:"info",size:"small",effect:"plain"},{default:o(()=>[...e[50]||(e[50]=[s("未完结挂号",-1)])]),_:1})):v("",!0)]),_:1}),n(d,{label:"挂号渠道","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.appt_channel_name||"—"),1)]),_:1}),n(d,{prop:"assistant_name",label:"业绩医助","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"doctor_name",label:"开方医生","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属部门","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"amount",label:"金额",width:"108",align:"right"},{default:o(({row:l})=>[s(_(k(l.amount)),1)]),_:1}),n(d,{label:"分段",width:"88",align:"center"},{default:o(({row:l})=>[l.bucket==="current"?(u(),b(V,{key:0,type:"success",size:"small"},{default:o(()=>[...e[51]||(e[51]=[s("本期",-1)])]),_:1})):(u(),b(V,{key:1,type:"warning",size:"small"},{default:o(()=>[...e[52]||(e[52]=[s("顺延",-1)])]),_:1}))]),_:1}),n(d,{label:"结转",width:"72",align:"center"},{default:o(({row:l})=>[l.is_carry_in?(u(),m("span",Il,"是")):(u(),m("span",Pl,"—"))]),_:1}),n(d,{label:"顺延说明","min-width":"200","show-overflow-tooltip":""},{default:o(({row:l})=>[l.bucket==="deferred"&&l.bucket_defer_text?(u(),m("span",Yl,_(l.bucket_defer_text),1)):(u(),m("span",ql,"—"))]),_:1}),n(d,{label:"物流签收","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.sign_time_text||"—"),1)]),_:1}),n(d,{prop:"pay_time_text",label:"尾款支付","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.pay_time_text||"—"),1)]),_:1}),n(d,{prop:"create_time_text",label:"订单创建",width:"152"})]),_:1},8,["data"])),[[j,fe.value]]),r("div",Al,[n(Fe,{layout:"total, prev, pager, next",total:ge.value,"page-size":Ee.value,"current-page":De.value,onCurrentChange:we},null,8,["total","page-size","current-page"])])]),_:1},8,["modelValue"]),n(Le,{modelValue:J.value,"onUpdate:modelValue":e[12]||(e[12]=l=>J.value=l),title:He.value,width:"1280px","destroy-on-close":"",class:"cs-dialog"},{default:o(()=>[r("div",Gl,[n(Re,{modelValue:$.value,"onUpdate:modelValue":e[10]||(e[10]=l=>$.value=l),size:"small",onChange:e[11]||(e[11]=l=>te(1))},{default:o(()=>[n(G,{label:"all"},{default:o(()=>[...e[53]||(e[53]=[s("全部已完成",-1)])]),_:1}),n(G,{label:"current"},{default:o(()=>[...e[54]||(e[54]=[s("本期提成",-1)])]),_:1}),n(G,{label:"deferred"},{default:o(()=>[...e[55]||(e[55]=[s("顺延下期",-1)])]),_:1})]),_:1},8,["modelValue"]),r("span",jl,[e[58]||(e[58]=s(" 结算月:",-1)),r("strong",null,_(c.settlement_month||h.value),1),Z.value&&Z.value!=="—"?(u(),m(S,{key:0},[e[56]||(e[56]=s(" · 订单创建:",-1)),r("strong",null,_(Z.value),1)],64)):v("",!0),c.channel_name?(u(),m(S,{key:1},[e[57]||(e[57]=s(" · 渠道:",-1)),r("strong",null,_(c.channel_name),1)],64)):v("",!0)])]),H((u(),b(le,{data:q.value,border:"",stripe:"",size:"small","max-height":"440"},{default:o(()=>[n(d,{prop:"order_no",label:"业务订单号","min-width":"128","show-overflow-tooltip":""}),n(d,{label:"患者","min-width":"112","show-overflow-tooltip":""},{default:o(({row:l})=>[r("div",Hl,[r("span",Wl,_(l.patient_name||"—"),1),l.patient_phone||l.patient_gender_text?(u(),m("span",Ql,[l.patient_gender_text?(u(),m(S,{key:0},[s(_(l.patient_gender_text),1)],64)):v("",!0),l.patient_gender_text&&l.patient_phone?(u(),m(S,{key:1},[s(" · ")],64)):v("",!0),l.patient_phone?(u(),m(S,{key:2},[s(_(l.patient_phone),1)],64)):v("",!0)])):v("",!0)])]),_:1}),n(d,{label:"快递单号","min-width":"132","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.tracking_number||"—"),1)]),_:1}),n(d,{label:"挂号日期","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[r("span",null,_(l.appointment_date_text||"—"),1),l.appointment_status&&Number(l.appointment_status)!==3?(u(),b(V,{key:0,class:"cs-tag-appt-muted",type:"info",size:"small",effect:"plain"},{default:o(()=>[...e[59]||(e[59]=[s("未完结挂号",-1)])]),_:1})):v("",!0)]),_:1}),n(d,{label:"挂号渠道","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.appt_channel_name||"—"),1)]),_:1}),n(d,{prop:"assistant_name",label:"业绩医助","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"doctor_name",label:"开方医生","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属部门","min-width":"120","show-overflow-tooltip":""}),n(d,{prop:"amount",label:"金额",width:"108",align:"right"},{default:o(({row:l})=>[s(_(k(l.amount)),1)]),_:1}),n(d,{label:"分段",width:"88",align:"center"},{default:o(({row:l})=>[l.bucket==="current"?(u(),b(V,{key:0,type:"success",size:"small"},{default:o(()=>[...e[60]||(e[60]=[s("本期",-1)])]),_:1})):(u(),b(V,{key:1,type:"warning",size:"small"},{default:o(()=>[...e[61]||(e[61]=[s("顺延",-1)])]),_:1}))]),_:1}),n(d,{label:"结转",width:"72",align:"center"},{default:o(({row:l})=>[l.is_carry_in?(u(),m("span",Xl,"是")):(u(),m("span",Jl,"—"))]),_:1}),n(d,{label:"顺延说明","min-width":"200","show-overflow-tooltip":""},{default:o(({row:l})=>[l.bucket==="deferred"&&l.bucket_defer_text?(u(),m("span",Kl,_(l.bucket_defer_text),1)):(u(),m("span",Zl,"—"))]),_:1}),n(d,{label:"物流签收","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.sign_time_text||"—"),1)]),_:1}),n(d,{prop:"pay_time_text",label:"尾款支付","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.pay_time_text||"—"),1)]),_:1}),n(d,{prop:"create_time_text",label:"订单创建",width:"152"})]),_:1},8,["data"])),[[j,he.value]]),r("div",ea,[n(Fe,{layout:"total, prev, pager, next",total:A.value,"page-size":ze.value,"current-page":K.value,onCurrentChange:te},null,8,["total","page-size","current-page"])])]),_:1},8,["modelValue","title"])])}}}),sa=tl(ta,[["__scopeId","data-v-a7de712c"]]);export{sa as default};
diff --git a/server/public/admin/assets/config-CpBIC4Ai.js b/server/public/admin/assets/config-BbCkf-AQ.js
similarity index 90%
rename from server/public/admin/assets/config-CpBIC4Ai.js
rename to server/public/admin/assets/config-BbCkf-AQ.js
index c93f3dd6f..e0b419045 100644
--- a/server/public/admin/assets/config-CpBIC4Ai.js
+++ b/server/public/admin/assets/config-BbCkf-AQ.js
@@ -1 +1 @@
-import{_ as C}from"./index-BKuK5cAm.js";import{o as x,be as g,q as m,r as R,v as l,D as d,bh as j,bg as B,s as o,b6 as T,b7 as O,u as t,ac as f,O as v,K,L as r,bc as L,bf as N,b9 as F,ba as J,a8 as z}from"./.pnpm-BHOjf1ZS.js";import{_ as G}from"./picker-DY0rRn6Q.js";import{g as M,s as Z}from"./wx_oa-DnRFEP08.js";import{e as H}from"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";import"./index-Mwguss-B.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./index-Btk0rgzN.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./usePaging-oaNM6A9T.js";const P={class:"w-80"},Q={class:"w-80"},W={class:"w-80"},X={class:"w-80"},Y={class:"flex-1 min-w-0"},$={class:"sm:flex"},h={class:"mr-4 sm:w-80 flex"},ee={class:"flex-1 min-w-0"},le={class:"w-80"},oe={class:"flex-1 min-w-0"},se={class:"w-80"},te={class:"flex-1 min-w-0"},de={class:"flex-1 min-w-0"},ne={class:"sm:flex"},ae={class:"mr-4 sm:w-80 flex"},ie={class:"flex-1 min-w-0"},re={class:"sm:flex"},me={class:"mr-4 sm:w-80 flex"},pe={class:"flex-1 min-w-0"},ue={class:"sm:flex"},_e={class:"mr-4 sm:w-80 flex"},fe=x({name:"wxOaConfig"}),Ie=x({...fe,setup(ve){const y=H(),s=J({name:"",original_id:" ",qr_code:"",app_id:"",app_secret:"",url:"",token:"",encoding_aes_key:"",encryption_type:1,business_domain:"",js_secure_domain:"",web_auth_domain:""}),w=z(),k={app_id:[{required:!0,message:"请输入AppID",trigger:["blur","change"]}],app_secret:[{required:!0,message:"请输入AppSecret",trigger:["blur","change"]}]},c=async()=>{const p=await M();for(const e in s)s[e]=p[e]},U=async()=>{var p;await((p=w.value)==null?void 0:p.validate()),await Z(s),c()};return c(),(p,e)=>{const A=j,u=B,i=O,a=T,E=G,_=K,V=N,D=L,S=F,I=C,b=g("copy"),q=g("perms");return m(),R("div",null,[l(u,{class:"!border-none",shadow:"never"},{default:d(()=>[l(A,{type:"warning",title:"温馨提示:填写微信公众号开发配置,请前往微信公众平台申请服务号并完成认证",closable:!1,"show-icon":""})]),_:1}),l(S,{ref_key:"formRef",ref:w,model:t(s),rules:k,"label-width":t(y).isMobile?"80px":"160px"},{default:d(()=>[l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[13]||(e[13]=o("div",{class:"font-medium mb-7"},"微信公众号",-1)),l(a,{label:"公众号名称",prop:"name"},{default:d(()=>[o("div",P,[l(i,{modelValue:t(s).name,"onUpdate:modelValue":e[0]||(e[0]=n=>t(s).name=n),placeholder:"请输入公众号名称"},null,8,["modelValue"])])]),_:1}),l(a,{label:"原始ID",prop:"original_id"},{default:d(()=>[o("div",Q,[l(i,{modelValue:t(s).original_id,"onUpdate:modelValue":e[1]||(e[1]=n=>t(s).original_id=n),placeholder:"请输入原始ID"},null,8,["modelValue"])])]),_:1}),l(a,{label:"公众号二维码",prop:"qr_code"},{default:d(()=>[o("div",null,[o("div",null,[l(E,{modelValue:t(s).qr_code,"onUpdate:modelValue":e[2]||(e[2]=n=>t(s).qr_code=n),limit:1},null,8,["modelValue"])]),e[12]||(e[12]=o("div",{class:"form-tips"},"建议尺寸:宽400px*高400px。jpg,jpeg,png格式",-1))])]),_:1})]),_:1}),l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[15]||(e[15]=o("div",{class:"font-medium mb-7"},"公众号开发者信息",-1)),l(a,{label:"AppID",prop:"app_id"},{default:d(()=>[o("div",W,[l(i,{modelValue:t(s).app_id,"onUpdate:modelValue":e[3]||(e[3]=n=>t(s).app_id=n),placeholder:"请输入AppID"},null,8,["modelValue"])])]),_:1}),l(a,{label:"AppSecret",prop:"app_secret"},{default:d(()=>[o("div",X,[l(i,{modelValue:t(s).app_secret,"onUpdate:modelValue":e[4]||(e[4]=n=>t(s).app_secret=n),placeholder:"请输入AppSecret"},null,8,["modelValue"])])]),_:1}),l(a,null,{default:d(()=>[...e[14]||(e[14]=[o("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->开发者ID,设置AppID和AppSecret ",-1)])]),_:1})]),_:1}),l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[23]||(e[23]=o("div",{class:"font-medium mb-7"},"服务器配置",-1)),l(a,{label:"URL"},{default:d(()=>[o("div",Y,[o("div",$,[o("div",h,[l(i,{modelValue:t(s).url,"onUpdate:modelValue":e[5]||(e[5]=n=>t(s).url=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[16]||(e[16]=[r("复制",-1)])]),_:1})),[[b,t(s).url]])]),e[17]||(e[17]=o("div",{class:"form-tips"}," 登录微信公众平台,点击开发>基本配置>服务器配置,填写服务器地址(URL) ",-1))])]),_:1}),l(a,{label:"Token",prop:"Token"},{default:d(()=>[o("div",ee,[o("div",le,[l(i,{modelValue:t(s).token,"onUpdate:modelValue":e[6]||(e[6]=n=>t(s).token=n),placeholder:"请输入Token"},null,8,["modelValue"])]),e[18]||(e[18]=o("div",{class:"form-tips"}," 登录微信公众平台,点击开发>基本配置>服务器配置,设置令牌Token。不填默认为“likeshop” ",-1))])]),_:1}),l(a,{label:"EncodingAESKey",prop:"encoding_aes_key"},{default:d(()=>[o("div",oe,[o("div",se,[l(i,{modelValue:t(s).encoding_aes_key,"onUpdate:modelValue":e[7]||(e[7]=n=>t(s).encoding_aes_key=n),placeholder:"请输入EncodingAESKey"},null,8,["modelValue"])]),e[19]||(e[19]=o("div",{class:"form-tips"}," 消息加密密钥由43位字符组成,字符范围为A-Z,a-z,0-9 ",-1))])]),_:1}),l(a,{label:"消息加密方式",required:"",prop:"encryption_type"},{default:d(()=>[o("div",te,[l(D,{class:"flex-col !items-start min-w-0",modelValue:t(s).encryption_type,"onUpdate:modelValue":e[8]||(e[8]=n=>t(s).encryption_type=n)},{default:d(()=>[l(V,{value:1},{default:d(()=>[...e[20]||(e[20]=[r(" 明文模式 (不使用消息体加解密功能,安全系数较低) ",-1)])]),_:1}),l(V,{value:2},{default:d(()=>[...e[21]||(e[21]=[r(" 兼容模式 (明文、密文将共存,方便开发者调试和维护) ",-1)])]),_:1}),l(V,{value:3},{default:d(()=>[...e[22]||(e[22]=[r(" 安全模式(推荐) (消息包为纯密文,需要开发者加密和解密,安全系数高) ",-1)])]),_:1})]),_:1},8,["modelValue"])])]),_:1})]),_:1}),l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[30]||(e[30]=o("div",{class:"font-medium mb-7"},"功能设置",-1)),l(a,{label:"业务域名"},{default:d(()=>[o("div",de,[o("div",ne,[o("div",ae,[l(i,{modelValue:t(s).business_domain,"onUpdate:modelValue":e[9]||(e[9]=n=>t(s).business_domain=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[24]||(e[24]=[r("复制",-1)])]),_:1})),[[b,t(s).business_domain]])]),e[25]||(e[25]=o("div",{class:"form-tips"}," 登录微信公众平台,点击设置>公众号设置>功能设置,填写业务域名 ",-1))])]),_:1}),l(a,{label:"JS接口安全域名"},{default:d(()=>[o("div",ie,[o("div",re,[o("div",me,[l(i,{modelValue:t(s).js_secure_domain,"onUpdate:modelValue":e[10]||(e[10]=n=>t(s).js_secure_domain=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[26]||(e[26]=[r("复制",-1)])]),_:1})),[[b,t(s).js_secure_domain]])]),e[27]||(e[27]=o("div",{class:"form-tips"}," 登录微信公众平台,点击设置>公众号设置>功能设置,填写JS接口安全域名 ",-1))])]),_:1}),l(a,{label:"网页授权域名"},{default:d(()=>[o("div",pe,[o("div",ue,[o("div",_e,[l(i,{modelValue:t(s).web_auth_domain,"onUpdate:modelValue":e[11]||(e[11]=n=>t(s).web_auth_domain=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[28]||(e[28]=[r("复制",-1)])]),_:1})),[[b,t(s).web_auth_domain]])]),e[29]||(e[29]=o("div",{class:"form-tips"}," 登录微信公众平台,点击设置>公众号设置>功能设置,填写网页授权域名 ",-1))])]),_:1})]),_:1})]),_:1},8,["model","label-width"]),f((m(),v(I,null,{default:d(()=>[l(_,{type:"primary",onClick:U},{default:d(()=>[...e[31]||(e[31]=[r("保存",-1)])]),_:1})]),_:1})),[[q,["channel.official_account_setting/setConfig"]]])])}}});export{Ie as default};
+import{_ as C}from"./index-DJsqtYWG.js";import{o as x,bn as g,q as m,r as R,v as l,D as d,bm as j,bh as B,s as o,b6 as T,b7 as O,u as t,ac as f,O as v,K,L as r,bc as L,bo as N,b9 as F,ba as J,a8 as z}from"./.pnpm-BuKxIMgQ.js";import{_ as G}from"./picker-C-hBLp_q.js";import{g as M,s as Z}from"./wx_oa-CPg89SqX.js";import{e as H}from"./index-BZAvl557.js";import"./index-BARAiw4K.js";import"./index-DO2zctlZ.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./index-BYpT7Ezr.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./usePaging-DNtxCypz.js";const P={class:"w-80"},Q={class:"w-80"},W={class:"w-80"},X={class:"w-80"},Y={class:"flex-1 min-w-0"},$={class:"sm:flex"},h={class:"mr-4 sm:w-80 flex"},ee={class:"flex-1 min-w-0"},le={class:"w-80"},oe={class:"flex-1 min-w-0"},se={class:"w-80"},te={class:"flex-1 min-w-0"},de={class:"flex-1 min-w-0"},ne={class:"sm:flex"},ae={class:"mr-4 sm:w-80 flex"},ie={class:"flex-1 min-w-0"},re={class:"sm:flex"},me={class:"mr-4 sm:w-80 flex"},pe={class:"flex-1 min-w-0"},ue={class:"sm:flex"},_e={class:"mr-4 sm:w-80 flex"},fe=x({name:"wxOaConfig"}),Ie=x({...fe,setup(ve){const y=H(),s=J({name:"",original_id:" ",qr_code:"",app_id:"",app_secret:"",url:"",token:"",encoding_aes_key:"",encryption_type:1,business_domain:"",js_secure_domain:"",web_auth_domain:""}),w=z(),k={app_id:[{required:!0,message:"请输入AppID",trigger:["blur","change"]}],app_secret:[{required:!0,message:"请输入AppSecret",trigger:["blur","change"]}]},c=async()=>{const p=await M();for(const e in s)s[e]=p[e]},U=async()=>{var p;await((p=w.value)==null?void 0:p.validate()),await Z(s),c()};return c(),(p,e)=>{const A=j,u=B,i=O,a=T,E=G,_=K,V=N,D=L,S=F,I=C,b=g("copy"),q=g("perms");return m(),R("div",null,[l(u,{class:"!border-none",shadow:"never"},{default:d(()=>[l(A,{type:"warning",title:"温馨提示:填写微信公众号开发配置,请前往微信公众平台申请服务号并完成认证",closable:!1,"show-icon":""})]),_:1}),l(S,{ref_key:"formRef",ref:w,model:t(s),rules:k,"label-width":t(y).isMobile?"80px":"160px"},{default:d(()=>[l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[13]||(e[13]=o("div",{class:"font-medium mb-7"},"微信公众号",-1)),l(a,{label:"公众号名称",prop:"name"},{default:d(()=>[o("div",P,[l(i,{modelValue:t(s).name,"onUpdate:modelValue":e[0]||(e[0]=n=>t(s).name=n),placeholder:"请输入公众号名称"},null,8,["modelValue"])])]),_:1}),l(a,{label:"原始ID",prop:"original_id"},{default:d(()=>[o("div",Q,[l(i,{modelValue:t(s).original_id,"onUpdate:modelValue":e[1]||(e[1]=n=>t(s).original_id=n),placeholder:"请输入原始ID"},null,8,["modelValue"])])]),_:1}),l(a,{label:"公众号二维码",prop:"qr_code"},{default:d(()=>[o("div",null,[o("div",null,[l(E,{modelValue:t(s).qr_code,"onUpdate:modelValue":e[2]||(e[2]=n=>t(s).qr_code=n),limit:1},null,8,["modelValue"])]),e[12]||(e[12]=o("div",{class:"form-tips"},"建议尺寸:宽400px*高400px。jpg,jpeg,png格式",-1))])]),_:1})]),_:1}),l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[15]||(e[15]=o("div",{class:"font-medium mb-7"},"公众号开发者信息",-1)),l(a,{label:"AppID",prop:"app_id"},{default:d(()=>[o("div",W,[l(i,{modelValue:t(s).app_id,"onUpdate:modelValue":e[3]||(e[3]=n=>t(s).app_id=n),placeholder:"请输入AppID"},null,8,["modelValue"])])]),_:1}),l(a,{label:"AppSecret",prop:"app_secret"},{default:d(()=>[o("div",X,[l(i,{modelValue:t(s).app_secret,"onUpdate:modelValue":e[4]||(e[4]=n=>t(s).app_secret=n),placeholder:"请输入AppSecret"},null,8,["modelValue"])])]),_:1}),l(a,null,{default:d(()=>[...e[14]||(e[14]=[o("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->开发者ID,设置AppID和AppSecret ",-1)])]),_:1})]),_:1}),l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[23]||(e[23]=o("div",{class:"font-medium mb-7"},"服务器配置",-1)),l(a,{label:"URL"},{default:d(()=>[o("div",Y,[o("div",$,[o("div",h,[l(i,{modelValue:t(s).url,"onUpdate:modelValue":e[5]||(e[5]=n=>t(s).url=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[16]||(e[16]=[r("复制",-1)])]),_:1})),[[b,t(s).url]])]),e[17]||(e[17]=o("div",{class:"form-tips"}," 登录微信公众平台,点击开发>基本配置>服务器配置,填写服务器地址(URL) ",-1))])]),_:1}),l(a,{label:"Token",prop:"Token"},{default:d(()=>[o("div",ee,[o("div",le,[l(i,{modelValue:t(s).token,"onUpdate:modelValue":e[6]||(e[6]=n=>t(s).token=n),placeholder:"请输入Token"},null,8,["modelValue"])]),e[18]||(e[18]=o("div",{class:"form-tips"}," 登录微信公众平台,点击开发>基本配置>服务器配置,设置令牌Token。不填默认为“likeshop” ",-1))])]),_:1}),l(a,{label:"EncodingAESKey",prop:"encoding_aes_key"},{default:d(()=>[o("div",oe,[o("div",se,[l(i,{modelValue:t(s).encoding_aes_key,"onUpdate:modelValue":e[7]||(e[7]=n=>t(s).encoding_aes_key=n),placeholder:"请输入EncodingAESKey"},null,8,["modelValue"])]),e[19]||(e[19]=o("div",{class:"form-tips"}," 消息加密密钥由43位字符组成,字符范围为A-Z,a-z,0-9 ",-1))])]),_:1}),l(a,{label:"消息加密方式",required:"",prop:"encryption_type"},{default:d(()=>[o("div",te,[l(D,{class:"flex-col !items-start min-w-0",modelValue:t(s).encryption_type,"onUpdate:modelValue":e[8]||(e[8]=n=>t(s).encryption_type=n)},{default:d(()=>[l(V,{value:1},{default:d(()=>[...e[20]||(e[20]=[r(" 明文模式 (不使用消息体加解密功能,安全系数较低) ",-1)])]),_:1}),l(V,{value:2},{default:d(()=>[...e[21]||(e[21]=[r(" 兼容模式 (明文、密文将共存,方便开发者调试和维护) ",-1)])]),_:1}),l(V,{value:3},{default:d(()=>[...e[22]||(e[22]=[r(" 安全模式(推荐) (消息包为纯密文,需要开发者加密和解密,安全系数高) ",-1)])]),_:1})]),_:1},8,["modelValue"])])]),_:1})]),_:1}),l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[30]||(e[30]=o("div",{class:"font-medium mb-7"},"功能设置",-1)),l(a,{label:"业务域名"},{default:d(()=>[o("div",de,[o("div",ne,[o("div",ae,[l(i,{modelValue:t(s).business_domain,"onUpdate:modelValue":e[9]||(e[9]=n=>t(s).business_domain=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[24]||(e[24]=[r("复制",-1)])]),_:1})),[[b,t(s).business_domain]])]),e[25]||(e[25]=o("div",{class:"form-tips"}," 登录微信公众平台,点击设置>公众号设置>功能设置,填写业务域名 ",-1))])]),_:1}),l(a,{label:"JS接口安全域名"},{default:d(()=>[o("div",ie,[o("div",re,[o("div",me,[l(i,{modelValue:t(s).js_secure_domain,"onUpdate:modelValue":e[10]||(e[10]=n=>t(s).js_secure_domain=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[26]||(e[26]=[r("复制",-1)])]),_:1})),[[b,t(s).js_secure_domain]])]),e[27]||(e[27]=o("div",{class:"form-tips"}," 登录微信公众平台,点击设置>公众号设置>功能设置,填写JS接口安全域名 ",-1))])]),_:1}),l(a,{label:"网页授权域名"},{default:d(()=>[o("div",pe,[o("div",ue,[o("div",_e,[l(i,{modelValue:t(s).web_auth_domain,"onUpdate:modelValue":e[11]||(e[11]=n=>t(s).web_auth_domain=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[28]||(e[28]=[r("复制",-1)])]),_:1})),[[b,t(s).web_auth_domain]])]),e[29]||(e[29]=o("div",{class:"form-tips"}," 登录微信公众平台,点击设置>公众号设置>功能设置,填写网页授权域名 ",-1))])]),_:1})]),_:1})]),_:1},8,["model","label-width"]),f((m(),v(I,null,{default:d(()=>[l(_,{type:"primary",onClick:U},{default:d(()=>[...e[31]||(e[31]=[r("保存",-1)])]),_:1})]),_:1})),[[q,["channel.official_account_setting/setConfig"]]])])}}});export{Ie as default};
diff --git a/server/public/admin/assets/consumer-eEcvU_fY.js b/server/public/admin/assets/consumer-Z1_na4tX.js
similarity index 81%
rename from server/public/admin/assets/consumer-eEcvU_fY.js
rename to server/public/admin/assets/consumer-Z1_na4tX.js
index 3347e28d6..3d73ecf96 100644
--- a/server/public/admin/assets/consumer-eEcvU_fY.js
+++ b/server/public/admin/assets/consumer-Z1_na4tX.js
@@ -1 +1 @@
-import{r}from"./index-B31vLELt.js";function u(e){return r.get({url:"/user.user/lists",params:e},{ignoreCancelToken:!0})}function s(e){return r.get({url:"/user.user/detail",params:e})}function n(e){return r.post({url:"/user.user/edit",params:e})}function o(e){return r.post({url:"/user.user/adjustMoney",params:e})}export{o as a,u as b,s as g,n as u};
+import{r}from"./index-BZAvl557.js";function u(e){return r.get({url:"/user.user/lists",params:e},{ignoreCancelToken:!0})}function s(e){return r.get({url:"/user.user/detail",params:e})}function n(e){return r.post({url:"/user.user/edit",params:e})}function o(e){return r.post({url:"/user.user/adjustMoney",params:e})}export{o as a,u as b,s as g,n as u};
diff --git a/server/public/admin/assets/content-BBJJZcdn.js b/server/public/admin/assets/content-BBJJZcdn.js
deleted file mode 100644
index 2d319291d..000000000
--- a/server/public/admin/assets/content-BBJJZcdn.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as e}from"./index-B31vLELt.js";import{q as t,r as c}from"./.pnpm-BHOjf1ZS.js";const o={},r={class:"page-mate"};function n(s,a){return t(),c("div",r)}const m=e(o,[["render",n]]);export{m as default};
diff --git a/server/public/admin/assets/content-DxwLvQTv.js b/server/public/admin/assets/content-BFE34N2s.js
similarity index 90%
rename from server/public/admin/assets/content-DxwLvQTv.js
rename to server/public/admin/assets/content-BFE34N2s.js
index 9e4a7e438..e41c19ec0 100644
--- a/server/public/admin/assets/content-DxwLvQTv.js
+++ b/server/public/admin/assets/content-BFE34N2s.js
@@ -1 +1 @@
-import i from"./decoration-img-kafLJif0.js";import{o as m,q as n,r as s,s as t,T as c,v as a,P as r,L as l,F as x}from"./.pnpm-BHOjf1ZS.js";import{_ as d}from"./index-B31vLELt.js";const f={class:"customer-service bg-white flex flex-col justify-center items-center mx-[18px] mt-[15px] rounded-[10px] px-[10px] pb-[50px]"},u={class:"w-full border-solid border-0 border-b border-[#f5f5f5] p-[15px] text-center text-[#101010] text-base font-medium"},p={class:"mt-[30px]"},b={key:0,class:"text-sm mt-[20px] font-medium"},h={key:1,class:"text-sm mt-[12px] flex flex-wrap"},w=["href"],v={key:2,class:"text-muted text-sm mt-[15px]"},y=m({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(e){return(g,o)=>(n(),s(x,null,[o[0]||(o[0]=t("view",{class:"bg-white p-[15px] flex text-[#101010] font-medium text-lg"}," 联系我们 ",-1)),t("view",f,[t("view",u,c(e.content.title),1),t("view",p,[a(i,{width:"100px",height:"100px",src:e.content.qrcode,alt:""},null,8,["src"])]),e.content.remark?(n(),s("view",b,c(e.content.remark),1)):r("",!0),e.content.mobile?(n(),s("view",h,[t("a",{class:"ml-[5px] phone text-primary underline",href:"tel:"+e.content.mobile},c(e.content.mobile),9,w)])):r("",!0),e.content.time?(n(),s("view",v," 服务时间:"+c(e.content.time),1)):r("",!0)]),o[1]||(o[1]=l(" Î ",-1))],64))}}),V=d(y,[["__scopeId","data-v-ed28524a"]]);export{V as default};
+import i from"./decoration-img-COeloOZY.js";import{o as m,q as n,r as s,s as t,T as c,v as a,P as r,L as l,F as x}from"./.pnpm-BuKxIMgQ.js";import{_ as d}from"./index-BZAvl557.js";const f={class:"customer-service bg-white flex flex-col justify-center items-center mx-[18px] mt-[15px] rounded-[10px] px-[10px] pb-[50px]"},u={class:"w-full border-solid border-0 border-b border-[#f5f5f5] p-[15px] text-center text-[#101010] text-base font-medium"},p={class:"mt-[30px]"},b={key:0,class:"text-sm mt-[20px] font-medium"},h={key:1,class:"text-sm mt-[12px] flex flex-wrap"},w=["href"],v={key:2,class:"text-muted text-sm mt-[15px]"},y=m({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(e){return(g,o)=>(n(),s(x,null,[o[0]||(o[0]=t("view",{class:"bg-white p-[15px] flex text-[#101010] font-medium text-lg"}," 联系我们 ",-1)),t("view",f,[t("view",u,c(e.content.title),1),t("view",p,[a(i,{width:"100px",height:"100px",src:e.content.qrcode,alt:""},null,8,["src"])]),e.content.remark?(n(),s("view",b,c(e.content.remark),1)):r("",!0),e.content.mobile?(n(),s("view",h,[t("a",{class:"ml-[5px] phone text-primary underline",href:"tel:"+e.content.mobile},c(e.content.mobile),9,w)])):r("",!0),e.content.time?(n(),s("view",v," 服务时间:"+c(e.content.time),1)):r("",!0)]),o[1]||(o[1]=l(" Î ",-1))],64))}}),V=d(y,[["__scopeId","data-v-ed28524a"]]);export{V as default};
diff --git a/server/public/admin/assets/content-B6dLBhf3.js b/server/public/admin/assets/content-BGLFLY-1.js
similarity index 85%
rename from server/public/admin/assets/content-B6dLBhf3.js
rename to server/public/admin/assets/content-BGLFLY-1.js
index 9d49ba054..f08db730b 100644
--- a/server/public/admin/assets/content-B6dLBhf3.js
+++ b/server/public/admin/assets/content-BGLFLY-1.js
@@ -1 +1 @@
-import{o as m,q as t,r as o,v as l,D as r,s as e,F as c,G as d,ae as v,T as p,P as f,a2 as h}from"./.pnpm-BHOjf1ZS.js";import u from"./decoration-img-kafLJif0.js";import{_ as x}from"./index-B31vLELt.js";const y={class:"pc-aside absolute top-0 bottom-0 left-0 w-[150px]"},k={class:"h-full px-[10px] flex flex-col"},b={class:"mb-auto"},g={class:"nav"},w=["to"],C={class:"ml-[10px]"},B={class:"menu"},D={class:"ml-[6px] line-clamp-1"},E=m({__name:"content",props:{nav:{type:Array,default:()=>[]},menu:{type:Array,default:()=>[]}},setup(i){return(N,n)=>{const _=h;return t(),o("div",y,[l(_,null,{default:r(()=>[e("div",k,[e("div",b,[e("div",g,[(t(!0),o(c,null,d(i.nav,(s,a)=>(t(),o(c,{key:a},[s.is_show=="1"?(t(),o("div",{key:0,to:s.link.path,class:v(["nav-item",{active:a==0}])},[l(u,{width:"18px",height:"18px",src:a==0?s.selected:s.unselected,fit:"cover"},{error:r(()=>[...n[0]||(n[0]=[e("span",null,null,-1)])]),_:1},8,["src"]),e("div",C,p(s.name),1)],10,w)):f("",!0)],64))),128))])]),e("div",null,[e("div",B,[(t(!0),o(c,null,d(i.menu,(s,a)=>(t(),o("div",{class:"menu-item",key:a},[l(u,{width:"16px",height:"16px",src:s.unselected,fit:"cover"},{error:r(()=>[...n[1]||(n[1]=[e("span",null,null,-1)])]),_:1},8,["src"]),e("span",D,p(s.name),1)]))),128))])])])]),_:1})])}}}),F=x(E,[["__scopeId","data-v-35c14957"]]);export{F as default};
+import{o as m,q as t,r as o,v as l,D as r,s as e,F as c,G as d,ae as v,T as p,P as f,a2 as h}from"./.pnpm-BuKxIMgQ.js";import u from"./decoration-img-COeloOZY.js";import{_ as x}from"./index-BZAvl557.js";const y={class:"pc-aside absolute top-0 bottom-0 left-0 w-[150px]"},k={class:"h-full px-[10px] flex flex-col"},b={class:"mb-auto"},g={class:"nav"},w=["to"],C={class:"ml-[10px]"},B={class:"menu"},D={class:"ml-[6px] line-clamp-1"},E=m({__name:"content",props:{nav:{type:Array,default:()=>[]},menu:{type:Array,default:()=>[]}},setup(i){return(N,n)=>{const _=h;return t(),o("div",y,[l(_,null,{default:r(()=>[e("div",k,[e("div",b,[e("div",g,[(t(!0),o(c,null,d(i.nav,(s,a)=>(t(),o(c,{key:a},[s.is_show=="1"?(t(),o("div",{key:0,to:s.link.path,class:v(["nav-item",{active:a==0}])},[l(u,{width:"18px",height:"18px",src:a==0?s.selected:s.unselected,fit:"cover"},{error:r(()=>[...n[0]||(n[0]=[e("span",null,null,-1)])]),_:1},8,["src"]),e("div",C,p(s.name),1)],10,w)):f("",!0)],64))),128))])]),e("div",null,[e("div",B,[(t(!0),o(c,null,d(i.menu,(s,a)=>(t(),o("div",{class:"menu-item",key:a},[l(u,{width:"16px",height:"16px",src:s.unselected,fit:"cover"},{error:r(()=>[...n[1]||(n[1]=[e("span",null,null,-1)])]),_:1},8,["src"]),e("span",D,p(s.name),1)]))),128))])])])]),_:1})])}}}),F=x(E,[["__scopeId","data-v-35c14957"]]);export{F as default};
diff --git a/server/public/admin/assets/content-E1na61hI.js b/server/public/admin/assets/content-BSD9LZSj.js
similarity index 84%
rename from server/public/admin/assets/content-E1na61hI.js
rename to server/public/admin/assets/content-BSD9LZSj.js
index 5c566466d..b29dc0c8d 100644
--- a/server/public/admin/assets/content-E1na61hI.js
+++ b/server/public/admin/assets/content-BSD9LZSj.js
@@ -1 +1 @@
-import i from"./decoration-img-kafLJif0.js";import{o as p,q as t,r as s,F as d,G as f,t as m,v as u,s as _,T as x,u as y,p as b}from"./.pnpm-BHOjf1ZS.js";import{_ as h}from"./index-B31vLELt.js";const v={class:"tabbar flex"},g={class:"leading-3 text-[12px] mt-[4px]"},k=p({__name:"content",props:{style:{type:Object,default:()=>({})},list:{type:Array,default:()=>[]}},setup(a){const c=a,n=b(()=>{var e;return((e=c.list)==null?void 0:e.filter(r=>r.is_show==1))||[]});return(e,r)=>(t(),s("div",v,[(t(!0),s(d,null,f(y(n),(o,l)=>(t(),s("div",{key:l,class:"tabbar-item flex flex-col justify-center items-center flex-1",style:m({color:a.style.default_color})},[u(i,{width:"22px",height:"22px",src:o.unselected,fit:"cover"},null,8,["src"]),_("div",g,x(o.name),1)],4))),128))]))}}),D=h(k,[["__scopeId","data-v-0405bccb"]]);export{D as default};
+import i from"./decoration-img-COeloOZY.js";import{o as p,q as t,r as s,F as d,G as f,t as m,v as u,s as _,T as x,u as y,p as b}from"./.pnpm-BuKxIMgQ.js";import{_ as h}from"./index-BZAvl557.js";const v={class:"tabbar flex"},g={class:"leading-3 text-[12px] mt-[4px]"},k=p({__name:"content",props:{style:{type:Object,default:()=>({})},list:{type:Array,default:()=>[]}},setup(a){const c=a,n=b(()=>{var e;return((e=c.list)==null?void 0:e.filter(r=>r.is_show==1))||[]});return(e,r)=>(t(),s("div",v,[(t(!0),s(d,null,f(y(n),(o,l)=>(t(),s("div",{key:l,class:"tabbar-item flex flex-col justify-center items-center flex-1",style:m({color:a.style.default_color})},[u(i,{width:"22px",height:"22px",src:o.unselected,fit:"cover"},null,8,["src"]),_("div",g,x(o.name),1)],4))),128))]))}}),D=h(k,[["__scopeId","data-v-0405bccb"]]);export{D as default};
diff --git a/server/public/admin/assets/content-Btcl_g31.js b/server/public/admin/assets/content-Btcl_g31.js
deleted file mode 100644
index e307b4dc2..000000000
--- a/server/public/admin/assets/content-Btcl_g31.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-Bee7IN_u.js";import"./decoration-img-kafLJif0.js";import"./.pnpm-BHOjf1ZS.js";import"./index-B31vLELt.js";export{o as default};
diff --git a/server/public/admin/assets/content-Ce5HDG_0.js b/server/public/admin/assets/content-Bwx4drOK.js
similarity index 72%
rename from server/public/admin/assets/content-Ce5HDG_0.js
rename to server/public/admin/assets/content-Bwx4drOK.js
index 37fcdb706..9a32e070e 100644
--- a/server/public/admin/assets/content-Ce5HDG_0.js
+++ b/server/public/admin/assets/content-Bwx4drOK.js
@@ -1 +1 @@
-import{_ as s}from"./index-B31vLELt.js";import{q as a,r as o,s as e}from"./.pnpm-BHOjf1ZS.js";const r="/admin/assets/default_avatar-C6VB7PGm.png",n={},c={class:"user-info flex items-center px-[25px]"};function p(_,t){return a(),o("div",c,[...t[0]||(t[0]=[e("img",{src:r,class:"w-[60px] h-[60px]",alt:""},null,-1),e("div",{class:"text-white text-[18px] ml-[10px]"},"未登录",-1)])])}const m=s(n,[["render",p],["__scopeId","data-v-4b1b613f"]]);export{m as default};
+import{_ as s}from"./index-BZAvl557.js";import{q as a,r as o,s as e}from"./.pnpm-BuKxIMgQ.js";const r="/admin/assets/default_avatar-C6VB7PGm.png",n={},c={class:"user-info flex items-center px-[25px]"};function p(_,t){return a(),o("div",c,[...t[0]||(t[0]=[e("img",{src:r,class:"w-[60px] h-[60px]",alt:""},null,-1),e("div",{class:"text-white text-[18px] ml-[10px]"},"未登录",-1)])])}const m=s(n,[["render",p],["__scopeId","data-v-4b1b613f"]]);export{m as default};
diff --git a/server/public/admin/assets/content-BzaDeM_I.js b/server/public/admin/assets/content-BzaDeM_I.js
new file mode 100644
index 000000000..1cb6835c2
--- /dev/null
+++ b/server/public/admin/assets/content-BzaDeM_I.js
@@ -0,0 +1 @@
+import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-DpgmSthO.js";import"./.pnpm-BuKxIMgQ.js";import"./index-BYpT7Ezr.js";import"./index-BZAvl557.js";import"./picker-Bb1gdsBd.js";import"./index-BARAiw4K.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./article-CjHzXUSw.js";import"./usePaging-DNtxCypz.js";import"./picker-C-hBLp_q.js";import"./index-DO2zctlZ.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";export{o as default};
diff --git a/server/public/admin/assets/content-C7nBw-fU.js b/server/public/admin/assets/content-C7nBw-fU.js
new file mode 100644
index 000000000..91190b1a5
--- /dev/null
+++ b/server/public/admin/assets/content-C7nBw-fU.js
@@ -0,0 +1 @@
+import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-Divalm2R.js";import"./decoration-img-COeloOZY.js";import"./.pnpm-BuKxIMgQ.js";import"./index-BZAvl557.js";export{o as default};
diff --git a/server/public/admin/assets/content-CA-hNa2E.js b/server/public/admin/assets/content-CA-hNa2E.js
deleted file mode 100644
index b3956734a..000000000
--- a/server/public/admin/assets/content-CA-hNa2E.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-C-lINWBh.js";import"./decoration-img-kafLJif0.js";import"./.pnpm-BHOjf1ZS.js";import"./index-B31vLELt.js";export{o as default};
diff --git a/server/public/admin/assets/content-CWWXqLSp.js b/server/public/admin/assets/content-CWWXqLSp.js
deleted file mode 100644
index 7554f946b..000000000
--- a/server/public/admin/assets/content-CWWXqLSp.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-Lj6AFy_2.js";import"./decoration-img-kafLJif0.js";import"./.pnpm-BHOjf1ZS.js";import"./index-B31vLELt.js";export{o as default};
diff --git a/server/public/admin/assets/content-D8C9dcKm.js b/server/public/admin/assets/content-CdRrEmwH.js
similarity index 81%
rename from server/public/admin/assets/content-D8C9dcKm.js
rename to server/public/admin/assets/content-CdRrEmwH.js
index 139d14a61..7b9f46d49 100644
--- a/server/public/admin/assets/content-D8C9dcKm.js
+++ b/server/public/admin/assets/content-CdRrEmwH.js
@@ -1 +1 @@
-import{c as v,_ as y}from"./index-B31vLELt.js";import m from"./decoration-img-kafLJif0.js";import{o as b,q as e,r as t,s as c,T as r,P as l,F as x,G as u,v as i,u as _,p as g}from"./.pnpm-BHOjf1ZS.js";const k={class:"my-service"},w={key:0,class:"title px-[15px] py-[10px]"},B={key:1,class:"flex flex-wrap pt-[20px] pb-[10px]"},N={class:"mt-[7px]"},V={key:2},j={class:"ml-[10px] flex-1"},C=b({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(s){const f=s,d=g(()=>{var o;return((o=f.content.data)==null?void 0:o.filter(p=>p.is_show=="1"))||[]});return(o,p)=>{const h=v;return e(),t("div",k,[s.content.title?(e(),t("div",w,[c("div",null,r(s.content.title),1)])):l("",!0),s.content.style==1?(e(),t("div",B,[(e(!0),t(x,null,u(_(d),(n,a)=>(e(),t("div",{key:a,class:"flex flex-col items-center w-1/4 mb-[15px]"},[i(m,{width:"26px",height:"26px",src:n.image,alt:""},null,8,["src"]),c("div",N,r(n.name),1)]))),128))])):l("",!0),s.content.style==2?(e(),t("div",V,[(e(!0),t(x,null,u(_(d),(n,a)=>(e(),t("div",{key:a,class:"flex items-center border-b border-[#e5e5e5] h-[50px] px-[12px]"},[i(m,{width:"24px",height:"24px",src:n.image,alt:""},null,8,["src"]),c("div",j,r(n.name),1),c("div",null,[i(h,{name:"el-icon-ArrowRight"})])]))),128))])):l("",!0)])}}}),L=y(C,[["__scopeId","data-v-2f09c27b"]]);export{L as default};
+import{c as v,_ as y}from"./index-BZAvl557.js";import m from"./decoration-img-COeloOZY.js";import{o as b,q as e,r as t,s as c,T as r,P as l,F as x,G as u,v as i,u as _,p as g}from"./.pnpm-BuKxIMgQ.js";const k={class:"my-service"},w={key:0,class:"title px-[15px] py-[10px]"},B={key:1,class:"flex flex-wrap pt-[20px] pb-[10px]"},N={class:"mt-[7px]"},V={key:2},j={class:"ml-[10px] flex-1"},C=b({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(s){const f=s,d=g(()=>{var o;return((o=f.content.data)==null?void 0:o.filter(p=>p.is_show=="1"))||[]});return(o,p)=>{const h=v;return e(),t("div",k,[s.content.title?(e(),t("div",w,[c("div",null,r(s.content.title),1)])):l("",!0),s.content.style==1?(e(),t("div",B,[(e(!0),t(x,null,u(_(d),(n,a)=>(e(),t("div",{key:a,class:"flex flex-col items-center w-1/4 mb-[15px]"},[i(m,{width:"26px",height:"26px",src:n.image,alt:""},null,8,["src"]),c("div",N,r(n.name),1)]))),128))])):l("",!0),s.content.style==2?(e(),t("div",V,[(e(!0),t(x,null,u(_(d),(n,a)=>(e(),t("div",{key:a,class:"flex items-center border-b border-[#e5e5e5] h-[50px] px-[12px]"},[i(m,{width:"24px",height:"24px",src:n.image,alt:""},null,8,["src"]),c("div",j,r(n.name),1),c("div",null,[i(h,{name:"el-icon-ArrowRight"})])]))),128))])):l("",!0)])}}}),L=y(C,[["__scopeId","data-v-2f09c27b"]]);export{L as default};
diff --git a/server/public/admin/assets/content-CmJp-7vu.js b/server/public/admin/assets/content-CmJp-7vu.js
new file mode 100644
index 000000000..f9b36ac36
--- /dev/null
+++ b/server/public/admin/assets/content-CmJp-7vu.js
@@ -0,0 +1 @@
+import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-CXvQTf5G.js";import"./decoration-img-COeloOZY.js";import"./.pnpm-BuKxIMgQ.js";import"./index-BZAvl557.js";export{o as default};
diff --git a/server/public/admin/assets/content-D-jrDqZn.js b/server/public/admin/assets/content-D-jrDqZn.js
new file mode 100644
index 000000000..d70245822
--- /dev/null
+++ b/server/public/admin/assets/content-D-jrDqZn.js
@@ -0,0 +1 @@
+import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-DGqAI3gu.js";import"./decoration-img-COeloOZY.js";import"./.pnpm-BuKxIMgQ.js";import"./index-BZAvl557.js";export{o as default};
diff --git a/server/public/admin/assets/content-DFY6JT15.js b/server/public/admin/assets/content-Dk4wG-ug.js
similarity index 81%
rename from server/public/admin/assets/content-DFY6JT15.js
rename to server/public/admin/assets/content-Dk4wG-ug.js
index 59115b57a..24e590bee 100644
--- a/server/public/admin/assets/content-DFY6JT15.js
+++ b/server/public/admin/assets/content-Dk4wG-ug.js
@@ -1 +1 @@
-import{c as r,_ as d}from"./index-B31vLELt.js";import{g as _}from"./decoration-DmpRR_ZE.js";import{o as p,q as s,r as c,s as e,F as x,G as m,P as f,T as o,v as u,u as v,M as w}from"./.pnpm-BHOjf1ZS.js";const y={class:"news"},b={key:0,class:"mr-[10px]"},g=["src"],h={class:"flex flex-col justify-between flex-1"},j={class:"text-[15px] font-medium line-clamp-2"},k={class:"line-clamp-1 text-sm mt-[8px]"},D={class:"text-[#999] text-xs w-full flex justify-between mt-[8px]"},V={class:"flex items-center"},B={class:"ml-[5px]"},N=p({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(C){const a=w([]);return(async()=>{const n=await _({limit:10});a.value=n})(),(n,i)=>{const l=r;return s(),c("div",y,[i[0]||(i[0]=e("div",{class:"flex items-center news-title mx-[10px] my-[15px] text-[17px] font-medium"}," 最新资讯 ",-1)),(s(!0),c(x,null,m(v(a),t=>(s(),c("div",{key:t.id,class:"news-card flex bg-white px-[10px] py-[16px] text-[#333] border-[#f2f2f2] border-b"},[t.image?(s(),c("div",b,[e("img",{src:t.image,class:"w-[120px] h-[90px] object-contain"},null,8,g)])):f("",!0),e("div",h,[e("div",j,o(t.title),1),e("div",k,o(t.desc),1),e("div",D,[e("div",null,o(t.create_time),1),e("div",V,[u(l,{name:"el-icon-View"}),e("div",B,o(t.click),1)])])])]))),128))])}}}),A=d(N,[["__scopeId","data-v-dba98882"]]);export{A as default};
+import{c as r,_ as d}from"./index-BZAvl557.js";import{g as _}from"./decoration-BWIcmCdb.js";import{o as p,q as s,r as c,s as e,F as x,G as m,P as f,T as o,v as u,u as v,M as w}from"./.pnpm-BuKxIMgQ.js";const y={class:"news"},b={key:0,class:"mr-[10px]"},g=["src"],h={class:"flex flex-col justify-between flex-1"},j={class:"text-[15px] font-medium line-clamp-2"},k={class:"line-clamp-1 text-sm mt-[8px]"},D={class:"text-[#999] text-xs w-full flex justify-between mt-[8px]"},V={class:"flex items-center"},B={class:"ml-[5px]"},N=p({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(C){const a=w([]);return(async()=>{const n=await _({limit:10});a.value=n})(),(n,i)=>{const l=r;return s(),c("div",y,[i[0]||(i[0]=e("div",{class:"flex items-center news-title mx-[10px] my-[15px] text-[17px] font-medium"}," 最新资讯 ",-1)),(s(!0),c(x,null,m(v(a),t=>(s(),c("div",{key:t.id,class:"news-card flex bg-white px-[10px] py-[16px] text-[#333] border-[#f2f2f2] border-b"},[t.image?(s(),c("div",b,[e("img",{src:t.image,class:"w-[120px] h-[90px] object-contain"},null,8,g)])):f("",!0),e("div",h,[e("div",j,o(t.title),1),e("div",k,o(t.desc),1),e("div",D,[e("div",null,o(t.create_time),1),e("div",V,[u(l,{name:"el-icon-View"}),e("div",B,o(t.click),1)])])])]))),128))])}}}),A=d(N,[["__scopeId","data-v-dba98882"]]);export{A as default};
diff --git a/server/public/admin/assets/content-DkCaVz5j.js b/server/public/admin/assets/content-DkCaVz5j.js
deleted file mode 100644
index 19f4e6745..000000000
--- a/server/public/admin/assets/content-DkCaVz5j.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-CLHtAkbH.js";import"./.pnpm-BHOjf1ZS.js";import"./index-Btk0rgzN.js";import"./index-B31vLELt.js";import"./picker-CO5ipFSA.js";import"./index-Dt_C33Jx.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./article-DB3929O1.js";import"./usePaging-oaNM6A9T.js";import"./picker-DY0rRn6Q.js";import"./index-Mwguss-B.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";export{o as default};
diff --git a/server/public/admin/assets/content-FIMEIrf0.js b/server/public/admin/assets/content-FIMEIrf0.js
deleted file mode 100644
index c1b908fc2..000000000
--- a/server/public/admin/assets/content-FIMEIrf0.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-C_WMwBnF.js";import"./decoration-img-kafLJif0.js";import"./.pnpm-BHOjf1ZS.js";import"./index-B31vLELt.js";export{o as default};
diff --git a/server/public/admin/assets/content-IloVDI03.js b/server/public/admin/assets/content-IloVDI03.js
new file mode 100644
index 000000000..66c7268d2
--- /dev/null
+++ b/server/public/admin/assets/content-IloVDI03.js
@@ -0,0 +1 @@
+import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-Cu2HKlUq.js";import"./decoration-img-COeloOZY.js";import"./.pnpm-BuKxIMgQ.js";import"./index-BZAvl557.js";export{o as default};
diff --git a/server/public/admin/assets/content-DLZMce8O.js b/server/public/admin/assets/content-NER4aZlI.js
similarity index 70%
rename from server/public/admin/assets/content-DLZMce8O.js
rename to server/public/admin/assets/content-NER4aZlI.js
index 542748ba5..5af6cf183 100644
--- a/server/public/admin/assets/content-DLZMce8O.js
+++ b/server/public/admin/assets/content-NER4aZlI.js
@@ -1 +1 @@
-import{_ as o,c as t}from"./index-B31vLELt.js";import{q as n,r as a,s,v as r}from"./.pnpm-BHOjf1ZS.js";const _={},d={class:"search"},i={class:"search-con flex items-center px-[15px]"};function m(p,e){const c=t;return n(),a("div",d,[s("div",i,[r(c,{name:"el-icon-Search",size:17}),e[0]||(e[0]=s("span",{class:"ml-[5px]"},"请输入关键词搜索",-1))])])}const x=o(_,[["render",m],["__scopeId","data-v-3514bdd8"]]);export{x as default};
+import{_ as o,c as t}from"./index-BZAvl557.js";import{q as n,r as a,s,v as r}from"./.pnpm-BuKxIMgQ.js";const _={},d={class:"search"},i={class:"search-con flex items-center px-[15px]"};function m(p,e){const c=t;return n(),a("div",d,[s("div",i,[r(c,{name:"el-icon-Search",size:17}),e[0]||(e[0]=s("span",{class:"ml-[5px]"},"请输入关键词搜索",-1))])])}const x=o(_,[["render",m],["__scopeId","data-v-3514bdd8"]]);export{x as default};
diff --git a/server/public/admin/assets/content-zTJxa9v2.js b/server/public/admin/assets/content-zTJxa9v2.js
new file mode 100644
index 000000000..bcc1d66e7
--- /dev/null
+++ b/server/public/admin/assets/content-zTJxa9v2.js
@@ -0,0 +1 @@
+import{_ as e}from"./index-BZAvl557.js";import{q as t,r as c}from"./.pnpm-BuKxIMgQ.js";const o={},r={class:"page-mate"};function n(s,a){return t(),c("div",r)}const m=e(o,[["render",n]]);export{m as default};
diff --git a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-Bee7IN_u.js b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-CXvQTf5G.js
similarity index 81%
rename from server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-Bee7IN_u.js
rename to server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-CXvQTf5G.js
index f8f586a64..853e46290 100644
--- a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-Bee7IN_u.js
+++ b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-CXvQTf5G.js
@@ -1 +1 @@
-import c from"./decoration-img-kafLJif0.js";import{o as i,q as l,r as u,s as h,v as m,u as f,t as d,p as s}from"./.pnpm-BHOjf1ZS.js";const p={class:"banner-image w-full h-full"},v=i({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},height:{type:String,default:"170px"}},setup(e){const r=e,t=s(()=>{var a;return((a=r.content.data)==null?void 0:a.filter(n=>n.is_show=="1"))||[]}),o=s(()=>Array.isArray(t.value)&&t.value[0]?t.value[0].image:"");return(a,n)=>(l(),u("div",{class:"banner",style:d(e.styles)},[h("div",p,[m(c,{width:"100%",height:e.content.style==1?e.height:"550px",src:f(o),fit:"contain"},null,8,["height","src"])])],4))}});export{v as _};
+import c from"./decoration-img-COeloOZY.js";import{o as i,q as l,r as u,s as h,v as m,u as f,t as d,p as s}from"./.pnpm-BuKxIMgQ.js";const p={class:"banner-image w-full h-full"},v=i({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},height:{type:String,default:"170px"}},setup(e){const r=e,t=s(()=>{var a;return((a=r.content.data)==null?void 0:a.filter(n=>n.is_show=="1"))||[]}),o=s(()=>Array.isArray(t.value)&&t.value[0]?t.value[0].image:"");return(a,n)=>(l(),u("div",{class:"banner",style:d(e.styles)},[h("div",p,[m(c,{width:"100%",height:e.content.style==1?e.height:"550px",src:f(o),fit:"contain"},null,8,["height","src"])])],4))}});export{v as _};
diff --git a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-Lj6AFy_2.js b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-Cu2HKlUq.js
similarity index 81%
rename from server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-Lj6AFy_2.js
rename to server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-Cu2HKlUq.js
index 7a0557868..788849867 100644
--- a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-Lj6AFy_2.js
+++ b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-Cu2HKlUq.js
@@ -1 +1 @@
-import c from"./decoration-img-kafLJif0.js";import{o as i,q as l,r as u,s as h,v as m,u as f,t as d,p as n}from"./.pnpm-BHOjf1ZS.js";const g={class:"banner-image w-full h-full"},v=i({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},height:{type:String,default:"96px"}},setup(e){const r=e,t=n(()=>{var a;return((a=r.content.data)==null?void 0:a.filter(s=>s.is_show=="1"))||[]}),o=n(()=>Array.isArray(t.value)&&t.value[0]?t.value[0].image:"");return(a,s)=>(l(),u("div",{class:"banner",style:d(e.styles)},[h("div",g,[m(c,{width:"100%",height:e.styles.height||e.height,src:f(o),fit:"contain"},null,8,["height","src"])])],4))}});export{v as _};
+import c from"./decoration-img-COeloOZY.js";import{o as i,q as l,r as u,s as h,v as m,u as f,t as d,p as n}from"./.pnpm-BuKxIMgQ.js";const g={class:"banner-image w-full h-full"},v=i({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},height:{type:String,default:"96px"}},setup(e){const r=e,t=n(()=>{var a;return((a=r.content.data)==null?void 0:a.filter(s=>s.is_show=="1"))||[]}),o=n(()=>Array.isArray(t.value)&&t.value[0]?t.value[0].image:"");return(a,s)=>(l(),u("div",{class:"banner",style:d(e.styles)},[h("div",g,[m(c,{width:"100%",height:e.styles.height||e.height,src:f(o),fit:"contain"},null,8,["height","src"])])],4))}});export{v as _};
diff --git a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-C-lINWBh.js b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DGqAI3gu.js
similarity index 79%
rename from server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-C-lINWBh.js
rename to server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DGqAI3gu.js
index a61de85c8..01a4fdcc6 100644
--- a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-C-lINWBh.js
+++ b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DGqAI3gu.js
@@ -1 +1 @@
-import c from"./decoration-img-kafLJif0.js";import{o as i,q as p,r as m,s as u,v as l,u as d,p as a}from"./.pnpm-BHOjf1ZS.js";const _={class:"banner mx-[10px] mt-[10px]"},f={class:"banner-image"},v=i({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(n){const o=n,e=a(()=>{var t;return((t=o.content.data)==null?void 0:t.filter(s=>s.is_show=="1"))||[]}),r=a(()=>Array.isArray(e.value)&&e.value[0]?e.value[0].image:"");return(t,s)=>(p(),m("div",_,[u("div",f,[l(c,{width:"100%",height:"100px",src:d(r),fit:"contain"},null,8,["src"])])]))}});export{v as _};
+import c from"./decoration-img-COeloOZY.js";import{o as i,q as p,r as m,s as u,v as l,u as d,p as a}from"./.pnpm-BuKxIMgQ.js";const _={class:"banner mx-[10px] mt-[10px]"},f={class:"banner-image"},v=i({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(n){const o=n,e=a(()=>{var t;return((t=o.content.data)==null?void 0:t.filter(s=>s.is_show=="1"))||[]}),r=a(()=>Array.isArray(e.value)&&e.value[0]?e.value[0].image:"");return(t,s)=>(p(),m("div",_,[u("div",f,[l(c,{width:"100%",height:"100px",src:d(r),fit:"contain"},null,8,["src"])])]))}});export{v as _};
diff --git a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-C_WMwBnF.js b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-Divalm2R.js
similarity index 85%
rename from server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-C_WMwBnF.js
rename to server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-Divalm2R.js
index 5583aaa82..87f0b2fd0 100644
--- a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-C_WMwBnF.js
+++ b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-Divalm2R.js
@@ -1 +1 @@
-import p from"./decoration-img-kafLJif0.js";import{o as d,q as n,r as a,s as r,F as m,G as u,v as _,T as f,u as g,t as h,p as x}from"./.pnpm-BHOjf1ZS.js";const y={class:"nav bg-white pt-[15px] pb-[8px]"},w={class:"mt-[7px]"},k=d({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(o){const t=o,c=x(()=>{var s;return(((s=t.content.data)==null?void 0:s.filter(e=>e.is_show=="1"))||[]).slice(0,t.content.show_line*t.content.per_line)});return(l,s)=>(n(),a("div",y,[r("div",{class:"grid grid-rows-auto gap-y-3 w-full",style:h({"grid-template-columns":`repeat(${o.content.per_line}, 1fr)`})},[(n(!0),a(m,null,u(g(c),(e,i)=>(n(),a("div",{key:i,class:"flex flex-col items-center"},[_(p,{width:"41px",height:"41px",src:e.image,alt:""},null,8,["src"]),r("div",w,f(e.name),1)]))),128))],4)]))}});export{k as _};
+import p from"./decoration-img-COeloOZY.js";import{o as d,q as n,r as a,s as r,F as m,G as u,v as _,T as f,u as g,t as h,p as x}from"./.pnpm-BuKxIMgQ.js";const y={class:"nav bg-white pt-[15px] pb-[8px]"},w={class:"mt-[7px]"},k=d({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(o){const t=o,c=x(()=>{var s;return(((s=t.content.data)==null?void 0:s.filter(e=>e.is_show=="1"))||[]).slice(0,t.content.show_line*t.content.per_line)});return(l,s)=>(n(),a("div",y,[r("div",{class:"grid grid-rows-auto gap-y-3 w-full",style:h({"grid-template-columns":`repeat(${o.content.per_line}, 1fr)`})},[(n(!0),a(m,null,u(g(c),(e,i)=>(n(),a("div",{key:i,class:"flex flex-col items-center"},[_(p,{width:"41px",height:"41px",src:e.image,alt:""},null,8,["src"]),r("div",w,f(e.name),1)]))),128))],4)]))}});export{k as _};
diff --git a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-CLHtAkbH.js b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DpgmSthO.js
similarity index 85%
rename from server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-CLHtAkbH.js
rename to server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DpgmSthO.js
index 9b7fef371..aef6b8ec6 100644
--- a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-CLHtAkbH.js
+++ b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DpgmSthO.js
@@ -1 +1 @@
-import{o as U,q as r,O as u,D as n,v as o,bh as D,a2 as N,s as l,r as f,F as O,G as R,K as S,L as $,a8 as A,cn as g}from"./.pnpm-BHOjf1ZS.js";import{_ as F}from"./index-Btk0rgzN.js";import{_ as L}from"./picker-CO5ipFSA.js";import{_ as q}from"./picker-DY0rRn6Q.js";import{_ as G}from"./index-Dt_C33Jx.js";import{j as h}from"./index-B31vLELt.js";const K={class:"flex flex-wrap p-4"},T={class:"bg-fill-light w-full p-4"},z={class:"flex items-center"},H={class:"mt-4 ml-4"},X=U({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},height:{type:String,default:"170px"}},emits:["update:content"],setup(m,{expose:x,emit:k}){const _=k,i=A(),a=m,y=()=>{var e;(e=i.value)==null||e.open()},b=()=>{var e;(e=i.value)==null||e.close()},w=()=>{var e;if(((e=a.content.data)==null?void 0:e.length)<10){const t=g(a.content);t.data.push({image:"",name:"",link:{}}),_("update:content",t)}else h.msgError("最多添加10张图片")},V=e=>{var s;if(((s=a.content.data)==null?void 0:s.length)<=1)return h.msgError("最少保留一个轮播图");const t=g(a.content);t.data.splice(e,1),_("update:content",t)};return x({open:y}),(e,t)=>{const s=D,v=q,C=L,E=F,B=S,j=N;return r(),u(G,{ref_key:"popupRef",ref:i,title:"轮播图设置",async:!0,width:"980px",onConfirm:b},{default:n(()=>[o(s,{title:"最多可添加10张,建议图片尺寸750px*440px",type:"warning"}),o(j,{height:"400px",class:"mt-4"},{default:n(()=>[l("div",K,[(r(!0),f(O,null,R(m.content.data,(c,d)=>(r(),f("div",{key:d,class:"w-[400px] mr-4 mb-4"},[(r(),u(E,{key:d,onClose:p=>V(d),class:"w-full"},{default:n(()=>[l("div",T,[l("div",z,[o(v,{width:"122px",height:"122px",modelValue:c.image,"onUpdate:modelValue":p=>c.image=p,"upload-class":"bg-body","exclude-domain":""},{upload:n(()=>[...t[0]||(t[0]=[l("div",{class:"w-[122px] h-[122px] flex justify-center items-center"}," 轮播图 ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"]),o(C,{modelValue:c.link,"onUpdate:modelValue":p=>c.link=p},null,8,["modelValue","onUpdate:modelValue"])])])]),_:2},1032,["onClose"]))]))),128))]),l("div",H,[o(B,{link:"",type:"primary",onClick:w},{default:n(()=>[...t[1]||(t[1]=[$("+ 添加轮播图",-1)])]),_:1})])]),_:1})]),_:1},512)}}});export{X as _};
+import{o as U,q as r,O as u,D as n,v as o,bm as D,a2 as N,s as l,r as f,F as O,G as R,K as S,L as $,a8 as A,cn as g}from"./.pnpm-BuKxIMgQ.js";import{_ as F}from"./index-BYpT7Ezr.js";import{_ as L}from"./picker-Bb1gdsBd.js";import{_ as q}from"./picker-C-hBLp_q.js";import{_ as G}from"./index-BARAiw4K.js";import{j as h}from"./index-BZAvl557.js";const K={class:"flex flex-wrap p-4"},T={class:"bg-fill-light w-full p-4"},z={class:"flex items-center"},H={class:"mt-4 ml-4"},X=U({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},height:{type:String,default:"170px"}},emits:["update:content"],setup(m,{expose:x,emit:k}){const _=k,i=A(),a=m,y=()=>{var e;(e=i.value)==null||e.open()},b=()=>{var e;(e=i.value)==null||e.close()},w=()=>{var e;if(((e=a.content.data)==null?void 0:e.length)<10){const t=g(a.content);t.data.push({image:"",name:"",link:{}}),_("update:content",t)}else h.msgError("最多添加10张图片")},V=e=>{var s;if(((s=a.content.data)==null?void 0:s.length)<=1)return h.msgError("最少保留一个轮播图");const t=g(a.content);t.data.splice(e,1),_("update:content",t)};return x({open:y}),(e,t)=>{const s=D,v=q,C=L,E=F,B=S,j=N;return r(),u(G,{ref_key:"popupRef",ref:i,title:"轮播图设置",async:!0,width:"980px",onConfirm:b},{default:n(()=>[o(s,{title:"最多可添加10张,建议图片尺寸750px*440px",type:"warning"}),o(j,{height:"400px",class:"mt-4"},{default:n(()=>[l("div",K,[(r(!0),f(O,null,R(m.content.data,(c,d)=>(r(),f("div",{key:d,class:"w-[400px] mr-4 mb-4"},[(r(),u(E,{key:d,onClose:p=>V(d),class:"w-full"},{default:n(()=>[l("div",T,[l("div",z,[o(v,{width:"122px",height:"122px",modelValue:c.image,"onUpdate:modelValue":p=>c.image=p,"upload-class":"bg-body","exclude-domain":""},{upload:n(()=>[...t[0]||(t[0]=[l("div",{class:"w-[122px] h-[122px] flex justify-center items-center"}," 轮播图 ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"]),o(C,{modelValue:c.link,"onUpdate:modelValue":p=>c.link=p},null,8,["modelValue","onUpdate:modelValue"])])])]),_:2},1032,["onClose"]))]))),128))]),l("div",H,[o(B,{link:"",type:"primary",onClick:w},{default:n(()=>[...t[1]||(t[1]=[$("+ 添加轮播图",-1)])]),_:1})])]),_:1})]),_:1},512)}}});export{X as _};
diff --git a/server/public/admin/assets/cost-edit-CY0YsF2b.js b/server/public/admin/assets/cost-edit-CY0YsF2b.js
new file mode 100644
index 000000000..c8b925d6b
--- /dev/null
+++ b/server/public/admin/assets/cost-edit-CY0YsF2b.js
@@ -0,0 +1 @@
+import{_ as o}from"./cost-edit.vue_vue_type_script_setup_true_lang-3wJ2tWIk.js";import"./.pnpm-BuKxIMgQ.js";import"./self_input_stats-CtGK3wyk.js";import"./index-BZAvl557.js";import"./index-BARAiw4K.js";import"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-DlP55LpE.js";export{o as default};
diff --git a/server/public/admin/assets/cost-edit-DdjoXiQ5.js b/server/public/admin/assets/cost-edit-DdjoXiQ5.js
deleted file mode 100644
index 35c8b2fdc..000000000
--- a/server/public/admin/assets/cost-edit-DdjoXiQ5.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./cost-edit.vue_vue_type_script_setup_true_lang-N-p2ZMZi.js";import"./.pnpm-BHOjf1ZS.js";import"./self_input_stats-Crp9Jl6D.js";import"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";import"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-xuHF5G6T.js";export{o as default};
diff --git a/server/public/admin/assets/cost-edit.vue_vue_type_script_setup_true_lang-N-p2ZMZi.js b/server/public/admin/assets/cost-edit.vue_vue_type_script_setup_true_lang-3wJ2tWIk.js
similarity index 88%
rename from server/public/admin/assets/cost-edit.vue_vue_type_script_setup_true_lang-N-p2ZMZi.js
rename to server/public/admin/assets/cost-edit.vue_vue_type_script_setup_true_lang-3wJ2tWIk.js
index dc4b79e94..d1e8c256c 100644
--- a/server/public/admin/assets/cost-edit.vue_vue_type_script_setup_true_lang-N-p2ZMZi.js
+++ b/server/public/admin/assets/cost-edit.vue_vue_type_script_setup_true_lang-3wJ2tWIk.js
@@ -1 +1 @@
-import{o as E,q as D,r as S,v as l,D as r,b9 as q,u as a,b6 as F,bp as U,J as Y,b7 as A,a8 as p,M as B,p as I,ba as M}from"./.pnpm-BHOjf1ZS.js";import{b as N,c as L}from"./self_input_stats-Crp9Jl6D.js";import{_ as O}from"./index-Dt_C33Jx.js";import{_ as z}from"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-xuHF5G6T.js";const J={class:"edit-popup"},G=E({__name:"cost-edit",props:{mediaSourceOptions:{default:()=>[]},mediaSourceLoading:{type:Boolean,default:!1}},emits:["success","close"],setup(u,{expose:_,emit:f}){const i=f,c=p(),m=p(),n=B("add"),b=I(()=>n.value==="edit"?"编辑账户消耗":"新增账户消耗"),e=M({id:"",cost_date:"",media_source:"",amount:0,remark:""}),g={cost_date:[{required:!0,message:"请选择日期",trigger:["change"]}],media_source:[{required:!0,message:"请填写自媒体来源",trigger:["blur"]}],amount:[{required:!0,message:"请输入账户消耗金额",trigger:["blur","change"]}]},w=()=>{e.id="",e.cost_date="",e.media_source="",e.amount=0,e.remark=""},k=async()=>{var t,o;await((t=c.value)==null?void 0:t.validate()),n.value==="edit"?await N(e):await L(e),(o=m.value)==null||o.close(),i("success")},V=(t="add")=>{var o;n.value=t,w(),(o=m.value)==null||o.open()},v=t=>{e.id=t.id??"",e.cost_date=t.cost_date??"",e.media_source=t.media_source??"",e.amount=Number(t.amount??0),e.remark=t.remark??""},x=()=>{i("close")};return _({open:V,setFormData:v}),(t,o)=>{const R=U,d=F,h=Y,y=A,C=q;return D(),S("div",J,[l(O,{ref_key:"popupRef",ref:m,title:a(b),async:!0,width:"520px",onConfirm:k,onClose:x},{default:r(()=>[l(C,{ref_key:"formRef",ref:c,model:a(e),"label-width":"110px",rules:g},{default:r(()=>[l(d,{label:"日期",prop:"cost_date"},{default:r(()=>[l(R,{modelValue:a(e).cost_date,"onUpdate:modelValue":o[0]||(o[0]=s=>a(e).cost_date=s),type:"date","value-format":"YYYY-MM-DD",placeholder:"请选择日期",disabled:a(n)==="edit",class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),l(d,{label:"自媒体来源",prop:"media_source"},{default:r(()=>[l(z,{modelValue:a(e).media_source,"onUpdate:modelValue":o[1]||(o[1]=s=>a(e).media_source=s),options:u.mediaSourceOptions,loading:u.mediaSourceLoading,placeholder:"请选择自媒体来源","allow-create":!1,disabled:a(n)==="edit","select-class":"w-full"},null,8,["modelValue","options","loading","disabled"])]),_:1}),l(d,{label:"账户消耗",prop:"amount"},{default:r(()=>[l(h,{modelValue:a(e).amount,"onUpdate:modelValue":o[2]||(o[2]=s=>a(e).amount=s),min:0,step:.01,precision:2,class:"w-full"},null,8,["modelValue"])]),_:1}),l(d,{label:"备注",prop:"remark"},{default:r(()=>[l(y,{modelValue:a(e).remark,"onUpdate:modelValue":o[3]||(o[3]=s=>a(e).remark=s),type:"textarea",autosize:{minRows:3,maxRows:5},maxlength:"255","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{G as _};
+import{o as E,q as D,r as S,v as l,D as r,b9 as q,u as a,b6 as F,be as U,J as Y,b7 as A,a8 as p,M as B,p as I,ba as M}from"./.pnpm-BuKxIMgQ.js";import{b as N,c as L}from"./self_input_stats-CtGK3wyk.js";import{_ as O}from"./index-BARAiw4K.js";import{_ as z}from"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-DlP55LpE.js";const J={class:"edit-popup"},G=E({__name:"cost-edit",props:{mediaSourceOptions:{default:()=>[]},mediaSourceLoading:{type:Boolean,default:!1}},emits:["success","close"],setup(u,{expose:_,emit:f}){const i=f,c=p(),m=p(),n=B("add"),b=I(()=>n.value==="edit"?"编辑账户消耗":"新增账户消耗"),e=M({id:"",cost_date:"",media_source:"",amount:0,remark:""}),g={cost_date:[{required:!0,message:"请选择日期",trigger:["change"]}],media_source:[{required:!0,message:"请填写自媒体来源",trigger:["blur"]}],amount:[{required:!0,message:"请输入账户消耗金额",trigger:["blur","change"]}]},w=()=>{e.id="",e.cost_date="",e.media_source="",e.amount=0,e.remark=""},k=async()=>{var t,o;await((t=c.value)==null?void 0:t.validate()),n.value==="edit"?await N(e):await L(e),(o=m.value)==null||o.close(),i("success")},V=(t="add")=>{var o;n.value=t,w(),(o=m.value)==null||o.open()},v=t=>{e.id=t.id??"",e.cost_date=t.cost_date??"",e.media_source=t.media_source??"",e.amount=Number(t.amount??0),e.remark=t.remark??""},x=()=>{i("close")};return _({open:V,setFormData:v}),(t,o)=>{const R=U,d=F,h=Y,y=A,C=q;return D(),S("div",J,[l(O,{ref_key:"popupRef",ref:m,title:a(b),async:!0,width:"520px",onConfirm:k,onClose:x},{default:r(()=>[l(C,{ref_key:"formRef",ref:c,model:a(e),"label-width":"110px",rules:g},{default:r(()=>[l(d,{label:"日期",prop:"cost_date"},{default:r(()=>[l(R,{modelValue:a(e).cost_date,"onUpdate:modelValue":o[0]||(o[0]=s=>a(e).cost_date=s),type:"date","value-format":"YYYY-MM-DD",placeholder:"请选择日期",disabled:a(n)==="edit",class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),l(d,{label:"自媒体来源",prop:"media_source"},{default:r(()=>[l(z,{modelValue:a(e).media_source,"onUpdate:modelValue":o[1]||(o[1]=s=>a(e).media_source=s),options:u.mediaSourceOptions,loading:u.mediaSourceLoading,placeholder:"请选择自媒体来源","allow-create":!1,disabled:a(n)==="edit","select-class":"w-full"},null,8,["modelValue","options","loading","disabled"])]),_:1}),l(d,{label:"账户消耗",prop:"amount"},{default:r(()=>[l(h,{modelValue:a(e).amount,"onUpdate:modelValue":o[2]||(o[2]=s=>a(e).amount=s),min:0,step:.01,precision:2,class:"w-full"},null,8,["modelValue"])]),_:1}),l(d,{label:"备注",prop:"remark"},{default:r(()=>[l(y,{modelValue:a(e).remark,"onUpdate:modelValue":o[3]||(o[3]=s=>a(e).remark=s),type:"textarea",autosize:{minRows:3,maxRows:5},maxlength:"255","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{G as _};
diff --git a/server/public/admin/assets/data-table-BcqQ9U9A.js b/server/public/admin/assets/data-table-BcqQ9U9A.js
new file mode 100644
index 000000000..a1b5b70bb
--- /dev/null
+++ b/server/public/admin/assets/data-table-BcqQ9U9A.js
@@ -0,0 +1 @@
+import{_ as o}from"./data-table.vue_vue_type_script_setup_true_lang-Ctp0xvUA.js";import"./.pnpm-BuKxIMgQ.js";import"./code-BRHue65G.js";import"./index-BZAvl557.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./index-BARAiw4K.js";import"./usePaging-DNtxCypz.js";export{o as default};
diff --git a/server/public/admin/assets/data-table-CRouNlwQ.js b/server/public/admin/assets/data-table-CRouNlwQ.js
deleted file mode 100644
index b9654a950..000000000
--- a/server/public/admin/assets/data-table-CRouNlwQ.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./data-table.vue_vue_type_script_setup_true_lang-D9UcniZx.js";import"./.pnpm-BHOjf1ZS.js";import"./code-CsMIcGPz.js";import"./index-B31vLELt.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./index-Dt_C33Jx.js";import"./usePaging-oaNM6A9T.js";export{o as default};
diff --git a/server/public/admin/assets/data-table.vue_vue_type_script_setup_true_lang-D9UcniZx.js b/server/public/admin/assets/data-table.vue_vue_type_script_setup_true_lang-Ctp0xvUA.js
similarity index 87%
rename from server/public/admin/assets/data-table.vue_vue_type_script_setup_true_lang-D9UcniZx.js
rename to server/public/admin/assets/data-table.vue_vue_type_script_setup_true_lang-Ctp0xvUA.js
index fd9849fae..840d06358 100644
--- a/server/public/admin/assets/data-table.vue_vue_type_script_setup_true_lang-D9UcniZx.js
+++ b/server/public/admin/assets/data-table.vue_vue_type_script_setup_true_lang-Ctp0xvUA.js
@@ -1 +1 @@
-import{o as R,R as T,q as b,r as g,v as e,D as o,b9 as B,u as a,b6 as D,b7 as j,b8 as h,K as F,L as v,ac as L,bj as N,bk as P,bi as S,s as U,C as z,ah as I,a8 as M,ba as $,M as q}from"./.pnpm-BHOjf1ZS.js";import{f as A,h as G}from"./code-CsMIcGPz.js";import{_ as H}from"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import{_ as J}from"./index-Dt_C33Jx.js";import{u as O}from"./usePaging-oaNM6A9T.js";import{j as Q}from"./index-B31vLELt.js";const W={class:"data-table"},X={class:"m-4"},Y={class:"flex justify-end mt-4"},se=R({__name:"data-table",emits:["success"],setup(Z,{emit:C}){const w=C,u=M(),n=$({name:"",comment:""}),{pager:s,getLists:_,resetParams:y,resetPage:c}=O({fetchFun:A,params:n,size:10}),d=q([]),V=l=>{d.value=l.map(({name:t,comment:i})=>({name:t,comment:i}))},k=async()=>{var l;if(!d.value.length)return Q.msgError("请选择数据表");await G({table:d.value}),(l=u.value)==null||l.close(),w("success")};return T(()=>{var l;return(l=u.value)==null?void 0:l.visible},l=>{l&&_()}),(l,t)=>{const i=j,p=D,f=F,E=B,r=P,x=N,K=S;return b(),g("div",W,[e(J,{ref_key:"popupRef",ref:u,clickModalClose:!1,title:"选择表",width:"900px",async:!0,onConfirm:k},{trigger:o(()=>[I(l.$slots,"default")]),default:o(()=>[e(E,{class:"ls-form",model:a(n),inline:""},{default:o(()=>[e(p,{class:"w-[280px]",label:"表名称"},{default:o(()=>[e(i,{modelValue:a(n).name,"onUpdate:modelValue":t[0]||(t[0]=m=>a(n).name=m),clearable:"",onKeyup:h(a(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(p,{class:"w-[280px]",label:"表描述"},{default:o(()=>[e(i,{modelValue:a(n).comment,"onUpdate:modelValue":t[1]||(t[1]=m=>a(n).comment=m),clearable:"",onKeyup:h(a(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(p,null,{default:o(()=>[e(f,{type:"primary",onClick:a(c)},{default:o(()=>[...t[3]||(t[3]=[v("查询",-1)])]),_:1},8,["onClick"]),e(f,{onClick:a(y)},{default:o(()=>[...t[4]||(t[4]=[v("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"]),L((b(),g("div",X,[e(x,{height:"400",size:"large",data:a(s).lists,onSelectionChange:V},{default:o(()=>[e(r,{type:"selection",width:"55"}),e(r,{label:"表名称",prop:"name","min-width":"150"}),e(r,{label:"表描述",prop:"comment","min-width":"160"}),e(r,{label:"创建时间",prop:"create_time","min-width":"180"})]),_:1},8,["data"])])),[[K,a(s).loading]]),U("div",Y,[e(H,{modelValue:a(s),"onUpdate:modelValue":t[2]||(t[2]=m=>z(s)?s.value=m:null),onChange:a(_)},null,8,["modelValue","onChange"])])]),_:3},512)])}}});export{se as _};
+import{o as R,R as T,q as b,r as g,v as e,D as o,b9 as B,u as a,b6 as D,b7 as j,b8 as h,K as F,L as v,ac as L,bi as N,bj as P,bl as S,s as U,C as z,ah as I,a8 as M,ba as $,M as q}from"./.pnpm-BuKxIMgQ.js";import{f as A,h as G}from"./code-BRHue65G.js";import{_ as H}from"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import{_ as J}from"./index-BARAiw4K.js";import{u as O}from"./usePaging-DNtxCypz.js";import{j as Q}from"./index-BZAvl557.js";const W={class:"data-table"},X={class:"m-4"},Y={class:"flex justify-end mt-4"},se=R({__name:"data-table",emits:["success"],setup(Z,{emit:C}){const w=C,u=M(),n=$({name:"",comment:""}),{pager:s,getLists:_,resetParams:y,resetPage:c}=O({fetchFun:A,params:n,size:10}),d=q([]),V=l=>{d.value=l.map(({name:t,comment:i})=>({name:t,comment:i}))},k=async()=>{var l;if(!d.value.length)return Q.msgError("请选择数据表");await G({table:d.value}),(l=u.value)==null||l.close(),w("success")};return T(()=>{var l;return(l=u.value)==null?void 0:l.visible},l=>{l&&_()}),(l,t)=>{const i=j,p=D,f=F,E=B,r=P,x=N,K=S;return b(),g("div",W,[e(J,{ref_key:"popupRef",ref:u,clickModalClose:!1,title:"选择表",width:"900px",async:!0,onConfirm:k},{trigger:o(()=>[I(l.$slots,"default")]),default:o(()=>[e(E,{class:"ls-form",model:a(n),inline:""},{default:o(()=>[e(p,{class:"w-[280px]",label:"表名称"},{default:o(()=>[e(i,{modelValue:a(n).name,"onUpdate:modelValue":t[0]||(t[0]=m=>a(n).name=m),clearable:"",onKeyup:h(a(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(p,{class:"w-[280px]",label:"表描述"},{default:o(()=>[e(i,{modelValue:a(n).comment,"onUpdate:modelValue":t[1]||(t[1]=m=>a(n).comment=m),clearable:"",onKeyup:h(a(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(p,null,{default:o(()=>[e(f,{type:"primary",onClick:a(c)},{default:o(()=>[...t[3]||(t[3]=[v("查询",-1)])]),_:1},8,["onClick"]),e(f,{onClick:a(y)},{default:o(()=>[...t[4]||(t[4]=[v("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"]),L((b(),g("div",X,[e(x,{height:"400",size:"large",data:a(s).lists,onSelectionChange:V},{default:o(()=>[e(r,{type:"selection",width:"55"}),e(r,{label:"表名称",prop:"name","min-width":"150"}),e(r,{label:"表描述",prop:"comment","min-width":"160"}),e(r,{label:"创建时间",prop:"create_time","min-width":"180"})]),_:1},8,["data"])])),[[K,a(s).loading]]),U("div",Y,[e(H,{modelValue:a(s),"onUpdate:modelValue":t[2]||(t[2]=m=>z(s)?s.value=m:null),onChange:a(_)},null,8,["modelValue","onChange"])])]),_:3},512)])}}});export{se as _};
diff --git a/server/public/admin/assets/dayjs-CF5xpNFg.js b/server/public/admin/assets/dayjs-7f8aMLm8.js
similarity index 99%
rename from server/public/admin/assets/dayjs-CF5xpNFg.js
rename to server/public/admin/assets/dayjs-7f8aMLm8.js
index 7a9f611f0..3bcb4f039 100644
--- a/server/public/admin/assets/dayjs-CF5xpNFg.js
+++ b/server/public/admin/assets/dayjs-7f8aMLm8.js
@@ -1 +1 @@
-import{g as P}from"./.pnpm-BHOjf1ZS.js";var N={exports:{}},et=N.exports,R;function rt(){return R||(R=1,function(E,Q){(function(S,k){E.exports=k()})(et,function(){var S=1e3,k=6e4,L=36e5,Y="millisecond",D="second",v="minute",w="hour",c="day",M="week",$="month",g="quarter",m="year",O="date",I="Invalid Date",G=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,K=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,X={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(s){var r=["th","st","nd","rd"],t=s%100;return"["+s+(r[(t-20)%10]||r[t]||r[0])+"]"}},J=function(s,r,t){var n=String(s);return!n||n.length>=r?s:""+Array(r+1-n.length).join(t)+s},tt={s:J,z:function(s){var r=-s.utcOffset(),t=Math.abs(r),n=Math.floor(t/60),e=t%60;return(r<=0?"+":"-")+J(n,2,"0")+":"+J(e,2,"0")},m:function s(r,t){if(r.date()1)return s(a[0])}else{var o=r.name;_[o]=r,e=o}return!n&&e&&(H=e),e||!n&&H},h=function(s,r){if(Z(s))return s.clone();var t=typeof r=="object"?r:{};return t.date=s,t.args=arguments,new q(t)},u=tt;u.l=A,u.i=Z,u.w=function(s,r){return h(s,{locale:r.$L,utc:r.$u,x:r.$x,$offset:r.$offset})};var q=function(){function s(t){this.$L=A(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[z]=!0}var r=s.prototype;return r.parse=function(t){this.$d=function(n){var e=n.date,i=n.utc;if(e===null)return new Date(NaN);if(u.u(e))return new Date;if(e instanceof Date)return new Date(e);if(typeof e=="string"&&!/Z$/i.test(e)){var a=e.match(G);if(a){var o=a[2]-1||0,f=(a[7]||"0").substring(0,3);return i?new Date(Date.UTC(a[1],o,a[3]||1,a[4]||0,a[5]||0,a[6]||0,f)):new Date(a[1],o,a[3]||1,a[4]||0,a[5]||0,a[6]||0,f)}}return new Date(e)}(t),this.init()},r.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},r.$utils=function(){return u},r.isValid=function(){return this.$d.toString()!==I},r.isSame=function(t,n){var e=h(t);return this.startOf(n)<=e&&e<=this.endOf(n)},r.isAfter=function(t,n){return h(t)4&&(m+=7),g.add(m,S));return O.diff(I,"week")+1},v.isoWeekday=function(c){return this.$utils().u(c)?this.day()||7:this.day(this.day()%7?c:c-7)};var w=v.startOf;v.startOf=function(c,M){var $=this.$utils(),g=!!$.u(M)||M;return $.p(c)==="isoweek"?g?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):w.bind(this)(c,M)}}})}(U)),U.exports}var at=it();const ct=P(at);export{ot as d,ct as i};
+import{g as P}from"./.pnpm-BuKxIMgQ.js";var N={exports:{}},et=N.exports,R;function rt(){return R||(R=1,function(E,Q){(function(S,k){E.exports=k()})(et,function(){var S=1e3,k=6e4,L=36e5,Y="millisecond",D="second",v="minute",w="hour",c="day",M="week",$="month",g="quarter",m="year",O="date",I="Invalid Date",G=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,K=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,X={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(s){var r=["th","st","nd","rd"],t=s%100;return"["+s+(r[(t-20)%10]||r[t]||r[0])+"]"}},J=function(s,r,t){var n=String(s);return!n||n.length>=r?s:""+Array(r+1-n.length).join(t)+s},tt={s:J,z:function(s){var r=-s.utcOffset(),t=Math.abs(r),n=Math.floor(t/60),e=t%60;return(r<=0?"+":"-")+J(n,2,"0")+":"+J(e,2,"0")},m:function s(r,t){if(r.date()1)return s(a[0])}else{var o=r.name;_[o]=r,e=o}return!n&&e&&(H=e),e||!n&&H},h=function(s,r){if(Z(s))return s.clone();var t=typeof r=="object"?r:{};return t.date=s,t.args=arguments,new q(t)},u=tt;u.l=A,u.i=Z,u.w=function(s,r){return h(s,{locale:r.$L,utc:r.$u,x:r.$x,$offset:r.$offset})};var q=function(){function s(t){this.$L=A(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[z]=!0}var r=s.prototype;return r.parse=function(t){this.$d=function(n){var e=n.date,i=n.utc;if(e===null)return new Date(NaN);if(u.u(e))return new Date;if(e instanceof Date)return new Date(e);if(typeof e=="string"&&!/Z$/i.test(e)){var a=e.match(G);if(a){var o=a[2]-1||0,f=(a[7]||"0").substring(0,3);return i?new Date(Date.UTC(a[1],o,a[3]||1,a[4]||0,a[5]||0,a[6]||0,f)):new Date(a[1],o,a[3]||1,a[4]||0,a[5]||0,a[6]||0,f)}}return new Date(e)}(t),this.init()},r.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},r.$utils=function(){return u},r.isValid=function(){return this.$d.toString()!==I},r.isSame=function(t,n){var e=h(t);return this.startOf(n)<=e&&e<=this.endOf(n)},r.isAfter=function(t,n){return h(t)4&&(m+=7),g.add(m,S));return O.diff(I,"week")+1},v.isoWeekday=function(c){return this.$utils().u(c)?this.day()||7:this.day(this.day()%7?c:c-7)};var w=v.startOf;v.startOf=function(c,M){var $=this.$utils(),g=!!$.u(M)||M;return $.p(c)==="isoweek"?g?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):w.bind(this)(c,M)}}})}(U)),U.exports}var at=it();const ct=P(at);export{ot as d,ct as i};
diff --git a/server/public/admin/assets/decoration-DmpRR_ZE.js b/server/public/admin/assets/decoration-BWIcmCdb.js
similarity index 87%
rename from server/public/admin/assets/decoration-DmpRR_ZE.js
rename to server/public/admin/assets/decoration-BWIcmCdb.js
index 2a47dab09..1bfb0f35c 100644
--- a/server/public/admin/assets/decoration-DmpRR_ZE.js
+++ b/server/public/admin/assets/decoration-BWIcmCdb.js
@@ -1 +1 @@
-import{r as t}from"./index-B31vLELt.js";function a(e){return t.get({url:"/decorate.page/detail",params:e},{ignoreCancelToken:!0})}function o(e){return t.post({url:"/decorate.page/save",params:e})}function c(e){return t.get({url:"/decorate.data/article",params:e})}function n(e){return t.get({url:"/decorate.tabbar/detail",params:e})}function u(e){return t.post({url:"/decorate.tabbar/save",params:e})}function s(){return t.get({url:"/decorate.data/pc"})}export{a,s as b,n as c,u as d,c as g,o as s};
+import{r as t}from"./index-BZAvl557.js";function a(e){return t.get({url:"/decorate.page/detail",params:e},{ignoreCancelToken:!0})}function o(e){return t.post({url:"/decorate.page/save",params:e})}function c(e){return t.get({url:"/decorate.data/article",params:e})}function n(e){return t.get({url:"/decorate.tabbar/detail",params:e})}function u(e){return t.post({url:"/decorate.tabbar/save",params:e})}function s(){return t.get({url:"/decorate.data/pc"})}export{a,s as b,n as c,u as d,c as g,o as s};
diff --git a/server/public/admin/assets/decoration-img-kafLJif0.js b/server/public/admin/assets/decoration-img-COeloOZY.js
similarity index 84%
rename from server/public/admin/assets/decoration-img-kafLJif0.js
rename to server/public/admin/assets/decoration-img-COeloOZY.js
index fc64c4a6b..91a423518 100644
--- a/server/public/admin/assets/decoration-img-kafLJif0.js
+++ b/server/public/admin/assets/decoration-img-COeloOZY.js
@@ -1 +1 @@
-import{o as p,a9 as u,q as l,O as _,D as a,s as o,v as g,a7 as f,u as h,aa as y,p as v}from"./.pnpm-BHOjf1ZS.js";import{e as N,c as b,o as t,_ as w}from"./index-B31vLELt.js";const I={class:"image-slot"},S=p({__name:"decoration-img",props:{width:{type:[String,Number],default:"auto"},height:{type:[String,Number],default:"auto"},radius:{type:[String,Number],default:0},...u},setup(r){const e=r,{getImageUrl:i}=N(),n=v(()=>({width:t(e.width),height:t(e.height),borderRadius:t(e.radius)}));return(c,s)=>{const d=b,m=y;return l(),_(m,f({style:n.value},e,{src:h(i)(c.src)}),{placeholder:a(()=>[...s[0]||(s[0]=[o("div",{class:"image-slot"},null,-1)])]),error:a(()=>[o("div",I,[g(d,{name:"el-icon-Picture",size:30})])]),_:1},16,["style","src"])}}}),P=w(S,[["__scopeId","data-v-5e0890d2"]]);export{P as default};
+import{o as p,a9 as u,q as l,O as _,D as a,s as o,v as g,a7 as f,u as h,aa as y,p as v}from"./.pnpm-BuKxIMgQ.js";import{e as N,c as b,o as t,_ as w}from"./index-BZAvl557.js";const I={class:"image-slot"},S=p({__name:"decoration-img",props:{width:{type:[String,Number],default:"auto"},height:{type:[String,Number],default:"auto"},radius:{type:[String,Number],default:0},...u},setup(r){const e=r,{getImageUrl:i}=N(),n=v(()=>({width:t(e.width),height:t(e.height),borderRadius:t(e.radius)}));return(c,s)=>{const d=b,m=y;return l(),_(m,f({style:n.value},e,{src:h(i)(c.src)}),{placeholder:a(()=>[...s[0]||(s[0]=[o("div",{class:"image-slot"},null,-1)])]),error:a(()=>[o("div",I,[g(d,{name:"el-icon-Picture",size:30})])]),_:1},16,["style","src"])}}}),P=w(S,[["__scopeId","data-v-5e0890d2"]]);export{P as default};
diff --git a/server/public/admin/assets/default_reply-BZxPpuIq.js b/server/public/admin/assets/default_reply-CDTfTXl6.js
similarity index 80%
rename from server/public/admin/assets/default_reply-BZxPpuIq.js
rename to server/public/admin/assets/default_reply-CDTfTXl6.js
index adfd2a21a..9b61041ba 100644
--- a/server/public/admin/assets/default_reply-BZxPpuIq.js
+++ b/server/public/admin/assets/default_reply-CDTfTXl6.js
@@ -1 +1 @@
-import{o as T,q as f,r as B,v as t,D as l,bh as L,bg as N,s as g,K as j,L as p,ac as O,O as y,bj as P,u as o,bk as U,T as A,I as q,bi as z,C as F,P as I,a8 as K,M,p as G,n as b}from"./.pnpm-BHOjf1ZS.js";import{_ as H}from"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import{c as J,j as h}from"./index-B31vLELt.js";import{d as Q,o as W,e as X}from"./wx_oa-DnRFEP08.js";import{u as Y}from"./usePaging-oaNM6A9T.js";import{_ as Z}from"./edit.vue_vue_type_script_setup_true_lang-DDcLJMtO.js";import"./index-Dt_C33Jx.js";const ee={class:"flex justify-end mt-4"},re=T({__name:"default_reply",setup(te){const r=K(),c=M(!1),w=G(()=>n=>{switch(n){case 1:return"文本"}}),{pager:d,getLists:s}=Y({fetchFun:Q,params:{reply_type:3}}),C=async()=>{var n;c.value=!0,await b(),(n=r.value)==null||n.open("add",3)},k=async n=>{var e,u;c.value=!0,await b(),(e=r.value)==null||e.open("edit",3),(u=r.value)==null||u.getDetail(n)},V=async n=>{await h.confirm("确定要删除?"),await W({id:n}),h.msgSuccess("删除成功"),s()},E=async n=>{try{await X({id:n}),s()}catch{s()}};return s(),(n,e)=>{const u=L,v=N,$=J,_=j,i=U,x=q,R=P,S=H,D=z;return f(),B("div",null,[t(v,{class:"!border-none",shadow:"never"},{default:l(()=>[t(u,{type:"warning",title:"温馨提示:1.粉丝在公众号发送内容时,系统无法匹配情况下发送启用的默认文本回复;2.同时只能启用一个默认回复。",closable:!1,"show-icon":""})]),_:1}),t(v,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[g("div",null,[t(_,{class:"mb-4",type:"primary",onClick:e[0]||(e[0]=a=>C())},{icon:l(()=>[t($,{name:"el-icon-Plus"})]),default:l(()=>[e[3]||(e[3]=p(" 新增 ",-1))]),_:1})]),O((f(),y(R,{size:"large",data:o(d).lists},{default:l(()=>[t(i,{label:"规则名称",prop:"name","min-width":"120"}),t(i,{label:"回复类型","min-width":"120"},{default:l(({row:a})=>[p(A(o(w)(a.content_type)),1)]),_:1}),t(i,{label:"回复内容",prop:"content","min-width":"120"}),t(i,{label:"状态","min-width":"120"},{default:l(({row:a})=>[t(x,{modelValue:a.status,"onUpdate:modelValue":m=>a.status=m,"active-value":1,"inactive-value":0,onChange:m=>E(a.id)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),t(i,{label:"排序",prop:"sort","min-width":"120"}),t(i,{label:"操作",width:"120",fixed:"right"},{default:l(({row:a})=>[t(_,{type:"primary",link:"",onClick:m=>k(a)},{default:l(()=>[...e[4]||(e[4]=[p(" 编辑 ",-1)])]),_:1},8,["onClick"]),t(_,{type:"danger",link:"",onClick:m=>V(a.id)},{default:l(()=>[...e[5]||(e[5]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[D,o(d).loading]]),g("div",ee,[t(S,{modelValue:o(d),"onUpdate:modelValue":e[1]||(e[1]=a=>F(d)?d.value=a:null),onChange:o(s)},null,8,["modelValue","onChange"])])]),_:1}),o(c)?(f(),y(Z,{key:0,ref_key:"editRef",ref:r,onSuccess:o(s),onClose:e[2]||(e[2]=a=>c.value=!1)},null,8,["onSuccess"])):I("",!0)])}}});export{re as default};
+import{o as T,q as f,r as B,v as t,D as l,bm as L,bh as N,s as g,K as j,L as p,ac as O,O as y,bi as P,u as o,bj as U,T as A,I as q,bl as z,C as F,P as I,a8 as K,M,p as G,n as b}from"./.pnpm-BuKxIMgQ.js";import{_ as H}from"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import{c as J,j as h}from"./index-BZAvl557.js";import{d as Q,o as W,e as X}from"./wx_oa-CPg89SqX.js";import{u as Y}from"./usePaging-DNtxCypz.js";import{_ as Z}from"./edit.vue_vue_type_script_setup_true_lang-LiIBGI8Q.js";import"./index-BARAiw4K.js";const ee={class:"flex justify-end mt-4"},re=T({__name:"default_reply",setup(te){const r=K(),c=M(!1),w=G(()=>n=>{switch(n){case 1:return"文本"}}),{pager:d,getLists:s}=Y({fetchFun:Q,params:{reply_type:3}}),C=async()=>{var n;c.value=!0,await b(),(n=r.value)==null||n.open("add",3)},k=async n=>{var e,u;c.value=!0,await b(),(e=r.value)==null||e.open("edit",3),(u=r.value)==null||u.getDetail(n)},V=async n=>{await h.confirm("确定要删除?"),await W({id:n}),h.msgSuccess("删除成功"),s()},E=async n=>{try{await X({id:n}),s()}catch{s()}};return s(),(n,e)=>{const u=L,v=N,$=J,_=j,i=U,x=q,R=P,S=H,D=z;return f(),B("div",null,[t(v,{class:"!border-none",shadow:"never"},{default:l(()=>[t(u,{type:"warning",title:"温馨提示:1.粉丝在公众号发送内容时,系统无法匹配情况下发送启用的默认文本回复;2.同时只能启用一个默认回复。",closable:!1,"show-icon":""})]),_:1}),t(v,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[g("div",null,[t(_,{class:"mb-4",type:"primary",onClick:e[0]||(e[0]=a=>C())},{icon:l(()=>[t($,{name:"el-icon-Plus"})]),default:l(()=>[e[3]||(e[3]=p(" 新增 ",-1))]),_:1})]),O((f(),y(R,{size:"large",data:o(d).lists},{default:l(()=>[t(i,{label:"规则名称",prop:"name","min-width":"120"}),t(i,{label:"回复类型","min-width":"120"},{default:l(({row:a})=>[p(A(o(w)(a.content_type)),1)]),_:1}),t(i,{label:"回复内容",prop:"content","min-width":"120"}),t(i,{label:"状态","min-width":"120"},{default:l(({row:a})=>[t(x,{modelValue:a.status,"onUpdate:modelValue":m=>a.status=m,"active-value":1,"inactive-value":0,onChange:m=>E(a.id)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),t(i,{label:"排序",prop:"sort","min-width":"120"}),t(i,{label:"操作",width:"120",fixed:"right"},{default:l(({row:a})=>[t(_,{type:"primary",link:"",onClick:m=>k(a)},{default:l(()=>[...e[4]||(e[4]=[p(" 编辑 ",-1)])]),_:1},8,["onClick"]),t(_,{type:"danger",link:"",onClick:m=>V(a.id)},{default:l(()=>[...e[5]||(e[5]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[D,o(d).loading]]),g("div",ee,[t(S,{modelValue:o(d),"onUpdate:modelValue":e[1]||(e[1]=a=>F(d)?d.value=a:null),onChange:o(s)},null,8,["modelValue","onChange"])])]),_:1}),o(c)?(f(),y(Z,{key:0,ref_key:"editRef",ref:r,onSuccess:o(s),onClose:e[2]||(e[2]=a=>c.value=!1)},null,8,["onSuccess"])):I("",!0)])}}});export{re as default};
diff --git a/server/public/admin/assets/department-C6mdNFMs.js b/server/public/admin/assets/department-CGkU6VW9.js
similarity index 86%
rename from server/public/admin/assets/department-C6mdNFMs.js
rename to server/public/admin/assets/department-CGkU6VW9.js
index a16929570..eb5ab1eac 100644
--- a/server/public/admin/assets/department-C6mdNFMs.js
+++ b/server/public/admin/assets/department-CGkU6VW9.js
@@ -1 +1 @@
-import{r as e}from"./index-B31vLELt.js";function p(t){return e.get({url:"/dept.dept/lists",params:t})}function r(t){return e.post({url:"/dept.dept/add",params:t})}function u(t){return e.post({url:"/dept.dept/edit",params:t})}function n(t){return e.post({url:"/dept.dept/delete",params:t})}function l(t){return e.get({url:"/dept.dept/detail",params:t})}function s(t){return e.get({url:"/dept.dept/all",params:t})}export{u as a,r as b,l as c,s as d,p as e,n as f};
+import{r as e}from"./index-BZAvl557.js";function p(t){return e.get({url:"/dept.dept/lists",params:t})}function r(t){return e.post({url:"/dept.dept/add",params:t})}function u(t){return e.post({url:"/dept.dept/edit",params:t})}function n(t){return e.post({url:"/dept.dept/delete",params:t})}function l(t){return e.get({url:"/dept.dept/detail",params:t})}function s(t){return e.get({url:"/dept.dept/all",params:t})}export{u as a,r as b,l as c,s as d,p as e,n as f};
diff --git a/server/public/admin/assets/dept-tongji-DRr5sdIn.js b/server/public/admin/assets/dept-tongji-BCpg8shG.js
similarity index 93%
rename from server/public/admin/assets/dept-tongji-DRr5sdIn.js
rename to server/public/admin/assets/dept-tongji-BCpg8shG.js
index bbad3f2ee..8d99a58eb 100644
--- a/server/public/admin/assets/dept-tongji-DRr5sdIn.js
+++ b/server/public/admin/assets/dept-tongji-BCpg8shG.js
@@ -1 +1 @@
-import{o as S,ap as Y,q as r,r as y,v as t,D as a,b9 as j,b6 as P,bm as U,F as q,G,O as k,bn as I,bc as O,bb as K,L as n,bp as W,P as A,K as H,s as p,bg as J,ac as Q,bi as X,bj as Z,bk as $,br as ee,T as m,bB as te,M as g,ba as ae,E as le}from"./.pnpm-BHOjf1ZS.js";import{d as se,e as oe}from"./doctor-CI72mqZm.js";import{_ as ne}from"./index-B31vLELt.js";const de={class:"dept-statistics-page"},ie={key:0},re={class:"status-overview"},ce={class:"status-tags"},_e={key:1,class:"empty-data"},pe=S({__name:"dept-tongji",setup(me){const u=g(!1),V=g([]),b=g([]),i=g([]),o=ae({dept_id:"",time_type:"today",start_date:"",end_date:""}),D=async()=>{try{const s=await se(),e=h=>{let c=[];return h.forEach(d=>{c.push({id:d.id,name:d.name}),d.children&&d.children.length>0&&(c=c.concat(e(d.children)))}),c};V.value=e(s)||[]}catch(s){console.error("获取部门列表失败:",s)}},v=async()=>{u.value=!0;try{const s={time_type:o.time_type};o.dept_id&&(s.dept_id=o.dept_id),o.time_type==="custom"&&i.value&&i.value.length===2&&(s.start_date=i.value[0],s.end_date=i.value[1]);const e=await oe(s);b.value=e.lists||[]}catch(s){console.error("获取统计数据错误:",s),le.error(s.msg||"获取统计数据失败")}finally{u.value=!1}},T=()=>{o.time_type!=="custom"&&(i.value=[])},x=()=>{o.dept_id="",o.time_type="today",i.value=[],v()},B=s=>s>=80?"success":s>=60?"primary":"warning";return Y(()=>{D(),v()}),(s,e)=>{const h=I,c=U,d=P,f=K,L=O,z=W,w=H,M=j,C=J,E=$,_=ee,R=Z,F=te,N=X;return r(),y("div",de,[t(C,{class:"mb-4",shadow:"hover"},{header:a(()=>[...e[3]||(e[3]=[p("div",{class:"card-header"},[p("span",{class:"card-title"},"筛选条件")],-1)])]),default:a(()=>[t(M,{inline:!0,model:o,class:"filter-form"},{default:a(()=>[t(d,{label:"部门"},{default:a(()=>[t(c,{modelValue:o.dept_id,"onUpdate:modelValue":e[0]||(e[0]=l=>o.dept_id=l),placeholder:"全部部门",clearable:"",filterable:"",style:{width:"200px"}},{default:a(()=>[(r(!0),y(q,null,G(V.value,l=>(r(),k(h,{key:l.id,label:l.name,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"时间范围"},{default:a(()=>[t(L,{modelValue:o.time_type,"onUpdate:modelValue":e[1]||(e[1]=l=>o.time_type=l),onChange:T},{default:a(()=>[t(f,{label:"today"},{default:a(()=>[...e[4]||(e[4]=[n("今天",-1)])]),_:1}),t(f,{label:"week"},{default:a(()=>[...e[5]||(e[5]=[n("最近7天",-1)])]),_:1}),t(f,{label:"month"},{default:a(()=>[...e[6]||(e[6]=[n("最近30天",-1)])]),_:1}),t(f,{label:"custom"},{default:a(()=>[...e[7]||(e[7]=[n("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o.time_type==="custom"?(r(),k(d,{key:0},{default:a(()=>[t(z,{modelValue:i.value,"onUpdate:modelValue":e[2]||(e[2]=l=>i.value=l),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"260px"}},null,8,["modelValue"])]),_:1})):A("",!0),t(d,null,{default:a(()=>[t(w,{type:"primary",onClick:v,loading:u.value},{default:a(()=>[...e[8]||(e[8]=[n("查询",-1)])]),_:1},8,["loading"]),t(w,{onClick:x},{default:a(()=>[...e[9]||(e[9]=[n("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),Q((r(),k(C,{class:"mb-4",shadow:"hover"},{header:a(()=>[...e[10]||(e[10]=[p("div",{class:"card-header"},[p("span",{class:"card-title"},"部门统计数据")],-1)])]),default:a(()=>[b.value.length>0?(r(),y("div",ie,[t(R,{data:b.value,style:{width:"100%"},"header-cell-style":{background:"#f5f7fa",color:"#606266",fontWeight:"600"}},{default:a(()=>[t(E,{prop:"dept_name",label:"部门名称",width:"120"}),t(E,{label:"状态明细","min-width":"700"},{default:a(({row:l})=>[p("div",re,[p("div",ce,[t(_,{type:"info",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已挂号: "+m(l.registered_count),1)]),_:2},1024),t(_,{type:"success",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已完成: "+m(l.completed_count),1)]),_:2},1024),t(_,{type:"danger",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已取消: "+m(l.canceled_count),1)]),_:2},1024),t(_,{type:"warning",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已过号: "+m(l.expired_count),1)]),_:2},1024),t(_,{type:"primary",size:"small",class:"compact-tag"},{default:a(()=>[n(" 总数量: "+m(l.total_count),1)]),_:2},1024),t(_,{type:B(l.completion_rate),size:"small",class:"compact-tag"},{default:a(()=>[n(" 完成率: "+m(l.completion_rate)+"% ",1)]),_:2},1032,["type"])])])]),_:1}),t(E,{prop:"time_range",label:"统计时间","min-width":"200"})]),_:1},8,["data"])])):(r(),y("div",_e,[t(F,{description:"暂无统计数据"})]))]),_:1})),[[N,u.value]])])}}}),ge=ne(pe,[["__scopeId","data-v-edcb5eaf"]]);export{ge as default};
+import{o as S,ap as Y,q as r,r as y,v as t,D as a,b9 as j,b6 as P,bf as U,F as q,G,O as k,bg as I,bc as O,bb as K,L as n,be as W,P as A,K as H,s as p,bh as J,ac as Q,bl as X,bi as Z,bj as $,bk as ee,T as m,bB as te,M as g,ba as ae,E as le}from"./.pnpm-BuKxIMgQ.js";import{d as se,e as oe}from"./doctor-DlXZd1P5.js";import{_ as ne}from"./index-BZAvl557.js";const de={class:"dept-statistics-page"},ie={key:0},re={class:"status-overview"},ce={class:"status-tags"},_e={key:1,class:"empty-data"},pe=S({__name:"dept-tongji",setup(me){const u=g(!1),V=g([]),b=g([]),i=g([]),o=ae({dept_id:"",time_type:"today",start_date:"",end_date:""}),D=async()=>{try{const s=await se(),e=h=>{let c=[];return h.forEach(d=>{c.push({id:d.id,name:d.name}),d.children&&d.children.length>0&&(c=c.concat(e(d.children)))}),c};V.value=e(s)||[]}catch(s){console.error("获取部门列表失败:",s)}},v=async()=>{u.value=!0;try{const s={time_type:o.time_type};o.dept_id&&(s.dept_id=o.dept_id),o.time_type==="custom"&&i.value&&i.value.length===2&&(s.start_date=i.value[0],s.end_date=i.value[1]);const e=await oe(s);b.value=e.lists||[]}catch(s){console.error("获取统计数据错误:",s),le.error(s.msg||"获取统计数据失败")}finally{u.value=!1}},T=()=>{o.time_type!=="custom"&&(i.value=[])},x=()=>{o.dept_id="",o.time_type="today",i.value=[],v()},B=s=>s>=80?"success":s>=60?"primary":"warning";return Y(()=>{D(),v()}),(s,e)=>{const h=I,c=U,d=P,f=K,L=O,z=W,w=H,M=j,C=J,E=$,_=ee,R=Z,F=te,N=X;return r(),y("div",de,[t(C,{class:"mb-4",shadow:"hover"},{header:a(()=>[...e[3]||(e[3]=[p("div",{class:"card-header"},[p("span",{class:"card-title"},"筛选条件")],-1)])]),default:a(()=>[t(M,{inline:!0,model:o,class:"filter-form"},{default:a(()=>[t(d,{label:"部门"},{default:a(()=>[t(c,{modelValue:o.dept_id,"onUpdate:modelValue":e[0]||(e[0]=l=>o.dept_id=l),placeholder:"全部部门",clearable:"",filterable:"",style:{width:"200px"}},{default:a(()=>[(r(!0),y(q,null,G(V.value,l=>(r(),k(h,{key:l.id,label:l.name,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"时间范围"},{default:a(()=>[t(L,{modelValue:o.time_type,"onUpdate:modelValue":e[1]||(e[1]=l=>o.time_type=l),onChange:T},{default:a(()=>[t(f,{label:"today"},{default:a(()=>[...e[4]||(e[4]=[n("今天",-1)])]),_:1}),t(f,{label:"week"},{default:a(()=>[...e[5]||(e[5]=[n("最近7天",-1)])]),_:1}),t(f,{label:"month"},{default:a(()=>[...e[6]||(e[6]=[n("最近30天",-1)])]),_:1}),t(f,{label:"custom"},{default:a(()=>[...e[7]||(e[7]=[n("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o.time_type==="custom"?(r(),k(d,{key:0},{default:a(()=>[t(z,{modelValue:i.value,"onUpdate:modelValue":e[2]||(e[2]=l=>i.value=l),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"260px"}},null,8,["modelValue"])]),_:1})):A("",!0),t(d,null,{default:a(()=>[t(w,{type:"primary",onClick:v,loading:u.value},{default:a(()=>[...e[8]||(e[8]=[n("查询",-1)])]),_:1},8,["loading"]),t(w,{onClick:x},{default:a(()=>[...e[9]||(e[9]=[n("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),Q((r(),k(C,{class:"mb-4",shadow:"hover"},{header:a(()=>[...e[10]||(e[10]=[p("div",{class:"card-header"},[p("span",{class:"card-title"},"部门统计数据")],-1)])]),default:a(()=>[b.value.length>0?(r(),y("div",ie,[t(R,{data:b.value,style:{width:"100%"},"header-cell-style":{background:"#f5f7fa",color:"#606266",fontWeight:"600"}},{default:a(()=>[t(E,{prop:"dept_name",label:"部门名称",width:"120"}),t(E,{label:"状态明细","min-width":"700"},{default:a(({row:l})=>[p("div",re,[p("div",ce,[t(_,{type:"info",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已挂号: "+m(l.registered_count),1)]),_:2},1024),t(_,{type:"success",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已完成: "+m(l.completed_count),1)]),_:2},1024),t(_,{type:"danger",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已取消: "+m(l.canceled_count),1)]),_:2},1024),t(_,{type:"warning",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已过号: "+m(l.expired_count),1)]),_:2},1024),t(_,{type:"primary",size:"small",class:"compact-tag"},{default:a(()=>[n(" 总数量: "+m(l.total_count),1)]),_:2},1024),t(_,{type:B(l.completion_rate),size:"small",class:"compact-tag"},{default:a(()=>[n(" 完成率: "+m(l.completion_rate)+"% ",1)]),_:2},1032,["type"])])])]),_:1}),t(E,{prop:"time_range",label:"统计时间","min-width":"200"})]),_:1},8,["data"])])):(r(),y("div",_e,[t(F,{description:"暂无统计数据"})]))]),_:1})),[[N,u.value]])])}}}),ge=ne(pe,[["__scopeId","data-v-edcb5eaf"]]);export{ge as default};
diff --git a/server/public/admin/assets/detail-B9XAbY3l.js b/server/public/admin/assets/detail-Blpjcc6V.js
similarity index 93%
rename from server/public/admin/assets/detail-B9XAbY3l.js
rename to server/public/admin/assets/detail-Blpjcc6V.js
index 8f100aaa5..74261f3b5 100644
--- a/server/public/admin/assets/detail-B9XAbY3l.js
+++ b/server/public/admin/assets/detail-Blpjcc6V.js
@@ -1 +1 @@
-import{_ as N}from"./index-Dt_C33Jx.js";import{o as V,q as r,r as p,v as l,D as a,c0 as C,c1 as I,L as n,T as o,u as t,F as m,G as y,O as u,br as L,P as O,aa as T,s as g,M as h,p as F}from"./.pnpm-BHOjf1ZS.js";import{ab as R}from"./tcm-BkYsBTA3.js";import{n as q}from"./index-B31vLELt.js";const z={class:"detail-popup"},G={key:0},H={key:0,class:"flex gap-2"},M={key:1},P={key:0,class:"flex flex-wrap gap-2"},S={key:1},j={style:{"white-space":"pre-wrap"}},A={style:{"white-space":"pre-wrap"}},J={style:{"white-space":"pre-wrap"}},Z=V({__name:"detail",setup(K,{expose:x}){const b=h(),e=h({}),v=h([]),D=async()=>{try{const i=await q({type:"past_history"});v.value=(i==null?void 0:i.past_history)||[]}catch(i){console.error("获取字典数据失败:",i)}},w=F(()=>!e.value.past_history||!e.value.past_history.length?[]:e.value.past_history.map(i=>{const _=v.value.find(s=>s.value===i);return _?_.name:i}));return x({open:async i=>{b.value.open(),await D(),e.value=await R({id:i})}}),(i,_)=>{const s=I,d=L,k=T,E=C,B=N;return r(),p("div",z,[l(B,{ref_key:"popupRef",ref:b,title:"诊单详情",width:"800px","show-confirm":!1,"z-index":1500},{default:a(()=>[l(E,{column:2,border:""},{default:a(()=>[l(s,{label:"患者ID"},{default:a(()=>[n(o(t(e).patient_id),1)]),_:1}),l(s,{label:"患者姓名"},{default:a(()=>[n(o(t(e).patient_name),1)]),_:1}),l(s,{label:"性别"},{default:a(()=>[n(o(t(e).gender_desc),1)]),_:1}),l(s,{label:"年龄"},{default:a(()=>[n(o(t(e).age)+"岁 ",1)]),_:1}),l(s,{label:"诊断日期"},{default:a(()=>[n(o(t(e).diagnosis_date_text),1)]),_:1}),l(s,{label:"诊断类型"},{default:a(()=>[n(o(t(e).diagnosis_type),1)]),_:1}),l(s,{label:"证型",span:2},{default:a(()=>[n(o(t(e).syndrome_type),1)]),_:1}),l(s,{label:"既往史",span:2},{default:a(()=>[(r(!0),p(m,null,y(t(w),c=>(r(),u(d,{key:c,class:"mr-2",type:"info"},{default:a(()=>[n(o(c),1)]),_:2},1024))),128)),t(w).length?O("",!0):(r(),p("span",G,"无"))]),_:1}),l(s,{label:"外伤史"},{default:a(()=>[n(o(t(e).trauma_history?"有":"无"),1)]),_:1}),l(s,{label:"手术史"},{default:a(()=>[n(o(t(e).surgery_history?"有":"无"),1)]),_:1}),l(s,{label:"过敏史"},{default:a(()=>[n(o(t(e).allergy_history?"有":"无"),1)]),_:1}),l(s,{label:"家族病史"},{default:a(()=>[n(o(t(e).family_history?"有":"无"),1)]),_:1}),l(s,{label:"妊娠哺乳史",span:2},{default:a(()=>[n(o(t(e).pregnancy_history?"有":"无"),1)]),_:1}),l(s,{label:"舌苔照片",span:2},{default:a(()=>[t(e).tongue_images&&t(e).tongue_images.length?(r(),p("div",H,[(r(!0),p(m,null,y(t(e).tongue_images,(c,f)=>(r(),u(k,{key:f,src:c,"preview-src-list":t(e).tongue_images,style:{width:"100px",height:"100px"},fit:"cover"},null,8,["src","preview-src-list"]))),128))])):(r(),p("span",M,"暂无"))]),_:1}),l(s,{label:"检查报告",span:2},{default:a(()=>[t(e).report_files&&t(e).report_files.length?(r(),p("div",P,[(r(!0),p(m,null,y(t(e).report_files,(c,f)=>(r(),u(k,{key:f,src:c,"preview-src-list":t(e).report_files,style:{width:"100px",height:"100px"},fit:"cover"},null,8,["src","preview-src-list"]))),128))])):(r(),p("span",S,"暂无"))]),_:1}),l(s,{label:"症状",span:2},{default:a(()=>[n(o(t(e).symptoms||"无"),1)]),_:1}),l(s,{label:"舌苔"},{default:a(()=>[n(o(t(e).tongue_coating||"无"),1)]),_:1}),l(s,{label:"脉象"},{default:a(()=>[n(o(t(e).pulse||"无"),1)]),_:1}),l(s,{label:"治则",span:2},{default:a(()=>[n(o(t(e).treatment_principle||"无"),1)]),_:1}),l(s,{label:"在用药物",span:2},{default:a(()=>[g("div",j,o(t(e).current_medications||"无"),1)]),_:1}),l(s,{label:"处方",span:2},{default:a(()=>[g("div",A,o(t(e).prescription||"无"),1)]),_:1}),l(s,{label:"医嘱",span:2},{default:a(()=>[g("div",J,o(t(e).doctor_advice||"无"),1)]),_:1}),l(s,{label:"备注",span:2},{default:a(()=>[n(o(t(e).remark||"无"),1)]),_:1}),l(s,{label:"状态"},{default:a(()=>[t(e).status==1?(r(),u(d,{key:0,type:"success"},{default:a(()=>[..._[0]||(_[0]=[n("启用",-1)])]),_:1})):(r(),u(d,{key:1,type:"danger"},{default:a(()=>[..._[1]||(_[1]=[n("禁用",-1)])]),_:1}))]),_:1}),l(s,{label:"创建时间"},{default:a(()=>[n(o(t(e).create_time),1)]),_:1})]),_:1})]),_:1},512)])}}});export{Z as default};
+import{_ as N}from"./index-BARAiw4K.js";import{o as V,q as r,r as p,v as l,D as a,c0 as C,c1 as I,L as n,T as o,u as t,F as m,G as y,O as u,bk as L,P as O,aa as T,s as g,M as h,p as F}from"./.pnpm-BuKxIMgQ.js";import{ab as R}from"./tcm-BZvWmp4G.js";import{n as q}from"./index-BZAvl557.js";const z={class:"detail-popup"},G={key:0},H={key:0,class:"flex gap-2"},M={key:1},P={key:0,class:"flex flex-wrap gap-2"},S={key:1},j={style:{"white-space":"pre-wrap"}},A={style:{"white-space":"pre-wrap"}},J={style:{"white-space":"pre-wrap"}},Z=V({__name:"detail",setup(K,{expose:x}){const b=h(),e=h({}),v=h([]),D=async()=>{try{const i=await q({type:"past_history"});v.value=(i==null?void 0:i.past_history)||[]}catch(i){console.error("获取字典数据失败:",i)}},w=F(()=>!e.value.past_history||!e.value.past_history.length?[]:e.value.past_history.map(i=>{const _=v.value.find(s=>s.value===i);return _?_.name:i}));return x({open:async i=>{b.value.open(),await D(),e.value=await R({id:i})}}),(i,_)=>{const s=I,d=L,k=T,E=C,B=N;return r(),p("div",z,[l(B,{ref_key:"popupRef",ref:b,title:"诊单详情",width:"800px","show-confirm":!1,"z-index":1500},{default:a(()=>[l(E,{column:2,border:""},{default:a(()=>[l(s,{label:"患者ID"},{default:a(()=>[n(o(t(e).patient_id),1)]),_:1}),l(s,{label:"患者姓名"},{default:a(()=>[n(o(t(e).patient_name),1)]),_:1}),l(s,{label:"性别"},{default:a(()=>[n(o(t(e).gender_desc),1)]),_:1}),l(s,{label:"年龄"},{default:a(()=>[n(o(t(e).age)+"岁 ",1)]),_:1}),l(s,{label:"诊断日期"},{default:a(()=>[n(o(t(e).diagnosis_date_text),1)]),_:1}),l(s,{label:"诊断类型"},{default:a(()=>[n(o(t(e).diagnosis_type),1)]),_:1}),l(s,{label:"证型",span:2},{default:a(()=>[n(o(t(e).syndrome_type),1)]),_:1}),l(s,{label:"既往史",span:2},{default:a(()=>[(r(!0),p(m,null,y(t(w),c=>(r(),u(d,{key:c,class:"mr-2",type:"info"},{default:a(()=>[n(o(c),1)]),_:2},1024))),128)),t(w).length?O("",!0):(r(),p("span",G,"无"))]),_:1}),l(s,{label:"外伤史"},{default:a(()=>[n(o(t(e).trauma_history?"有":"无"),1)]),_:1}),l(s,{label:"手术史"},{default:a(()=>[n(o(t(e).surgery_history?"有":"无"),1)]),_:1}),l(s,{label:"过敏史"},{default:a(()=>[n(o(t(e).allergy_history?"有":"无"),1)]),_:1}),l(s,{label:"家族病史"},{default:a(()=>[n(o(t(e).family_history?"有":"无"),1)]),_:1}),l(s,{label:"妊娠哺乳史",span:2},{default:a(()=>[n(o(t(e).pregnancy_history?"有":"无"),1)]),_:1}),l(s,{label:"舌苔照片",span:2},{default:a(()=>[t(e).tongue_images&&t(e).tongue_images.length?(r(),p("div",H,[(r(!0),p(m,null,y(t(e).tongue_images,(c,f)=>(r(),u(k,{key:f,src:c,"preview-src-list":t(e).tongue_images,style:{width:"100px",height:"100px"},fit:"cover"},null,8,["src","preview-src-list"]))),128))])):(r(),p("span",M,"暂无"))]),_:1}),l(s,{label:"检查报告",span:2},{default:a(()=>[t(e).report_files&&t(e).report_files.length?(r(),p("div",P,[(r(!0),p(m,null,y(t(e).report_files,(c,f)=>(r(),u(k,{key:f,src:c,"preview-src-list":t(e).report_files,style:{width:"100px",height:"100px"},fit:"cover"},null,8,["src","preview-src-list"]))),128))])):(r(),p("span",S,"暂无"))]),_:1}),l(s,{label:"症状",span:2},{default:a(()=>[n(o(t(e).symptoms||"无"),1)]),_:1}),l(s,{label:"舌苔"},{default:a(()=>[n(o(t(e).tongue_coating||"无"),1)]),_:1}),l(s,{label:"脉象"},{default:a(()=>[n(o(t(e).pulse||"无"),1)]),_:1}),l(s,{label:"治则",span:2},{default:a(()=>[n(o(t(e).treatment_principle||"无"),1)]),_:1}),l(s,{label:"在用药物",span:2},{default:a(()=>[g("div",j,o(t(e).current_medications||"无"),1)]),_:1}),l(s,{label:"处方",span:2},{default:a(()=>[g("div",A,o(t(e).prescription||"无"),1)]),_:1}),l(s,{label:"医嘱",span:2},{default:a(()=>[g("div",J,o(t(e).doctor_advice||"无"),1)]),_:1}),l(s,{label:"备注",span:2},{default:a(()=>[n(o(t(e).remark||"无"),1)]),_:1}),l(s,{label:"状态"},{default:a(()=>[t(e).status==1?(r(),u(d,{key:0,type:"success"},{default:a(()=>[..._[0]||(_[0]=[n("启用",-1)])]),_:1})):(r(),u(d,{key:1,type:"danger"},{default:a(()=>[..._[1]||(_[1]=[n("禁用",-1)])]),_:1}))]),_:1}),l(s,{label:"创建时间"},{default:a(()=>[n(o(t(e).create_time),1)]),_:1})]),_:1})]),_:1},512)])}}});export{Z as default};
diff --git a/server/public/admin/assets/detail-CUxuokJZ.js b/server/public/admin/assets/detail-CUxuokJZ.js
new file mode 100644
index 000000000..4c1c800b9
--- /dev/null
+++ b/server/public/admin/assets/detail-CUxuokJZ.js
@@ -0,0 +1 @@
+import{o as C,Q as q,bn as R,q as d,r as A,v as t,D as a,bp as N,bh as V,b9 as F,u as s,s as c,a0 as M,L as r,T as i,ac as p,O as b,K as O,b6 as S,ba as g,a8 as T}from"./.pnpm-BuKxIMgQ.js";import{_ as U}from"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import{c as z,s as H}from"./index-BZAvl557.js";import{g as I,u as K,a as L}from"./consumer-Z1_na4tX.js";import{_ as Q}from"./account-adjust.vue_vue_type_script_setup_true_lang-DdsFQNga.js";import"./index-BARAiw4K.js";const G={class:"bg-page flex py-5 mb-10 items-center"},J={class:"basis-40 flex flex-col justify-center items-center"},W={class:"basis-40 flex flex-col justify-center items-center"},X={class:"mt-2 flex items-center"},Y=C({name:"consumerDetail"}),oe=C({...Y,setup(Z){const w=q(),n=g({avatar:"",channel:"",create_time:"",login_time:"",mobile:"",nickname:"",real_name:0,sex:0,sn:"",account:"",user_money:""}),u=g({show:!1,value:""}),h=T(),E=async()=>{const o=await I({id:w.query.id});Object.keys(n).forEach(e=>{n[e]=o[e]})},v=async(o,e)=>{H(o)||(await K({id:w.query.id,field:e,value:o}),E())},j=o=>{u.show=!0,u.value=o},D=async o=>{await L({user_id:w.query.id,...o}),u.show=!1,E()};return E(),(o,e)=>{const B=N,k=V,$=M,_=O,m=S,y=z,x=U,P=F,f=R("perms");return d(),A("div",null,[t(k,{class:"!border-none",shadow:"never"},{default:a(()=>[t(B,{content:"用户详情",onBack:e[0]||(e[0]=l=>o.$router.back())})]),_:1}),t(k,{class:"mt-4 !border-none",header:"基本资料",shadow:"never"},{default:a(()=>[t(P,{ref_key:"formRef",ref:h,class:"ls-form",model:s(n),"label-width":"120px"},{default:a(()=>[c("div",G,[c("div",J,[e[7]||(e[7]=c("div",{class:"mb-2 text-tx-regular"},"用户头像",-1)),t($,{src:s(n).avatar,size:58},null,8,["src"])]),c("div",W,[e[9]||(e[9]=c("div",{class:"text-tx-regular"},"账户余额",-1)),c("div",X,[r(" ¥"+i(s(n).user_money)+" ",1),p((d(),b(_,{type:"primary",link:"",onClick:e[1]||(e[1]=l=>j(s(n).user_money))},{default:a(()=>[...e[8]||(e[8]=[r(" 调整 ",-1)])]),_:1})),[[f,["user.user/adjustMoney"]]])])])]),t(m,{label:"用户昵称:"},{default:a(()=>[r(i(s(n).nickname),1)]),_:1}),t(m,{label:"账号:"},{default:a(()=>[r(i(s(n).account)+" ",1),p((d(),b(x,{class:"ml-[10px]",onConfirm:e[2]||(e[2]=l=>v(l,"account")),limit:32},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"真实姓名:"},{default:a(()=>[r(i(s(n).real_name||"-")+" ",1),p((d(),b(x,{class:"ml-[10px]",onConfirm:e[3]||(e[3]=l=>v(l,"real_name")),limit:32},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"性别:"},{default:a(()=>[r(i(s(n).sex)+" ",1),p((d(),b(x,{class:"ml-[10px]",type:"select",options:[{label:"未知",value:0},{label:"男",value:1},{label:"女",value:2}],onConfirm:e[4]||(e[4]=l=>v(l,"sex"))},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"联系电话:"},{default:a(()=>[r(i(s(n).mobile||"-")+" ",1),p((d(),b(x,{class:"ml-[10px]",type:"number",onConfirm:e[5]||(e[5]=l=>v(l,"mobile"))},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"注册来源:"},{default:a(()=>[r(i(s(n).channel),1)]),_:1}),t(m,{label:"注册时间:"},{default:a(()=>[r(i(s(n).create_time),1)]),_:1}),t(m,{label:"最近登录时间:"},{default:a(()=>[r(i(s(n).login_time),1)]),_:1})]),_:1},8,["model"])]),_:1}),t(Q,{show:s(u).show,"onUpdate:show":e[6]||(e[6]=l=>s(u).show=l),value:s(u).value,onConfirm:D},null,8,["show","value"])])}}});export{oe as default};
diff --git a/server/public/admin/assets/detail-dCfyR8b9.js b/server/public/admin/assets/detail-dCfyR8b9.js
deleted file mode 100644
index bf4648fd1..000000000
--- a/server/public/admin/assets/detail-dCfyR8b9.js
+++ /dev/null
@@ -1 +0,0 @@
-import{o as C,Q as q,be as R,q as d,r as A,v as t,D as a,bl as N,bg as V,b9 as F,u as s,s as c,a0 as M,L as r,T as i,ac as p,O as b,K as O,b6 as S,ba as g,a8 as T}from"./.pnpm-BHOjf1ZS.js";import{_ as U}from"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import{c as z,s as H}from"./index-B31vLELt.js";import{g as I,u as K,a as L}from"./consumer-eEcvU_fY.js";import{_ as Q}from"./account-adjust.vue_vue_type_script_setup_true_lang-Ci_LgSpd.js";import"./index-Dt_C33Jx.js";const G={class:"bg-page flex py-5 mb-10 items-center"},J={class:"basis-40 flex flex-col justify-center items-center"},W={class:"basis-40 flex flex-col justify-center items-center"},X={class:"mt-2 flex items-center"},Y=C({name:"consumerDetail"}),oe=C({...Y,setup(Z){const w=q(),l=g({avatar:"",channel:"",create_time:"",login_time:"",mobile:"",nickname:"",real_name:0,sex:0,sn:"",account:"",user_money:""}),u=g({show:!1,value:""}),j=T(),E=async()=>{const o=await I({id:w.query.id});Object.keys(l).forEach(e=>{l[e]=o[e]})},v=async(o,e)=>{H(o)||(await K({id:w.query.id,field:e,value:o}),E())},D=o=>{u.show=!0,u.value=o},h=async o=>{await L({user_id:w.query.id,...o}),u.show=!1,E()};return E(),(o,e)=>{const B=N,k=V,$=M,_=O,m=S,y=z,x=U,P=F,f=R("perms");return d(),A("div",null,[t(k,{class:"!border-none",shadow:"never"},{default:a(()=>[t(B,{content:"用户详情",onBack:e[0]||(e[0]=n=>o.$router.back())})]),_:1}),t(k,{class:"mt-4 !border-none",header:"基本资料",shadow:"never"},{default:a(()=>[t(P,{ref_key:"formRef",ref:j,class:"ls-form",model:s(l),"label-width":"120px"},{default:a(()=>[c("div",G,[c("div",J,[e[7]||(e[7]=c("div",{class:"mb-2 text-tx-regular"},"用户头像",-1)),t($,{src:s(l).avatar,size:58},null,8,["src"])]),c("div",W,[e[9]||(e[9]=c("div",{class:"text-tx-regular"},"账户余额",-1)),c("div",X,[r(" ¥"+i(s(l).user_money)+" ",1),p((d(),b(_,{type:"primary",link:"",onClick:e[1]||(e[1]=n=>D(s(l).user_money))},{default:a(()=>[...e[8]||(e[8]=[r(" 调整 ",-1)])]),_:1})),[[f,["user.user/adjustMoney"]]])])])]),t(m,{label:"用户昵称:"},{default:a(()=>[r(i(s(l).nickname),1)]),_:1}),t(m,{label:"账号:"},{default:a(()=>[r(i(s(l).account)+" ",1),p((d(),b(x,{class:"ml-[10px]",onConfirm:e[2]||(e[2]=n=>v(n,"account")),limit:32},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"真实姓名:"},{default:a(()=>[r(i(s(l).real_name||"-")+" ",1),p((d(),b(x,{class:"ml-[10px]",onConfirm:e[3]||(e[3]=n=>v(n,"real_name")),limit:32},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"性别:"},{default:a(()=>[r(i(s(l).sex)+" ",1),p((d(),b(x,{class:"ml-[10px]",type:"select",options:[{label:"未知",value:0},{label:"男",value:1},{label:"女",value:2}],onConfirm:e[4]||(e[4]=n=>v(n,"sex"))},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"联系电话:"},{default:a(()=>[r(i(s(l).mobile||"-")+" ",1),p((d(),b(x,{class:"ml-[10px]",type:"number",onConfirm:e[5]||(e[5]=n=>v(n,"mobile"))},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"注册来源:"},{default:a(()=>[r(i(s(l).channel),1)]),_:1}),t(m,{label:"注册时间:"},{default:a(()=>[r(i(s(l).create_time),1)]),_:1}),t(m,{label:"最近登录时间:"},{default:a(()=>[r(i(s(l).login_time),1)]),_:1})]),_:1},8,["model"])]),_:1}),t(Q,{show:s(u).show,"onUpdate:show":e[6]||(e[6]=n=>s(u).show=n),value:s(u).value,onConfirm:h},null,8,["show","value"])])}}});export{oe as default};
diff --git a/server/public/admin/assets/dict-V0YKjsig.js b/server/public/admin/assets/dict-DJCviyhe.js
similarity index 92%
rename from server/public/admin/assets/dict-V0YKjsig.js
rename to server/public/admin/assets/dict-DJCviyhe.js
index 199752158..3bad70fa6 100644
--- a/server/public/admin/assets/dict-V0YKjsig.js
+++ b/server/public/admin/assets/dict-DJCviyhe.js
@@ -1 +1 @@
-import{r as i}from"./index-B31vLELt.js";function d(t){return i.get({url:"/setting.dict.dict_type/lists",params:t})}function n(t){return i.get({url:"/setting.dict.dict_type/all",params:t})}function c(t){return i.post({url:"/setting.dict.dict_type/add",params:t})}function r(t){return i.post({url:"/setting.dict.dict_type/edit",params:t})}function s(t){return i.post({url:"/setting.dict.dict_type/delete",params:t})}function a(t){return i.get({url:"/setting.dict.dict_data/lists",params:t},{ignoreCancelToken:!0})}function u(t){return i.post({url:"/setting.dict.dict_data/add",params:t})}function l(t){return i.post({url:"/setting.dict.dict_data/edit",params:t})}function o(t){return i.post({url:"/setting.dict.dict_data/delete",params:t})}export{l as a,u as b,a as c,n as d,o as e,d as f,r as g,c as h,s as i};
+import{r as i}from"./index-BZAvl557.js";function d(t){return i.get({url:"/setting.dict.dict_type/lists",params:t})}function n(t){return i.get({url:"/setting.dict.dict_type/all",params:t})}function c(t){return i.post({url:"/setting.dict.dict_type/add",params:t})}function r(t){return i.post({url:"/setting.dict.dict_type/edit",params:t})}function s(t){return i.post({url:"/setting.dict.dict_type/delete",params:t})}function a(t){return i.get({url:"/setting.dict.dict_data/lists",params:t},{ignoreCancelToken:!0})}function u(t){return i.post({url:"/setting.dict.dict_data/add",params:t})}function l(t){return i.post({url:"/setting.dict.dict_data/edit",params:t})}function o(t){return i.post({url:"/setting.dict.dict_data/delete",params:t})}export{l as a,u as b,a as c,n as d,o as e,d as f,r as g,c as h,s as i};
diff --git a/server/public/admin/assets/doctor-CI72mqZm.js b/server/public/admin/assets/doctor-DlXZd1P5.js
similarity index 95%
rename from server/public/admin/assets/doctor-CI72mqZm.js
rename to server/public/admin/assets/doctor-DlXZd1P5.js
index e1ab394e0..623f98126 100644
--- a/server/public/admin/assets/doctor-CI72mqZm.js
+++ b/server/public/admin/assets/doctor-DlXZd1P5.js
@@ -1 +1 @@
-import{r as e}from"./index-B31vLELt.js";function o(t){return e.get({url:"/auth.admin/lists",params:{...t,role_id:1,exclude_disabled:1}})}function n(t){return e.get({url:"/doctor.roster/lists",params:t})}function s(t){return e.post({url:"/doctor.roster/save",params:t})}function i(t){return e.post({url:"/doctor.roster/delete",params:t})}function a(t){return e.post({url:"/doctor.roster/batchSave",params:t})}function u(t){return e.get({url:"/doctor.appointment/availableSlots",params:t})}function c(t){return e.post({url:"/doctor.appointment/create",params:t})}function p(t){return e.post({url:"/doctor.appointment/cancel",params:t})}function l(t){return e.get({url:"/doctor.appointment/lists",params:t})}function d(t){return e.post({url:"/doctor.appointment/edit",params:t})}function m(t){return e.post({url:"/doctor.appointment/batchEditChannel",params:t})}function f(t){return e.get({url:"/doctor.appointment/detail",params:t})}function g(t){return e.post({url:"/doctor.appointment/complete",params:t})}function h(t){return e.get({url:"/doctor.statistics/lists",params:t})}function S(){return e.get({url:"/dept.dept/all"})}function b(t){return e.get({url:"/doctor.statistics/deptLists",params:t})}export{l as a,m as b,d as c,S as d,b as e,o as f,u as g,s as h,i,a as j,h as k,g as l,p as m,f as n,c as o,n as r};
+import{r as e}from"./index-BZAvl557.js";function o(t){return e.get({url:"/auth.admin/lists",params:{...t,role_id:1,exclude_disabled:1}})}function n(t){return e.get({url:"/doctor.roster/lists",params:t})}function s(t){return e.post({url:"/doctor.roster/save",params:t})}function i(t){return e.post({url:"/doctor.roster/delete",params:t})}function a(t){return e.post({url:"/doctor.roster/batchSave",params:t})}function u(t){return e.get({url:"/doctor.appointment/availableSlots",params:t})}function c(t){return e.post({url:"/doctor.appointment/create",params:t})}function p(t){return e.post({url:"/doctor.appointment/cancel",params:t})}function l(t){return e.get({url:"/doctor.appointment/lists",params:t})}function d(t){return e.post({url:"/doctor.appointment/edit",params:t})}function m(t){return e.post({url:"/doctor.appointment/batchEditChannel",params:t})}function f(t){return e.get({url:"/doctor.appointment/detail",params:t})}function g(t){return e.post({url:"/doctor.appointment/complete",params:t})}function h(t){return e.get({url:"/doctor.statistics/lists",params:t})}function S(){return e.get({url:"/dept.dept/all"})}function b(t){return e.get({url:"/doctor.statistics/deptLists",params:t})}export{l as a,m as b,d as c,S as d,b as e,o as f,u as g,s as h,i,a as j,h as k,g as l,p as m,f as n,c as o,n as r};
diff --git a/server/public/admin/assets/edit-D7xEXORE.js b/server/public/admin/assets/edit-4A8ewECo.js
similarity index 95%
rename from server/public/admin/assets/edit-D7xEXORE.js
rename to server/public/admin/assets/edit-4A8ewECo.js
index 317d46603..d767bf41a 100644
--- a/server/public/admin/assets/edit-D7xEXORE.js
+++ b/server/public/admin/assets/edit-4A8ewECo.js
@@ -1 +1 @@
-import{o as pl,R as Be,M as p,q as i,r as f,v as o,D as t,Y as _l,C as ze,u as l,X as ml,b9 as fl,s as G,bD as cl,L as u,O as r,bh as vl,F as b,T as y,P,b6 as gl,b7 as bl,c8 as yl,c9 as Vl,bc as kl,bf as hl,J as wl,bm as xl,bn as Ul,G as U,I as El,bp as Pl,cA as Ol,di as Rl,bb as Nl,bB as Dl,K as Il,br as Cl,B as Bl,p as J,E as se}from"./.pnpm-BHOjf1ZS.js";import{$ as zl,ac as Fe,ae as Fl,ab as Te,af as Tl,ad as Ll}from"./tcm-BkYsBTA3.js";import{e as Sl,u as $l,n as h,_ as Ml}from"./index-B31vLELt.js";import{h as I}from"./perm-LGazrkDZ.js";import ql from"./DailyMatrix-CBuciytJ.js";import Al from"./CaseRecordList-CXWEviPe.js";import Yl from"./CallRecordPanel-DMqPw_JP.js";import Gl from"./ImChatRecordPanel-Dm0poqca.js";import Jl from"./AssignLogPanel-Cbj0SUao.js";import Xl from"./AppointmentRecordPanel-CyJurU7N.js";import Hl from"./NoteTimeline-t2oiBuLI.js";/* empty css */import Kl from"./PatientOrderList-CTDKS20W.js";import jl from"./index-DxwrXzGt.js";import{g as Ql}from"./patient-DJrRftKl.js";import"./picker-DY0rRn6Q.js";import"./index-Dt_C33Jx.js";import"./index-Mwguss-B.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./index-Btk0rgzN.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./usePaging-oaNM6A9T.js";import"./DiagnosisTodoList-KmLvXj7N.js";import"./blood-thresholds-CJ1fqMjh.js";import"./RecordingPlaybackBlock-CGNt462L.js";import"./RecordingVideoPlayer-D3gHlSLF.js";import"./dayjs-CF5xpNFg.js";import"./im-business-message-parse-kN-fWnvR.js";import"./doctor-CI72mqZm.js";import"./PrescriptionOrderDetailDrawer-C-APB0h9.js";import"./prescription-order-utils-CXfs2Bra.js";import"./index-Bb06Av7e.js";import"./medicine-D482UsPQ.js";import"./diabetes-discovery-display-B_wmGXQJ.js";import"./index-CUkLSyim.js";const Wl={class:"edit-drawer"},Zl={class:"tcm-dd-header"},ea={class:"tcm-dd-header__row"},la={class:"tcm-dd-header__title"},aa={key:0,class:"tcm-dd-header__sub"},ta={key:0,class:"tcm-dd-header__name"},oa={key:1,class:"tcm-dd-header__id"},da={key:0,class:"tcm-dd-header__sep"},ia=["disabled"],na=["disabled"],sa={key:0,class:"text-xs text-gray-400 mt-1"},ua={key:0,class:"text-xs text-gray-400 mt-1"},ra={key:0,class:"p-4"},pa={key:0,class:"bingli-tab-content"},_a={class:"tcm-dd-footer"},ma=pl({__name:"edit",emits:["success"],setup(fa,{expose:Le,emit:Se}){const $e=Se;Sl();const Z=p(),Me=p(null),ee=p(),L=p(!1),O=p(!1),le=p(),R=p("add"),ae=p(!1),C=J(()=>I(["tcm.diagnosis/phonePlain"])),ue=J(()=>I(["tcm.diagnosis/dailyRecord"])),te=p(!1),oe=p(!0),X=p(null),B=J(()=>O.value?!1:R.value==="add"?!0:oe.value),qe=J(()=>R.value!=="edit"?!1:B.value?!C.value:!0),S=p(!1),Ae=J(()=>R.value!=="edit"||!w.value?!1:B.value?!C.value:!0),Ye=J(()=>B.value?R.value==="add"||!w.value?!0:C.value:!1),$=p(!1),V=p("basic"),Ge=J(()=>O.value?"诊单详情":R.value==="add"?"新增诊单":"编辑诊单"),de=p([]),re=async()=>{if(a.value.id)try{de.value=await Ql({diagnosis_id:Number(a.value.id)})||[]}catch{de.value=[]}},pe=p([]),Je=async()=>{if(a.value.id)try{pe.value=await zl({diagnosis_id:Number(a.value.id)})||[]}catch{pe.value=[]}};Be(()=>V.value,async n=>{n==="doctorNote"&&a.value.id&&await re(),n==="trackingNote"&&a.value.id&&await Je()}),Be([L,V],()=>{L.value&&(V.value==="chat"&&!I(["tcm.diagnosis/chat"])&&(V.value="basic"),V.value==="visit"&&!I(["tcm.diagnosis/huifang"])&&(V.value="basic"),V.value==="assignLog"&&!I(["tcm.diagnosis/assign"])&&!I(["tcm.diagnosis/detail"])&&(V.value="basic"),V.value==="appointmentRecords"&&!I(["doctor.appointment/lists"])&&(V.value="basic"),V.value==="daily"&&!ue.value&&(V.value="basic"))});const a=p({id:"",patient_id:"",patient_name:"",id_card:"",phone:"",gender:1,age:void 0,diagnosis_date:"",diagnosis_type:"",syndrome_type:"",diabetes_type:"",diabetes_discovery_year:"",local_hospital_diagnosis:[],local_hospital_name:"",marital_status:void 0,height:void 0,weight:void 0,region:"",systolic_pressure:void 0,diastolic_pressure:void 0,fasting_blood_sugar:"",appetite:[],water_intake:"",diet_condition:[],weight_change:"",body_feeling:[],sleep_condition:[],eye_condition:[],head_feeling:[],sweat_condition:[],skin_condition:[],urine_condition:[],stool_condition:[],kidney_condition:[],fatty_liver_degree:"",past_history:[],trauma_history:0,surgery_history:0,allergy_history:0,family_history:0,pregnancy_history:0,assistant_id:void 0,symptoms:"",tongue_coating:"",pulse:"",treatment_principle:"",prescription:"",doctor_advice:"",remark:"",current_medications:"",status:1,create_source:"admin",show_card:1,external_userid:""}),Xe=[{value:"",label:"未设置"},{value:"admin",label:"后台建档"},{value:"mnp",label:"小程序完整建档"},{value:"mnp_daily",label:"小程序手机号快捷建档"}],N=p(""),w=p(""),ie=p(!1),ne=p(!1),j=n=>!n||n.length<11?n:n.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),He=()=>{N.value&&(S.value=!S.value)},Ke=()=>{w.value&&($.value=!$.value)},Q=n=>n&&(n.length===15?n.replace(/(\d{6})\d{5}(\d{4})/,"$1*****$2"):n.length===18?n.replace(/(\d{6})\d{8}(\d{4})/,"$1********$2"):n),je=()=>{if(ie.value=!0,!!N.value){if(C.value){a.value.phone=N.value;return}R.value==="add"&&(a.value.phone=N.value)}},Qe=async()=>{if(ie.value=!1,C.value){if(a.value.phone&&a.value.phone.length===11&&(N.value=a.value.phone,/^1[3-9]\d{9}$/.test(a.value.phone)))try{const n=await Fe({phone:a.value.phone,id:a.value.id||""});n.exists&&se.warning(n.message)}catch(n){console.error("检查手机号失败:",n)}return}if(R.value==="add"&&a.value.phone&&a.value.phone.length===11){if(N.value=a.value.phone,/^1[3-9]\d{9}$/.test(a.value.phone))try{const n=await Fe({phone:a.value.phone,id:a.value.id||""});n.exists&&se.warning(n.message)}catch(n){console.error("检查手机号失败:",n)}a.value.phone=j(a.value.phone)}},We=()=>{if(ne.value=!0,!!w.value){if(C.value){a.value.id_card=w.value;return}R.value==="add"&&(a.value.id_card=w.value)}},Ze=async()=>{ne.value=!1;const n=async e=>{if(/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e)){const c=parseInt(e.substring(6,10)),m=parseInt(e.substring(10,12)),A=parseInt(e.substring(12,14)),v=new Date;let s=v.getFullYear()-c;(v.getMonth()+1{const m=w.value||e;if(!m){c();return}if(!/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(m)){c(new Error("身份证号格式不正确"));return}c()},trigger:"blur"}],phone:[{required:!0,validator:(n,e,c)=>{const m=N.value||e;if(!m){c(new Error("请输入手机号"));return}if(!/^1[3-9]\d{9}$/.test(m)){c(new Error("手机号格式不正确"));return}c()},trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],age:[{required:!0,message:"请输入年龄",trigger:"blur"}],fasting_blood_sugar:[{required:!0,message:"请输入空腹血糖",trigger:"blur"}],diagnosis_type:[{required:!0,message:"请选择诊断类型",trigger:"change"}],local_hospital_name:[{required:!0,message:"请输入当地就诊医院名称",trigger:"blur"}],diabetes_discovery_year:[{max:50,message:"最多50个字符",trigger:"blur"}]},_e=p([]),ll=p([]),al=p([]),me=p([]),fe=p([]),ce=p([]),ve=p([]),ge=p([]),be=p([]),ye=p([]),Ve=p([]),ke=p([]),he=p([]),we=p([]),xe=p([]),Ue=p([]),Ee=p([]),Pe=p([]),Oe=async()=>{try{const[n,e,c,m,A,v,s,_,g,M,D,z,F,Y,H,K,k,x]=await Promise.all([h({type:"diagnosis_type"}),h({type:"syndrome_type"}),h({type:"diabetes_type"}),h({type:"past_history"}),h({type:"appetite"}),h({type:"water_intake"}),h({type:"diet_condition"}),h({type:"weight_change"}),h({type:"body_feeling"}),h({type:"sleep_condition"}),h({type:"eye_condition"}),h({type:"head_feeling"}),h({type:"sweat_condition"}),h({type:"skin_condition"}),h({type:"urine_condition"}),h({type:"stool_condition"}),h({type:"kidney_condition"}),h({type:"fatty_liver_degree"})]);_e.value=(n==null?void 0:n.diagnosis_type)||[],ll.value=(e==null?void 0:e.syndrome_type)||[],al.value=(c==null?void 0:c.diabetes_type)||[],me.value=(m==null?void 0:m.past_history)||[],fe.value=(A==null?void 0:A.appetite)||[],ce.value=(v==null?void 0:v.water_intake)||[],ve.value=(s==null?void 0:s.diet_condition)||[],ge.value=(_==null?void 0:_.weight_change)||[],be.value=(g==null?void 0:g.body_feeling)||[],ye.value=(M==null?void 0:M.sleep_condition)||[],Ve.value=(D==null?void 0:D.eye_condition)||[],ke.value=(z==null?void 0:z.head_feeling)||[],he.value=(F==null?void 0:F.sweat_condition)||[],we.value=(Y==null?void 0:Y.skin_condition)||[],xe.value=(H==null?void 0:H.urine_condition)||[],Ue.value=(K==null?void 0:K.stool_condition)||[],Ee.value=(k==null?void 0:k.kidney_condition)||[],Pe.value=(x==null?void 0:x.fatty_liver_degree)||[]}catch(n){console.error("获取字典数据失败:",n)}};async function Re(n){const e=await Te({id:n});N.value=e.phone||"",w.value=e.id_card||"",te.value=!!e.patient_basic_locked,oe.value=e.can_edit_patient_basic!==!1,X.value=e.latest_prescription_order??null,e.phone=C.value?e.phone||"":j(e.phone||""),e.id_card=C.value?e.id_card||"":Q(e.id_card||""),a.value=e,a.value.create_source=e.create_source??"",a.value.show_card=Number(e.show_card)===0?0:1;const c=e.diabetes_discovery_year;a.value.diabetes_discovery_year=c==null||c===""?"":String(c)}const Ne=()=>{te.value=!1,oe.value=!0,X.value=null},tl=async(n,e)=>{var c;if(O.value=!1,R.value=n,L.value=!0,V.value="basic",S.value=!1,$.value=!1,Ne(),await Oe(),n==="edit"&&e)await Re(e);else if(n==="add"){const m=$l();a.value.assistant_id=((c=m.userInfo)==null?void 0:c.id)||"",a.value.diagnosis_type="follow_up"}},ol=async n=>{n&&(O.value=!0,R.value="edit",L.value=!0,V.value="basic",S.value=!1,$.value=!1,Ne(),await Oe(),await Re(n))},dl=async()=>{var n;if(!O.value){await((n=le.value)==null?void 0:n.validate()),ae.value=!0;try{const e={...a.value,phone:N.value||a.value.phone,id_card:w.value||a.value.id_card};if(R.value==="add"){const c=await Fl(e);if(c&&c.id){R.value="edit",S.value=!1,$.value=!1,a.value.id=c.id;try{const m=await Te({id:c.id});a.value.patient_id=m.patient_id,N.value=m.phone||"",w.value=m.id_card||"",a.value.phone=C.value?m.phone||"":j(m.phone||""),a.value.id_card=C.value?m.id_card||"":Q(m.id_card||"")}catch(m){console.error("获取详情失败:",m)}}}else await Tl(e);$e("success")}catch(e){console.error("提交失败:",e)}finally{ae.value=!1}}},il=n=>{var e;(e=ee.value)==null||e.openById(n.id,{slipType:"user"})},nl=()=>{var e;if(O.value)return;const n={id:a.value.id,diagnosis_id:a.value.id,appointment_id:0,patient_name:a.value.patient_name,patient_phone:N.value||a.value.phone,patient_gender:a.value.gender,patient_age:a.value.age,case_record:JSON.parse(JSON.stringify(a.value))};(e=ee.value)==null||e.open(n)},De=()=>{var n;(n=le.value)==null||n.resetFields(),a.value={id:"",patient_id:"",patient_name:"",id_card:"",phone:"",gender:1,age:void 0,diagnosis_date:"",diagnosis_type:"",syndrome_type:"",diabetes_type:"",diabetes_discovery_year:"",local_hospital_diagnosis:[],local_hospital_name:"",marital_status:void 0,height:void 0,weight:void 0,region:"",systolic_pressure:void 0,diastolic_pressure:void 0,fasting_blood_sugar:"",appetite:[],water_intake:"",diet_condition:[],weight_change:"",body_feeling:[],sleep_condition:[],eye_condition:[],head_feeling:[],sweat_condition:[],skin_condition:[],urine_condition:[],stool_condition:[],kidney_condition:[],fatty_liver_degree:"",past_history:[],trauma_history:0,surgery_history:0,allergy_history:0,family_history:0,pregnancy_history:0,assistant_id:void 0,symptoms:"",tongue_coating:"",pulse:"",treatment_principle:"",prescription:"",doctor_advice:"",remark:"",current_medications:"",status:1,create_source:"admin",show_card:1,external_userid:""},N.value="",w.value="",ie.value=!1,ne.value=!1,S.value=!1,$.value=!1,O.value=!1,L.value=!1};return Le({open:tl,openViewOnly:ol,refreshCaseList:()=>{var n,e;return(e=(n=Z.value)==null?void 0:n.refresh)==null?void 0:e.call(n)}}),(n,e)=>{const c=Cl,m=cl,A=vl,v=bl,s=gl,_=Vl,g=yl,M=hl,D=kl,z=wl,F=Ul,Y=xl,H=El,K=Pl,k=Rl,x=Ol,E=Nl,sl=fl,T=ml,q=Dl,ul=_l,Ie=Il,rl=Bl;return i(),f("div",Wl,[o(rl,{modelValue:l(L),"onUpdate:modelValue":e[46]||(e[46]=d=>ze(L)?L.value=d:null),size:"60%","before-close":De,"z-index":l(O)?4e3:1500,modal:!0,class:"diagnosis-drawer tcm-diagnosis-drawer"},{header:t(()=>[G("div",Zl,[G("div",ea,[G("h2",la,y(l(Ge)),1),l(O)?(i(),r(c,{key:0,type:"info",effect:"plain",round:"",size:"small",class:"tcm-dd-header__badge"},{default:t(()=>[...e[47]||(e[47]=[u(" 只读 ",-1)])]),_:1})):l(R)==="add"?(i(),r(c,{key:1,type:"success",effect:"plain",round:"",size:"small",class:"tcm-dd-header__badge"},{default:t(()=>[...e[48]||(e[48]=[u(" 新建 ",-1)])]),_:1})):(i(),r(c,{key:2,type:"warning",effect:"plain",round:"",size:"small",class:"tcm-dd-header__badge"},{default:t(()=>[...e[49]||(e[49]=[u(" 编辑 ",-1)])]),_:1}))]),l(a).patient_name||l(a).id?(i(),f("p",aa,[l(a).patient_name?(i(),f("span",ta,y(l(a).patient_name),1)):P("",!0),l(a).id?(i(),f("span",oa,[l(a).patient_name?(i(),f("span",da,"·")):P("",!0),u(" 诊单 "+y(l(a).patient_id||l(a).id),1)])):P("",!0)])):P("",!0)])]),footer:t(()=>[G("div",_a,[o(Ie,{class:"tcm-dd-footer__btn",onClick:De},{default:t(()=>[u(y(l(O)?"关闭":"取消"),1)]),_:1}),!l(O)&&l(V)==="basic"?(i(),r(Ie,{key:0,class:"tcm-dd-footer__btn",type:"primary",onClick:dl,loading:l(ae)},{default:t(()=>[...e[78]||(e[78]=[u(" 保存病历 ",-1)])]),_:1},8,["loading"])):P("",!0)])]),default:t(()=>[o(ul,{modelValue:l(V),"onUpdate:modelValue":e[44]||(e[44]=d=>ze(V)?V.value=d:null),class:"diagnosis-tabs tcm-diagnosis-tabs"},{default:t(()=>[o(T,{label:"病历",name:"basic"},{default:t(()=>[o(sl,{ref_key:"formRef",ref:le,model:l(a),rules:el,"label-width":"160px"},{default:t(()=>[G("fieldset",{disabled:l(O),class:"diagnosis-view-fieldset border-0 min-w-0 p-0 m-0"},[o(m,{"content-position":"left"},{default:t(()=>[...e[50]||(e[50]=[u("基本信息",-1)])]),_:1}),l(R)==="edit"&&l(te)&&!l(B)?(i(),r(A,{key:0,type:"warning",closable:!1,"show-icon":"",class:"mb-3"},{default:t(()=>[l(X)?(i(),f(b,{key:0},[u(" 最近业务订单 #"+y(l(X).id)+" 状态为「"+y(l(X).fulfillment_status_text)+"」,患者基本信息不可修改 ",1)],64)):(i(),f(b,{key:1},[u(" 存在未完成的业务订单,患者基本信息不可修改 ")],64))]),_:1})):P("",!0),o(s,{label:"诊单ID"},{default:t(()=>[o(v,{modelValue:l(a).patient_id,"onUpdate:modelValue":e[0]||(e[0]=d=>l(a).patient_id=d),disabled:"",placeholder:"系统自动生成"},null,8,["modelValue"])]),_:1}),G("fieldset",{disabled:!l(B),class:"diagnosis-patient-basic-fieldset border-0 min-w-0 p-0 m-0"},[o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"姓名",prop:"patient_name"},{default:t(()=>[o(v,{modelValue:l(a).patient_name,"onUpdate:modelValue":e[1]||(e[1]=d=>l(a).patient_name=d),placeholder:"请输入姓名",disabled:!l(B)},null,8,["modelValue","disabled"])]),_:1})]),_:1}),o(_,{span:12},{default:t(()=>[o(s,{label:"身份证号",prop:"id_card"},{default:t(()=>[l(Ae)?(i(),f(b,{key:0},[o(v,{"model-value":l($)?l(w)||"":Q(l(w)||""),readonly:"",placeholder:"点击可查看完整身份证号",maxlength:"18",class:"cursor-pointer phone-mask-toggle",onClick:Ke},null,8,["model-value"]),l(w)&&!l($)?(i(),f("p",sa," 当前为脱敏显示,点击输入框可查看完整号码 ")):P("",!0)],64)):(i(),r(v,{key:1,modelValue:l(a).id_card,"onUpdate:modelValue":e[2]||(e[2]=d=>l(a).id_card=d),placeholder:"请输入身份证号",maxlength:"18",disabled:!l(Ye),onFocus:We,onBlur:Ze},null,8,["modelValue","disabled"]))]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"手机号",prop:"phone"},{default:t(()=>[l(qe)?(i(),f(b,{key:0},[o(v,{"model-value":l(S)?l(N)||"":j(l(N)||""),readonly:"",placeholder:"点击可查看完整手机号",maxlength:"11",class:"cursor-pointer phone-mask-toggle",onClick:He},null,8,["model-value"]),l(N)&&!l(S)?(i(),f("p",ua," 当前为脱敏显示,点击输入框可查看完整号码 ")):P("",!0)],64)):(i(),r(v,{key:1,modelValue:l(a).phone,"onUpdate:modelValue":e[3]||(e[3]=d=>l(a).phone=d),placeholder:"请输入手机号",maxlength:"11",disabled:!l(B),onFocus:je,onBlur:Qe},null,8,["modelValue","disabled"]))]),_:1})]),_:1}),o(_,{span:12},{default:t(()=>[o(s,{label:"性别",prop:"gender"},{default:t(()=>[o(D,{modelValue:l(a).gender,"onUpdate:modelValue":e[4]||(e[4]=d=>l(a).gender=d),disabled:!l(B)},{default:t(()=>[o(M,{label:1},{default:t(()=>[...e[51]||(e[51]=[u("男",-1)])]),_:1}),o(M,{label:0},{default:t(()=>[...e[52]||(e[52]=[u("女",-1)])]),_:1})]),_:1},8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"年龄",prop:"age"},{default:t(()=>[o(z,{modelValue:l(a).age,"onUpdate:modelValue":e[5]||(e[5]=d=>l(a).age=d),min:0,max:150,placeholder:"请输入年龄",class:"w-full",disabled:!l(B),controls:l(B)},null,8,["modelValue","disabled","controls"])]),_:1})]),_:1})]),_:1})],8,na),o(m,{"content-position":"left"},{default:t(()=>[...e[53]||(e[53]=[u("生命体征",-1)])]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:8},{default:t(()=>[o(s,{label:"婚姻状态",prop:"marital_status"},{default:t(()=>[o(Y,{modelValue:l(a).marital_status,"onUpdate:modelValue":e[6]||(e[6]=d=>l(a).marital_status=d),placeholder:"请选择婚姻状态",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},{default:t(()=>[o(F,{label:"未婚",value:0}),o(F,{label:"已婚",value:1}),o(F,{label:"离异",value:2})]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(_,{span:8},{default:t(()=>[o(s,{label:"就诊人身高(cm)",prop:"height"},{default:t(()=>[o(z,{modelValue:l(a).height,"onUpdate:modelValue":e[7]||(e[7]=d=>l(a).height=d),min:0,max:300,placeholder:"请输入身高",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(_,{span:8},{default:t(()=>[o(s,{label:"体重(kg)",prop:"weight"},{default:t(()=>[o(z,{modelValue:l(a).weight,"onUpdate:modelValue":e[8]||(e[8]=d=>l(a).weight=d),min:0,max:500,step:.1,placeholder:"请输入体重",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:8},{default:t(()=>[o(s,{label:"地区",prop:"region"},{default:t(()=>[o(v,{modelValue:l(a).region,"onUpdate:modelValue":e[9]||(e[9]=d=>l(a).region=d),placeholder:"请输入地区"},null,8,["modelValue"])]),_:1})]),_:1}),o(_,{span:8},{default:t(()=>[o(s,{label:"就诊人血压(高压mmHg)",prop:"systolic_pressure"},{default:t(()=>[o(z,{modelValue:l(a).systolic_pressure,"onUpdate:modelValue":e[10]||(e[10]=d=>l(a).systolic_pressure=d),min:0,max:250,placeholder:"请输入高压",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(_,{span:8},{default:t(()=>[o(s,{label:"就诊人血压(低压mmHg)",prop:"diastolic_pressure"},{default:t(()=>[o(z,{modelValue:l(a).diastolic_pressure,"onUpdate:modelValue":e[11]||(e[11]=d=>l(a).diastolic_pressure=d),min:0,max:150,placeholder:"请输入低压",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:8},{default:t(()=>[o(s,{label:"空腹血糖(mmol/L)",prop:"fasting_blood_sugar"},{default:t(()=>[o(v,{modelValue:l(a).fasting_blood_sugar,"onUpdate:modelValue":e[12]||(e[12]=d=>l(a).fasting_blood_sugar=d),placeholder:"请输入空腹血糖,如:8.5 或 8-9",maxlength:"20",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"诊断类型",prop:"diagnosis_type"},{default:t(()=>[o(Y,{modelValue:l(a).diagnosis_type,"onUpdate:modelValue":e[13]||(e[13]=d=>l(a).diagnosis_type=d),placeholder:"请选择诊断类型",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},{default:t(()=>[(i(!0),f(b,null,U(l(_e),d=>(i(),r(F,{key:d.value,label:d.name,value:d.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"状态",prop:"status"},{default:t(()=>[o(D,{modelValue:l(a).status,"onUpdate:modelValue":e[14]||(e[14]=d=>l(a).status=d)},{default:t(()=>[o(M,{label:1},{default:t(()=>[...e[54]||(e[54]=[u("启用",-1)])]),_:1}),o(M,{label:0},{default:t(()=>[...e[55]||(e[55]=[u("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(_,{span:12},{default:t(()=>[o(s,{label:"渠道来源",prop:"create_source"},{default:t(()=>[o(Y,{modelValue:l(a).create_source,"onUpdate:modelValue":e[15]||(e[15]=d=>l(a).create_source=d),placeholder:"请选择渠道来源",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},{default:t(()=>[(i(),f(b,null,U(Xe,d=>o(F,{key:d.value,label:d.label,value:d.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"统计端就诊卡",prop:"show_card"},{default:t(()=>[o(H,{modelValue:l(a).show_card,"onUpdate:modelValue":e[16]||(e[16]=d=>l(a).show_card=d),"active-value":1,"inactive-value":0,"active-text":"显示","inactive-text":"隐藏","inline-prompt":""},null,8,["modelValue"]),e[56]||(e[56]=G("span",{class:"form-tips ml-3"}," 关闭后,该就诊卡将不会出现在小程序统计端 ",-1))]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"在用药物",prop:"current_medications"},{default:t(()=>[o(v,{modelValue:l(a).current_medications,"onUpdate:modelValue":e[17]||(e[17]=d=>l(a).current_medications=d),type:"textarea",rows:3,placeholder:"请填写患者当前正在使用的药物(如降压药、降糖药等),多种请换行或顿号分隔",maxlength:"2000","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(m,{"content-position":"left"},{default:t(()=>[...e[57]||(e[57]=[u("主诉",-1)])]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"当地医院诊断日期",prop:"diagnosis_date"},{default:t(()=>[o(K,{modelValue:l(a).diagnosis_date,"onUpdate:modelValue":e[18]||(e[18]=d=>l(a).diagnosis_date=d),type:"date",placeholder:"请选择诊断日期","value-format":"YYYY-MM-DD",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},null,8,["modelValue"])]),_:1})]),_:1}),o(_,{span:12},{default:t(()=>[o(s,{label:"发现糖尿病患病史",prop:"diabetes_discovery_year"},{default:t(()=>[o(v,{modelValue:l(a).diabetes_discovery_year,"onUpdate:modelValue":e[19]||(e[19]=d=>l(a).diabetes_discovery_year=d),clearable:"",maxlength:"50","show-word-limit":"",placeholder:"可填数字或文字,如:5、1年、半年",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(s,{label:"当地医院诊断结果",prop:"local_hospital_diagnosis",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).local_hospital_diagnosis,"onUpdate:modelValue":e[20]||(e[20]=d=>l(a).local_hospital_diagnosis=d)},{default:t(()=>[o(k,{label:"糖尿病"},{default:t(()=>[...e[58]||(e[58]=[u("糖尿病",-1)])]),_:1}),o(k,{label:"消渴病"},{default:t(()=>[...e[59]||(e[59]=[u("消渴病",-1)])]),_:1}),o(k,{label:"糖尿病前期"},{default:t(()=>[...e[60]||(e[60]=[u("糖尿病前期",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"当地就诊医院名称",prop:"local_hospital_name"},{default:t(()=>[o(v,{modelValue:l(a).local_hospital_name,"onUpdate:modelValue":e[21]||(e[21]=d=>l(a).local_hospital_name=d),placeholder:"请输入当地就诊医院名称(不能填写当地、本地、互联网等关键词)"},null,8,["modelValue"])]),_:1}),o(m,{"content-position":"left"},{default:t(()=>[...e[61]||(e[61]=[u("现病史",-1)])]),_:1}),o(g,{gutter:20},{default:t(()=>[o(s,{label:"口腔感觉",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).appetite,"onUpdate:modelValue":e[22]||(e[22]=d=>l(a).appetite=d)},{default:t(()=>[(i(!0),f(b,null,U(l(fe),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:20},{default:t(()=>[o(s,{label:"每日饮水量",class:"compact-form-item"},{default:t(()=>[o(D,{modelValue:l(a).water_intake,"onUpdate:modelValue":e[23]||(e[23]=d=>l(a).water_intake=d)},{default:t(()=>[o(E,{label:""},{default:t(()=>[...e[62]||(e[62]=[u("无",-1)])]),_:1}),(i(!0),f(b,null,U(l(ce),d=>(i(),r(E,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"近一个月体重变化",class:"compact-form-item"},{default:t(()=>[o(D,{modelValue:l(a).weight_change,"onUpdate:modelValue":e[24]||(e[24]=d=>l(a).weight_change=d)},{default:t(()=>[o(E,{label:""},{default:t(()=>[...e[63]||(e[63]=[u("无",-1)])]),_:1}),(i(!0),f(b,null,U(l(ge),d=>(i(),r(E,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"脂肪肝程度",class:"compact-form-item"},{default:t(()=>[o(D,{modelValue:l(a).fatty_liver_degree,"onUpdate:modelValue":e[25]||(e[25]=d=>l(a).fatty_liver_degree=d)},{default:t(()=>[o(E,{label:""},{default:t(()=>[...e[64]||(e[64]=[u("无",-1)])]),_:1}),(i(!0),f(b,null,U(l(Pe),d=>(i(),r(E,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(s,{label:"饮食情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).diet_condition,"onUpdate:modelValue":e[26]||(e[26]=d=>l(a).diet_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(ve),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"肢体感觉",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).body_feeling,"onUpdate:modelValue":e[27]||(e[27]=d=>l(a).body_feeling=d)},{default:t(()=>[(i(!0),f(b,null,U(l(be),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"睡眠情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).sleep_condition,"onUpdate:modelValue":e[28]||(e[28]=d=>l(a).sleep_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(ye),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"眼睛情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).eye_condition,"onUpdate:modelValue":e[29]||(e[29]=d=>l(a).eye_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(Ve),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"头部感觉",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).head_feeling,"onUpdate:modelValue":e[30]||(e[30]=d=>l(a).head_feeling=d)},{default:t(()=>[(i(!0),f(b,null,U(l(ke),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"出汗情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).sweat_condition,"onUpdate:modelValue":e[31]||(e[31]=d=>l(a).sweat_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(he),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"皮肤情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).skin_condition,"onUpdate:modelValue":e[32]||(e[32]=d=>l(a).skin_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(we),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"小便情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).urine_condition,"onUpdate:modelValue":e[33]||(e[33]=d=>l(a).urine_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(xe),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"大便情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).stool_condition,"onUpdate:modelValue":e[34]||(e[34]=d=>l(a).stool_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(Ue),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"腰肾情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).kidney_condition,"onUpdate:modelValue":e[35]||(e[35]=d=>l(a).kidney_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(Ee),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"其他补充",prop:"symptoms"},{default:t(()=>[o(v,{modelValue:l(a).symptoms,"onUpdate:modelValue":e[36]||(e[36]=d=>l(a).symptoms=d),type:"textarea",rows:3,placeholder:"请输入症状"},null,8,["modelValue"])]),_:1}),o(m,{"content-position":"left"},{default:t(()=>[...e[65]||(e[65]=[u("既往史",-1)])]),_:1}),o(s,{label:"",prop:"past_history",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).past_history,"onUpdate:modelValue":e[37]||(e[37]=d=>l(a).past_history=d)},{default:t(()=>[(i(!0),f(b,null,U(l(me),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(m,{"content-position":"left"},{default:t(()=>[...e[66]||(e[66]=[u("其他病史",-1)])]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:8},{default:t(()=>[o(s,{label:"外伤史"},{default:t(()=>[o(D,{modelValue:l(a).trauma_history,"onUpdate:modelValue":e[38]||(e[38]=d=>l(a).trauma_history=d)},{default:t(()=>[o(E,{label:1},{default:t(()=>[...e[67]||(e[67]=[u("有",-1)])]),_:1}),o(E,{label:0},{default:t(()=>[...e[68]||(e[68]=[u("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(_,{span:8},{default:t(()=>[o(s,{label:"手术史"},{default:t(()=>[o(D,{modelValue:l(a).surgery_history,"onUpdate:modelValue":e[39]||(e[39]=d=>l(a).surgery_history=d)},{default:t(()=>[o(E,{label:1},{default:t(()=>[...e[69]||(e[69]=[u("有",-1)])]),_:1}),o(E,{label:0},{default:t(()=>[...e[70]||(e[70]=[u("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(_,{span:8},{default:t(()=>[o(s,{label:"过敏史"},{default:t(()=>[o(D,{modelValue:l(a).allergy_history,"onUpdate:modelValue":e[40]||(e[40]=d=>l(a).allergy_history=d)},{default:t(()=>[o(E,{label:1},{default:t(()=>[...e[71]||(e[71]=[u("有",-1)])]),_:1}),o(E,{label:0},{default:t(()=>[...e[72]||(e[72]=[u("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"家族病史"},{default:t(()=>[o(D,{modelValue:l(a).family_history,"onUpdate:modelValue":e[41]||(e[41]=d=>l(a).family_history=d)},{default:t(()=>[o(E,{label:1},{default:t(()=>[...e[73]||(e[73]=[u("有",-1)])]),_:1}),o(E,{label:0},{default:t(()=>[...e[74]||(e[74]=[u("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(_,{span:12},{default:t(()=>[o(s,{label:"妊娠哺乳史"},{default:t(()=>[o(D,{modelValue:l(a).pregnancy_history,"onUpdate:modelValue":e[42]||(e[42]=d=>l(a).pregnancy_history=d)},{default:t(()=>[o(E,{label:1},{default:t(()=>[...e[75]||(e[75]=[u("有",-1)])]),_:1}),o(E,{label:0},{default:t(()=>[...e[76]||(e[76]=[u("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(m,{"content-position":"left"},{default:t(()=>[...e[77]||(e[77]=[u("诊断信息",-1)])]),_:1}),o(s,{label:"病史补充",prop:"remark"},{default:t(()=>[o(v,{modelValue:l(a).remark,"onUpdate:modelValue":e[43]||(e[43]=d=>l(a).remark=d),type:"textarea",rows:2,placeholder:"请输入病史补充"},null,8,["modelValue"])]),_:1})],8,ia)]),_:1},8,["model"])]),_:1}),o(T,{label:"医生备注",name:"doctorNote",disabled:!l(a).id,lazy:""},{default:t(()=>[l(a).id?(i(),f("div",ra,[o(Hl,{notes:l(de),"diagnosis-id":Number(l(a).id),readonly:l(O),onRefresh:re},null,8,["notes","diagnosis-id","readonly"])])):(i(),r(q,{key:1,description:"请先保存诊单后查看"}))]),_:1},8,["disabled"]),l(ue)?(i(),r(T,{key:0,label:"日常记录",name:"daily",disabled:!l(a).id,lazy:""},{default:t(()=>[l(a).id?(i(),r(ql,{key:0,"diagnosis-id":Number(l(a).id),"patient-id":Number(l(a).patient_id),age:l(a).age,"patient-name":l(a).patient_name,"read-only":l(O)},null,8,["diagnosis-id","patient-id","age","patient-name","read-only"])):(i(),r(q,{key:1,description:"请先保存诊单后查看"}))]),_:1},8,["disabled"])):P("",!0),l(I)(["tcm.diagnosis/chufang"])?(i(),r(T,{key:1,label:"处方",name:"bingli",disabled:!l(a).id},{default:t(()=>[l(a).id?(i(),f("div",pa,[o(Al,{ref_key:"caseRecordListRef",ref:Z,"diagnosis-id":Number(l(a).id),"read-only":l(O),onView:il,onOpenPrescription:nl},null,8,["diagnosis-id","read-only"])])):(i(),r(q,{key:1,description:"请先保存诊单,开方后病历将在此显示"}))]),_:1},8,["disabled"])):P("",!0),l(I)(["tcm.diagnosis/patientOrders"])?(i(),r(T,{key:2,label:"业务订单",name:"patientOrders",disabled:!l(a).id,lazy:""},{default:t(()=>[l(a).id?(i(),r(Kl,{key:0,"diagnosis-id":Number(l(a).id),"patient-id":Number(l(a).patient_id)||0},null,8,["diagnosis-id","patient-id"])):(i(),r(q,{key:1,description:"请先保存诊单后查看业务订单"}))]),_:1},8,["disabled"])):P("",!0),l(I)(["tcm.diagnosis/huifang"])?(i(),r(T,{key:3,label:"视频录制回放记录",name:"visit",disabled:!l(a).id,lazy:""},{default:t(()=>[l(a).id?(i(),r(Yl,{key:0,ref_key:"callRecordPanelRef",ref:Me,"diagnosis-id":Number(l(a).id)},null,8,["diagnosis-id"])):(i(),r(q,{key:1,description:"请先保存诊单后再查看视频录制回放记录"}))]),_:1},8,["disabled"])):P("",!0),l(I)(["tcm.diagnosis/chat"])?(i(),r(T,{key:4,label:"聊天记录",name:"chat",disabled:!l(a).id,lazy:""},{default:t(()=>[l(V)==="chat"&&l(a).id?(i(),r(Gl,{key:0,"diagnosis-id":Number(l(a).id)},null,8,["diagnosis-id"])):l(a).id?P("",!0):(i(),r(q,{key:1,description:"请先保存诊单后再查看聊天记录"}))]),_:1},8,["disabled"])):P("",!0),l(I)(["tcm.diagnosis/assign"])||l(I)(["tcm.diagnosis/detail"])?(i(),r(T,{key:5,label:"指派医助记录",name:"assignLog",disabled:!l(a).id,lazy:""},{default:t(()=>[l(a).id?(i(),r(Jl,{key:0,"diagnosis-id":Number(l(a).id)},null,8,["diagnosis-id"])):(i(),r(q,{key:1,description:"请先保存诊单后再查看指派记录"}))]),_:1},8,["disabled"])):P("",!0),l(I)(["doctor.appointment/lists"])?(i(),r(T,{key:6,label:"挂号记录",name:"appointmentRecords",disabled:!l(a).id,lazy:""},{default:t(()=>[l(a).id?(i(),r(Xl,{key:0,"diagnosis-id":Number(l(a).id)},null,8,["diagnosis-id"])):(i(),r(q,{key:1,description:"请先保存诊单后再查看挂号记录"}))]),_:1},8,["disabled"])):P("",!0)]),_:1},8,["modelValue"]),o(jl,{ref_key:"prescriptionRef",ref:ee,onSuccess:e[45]||(e[45]=d=>{var W,Ce;return(Ce=(W=l(Z))==null?void 0:W.refresh)==null?void 0:Ce.call(W)})},null,512)]),_:1},8,["modelValue","z-index"])])}}}),et=Ml(ma,[["__scopeId","data-v-60b2b4d4"]]);export{et as default};
+import{o as pl,R as Be,M as p,q as i,r as f,v as o,D as t,Y as _l,C as ze,u as l,X as ml,b9 as fl,s as G,bD as cl,L as u,O as r,bm as vl,F as b,T as y,P,b6 as gl,b7 as bl,c8 as yl,c9 as Vl,bc as kl,bo as hl,J as wl,bf as xl,bg as Ul,G as U,I as El,be as Pl,cA as Ol,di as Rl,bb as Nl,bB as Dl,K as Il,bk as Cl,B as Bl,p as J,E as se}from"./.pnpm-BuKxIMgQ.js";import{$ as zl,ac as Fe,ae as Fl,ab as Te,af as Tl,ad as Ll}from"./tcm-BZvWmp4G.js";import{e as Sl,u as $l,n as h,_ as Ml}from"./index-BZAvl557.js";import{h as I}from"./perm-DZClfK-E.js";import ql from"./DailyMatrix-BiBmGsrr.js";import Al from"./CaseRecordList-DJjK2TXG.js";import Yl from"./CallRecordPanel-CPY0fOwN.js";import Gl from"./ImChatRecordPanel-BcYkdTBh.js";import Jl from"./AssignLogPanel-DjXUNK0v.js";import Xl from"./AppointmentRecordPanel-CCHQCOJq.js";import Hl from"./NoteTimeline-CWaZsPW3.js";/* empty css */import Kl from"./PatientOrderList-CuVwKAbH.js";import jl from"./index-5pGKAZvg.js";import{g as Ql}from"./patient-QijZeiSI.js";import"./picker-C-hBLp_q.js";import"./index-BARAiw4K.js";import"./index-DO2zctlZ.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./index-BYpT7Ezr.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./usePaging-DNtxCypz.js";import"./DiagnosisTodoList-D0asUCAQ.js";import"./blood-thresholds-CJ1fqMjh.js";import"./RecordingPlaybackBlock-lcAipGfC.js";import"./RecordingVideoPlayer-Cp0NJ94z.js";import"./dayjs-7f8aMLm8.js";import"./im-business-message-parse-DZRHjzTY.js";import"./doctor-DlXZd1P5.js";import"./PrescriptionOrderDetailDrawer-BaDbxBr8.js";import"./prescription-order-utils-CXfs2Bra.js";import"./index-DC7zt1QG.js";import"./medicine-TIvfHuXX.js";import"./diabetes-discovery-display-B_wmGXQJ.js";import"./index-DwZGHaWR.js";const Wl={class:"edit-drawer"},Zl={class:"tcm-dd-header"},ea={class:"tcm-dd-header__row"},la={class:"tcm-dd-header__title"},aa={key:0,class:"tcm-dd-header__sub"},ta={key:0,class:"tcm-dd-header__name"},oa={key:1,class:"tcm-dd-header__id"},da={key:0,class:"tcm-dd-header__sep"},ia=["disabled"],na=["disabled"],sa={key:0,class:"text-xs text-gray-400 mt-1"},ua={key:0,class:"text-xs text-gray-400 mt-1"},ra={key:0,class:"p-4"},pa={key:0,class:"bingli-tab-content"},_a={class:"tcm-dd-footer"},ma=pl({__name:"edit",emits:["success"],setup(fa,{expose:Le,emit:Se}){const $e=Se;Sl();const Z=p(),Me=p(null),ee=p(),L=p(!1),O=p(!1),le=p(),R=p("add"),ae=p(!1),C=J(()=>I(["tcm.diagnosis/phonePlain"])),ue=J(()=>I(["tcm.diagnosis/dailyRecord"])),te=p(!1),oe=p(!0),X=p(null),B=J(()=>O.value?!1:R.value==="add"?!0:oe.value),qe=J(()=>R.value!=="edit"?!1:B.value?!C.value:!0),S=p(!1),Ae=J(()=>R.value!=="edit"||!w.value?!1:B.value?!C.value:!0),Ye=J(()=>B.value?R.value==="add"||!w.value?!0:C.value:!1),$=p(!1),V=p("basic"),Ge=J(()=>O.value?"诊单详情":R.value==="add"?"新增诊单":"编辑诊单"),de=p([]),re=async()=>{if(a.value.id)try{de.value=await Ql({diagnosis_id:Number(a.value.id)})||[]}catch{de.value=[]}},pe=p([]),Je=async()=>{if(a.value.id)try{pe.value=await zl({diagnosis_id:Number(a.value.id)})||[]}catch{pe.value=[]}};Be(()=>V.value,async n=>{n==="doctorNote"&&a.value.id&&await re(),n==="trackingNote"&&a.value.id&&await Je()}),Be([L,V],()=>{L.value&&(V.value==="chat"&&!I(["tcm.diagnosis/chat"])&&(V.value="basic"),V.value==="visit"&&!I(["tcm.diagnosis/huifang"])&&(V.value="basic"),V.value==="assignLog"&&!I(["tcm.diagnosis/assign"])&&!I(["tcm.diagnosis/detail"])&&(V.value="basic"),V.value==="appointmentRecords"&&!I(["doctor.appointment/lists"])&&(V.value="basic"),V.value==="daily"&&!ue.value&&(V.value="basic"))});const a=p({id:"",patient_id:"",patient_name:"",id_card:"",phone:"",gender:1,age:void 0,diagnosis_date:"",diagnosis_type:"",syndrome_type:"",diabetes_type:"",diabetes_discovery_year:"",local_hospital_diagnosis:[],local_hospital_name:"",marital_status:void 0,height:void 0,weight:void 0,region:"",systolic_pressure:void 0,diastolic_pressure:void 0,fasting_blood_sugar:"",appetite:[],water_intake:"",diet_condition:[],weight_change:"",body_feeling:[],sleep_condition:[],eye_condition:[],head_feeling:[],sweat_condition:[],skin_condition:[],urine_condition:[],stool_condition:[],kidney_condition:[],fatty_liver_degree:"",past_history:[],trauma_history:0,surgery_history:0,allergy_history:0,family_history:0,pregnancy_history:0,assistant_id:void 0,symptoms:"",tongue_coating:"",pulse:"",treatment_principle:"",prescription:"",doctor_advice:"",remark:"",current_medications:"",status:1,create_source:"admin",show_card:1,external_userid:""}),Xe=[{value:"",label:"未设置"},{value:"admin",label:"后台建档"},{value:"mnp",label:"小程序完整建档"},{value:"mnp_daily",label:"小程序手机号快捷建档"}],N=p(""),w=p(""),ie=p(!1),ne=p(!1),j=n=>!n||n.length<11?n:n.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),He=()=>{N.value&&(S.value=!S.value)},Ke=()=>{w.value&&($.value=!$.value)},Q=n=>n&&(n.length===15?n.replace(/(\d{6})\d{5}(\d{4})/,"$1*****$2"):n.length===18?n.replace(/(\d{6})\d{8}(\d{4})/,"$1********$2"):n),je=()=>{if(ie.value=!0,!!N.value){if(C.value){a.value.phone=N.value;return}R.value==="add"&&(a.value.phone=N.value)}},Qe=async()=>{if(ie.value=!1,C.value){if(a.value.phone&&a.value.phone.length===11&&(N.value=a.value.phone,/^1[3-9]\d{9}$/.test(a.value.phone)))try{const n=await Fe({phone:a.value.phone,id:a.value.id||""});n.exists&&se.warning(n.message)}catch(n){console.error("检查手机号失败:",n)}return}if(R.value==="add"&&a.value.phone&&a.value.phone.length===11){if(N.value=a.value.phone,/^1[3-9]\d{9}$/.test(a.value.phone))try{const n=await Fe({phone:a.value.phone,id:a.value.id||""});n.exists&&se.warning(n.message)}catch(n){console.error("检查手机号失败:",n)}a.value.phone=j(a.value.phone)}},We=()=>{if(ne.value=!0,!!w.value){if(C.value){a.value.id_card=w.value;return}R.value==="add"&&(a.value.id_card=w.value)}},Ze=async()=>{ne.value=!1;const n=async e=>{if(/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e)){const c=parseInt(e.substring(6,10)),m=parseInt(e.substring(10,12)),A=parseInt(e.substring(12,14)),v=new Date;let s=v.getFullYear()-c;(v.getMonth()+1{const m=w.value||e;if(!m){c();return}if(!/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(m)){c(new Error("身份证号格式不正确"));return}c()},trigger:"blur"}],phone:[{required:!0,validator:(n,e,c)=>{const m=N.value||e;if(!m){c(new Error("请输入手机号"));return}if(!/^1[3-9]\d{9}$/.test(m)){c(new Error("手机号格式不正确"));return}c()},trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],age:[{required:!0,message:"请输入年龄",trigger:"blur"}],fasting_blood_sugar:[{required:!0,message:"请输入空腹血糖",trigger:"blur"}],diagnosis_type:[{required:!0,message:"请选择诊断类型",trigger:"change"}],local_hospital_name:[{required:!0,message:"请输入当地就诊医院名称",trigger:"blur"}],diabetes_discovery_year:[{max:50,message:"最多50个字符",trigger:"blur"}]},_e=p([]),ll=p([]),al=p([]),me=p([]),fe=p([]),ce=p([]),ve=p([]),ge=p([]),be=p([]),ye=p([]),Ve=p([]),ke=p([]),he=p([]),we=p([]),xe=p([]),Ue=p([]),Ee=p([]),Pe=p([]),Oe=async()=>{try{const[n,e,c,m,A,v,s,_,g,M,D,z,F,Y,H,K,k,x]=await Promise.all([h({type:"diagnosis_type"}),h({type:"syndrome_type"}),h({type:"diabetes_type"}),h({type:"past_history"}),h({type:"appetite"}),h({type:"water_intake"}),h({type:"diet_condition"}),h({type:"weight_change"}),h({type:"body_feeling"}),h({type:"sleep_condition"}),h({type:"eye_condition"}),h({type:"head_feeling"}),h({type:"sweat_condition"}),h({type:"skin_condition"}),h({type:"urine_condition"}),h({type:"stool_condition"}),h({type:"kidney_condition"}),h({type:"fatty_liver_degree"})]);_e.value=(n==null?void 0:n.diagnosis_type)||[],ll.value=(e==null?void 0:e.syndrome_type)||[],al.value=(c==null?void 0:c.diabetes_type)||[],me.value=(m==null?void 0:m.past_history)||[],fe.value=(A==null?void 0:A.appetite)||[],ce.value=(v==null?void 0:v.water_intake)||[],ve.value=(s==null?void 0:s.diet_condition)||[],ge.value=(_==null?void 0:_.weight_change)||[],be.value=(g==null?void 0:g.body_feeling)||[],ye.value=(M==null?void 0:M.sleep_condition)||[],Ve.value=(D==null?void 0:D.eye_condition)||[],ke.value=(z==null?void 0:z.head_feeling)||[],he.value=(F==null?void 0:F.sweat_condition)||[],we.value=(Y==null?void 0:Y.skin_condition)||[],xe.value=(H==null?void 0:H.urine_condition)||[],Ue.value=(K==null?void 0:K.stool_condition)||[],Ee.value=(k==null?void 0:k.kidney_condition)||[],Pe.value=(x==null?void 0:x.fatty_liver_degree)||[]}catch(n){console.error("获取字典数据失败:",n)}};async function Re(n){const e=await Te({id:n});N.value=e.phone||"",w.value=e.id_card||"",te.value=!!e.patient_basic_locked,oe.value=e.can_edit_patient_basic!==!1,X.value=e.latest_prescription_order??null,e.phone=C.value?e.phone||"":j(e.phone||""),e.id_card=C.value?e.id_card||"":Q(e.id_card||""),a.value=e,a.value.create_source=e.create_source??"",a.value.show_card=Number(e.show_card)===0?0:1;const c=e.diabetes_discovery_year;a.value.diabetes_discovery_year=c==null||c===""?"":String(c)}const Ne=()=>{te.value=!1,oe.value=!0,X.value=null},tl=async(n,e)=>{var c;if(O.value=!1,R.value=n,L.value=!0,V.value="basic",S.value=!1,$.value=!1,Ne(),await Oe(),n==="edit"&&e)await Re(e);else if(n==="add"){const m=$l();a.value.assistant_id=((c=m.userInfo)==null?void 0:c.id)||"",a.value.diagnosis_type="follow_up"}},ol=async n=>{n&&(O.value=!0,R.value="edit",L.value=!0,V.value="basic",S.value=!1,$.value=!1,Ne(),await Oe(),await Re(n))},dl=async()=>{var n;if(!O.value){await((n=le.value)==null?void 0:n.validate()),ae.value=!0;try{const e={...a.value,phone:N.value||a.value.phone,id_card:w.value||a.value.id_card};if(R.value==="add"){const c=await Fl(e);if(c&&c.id){R.value="edit",S.value=!1,$.value=!1,a.value.id=c.id;try{const m=await Te({id:c.id});a.value.patient_id=m.patient_id,N.value=m.phone||"",w.value=m.id_card||"",a.value.phone=C.value?m.phone||"":j(m.phone||""),a.value.id_card=C.value?m.id_card||"":Q(m.id_card||"")}catch(m){console.error("获取详情失败:",m)}}}else await Tl(e);$e("success")}catch(e){console.error("提交失败:",e)}finally{ae.value=!1}}},il=n=>{var e;(e=ee.value)==null||e.openById(n.id,{slipType:"user"})},nl=()=>{var e;if(O.value)return;const n={id:a.value.id,diagnosis_id:a.value.id,appointment_id:0,patient_name:a.value.patient_name,patient_phone:N.value||a.value.phone,patient_gender:a.value.gender,patient_age:a.value.age,case_record:JSON.parse(JSON.stringify(a.value))};(e=ee.value)==null||e.open(n)},De=()=>{var n;(n=le.value)==null||n.resetFields(),a.value={id:"",patient_id:"",patient_name:"",id_card:"",phone:"",gender:1,age:void 0,diagnosis_date:"",diagnosis_type:"",syndrome_type:"",diabetes_type:"",diabetes_discovery_year:"",local_hospital_diagnosis:[],local_hospital_name:"",marital_status:void 0,height:void 0,weight:void 0,region:"",systolic_pressure:void 0,diastolic_pressure:void 0,fasting_blood_sugar:"",appetite:[],water_intake:"",diet_condition:[],weight_change:"",body_feeling:[],sleep_condition:[],eye_condition:[],head_feeling:[],sweat_condition:[],skin_condition:[],urine_condition:[],stool_condition:[],kidney_condition:[],fatty_liver_degree:"",past_history:[],trauma_history:0,surgery_history:0,allergy_history:0,family_history:0,pregnancy_history:0,assistant_id:void 0,symptoms:"",tongue_coating:"",pulse:"",treatment_principle:"",prescription:"",doctor_advice:"",remark:"",current_medications:"",status:1,create_source:"admin",show_card:1,external_userid:""},N.value="",w.value="",ie.value=!1,ne.value=!1,S.value=!1,$.value=!1,O.value=!1,L.value=!1};return Le({open:tl,openViewOnly:ol,refreshCaseList:()=>{var n,e;return(e=(n=Z.value)==null?void 0:n.refresh)==null?void 0:e.call(n)}}),(n,e)=>{const c=Cl,m=cl,A=vl,v=bl,s=gl,_=Vl,g=yl,M=hl,D=kl,z=wl,F=Ul,Y=xl,H=El,K=Pl,k=Rl,x=Ol,E=Nl,sl=fl,T=ml,q=Dl,ul=_l,Ie=Il,rl=Bl;return i(),f("div",Wl,[o(rl,{modelValue:l(L),"onUpdate:modelValue":e[46]||(e[46]=d=>ze(L)?L.value=d:null),size:"60%","before-close":De,"z-index":l(O)?4e3:1500,modal:!0,class:"diagnosis-drawer tcm-diagnosis-drawer"},{header:t(()=>[G("div",Zl,[G("div",ea,[G("h2",la,y(l(Ge)),1),l(O)?(i(),r(c,{key:0,type:"info",effect:"plain",round:"",size:"small",class:"tcm-dd-header__badge"},{default:t(()=>[...e[47]||(e[47]=[u(" 只读 ",-1)])]),_:1})):l(R)==="add"?(i(),r(c,{key:1,type:"success",effect:"plain",round:"",size:"small",class:"tcm-dd-header__badge"},{default:t(()=>[...e[48]||(e[48]=[u(" 新建 ",-1)])]),_:1})):(i(),r(c,{key:2,type:"warning",effect:"plain",round:"",size:"small",class:"tcm-dd-header__badge"},{default:t(()=>[...e[49]||(e[49]=[u(" 编辑 ",-1)])]),_:1}))]),l(a).patient_name||l(a).id?(i(),f("p",aa,[l(a).patient_name?(i(),f("span",ta,y(l(a).patient_name),1)):P("",!0),l(a).id?(i(),f("span",oa,[l(a).patient_name?(i(),f("span",da,"·")):P("",!0),u(" 诊单 "+y(l(a).patient_id||l(a).id),1)])):P("",!0)])):P("",!0)])]),footer:t(()=>[G("div",_a,[o(Ie,{class:"tcm-dd-footer__btn",onClick:De},{default:t(()=>[u(y(l(O)?"关闭":"取消"),1)]),_:1}),!l(O)&&l(V)==="basic"?(i(),r(Ie,{key:0,class:"tcm-dd-footer__btn",type:"primary",onClick:dl,loading:l(ae)},{default:t(()=>[...e[78]||(e[78]=[u(" 保存病历 ",-1)])]),_:1},8,["loading"])):P("",!0)])]),default:t(()=>[o(ul,{modelValue:l(V),"onUpdate:modelValue":e[44]||(e[44]=d=>ze(V)?V.value=d:null),class:"diagnosis-tabs tcm-diagnosis-tabs"},{default:t(()=>[o(T,{label:"病历",name:"basic"},{default:t(()=>[o(sl,{ref_key:"formRef",ref:le,model:l(a),rules:el,"label-width":"160px"},{default:t(()=>[G("fieldset",{disabled:l(O),class:"diagnosis-view-fieldset border-0 min-w-0 p-0 m-0"},[o(m,{"content-position":"left"},{default:t(()=>[...e[50]||(e[50]=[u("基本信息",-1)])]),_:1}),l(R)==="edit"&&l(te)&&!l(B)?(i(),r(A,{key:0,type:"warning",closable:!1,"show-icon":"",class:"mb-3"},{default:t(()=>[l(X)?(i(),f(b,{key:0},[u(" 最近业务订单 #"+y(l(X).id)+" 状态为「"+y(l(X).fulfillment_status_text)+"」,患者基本信息不可修改 ",1)],64)):(i(),f(b,{key:1},[u(" 存在未完成的业务订单,患者基本信息不可修改 ")],64))]),_:1})):P("",!0),o(s,{label:"诊单ID"},{default:t(()=>[o(v,{modelValue:l(a).patient_id,"onUpdate:modelValue":e[0]||(e[0]=d=>l(a).patient_id=d),disabled:"",placeholder:"系统自动生成"},null,8,["modelValue"])]),_:1}),G("fieldset",{disabled:!l(B),class:"diagnosis-patient-basic-fieldset border-0 min-w-0 p-0 m-0"},[o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"姓名",prop:"patient_name"},{default:t(()=>[o(v,{modelValue:l(a).patient_name,"onUpdate:modelValue":e[1]||(e[1]=d=>l(a).patient_name=d),placeholder:"请输入姓名",disabled:!l(B)},null,8,["modelValue","disabled"])]),_:1})]),_:1}),o(_,{span:12},{default:t(()=>[o(s,{label:"身份证号",prop:"id_card"},{default:t(()=>[l(Ae)?(i(),f(b,{key:0},[o(v,{"model-value":l($)?l(w)||"":Q(l(w)||""),readonly:"",placeholder:"点击可查看完整身份证号",maxlength:"18",class:"cursor-pointer phone-mask-toggle",onClick:Ke},null,8,["model-value"]),l(w)&&!l($)?(i(),f("p",sa," 当前为脱敏显示,点击输入框可查看完整号码 ")):P("",!0)],64)):(i(),r(v,{key:1,modelValue:l(a).id_card,"onUpdate:modelValue":e[2]||(e[2]=d=>l(a).id_card=d),placeholder:"请输入身份证号",maxlength:"18",disabled:!l(Ye),onFocus:We,onBlur:Ze},null,8,["modelValue","disabled"]))]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"手机号",prop:"phone"},{default:t(()=>[l(qe)?(i(),f(b,{key:0},[o(v,{"model-value":l(S)?l(N)||"":j(l(N)||""),readonly:"",placeholder:"点击可查看完整手机号",maxlength:"11",class:"cursor-pointer phone-mask-toggle",onClick:He},null,8,["model-value"]),l(N)&&!l(S)?(i(),f("p",ua," 当前为脱敏显示,点击输入框可查看完整号码 ")):P("",!0)],64)):(i(),r(v,{key:1,modelValue:l(a).phone,"onUpdate:modelValue":e[3]||(e[3]=d=>l(a).phone=d),placeholder:"请输入手机号",maxlength:"11",disabled:!l(B),onFocus:je,onBlur:Qe},null,8,["modelValue","disabled"]))]),_:1})]),_:1}),o(_,{span:12},{default:t(()=>[o(s,{label:"性别",prop:"gender"},{default:t(()=>[o(D,{modelValue:l(a).gender,"onUpdate:modelValue":e[4]||(e[4]=d=>l(a).gender=d),disabled:!l(B)},{default:t(()=>[o(M,{label:1},{default:t(()=>[...e[51]||(e[51]=[u("男",-1)])]),_:1}),o(M,{label:0},{default:t(()=>[...e[52]||(e[52]=[u("女",-1)])]),_:1})]),_:1},8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"年龄",prop:"age"},{default:t(()=>[o(z,{modelValue:l(a).age,"onUpdate:modelValue":e[5]||(e[5]=d=>l(a).age=d),min:0,max:150,placeholder:"请输入年龄",class:"w-full",disabled:!l(B),controls:l(B)},null,8,["modelValue","disabled","controls"])]),_:1})]),_:1})]),_:1})],8,na),o(m,{"content-position":"left"},{default:t(()=>[...e[53]||(e[53]=[u("生命体征",-1)])]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:8},{default:t(()=>[o(s,{label:"婚姻状态",prop:"marital_status"},{default:t(()=>[o(Y,{modelValue:l(a).marital_status,"onUpdate:modelValue":e[6]||(e[6]=d=>l(a).marital_status=d),placeholder:"请选择婚姻状态",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},{default:t(()=>[o(F,{label:"未婚",value:0}),o(F,{label:"已婚",value:1}),o(F,{label:"离异",value:2})]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(_,{span:8},{default:t(()=>[o(s,{label:"就诊人身高(cm)",prop:"height"},{default:t(()=>[o(z,{modelValue:l(a).height,"onUpdate:modelValue":e[7]||(e[7]=d=>l(a).height=d),min:0,max:300,placeholder:"请输入身高",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(_,{span:8},{default:t(()=>[o(s,{label:"体重(kg)",prop:"weight"},{default:t(()=>[o(z,{modelValue:l(a).weight,"onUpdate:modelValue":e[8]||(e[8]=d=>l(a).weight=d),min:0,max:500,step:.1,placeholder:"请输入体重",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:8},{default:t(()=>[o(s,{label:"地区",prop:"region"},{default:t(()=>[o(v,{modelValue:l(a).region,"onUpdate:modelValue":e[9]||(e[9]=d=>l(a).region=d),placeholder:"请输入地区"},null,8,["modelValue"])]),_:1})]),_:1}),o(_,{span:8},{default:t(()=>[o(s,{label:"就诊人血压(高压mmHg)",prop:"systolic_pressure"},{default:t(()=>[o(z,{modelValue:l(a).systolic_pressure,"onUpdate:modelValue":e[10]||(e[10]=d=>l(a).systolic_pressure=d),min:0,max:250,placeholder:"请输入高压",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(_,{span:8},{default:t(()=>[o(s,{label:"就诊人血压(低压mmHg)",prop:"diastolic_pressure"},{default:t(()=>[o(z,{modelValue:l(a).diastolic_pressure,"onUpdate:modelValue":e[11]||(e[11]=d=>l(a).diastolic_pressure=d),min:0,max:150,placeholder:"请输入低压",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:8},{default:t(()=>[o(s,{label:"空腹血糖(mmol/L)",prop:"fasting_blood_sugar"},{default:t(()=>[o(v,{modelValue:l(a).fasting_blood_sugar,"onUpdate:modelValue":e[12]||(e[12]=d=>l(a).fasting_blood_sugar=d),placeholder:"请输入空腹血糖,如:8.5 或 8-9",maxlength:"20",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"诊断类型",prop:"diagnosis_type"},{default:t(()=>[o(Y,{modelValue:l(a).diagnosis_type,"onUpdate:modelValue":e[13]||(e[13]=d=>l(a).diagnosis_type=d),placeholder:"请选择诊断类型",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},{default:t(()=>[(i(!0),f(b,null,U(l(_e),d=>(i(),r(F,{key:d.value,label:d.name,value:d.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"状态",prop:"status"},{default:t(()=>[o(D,{modelValue:l(a).status,"onUpdate:modelValue":e[14]||(e[14]=d=>l(a).status=d)},{default:t(()=>[o(M,{label:1},{default:t(()=>[...e[54]||(e[54]=[u("启用",-1)])]),_:1}),o(M,{label:0},{default:t(()=>[...e[55]||(e[55]=[u("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(_,{span:12},{default:t(()=>[o(s,{label:"渠道来源",prop:"create_source"},{default:t(()=>[o(Y,{modelValue:l(a).create_source,"onUpdate:modelValue":e[15]||(e[15]=d=>l(a).create_source=d),placeholder:"请选择渠道来源",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},{default:t(()=>[(i(),f(b,null,U(Xe,d=>o(F,{key:d.value,label:d.label,value:d.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"统计端就诊卡",prop:"show_card"},{default:t(()=>[o(H,{modelValue:l(a).show_card,"onUpdate:modelValue":e[16]||(e[16]=d=>l(a).show_card=d),"active-value":1,"inactive-value":0,"active-text":"显示","inactive-text":"隐藏","inline-prompt":""},null,8,["modelValue"]),e[56]||(e[56]=G("span",{class:"form-tips ml-3"}," 关闭后,该就诊卡将不会出现在小程序统计端 ",-1))]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"在用药物",prop:"current_medications"},{default:t(()=>[o(v,{modelValue:l(a).current_medications,"onUpdate:modelValue":e[17]||(e[17]=d=>l(a).current_medications=d),type:"textarea",rows:3,placeholder:"请填写患者当前正在使用的药物(如降压药、降糖药等),多种请换行或顿号分隔",maxlength:"2000","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(m,{"content-position":"left"},{default:t(()=>[...e[57]||(e[57]=[u("主诉",-1)])]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"当地医院诊断日期",prop:"diagnosis_date"},{default:t(()=>[o(K,{modelValue:l(a).diagnosis_date,"onUpdate:modelValue":e[18]||(e[18]=d=>l(a).diagnosis_date=d),type:"date",placeholder:"请选择诊断日期","value-format":"YYYY-MM-DD",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},null,8,["modelValue"])]),_:1})]),_:1}),o(_,{span:12},{default:t(()=>[o(s,{label:"发现糖尿病患病史",prop:"diabetes_discovery_year"},{default:t(()=>[o(v,{modelValue:l(a).diabetes_discovery_year,"onUpdate:modelValue":e[19]||(e[19]=d=>l(a).diabetes_discovery_year=d),clearable:"",maxlength:"50","show-word-limit":"",placeholder:"可填数字或文字,如:5、1年、半年",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(s,{label:"当地医院诊断结果",prop:"local_hospital_diagnosis",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).local_hospital_diagnosis,"onUpdate:modelValue":e[20]||(e[20]=d=>l(a).local_hospital_diagnosis=d)},{default:t(()=>[o(k,{label:"糖尿病"},{default:t(()=>[...e[58]||(e[58]=[u("糖尿病",-1)])]),_:1}),o(k,{label:"消渴病"},{default:t(()=>[...e[59]||(e[59]=[u("消渴病",-1)])]),_:1}),o(k,{label:"糖尿病前期"},{default:t(()=>[...e[60]||(e[60]=[u("糖尿病前期",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"当地就诊医院名称",prop:"local_hospital_name"},{default:t(()=>[o(v,{modelValue:l(a).local_hospital_name,"onUpdate:modelValue":e[21]||(e[21]=d=>l(a).local_hospital_name=d),placeholder:"请输入当地就诊医院名称(不能填写当地、本地、互联网等关键词)"},null,8,["modelValue"])]),_:1}),o(m,{"content-position":"left"},{default:t(()=>[...e[61]||(e[61]=[u("现病史",-1)])]),_:1}),o(g,{gutter:20},{default:t(()=>[o(s,{label:"口腔感觉",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).appetite,"onUpdate:modelValue":e[22]||(e[22]=d=>l(a).appetite=d)},{default:t(()=>[(i(!0),f(b,null,U(l(fe),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:20},{default:t(()=>[o(s,{label:"每日饮水量",class:"compact-form-item"},{default:t(()=>[o(D,{modelValue:l(a).water_intake,"onUpdate:modelValue":e[23]||(e[23]=d=>l(a).water_intake=d)},{default:t(()=>[o(E,{label:""},{default:t(()=>[...e[62]||(e[62]=[u("无",-1)])]),_:1}),(i(!0),f(b,null,U(l(ce),d=>(i(),r(E,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"近一个月体重变化",class:"compact-form-item"},{default:t(()=>[o(D,{modelValue:l(a).weight_change,"onUpdate:modelValue":e[24]||(e[24]=d=>l(a).weight_change=d)},{default:t(()=>[o(E,{label:""},{default:t(()=>[...e[63]||(e[63]=[u("无",-1)])]),_:1}),(i(!0),f(b,null,U(l(ge),d=>(i(),r(E,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"脂肪肝程度",class:"compact-form-item"},{default:t(()=>[o(D,{modelValue:l(a).fatty_liver_degree,"onUpdate:modelValue":e[25]||(e[25]=d=>l(a).fatty_liver_degree=d)},{default:t(()=>[o(E,{label:""},{default:t(()=>[...e[64]||(e[64]=[u("无",-1)])]),_:1}),(i(!0),f(b,null,U(l(Pe),d=>(i(),r(E,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(s,{label:"饮食情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).diet_condition,"onUpdate:modelValue":e[26]||(e[26]=d=>l(a).diet_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(ve),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"肢体感觉",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).body_feeling,"onUpdate:modelValue":e[27]||(e[27]=d=>l(a).body_feeling=d)},{default:t(()=>[(i(!0),f(b,null,U(l(be),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"睡眠情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).sleep_condition,"onUpdate:modelValue":e[28]||(e[28]=d=>l(a).sleep_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(ye),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"眼睛情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).eye_condition,"onUpdate:modelValue":e[29]||(e[29]=d=>l(a).eye_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(Ve),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"头部感觉",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).head_feeling,"onUpdate:modelValue":e[30]||(e[30]=d=>l(a).head_feeling=d)},{default:t(()=>[(i(!0),f(b,null,U(l(ke),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"出汗情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).sweat_condition,"onUpdate:modelValue":e[31]||(e[31]=d=>l(a).sweat_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(he),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"皮肤情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).skin_condition,"onUpdate:modelValue":e[32]||(e[32]=d=>l(a).skin_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(we),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"小便情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).urine_condition,"onUpdate:modelValue":e[33]||(e[33]=d=>l(a).urine_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(xe),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"大便情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).stool_condition,"onUpdate:modelValue":e[34]||(e[34]=d=>l(a).stool_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(Ue),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"腰肾情况",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).kidney_condition,"onUpdate:modelValue":e[35]||(e[35]=d=>l(a).kidney_condition=d)},{default:t(()=>[(i(!0),f(b,null,U(l(Ee),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{label:"其他补充",prop:"symptoms"},{default:t(()=>[o(v,{modelValue:l(a).symptoms,"onUpdate:modelValue":e[36]||(e[36]=d=>l(a).symptoms=d),type:"textarea",rows:3,placeholder:"请输入症状"},null,8,["modelValue"])]),_:1}),o(m,{"content-position":"left"},{default:t(()=>[...e[65]||(e[65]=[u("既往史",-1)])]),_:1}),o(s,{label:"",prop:"past_history",class:"checkbox-form-item"},{default:t(()=>[o(x,{modelValue:l(a).past_history,"onUpdate:modelValue":e[37]||(e[37]=d=>l(a).past_history=d)},{default:t(()=>[(i(!0),f(b,null,U(l(me),d=>(i(),r(k,{key:d.value,label:d.value},{default:t(()=>[u(y(d.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(m,{"content-position":"left"},{default:t(()=>[...e[66]||(e[66]=[u("其他病史",-1)])]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:8},{default:t(()=>[o(s,{label:"外伤史"},{default:t(()=>[o(D,{modelValue:l(a).trauma_history,"onUpdate:modelValue":e[38]||(e[38]=d=>l(a).trauma_history=d)},{default:t(()=>[o(E,{label:1},{default:t(()=>[...e[67]||(e[67]=[u("有",-1)])]),_:1}),o(E,{label:0},{default:t(()=>[...e[68]||(e[68]=[u("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(_,{span:8},{default:t(()=>[o(s,{label:"手术史"},{default:t(()=>[o(D,{modelValue:l(a).surgery_history,"onUpdate:modelValue":e[39]||(e[39]=d=>l(a).surgery_history=d)},{default:t(()=>[o(E,{label:1},{default:t(()=>[...e[69]||(e[69]=[u("有",-1)])]),_:1}),o(E,{label:0},{default:t(()=>[...e[70]||(e[70]=[u("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(_,{span:8},{default:t(()=>[o(s,{label:"过敏史"},{default:t(()=>[o(D,{modelValue:l(a).allergy_history,"onUpdate:modelValue":e[40]||(e[40]=d=>l(a).allergy_history=d)},{default:t(()=>[o(E,{label:1},{default:t(()=>[...e[71]||(e[71]=[u("有",-1)])]),_:1}),o(E,{label:0},{default:t(()=>[...e[72]||(e[72]=[u("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(g,{gutter:20},{default:t(()=>[o(_,{span:12},{default:t(()=>[o(s,{label:"家族病史"},{default:t(()=>[o(D,{modelValue:l(a).family_history,"onUpdate:modelValue":e[41]||(e[41]=d=>l(a).family_history=d)},{default:t(()=>[o(E,{label:1},{default:t(()=>[...e[73]||(e[73]=[u("有",-1)])]),_:1}),o(E,{label:0},{default:t(()=>[...e[74]||(e[74]=[u("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(_,{span:12},{default:t(()=>[o(s,{label:"妊娠哺乳史"},{default:t(()=>[o(D,{modelValue:l(a).pregnancy_history,"onUpdate:modelValue":e[42]||(e[42]=d=>l(a).pregnancy_history=d)},{default:t(()=>[o(E,{label:1},{default:t(()=>[...e[75]||(e[75]=[u("有",-1)])]),_:1}),o(E,{label:0},{default:t(()=>[...e[76]||(e[76]=[u("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(m,{"content-position":"left"},{default:t(()=>[...e[77]||(e[77]=[u("诊断信息",-1)])]),_:1}),o(s,{label:"病史补充",prop:"remark"},{default:t(()=>[o(v,{modelValue:l(a).remark,"onUpdate:modelValue":e[43]||(e[43]=d=>l(a).remark=d),type:"textarea",rows:2,placeholder:"请输入病史补充"},null,8,["modelValue"])]),_:1})],8,ia)]),_:1},8,["model"])]),_:1}),o(T,{label:"医生备注",name:"doctorNote",disabled:!l(a).id,lazy:""},{default:t(()=>[l(a).id?(i(),f("div",ra,[o(Hl,{notes:l(de),"diagnosis-id":Number(l(a).id),readonly:l(O),onRefresh:re},null,8,["notes","diagnosis-id","readonly"])])):(i(),r(q,{key:1,description:"请先保存诊单后查看"}))]),_:1},8,["disabled"]),l(ue)?(i(),r(T,{key:0,label:"日常记录",name:"daily",disabled:!l(a).id,lazy:""},{default:t(()=>[l(a).id?(i(),r(ql,{key:0,"diagnosis-id":Number(l(a).id),"patient-id":Number(l(a).patient_id),age:l(a).age,"patient-name":l(a).patient_name,"read-only":l(O)},null,8,["diagnosis-id","patient-id","age","patient-name","read-only"])):(i(),r(q,{key:1,description:"请先保存诊单后查看"}))]),_:1},8,["disabled"])):P("",!0),l(I)(["tcm.diagnosis/chufang"])?(i(),r(T,{key:1,label:"处方",name:"bingli",disabled:!l(a).id},{default:t(()=>[l(a).id?(i(),f("div",pa,[o(Al,{ref_key:"caseRecordListRef",ref:Z,"diagnosis-id":Number(l(a).id),"read-only":l(O),onView:il,onOpenPrescription:nl},null,8,["diagnosis-id","read-only"])])):(i(),r(q,{key:1,description:"请先保存诊单,开方后病历将在此显示"}))]),_:1},8,["disabled"])):P("",!0),l(I)(["tcm.diagnosis/patientOrders"])?(i(),r(T,{key:2,label:"业务订单",name:"patientOrders",disabled:!l(a).id,lazy:""},{default:t(()=>[l(a).id?(i(),r(Kl,{key:0,"diagnosis-id":Number(l(a).id),"patient-id":Number(l(a).patient_id)||0},null,8,["diagnosis-id","patient-id"])):(i(),r(q,{key:1,description:"请先保存诊单后查看业务订单"}))]),_:1},8,["disabled"])):P("",!0),l(I)(["tcm.diagnosis/huifang"])?(i(),r(T,{key:3,label:"视频录制回放记录",name:"visit",disabled:!l(a).id,lazy:""},{default:t(()=>[l(a).id?(i(),r(Yl,{key:0,ref_key:"callRecordPanelRef",ref:Me,"diagnosis-id":Number(l(a).id)},null,8,["diagnosis-id"])):(i(),r(q,{key:1,description:"请先保存诊单后再查看视频录制回放记录"}))]),_:1},8,["disabled"])):P("",!0),l(I)(["tcm.diagnosis/chat"])?(i(),r(T,{key:4,label:"聊天记录",name:"chat",disabled:!l(a).id,lazy:""},{default:t(()=>[l(V)==="chat"&&l(a).id?(i(),r(Gl,{key:0,"diagnosis-id":Number(l(a).id)},null,8,["diagnosis-id"])):l(a).id?P("",!0):(i(),r(q,{key:1,description:"请先保存诊单后再查看聊天记录"}))]),_:1},8,["disabled"])):P("",!0),l(I)(["tcm.diagnosis/assign"])||l(I)(["tcm.diagnosis/detail"])?(i(),r(T,{key:5,label:"指派医助记录",name:"assignLog",disabled:!l(a).id,lazy:""},{default:t(()=>[l(a).id?(i(),r(Jl,{key:0,"diagnosis-id":Number(l(a).id)},null,8,["diagnosis-id"])):(i(),r(q,{key:1,description:"请先保存诊单后再查看指派记录"}))]),_:1},8,["disabled"])):P("",!0),l(I)(["doctor.appointment/lists"])?(i(),r(T,{key:6,label:"挂号记录",name:"appointmentRecords",disabled:!l(a).id,lazy:""},{default:t(()=>[l(a).id?(i(),r(Xl,{key:0,"diagnosis-id":Number(l(a).id)},null,8,["diagnosis-id"])):(i(),r(q,{key:1,description:"请先保存诊单后再查看挂号记录"}))]),_:1},8,["disabled"])):P("",!0)]),_:1},8,["modelValue"]),o(jl,{ref_key:"prescriptionRef",ref:ee,onSuccess:e[45]||(e[45]=d=>{var W,Ce;return(Ce=(W=l(Z))==null?void 0:W.refresh)==null?void 0:Ce.call(W)})},null,512)]),_:1},8,["modelValue","z-index"])])}}}),et=Ml(ma,[["__scopeId","data-v-60b2b4d4"]]);export{et as default};
diff --git a/server/public/admin/assets/edit-5lw7unTd.js b/server/public/admin/assets/edit-5lw7unTd.js
deleted file mode 100644
index 5b3d42698..000000000
--- a/server/public/admin/assets/edit-5lw7unTd.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-Cpx7n7Pf.js";import"./.pnpm-BHOjf1ZS.js";import"./picker-DY0rRn6Q.js";import"./index-Dt_C33Jx.js";import"./index-B31vLELt.js";import"./index-Mwguss-B.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./index-Btk0rgzN.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./usePaging-oaNM6A9T.js";import"./department-C6mdNFMs.js";import"./post-BX0OihZx.js";import"./admin-MPtc__0S.js";import"./role-DMU3SLD8.js";import"./useDictOptions-DnbupH6P.js";export{o as default};
diff --git a/server/public/admin/assets/edit-8CP41pS9.js b/server/public/admin/assets/edit-8CP41pS9.js
new file mode 100644
index 000000000..aa5ff67af
--- /dev/null
+++ b/server/public/admin/assets/edit-8CP41pS9.js
@@ -0,0 +1 @@
+import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-LiIBGI8Q.js";import"./.pnpm-BuKxIMgQ.js";import"./wx_oa-CPg89SqX.js";import"./index-BZAvl557.js";import"./index-BARAiw4K.js";export{o as default};
diff --git a/server/public/admin/assets/edit-B5Y-aSlG.js b/server/public/admin/assets/edit-B5Y-aSlG.js
new file mode 100644
index 000000000..88de744ac
--- /dev/null
+++ b/server/public/admin/assets/edit-B5Y-aSlG.js
@@ -0,0 +1 @@
+import{_ as o}from"./edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-H7N9Ba6a.js";import"./.pnpm-BuKxIMgQ.js";import"./article-CjHzXUSw.js";import"./index-BZAvl557.js";import"./index-BARAiw4K.js";export{o as default};
diff --git a/server/public/admin/assets/edit-4boQyVvK.js b/server/public/admin/assets/edit-BJ5McFlC.js
similarity index 77%
rename from server/public/admin/assets/edit-4boQyVvK.js
rename to server/public/admin/assets/edit-BJ5McFlC.js
index f392ed85a..a0548d878 100644
--- a/server/public/admin/assets/edit-4boQyVvK.js
+++ b/server/public/admin/assets/edit-BJ5McFlC.js
@@ -1 +1 @@
-import{_ as D}from"./index-BKuK5cAm.js";import{o as v,Q as I,W as F,ap as M,q as N,r as $,v as a,D as t,bl as j,bg as G,b9 as H,u as l,b6 as L,s as u,b7 as S,bc as z,bf as A,L as f,I as J,bj as K,bk as O,K as P,ba as w,a8 as Q,M as W}from"./.pnpm-BHOjf1ZS.js";import{k as X,G as Y,H as Z,I as ee,J as ae}from"./index-B31vLELt.js";const oe={class:"article-edit"},le={class:"w-80"},te={class:"w-80"},se={class:"w-80"},ne={class:"w-80"},re={class:"w-80"},de=v({name:"scheduledTaskEdit"}),ce=v({...de,setup(ue){const m=I(),V=F(),o=w({id:"",name:"",command:"",expression:"",params:"",remark:"",status:1,type:1}),{removeTab:x}=X(),i=Q(),E=w({name:[{required:!0,message:"请输入名称"}],command:[{required:!0,message:"请输入thankphp命令,如vresion"}],expression:[{required:!0,message:"请输入crontab规则,例:5 9 * * *"}]}),k=async()=>{const n=await Y({id:m.query.id});Object.keys(o).forEach(e=>{o[e]=n[e]})},p=W([]),c=async()=>{var e;await((e=i.value)==null?void 0:e.validateField(["expression"]));const n=await Z({expression:o.expression});p.value=n},y=async()=>{var n;await((n=i.value)==null?void 0:n.validate()),m.query.id?await ee(o):await ae(o),x(),V.back()};return M(async()=>{m.query.id&&(await k(),await c())}),(n,e)=>{const g=j,_=G,d=S,r=L,h=A,R=z,q=J,b=O,U=K,B=H,T=P,C=D;return N(),$("div",oe,[a(_,{class:"!border-none",shadow:"never"},{default:t(()=>[a(g,{content:n.$route.meta.title,onBack:e[0]||(e[0]=s=>n.$router.back())},null,8,["content"])]),_:1}),a(_,{class:"mt-4 !border-none",shadow:"never"},{default:t(()=>[a(B,{ref_key:"formRef",ref:i,class:"ls-form",model:l(o),"label-width":"85px",rules:l(E)},{default:t(()=>[a(r,{label:"名称",prop:"name"},{default:t(()=>[u("div",le,[a(d,{modelValue:l(o).name,"onUpdate:modelValue":e[1]||(e[1]=s=>l(o).name=s),placeholder:"请输入名称",maxlength:"30",clearable:""},null,8,["modelValue"])])]),_:1}),a(r,{label:"类型",prop:"type"},{default:t(()=>[a(R,{modelValue:l(o).type,"onUpdate:modelValue":e[2]||(e[2]=s=>l(o).type=s)},{default:t(()=>[a(h,{value:1},{default:t(()=>[...e[8]||(e[8]=[f("定时任务",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(r,{label:"命令",prop:"command"},{default:t(()=>[u("div",te,[a(d,{modelValue:l(o).command,"onUpdate:modelValue":e[3]||(e[3]=s=>l(o).command=s),placeholder:"请输入thinkphp命令,如vresion",clearable:""},null,8,["modelValue"])])]),_:1}),a(r,{label:"参数",prop:"params"},{default:t(()=>[u("div",se,[a(d,{modelValue:l(o).params,"onUpdate:modelValue":e[4]||(e[4]=s=>l(o).params=s),placeholder:"请输入参数,例:--id 8 --name 测试",clearable:""},null,8,["modelValue"])])]),_:1}),a(r,{label:"状态"},{default:t(()=>[a(q,{modelValue:l(o).status,"onUpdate:modelValue":e[5]||(e[5]=s=>l(o).status=s),"active-value":1,"inactive-value":2},null,8,["modelValue"])]),_:1}),a(r,{label:"规则",prop:"expression"},{default:t(()=>[u("div",ne,[a(d,{onBlur:c,modelValue:l(o).expression,"onUpdate:modelValue":e[6]||(e[6]=s=>l(o).expression=s),placeholder:"请输入crontab规则,例:5 9 * * *"},null,8,["modelValue"])])]),_:1}),a(r,null,{default:t(()=>[a(U,{data:l(p),style:{"max-width":"320px"}},{default:t(()=>[a(b,{prop:"time",label:"序号","min-width":"80"}),a(b,{prop:"date",label:"执行时间","min-width":"240"})]),_:1},8,["data"])]),_:1}),a(r,{label:"备注",prop:"remark"},{default:t(()=>[u("div",re,[a(d,{modelValue:l(o).remark,"onUpdate:modelValue":e[7]||(e[7]=s=>l(o).remark=s),type:"textarea",autosize:{minRows:3,maxRows:6},maxlength:200,"show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1})]),_:1},8,["model","rules"])]),_:1}),a(C,null,{default:t(()=>[a(T,{type:"primary",onClick:y},{default:t(()=>[...e[9]||(e[9]=[f("保存",-1)])]),_:1})]),_:1})])}}});export{ce as default};
+import{_ as D}from"./index-DJsqtYWG.js";import{o as v,Q as I,W as F,ap as M,q as N,r as $,v as a,D as t,bp as j,bh as G,b9 as H,u as l,b6 as L,s as u,b7 as S,bc as z,bo as A,L as f,I as J,bi as K,bj as O,K as P,ba as w,a8 as Q,M as W}from"./.pnpm-BuKxIMgQ.js";import{k as X,G as Y,H as Z,I as ee,J as ae}from"./index-BZAvl557.js";const oe={class:"article-edit"},le={class:"w-80"},te={class:"w-80"},se={class:"w-80"},ne={class:"w-80"},re={class:"w-80"},de=v({name:"scheduledTaskEdit"}),ce=v({...de,setup(ue){const m=I(),V=F(),o=w({id:"",name:"",command:"",expression:"",params:"",remark:"",status:1,type:1}),{removeTab:x}=X(),i=Q(),E=w({name:[{required:!0,message:"请输入名称"}],command:[{required:!0,message:"请输入thankphp命令,如vresion"}],expression:[{required:!0,message:"请输入crontab规则,例:5 9 * * *"}]}),y=async()=>{const n=await Y({id:m.query.id});Object.keys(o).forEach(e=>{o[e]=n[e]})},p=W([]),c=async()=>{var e;await((e=i.value)==null?void 0:e.validateField(["expression"]));const n=await Z({expression:o.expression});p.value=n},k=async()=>{var n;await((n=i.value)==null?void 0:n.validate()),m.query.id?await ee(o):await ae(o),x(),V.back()};return M(async()=>{m.query.id&&(await y(),await c())}),(n,e)=>{const h=j,_=G,d=S,r=L,g=A,R=z,q=J,b=O,U=K,B=H,T=P,C=D;return N(),$("div",oe,[a(_,{class:"!border-none",shadow:"never"},{default:t(()=>[a(h,{content:n.$route.meta.title,onBack:e[0]||(e[0]=s=>n.$router.back())},null,8,["content"])]),_:1}),a(_,{class:"mt-4 !border-none",shadow:"never"},{default:t(()=>[a(B,{ref_key:"formRef",ref:i,class:"ls-form",model:l(o),"label-width":"85px",rules:l(E)},{default:t(()=>[a(r,{label:"名称",prop:"name"},{default:t(()=>[u("div",le,[a(d,{modelValue:l(o).name,"onUpdate:modelValue":e[1]||(e[1]=s=>l(o).name=s),placeholder:"请输入名称",maxlength:"30",clearable:""},null,8,["modelValue"])])]),_:1}),a(r,{label:"类型",prop:"type"},{default:t(()=>[a(R,{modelValue:l(o).type,"onUpdate:modelValue":e[2]||(e[2]=s=>l(o).type=s)},{default:t(()=>[a(g,{value:1},{default:t(()=>[...e[8]||(e[8]=[f("定时任务",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(r,{label:"命令",prop:"command"},{default:t(()=>[u("div",te,[a(d,{modelValue:l(o).command,"onUpdate:modelValue":e[3]||(e[3]=s=>l(o).command=s),placeholder:"请输入thinkphp命令,如vresion",clearable:""},null,8,["modelValue"])])]),_:1}),a(r,{label:"参数",prop:"params"},{default:t(()=>[u("div",se,[a(d,{modelValue:l(o).params,"onUpdate:modelValue":e[4]||(e[4]=s=>l(o).params=s),placeholder:"请输入参数,例:--id 8 --name 测试",clearable:""},null,8,["modelValue"])])]),_:1}),a(r,{label:"状态"},{default:t(()=>[a(q,{modelValue:l(o).status,"onUpdate:modelValue":e[5]||(e[5]=s=>l(o).status=s),"active-value":1,"inactive-value":2},null,8,["modelValue"])]),_:1}),a(r,{label:"规则",prop:"expression"},{default:t(()=>[u("div",ne,[a(d,{onBlur:c,modelValue:l(o).expression,"onUpdate:modelValue":e[6]||(e[6]=s=>l(o).expression=s),placeholder:"请输入crontab规则,例:5 9 * * *"},null,8,["modelValue"])])]),_:1}),a(r,null,{default:t(()=>[a(U,{data:l(p),style:{"max-width":"320px"}},{default:t(()=>[a(b,{prop:"time",label:"序号","min-width":"80"}),a(b,{prop:"date",label:"执行时间","min-width":"240"})]),_:1},8,["data"])]),_:1}),a(r,{label:"备注",prop:"remark"},{default:t(()=>[u("div",re,[a(d,{modelValue:l(o).remark,"onUpdate:modelValue":e[7]||(e[7]=s=>l(o).remark=s),type:"textarea",autosize:{minRows:3,maxRows:6},maxlength:200,"show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1})]),_:1},8,["model","rules"])]),_:1}),a(C,null,{default:t(()=>[a(T,{type:"primary",onClick:k},{default:t(()=>[...e[9]||(e[9]=[f("保存",-1)])]),_:1})]),_:1})])}}});export{ce as default};
diff --git a/server/public/admin/assets/edit-gntpXxs8.js b/server/public/admin/assets/edit-Bai0BdqV.js
similarity index 92%
rename from server/public/admin/assets/edit-gntpXxs8.js
rename to server/public/admin/assets/edit-Bai0BdqV.js
index 8601a1fcf..7cf1c90f0 100644
--- a/server/public/admin/assets/edit-gntpXxs8.js
+++ b/server/public/admin/assets/edit-Bai0BdqV.js
@@ -1 +1 @@
-import{o as X,q as b,r as v,v as t,D as r,b9 as Y,u as l,bD as Z,L as p,O as w,b6 as h,s as i,T as B,P as ee,b7 as le,bc as oe,bf as te,J as ae,bK as re,bm as de,F as N,G as O,bn as ne,I as se,K as ie,C as ue,B as pe,a8 as me,M as g,p as fe,ba as S}from"./.pnpm-BHOjf1ZS.js";import{_ as be}from"./picker-DY0rRn6Q.js";import{b as _e,d as ge,e as ce}from"./admin-MPtc__0S.js";import{d as Ve}from"./department-C6mdNFMs.js";import{j as ve}from"./post-BX0OihZx.js";import{j as we,n as ye,_ as xe}from"./index-B31vLELt.js";import{u as Ee}from"./useDictOptions-DnbupH6P.js";import"./index-Dt_C33Jx.js";import"./index-Mwguss-B.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./index-Btk0rgzN.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./usePaging-oaNM6A9T.js";const Ue={class:"edit-drawer"},je={class:"text-primary font-medium"},De={class:"w-full"},ke={class:"ml-2 text-gray-500"},qe={class:"flex justify-end"},Ce=X({__name:"edit",emits:["success","close"],setup(Re,{expose:A,emit:F}){function I(n){if(n.status!==1)return!0;const e=n.children;return Array.isArray(e)&&e.length>0}const y=F,x=me(),f=g(!1),m=g("add"),c=g(!1),E=g([]),T=async()=>{const n=await ye({type:"department"});E.value=(n==null?void 0:n.department)||[]},G=fe(()=>m.value=="edit"?"编辑医助":"新增医助"),o=S({id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[2],dept_id:[],jobs_id:[],avatar:"",title:"",department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1,diagnosis_count:null}),{optionsData:U}=Ee({jobs:{api:ve},dept:{api:Ve,params:{apply_data_scope:1}}}),V=(n,e,s)=>{o.password&&(e||s(new Error("请再次输入密码")),e!==o.password&&s(new Error("两次输入密码不一致!"))),s()},_=S({account:[{required:!0,message:"请输入账号",trigger:["blur"]}],name:[{required:!0,message:"请输入姓名",trigger:["blur"]}],gender:[{required:!0,message:"请选择性别",trigger:["change"]}],dept_id:[{required:!0,type:"array",min:1,message:"请选择归属部门",trigger:["change"]}],phone:[{validator:(n,e,s)=>{e&&!/^1[3-9]\d{9}$/.test(e)?s(new Error("请输入正确的手机号")):s()},trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:["blur"]}],password_confirm:[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:V,trigger:"blur"}]}),K=async()=>{var n;try{await((n=x.value)==null?void 0:n.validate()),c.value=!0,m.value=="edit"?await _e(o):await ge(o),we.msgSuccess(m.value=="edit"?"编辑成功":"新增成功"),f.value=!1,y("success")}catch(e){console.error("提交失败:",e)}finally{c.value=!1}},L=(n="add")=>{m.value=n,f.value=!0,T(),n==="add"&&(Object.assign(o,{id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[2],dept_id:[],jobs_id:[],avatar:"",title:"",department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1,diagnosis_count:null}),_.password=[{required:!0,message:"请输入密码",trigger:["blur"]}],_.password_confirm=[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:V,trigger:"blur"}])},P=async n=>{_.password=[],_.password_confirm=[{validator:V,trigger:"blur"}];const e=await ce({id:n.id});for(const s in o)e[s]!=null&&e[s]!=null&&(o[s]=e[s]);o.role_id.includes(2)||o.role_id.push(2)},j=()=>{f.value=!1,y("close")};return A({open:L,setFormData:P}),(n,e)=>{const s=Z,d=h,u=le,z=be,D=te,J=oe,M=ae,$=re,k=ne,q=de,C=se,H=Y,R=ie,Q=pe;return b(),v("div",Ue,[t(Q,{modelValue:l(f),"onUpdate:modelValue":e[18]||(e[18]=a=>ue(f)?f.value=a:null),title:l(G),direction:"rtl",size:"780px","before-close":j},{footer:r(()=>[i("div",qe,[t(R,{onClick:j},{default:r(()=>[...e[30]||(e[30]=[p("取消",-1)])]),_:1}),t(R,{type:"primary",onClick:K,loading:l(c)},{default:r(()=>[...e[31]||(e[31]=[p("确定",-1)])]),_:1},8,["loading"])])]),default:r(()=>[t(H,{ref_key:"formRef",ref:x,model:l(o),"label-width":"100px",rules:l(_)},{default:r(()=>[t(s,{"content-position":"left"},{default:r(()=>[...e[19]||(e[19]=[p("基本信息",-1)])]),_:1}),l(m)==="edit"&&l(o).diagnosis_count!=null?(b(),w(d,{key:0,label:"创建诊单数"},{default:r(()=>[i("span",je,B(l(o).diagnosis_count),1),e[20]||(e[20]=i("span",{class:"text-tx-secondary text-sm ml-2"},"条",-1))]),_:1})):ee("",!0),t(d,{label:"账号",prop:"account"},{default:r(()=>[t(u,{modelValue:l(o).account,"onUpdate:modelValue":e[0]||(e[0]=a=>l(o).account=a),placeholder:"请输入账号",clearable:""},null,8,["modelValue"])]),_:1}),t(d,{label:"头像"},{default:r(()=>[i("div",null,[i("div",null,[t(z,{modelValue:l(o).avatar,"onUpdate:modelValue":e[1]||(e[1]=a=>l(o).avatar=a),limit:1},null,8,["modelValue"])]),e[21]||(e[21]=i("div",{class:"form-tips"},"建议尺寸:100*100px,支持jpg,jpeg,png格式",-1))])]),_:1}),t(d,{label:"姓名",prop:"name"},{default:r(()=>[t(u,{modelValue:l(o).name,"onUpdate:modelValue":e[2]||(e[2]=a=>l(o).name=a),placeholder:"请输入姓名",clearable:""},null,8,["modelValue"])]),_:1}),t(d,{label:"性别",prop:"gender"},{default:r(()=>[t(J,{modelValue:l(o).gender,"onUpdate:modelValue":e[3]||(e[3]=a=>l(o).gender=a)},{default:r(()=>[t(D,{label:1},{default:r(()=>[...e[22]||(e[22]=[p("男",-1)])]),_:1}),t(D,{label:2},{default:r(()=>[...e[23]||(e[23]=[p("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"年龄",prop:"age"},{default:r(()=>[t(M,{modelValue:l(o).age,"onUpdate:modelValue":e[4]||(e[4]=a=>l(o).age=a),min:18,max:100,placeholder:"请输入年龄"},null,8,["modelValue"])]),_:1}),t(d,{label:"手机号",prop:"phone"},{default:r(()=>[t(u,{modelValue:l(o).phone,"onUpdate:modelValue":e[5]||(e[5]=a=>l(o).phone=a),placeholder:"请输入手机号",clearable:""},null,8,["modelValue"])]),_:1}),t(s,{"content-position":"left"},{default:r(()=>[...e[24]||(e[24]=[p("组织信息",-1)])]),_:1}),t(d,{label:"归属部门",prop:"dept_id"},{default:r(()=>[i("div",De,[t($,{class:"flex-1 w-full",modelValue:l(o).dept_id,"onUpdate:modelValue":e[6]||(e[6]=a=>l(o).dept_id=a),data:l(U).dept,clearable:"",multiple:"","node-key":"id",props:{label:"name",disabled:I},"check-strictly":"","default-expand-all":!0,placeholder:"请选择末级归属部门"},null,8,["modelValue","data","props"]),e[25]||(e[25]=i("div",{class:"form-tips"},"仅可选末级部门(含下级的父部门不可选),与数据权限范围一致。",-1))])]),_:1}),t(d,{label:"岗位",prop:"jobs_id"},{default:r(()=>[t(q,{class:"flex-1",modelValue:l(o).jobs_id,"onUpdate:modelValue":e[7]||(e[7]=a=>l(o).jobs_id=a),clearable:"",multiple:"",placeholder:"请选择岗位"},{default:r(()=>[(b(!0),v(N,null,O(l(U).jobs,(a,W)=>(b(),w(k,{key:W,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(s,{"content-position":"left"},{default:r(()=>[...e[26]||(e[26]=[p("专业信息",-1)])]),_:1}),t(d,{label:"职称",prop:"title"},{default:r(()=>[t(u,{modelValue:l(o).title,"onUpdate:modelValue":e[8]||(e[8]=a=>l(o).title=a),placeholder:"如:主任医师、副主任医师",clearable:""},null,8,["modelValue"])]),_:1}),t(d,{label:"所属科室",prop:"department"},{default:r(()=>[t(q,{modelValue:l(o).department,"onUpdate:modelValue":e[9]||(e[9]=a=>l(o).department=a),placeholder:"请选择所属科室",clearable:"",class:"flex-1"},{default:r(()=>[(b(!0),v(N,null,O(l(E),a=>(b(),w(k,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"擅长领域",prop:"specialty"},{default:r(()=>[t(u,{modelValue:l(o).specialty,"onUpdate:modelValue":e[10]||(e[10]=a=>l(o).specialty=a),type:"textarea",rows:3,placeholder:"请输入擅长领域"},null,8,["modelValue"])]),_:1}),t(s,{"content-position":"left"},{default:r(()=>[...e[27]||(e[27]=[p("履历信息",-1)])]),_:1}),t(d,{label:"教育背景",prop:"education"},{default:r(()=>[t(u,{modelValue:l(o).education,"onUpdate:modelValue":e[11]||(e[11]=a=>l(o).education=a),type:"textarea",rows:3,placeholder:"请输入教育背景,如:北京中医药大学 中医学博士"},null,8,["modelValue"])]),_:1}),t(d,{label:"工作经历",prop:"experience"},{default:r(()=>[t(u,{modelValue:l(o).experience,"onUpdate:modelValue":e[12]||(e[12]=a=>l(o).experience=a),type:"textarea",rows:4,placeholder:"请输入工作经历"},null,8,["modelValue"])]),_:1}),t(d,{label:"荣誉资质",prop:"honors"},{default:r(()=>[t(u,{modelValue:l(o).honors,"onUpdate:modelValue":e[13]||(e[13]=a=>l(o).honors=a),type:"textarea",rows:3,placeholder:"请输入荣誉资质"},null,8,["modelValue"])]),_:1}),t(s,{"content-position":"left"},{default:r(()=>[...e[28]||(e[28]=[p("账号设置",-1)])]),_:1}),t(d,{label:"密码",prop:"password"},{default:r(()=>[t(u,{modelValue:l(o).password,"onUpdate:modelValue":e[14]||(e[14]=a=>l(o).password=a),"show-password":"",clearable:"",placeholder:l(m)==="edit"?"不修改请留空":"请输入密码"},null,8,["modelValue","placeholder"])]),_:1}),t(d,{label:"确认密码",prop:"password_confirm"},{default:r(()=>[t(u,{modelValue:l(o).password_confirm,"onUpdate:modelValue":e[15]||(e[15]=a=>l(o).password_confirm=a),"show-password":"",clearable:"",placeholder:l(m)==="edit"?"不修改请留空":"请输入确认密码"},null,8,["modelValue","placeholder"])]),_:1}),t(d,{label:"状态"},{default:r(()=>[t(C,{modelValue:l(o).disable,"onUpdate:modelValue":e[16]||(e[16]=a=>l(o).disable=a),"active-value":0,"inactive-value":1},null,8,["modelValue"]),i("span",ke,B(l(o).disable===0?"启用":"禁用"),1)]),_:1}),t(d,{label:"多处登录"},{default:r(()=>[i("div",null,[t(C,{modelValue:l(o).multipoint_login,"onUpdate:modelValue":e[17]||(e[17]=a=>l(o).multipoint_login=a),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[29]||(e[29]=i("div",{class:"form-tips"},"允许多人同时在线登录",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}}),He=xe(Ce,[["__scopeId","data-v-f616077a"]]);export{He as default};
+import{o as X,q as b,r as v,v as t,D as r,b9 as Y,u as l,bD as Z,L as p,O as w,b6 as h,s as i,T as B,P as ee,b7 as le,bc as oe,bo as te,J as ae,bK as re,bf as de,F as N,G as O,bg as ne,I as se,K as ie,C as ue,B as pe,a8 as me,M as g,p as fe,ba as S}from"./.pnpm-BuKxIMgQ.js";import{_ as be}from"./picker-C-hBLp_q.js";import{b as _e,d as ge,e as ce}from"./admin-BdieSbRQ.js";import{d as Ve}from"./department-CGkU6VW9.js";import{j as ve}from"./post-BBv3o4dg.js";import{j as we,n as ye,_ as xe}from"./index-BZAvl557.js";import{u as Ee}from"./useDictOptions-C2rBJRQa.js";import"./index-BARAiw4K.js";import"./index-DO2zctlZ.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./index-BYpT7Ezr.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./usePaging-DNtxCypz.js";const Ue={class:"edit-drawer"},je={class:"text-primary font-medium"},De={class:"w-full"},ke={class:"ml-2 text-gray-500"},qe={class:"flex justify-end"},Ce=X({__name:"edit",emits:["success","close"],setup(Re,{expose:A,emit:F}){function I(n){if(n.status!==1)return!0;const e=n.children;return Array.isArray(e)&&e.length>0}const y=F,x=me(),f=g(!1),m=g("add"),c=g(!1),E=g([]),T=async()=>{const n=await ye({type:"department"});E.value=(n==null?void 0:n.department)||[]},G=fe(()=>m.value=="edit"?"编辑医助":"新增医助"),o=S({id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[2],dept_id:[],jobs_id:[],avatar:"",title:"",department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1,diagnosis_count:null}),{optionsData:U}=Ee({jobs:{api:ve},dept:{api:Ve,params:{apply_data_scope:1}}}),V=(n,e,s)=>{o.password&&(e||s(new Error("请再次输入密码")),e!==o.password&&s(new Error("两次输入密码不一致!"))),s()},_=S({account:[{required:!0,message:"请输入账号",trigger:["blur"]}],name:[{required:!0,message:"请输入姓名",trigger:["blur"]}],gender:[{required:!0,message:"请选择性别",trigger:["change"]}],dept_id:[{required:!0,type:"array",min:1,message:"请选择归属部门",trigger:["change"]}],phone:[{validator:(n,e,s)=>{e&&!/^1[3-9]\d{9}$/.test(e)?s(new Error("请输入正确的手机号")):s()},trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:["blur"]}],password_confirm:[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:V,trigger:"blur"}]}),K=async()=>{var n;try{await((n=x.value)==null?void 0:n.validate()),c.value=!0,m.value=="edit"?await _e(o):await ge(o),we.msgSuccess(m.value=="edit"?"编辑成功":"新增成功"),f.value=!1,y("success")}catch(e){console.error("提交失败:",e)}finally{c.value=!1}},L=(n="add")=>{m.value=n,f.value=!0,T(),n==="add"&&(Object.assign(o,{id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[2],dept_id:[],jobs_id:[],avatar:"",title:"",department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1,diagnosis_count:null}),_.password=[{required:!0,message:"请输入密码",trigger:["blur"]}],_.password_confirm=[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:V,trigger:"blur"}])},P=async n=>{_.password=[],_.password_confirm=[{validator:V,trigger:"blur"}];const e=await ce({id:n.id});for(const s in o)e[s]!=null&&e[s]!=null&&(o[s]=e[s]);o.role_id.includes(2)||o.role_id.push(2)},j=()=>{f.value=!1,y("close")};return A({open:L,setFormData:P}),(n,e)=>{const s=Z,d=h,u=le,z=be,D=te,J=oe,M=ae,$=re,k=ne,q=de,C=se,H=Y,R=ie,Q=pe;return b(),v("div",Ue,[t(Q,{modelValue:l(f),"onUpdate:modelValue":e[18]||(e[18]=a=>ue(f)?f.value=a:null),title:l(G),direction:"rtl",size:"780px","before-close":j},{footer:r(()=>[i("div",qe,[t(R,{onClick:j},{default:r(()=>[...e[30]||(e[30]=[p("取消",-1)])]),_:1}),t(R,{type:"primary",onClick:K,loading:l(c)},{default:r(()=>[...e[31]||(e[31]=[p("确定",-1)])]),_:1},8,["loading"])])]),default:r(()=>[t(H,{ref_key:"formRef",ref:x,model:l(o),"label-width":"100px",rules:l(_)},{default:r(()=>[t(s,{"content-position":"left"},{default:r(()=>[...e[19]||(e[19]=[p("基本信息",-1)])]),_:1}),l(m)==="edit"&&l(o).diagnosis_count!=null?(b(),w(d,{key:0,label:"创建诊单数"},{default:r(()=>[i("span",je,B(l(o).diagnosis_count),1),e[20]||(e[20]=i("span",{class:"text-tx-secondary text-sm ml-2"},"条",-1))]),_:1})):ee("",!0),t(d,{label:"账号",prop:"account"},{default:r(()=>[t(u,{modelValue:l(o).account,"onUpdate:modelValue":e[0]||(e[0]=a=>l(o).account=a),placeholder:"请输入账号",clearable:""},null,8,["modelValue"])]),_:1}),t(d,{label:"头像"},{default:r(()=>[i("div",null,[i("div",null,[t(z,{modelValue:l(o).avatar,"onUpdate:modelValue":e[1]||(e[1]=a=>l(o).avatar=a),limit:1},null,8,["modelValue"])]),e[21]||(e[21]=i("div",{class:"form-tips"},"建议尺寸:100*100px,支持jpg,jpeg,png格式",-1))])]),_:1}),t(d,{label:"姓名",prop:"name"},{default:r(()=>[t(u,{modelValue:l(o).name,"onUpdate:modelValue":e[2]||(e[2]=a=>l(o).name=a),placeholder:"请输入姓名",clearable:""},null,8,["modelValue"])]),_:1}),t(d,{label:"性别",prop:"gender"},{default:r(()=>[t(J,{modelValue:l(o).gender,"onUpdate:modelValue":e[3]||(e[3]=a=>l(o).gender=a)},{default:r(()=>[t(D,{label:1},{default:r(()=>[...e[22]||(e[22]=[p("男",-1)])]),_:1}),t(D,{label:2},{default:r(()=>[...e[23]||(e[23]=[p("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"年龄",prop:"age"},{default:r(()=>[t(M,{modelValue:l(o).age,"onUpdate:modelValue":e[4]||(e[4]=a=>l(o).age=a),min:18,max:100,placeholder:"请输入年龄"},null,8,["modelValue"])]),_:1}),t(d,{label:"手机号",prop:"phone"},{default:r(()=>[t(u,{modelValue:l(o).phone,"onUpdate:modelValue":e[5]||(e[5]=a=>l(o).phone=a),placeholder:"请输入手机号",clearable:""},null,8,["modelValue"])]),_:1}),t(s,{"content-position":"left"},{default:r(()=>[...e[24]||(e[24]=[p("组织信息",-1)])]),_:1}),t(d,{label:"归属部门",prop:"dept_id"},{default:r(()=>[i("div",De,[t($,{class:"flex-1 w-full",modelValue:l(o).dept_id,"onUpdate:modelValue":e[6]||(e[6]=a=>l(o).dept_id=a),data:l(U).dept,clearable:"",multiple:"","node-key":"id",props:{label:"name",disabled:I},"check-strictly":"","default-expand-all":!0,placeholder:"请选择末级归属部门"},null,8,["modelValue","data","props"]),e[25]||(e[25]=i("div",{class:"form-tips"},"仅可选末级部门(含下级的父部门不可选),与数据权限范围一致。",-1))])]),_:1}),t(d,{label:"岗位",prop:"jobs_id"},{default:r(()=>[t(q,{class:"flex-1",modelValue:l(o).jobs_id,"onUpdate:modelValue":e[7]||(e[7]=a=>l(o).jobs_id=a),clearable:"",multiple:"",placeholder:"请选择岗位"},{default:r(()=>[(b(!0),v(N,null,O(l(U).jobs,(a,W)=>(b(),w(k,{key:W,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(s,{"content-position":"left"},{default:r(()=>[...e[26]||(e[26]=[p("专业信息",-1)])]),_:1}),t(d,{label:"职称",prop:"title"},{default:r(()=>[t(u,{modelValue:l(o).title,"onUpdate:modelValue":e[8]||(e[8]=a=>l(o).title=a),placeholder:"如:主任医师、副主任医师",clearable:""},null,8,["modelValue"])]),_:1}),t(d,{label:"所属科室",prop:"department"},{default:r(()=>[t(q,{modelValue:l(o).department,"onUpdate:modelValue":e[9]||(e[9]=a=>l(o).department=a),placeholder:"请选择所属科室",clearable:"",class:"flex-1"},{default:r(()=>[(b(!0),v(N,null,O(l(E),a=>(b(),w(k,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"擅长领域",prop:"specialty"},{default:r(()=>[t(u,{modelValue:l(o).specialty,"onUpdate:modelValue":e[10]||(e[10]=a=>l(o).specialty=a),type:"textarea",rows:3,placeholder:"请输入擅长领域"},null,8,["modelValue"])]),_:1}),t(s,{"content-position":"left"},{default:r(()=>[...e[27]||(e[27]=[p("履历信息",-1)])]),_:1}),t(d,{label:"教育背景",prop:"education"},{default:r(()=>[t(u,{modelValue:l(o).education,"onUpdate:modelValue":e[11]||(e[11]=a=>l(o).education=a),type:"textarea",rows:3,placeholder:"请输入教育背景,如:北京中医药大学 中医学博士"},null,8,["modelValue"])]),_:1}),t(d,{label:"工作经历",prop:"experience"},{default:r(()=>[t(u,{modelValue:l(o).experience,"onUpdate:modelValue":e[12]||(e[12]=a=>l(o).experience=a),type:"textarea",rows:4,placeholder:"请输入工作经历"},null,8,["modelValue"])]),_:1}),t(d,{label:"荣誉资质",prop:"honors"},{default:r(()=>[t(u,{modelValue:l(o).honors,"onUpdate:modelValue":e[13]||(e[13]=a=>l(o).honors=a),type:"textarea",rows:3,placeholder:"请输入荣誉资质"},null,8,["modelValue"])]),_:1}),t(s,{"content-position":"left"},{default:r(()=>[...e[28]||(e[28]=[p("账号设置",-1)])]),_:1}),t(d,{label:"密码",prop:"password"},{default:r(()=>[t(u,{modelValue:l(o).password,"onUpdate:modelValue":e[14]||(e[14]=a=>l(o).password=a),"show-password":"",clearable:"",placeholder:l(m)==="edit"?"不修改请留空":"请输入密码"},null,8,["modelValue","placeholder"])]),_:1}),t(d,{label:"确认密码",prop:"password_confirm"},{default:r(()=>[t(u,{modelValue:l(o).password_confirm,"onUpdate:modelValue":e[15]||(e[15]=a=>l(o).password_confirm=a),"show-password":"",clearable:"",placeholder:l(m)==="edit"?"不修改请留空":"请输入确认密码"},null,8,["modelValue","placeholder"])]),_:1}),t(d,{label:"状态"},{default:r(()=>[t(C,{modelValue:l(o).disable,"onUpdate:modelValue":e[16]||(e[16]=a=>l(o).disable=a),"active-value":0,"inactive-value":1},null,8,["modelValue"]),i("span",ke,B(l(o).disable===0?"启用":"禁用"),1)]),_:1}),t(d,{label:"多处登录"},{default:r(()=>[i("div",null,[t(C,{modelValue:l(o).multipoint_login,"onUpdate:modelValue":e[17]||(e[17]=a=>l(o).multipoint_login=a),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[29]||(e[29]=i("div",{class:"form-tips"},"允许多人同时在线登录",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}}),He=xe(Ce,[["__scopeId","data-v-f616077a"]]);export{He as default};
diff --git a/server/public/admin/assets/edit-BlI8emxm.js b/server/public/admin/assets/edit-BlI8emxm.js
new file mode 100644
index 000000000..010cab78a
--- /dev/null
+++ b/server/public/admin/assets/edit-BlI8emxm.js
@@ -0,0 +1 @@
+import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-CtGsxGTS.js";import"./.pnpm-BuKxIMgQ.js";import"./post-BBv3o4dg.js";import"./index-BZAvl557.js";import"./index-BARAiw4K.js";export{o as default};
diff --git a/server/public/admin/assets/edit-C0zRpXtb.js b/server/public/admin/assets/edit-C0zRpXtb.js
new file mode 100644
index 000000000..9a7366d49
--- /dev/null
+++ b/server/public/admin/assets/edit-C0zRpXtb.js
@@ -0,0 +1 @@
+import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-B4UXgz2n.js";import"./.pnpm-BuKxIMgQ.js";import"./dict-DJCviyhe.js";import"./index-BZAvl557.js";import"./index-BARAiw4K.js";export{o as default};
diff --git a/server/public/admin/assets/edit-BzOHP38T.js b/server/public/admin/assets/edit-C1jFJFv6.js
similarity index 76%
rename from server/public/admin/assets/edit-BzOHP38T.js
rename to server/public/admin/assets/edit-C1jFJFv6.js
index 3009d3013..e73aae983 100644
--- a/server/public/admin/assets/edit-BzOHP38T.js
+++ b/server/public/admin/assets/edit-C1jFJFv6.js
@@ -1 +1 @@
-import{o as w,Q as N,W as T,q as m,r as p,v as t,D as s,bl as L,bg as S,ac as U,bi as j,u as a,O as G,s as r,b6 as M,L as d,T as _,bc as O,bf as $,b7 as z,F as H,G as K,b9 as P,K as Q,M as W,ba as A,a8 as J,l as X}from"./.pnpm-BHOjf1ZS.js";import{_ as Y}from"./index-BKuK5cAm.js";import{n as Z,s as h}from"./message-BfQ-ersI.js";import{k as ee,j as te}from"./index-B31vLELt.js";const se={class:"w-80"},oe={class:"flex-1"},ae={class:"w-full max-w-[320px]"},ne={class:"form-tips"},le=w({name:"noticeEdit"}),ue=w({...le,setup(ie){const f=N(),y=T(),u=W(!1),o=A({id:"",scene_name:"",type:"",scene_desc:"",sms_notice:{status:0,template_id:"",content:"",tips:[]},oa_notice:{},mnp_notice:{},system_notice:{}}),k={"sms_notice.template_id":[{required:!0,message:"请输入模板ID",trigger:"blur"}],"sms_notice.content":[{required:!0,message:"请输入短信内容",trigger:"blur"}]},{removeTab:E}=ee(),b=J(),V=async()=>{u.value=!0;const l=await Z({id:f.query.id});Object.keys(l).forEach(e=>{o[e]=l[e]}),u.value=!1},x=async()=>{var e;await((e=b.value)==null?void 0:e.validate());const l={id:o.id,template:X.pick(o,["sms_notice","oa_notice","mnp_notice","system_notice"])};await h(l),te.msgSuccess("操作成功"),E(),y.back()};return f.query.id&&V(),(l,e)=>{const D=L,c=S,i=M,v=$,R=O,g=z,q=P,B=Q,C=Y,I=j;return m(),p("div",null,[t(c,{class:"!border-none",shadow:"never"},{default:s(()=>[t(D,{content:"编辑通知设置",onBack:e[0]||(e[0]=n=>l.$router.back())})]),_:1}),U((m(),G(q,{ref_key:"formRef",ref:b,model:a(o),"label-width":"120px",rules:k},{default:s(()=>[t(c,{class:"!border-none mt-4",shadow:"never"},{default:s(()=>[e[4]||(e[4]=r("div",{class:"font-medium mb-7"},"通知名称",-1)),t(i,{label:"通知名称"},{default:s(()=>[d(_(a(o).scene_name),1)]),_:1}),t(i,{label:"通知类型"},{default:s(()=>[d(_(a(o).type),1)]),_:1}),t(i,{label:"通知业务"},{default:s(()=>[d(_(a(o).scene_desc),1)]),_:1})]),_:1}),t(c,{class:"!border-none mt-4",shadow:"never"},{default:s(()=>[e[7]||(e[7]=r("div",{class:"font-medium mb-7"},"短信通知",-1)),t(i,{label:"开启状态",prop:"sms_notice.status",required:""},{default:s(()=>[t(R,{modelValue:a(o).sms_notice.status,"onUpdate:modelValue":e[1]||(e[1]=n=>a(o).sms_notice.status=n)},{default:s(()=>[t(v,{value:"0"},{default:s(()=>[...e[5]||(e[5]=[d("关闭",-1)])]),_:1}),t(v,{value:"1"},{default:s(()=>[...e[6]||(e[6]=[d("开启",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(i,{label:"模板ID",prop:"sms_notice.template_id"},{default:s(()=>[r("div",se,[t(g,{modelValue:a(o).sms_notice.template_id,"onUpdate:modelValue":e[2]||(e[2]=n=>a(o).sms_notice.template_id=n),placeholder:"请输入模板ID"},null,8,["modelValue"])])]),_:1}),t(i,{label:"短信内容",prop:"sms_notice.content"},{default:s(()=>[r("div",oe,[r("div",ae,[t(g,{type:"textarea",autosize:{minRows:6,maxRows:6},modelValue:a(o).sms_notice.content,"onUpdate:modelValue":e[3]||(e[3]=n=>a(o).sms_notice.content=n)},null,8,["modelValue"])]),r("div",ne,[(m(!0),p(H,null,K(a(o).sms_notice.tips,(n,F)=>(m(),p("div",{key:F},_(n),1))),128))])])]),_:1})]),_:1})]),_:1},8,["model"])),[[I,a(u)]]),t(C,null,{default:s(()=>[t(B,{type:"primary",onClick:x},{default:s(()=>[...e[8]||(e[8]=[d("保存",-1)])]),_:1})]),_:1})])}}});export{ue as default};
+import{o as w,Q as N,W as T,q as m,r as p,v as t,D as s,bp as L,bh as S,ac as U,bl as j,u as a,O as G,s as r,b6 as M,L as d,T as _,bc as O,bo as $,b7 as z,F as H,G as K,b9 as P,K as Q,M as W,ba as h,a8 as A,l as J}from"./.pnpm-BuKxIMgQ.js";import{_ as X}from"./index-DJsqtYWG.js";import{n as Y,s as Z}from"./message-CFwNSBKd.js";import{k as ee,j as te}from"./index-BZAvl557.js";const se={class:"w-80"},oe={class:"flex-1"},ae={class:"w-full max-w-[320px]"},ne={class:"form-tips"},le=w({name:"noticeEdit"}),ue=w({...le,setup(ie){const f=N(),y=T(),u=W(!1),o=h({id:"",scene_name:"",type:"",scene_desc:"",sms_notice:{status:0,template_id:"",content:"",tips:[]},oa_notice:{},mnp_notice:{},system_notice:{}}),k={"sms_notice.template_id":[{required:!0,message:"请输入模板ID",trigger:"blur"}],"sms_notice.content":[{required:!0,message:"请输入短信内容",trigger:"blur"}]},{removeTab:E}=ee(),b=A(),V=async()=>{u.value=!0;const l=await Y({id:f.query.id});Object.keys(l).forEach(e=>{o[e]=l[e]}),u.value=!1},x=async()=>{var e;await((e=b.value)==null?void 0:e.validate());const l={id:o.id,template:J.pick(o,["sms_notice","oa_notice","mnp_notice","system_notice"])};await Z(l),te.msgSuccess("操作成功"),E(),y.back()};return f.query.id&&V(),(l,e)=>{const D=L,c=S,i=M,v=$,R=O,g=z,q=P,B=Q,C=X,I=j;return m(),p("div",null,[t(c,{class:"!border-none",shadow:"never"},{default:s(()=>[t(D,{content:"编辑通知设置",onBack:e[0]||(e[0]=n=>l.$router.back())})]),_:1}),U((m(),G(q,{ref_key:"formRef",ref:b,model:a(o),"label-width":"120px",rules:k},{default:s(()=>[t(c,{class:"!border-none mt-4",shadow:"never"},{default:s(()=>[e[4]||(e[4]=r("div",{class:"font-medium mb-7"},"通知名称",-1)),t(i,{label:"通知名称"},{default:s(()=>[d(_(a(o).scene_name),1)]),_:1}),t(i,{label:"通知类型"},{default:s(()=>[d(_(a(o).type),1)]),_:1}),t(i,{label:"通知业务"},{default:s(()=>[d(_(a(o).scene_desc),1)]),_:1})]),_:1}),t(c,{class:"!border-none mt-4",shadow:"never"},{default:s(()=>[e[7]||(e[7]=r("div",{class:"font-medium mb-7"},"短信通知",-1)),t(i,{label:"开启状态",prop:"sms_notice.status",required:""},{default:s(()=>[t(R,{modelValue:a(o).sms_notice.status,"onUpdate:modelValue":e[1]||(e[1]=n=>a(o).sms_notice.status=n)},{default:s(()=>[t(v,{value:"0"},{default:s(()=>[...e[5]||(e[5]=[d("关闭",-1)])]),_:1}),t(v,{value:"1"},{default:s(()=>[...e[6]||(e[6]=[d("开启",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(i,{label:"模板ID",prop:"sms_notice.template_id"},{default:s(()=>[r("div",se,[t(g,{modelValue:a(o).sms_notice.template_id,"onUpdate:modelValue":e[2]||(e[2]=n=>a(o).sms_notice.template_id=n),placeholder:"请输入模板ID"},null,8,["modelValue"])])]),_:1}),t(i,{label:"短信内容",prop:"sms_notice.content"},{default:s(()=>[r("div",oe,[r("div",ae,[t(g,{type:"textarea",autosize:{minRows:6,maxRows:6},modelValue:a(o).sms_notice.content,"onUpdate:modelValue":e[3]||(e[3]=n=>a(o).sms_notice.content=n)},null,8,["modelValue"])]),r("div",ne,[(m(!0),p(H,null,K(a(o).sms_notice.tips,(n,F)=>(m(),p("div",{key:F},_(n),1))),128))])])]),_:1})]),_:1})]),_:1},8,["model"])),[[I,a(u)]]),t(C,null,{default:s(()=>[t(B,{type:"primary",onClick:x},{default:s(()=>[...e[8]||(e[8]=[d("保存",-1)])]),_:1})]),_:1})])}}});export{ue as default};
diff --git a/server/public/admin/assets/edit-C3qJoann.js b/server/public/admin/assets/edit-C3qJoann.js
deleted file mode 100644
index 936a0efe3..000000000
--- a/server/public/admin/assets/edit-C3qJoann.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-ny-dQ55c.js";import"./.pnpm-BHOjf1ZS.js";import"./dict-V0YKjsig.js";import"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";export{o as default};
diff --git a/server/public/admin/assets/edit-CWoWBPYf.js b/server/public/admin/assets/edit-CWoWBPYf.js
new file mode 100644
index 000000000..cb7b6f744
--- /dev/null
+++ b/server/public/admin/assets/edit-CWoWBPYf.js
@@ -0,0 +1 @@
+import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-DCzkKZ2j.js";import"./.pnpm-BuKxIMgQ.js";import"./dict-DJCviyhe.js";import"./index-BZAvl557.js";import"./index-BARAiw4K.js";export{o as default};
diff --git a/server/public/admin/assets/edit-C7TbjjL_.js b/server/public/admin/assets/edit-CnxkEYQc.js
similarity index 79%
rename from server/public/admin/assets/edit-C7TbjjL_.js
rename to server/public/admin/assets/edit-CnxkEYQc.js
index cc37c7e37..ae028699a 100644
--- a/server/public/admin/assets/edit-C7TbjjL_.js
+++ b/server/public/admin/assets/edit-CnxkEYQc.js
@@ -1 +1 @@
-import{_ as $}from"./index-BKuK5cAm.js";import{o as w,Q as z,W as I,q as m,r as V,v as l,D as s,bl as L,bg as T,b9 as j,u as a,s as n,b6 as A,b7 as G,bm as S,F as H,G as J,O as K,bn as M,J as P,bc as Q,bf as W,L as p,K as X,ba as v,a8 as Y}from"./.pnpm-BHOjf1ZS.js";import{_ as Z}from"./index.vue_vue_type_style_index_0_lang-BLQx8IGb.js";import{_ as ee}from"./picker-DY0rRn6Q.js";import{g as le,h as te,i as oe,j as ae}from"./article-DB3929O1.js";import{u as se}from"./useDictOptions-DnbupH6P.js";import{k as ne}from"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";import"./index-Mwguss-B.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./index-Btk0rgzN.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./usePaging-oaNM6A9T.js";const re={class:"article-edit"},ie={class:"xl:flex"},de={class:"w-80"},ue={class:"w-80"},me={class:"w-80"},pe={class:"w-80"},_e={class:"xl:ml-20"},ce=w({name:"articleListsEdit"}),Ce=w({...ce,setup(fe){const u=z(),g=I(),t=v({id:"",title:"",image:"",cid:"",desc:"",author:"",content:"",click_virtual:0,sort:0,is_show:1,abstract:""}),{removeTab:x}=ne(),_=Y(),k=v({title:[{required:!0,message:"请输入文章标题",trigger:"blur"}],cid:[{required:!0,message:"请选择文章栏目",trigger:"blur"}]}),E=async()=>{const i=await le({id:u.query.id});Object.keys(t).forEach(e=>{t[e]=i[e]})},{optionsData:R}=se({article_cate:{api:ae}}),y=async()=>{var i;await((i=_.value)==null?void 0:i.validate()),u.query.id?await te(t):await oe(t),x(),g.back()};return u.query.id&&E(),(i,e)=>{const U=L,c=T,d=G,r=A,q=M,h=S,B=ee,f=P,b=W,D=Q,C=Z,F=j,N=X,O=$;return m(),V("div",re,[l(c,{class:"!border-none",shadow:"never"},{default:s(()=>[l(U,{content:i.$route.meta.title,onBack:e[0]||(e[0]=o=>i.$router.back())},null,8,["content"])]),_:1}),l(c,{class:"mt-4 !border-none",shadow:"never"},{default:s(()=>[l(F,{ref_key:"formRef",ref:_,class:"ls-form",model:a(t),"label-width":"85px",rules:a(k)},{default:s(()=>[n("div",ie,[n("div",null,[l(r,{label:"文章标题",prop:"title"},{default:s(()=>[n("div",de,[l(d,{modelValue:a(t).title,"onUpdate:modelValue":e[1]||(e[1]=o=>a(t).title=o),placeholder:"请输入文章标题",type:"textarea",autosize:{minRows:3,maxRows:3},maxlength:"64","show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"文章栏目",prop:"cid"},{default:s(()=>[l(h,{class:"w-80",modelValue:a(t).cid,"onUpdate:modelValue":e[2]||(e[2]=o=>a(t).cid=o),placeholder:"请选择文章栏目",clearable:""},{default:s(()=>[(m(!0),V(H,null,J(a(R).article_cate,o=>(m(),K(q,{key:o.id,label:o.name,value:o.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"文章简介",prop:"desc"},{default:s(()=>[n("div",ue,[l(d,{modelValue:a(t).desc,"onUpdate:modelValue":e[3]||(e[3]=o=>a(t).desc=o),placeholder:"请输入文章简介",type:"textarea",autosize:{minRows:3,maxRows:6},maxlength:200,"show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"摘要",prop:"abstract"},{default:s(()=>[n("div",me,[l(d,{type:"textarea",autosize:{minRows:6,maxRows:6},modelValue:a(t).abstract,"onUpdate:modelValue":e[4]||(e[4]=o=>a(t).abstract=o),maxlength:"200","show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"文章封面",prop:"image"},{default:s(()=>[n("div",null,[n("div",null,[l(B,{modelValue:a(t).image,"onUpdate:modelValue":e[5]||(e[5]=o=>a(t).image=o),limit:1},null,8,["modelValue"])]),e[11]||(e[11]=n("div",{class:"form-tips"},"建议尺寸:240*180px",-1))])]),_:1}),l(r,{label:"作者",prop:"author"},{default:s(()=>[n("div",pe,[l(d,{modelValue:a(t).author,"onUpdate:modelValue":e[6]||(e[6]=o=>a(t).author=o),placeholder:"请输入作者名称"},null,8,["modelValue"])])]),_:1}),l(r,{label:"排序",prop:"sort"},{default:s(()=>[n("div",null,[l(f,{modelValue:a(t).sort,"onUpdate:modelValue":e[7]||(e[7]=o=>a(t).sort=o),min:0,max:9999},null,8,["modelValue"]),e[12]||(e[12]=n("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),l(r,{label:"初始浏览量",prop:"click_virtual"},{default:s(()=>[n("div",null,[l(f,{modelValue:a(t).click_virtual,"onUpdate:modelValue":e[8]||(e[8]=o=>a(t).click_virtual=o),min:0},null,8,["modelValue"])])]),_:1}),l(r,{label:"文章状态",required:"",prop:"is_show"},{default:s(()=>[l(D,{modelValue:a(t).is_show,"onUpdate:modelValue":e[9]||(e[9]=o=>a(t).is_show=o)},{default:s(()=>[l(b,{value:1},{default:s(()=>[...e[13]||(e[13]=[p("显示",-1)])]),_:1}),l(b,{value:0},{default:s(()=>[...e[14]||(e[14]=[p("隐藏",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),n("div",_e,[l(r,{label:"文章内容",prop:"content"},{default:s(()=>[l(C,{modelValue:a(t).content,"onUpdate:modelValue":e[10]||(e[10]=o=>a(t).content=o),height:667,width:375},null,8,["modelValue"])]),_:1})])])]),_:1},8,["model","rules"])]),_:1}),l(O,null,{default:s(()=>[l(N,{type:"primary",onClick:y},{default:s(()=>[...e[15]||(e[15]=[p("保存",-1)])]),_:1})]),_:1})])}}});export{Ce as default};
+import{_ as $}from"./index-DJsqtYWG.js";import{o as w,Q as z,W as I,q as m,r as V,v as l,D as s,bp as L,bh as T,b9 as j,u as a,s as n,b6 as A,b7 as G,bf as S,F as H,G as J,O as K,bg as M,J as P,bc as Q,bo as W,L as p,K as X,ba as v,a8 as Y}from"./.pnpm-BuKxIMgQ.js";import{_ as Z}from"./index.vue_vue_type_style_index_0_lang-C9Mw2W3q.js";import{_ as ee}from"./picker-C-hBLp_q.js";import{g as le,h as te,i as oe,j as ae}from"./article-CjHzXUSw.js";import{u as se}from"./useDictOptions-C2rBJRQa.js";import{k as ne}from"./index-BZAvl557.js";import"./index-BARAiw4K.js";import"./index-DO2zctlZ.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./index-BYpT7Ezr.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./usePaging-DNtxCypz.js";const re={class:"article-edit"},ie={class:"xl:flex"},de={class:"w-80"},ue={class:"w-80"},me={class:"w-80"},pe={class:"w-80"},_e={class:"xl:ml-20"},ce=w({name:"articleListsEdit"}),Ce=w({...ce,setup(fe){const u=z(),g=I(),t=v({id:"",title:"",image:"",cid:"",desc:"",author:"",content:"",click_virtual:0,sort:0,is_show:1,abstract:""}),{removeTab:x}=ne(),_=Y(),k=v({title:[{required:!0,message:"请输入文章标题",trigger:"blur"}],cid:[{required:!0,message:"请选择文章栏目",trigger:"blur"}]}),E=async()=>{const i=await le({id:u.query.id});Object.keys(t).forEach(e=>{t[e]=i[e]})},{optionsData:R}=se({article_cate:{api:ae}}),y=async()=>{var i;await((i=_.value)==null?void 0:i.validate()),u.query.id?await te(t):await oe(t),x(),g.back()};return u.query.id&&E(),(i,e)=>{const U=L,c=T,d=G,r=A,h=M,q=S,B=ee,f=P,b=W,D=Q,C=Z,F=j,N=X,O=$;return m(),V("div",re,[l(c,{class:"!border-none",shadow:"never"},{default:s(()=>[l(U,{content:i.$route.meta.title,onBack:e[0]||(e[0]=o=>i.$router.back())},null,8,["content"])]),_:1}),l(c,{class:"mt-4 !border-none",shadow:"never"},{default:s(()=>[l(F,{ref_key:"formRef",ref:_,class:"ls-form",model:a(t),"label-width":"85px",rules:a(k)},{default:s(()=>[n("div",ie,[n("div",null,[l(r,{label:"文章标题",prop:"title"},{default:s(()=>[n("div",de,[l(d,{modelValue:a(t).title,"onUpdate:modelValue":e[1]||(e[1]=o=>a(t).title=o),placeholder:"请输入文章标题",type:"textarea",autosize:{minRows:3,maxRows:3},maxlength:"64","show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"文章栏目",prop:"cid"},{default:s(()=>[l(q,{class:"w-80",modelValue:a(t).cid,"onUpdate:modelValue":e[2]||(e[2]=o=>a(t).cid=o),placeholder:"请选择文章栏目",clearable:""},{default:s(()=>[(m(!0),V(H,null,J(a(R).article_cate,o=>(m(),K(h,{key:o.id,label:o.name,value:o.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"文章简介",prop:"desc"},{default:s(()=>[n("div",ue,[l(d,{modelValue:a(t).desc,"onUpdate:modelValue":e[3]||(e[3]=o=>a(t).desc=o),placeholder:"请输入文章简介",type:"textarea",autosize:{minRows:3,maxRows:6},maxlength:200,"show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"摘要",prop:"abstract"},{default:s(()=>[n("div",me,[l(d,{type:"textarea",autosize:{minRows:6,maxRows:6},modelValue:a(t).abstract,"onUpdate:modelValue":e[4]||(e[4]=o=>a(t).abstract=o),maxlength:"200","show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"文章封面",prop:"image"},{default:s(()=>[n("div",null,[n("div",null,[l(B,{modelValue:a(t).image,"onUpdate:modelValue":e[5]||(e[5]=o=>a(t).image=o),limit:1},null,8,["modelValue"])]),e[11]||(e[11]=n("div",{class:"form-tips"},"建议尺寸:240*180px",-1))])]),_:1}),l(r,{label:"作者",prop:"author"},{default:s(()=>[n("div",pe,[l(d,{modelValue:a(t).author,"onUpdate:modelValue":e[6]||(e[6]=o=>a(t).author=o),placeholder:"请输入作者名称"},null,8,["modelValue"])])]),_:1}),l(r,{label:"排序",prop:"sort"},{default:s(()=>[n("div",null,[l(f,{modelValue:a(t).sort,"onUpdate:modelValue":e[7]||(e[7]=o=>a(t).sort=o),min:0,max:9999},null,8,["modelValue"]),e[12]||(e[12]=n("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),l(r,{label:"初始浏览量",prop:"click_virtual"},{default:s(()=>[n("div",null,[l(f,{modelValue:a(t).click_virtual,"onUpdate:modelValue":e[8]||(e[8]=o=>a(t).click_virtual=o),min:0},null,8,["modelValue"])])]),_:1}),l(r,{label:"文章状态",required:"",prop:"is_show"},{default:s(()=>[l(D,{modelValue:a(t).is_show,"onUpdate:modelValue":e[9]||(e[9]=o=>a(t).is_show=o)},{default:s(()=>[l(b,{value:1},{default:s(()=>[...e[13]||(e[13]=[p("显示",-1)])]),_:1}),l(b,{value:0},{default:s(()=>[...e[14]||(e[14]=[p("隐藏",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),n("div",_e,[l(r,{label:"文章内容",prop:"content"},{default:s(()=>[l(C,{modelValue:a(t).content,"onUpdate:modelValue":e[10]||(e[10]=o=>a(t).content=o),height:667,width:375},null,8,["modelValue"])]),_:1})])])]),_:1},8,["model","rules"])]),_:1}),l(O,null,{default:s(()=>[l(N,{type:"primary",onClick:y},{default:s(()=>[...e[15]||(e[15]=[p("保存",-1)])]),_:1})]),_:1})])}}});export{Ce as default};
diff --git a/server/public/admin/assets/edit-Cqk_Pc5t.js b/server/public/admin/assets/edit-Cqk_Pc5t.js
new file mode 100644
index 000000000..73332827b
--- /dev/null
+++ b/server/public/admin/assets/edit-Cqk_Pc5t.js
@@ -0,0 +1 @@
+import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-CJ2HT6Zn.js";import"./.pnpm-BuKxIMgQ.js";import"./department-CGkU6VW9.js";import"./index-BZAvl557.js";import"./index-BARAiw4K.js";import"./useDictOptions-C2rBJRQa.js";export{o as default};
diff --git a/server/public/admin/assets/edit-CzN4TNMG.js b/server/public/admin/assets/edit-CzN4TNMG.js
deleted file mode 100644
index f2d96225c..000000000
--- a/server/public/admin/assets/edit-CzN4TNMG.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-DDcLJMtO.js";import"./.pnpm-BHOjf1ZS.js";import"./wx_oa-DnRFEP08.js";import"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";export{o as default};
diff --git a/server/public/admin/assets/edit-D4Zq7VVj.js b/server/public/admin/assets/edit-D4Zq7VVj.js
deleted file mode 100644
index 28eb661b2..000000000
--- a/server/public/admin/assets/edit-D4Zq7VVj.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-B0772kYb.js";import"./.pnpm-BHOjf1ZS.js";import"./article-DB3929O1.js";import"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";export{o as default};
diff --git a/server/public/admin/assets/edit-Dn7QOeLO.js b/server/public/admin/assets/edit-DAuHUat7.js
similarity index 85%
rename from server/public/admin/assets/edit-Dn7QOeLO.js
rename to server/public/admin/assets/edit-DAuHUat7.js
index 591c739bd..1a943ac08 100644
--- a/server/public/admin/assets/edit-Dn7QOeLO.js
+++ b/server/public/admin/assets/edit-DAuHUat7.js
@@ -1 +1 @@
-import{_ as ye}from"./index-BKuK5cAm.js";import{o as z,q as p,r as v,F as q,G as D,T as J,u as n,p as Z,Q as ge,W as ke,v as l,D as t,bl as Ue,bg as we,b9 as Ee,Y as qe,C,X as xe,b6 as Ce,s as u,b7 as De,bj as Re,bk as Ae,bd as $e,bm as Ie,bn as Te,O as w,bc as Ne,bf as Be,L as b,P as Q,bK as Pe,K as Oe,M as E,ba as h,a8 as ee,n as Se,l as le,bN as ae,R as Fe}from"./.pnpm-BHOjf1ZS.js";import{c as Le,j as te,_ as je}from"./index-B31vLELt.js";import{m as Ke}from"./menu-O9ulO-rY.js";import{d as Qe}from"./dict-V0YKjsig.js";import{t as ze,g as Ge}from"./code-CsMIcGPz.js";import{u as We}from"./useDictOptions-DnbupH6P.js";import{_ as He}from"./relations-add.vue_vue_type_script_setup_true_lang-BmXPz75V.js";import"./index-Dt_C33Jx.js";const Me=z({__name:"index",props:{options:{default:()=>[]},value:{},config:{default:()=>({label:"name",value:"value"})}},setup(O){const c=O,S=Z(()=>c.value!==null&&typeof c.value<"u"?Array.isArray(c.value)?c.value:String(c.value).split(","):[]),R=Z(()=>c.options.filter(x=>S.value.includes(x[c.config.value])));return(x,F)=>(p(),v("div",null,[(p(!0),v(q,null,D(n(R),(o,g)=>(p(),v("span",{key:g},J(g!=0?"、":"")+J(o[O.config.label]),1))),128))]))}}),Xe={class:"code-edit"},Ye={class:"w-80"},Je={class:"w-80"},Ze={class:"w-80"},he={class:"w-80"},el={class:"header-checkbox"},ll={class:"header-checkbox"},al={class:"header-checkbox"},tl={class:"header-checkbox"},ol={class:"header-checkbox"},nl={class:"w-80"},ul={class:"w-80"},dl={class:"w-80"},sl={class:"w-80"},ml={class:"mt-4"},rl=z({name:"tableEdit"}),il=z({...rl,setup(O){const c=ge(),S=ke(),R=E("column"),x=E(!1),F=[{name:"一对一",value:"has_one"},{name:"一对多",value:"has_many"}],o=h({id:"",table_name:"",table_comment:"",author:"",remark:"",template_type:0,generate_type:0,module_name:"",class_dir:"",class_comment:"",table_column:[],menu:{pid:0,name:"",type:0},tree:{tree_id:0,tree_pid:0,tree_name:0},delete:{name:"",type:0},relations:[]}),g=E(!1),A=E(!1),$=E(!1),I=E(!1),T=E(!1),oe=()=>{o.table_column.forEach(d=>{d.is_required=g.value?1:0})},ne=()=>{o.table_column.forEach(d=>{d.is_insert=A.value?1:0})},ue=()=>{o.table_column.forEach(d=>{d.is_update=$.value?1:0})},de=()=>{o.table_column.forEach(d=>{d.is_lists=I.value?1:0})},se=()=>{o.table_column.forEach(d=>{d.is_query=T.value?1:0})};let L=0;const G=ee(),j=ee(),W=h({table_name:[{required:!0,message:"请输入表名称"}],table_comment:[{required:!0,message:"请输入表描述"}],module_name:[{required:!0,message:"请输入模块名"}],generate_type:[{required:!0,trigger:"change"}],template_type:[{required:!0,trigger:"change"}],"menu.pid":[{required:!0,message:"请选择父级菜单"}],"menu.name":[{required:!0,message:"请输入菜单名称"}],"delete.type":[{required:!0,trigger:"change"}],"delete.name":[{required:!0,message:"请选择删除字段"}]}),H=async(d,e,k)=>{var V,_;x.value=!0,await Se(),e&&k!==void 0&&((V=j.value)==null||V.setFormData(e),L=k),(_=j.value)==null||_.open(d)},me=d=>{const e=le.cloneDeep(ae(d));o.relations.push(e)},re=async d=>{const e=le.cloneDeep(ae(d));console.log(L),o.relations.splice(L,1,e)},ie=d=>{o.relations.splice(d,1)},pe=async()=>{const d=await ze({id:c.query.id});Object.keys(o).forEach(e=>{o[e]=d[e]}),Fe(()=>o.generate_type,e=>{e==1&&te.confirm("生成到模块方式如遇同名文件会覆盖旧文件,确定要选择此方式吗?").catch(()=>{o.generate_type=0})})},{optionsData:M}=We({dict_type:{api:Qe},menu:{api:Ke,transformData(d){const e={id:0,name:"顶级",children:[]};return e.children=d,[e]}}}),_e=async()=>{var d,e;try{await((d=G.value)==null?void 0:d.validate()),await Ge(o),S.back()}catch(k){for(const V in k)Object.keys(W).includes(V)&&te.msgError((e=k[V][0])==null?void 0:e.message)}};return pe(),(d,e)=>{const k=Ue,V=we,_=De,r=Ce,N=xe,i=Ae,f=$e,m=Te,U=Ie,X=Re,y=Be,B=Ne,be=Pe,fe=Le,P=Oe,Y=Me,ve=qe,ce=Ee,Ve=ye;return p(),v("div",Xe,[l(V,{class:"!border-none",shadow:"never"},{default:t(()=>[l(k,{content:"编辑数据表",onBack:e[0]||(e[0]=a=>d.$router.back())})]),_:1}),l(V,{class:"mt-4 !border-none",shadow:"never"},{default:t(()=>[l(ce,{ref_key:"formRef",ref:G,class:"ls-form",model:n(o),"label-width":"100px",rules:n(W)},{default:t(()=>[l(ve,{modelValue:n(R),"onUpdate:modelValue":e[25]||(e[25]=a=>C(R)?R.value=a:null)},{default:t(()=>[l(N,{label:"基础信息",name:"base"},{default:t(()=>[l(r,{label:"表名称",prop:"table_name"},{default:t(()=>[u("div",Ye,[l(_,{modelValue:n(o).table_name,"onUpdate:modelValue":e[1]||(e[1]=a=>n(o).table_name=a),placeholder:"请输入表名称",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"表描述",prop:"table_comment"},{default:t(()=>[u("div",Je,[l(_,{modelValue:n(o).table_comment,"onUpdate:modelValue":e[2]||(e[2]=a=>n(o).table_comment=a),placeholder:"请输入表描述",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"作者"},{default:t(()=>[u("div",Ze,[l(_,{modelValue:n(o).author,"onUpdate:modelValue":e[3]||(e[3]=a=>n(o).author=a),clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"备注"},{default:t(()=>[u("div",he,[l(_,{modelValue:n(o).remark,"onUpdate:modelValue":e[4]||(e[4]=a=>n(o).remark=a),class:"w-full",type:"textarea",autosize:{minRows:4,maxRows:4},maxlength:"200","show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1})]),_:1}),l(N,{label:"字段管理",name:"column"},{default:t(()=>[l(X,{data:n(o).table_column},{default:t(()=>[l(i,{label:"字段列名",prop:"column_name"}),l(i,{label:"字段描述",prop:"column_comment","min-width":"120"},{default:t(({row:a})=>[l(_,{modelValue:a.column_comment,"onUpdate:modelValue":s=>a.column_comment=s,clearable:""},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"物理类型",prop:"column_type"}),l(i,{label:"必填",width:"80"},{header:t(()=>[u("div",el,[l(f,{modelValue:n(g),"onUpdate:modelValue":e[5]||(e[5]=a=>C(g)?g.value=a:null),onChange:oe},null,8,["modelValue"]),e[26]||(e[26]=u("span",null,"必填",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_required,"onUpdate:modelValue":s=>a.is_required=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"插入",width:"80"},{header:t(()=>[u("div",ll,[l(f,{modelValue:n(A),"onUpdate:modelValue":e[6]||(e[6]=a=>C(A)?A.value=a:null),onChange:ne},null,8,["modelValue"]),e[27]||(e[27]=u("span",null,"插入",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_insert,"onUpdate:modelValue":s=>a.is_insert=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"编辑",width:"80"},{header:t(()=>[u("div",al,[l(f,{modelValue:n($),"onUpdate:modelValue":e[7]||(e[7]=a=>C($)?$.value=a:null),onChange:ue},null,8,["modelValue"]),e[28]||(e[28]=u("span",null,"编辑",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_update,"onUpdate:modelValue":s=>a.is_update=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"列表",width:"80"},{header:t(()=>[u("div",tl,[l(f,{modelValue:n(I),"onUpdate:modelValue":e[8]||(e[8]=a=>C(I)?I.value=a:null),onChange:de},null,8,["modelValue"]),e[29]||(e[29]=u("span",null,"列表",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_lists,"onUpdate:modelValue":s=>a.is_lists=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"查询",width:"80"},{header:t(()=>[u("div",ol,[l(f,{modelValue:n(T),"onUpdate:modelValue":e[9]||(e[9]=a=>C(T)?T.value=a:null),onChange:se},null,8,["modelValue"]),e[30]||(e[30]=u("span",null,"查询",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_query,"onUpdate:modelValue":s=>a.is_query=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"查询方式"},{default:t(({row:a})=>[l(U,{modelValue:a.query_type,"onUpdate:modelValue":s=>a.query_type=s},{default:t(()=>[l(m,{label:"=",value:"="}),l(m,{label:"!=",value:"!="}),l(m,{label:">",value:">"}),l(m,{label:">=",value:">="}),l(m,{label:"<",value:"<"}),l(m,{label:"<=",value:"<="}),l(m,{label:"LIKE",value:"like"}),l(m,{label:"BETWEEN",value:"between"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"显示类型","min-width":"120"},{default:t(({row:a})=>[l(U,{modelValue:a.view_type,"onUpdate:modelValue":s=>a.view_type=s},{default:t(()=>[l(m,{label:"文本框",value:"input"}),l(m,{label:"文本域",value:"textarea"}),l(m,{label:"下拉框",value:"select"}),l(m,{label:"单选框",value:"radio"}),l(m,{label:"复选框",value:"checkbox"}),l(m,{label:"日期控件",value:"datetime"}),l(m,{label:"图片选择控件",value:"imageSelect"}),l(m,{label:"富文本控件",value:"editor"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"字典类型","min-width":"120"},{default:t(({row:a})=>[l(U,{modelValue:a.dict_type,"onUpdate:modelValue":s=>a.dict_type=s,clearable:"",disabled:!(a.view_type=="select"||a.view_type=="radio"||a.view_type=="checkbox"),placeholder:"字典类型"},{default:t(()=>[(p(!0),v(q,null,D(n(M).dict_type,(s,K)=>(p(),w(m,{key:K,label:s.name,value:s.type,disabled:!s.status},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"])]),_:1})]),_:1},8,["data"])]),_:1}),l(N,{label:"生成配置",name:"config"},{default:t(()=>[l(r,{label:"模板类型",prop:"template_type"},{default:t(()=>[l(B,{modelValue:n(o).template_type,"onUpdate:modelValue":e[10]||(e[10]=a=>n(o).template_type=a)},{default:t(()=>[l(y,{value:0},{default:t(()=>[...e[31]||(e[31]=[b("单表(curd)",-1)])]),_:1}),l(y,{value:1},{default:t(()=>[...e[32]||(e[32]=[b("树表(curd)",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"删除类型",prop:"delete.type"},{default:t(()=>[l(B,{modelValue:n(o).delete.type,"onUpdate:modelValue":e[11]||(e[11]=a=>n(o).delete.type=a)},{default:t(()=>[l(y,{value:0},{default:t(()=>[...e[33]||(e[33]=[b("物理删除",-1)])]),_:1}),l(y,{value:1},{default:t(()=>[...e[34]||(e[34]=[b("软删除",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),n(o).delete.type==1?(p(),w(r,{key:0,label:"删除字段",prop:"delete.name"},{default:t(()=>[l(U,{class:"w-80",modelValue:n(o).delete.name,"onUpdate:modelValue":e[12]||(e[12]=a=>n(o).delete.name=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1})):Q("",!0),n(o).template_type==1?(p(),v(q,{key:1},[l(r,{label:"树表ID",prop:"treePrimary"},{default:t(()=>[u("div",null,[l(U,{class:"w-80",modelValue:n(o).tree.tree_id,"onUpdate:modelValue":e[13]||(e[13]=a=>n(o).tree.tree_id=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"]),e[35]||(e[35]=u("div",{class:"form-tips"},"指定树表的主要ID,一般为主键",-1))])]),_:1}),l(r,{label:"树表父ID",prop:"treeParent"},{default:t(()=>[u("div",null,[l(U,{class:"w-80",modelValue:n(o).tree.tree_pid,"onUpdate:modelValue":e[14]||(e[14]=a=>n(o).tree.tree_pid=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"]),e[36]||(e[36]=u("div",{class:"form-tips"},"指定树表的父ID,比如:parent_id",-1))])]),_:1}),l(r,{label:"树名称",prop:"treeName"},{default:t(()=>[l(U,{class:"w-80",modelValue:n(o).tree.tree_name,"onUpdate:modelValue":e[15]||(e[15]=a=>n(o).tree.tree_name=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1})],64)):Q("",!0),l(r,{label:"类描述"},{default:t(()=>[u("div",nl,[u("div",null,[l(_,{modelValue:n(o).class_comment,"onUpdate:modelValue":e[16]||(e[16]=a=>n(o).class_comment=a),placeholder:"请输入文件描述",clearable:""},null,8,["modelValue"])]),e[37]||(e[37]=u("div",{class:"form-tips"},[u("div",null," 例:填写test,生成文件描述为test控制器(test逻辑/test模型) ")],-1))])]),_:1}),l(r,{label:"生成方式",prop:"generate_type"},{default:t(()=>[l(B,{modelValue:n(o).generate_type,"onUpdate:modelValue":e[17]||(e[17]=a=>n(o).generate_type=a)},{default:t(()=>[l(y,{value:0},{default:t(()=>[...e[38]||(e[38]=[b("压缩包下载",-1)])]),_:1}),l(y,{value:1},{default:t(()=>[...e[39]||(e[39]=[b("生成到模块",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"模块名",prop:"module_name"},{default:t(()=>[u("div",ul,[l(_,{modelValue:n(o).module_name,"onUpdate:modelValue":e[18]||(e[18]=a=>n(o).module_name=a),placeholder:"请输入模块名",clearable:""},null,8,["modelValue"]),e[40]||(e[40]=u("div",{class:"form-tips"},"生成文件所在模块",-1))])]),_:1}),l(r,{label:"类目录"},{default:t(()=>[u("div",dl,[u("div",null,[l(_,{modelValue:n(o).class_dir,"onUpdate:modelValue":e[19]||(e[19]=a=>n(o).class_dir=a),placeholder:"请输入文件所在目录",clearable:""},null,8,["modelValue"])]),e[41]||(e[41]=u("div",{class:"form-tips"},[u("div",null," 例:填写test,则在app/模块名/controller/test下生成控制器 ")],-1))])]),_:1}),l(r,{label:"父级菜单",prop:"menu.pid"},{default:t(()=>[l(be,{class:"w-80",modelValue:n(o).menu.pid,"onUpdate:modelValue":e[20]||(e[20]=a=>n(o).menu.pid=a),data:n(M).menu,clearable:"","node-key":"id",props:{label:"name"},"default-expand-all":"",placeholder:"请选择父级菜单","check-strictly":""},null,8,["modelValue","data"])]),_:1}),l(r,{label:"菜单名称",prop:"menu.name"},{default:t(()=>[u("div",sl,[l(_,{modelValue:n(o).menu.name,"onUpdate:modelValue":e[21]||(e[21]=a=>n(o).menu.name=a),placeholder:"请输入菜单名称",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"菜单构建",prop:"menu.type",required:""},{default:t(()=>[u("div",null,[l(B,{modelValue:n(o).menu.type,"onUpdate:modelValue":e[22]||(e[22]=a=>n(o).menu.type=a)},{default:t(()=>[l(y,{value:1},{default:t(()=>[...e[42]||(e[42]=[b("自动构建",-1)])]),_:1}),l(y,{value:0},{default:t(()=>[...e[43]||(e[43]=[b("手动添加",-1)])]),_:1})]),_:1},8,["modelValue"]),e[44]||(e[44]=u("div",{class:"form-tips"}," 自动构建:自动执行生成菜单sql。手动添加:自行添加菜单。 ",-1))])]),_:1})]),_:1}),l(N,{label:"关联配置",name:"relations"},{default:t(()=>[l(P,{type:"primary",onClick:e[23]||(e[23]=a=>H("add"))},{icon:t(()=>[l(fe,{name:"el-icon-Plus"})]),default:t(()=>[e[45]||(e[45]=b(" 新增关联 ",-1))]),_:1}),u("div",ml,[l(X,{data:n(o).relations,size:"small"},{default:t(()=>[l(i,{prop:"type",label:"关联类型"},{default:t(({row:a})=>[l(Y,{value:a.type,options:F},null,8,["value"])]),_:1}),l(i,{prop:"name",label:"关联名称"}),l(i,{prop:"model",label:"关联模型"}),l(i,{prop:"local_key",label:"关联键"},{default:t(({row:a})=>[l(Y,{value:a.local_key,options:n(o).table_column,config:{label:"column_comment",value:"column_name"}},null,8,["value","options"])]),_:1}),l(i,{prop:"foreign_key",label:"外键"}),l(i,{label:"操作"},{default:t(({row:a,$index:s})=>[l(P,{link:"",type:"primary",onClick:K=>H("edit",a,s)},{default:t(()=>[...e[46]||(e[46]=[b(" 编辑 ",-1)])]),_:1},8,["onClick"]),l(P,{link:"",type:"danger",onClick:K=>ie(s)},{default:t(()=>[...e[47]||(e[47]=[b(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"]),n(x)?(p(),w(He,{key:0,column:n(o).table_column,types:F,ref_key:"editRef",ref:j,onAdd:me,onEdit:re,onClose:e[24]||(e[24]=a=>x.value=!1)},null,8,["column"])):Q("",!0)])]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["model","rules"])]),_:1}),l(Ve,null,{default:t(()=>[l(P,{type:"primary",onClick:_e},{default:t(()=>[...e[48]||(e[48]=[b("保存",-1)])]),_:1})]),_:1})])}}}),kl=je(il,[["__scopeId","data-v-f4669353"]]);export{kl as default};
+import{_ as ye}from"./index-DJsqtYWG.js";import{o as z,q as p,r as v,F as q,G as D,T as J,u as n,p as Z,Q as ge,W as ke,v as l,D as t,bp as Ue,bh as we,b9 as Ee,Y as qe,C,X as xe,b6 as Ce,s as u,b7 as De,bi as Re,bj as Ae,bd as $e,bf as Ie,bg as Te,O as w,bc as Be,bo as Ne,L as b,P as Q,bK as Pe,K as Le,M as E,ba as h,a8 as ee,n as Oe,l as le,bL as ae,R as Se}from"./.pnpm-BuKxIMgQ.js";import{c as Fe,j as te,_ as je}from"./index-BZAvl557.js";import{m as Ke}from"./menu-BxP-O3HL.js";import{d as Qe}from"./dict-DJCviyhe.js";import{t as ze,g as Ge}from"./code-BRHue65G.js";import{u as We}from"./useDictOptions-C2rBJRQa.js";import{_ as He}from"./relations-add.vue_vue_type_script_setup_true_lang-CNA-3KOP.js";import"./index-BARAiw4K.js";const Me=z({__name:"index",props:{options:{default:()=>[]},value:{},config:{default:()=>({label:"name",value:"value"})}},setup(L){const c=L,O=Z(()=>c.value!==null&&typeof c.value<"u"?Array.isArray(c.value)?c.value:String(c.value).split(","):[]),R=Z(()=>c.options.filter(x=>O.value.includes(x[c.config.value])));return(x,S)=>(p(),v("div",null,[(p(!0),v(q,null,D(n(R),(o,g)=>(p(),v("span",{key:g},J(g!=0?"、":"")+J(o[L.config.label]),1))),128))]))}}),Xe={class:"code-edit"},Ye={class:"w-80"},Je={class:"w-80"},Ze={class:"w-80"},he={class:"w-80"},el={class:"header-checkbox"},ll={class:"header-checkbox"},al={class:"header-checkbox"},tl={class:"header-checkbox"},ol={class:"header-checkbox"},nl={class:"w-80"},ul={class:"w-80"},dl={class:"w-80"},sl={class:"w-80"},ml={class:"mt-4"},rl=z({name:"tableEdit"}),il=z({...rl,setup(L){const c=ge(),O=ke(),R=E("column"),x=E(!1),S=[{name:"一对一",value:"has_one"},{name:"一对多",value:"has_many"}],o=h({id:"",table_name:"",table_comment:"",author:"",remark:"",template_type:0,generate_type:0,module_name:"",class_dir:"",class_comment:"",table_column:[],menu:{pid:0,name:"",type:0},tree:{tree_id:0,tree_pid:0,tree_name:0},delete:{name:"",type:0},relations:[]}),g=E(!1),A=E(!1),$=E(!1),I=E(!1),T=E(!1),oe=()=>{o.table_column.forEach(d=>{d.is_required=g.value?1:0})},ne=()=>{o.table_column.forEach(d=>{d.is_insert=A.value?1:0})},ue=()=>{o.table_column.forEach(d=>{d.is_update=$.value?1:0})},de=()=>{o.table_column.forEach(d=>{d.is_lists=I.value?1:0})},se=()=>{o.table_column.forEach(d=>{d.is_query=T.value?1:0})};let F=0;const G=ee(),j=ee(),W=h({table_name:[{required:!0,message:"请输入表名称"}],table_comment:[{required:!0,message:"请输入表描述"}],module_name:[{required:!0,message:"请输入模块名"}],generate_type:[{required:!0,trigger:"change"}],template_type:[{required:!0,trigger:"change"}],"menu.pid":[{required:!0,message:"请选择父级菜单"}],"menu.name":[{required:!0,message:"请输入菜单名称"}],"delete.type":[{required:!0,trigger:"change"}],"delete.name":[{required:!0,message:"请选择删除字段"}]}),H=async(d,e,k)=>{var V,_;x.value=!0,await Oe(),e&&k!==void 0&&((V=j.value)==null||V.setFormData(e),F=k),(_=j.value)==null||_.open(d)},me=d=>{const e=le.cloneDeep(ae(d));o.relations.push(e)},re=async d=>{const e=le.cloneDeep(ae(d));console.log(F),o.relations.splice(F,1,e)},ie=d=>{o.relations.splice(d,1)},pe=async()=>{const d=await ze({id:c.query.id});Object.keys(o).forEach(e=>{o[e]=d[e]}),Se(()=>o.generate_type,e=>{e==1&&te.confirm("生成到模块方式如遇同名文件会覆盖旧文件,确定要选择此方式吗?").catch(()=>{o.generate_type=0})})},{optionsData:M}=We({dict_type:{api:Qe},menu:{api:Ke,transformData(d){const e={id:0,name:"顶级",children:[]};return e.children=d,[e]}}}),_e=async()=>{var d,e;try{await((d=G.value)==null?void 0:d.validate()),await Ge(o),O.back()}catch(k){for(const V in k)Object.keys(W).includes(V)&&te.msgError((e=k[V][0])==null?void 0:e.message)}};return pe(),(d,e)=>{const k=Ue,V=we,_=De,r=Ce,B=xe,i=Ae,f=$e,m=Te,U=Ie,X=Re,y=Ne,N=Be,be=Pe,fe=Fe,P=Le,Y=Me,ve=qe,ce=Ee,Ve=ye;return p(),v("div",Xe,[l(V,{class:"!border-none",shadow:"never"},{default:t(()=>[l(k,{content:"编辑数据表",onBack:e[0]||(e[0]=a=>d.$router.back())})]),_:1}),l(V,{class:"mt-4 !border-none",shadow:"never"},{default:t(()=>[l(ce,{ref_key:"formRef",ref:G,class:"ls-form",model:n(o),"label-width":"100px",rules:n(W)},{default:t(()=>[l(ve,{modelValue:n(R),"onUpdate:modelValue":e[25]||(e[25]=a=>C(R)?R.value=a:null)},{default:t(()=>[l(B,{label:"基础信息",name:"base"},{default:t(()=>[l(r,{label:"表名称",prop:"table_name"},{default:t(()=>[u("div",Ye,[l(_,{modelValue:n(o).table_name,"onUpdate:modelValue":e[1]||(e[1]=a=>n(o).table_name=a),placeholder:"请输入表名称",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"表描述",prop:"table_comment"},{default:t(()=>[u("div",Je,[l(_,{modelValue:n(o).table_comment,"onUpdate:modelValue":e[2]||(e[2]=a=>n(o).table_comment=a),placeholder:"请输入表描述",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"作者"},{default:t(()=>[u("div",Ze,[l(_,{modelValue:n(o).author,"onUpdate:modelValue":e[3]||(e[3]=a=>n(o).author=a),clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"备注"},{default:t(()=>[u("div",he,[l(_,{modelValue:n(o).remark,"onUpdate:modelValue":e[4]||(e[4]=a=>n(o).remark=a),class:"w-full",type:"textarea",autosize:{minRows:4,maxRows:4},maxlength:"200","show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1})]),_:1}),l(B,{label:"字段管理",name:"column"},{default:t(()=>[l(X,{data:n(o).table_column},{default:t(()=>[l(i,{label:"字段列名",prop:"column_name"}),l(i,{label:"字段描述",prop:"column_comment","min-width":"120"},{default:t(({row:a})=>[l(_,{modelValue:a.column_comment,"onUpdate:modelValue":s=>a.column_comment=s,clearable:""},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"物理类型",prop:"column_type"}),l(i,{label:"必填",width:"80"},{header:t(()=>[u("div",el,[l(f,{modelValue:n(g),"onUpdate:modelValue":e[5]||(e[5]=a=>C(g)?g.value=a:null),onChange:oe},null,8,["modelValue"]),e[26]||(e[26]=u("span",null,"必填",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_required,"onUpdate:modelValue":s=>a.is_required=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"插入",width:"80"},{header:t(()=>[u("div",ll,[l(f,{modelValue:n(A),"onUpdate:modelValue":e[6]||(e[6]=a=>C(A)?A.value=a:null),onChange:ne},null,8,["modelValue"]),e[27]||(e[27]=u("span",null,"插入",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_insert,"onUpdate:modelValue":s=>a.is_insert=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"编辑",width:"80"},{header:t(()=>[u("div",al,[l(f,{modelValue:n($),"onUpdate:modelValue":e[7]||(e[7]=a=>C($)?$.value=a:null),onChange:ue},null,8,["modelValue"]),e[28]||(e[28]=u("span",null,"编辑",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_update,"onUpdate:modelValue":s=>a.is_update=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"列表",width:"80"},{header:t(()=>[u("div",tl,[l(f,{modelValue:n(I),"onUpdate:modelValue":e[8]||(e[8]=a=>C(I)?I.value=a:null),onChange:de},null,8,["modelValue"]),e[29]||(e[29]=u("span",null,"列表",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_lists,"onUpdate:modelValue":s=>a.is_lists=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"查询",width:"80"},{header:t(()=>[u("div",ol,[l(f,{modelValue:n(T),"onUpdate:modelValue":e[9]||(e[9]=a=>C(T)?T.value=a:null),onChange:se},null,8,["modelValue"]),e[30]||(e[30]=u("span",null,"查询",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_query,"onUpdate:modelValue":s=>a.is_query=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"查询方式"},{default:t(({row:a})=>[l(U,{modelValue:a.query_type,"onUpdate:modelValue":s=>a.query_type=s},{default:t(()=>[l(m,{label:"=",value:"="}),l(m,{label:"!=",value:"!="}),l(m,{label:">",value:">"}),l(m,{label:">=",value:">="}),l(m,{label:"<",value:"<"}),l(m,{label:"<=",value:"<="}),l(m,{label:"LIKE",value:"like"}),l(m,{label:"BETWEEN",value:"between"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"显示类型","min-width":"120"},{default:t(({row:a})=>[l(U,{modelValue:a.view_type,"onUpdate:modelValue":s=>a.view_type=s},{default:t(()=>[l(m,{label:"文本框",value:"input"}),l(m,{label:"文本域",value:"textarea"}),l(m,{label:"下拉框",value:"select"}),l(m,{label:"单选框",value:"radio"}),l(m,{label:"复选框",value:"checkbox"}),l(m,{label:"日期控件",value:"datetime"}),l(m,{label:"图片选择控件",value:"imageSelect"}),l(m,{label:"富文本控件",value:"editor"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"字典类型","min-width":"120"},{default:t(({row:a})=>[l(U,{modelValue:a.dict_type,"onUpdate:modelValue":s=>a.dict_type=s,clearable:"",disabled:!(a.view_type=="select"||a.view_type=="radio"||a.view_type=="checkbox"),placeholder:"字典类型"},{default:t(()=>[(p(!0),v(q,null,D(n(M).dict_type,(s,K)=>(p(),w(m,{key:K,label:s.name,value:s.type,disabled:!s.status},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"])]),_:1})]),_:1},8,["data"])]),_:1}),l(B,{label:"生成配置",name:"config"},{default:t(()=>[l(r,{label:"模板类型",prop:"template_type"},{default:t(()=>[l(N,{modelValue:n(o).template_type,"onUpdate:modelValue":e[10]||(e[10]=a=>n(o).template_type=a)},{default:t(()=>[l(y,{value:0},{default:t(()=>[...e[31]||(e[31]=[b("单表(curd)",-1)])]),_:1}),l(y,{value:1},{default:t(()=>[...e[32]||(e[32]=[b("树表(curd)",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"删除类型",prop:"delete.type"},{default:t(()=>[l(N,{modelValue:n(o).delete.type,"onUpdate:modelValue":e[11]||(e[11]=a=>n(o).delete.type=a)},{default:t(()=>[l(y,{value:0},{default:t(()=>[...e[33]||(e[33]=[b("物理删除",-1)])]),_:1}),l(y,{value:1},{default:t(()=>[...e[34]||(e[34]=[b("软删除",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),n(o).delete.type==1?(p(),w(r,{key:0,label:"删除字段",prop:"delete.name"},{default:t(()=>[l(U,{class:"w-80",modelValue:n(o).delete.name,"onUpdate:modelValue":e[12]||(e[12]=a=>n(o).delete.name=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1})):Q("",!0),n(o).template_type==1?(p(),v(q,{key:1},[l(r,{label:"树表ID",prop:"treePrimary"},{default:t(()=>[u("div",null,[l(U,{class:"w-80",modelValue:n(o).tree.tree_id,"onUpdate:modelValue":e[13]||(e[13]=a=>n(o).tree.tree_id=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"]),e[35]||(e[35]=u("div",{class:"form-tips"},"指定树表的主要ID,一般为主键",-1))])]),_:1}),l(r,{label:"树表父ID",prop:"treeParent"},{default:t(()=>[u("div",null,[l(U,{class:"w-80",modelValue:n(o).tree.tree_pid,"onUpdate:modelValue":e[14]||(e[14]=a=>n(o).tree.tree_pid=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"]),e[36]||(e[36]=u("div",{class:"form-tips"},"指定树表的父ID,比如:parent_id",-1))])]),_:1}),l(r,{label:"树名称",prop:"treeName"},{default:t(()=>[l(U,{class:"w-80",modelValue:n(o).tree.tree_name,"onUpdate:modelValue":e[15]||(e[15]=a=>n(o).tree.tree_name=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1})],64)):Q("",!0),l(r,{label:"类描述"},{default:t(()=>[u("div",nl,[u("div",null,[l(_,{modelValue:n(o).class_comment,"onUpdate:modelValue":e[16]||(e[16]=a=>n(o).class_comment=a),placeholder:"请输入文件描述",clearable:""},null,8,["modelValue"])]),e[37]||(e[37]=u("div",{class:"form-tips"},[u("div",null," 例:填写test,生成文件描述为test控制器(test逻辑/test模型) ")],-1))])]),_:1}),l(r,{label:"生成方式",prop:"generate_type"},{default:t(()=>[l(N,{modelValue:n(o).generate_type,"onUpdate:modelValue":e[17]||(e[17]=a=>n(o).generate_type=a)},{default:t(()=>[l(y,{value:0},{default:t(()=>[...e[38]||(e[38]=[b("压缩包下载",-1)])]),_:1}),l(y,{value:1},{default:t(()=>[...e[39]||(e[39]=[b("生成到模块",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"模块名",prop:"module_name"},{default:t(()=>[u("div",ul,[l(_,{modelValue:n(o).module_name,"onUpdate:modelValue":e[18]||(e[18]=a=>n(o).module_name=a),placeholder:"请输入模块名",clearable:""},null,8,["modelValue"]),e[40]||(e[40]=u("div",{class:"form-tips"},"生成文件所在模块",-1))])]),_:1}),l(r,{label:"类目录"},{default:t(()=>[u("div",dl,[u("div",null,[l(_,{modelValue:n(o).class_dir,"onUpdate:modelValue":e[19]||(e[19]=a=>n(o).class_dir=a),placeholder:"请输入文件所在目录",clearable:""},null,8,["modelValue"])]),e[41]||(e[41]=u("div",{class:"form-tips"},[u("div",null," 例:填写test,则在app/模块名/controller/test下生成控制器 ")],-1))])]),_:1}),l(r,{label:"父级菜单",prop:"menu.pid"},{default:t(()=>[l(be,{class:"w-80",modelValue:n(o).menu.pid,"onUpdate:modelValue":e[20]||(e[20]=a=>n(o).menu.pid=a),data:n(M).menu,clearable:"","node-key":"id",props:{label:"name"},"default-expand-all":"",placeholder:"请选择父级菜单","check-strictly":""},null,8,["modelValue","data"])]),_:1}),l(r,{label:"菜单名称",prop:"menu.name"},{default:t(()=>[u("div",sl,[l(_,{modelValue:n(o).menu.name,"onUpdate:modelValue":e[21]||(e[21]=a=>n(o).menu.name=a),placeholder:"请输入菜单名称",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"菜单构建",prop:"menu.type",required:""},{default:t(()=>[u("div",null,[l(N,{modelValue:n(o).menu.type,"onUpdate:modelValue":e[22]||(e[22]=a=>n(o).menu.type=a)},{default:t(()=>[l(y,{value:1},{default:t(()=>[...e[42]||(e[42]=[b("自动构建",-1)])]),_:1}),l(y,{value:0},{default:t(()=>[...e[43]||(e[43]=[b("手动添加",-1)])]),_:1})]),_:1},8,["modelValue"]),e[44]||(e[44]=u("div",{class:"form-tips"}," 自动构建:自动执行生成菜单sql。手动添加:自行添加菜单。 ",-1))])]),_:1})]),_:1}),l(B,{label:"关联配置",name:"relations"},{default:t(()=>[l(P,{type:"primary",onClick:e[23]||(e[23]=a=>H("add"))},{icon:t(()=>[l(fe,{name:"el-icon-Plus"})]),default:t(()=>[e[45]||(e[45]=b(" 新增关联 ",-1))]),_:1}),u("div",ml,[l(X,{data:n(o).relations,size:"small"},{default:t(()=>[l(i,{prop:"type",label:"关联类型"},{default:t(({row:a})=>[l(Y,{value:a.type,options:S},null,8,["value"])]),_:1}),l(i,{prop:"name",label:"关联名称"}),l(i,{prop:"model",label:"关联模型"}),l(i,{prop:"local_key",label:"关联键"},{default:t(({row:a})=>[l(Y,{value:a.local_key,options:n(o).table_column,config:{label:"column_comment",value:"column_name"}},null,8,["value","options"])]),_:1}),l(i,{prop:"foreign_key",label:"外键"}),l(i,{label:"操作"},{default:t(({row:a,$index:s})=>[l(P,{link:"",type:"primary",onClick:K=>H("edit",a,s)},{default:t(()=>[...e[46]||(e[46]=[b(" 编辑 ",-1)])]),_:1},8,["onClick"]),l(P,{link:"",type:"danger",onClick:K=>ie(s)},{default:t(()=>[...e[47]||(e[47]=[b(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"]),n(x)?(p(),w(He,{key:0,column:n(o).table_column,types:S,ref_key:"editRef",ref:j,onAdd:me,onEdit:re,onClose:e[24]||(e[24]=a=>x.value=!1)},null,8,["column"])):Q("",!0)])]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["model","rules"])]),_:1}),l(Ve,null,{default:t(()=>[l(P,{type:"primary",onClick:_e},{default:t(()=>[...e[48]||(e[48]=[b("保存",-1)])]),_:1})]),_:1})])}}}),kl=je(il,[["__scopeId","data-v-f4669353"]]);export{kl as default};
diff --git a/server/public/admin/assets/edit-DCPxPK7S.js b/server/public/admin/assets/edit-DCPxPK7S.js
deleted file mode 100644
index 8a1c948d0..000000000
--- a/server/public/admin/assets/edit-DCPxPK7S.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-CXzpO6zZ.js";import"./.pnpm-BHOjf1ZS.js";import"./post-BX0OihZx.js";import"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";export{o as default};
diff --git a/server/public/admin/assets/edit-DHU8E1YD.js b/server/public/admin/assets/edit-DHU8E1YD.js
new file mode 100644
index 000000000..cf4edbd7b
--- /dev/null
+++ b/server/public/admin/assets/edit-DHU8E1YD.js
@@ -0,0 +1 @@
+import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-DsQpdPgp.js";import"./.pnpm-BuKxIMgQ.js";import"./picker.vue_vue_type_script_setup_true_lang-Z843pVBd.js";import"./index-BZAvl557.js";import"./menu-BxP-O3HL.js";import"./index-BARAiw4K.js";export{o as default};
diff --git a/server/public/admin/assets/edit-DHjA93-I.js b/server/public/admin/assets/edit-DHjA93-I.js
deleted file mode 100644
index ed53d6a75..000000000
--- a/server/public/admin/assets/edit-DHjA93-I.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang--bBpvCNa.js";import"./.pnpm-BHOjf1ZS.js";import"./department-C6mdNFMs.js";import"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";import"./useDictOptions-DnbupH6P.js";export{o as default};
diff --git a/server/public/admin/assets/edit-wlDy-1qw.js b/server/public/admin/assets/edit-DIppzzTZ.js
similarity index 81%
rename from server/public/admin/assets/edit-wlDy-1qw.js
rename to server/public/admin/assets/edit-DIppzzTZ.js
index a3df24546..292ece2ea 100644
--- a/server/public/admin/assets/edit-wlDy-1qw.js
+++ b/server/public/admin/assets/edit-DIppzzTZ.js
@@ -1 +1 @@
-import{o as T,q as r,r as p,v as n,D as s,b9 as z,u as l,b6 as A,bp as J,bm as K,F as h,G as g,O as k,cC as L,bn as j,s as V,T as H,bK as Q,J as W,b7 as X,a8 as v,M as Z,p as $,ba as ee}from"./.pnpm-BHOjf1ZS.js";import{a as ae,b as te,c as oe}from"./finance-CcpAmLxc.js";import{_ as le}from"./index-Dt_C33Jx.js";import{_ as ne}from"./index-B31vLELt.js";const se={class:"edit-popup"},de={class:"channel-opt-row"},re={class:"opt-name"},ce=T({__name:"edit",props:{mediaChannelGroups:{},deptOptions:{},defaultMediaChannelCode:{}},emits:["success","close"],setup(m,{expose:w,emit:C}){const y=m,_=C,f=v(),i=v(),c=Z("add"),E=$(()=>c.value==="edit"?"编辑账户消耗":"新增账户消耗"),x={value:"id",label:"name",children:"children"},e=ee({id:"",cost_date:"",media_channel_code:"",dept_id:"",amount:0,remark:""}),D={cost_date:[{required:!0,message:"请选择日期",trigger:["change"]}],media_channel_code:[{required:!0,message:"请选择自媒体渠道",trigger:["change"]}],dept_id:[{required:!0,message:"请选择绑定部门",trigger:["change"]}],amount:[{required:!0,message:"请输入账户消耗金额",trigger:["blur","change"]}]},R=()=>{e.id="",e.cost_date="",e.media_channel_code=y.defaultMediaChannelCode||"",e.dept_id="",e.amount=0,e.remark=""},F=async()=>{var t,a;await((t=f.value)==null?void 0:t.validate()),c.value==="edit"?await ae(e):await te(e),(a=i.value)==null||a.close(),_("success")},q=(t="add")=>{var a;c.value=t,R(),(a=i.value)==null||a.open()},b=t=>{e.id=t.id??"",e.cost_date=t.cost_date??"",e.media_channel_code=t.media_channel_code??"",e.dept_id=t.dept_id?Number(t.dept_id):"",e.amount=Number(t.amount??0),e.remark=t.remark??""},M=async t=>{const a=await oe({id:t.id});b(a)},N=()=>{_("close")};return w({open:q,setFormData:b,getDetail:M}),(t,a)=>{const O=J,d=A,U=j,B=L,G=K,I=Q,S=W,Y=X,P=z;return r(),p("div",se,[n(le,{ref_key:"popupRef",ref:i,title:l(E),async:!0,width:"560px",onConfirm:F,onClose:N},{default:s(()=>[n(P,{ref_key:"formRef",ref:f,model:l(e),"label-width":"100px",rules:D},{default:s(()=>[n(d,{label:"日期",prop:"cost_date"},{default:s(()=>[n(O,{modelValue:l(e).cost_date,"onUpdate:modelValue":a[0]||(a[0]=o=>l(e).cost_date=o),type:"date","value-format":"YYYY-MM-DD",placeholder:"请选择日期",disabled:l(c)==="edit"},null,8,["modelValue","disabled"])]),_:1}),n(d,{label:"自媒体渠道",prop:"media_channel_code"},{default:s(()=>[n(G,{modelValue:l(e).media_channel_code,"onUpdate:modelValue":a[1]||(a[1]=o=>l(e).media_channel_code=o),placeholder:"请选择自媒体渠道",class:"account-cost-channel-select w-full",filterable:""},{default:s(()=>[(r(!0),p(h,null,g(m.mediaChannelGroups,o=>(r(),k(B,{key:o.group_name,label:o.group_name},{default:s(()=>[(r(!0),p(h,null,g(o.channels,u=>(r(),k(U,{key:u.channel_code,label:u.channel_name,value:u.channel_code},{default:s(()=>[V("div",de,[V("span",re,H(u.channel_name),1)])]),_:2},1032,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),n(d,{label:"部门",prop:"dept_id"},{default:s(()=>[n(I,{modelValue:l(e).dept_id,"onUpdate:modelValue":a[2]||(a[2]=o=>l(e).dept_id=o),data:m.deptOptions,"node-key":"id",props:x,"default-expand-all":!0,"check-strictly":"",placeholder:"请选择绑定部门",clearable:"",filterable:"",class:"w-full"},null,8,["modelValue","data"])]),_:1}),n(d,{label:"账户消耗",prop:"amount"},{default:s(()=>[n(S,{modelValue:l(e).amount,"onUpdate:modelValue":a[3]||(a[3]=o=>l(e).amount=o),min:0,step:.01,precision:2,class:"w-full"},null,8,["modelValue"])]),_:1}),n(d,{label:"备注",prop:"remark"},{default:s(()=>[n(Y,{modelValue:l(e).remark,"onUpdate:modelValue":a[4]||(a[4]=o=>l(e).remark=o),type:"textarea",autosize:{minRows:4,maxRows:6},maxlength:"255","show-word-limit":"",placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}}),_e=ne(ce,[["__scopeId","data-v-234837b3"]]);export{_e as default};
+import{o as T,q as r,r as p,v as n,D as s,b9 as z,u as l,b6 as A,be as J,bf as K,F as h,G as g,O as k,cC as L,bg as j,s as V,T as H,bK as Q,J as W,b7 as X,a8 as v,M as Z,p as $,ba as ee}from"./.pnpm-BuKxIMgQ.js";import{a as ae,b as te,c as oe}from"./finance-Dz8cnGZe.js";import{_ as le}from"./index-BARAiw4K.js";import{_ as ne}from"./index-BZAvl557.js";const se={class:"edit-popup"},de={class:"channel-opt-row"},re={class:"opt-name"},ce=T({__name:"edit",props:{mediaChannelGroups:{},deptOptions:{},defaultMediaChannelCode:{}},emits:["success","close"],setup(i,{expose:w,emit:C}){const y=i,_=C,f=v(),m=v(),c=Z("add"),E=$(()=>c.value==="edit"?"编辑账户消耗":"新增账户消耗"),x={value:"id",label:"name",children:"children"},e=ee({id:"",cost_date:"",media_channel_code:"",dept_id:"",amount:0,remark:""}),D={cost_date:[{required:!0,message:"请选择日期",trigger:["change"]}],media_channel_code:[{required:!0,message:"请选择自媒体渠道",trigger:["change"]}],dept_id:[{required:!0,message:"请选择绑定部门",trigger:["change"]}],amount:[{required:!0,message:"请输入账户消耗金额",trigger:["blur","change"]}]},R=()=>{e.id="",e.cost_date="",e.media_channel_code=y.defaultMediaChannelCode||"",e.dept_id="",e.amount=0,e.remark=""},F=async()=>{var t,a;await((t=f.value)==null?void 0:t.validate()),c.value==="edit"?await ae(e):await te(e),(a=m.value)==null||a.close(),_("success")},q=(t="add")=>{var a;c.value=t,R(),(a=m.value)==null||a.open()},b=t=>{e.id=t.id??"",e.cost_date=t.cost_date??"",e.media_channel_code=t.media_channel_code??"",e.dept_id=t.dept_id?Number(t.dept_id):"",e.amount=Number(t.amount??0),e.remark=t.remark??""},M=async t=>{const a=await oe({id:t.id});b(a)},N=()=>{_("close")};return w({open:q,setFormData:b,getDetail:M}),(t,a)=>{const O=J,d=A,U=j,B=L,G=K,I=Q,S=W,Y=X,P=z;return r(),p("div",se,[n(le,{ref_key:"popupRef",ref:m,title:l(E),async:!0,width:"560px",onConfirm:F,onClose:N},{default:s(()=>[n(P,{ref_key:"formRef",ref:f,model:l(e),"label-width":"100px",rules:D},{default:s(()=>[n(d,{label:"日期",prop:"cost_date"},{default:s(()=>[n(O,{modelValue:l(e).cost_date,"onUpdate:modelValue":a[0]||(a[0]=o=>l(e).cost_date=o),type:"date","value-format":"YYYY-MM-DD",placeholder:"请选择日期",disabled:l(c)==="edit"},null,8,["modelValue","disabled"])]),_:1}),n(d,{label:"自媒体渠道",prop:"media_channel_code"},{default:s(()=>[n(G,{modelValue:l(e).media_channel_code,"onUpdate:modelValue":a[1]||(a[1]=o=>l(e).media_channel_code=o),placeholder:"请选择自媒体渠道",class:"account-cost-channel-select w-full",filterable:""},{default:s(()=>[(r(!0),p(h,null,g(i.mediaChannelGroups,o=>(r(),k(B,{key:o.group_name,label:o.group_name},{default:s(()=>[(r(!0),p(h,null,g(o.channels,u=>(r(),k(U,{key:u.channel_code,label:u.channel_name,value:u.channel_code},{default:s(()=>[V("div",de,[V("span",re,H(u.channel_name),1)])]),_:2},1032,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),n(d,{label:"部门",prop:"dept_id"},{default:s(()=>[n(I,{modelValue:l(e).dept_id,"onUpdate:modelValue":a[2]||(a[2]=o=>l(e).dept_id=o),data:i.deptOptions,"node-key":"id",props:x,"default-expand-all":!0,"check-strictly":"",placeholder:"请选择绑定部门",clearable:"",filterable:"",class:"w-full"},null,8,["modelValue","data"])]),_:1}),n(d,{label:"账户消耗",prop:"amount"},{default:s(()=>[n(S,{modelValue:l(e).amount,"onUpdate:modelValue":a[3]||(a[3]=o=>l(e).amount=o),min:0,step:.01,precision:2,class:"w-full"},null,8,["modelValue"])]),_:1}),n(d,{label:"备注",prop:"remark"},{default:s(()=>[n(Y,{modelValue:l(e).remark,"onUpdate:modelValue":a[4]||(a[4]=o=>l(e).remark=o),type:"textarea",autosize:{minRows:4,maxRows:6},maxlength:"255","show-word-limit":"",placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}}),_e=ne(ce,[["__scopeId","data-v-234837b3"]]);export{_e as default};
diff --git a/server/public/admin/assets/edit-DSHhPuHc.js b/server/public/admin/assets/edit-DSHhPuHc.js
new file mode 100644
index 000000000..6040631d5
--- /dev/null
+++ b/server/public/admin/assets/edit-DSHhPuHc.js
@@ -0,0 +1 @@
+import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-DPqRshhO.js";import"./.pnpm-BuKxIMgQ.js";import"./picker-C-hBLp_q.js";import"./index-BARAiw4K.js";import"./index-BZAvl557.js";import"./index-DO2zctlZ.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./index-BYpT7Ezr.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./usePaging-DNtxCypz.js";import"./department-CGkU6VW9.js";import"./post-BBv3o4dg.js";import"./admin-BdieSbRQ.js";import"./role-CFd3KqwG.js";import"./useDictOptions-C2rBJRQa.js";export{o as default};
diff --git a/server/public/admin/assets/edit-DeRHL5gY.js b/server/public/admin/assets/edit-DeRHL5gY.js
deleted file mode 100644
index 39e810907..000000000
--- a/server/public/admin/assets/edit-DeRHL5gY.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-BX9Ptw0F.js";import"./.pnpm-BHOjf1ZS.js";import"./message-BfQ-ersI.js";import"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";export{o as default};
diff --git a/server/public/admin/assets/edit-DhGWrVYP.js b/server/public/admin/assets/edit-DhGWrVYP.js
new file mode 100644
index 000000000..38b10dc29
--- /dev/null
+++ b/server/public/admin/assets/edit-DhGWrVYP.js
@@ -0,0 +1 @@
+import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-BNtxiZtE.js";import"./.pnpm-BuKxIMgQ.js";import"./role-CFd3KqwG.js";import"./index-BZAvl557.js";import"./index-BARAiw4K.js";export{o as default};
diff --git a/server/public/admin/assets/edit-DhO8tIU8.js b/server/public/admin/assets/edit-DhO8tIU8.js
deleted file mode 100644
index 99cb60a05..000000000
--- a/server/public/admin/assets/edit-DhO8tIU8.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-nLC-UZ7o.js";import"./.pnpm-BHOjf1ZS.js";import"./dict-V0YKjsig.js";import"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";export{o as default};
diff --git a/server/public/admin/assets/edit-CVH4wMJE.js b/server/public/admin/assets/edit-DlEA2OX2.js
similarity index 92%
rename from server/public/admin/assets/edit-CVH4wMJE.js
rename to server/public/admin/assets/edit-DlEA2OX2.js
index 88e2f6eeb..a7c7abff0 100644
--- a/server/public/admin/assets/edit-CVH4wMJE.js
+++ b/server/public/admin/assets/edit-DlEA2OX2.js
@@ -1 +1 @@
-import{o as H,q as y,O as z,B as G,u as l,C as J,D as i,ac as O,r as V,v as o,b9 as $,b6 as j,bf as Q,L as u,T as W,b7 as X,s as n,F as b,bc as Y,P as k,J as Z,K as h,bi as ee,M as m,p as le,e as oe}from"./.pnpm-BHOjf1ZS.js";import{_ as te}from"./picker-DY0rRn6Q.js";import{g as ae,s as ie}from"./pay-B1croW7j.js";import{u as ne}from"./useLockFn-DZaCbVGv.js";import{u as se}from"./getExposeType-BhVtb25-.js";import{_ as de}from"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";import"./index-Mwguss-B.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./index-Btk0rgzN.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./usePaging-oaNM6A9T.js";const re={class:"h-full flex flex-col","element-loading-text":"加载中...","element-loading-background":"var(--el-bg-color)"},pe={class:"flex-1"},ue={class:"flex-1"},me={class:"flex-1"},fe=H({__name:"edit",emits:["refresh"],setup(_e,{expose:x,emit:w}){const f=m(!1),v=se(),U=m(),C=m("profile"),I=m(!1),c=m(!0),_=le(()=>{switch(t.value.pay_way){case 1:return"余额支付";case 2:return"微信支付";case 3:return"支付宝支付";default:return""}}),t=m({id:"",pay_way:0,name:"",icon:"",sort:0,remark:"",domain:"",config:{interface_version:"",merchant_type:"",mch_id:"",pay_sign_key:"",apiclient_cert:"",apiclient_key:"",mode:"",app_id:"",private_key:"",ali_public_key:""}}),E={name:[{required:!0,message:"请输入显示名称"}],"config.mch_id":[{required:!0,message:"请输入微信支付商户号"}],"config.pay_sign_key":[{required:!0,message:"请输入微信支付商户API密钥"}],"config.apiclient_cert":[{required:!0,message:"请输入微信支付证书"}],"config.apiclient_key":[{required:!0,message:"请输入微信支付证书密钥"}],"config.app_id":[{required:!0,message:"请输入支付宝应用ID"}],"config.private_key":[{required:!0,message:"请输入支付宝应用私钥"}],"config.ali_public_key":[{required:!0,message:"请输入支付宝公钥"}]},D=w,P=(d,e,p)=>{c.value=!0,C.value=p||"profile",I.value=e||!1,q(d),U.value=d,f.value=!0},q=async d=>{const e=await ae({id:d});e.config||(e.config=t.value.config),c.value=!1,t.value=e},B=d=>{oe.confirm("修改还未保存,确认退出编辑吗?").then(()=>{d()}).catch(()=>{})},F=()=>{var d;(d=v.value)==null||d.resetFields()},R=async()=>{var d;await((d=v.value)==null?void 0:d.validate()),await ie(t.value),f.value=!1,D("refresh")},{isLock:N,lockFn:A}=ne(R);return x({openHandle:P}),(d,e)=>{const p=Q,s=j,r=X,L=te,g=Y,S=Z,K=h,M=G,T=ee;return y(),z(M,{modelValue:l(f),"onUpdate:modelValue":e[14]||(e[14]=a=>J(f)?f.value=a:null),"destroy-on-close":"",title:`${l(_)}配置`,direction:"rtl",size:"50%",onClose:F,"before-close":B},{default:i(()=>[O((y(),V("div",re,[o(l($),{ref_key:"formRef",ref:v,model:l(t),"label-width":"9rem",rules:E},{default:i(()=>[o(s,{label:"支付方式"},{default:i(()=>[o(p,{value:l(_),"model-value":l(_)},{default:i(()=>[u(W(l(_)),1)]),_:1},8,["value","model-value"])]),_:1}),o(s,{label:"显示名称",prop:"name"},{default:i(()=>[o(r,{modelValue:l(t).name,"onUpdate:modelValue":e[0]||(e[0]=a=>l(t).name=a),placeholder:"请输入显示名称",style:{"max-width":"250px"}},null,8,["modelValue"])]),_:1}),o(s,{label:"图标",prop:"image"},{default:i(()=>[n("div",null,[o(L,{limit:1,disabled:!1,modelValue:l(t).icon,"onUpdate:modelValue":e[1]||(e[1]=a=>l(t).icon=a)},null,8,["modelValue"]),e[15]||(e[15]=n("div",{class:"form-tips"},"建议尺寸:200*200px",-1))])]),_:1}),l(t).pay_way==2?(y(),V(b,{key:0},[o(s,{prop:"config.interface_version",label:"微信支付接口版本"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.interface_version,"onUpdate:modelValue":e[2]||(e[2]=a=>l(t).config.interface_version=a)},{default:i(()=>[o(p,{value:"v3"},{default:i(()=>[...e[16]||(e[16]=[u("V3",-1)])]),_:1})]),_:1},8,["modelValue"]),e[17]||(e[17]=n("div",{class:"form-tips"},"暂时只支持V3版本",-1))])]),_:1}),o(s,{label:"商户类型",prop:"config.merchant_type"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.merchant_type,"onUpdate:modelValue":e[3]||(e[3]=a=>l(t).config.merchant_type=a)},{default:i(()=>[o(p,{value:"ordinary_merchant"},{default:i(()=>[...e[18]||(e[18]=[u("普通商户",-1)])]),_:1})]),_:1},8,["modelValue"]),e[19]||(e[19]=n("div",{class:"form-tips"}," 暂时只支持普通商户类型,服务商户类型模式暂不支持 ",-1))])]),_:1}),o(s,{label:"微信支付商户号",prop:"config.mch_id"},{default:i(()=>[n("div",null,[o(r,{modelValue:l(t).config.mch_id,"onUpdate:modelValue":e[4]||(e[4]=a=>l(t).config.mch_id=a),placeholder:"请输入微信支付商户号",style:{"max-width":"250px"}},null,8,["modelValue"]),e[20]||(e[20]=n("div",{class:"form-tips"},"微信支付商户号(MCHID)",-1))])]),_:1}),o(s,{label:"商户API密钥",prop:"config.pay_sign_key"},{default:i(()=>[n("div",null,[o(r,{modelValue:l(t).config.pay_sign_key,"onUpdate:modelValue":e[5]||(e[5]=a=>l(t).config.pay_sign_key=a),placeholder:"请输入微信支付商户API密钥",style:{"max-width":"250px"}},null,8,["modelValue"]),e[21]||(e[21]=n("div",{class:"form-tips"},"微信支付商户API密钥(paySignKey)",-1))])]),_:1}),o(s,{label:"微信支付证书",prop:"config.apiclient_cert"},{default:i(()=>[n("div",null,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.apiclient_cert,"onUpdate:modelValue":e[6]||(e[6]=a=>l(t).config.apiclient_cert=a),placeholder:"请输入微信支付证书",style:{"max-width":"400px"}},null,8,["modelValue"]),e[22]||(e[22]=n("div",{class:"form-tips"}," 微信支付证书(apiclient_cert.pem),前往微信商家平台生成并黏贴至此处 ",-1))])]),_:1}),o(s,{label:"微信支付证书密钥",prop:"config.apiclient_key"},{default:i(()=>[n("div",null,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.apiclient_key,"onUpdate:modelValue":e[7]||(e[7]=a=>l(t).config.apiclient_key=a),placeholder:"请输入微信支付证书密钥",style:{"max-width":"400px"}},null,8,["modelValue"]),e[23]||(e[23]=n("div",{class:"form-tips"}," 微信支付证书密钥(apiclient_key.pem),前往微信商家平台生成并黏贴至此处 ",-1))])]),_:1}),o(s,{label:"支付授权目录"},{default:i(()=>[...e[24]||(e[24]=[n("div",null,[n("div",null,[n("span",{class:"mr-[20px]"},"https://前台手机域名地址/")])],-1)])]),_:1})],64)):k("",!0),l(t).pay_way==3?(y(),V(b,{key:1},[o(s,{label:"模式",prop:"config.mode"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.mode,"onUpdate:modelValue":e[8]||(e[8]=a=>l(t).config.mode=a)},{default:i(()=>[o(p,{value:"normal_mode"},{default:i(()=>[...e[25]||(e[25]=[u("普通模式",-1)])]),_:1})]),_:1},8,["modelValue"]),e[26]||(e[26]=n("div",{class:"form-tips"},"暂时仅支持支付宝普通模式",-1))])]),_:1}),o(s,{label:"商户类型",prop:"config.merchant_type"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.merchant_type,"onUpdate:modelValue":e[9]||(e[9]=a=>l(t).config.merchant_type=a)},{default:i(()=>[o(p,{value:"ordinary_merchant"},{default:i(()=>[...e[27]||(e[27]=[u("普通商户",-1)])]),_:1})]),_:1},8,["modelValue"]),e[28]||(e[28]=n("div",{class:"form-tips"}," 暂时只支持普通商户类型,服务商户类型模式暂不支持 ",-1))])]),_:1}),o(s,{label:"应用ID",prop:"config.app_id"},{default:i(()=>[n("div",pe,[o(r,{modelValue:l(t).config.app_id,"onUpdate:modelValue":e[10]||(e[10]=a=>l(t).config.app_id=a),placeholder:"请输入支付宝应用ID",style:{"max-width":"250px"}},null,8,["modelValue"]),e[29]||(e[29]=n("div",{class:"form-tips"},"支付宝应用APP_ID",-1))])]),_:1}),o(s,{label:"应用私钥",prop:"config.private_key"},{default:i(()=>[n("div",ue,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.private_key,"onUpdate:modelValue":e[11]||(e[11]=a=>l(t).config.private_key=a),placeholder:"请输入支付宝应用私钥",style:{"max-width":"400px"}},null,8,["modelValue"]),e[30]||(e[30]=n("div",{class:"form-tips"},"支付宝应用私钥(private_key)",-1))])]),_:1}),o(s,{label:"支付宝公钥",prop:"config.ali_public_key"},{default:i(()=>[n("div",me,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.ali_public_key,"onUpdate:modelValue":e[12]||(e[12]=a=>l(t).config.ali_public_key=a),placeholder:"请输入支付宝公钥",style:{"max-width":"400px"}},null,8,["modelValue"]),e[31]||(e[31]=n("div",{class:"form-tips"},"支付宝公钥(alipayCertPublicKey)",-1))])]),_:1})],64)):k("",!0),o(s,{label:"排序",prop:"sort"},{default:i(()=>[n("div",null,[o(S,{modelValue:l(t).sort,"onUpdate:modelValue":e[13]||(e[13]=a=>l(t).sort=a),min:0,max:9999},null,8,["modelValue"]),e[32]||(e[32]=n("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),o(s,null,{default:i(()=>[o(K,{type:"primary",loading:l(N),onClick:l(A)},{default:i(()=>[...e[33]||(e[33]=[u("保存",-1)])]),_:1},8,["loading","onClick"])]),_:1})]),_:1},8,["model"])])),[[T,l(c)]])]),_:1},8,["modelValue","title"])}}}),Pe=de(fe,[["__scopeId","data-v-221f14e8"]]);export{Pe as default};
+import{o as H,q as y,O as z,B as G,u as l,C as J,D as i,ac as O,r as V,v as o,b9 as $,b6 as j,bo as Q,L as u,T as W,b7 as X,s as n,F as b,bc as Y,P as k,J as Z,K as h,bl as ee,M as m,p as le,e as oe}from"./.pnpm-BuKxIMgQ.js";import{_ as te}from"./picker-C-hBLp_q.js";import{g as ae,s as ie}from"./pay-Cxu-T3S8.js";import{u as ne}from"./useLockFn-CV0Q3Wq7.js";import{u as se}from"./getExposeType-BNcoHnAy.js";import{_ as de}from"./index-BZAvl557.js";import"./index-BARAiw4K.js";import"./index-DO2zctlZ.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./index-BYpT7Ezr.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./usePaging-DNtxCypz.js";const re={class:"h-full flex flex-col","element-loading-text":"加载中...","element-loading-background":"var(--el-bg-color)"},pe={class:"flex-1"},ue={class:"flex-1"},me={class:"flex-1"},fe=H({__name:"edit",emits:["refresh"],setup(_e,{expose:x,emit:w}){const f=m(!1),v=se(),U=m(),C=m("profile"),I=m(!1),c=m(!0),_=le(()=>{switch(t.value.pay_way){case 1:return"余额支付";case 2:return"微信支付";case 3:return"支付宝支付";default:return""}}),t=m({id:"",pay_way:0,name:"",icon:"",sort:0,remark:"",domain:"",config:{interface_version:"",merchant_type:"",mch_id:"",pay_sign_key:"",apiclient_cert:"",apiclient_key:"",mode:"",app_id:"",private_key:"",ali_public_key:""}}),E={name:[{required:!0,message:"请输入显示名称"}],"config.mch_id":[{required:!0,message:"请输入微信支付商户号"}],"config.pay_sign_key":[{required:!0,message:"请输入微信支付商户API密钥"}],"config.apiclient_cert":[{required:!0,message:"请输入微信支付证书"}],"config.apiclient_key":[{required:!0,message:"请输入微信支付证书密钥"}],"config.app_id":[{required:!0,message:"请输入支付宝应用ID"}],"config.private_key":[{required:!0,message:"请输入支付宝应用私钥"}],"config.ali_public_key":[{required:!0,message:"请输入支付宝公钥"}]},D=w,P=(d,e,p)=>{c.value=!0,C.value=p||"profile",I.value=e||!1,q(d),U.value=d,f.value=!0},q=async d=>{const e=await ae({id:d});e.config||(e.config=t.value.config),c.value=!1,t.value=e},B=d=>{oe.confirm("修改还未保存,确认退出编辑吗?").then(()=>{d()}).catch(()=>{})},F=()=>{var d;(d=v.value)==null||d.resetFields()},R=async()=>{var d;await((d=v.value)==null?void 0:d.validate()),await ie(t.value),f.value=!1,D("refresh")},{isLock:N,lockFn:A}=ne(R);return x({openHandle:P}),(d,e)=>{const p=Q,s=j,r=X,L=te,g=Y,S=Z,K=h,M=G,T=ee;return y(),z(M,{modelValue:l(f),"onUpdate:modelValue":e[14]||(e[14]=a=>J(f)?f.value=a:null),"destroy-on-close":"",title:`${l(_)}配置`,direction:"rtl",size:"50%",onClose:F,"before-close":B},{default:i(()=>[O((y(),V("div",re,[o(l($),{ref_key:"formRef",ref:v,model:l(t),"label-width":"9rem",rules:E},{default:i(()=>[o(s,{label:"支付方式"},{default:i(()=>[o(p,{value:l(_),"model-value":l(_)},{default:i(()=>[u(W(l(_)),1)]),_:1},8,["value","model-value"])]),_:1}),o(s,{label:"显示名称",prop:"name"},{default:i(()=>[o(r,{modelValue:l(t).name,"onUpdate:modelValue":e[0]||(e[0]=a=>l(t).name=a),placeholder:"请输入显示名称",style:{"max-width":"250px"}},null,8,["modelValue"])]),_:1}),o(s,{label:"图标",prop:"image"},{default:i(()=>[n("div",null,[o(L,{limit:1,disabled:!1,modelValue:l(t).icon,"onUpdate:modelValue":e[1]||(e[1]=a=>l(t).icon=a)},null,8,["modelValue"]),e[15]||(e[15]=n("div",{class:"form-tips"},"建议尺寸:200*200px",-1))])]),_:1}),l(t).pay_way==2?(y(),V(b,{key:0},[o(s,{prop:"config.interface_version",label:"微信支付接口版本"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.interface_version,"onUpdate:modelValue":e[2]||(e[2]=a=>l(t).config.interface_version=a)},{default:i(()=>[o(p,{value:"v3"},{default:i(()=>[...e[16]||(e[16]=[u("V3",-1)])]),_:1})]),_:1},8,["modelValue"]),e[17]||(e[17]=n("div",{class:"form-tips"},"暂时只支持V3版本",-1))])]),_:1}),o(s,{label:"商户类型",prop:"config.merchant_type"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.merchant_type,"onUpdate:modelValue":e[3]||(e[3]=a=>l(t).config.merchant_type=a)},{default:i(()=>[o(p,{value:"ordinary_merchant"},{default:i(()=>[...e[18]||(e[18]=[u("普通商户",-1)])]),_:1})]),_:1},8,["modelValue"]),e[19]||(e[19]=n("div",{class:"form-tips"}," 暂时只支持普通商户类型,服务商户类型模式暂不支持 ",-1))])]),_:1}),o(s,{label:"微信支付商户号",prop:"config.mch_id"},{default:i(()=>[n("div",null,[o(r,{modelValue:l(t).config.mch_id,"onUpdate:modelValue":e[4]||(e[4]=a=>l(t).config.mch_id=a),placeholder:"请输入微信支付商户号",style:{"max-width":"250px"}},null,8,["modelValue"]),e[20]||(e[20]=n("div",{class:"form-tips"},"微信支付商户号(MCHID)",-1))])]),_:1}),o(s,{label:"商户API密钥",prop:"config.pay_sign_key"},{default:i(()=>[n("div",null,[o(r,{modelValue:l(t).config.pay_sign_key,"onUpdate:modelValue":e[5]||(e[5]=a=>l(t).config.pay_sign_key=a),placeholder:"请输入微信支付商户API密钥",style:{"max-width":"250px"}},null,8,["modelValue"]),e[21]||(e[21]=n("div",{class:"form-tips"},"微信支付商户API密钥(paySignKey)",-1))])]),_:1}),o(s,{label:"微信支付证书",prop:"config.apiclient_cert"},{default:i(()=>[n("div",null,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.apiclient_cert,"onUpdate:modelValue":e[6]||(e[6]=a=>l(t).config.apiclient_cert=a),placeholder:"请输入微信支付证书",style:{"max-width":"400px"}},null,8,["modelValue"]),e[22]||(e[22]=n("div",{class:"form-tips"}," 微信支付证书(apiclient_cert.pem),前往微信商家平台生成并黏贴至此处 ",-1))])]),_:1}),o(s,{label:"微信支付证书密钥",prop:"config.apiclient_key"},{default:i(()=>[n("div",null,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.apiclient_key,"onUpdate:modelValue":e[7]||(e[7]=a=>l(t).config.apiclient_key=a),placeholder:"请输入微信支付证书密钥",style:{"max-width":"400px"}},null,8,["modelValue"]),e[23]||(e[23]=n("div",{class:"form-tips"}," 微信支付证书密钥(apiclient_key.pem),前往微信商家平台生成并黏贴至此处 ",-1))])]),_:1}),o(s,{label:"支付授权目录"},{default:i(()=>[...e[24]||(e[24]=[n("div",null,[n("div",null,[n("span",{class:"mr-[20px]"},"https://前台手机域名地址/")])],-1)])]),_:1})],64)):k("",!0),l(t).pay_way==3?(y(),V(b,{key:1},[o(s,{label:"模式",prop:"config.mode"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.mode,"onUpdate:modelValue":e[8]||(e[8]=a=>l(t).config.mode=a)},{default:i(()=>[o(p,{value:"normal_mode"},{default:i(()=>[...e[25]||(e[25]=[u("普通模式",-1)])]),_:1})]),_:1},8,["modelValue"]),e[26]||(e[26]=n("div",{class:"form-tips"},"暂时仅支持支付宝普通模式",-1))])]),_:1}),o(s,{label:"商户类型",prop:"config.merchant_type"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.merchant_type,"onUpdate:modelValue":e[9]||(e[9]=a=>l(t).config.merchant_type=a)},{default:i(()=>[o(p,{value:"ordinary_merchant"},{default:i(()=>[...e[27]||(e[27]=[u("普通商户",-1)])]),_:1})]),_:1},8,["modelValue"]),e[28]||(e[28]=n("div",{class:"form-tips"}," 暂时只支持普通商户类型,服务商户类型模式暂不支持 ",-1))])]),_:1}),o(s,{label:"应用ID",prop:"config.app_id"},{default:i(()=>[n("div",pe,[o(r,{modelValue:l(t).config.app_id,"onUpdate:modelValue":e[10]||(e[10]=a=>l(t).config.app_id=a),placeholder:"请输入支付宝应用ID",style:{"max-width":"250px"}},null,8,["modelValue"]),e[29]||(e[29]=n("div",{class:"form-tips"},"支付宝应用APP_ID",-1))])]),_:1}),o(s,{label:"应用私钥",prop:"config.private_key"},{default:i(()=>[n("div",ue,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.private_key,"onUpdate:modelValue":e[11]||(e[11]=a=>l(t).config.private_key=a),placeholder:"请输入支付宝应用私钥",style:{"max-width":"400px"}},null,8,["modelValue"]),e[30]||(e[30]=n("div",{class:"form-tips"},"支付宝应用私钥(private_key)",-1))])]),_:1}),o(s,{label:"支付宝公钥",prop:"config.ali_public_key"},{default:i(()=>[n("div",me,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.ali_public_key,"onUpdate:modelValue":e[12]||(e[12]=a=>l(t).config.ali_public_key=a),placeholder:"请输入支付宝公钥",style:{"max-width":"400px"}},null,8,["modelValue"]),e[31]||(e[31]=n("div",{class:"form-tips"},"支付宝公钥(alipayCertPublicKey)",-1))])]),_:1})],64)):k("",!0),o(s,{label:"排序",prop:"sort"},{default:i(()=>[n("div",null,[o(S,{modelValue:l(t).sort,"onUpdate:modelValue":e[13]||(e[13]=a=>l(t).sort=a),min:0,max:9999},null,8,["modelValue"]),e[32]||(e[32]=n("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),o(s,null,{default:i(()=>[o(K,{type:"primary",loading:l(N),onClick:l(A)},{default:i(()=>[...e[33]||(e[33]=[u("保存",-1)])]),_:1},8,["loading","onClick"])]),_:1})]),_:1},8,["model"])])),[[T,l(c)]])]),_:1},8,["modelValue","title"])}}}),Pe=de(fe,[["__scopeId","data-v-221f14e8"]]);export{Pe as default};
diff --git a/server/public/admin/assets/edit-DqkxadYj.js b/server/public/admin/assets/edit-DqkxadYj.js
deleted file mode 100644
index 5aacff476..000000000
--- a/server/public/admin/assets/edit-DqkxadYj.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-DEJKyTet.js";import"./.pnpm-BHOjf1ZS.js";import"./picker.vue_vue_type_script_setup_true_lang-B2mG_7nA.js";import"./index-B31vLELt.js";import"./menu-O9ulO-rY.js";import"./index-Dt_C33Jx.js";export{o as default};
diff --git a/server/public/admin/assets/edit-Dt6GlbE-.js b/server/public/admin/assets/edit-Dt6GlbE-.js
deleted file mode 100644
index 336a553af..000000000
--- a/server/public/admin/assets/edit-Dt6GlbE-.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-Byo87JLI.js";import"./.pnpm-BHOjf1ZS.js";import"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";export{o as default};
diff --git a/server/public/admin/assets/edit-Dv1tns1y.js b/server/public/admin/assets/edit-Dv1tns1y.js
deleted file mode 100644
index f7ff09e76..000000000
--- a/server/public/admin/assets/edit-Dv1tns1y.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-iXpXGm_m.js";import"./.pnpm-BHOjf1ZS.js";import"./role-DMU3SLD8.js";import"./index-B31vLELt.js";import"./index-Dt_C33Jx.js";export{o as default};
diff --git a/server/public/admin/assets/edit-LNQ0KAsP.js b/server/public/admin/assets/edit-LNQ0KAsP.js
new file mode 100644
index 000000000..68cb702b2
--- /dev/null
+++ b/server/public/admin/assets/edit-LNQ0KAsP.js
@@ -0,0 +1 @@
+import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-DhA80uZ_.js";import"./.pnpm-BuKxIMgQ.js";import"./index-BZAvl557.js";import"./index-BARAiw4K.js";export{o as default};
diff --git a/server/public/admin/assets/edit-CuquSakO.js b/server/public/admin/assets/edit-U9XtjKO2.js
similarity index 92%
rename from server/public/admin/assets/edit-CuquSakO.js
rename to server/public/admin/assets/edit-U9XtjKO2.js
index 80be07efc..5dec05628 100644
--- a/server/public/admin/assets/edit-CuquSakO.js
+++ b/server/public/admin/assets/edit-U9XtjKO2.js
@@ -1 +1 @@
-import{o as X,q as g,r as y,v as o,D as n,b9 as Y,u as a,bD as Z,L as p,b6 as h,b7 as ee,s as i,bc as le,bf as ae,J as oe,bK as te,bm as ne,F as O,G as S,O as A,bn as de,I as re,T as c,K as se,C as ie,B as ue,a8 as pe,M as V,p as me,ba as F}from"./.pnpm-BHOjf1ZS.js";import{_ as fe}from"./picker-DY0rRn6Q.js";import{b as _e,d as be,e as ge}from"./admin-MPtc__0S.js";import{d as ce}from"./department-C6mdNFMs.js";import{j as Ve}from"./post-BX0OihZx.js";import{j as ve,n as we,_ as ye}from"./index-B31vLELt.js";import{u as xe}from"./useDictOptions-DnbupH6P.js";import"./index-Dt_C33Jx.js";import"./index-Mwguss-B.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./index-Btk0rgzN.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./usePaging-oaNM6A9T.js";const Ue={class:"edit-drawer"},Ee={class:"w-full"},je={class:"ml-2 text-gray-500"},De={class:"ml-2 text-gray-500"},qe={class:"ml-2 text-gray-500"},ke={class:"ml-2 text-gray-500"},Ce={class:"flex justify-end"},Re=X({__name:"edit",emits:["success","close"],setup(Be,{expose:I,emit:N}){function T(r){if(r.status!==1)return!0;const e=r.children;return Array.isArray(e)&&e.length>0}const x=N,U=pe(),m=V(!1),f=V("add"),v=V(!1),E=V([]),G=async()=>{const r=await we({type:"department"});E.value=(r==null?void 0:r.department)||[]},K=me(()=>f.value=="edit"?"编辑医生":"新增医生"),l=F({id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[1],dept_id:[],jobs_id:[],avatar:"",title:"",license_no:"",qualification_images:"",enable_image_consult:1,enable_video_consult:1,enable_charge:0,department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1}),{optionsData:j}=xe({jobs:{api:Ve},dept:{api:ce,params:{apply_data_scope:1}}}),w=(r,e,s)=>{l.password&&(e||s(new Error("请再次输入密码")),e!==l.password&&s(new Error("两次输入密码不一致!"))),s()},_=F({account:[{required:!0,message:"请输入账号",trigger:["blur"]}],name:[{required:!0,message:"请输入姓名",trigger:["blur"]}],gender:[{required:!0,message:"请选择性别",trigger:["change"]}],dept_id:[{required:!0,type:"array",min:1,message:"请选择归属部门",trigger:["change"]}],phone:[{validator:(r,e,s)=>{e&&!/^1[3-9]\d{9}$/.test(e)?s(new Error("请输入正确的手机号")):s()},trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:["blur"]}],password_confirm:[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:w,trigger:"blur"}]}),L=async()=>{var r;try{await((r=U.value)==null?void 0:r.validate()),v.value=!0,f.value=="edit"?await _e(l):await be(l),ve.msgSuccess(f.value=="edit"?"编辑成功":"新增成功"),m.value=!1,x("success")}catch(e){console.error("提交失败:",e)}finally{v.value=!1}},z=(r="add")=>{f.value=r,m.value=!0,G(),r==="add"&&(Object.assign(l,{id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[1],dept_id:[],jobs_id:[],avatar:"",title:"",license_no:"",qualification_images:"",enable_image_consult:1,enable_video_consult:1,enable_charge:0,department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1}),_.password=[{required:!0,message:"请输入密码",trigger:["blur"]}],_.password_confirm=[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:w,trigger:"blur"}])},J=async r=>{_.password=[],_.password_confirm=[{validator:w,trigger:"blur"}];const e=await ge({id:r.id});for(const s in l)e[s]!=null&&e[s]!=null&&(l[s]=e[s]);l.role_id.includes(1)||l.role_id.push(1)},D=()=>{m.value=!1,x("close")};return I({open:z,setFormData:J}),(r,e)=>{const s=Z,u=ee,d=h,q=fe,k=ae,M=le,P=oe,$=te,C=de,R=ne,b=re,H=Y,B=se,Q=ue;return g(),y("div",Ue,[o(Q,{modelValue:a(m),"onUpdate:modelValue":e[23]||(e[23]=t=>ie(m)?m.value=t:null),title:a(K),direction:"rtl",size:"780px","before-close":D},{footer:n(()=>[i("div",Ce,[o(B,{onClick:D},{default:n(()=>[...e[35]||(e[35]=[p("取消",-1)])]),_:1}),o(B,{type:"primary",onClick:L,loading:a(v)},{default:n(()=>[...e[36]||(e[36]=[p("确定",-1)])]),_:1},8,["loading"])])]),default:n(()=>[o(H,{ref_key:"formRef",ref:U,model:a(l),"label-width":"100px",rules:a(_)},{default:n(()=>[o(s,{"content-position":"left"},{default:n(()=>[...e[24]||(e[24]=[p("基本信息",-1)])]),_:1}),o(d,{label:"账号",prop:"account"},{default:n(()=>[o(u,{modelValue:a(l).account,"onUpdate:modelValue":e[0]||(e[0]=t=>a(l).account=t),placeholder:"请输入账号",clearable:""},null,8,["modelValue"])]),_:1}),o(d,{label:"头像"},{default:n(()=>[i("div",null,[i("div",null,[o(q,{modelValue:a(l).avatar,"onUpdate:modelValue":e[1]||(e[1]=t=>a(l).avatar=t),limit:1},null,8,["modelValue"])]),e[25]||(e[25]=i("div",{class:"form-tips"},"建议尺寸:100*100px,支持jpg,jpeg,png格式",-1))])]),_:1}),o(d,{label:"姓名",prop:"name"},{default:n(()=>[o(u,{modelValue:a(l).name,"onUpdate:modelValue":e[2]||(e[2]=t=>a(l).name=t),placeholder:"请输入姓名",clearable:""},null,8,["modelValue"])]),_:1}),o(d,{label:"性别",prop:"gender"},{default:n(()=>[o(M,{modelValue:a(l).gender,"onUpdate:modelValue":e[3]||(e[3]=t=>a(l).gender=t)},{default:n(()=>[o(k,{label:1},{default:n(()=>[...e[26]||(e[26]=[p("男",-1)])]),_:1}),o(k,{label:2},{default:n(()=>[...e[27]||(e[27]=[p("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o(d,{label:"年龄",prop:"age"},{default:n(()=>[o(P,{modelValue:a(l).age,"onUpdate:modelValue":e[4]||(e[4]=t=>a(l).age=t),min:18,max:100,placeholder:"请输入年龄"},null,8,["modelValue"])]),_:1}),o(d,{label:"手机号",prop:"phone"},{default:n(()=>[o(u,{modelValue:a(l).phone,"onUpdate:modelValue":e[5]||(e[5]=t=>a(l).phone=t),placeholder:"请输入手机号",clearable:""},null,8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:n(()=>[...e[28]||(e[28]=[p("组织信息",-1)])]),_:1}),o(d,{label:"归属部门",prop:"dept_id"},{default:n(()=>[i("div",Ee,[o($,{class:"flex-1 w-full",modelValue:a(l).dept_id,"onUpdate:modelValue":e[6]||(e[6]=t=>a(l).dept_id=t),data:a(j).dept,clearable:"",multiple:"","node-key":"id",props:{label:"name",disabled:T},"check-strictly":"","default-expand-all":!0,placeholder:"请选择末级归属部门"},null,8,["modelValue","data","props"]),e[29]||(e[29]=i("div",{class:"form-tips"},"仅可选末级部门(含下级的父部门不可选),与数据权限范围一致。",-1))])]),_:1}),o(d,{label:"岗位",prop:"jobs_id"},{default:n(()=>[o(R,{class:"flex-1",modelValue:a(l).jobs_id,"onUpdate:modelValue":e[7]||(e[7]=t=>a(l).jobs_id=t),clearable:"",multiple:"",placeholder:"请选择岗位"},{default:n(()=>[(g(!0),y(O,null,S(a(j).jobs,(t,W)=>(g(),A(C,{key:W,label:t.name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:n(()=>[...e[30]||(e[30]=[p("专业信息",-1)])]),_:1}),o(d,{label:"职称",prop:"title"},{default:n(()=>[o(u,{modelValue:a(l).title,"onUpdate:modelValue":e[8]||(e[8]=t=>a(l).title=t),placeholder:"如:主任医师、副主任医师",clearable:""},null,8,["modelValue"])]),_:1}),o(d,{label:"执业证书编号",prop:"license_no"},{default:n(()=>[o(u,{modelValue:a(l).license_no,"onUpdate:modelValue":e[9]||(e[9]=t=>a(l).license_no=t),placeholder:"请输入执业证书编号",clearable:""},null,8,["modelValue"])]),_:1}),o(d,{label:"资质图片"},{default:n(()=>[i("div",null,[i("div",null,[o(q,{modelValue:a(l).qualification_images,"onUpdate:modelValue":e[10]||(e[10]=t=>a(l).qualification_images=t),limit:9},null,8,["modelValue"])]),e[31]||(e[31]=i("div",{class:"form-tips"},"上传医生资质证书、荣誉证书等图片,最多9张,建议尺寸:800*600px",-1))])]),_:1}),o(d,{label:"图文问诊"},{default:n(()=>[o(b,{modelValue:a(l).enable_image_consult,"onUpdate:modelValue":e[11]||(e[11]=t=>a(l).enable_image_consult=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),i("span",je,c(a(l).enable_image_consult===1?"已开启":"已关闭"),1)]),_:1}),o(d,{label:"视频问诊"},{default:n(()=>[o(b,{modelValue:a(l).enable_video_consult,"onUpdate:modelValue":e[12]||(e[12]=t=>a(l).enable_video_consult=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),i("span",De,c(a(l).enable_video_consult===1?"已开启":"已关闭"),1)]),_:1}),o(d,{label:"是否开启收费"},{default:n(()=>[o(b,{modelValue:a(l).enable_charge,"onUpdate:modelValue":e[13]||(e[13]=t=>a(l).enable_charge=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),i("span",qe,c(a(l).enable_charge===1?"已开启":"已关闭"),1)]),_:1}),o(d,{label:"所属科室",prop:"department"},{default:n(()=>[o(R,{modelValue:a(l).department,"onUpdate:modelValue":e[14]||(e[14]=t=>a(l).department=t),placeholder:"请选择所属科室",clearable:"",class:"flex-1"},{default:n(()=>[(g(!0),y(O,null,S(a(E),t=>(g(),A(C,{key:t.value,label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(d,{label:"擅长领域",prop:"specialty"},{default:n(()=>[o(u,{modelValue:a(l).specialty,"onUpdate:modelValue":e[15]||(e[15]=t=>a(l).specialty=t),type:"textarea",rows:3,placeholder:"请输入擅长领域"},null,8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:n(()=>[...e[32]||(e[32]=[p("履历信息",-1)])]),_:1}),o(d,{label:"教育背景",prop:"education"},{default:n(()=>[o(u,{modelValue:a(l).education,"onUpdate:modelValue":e[16]||(e[16]=t=>a(l).education=t),type:"textarea",rows:3,placeholder:"请输入教育背景,如:北京中医药大学 中医学博士"},null,8,["modelValue"])]),_:1}),o(d,{label:"工作经历",prop:"experience"},{default:n(()=>[o(u,{modelValue:a(l).experience,"onUpdate:modelValue":e[17]||(e[17]=t=>a(l).experience=t),type:"textarea",rows:4,placeholder:"请输入工作经历"},null,8,["modelValue"])]),_:1}),o(d,{label:"荣誉资质",prop:"honors"},{default:n(()=>[o(u,{modelValue:a(l).honors,"onUpdate:modelValue":e[18]||(e[18]=t=>a(l).honors=t),type:"textarea",rows:3,placeholder:"请输入荣誉资质"},null,8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:n(()=>[...e[33]||(e[33]=[p("账号设置",-1)])]),_:1}),o(d,{label:"密码",prop:"password"},{default:n(()=>[o(u,{modelValue:a(l).password,"onUpdate:modelValue":e[19]||(e[19]=t=>a(l).password=t),"show-password":"",clearable:"",placeholder:a(f)==="edit"?"不修改请留空":"请输入密码"},null,8,["modelValue","placeholder"])]),_:1}),o(d,{label:"确认密码",prop:"password_confirm"},{default:n(()=>[o(u,{modelValue:a(l).password_confirm,"onUpdate:modelValue":e[20]||(e[20]=t=>a(l).password_confirm=t),"show-password":"",clearable:"",placeholder:a(f)==="edit"?"不修改请留空":"请输入确认密码"},null,8,["modelValue","placeholder"])]),_:1}),o(d,{label:"状态"},{default:n(()=>[o(b,{modelValue:a(l).disable,"onUpdate:modelValue":e[21]||(e[21]=t=>a(l).disable=t),"active-value":0,"inactive-value":1},null,8,["modelValue"]),i("span",ke,c(a(l).disable===0?"启用":"禁用"),1)]),_:1}),o(d,{label:"多处登录"},{default:n(()=>[i("div",null,[o(b,{modelValue:a(l).multipoint_login,"onUpdate:modelValue":e[22]||(e[22]=t=>a(l).multipoint_login=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[34]||(e[34]=i("div",{class:"form-tips"},"允许多人同时在线登录",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}}),Qe=ye(Re,[["__scopeId","data-v-c5cf7e96"]]);export{Qe as default};
+import{o as X,q as g,r as y,v as o,D as n,b9 as Y,u as a,bD as Z,L as p,b6 as h,b7 as ee,s as i,bc as le,bo as ae,J as oe,bK as te,bf as ne,F as O,G as S,O as A,bg as de,I as re,T as c,K as se,C as ie,B as ue,a8 as pe,M as V,p as me,ba as F}from"./.pnpm-BuKxIMgQ.js";import{_ as fe}from"./picker-C-hBLp_q.js";import{b as _e,d as be,e as ge}from"./admin-BdieSbRQ.js";import{d as ce}from"./department-CGkU6VW9.js";import{j as Ve}from"./post-BBv3o4dg.js";import{j as ve,n as we,_ as ye}from"./index-BZAvl557.js";import{u as xe}from"./useDictOptions-C2rBJRQa.js";import"./index-BARAiw4K.js";import"./index-DO2zctlZ.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./index-BYpT7Ezr.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./usePaging-DNtxCypz.js";const Ue={class:"edit-drawer"},Ee={class:"w-full"},je={class:"ml-2 text-gray-500"},De={class:"ml-2 text-gray-500"},qe={class:"ml-2 text-gray-500"},ke={class:"ml-2 text-gray-500"},Ce={class:"flex justify-end"},Re=X({__name:"edit",emits:["success","close"],setup(Be,{expose:I,emit:N}){function T(r){if(r.status!==1)return!0;const e=r.children;return Array.isArray(e)&&e.length>0}const x=N,U=pe(),m=V(!1),f=V("add"),v=V(!1),E=V([]),G=async()=>{const r=await we({type:"department"});E.value=(r==null?void 0:r.department)||[]},K=me(()=>f.value=="edit"?"编辑医生":"新增医生"),l=F({id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[1],dept_id:[],jobs_id:[],avatar:"",title:"",license_no:"",qualification_images:"",enable_image_consult:1,enable_video_consult:1,enable_charge:0,department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1}),{optionsData:j}=xe({jobs:{api:Ve},dept:{api:ce,params:{apply_data_scope:1}}}),w=(r,e,s)=>{l.password&&(e||s(new Error("请再次输入密码")),e!==l.password&&s(new Error("两次输入密码不一致!"))),s()},_=F({account:[{required:!0,message:"请输入账号",trigger:["blur"]}],name:[{required:!0,message:"请输入姓名",trigger:["blur"]}],gender:[{required:!0,message:"请选择性别",trigger:["change"]}],dept_id:[{required:!0,type:"array",min:1,message:"请选择归属部门",trigger:["change"]}],phone:[{validator:(r,e,s)=>{e&&!/^1[3-9]\d{9}$/.test(e)?s(new Error("请输入正确的手机号")):s()},trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:["blur"]}],password_confirm:[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:w,trigger:"blur"}]}),L=async()=>{var r;try{await((r=U.value)==null?void 0:r.validate()),v.value=!0,f.value=="edit"?await _e(l):await be(l),ve.msgSuccess(f.value=="edit"?"编辑成功":"新增成功"),m.value=!1,x("success")}catch(e){console.error("提交失败:",e)}finally{v.value=!1}},z=(r="add")=>{f.value=r,m.value=!0,G(),r==="add"&&(Object.assign(l,{id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[1],dept_id:[],jobs_id:[],avatar:"",title:"",license_no:"",qualification_images:"",enable_image_consult:1,enable_video_consult:1,enable_charge:0,department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1}),_.password=[{required:!0,message:"请输入密码",trigger:["blur"]}],_.password_confirm=[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:w,trigger:"blur"}])},J=async r=>{_.password=[],_.password_confirm=[{validator:w,trigger:"blur"}];const e=await ge({id:r.id});for(const s in l)e[s]!=null&&e[s]!=null&&(l[s]=e[s]);l.role_id.includes(1)||l.role_id.push(1)},D=()=>{m.value=!1,x("close")};return I({open:z,setFormData:J}),(r,e)=>{const s=Z,u=ee,d=h,q=fe,k=ae,M=le,P=oe,$=te,C=de,R=ne,b=re,H=Y,B=se,Q=ue;return g(),y("div",Ue,[o(Q,{modelValue:a(m),"onUpdate:modelValue":e[23]||(e[23]=t=>ie(m)?m.value=t:null),title:a(K),direction:"rtl",size:"780px","before-close":D},{footer:n(()=>[i("div",Ce,[o(B,{onClick:D},{default:n(()=>[...e[35]||(e[35]=[p("取消",-1)])]),_:1}),o(B,{type:"primary",onClick:L,loading:a(v)},{default:n(()=>[...e[36]||(e[36]=[p("确定",-1)])]),_:1},8,["loading"])])]),default:n(()=>[o(H,{ref_key:"formRef",ref:U,model:a(l),"label-width":"100px",rules:a(_)},{default:n(()=>[o(s,{"content-position":"left"},{default:n(()=>[...e[24]||(e[24]=[p("基本信息",-1)])]),_:1}),o(d,{label:"账号",prop:"account"},{default:n(()=>[o(u,{modelValue:a(l).account,"onUpdate:modelValue":e[0]||(e[0]=t=>a(l).account=t),placeholder:"请输入账号",clearable:""},null,8,["modelValue"])]),_:1}),o(d,{label:"头像"},{default:n(()=>[i("div",null,[i("div",null,[o(q,{modelValue:a(l).avatar,"onUpdate:modelValue":e[1]||(e[1]=t=>a(l).avatar=t),limit:1},null,8,["modelValue"])]),e[25]||(e[25]=i("div",{class:"form-tips"},"建议尺寸:100*100px,支持jpg,jpeg,png格式",-1))])]),_:1}),o(d,{label:"姓名",prop:"name"},{default:n(()=>[o(u,{modelValue:a(l).name,"onUpdate:modelValue":e[2]||(e[2]=t=>a(l).name=t),placeholder:"请输入姓名",clearable:""},null,8,["modelValue"])]),_:1}),o(d,{label:"性别",prop:"gender"},{default:n(()=>[o(M,{modelValue:a(l).gender,"onUpdate:modelValue":e[3]||(e[3]=t=>a(l).gender=t)},{default:n(()=>[o(k,{label:1},{default:n(()=>[...e[26]||(e[26]=[p("男",-1)])]),_:1}),o(k,{label:2},{default:n(()=>[...e[27]||(e[27]=[p("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o(d,{label:"年龄",prop:"age"},{default:n(()=>[o(P,{modelValue:a(l).age,"onUpdate:modelValue":e[4]||(e[4]=t=>a(l).age=t),min:18,max:100,placeholder:"请输入年龄"},null,8,["modelValue"])]),_:1}),o(d,{label:"手机号",prop:"phone"},{default:n(()=>[o(u,{modelValue:a(l).phone,"onUpdate:modelValue":e[5]||(e[5]=t=>a(l).phone=t),placeholder:"请输入手机号",clearable:""},null,8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:n(()=>[...e[28]||(e[28]=[p("组织信息",-1)])]),_:1}),o(d,{label:"归属部门",prop:"dept_id"},{default:n(()=>[i("div",Ee,[o($,{class:"flex-1 w-full",modelValue:a(l).dept_id,"onUpdate:modelValue":e[6]||(e[6]=t=>a(l).dept_id=t),data:a(j).dept,clearable:"",multiple:"","node-key":"id",props:{label:"name",disabled:T},"check-strictly":"","default-expand-all":!0,placeholder:"请选择末级归属部门"},null,8,["modelValue","data","props"]),e[29]||(e[29]=i("div",{class:"form-tips"},"仅可选末级部门(含下级的父部门不可选),与数据权限范围一致。",-1))])]),_:1}),o(d,{label:"岗位",prop:"jobs_id"},{default:n(()=>[o(R,{class:"flex-1",modelValue:a(l).jobs_id,"onUpdate:modelValue":e[7]||(e[7]=t=>a(l).jobs_id=t),clearable:"",multiple:"",placeholder:"请选择岗位"},{default:n(()=>[(g(!0),y(O,null,S(a(j).jobs,(t,W)=>(g(),A(C,{key:W,label:t.name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:n(()=>[...e[30]||(e[30]=[p("专业信息",-1)])]),_:1}),o(d,{label:"职称",prop:"title"},{default:n(()=>[o(u,{modelValue:a(l).title,"onUpdate:modelValue":e[8]||(e[8]=t=>a(l).title=t),placeholder:"如:主任医师、副主任医师",clearable:""},null,8,["modelValue"])]),_:1}),o(d,{label:"执业证书编号",prop:"license_no"},{default:n(()=>[o(u,{modelValue:a(l).license_no,"onUpdate:modelValue":e[9]||(e[9]=t=>a(l).license_no=t),placeholder:"请输入执业证书编号",clearable:""},null,8,["modelValue"])]),_:1}),o(d,{label:"资质图片"},{default:n(()=>[i("div",null,[i("div",null,[o(q,{modelValue:a(l).qualification_images,"onUpdate:modelValue":e[10]||(e[10]=t=>a(l).qualification_images=t),limit:9},null,8,["modelValue"])]),e[31]||(e[31]=i("div",{class:"form-tips"},"上传医生资质证书、荣誉证书等图片,最多9张,建议尺寸:800*600px",-1))])]),_:1}),o(d,{label:"图文问诊"},{default:n(()=>[o(b,{modelValue:a(l).enable_image_consult,"onUpdate:modelValue":e[11]||(e[11]=t=>a(l).enable_image_consult=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),i("span",je,c(a(l).enable_image_consult===1?"已开启":"已关闭"),1)]),_:1}),o(d,{label:"视频问诊"},{default:n(()=>[o(b,{modelValue:a(l).enable_video_consult,"onUpdate:modelValue":e[12]||(e[12]=t=>a(l).enable_video_consult=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),i("span",De,c(a(l).enable_video_consult===1?"已开启":"已关闭"),1)]),_:1}),o(d,{label:"是否开启收费"},{default:n(()=>[o(b,{modelValue:a(l).enable_charge,"onUpdate:modelValue":e[13]||(e[13]=t=>a(l).enable_charge=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),i("span",qe,c(a(l).enable_charge===1?"已开启":"已关闭"),1)]),_:1}),o(d,{label:"所属科室",prop:"department"},{default:n(()=>[o(R,{modelValue:a(l).department,"onUpdate:modelValue":e[14]||(e[14]=t=>a(l).department=t),placeholder:"请选择所属科室",clearable:"",class:"flex-1"},{default:n(()=>[(g(!0),y(O,null,S(a(E),t=>(g(),A(C,{key:t.value,label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(d,{label:"擅长领域",prop:"specialty"},{default:n(()=>[o(u,{modelValue:a(l).specialty,"onUpdate:modelValue":e[15]||(e[15]=t=>a(l).specialty=t),type:"textarea",rows:3,placeholder:"请输入擅长领域"},null,8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:n(()=>[...e[32]||(e[32]=[p("履历信息",-1)])]),_:1}),o(d,{label:"教育背景",prop:"education"},{default:n(()=>[o(u,{modelValue:a(l).education,"onUpdate:modelValue":e[16]||(e[16]=t=>a(l).education=t),type:"textarea",rows:3,placeholder:"请输入教育背景,如:北京中医药大学 中医学博士"},null,8,["modelValue"])]),_:1}),o(d,{label:"工作经历",prop:"experience"},{default:n(()=>[o(u,{modelValue:a(l).experience,"onUpdate:modelValue":e[17]||(e[17]=t=>a(l).experience=t),type:"textarea",rows:4,placeholder:"请输入工作经历"},null,8,["modelValue"])]),_:1}),o(d,{label:"荣誉资质",prop:"honors"},{default:n(()=>[o(u,{modelValue:a(l).honors,"onUpdate:modelValue":e[18]||(e[18]=t=>a(l).honors=t),type:"textarea",rows:3,placeholder:"请输入荣誉资质"},null,8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:n(()=>[...e[33]||(e[33]=[p("账号设置",-1)])]),_:1}),o(d,{label:"密码",prop:"password"},{default:n(()=>[o(u,{modelValue:a(l).password,"onUpdate:modelValue":e[19]||(e[19]=t=>a(l).password=t),"show-password":"",clearable:"",placeholder:a(f)==="edit"?"不修改请留空":"请输入密码"},null,8,["modelValue","placeholder"])]),_:1}),o(d,{label:"确认密码",prop:"password_confirm"},{default:n(()=>[o(u,{modelValue:a(l).password_confirm,"onUpdate:modelValue":e[20]||(e[20]=t=>a(l).password_confirm=t),"show-password":"",clearable:"",placeholder:a(f)==="edit"?"不修改请留空":"请输入确认密码"},null,8,["modelValue","placeholder"])]),_:1}),o(d,{label:"状态"},{default:n(()=>[o(b,{modelValue:a(l).disable,"onUpdate:modelValue":e[21]||(e[21]=t=>a(l).disable=t),"active-value":0,"inactive-value":1},null,8,["modelValue"]),i("span",ke,c(a(l).disable===0?"启用":"禁用"),1)]),_:1}),o(d,{label:"多处登录"},{default:n(()=>[i("div",null,[o(b,{modelValue:a(l).multipoint_login,"onUpdate:modelValue":e[22]||(e[22]=t=>a(l).multipoint_login=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[34]||(e[34]=i("div",{class:"form-tips"},"允许多人同时在线登录",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}}),Qe=ye(Re,[["__scopeId","data-v-c5cf7e96"]]);export{Qe as default};
diff --git a/server/public/admin/assets/edit-dhMdXdGk.js b/server/public/admin/assets/edit-dhMdXdGk.js
new file mode 100644
index 000000000..14ae8c2cb
--- /dev/null
+++ b/server/public/admin/assets/edit-dhMdXdGk.js
@@ -0,0 +1 @@
+import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-CqJwn0XA.js";import"./.pnpm-BuKxIMgQ.js";import"./message-CFwNSBKd.js";import"./index-BZAvl557.js";import"./index-BARAiw4K.js";export{o as default};
diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-nLC-UZ7o.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-B4UXgz2n.js
similarity index 93%
rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-nLC-UZ7o.js
rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-B4UXgz2n.js
index ad568f7ec..be7bffe3e 100644
--- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-nLC-UZ7o.js
+++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-B4UXgz2n.js
@@ -1 +1 @@
-import{o as D,q as C,r as U,v as a,D as t,b9 as q,u as o,b6 as F,b7 as N,s as _,J as B,bc as I,bf as T,L as c,a8 as v,p as z,ba as A,M as G}from"./.pnpm-BHOjf1ZS.js";import{a as J,b as L}from"./dict-V0YKjsig.js";import{_ as M}from"./index-Dt_C33Jx.js";const S={class:"edit-popup"},W=D({__name:"edit",emits:["success","close"],setup(j,{expose:b,emit:V}){const p=V,i=v(),d=v(),m=G("add"),w=z(()=>m.value=="edit"?"编辑字典数据":"新增字典数据"),l=A({id:"",type_value:"",name:"",value:"",sort:0,status:1,remark:"",type_id:0}),x={name:[{required:!0,message:"请输入数据名称",trigger:["blur"]}],value:[{required:!0,message:"请输入数据值",trigger:["blur"]}]},g=async()=>{var s,e;await((s=i.value)==null?void 0:s.validate()),m.value=="edit"?await J(l):await L(l),(e=d.value)==null||e.close(),p("success")},k=()=>{p("close")};return b({open:(s="add")=>{var e;m.value=s,(e=d.value)==null||e.open()},setFormData:s=>{for(const e in l)s[e]!=null&&s[e]!=null&&(l[e]=s[e])}}),(s,e)=>{const n=N,r=F,y=B,f=T,R=I,E=q;return C(),U("div",S,[a(M,{ref_key:"popupRef",ref:d,title:o(w),async:!0,width:"550px",onConfirm:g,onClose:k},{default:t(()=>[a(E,{class:"ls-form",ref_key:"formRef",ref:i,rules:x,model:o(l),"label-width":"84px"},{default:t(()=>[a(r,{label:"字典类型"},{default:t(()=>[a(n,{"model-value":o(l).type_value,placeholder:"请输入字典类型",disabled:""},null,8,["model-value"])]),_:1}),a(r,{label:"数据名称",prop:"name"},{default:t(()=>[a(n,{modelValue:o(l).name,"onUpdate:modelValue":e[0]||(e[0]=u=>o(l).name=u),placeholder:"请输入数据名称",clearable:""},null,8,["modelValue"])]),_:1}),a(r,{label:"数据值",prop:"value"},{default:t(()=>[a(n,{modelValue:o(l).value,"onUpdate:modelValue":e[1]||(e[1]=u=>o(l).value=u),placeholder:"请输入数据值",clearable:""},null,8,["modelValue"])]),_:1}),a(r,{label:"排序",prop:"sort"},{default:t(()=>[_("div",null,[a(y,{modelValue:o(l).sort,"onUpdate:modelValue":e[2]||(e[2]=u=>o(l).sort=u),min:0,max:9999},null,8,["modelValue"]),e[5]||(e[5]=_("div",{class:"form-tips"},"数值越大越排前",-1))])]),_:1}),a(r,{label:"状态",required:"",prop:"status"},{default:t(()=>[a(R,{modelValue:o(l).status,"onUpdate:modelValue":e[3]||(e[3]=u=>o(l).status=u)},{default:t(()=>[a(f,{value:1},{default:t(()=>[...e[6]||(e[6]=[c("正常",-1)])]),_:1}),a(f,{value:0},{default:t(()=>[...e[7]||(e[7]=[c("停用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(r,{label:"备注",prop:"remark"},{default:t(()=>[a(n,{modelValue:o(l).remark,"onUpdate:modelValue":e[4]||(e[4]=u=>o(l).remark=u),type:"textarea",autosize:{minRows:4,maxRows:6},clearable:"",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{W as _};
+import{o as D,q as C,r as U,v as a,D as t,b9 as q,u as o,b6 as F,b7 as N,s as _,J as B,bc as I,bo as T,L as c,a8 as v,p as z,ba as A,M as G}from"./.pnpm-BuKxIMgQ.js";import{a as J,b as L}from"./dict-DJCviyhe.js";import{_ as M}from"./index-BARAiw4K.js";const S={class:"edit-popup"},W=D({__name:"edit",emits:["success","close"],setup(j,{expose:b,emit:V}){const p=V,i=v(),d=v(),m=G("add"),w=z(()=>m.value=="edit"?"编辑字典数据":"新增字典数据"),l=A({id:"",type_value:"",name:"",value:"",sort:0,status:1,remark:"",type_id:0}),x={name:[{required:!0,message:"请输入数据名称",trigger:["blur"]}],value:[{required:!0,message:"请输入数据值",trigger:["blur"]}]},g=async()=>{var s,e;await((s=i.value)==null?void 0:s.validate()),m.value=="edit"?await J(l):await L(l),(e=d.value)==null||e.close(),p("success")},k=()=>{p("close")};return b({open:(s="add")=>{var e;m.value=s,(e=d.value)==null||e.open()},setFormData:s=>{for(const e in l)s[e]!=null&&s[e]!=null&&(l[e]=s[e])}}),(s,e)=>{const n=N,r=F,y=B,f=T,R=I,E=q;return C(),U("div",S,[a(M,{ref_key:"popupRef",ref:d,title:o(w),async:!0,width:"550px",onConfirm:g,onClose:k},{default:t(()=>[a(E,{class:"ls-form",ref_key:"formRef",ref:i,rules:x,model:o(l),"label-width":"84px"},{default:t(()=>[a(r,{label:"字典类型"},{default:t(()=>[a(n,{"model-value":o(l).type_value,placeholder:"请输入字典类型",disabled:""},null,8,["model-value"])]),_:1}),a(r,{label:"数据名称",prop:"name"},{default:t(()=>[a(n,{modelValue:o(l).name,"onUpdate:modelValue":e[0]||(e[0]=u=>o(l).name=u),placeholder:"请输入数据名称",clearable:""},null,8,["modelValue"])]),_:1}),a(r,{label:"数据值",prop:"value"},{default:t(()=>[a(n,{modelValue:o(l).value,"onUpdate:modelValue":e[1]||(e[1]=u=>o(l).value=u),placeholder:"请输入数据值",clearable:""},null,8,["modelValue"])]),_:1}),a(r,{label:"排序",prop:"sort"},{default:t(()=>[_("div",null,[a(y,{modelValue:o(l).sort,"onUpdate:modelValue":e[2]||(e[2]=u=>o(l).sort=u),min:0,max:9999},null,8,["modelValue"]),e[5]||(e[5]=_("div",{class:"form-tips"},"数值越大越排前",-1))])]),_:1}),a(r,{label:"状态",required:"",prop:"status"},{default:t(()=>[a(R,{modelValue:o(l).status,"onUpdate:modelValue":e[3]||(e[3]=u=>o(l).status=u)},{default:t(()=>[a(f,{value:1},{default:t(()=>[...e[6]||(e[6]=[c("正常",-1)])]),_:1}),a(f,{value:0},{default:t(()=>[...e[7]||(e[7]=[c("停用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(r,{label:"备注",prop:"remark"},{default:t(()=>[a(n,{modelValue:o(l).remark,"onUpdate:modelValue":e[4]||(e[4]=u=>o(l).remark=u),type:"textarea",autosize:{minRows:4,maxRows:6},clearable:"",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{W as _};
diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-iXpXGm_m.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-BNtxiZtE.js
similarity index 91%
rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-iXpXGm_m.js
rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-BNtxiZtE.js
index 05df15701..81266e1ac 100644
--- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-iXpXGm_m.js
+++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-BNtxiZtE.js
@@ -1 +1 @@
-import{o as g,q as h,r as k,v as o,D as n,b9 as C,u as a,b6 as D,b7 as F,J as U,bm as I,bn as q,a8 as _,p as B,ba as N,M as S}from"./.pnpm-BHOjf1ZS.js";import{a as z,b as A}from"./role-DMU3SLD8.js";import{_ as J}from"./index-Dt_C33Jx.js";const M={class:"edit-popup"},L=g({__name:"edit",emits:["success","close"],setup(O,{expose:f,emit:b}){const d=b,c=_(),u=_(),r=S("add"),v=B(()=>r.value=="edit"?"编辑角色":"新增角色"),l=N({id:"",name:"",desc:"",sort:0,data_scope:1,menu_id:[]}),V={name:[{required:!0,message:"请输入名称",trigger:["blur"]}]},w=async()=>{var t,e;await((t=c.value)==null?void 0:t.validate()),r.value=="edit"?await z(l):await A(l),(e=u.value)==null||e.close(),d("success")},x=()=>{d("close")};return f({open:(t="add")=>{var e;r.value=t,(e=u.value)==null||e.open()},setFormData:async t=>{for(const e in l)t[e]!=null&&t[e]!=null&&(l[e]=t[e])}}),(t,e)=>{const i=F,m=D,E=U,p=q,y=I,R=C;return h(),k("div",M,[o(J,{ref_key:"popupRef",ref:u,title:a(v),async:!0,width:"550px",onConfirm:w,onClose:x},{default:n(()=>[o(R,{class:"ls-form",ref_key:"formRef",ref:c,rules:V,model:a(l),"label-width":"60px"},{default:n(()=>[o(m,{label:"名称",prop:"name"},{default:n(()=>[o(i,{class:"ls-input",modelValue:a(l).name,"onUpdate:modelValue":e[0]||(e[0]=s=>a(l).name=s),placeholder:"请输入名称",clearable:""},null,8,["modelValue"])]),_:1}),o(m,{label:"备注",prop:"desc"},{default:n(()=>[o(i,{modelValue:a(l).desc,"onUpdate:modelValue":e[1]||(e[1]=s=>a(l).desc=s),type:"textarea",autosize:{minRows:4,maxRows:6},placeholder:"请输入备注",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),o(m,{label:"排序",prop:"sort"},{default:n(()=>[o(E,{modelValue:a(l).sort,"onUpdate:modelValue":e[2]||(e[2]=s=>a(l).sort=s),min:0,max:9999},null,8,["modelValue"])]),_:1}),o(m,{label:"数据范围",prop:"data_scope"},{default:n(()=>[o(y,{modelValue:a(l).data_scope,"onUpdate:modelValue":e[3]||(e[3]=s=>a(l).data_scope=s),placeholder:"请选择数据范围",class:"ls-input"},{default:n(()=>[o(p,{value:1,label:"全部数据(免隔离)"}),o(p,{value:2,label:"本部门及下级部门"}),o(p,{value:3,label:"仅本部门"}),o(p,{value:4,label:"仅本人"})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{L as _};
+import{o as g,q as h,r as k,v as o,D as n,b9 as C,u as a,b6 as D,b7 as F,J as U,bf as I,bg as q,a8 as _,p as B,ba as N,M as S}from"./.pnpm-BuKxIMgQ.js";import{a as z,b as A}from"./role-CFd3KqwG.js";import{_ as J}from"./index-BARAiw4K.js";const M={class:"edit-popup"},L=g({__name:"edit",emits:["success","close"],setup(O,{expose:f,emit:b}){const d=b,c=_(),u=_(),r=S("add"),v=B(()=>r.value=="edit"?"编辑角色":"新增角色"),l=N({id:"",name:"",desc:"",sort:0,data_scope:1,menu_id:[]}),V={name:[{required:!0,message:"请输入名称",trigger:["blur"]}]},w=async()=>{var t,e;await((t=c.value)==null?void 0:t.validate()),r.value=="edit"?await z(l):await A(l),(e=u.value)==null||e.close(),d("success")},x=()=>{d("close")};return f({open:(t="add")=>{var e;r.value=t,(e=u.value)==null||e.open()},setFormData:async t=>{for(const e in l)t[e]!=null&&t[e]!=null&&(l[e]=t[e])}}),(t,e)=>{const i=F,m=D,E=U,p=q,y=I,R=C;return h(),k("div",M,[o(J,{ref_key:"popupRef",ref:u,title:a(v),async:!0,width:"550px",onConfirm:w,onClose:x},{default:n(()=>[o(R,{class:"ls-form",ref_key:"formRef",ref:c,rules:V,model:a(l),"label-width":"60px"},{default:n(()=>[o(m,{label:"名称",prop:"name"},{default:n(()=>[o(i,{class:"ls-input",modelValue:a(l).name,"onUpdate:modelValue":e[0]||(e[0]=s=>a(l).name=s),placeholder:"请输入名称",clearable:""},null,8,["modelValue"])]),_:1}),o(m,{label:"备注",prop:"desc"},{default:n(()=>[o(i,{modelValue:a(l).desc,"onUpdate:modelValue":e[1]||(e[1]=s=>a(l).desc=s),type:"textarea",autosize:{minRows:4,maxRows:6},placeholder:"请输入备注",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),o(m,{label:"排序",prop:"sort"},{default:n(()=>[o(E,{modelValue:a(l).sort,"onUpdate:modelValue":e[2]||(e[2]=s=>a(l).sort=s),min:0,max:9999},null,8,["modelValue"])]),_:1}),o(m,{label:"数据范围",prop:"data_scope"},{default:n(()=>[o(y,{modelValue:a(l).data_scope,"onUpdate:modelValue":e[3]||(e[3]=s=>a(l).data_scope=s),placeholder:"请选择数据范围",class:"ls-input"},{default:n(()=>[o(p,{value:1,label:"全部数据(免隔离)"}),o(p,{value:2,label:"本部门及下级部门"}),o(p,{value:3,label:"仅本部门"}),o(p,{value:4,label:"仅本人"})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{L as _};
diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang--bBpvCNa.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CJ2HT6Zn.js
similarity index 91%
rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang--bBpvCNa.js
rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CJ2HT6Zn.js
index 0882ea540..4d7ce43a4 100644
--- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang--bBpvCNa.js
+++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CJ2HT6Zn.js
@@ -1 +1 @@
-import{o as B,q as _,r as I,v as o,D as d,b9 as N,u as t,O as q,b6 as F,bK as M,P as S,b7 as A,s as b,J as O,I as T,a8 as V,p as J,ba as K,M as P}from"./.pnpm-BHOjf1ZS.js";import{d as $,a as j,b as z,c as G}from"./department-C6mdNFMs.js";import{_ as H}from"./index-Dt_C33Jx.js";import{u as L}from"./useDictOptions-DnbupH6P.js";const Q={class:"edit-popup"},te=B({__name:"edit",emits:["success","close"],setup(W,{expose:v,emit:g}){const m=g,c=V(),u=V(),p=P("add"),w=J(()=>p.value=="edit"?"编辑部门":"新增部门"),l=K({id:"",pid:"",name:"",leader:"",mobile:"",sort:0,status:1}),x={pid:[{required:!0,message:"请选择上级部门",trigger:["change"]}],name:[{required:!0,message:"请输入部门名称",trigger:["blur"]}],mobile:[{validator:(a,e,r)=>{if(e){const n=/^[1][3,4,5,6,7,8,9][0-9]{9}$/;if(console.log(n.test(e)),n.test(e))r();else return r(new Error("请输入正确的手机号"))}else return r()},trigger:["blur"]}]},{optionsData:k}=L({dept:{api:$}}),y=async()=>{var a,e;await((a=c.value)==null?void 0:a.validate()),p.value=="edit"?await j(l):await z(l),(e=u.value)==null||e.close(),m("success")},E=(a="add")=>{var e;p.value=a,(e=u.value)==null||e.open()},f=a=>{for(const e in l)a[e]!=null&&a[e]!=null&&(l[e]=a[e])},D=async a=>{const e=await G({id:a.id});f(e)},h=()=>{m("close")};return v({open:E,setFormData:f,getDetail:D}),(a,e)=>{const r=M,n=F,i=A,C=O,R=T,U=N;return _(),I("div",Q,[o(H,{ref_key:"popupRef",ref:u,title:t(w),async:!0,width:"550px",onConfirm:y,onClose:h},{default:d(()=>[o(U,{ref_key:"formRef",ref:c,model:t(l),"label-width":"84px",rules:x},{default:d(()=>[t(l).pid!==0?(_(),q(n,{key:0,label:"上级部门",prop:"pid"},{default:d(()=>[o(r,{class:"flex-1",modelValue:t(l).pid,"onUpdate:modelValue":e[0]||(e[0]=s=>t(l).pid=s),data:t(k).dept,clearable:"","node-key":"id",props:{value:"id",label:"name"},"check-strictly":"","default-expand-all":!0,placeholder:"请选择上级部门"},null,8,["modelValue","data"])]),_:1})):S("",!0),o(n,{label:"部门名称",prop:"name"},{default:d(()=>[o(i,{modelValue:t(l).name,"onUpdate:modelValue":e[1]||(e[1]=s=>t(l).name=s),placeholder:"请输入部门名称",maxlength:100},null,8,["modelValue"])]),_:1}),o(n,{label:"负责人",prop:"leader"},{default:d(()=>[o(i,{modelValue:t(l).leader,"onUpdate:modelValue":e[2]||(e[2]=s=>t(l).leader=s),placeholder:"请输入负责人姓名",maxlength:30},null,8,["modelValue"])]),_:1}),o(n,{label:"联系电话",prop:"mobile"},{default:d(()=>[o(i,{modelValue:t(l).mobile,"onUpdate:modelValue":e[3]||(e[3]=s=>t(l).mobile=s),placeholder:"请输入联系电话"},null,8,["modelValue"])]),_:1}),o(n,{label:"排序",prop:"sort"},{default:d(()=>[b("div",null,[o(C,{modelValue:t(l).sort,"onUpdate:modelValue":e[4]||(e[4]=s=>t(l).sort=s),min:0,max:9999},null,8,["modelValue"]),e[6]||(e[6]=b("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),o(n,{label:"部门状态"},{default:d(()=>[o(R,{modelValue:t(l).status,"onUpdate:modelValue":e[5]||(e[5]=s=>t(l).status=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{te as _};
+import{o as B,q as _,r as I,v as o,D as d,b9 as N,u as t,O as q,b6 as F,bK as M,P as S,b7 as A,s as b,J as O,I as T,a8 as V,p as J,ba as K,M as P}from"./.pnpm-BuKxIMgQ.js";import{d as $,a as j,b as z,c as G}from"./department-CGkU6VW9.js";import{_ as H}from"./index-BARAiw4K.js";import{u as L}from"./useDictOptions-C2rBJRQa.js";const Q={class:"edit-popup"},te=B({__name:"edit",emits:["success","close"],setup(W,{expose:v,emit:g}){const m=g,c=V(),u=V(),p=P("add"),w=J(()=>p.value=="edit"?"编辑部门":"新增部门"),l=K({id:"",pid:"",name:"",leader:"",mobile:"",sort:0,status:1}),x={pid:[{required:!0,message:"请选择上级部门",trigger:["change"]}],name:[{required:!0,message:"请输入部门名称",trigger:["blur"]}],mobile:[{validator:(a,e,r)=>{if(e){const n=/^[1][3,4,5,6,7,8,9][0-9]{9}$/;if(console.log(n.test(e)),n.test(e))r();else return r(new Error("请输入正确的手机号"))}else return r()},trigger:["blur"]}]},{optionsData:k}=L({dept:{api:$}}),y=async()=>{var a,e;await((a=c.value)==null?void 0:a.validate()),p.value=="edit"?await j(l):await z(l),(e=u.value)==null||e.close(),m("success")},E=(a="add")=>{var e;p.value=a,(e=u.value)==null||e.open()},f=a=>{for(const e in l)a[e]!=null&&a[e]!=null&&(l[e]=a[e])},D=async a=>{const e=await G({id:a.id});f(e)},h=()=>{m("close")};return v({open:E,setFormData:f,getDetail:D}),(a,e)=>{const r=M,n=F,i=A,C=O,R=T,U=N;return _(),I("div",Q,[o(H,{ref_key:"popupRef",ref:u,title:t(w),async:!0,width:"550px",onConfirm:y,onClose:h},{default:d(()=>[o(U,{ref_key:"formRef",ref:c,model:t(l),"label-width":"84px",rules:x},{default:d(()=>[t(l).pid!==0?(_(),q(n,{key:0,label:"上级部门",prop:"pid"},{default:d(()=>[o(r,{class:"flex-1",modelValue:t(l).pid,"onUpdate:modelValue":e[0]||(e[0]=s=>t(l).pid=s),data:t(k).dept,clearable:"","node-key":"id",props:{value:"id",label:"name"},"check-strictly":"","default-expand-all":!0,placeholder:"请选择上级部门"},null,8,["modelValue","data"])]),_:1})):S("",!0),o(n,{label:"部门名称",prop:"name"},{default:d(()=>[o(i,{modelValue:t(l).name,"onUpdate:modelValue":e[1]||(e[1]=s=>t(l).name=s),placeholder:"请输入部门名称",maxlength:100},null,8,["modelValue"])]),_:1}),o(n,{label:"负责人",prop:"leader"},{default:d(()=>[o(i,{modelValue:t(l).leader,"onUpdate:modelValue":e[2]||(e[2]=s=>t(l).leader=s),placeholder:"请输入负责人姓名",maxlength:30},null,8,["modelValue"])]),_:1}),o(n,{label:"联系电话",prop:"mobile"},{default:d(()=>[o(i,{modelValue:t(l).mobile,"onUpdate:modelValue":e[3]||(e[3]=s=>t(l).mobile=s),placeholder:"请输入联系电话"},null,8,["modelValue"])]),_:1}),o(n,{label:"排序",prop:"sort"},{default:d(()=>[b("div",null,[o(C,{modelValue:t(l).sort,"onUpdate:modelValue":e[4]||(e[4]=s=>t(l).sort=s),min:0,max:9999},null,8,["modelValue"]),e[6]||(e[6]=b("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),o(n,{label:"部门状态"},{default:d(()=>[o(R,{modelValue:t(l).status,"onUpdate:modelValue":e[5]||(e[5]=s=>t(l).status=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{te as _};
diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-BX9Ptw0F.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CqJwn0XA.js
similarity index 93%
rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-BX9Ptw0F.js
rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CqJwn0XA.js
index f83600fe5..a007d29f1 100644
--- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-BX9Ptw0F.js
+++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CqJwn0XA.js
@@ -1 +1 @@
-import{o as S,q as n,r as I,v as a,D as o,b9 as T,u as l,b6 as w,s as x,T as q,b7 as A,O as _,P as m,bc as K,bf as U,L as c,a8 as y,ba as Y}from"./.pnpm-BHOjf1ZS.js";import{b as B,c as N}from"./message-BfQ-ersI.js";import{_ as F}from"./index-Dt_C33Jx.js";const G={class:"edit-popup"},H=S({__name:"edit",emits:["success"],setup(L,{expose:g,emit:E}){const V=E,d=y(),i=y(),t=Y({name:"",type:"",sign:"",app_key:"",app_id:"",secret_key:"",secret_id:"",status:0}),b={sign:[{required:!0,message:"请输入短信签名",trigger:"blur"}],app_id:[{required:!0,message:"请输入APP_ID",trigger:"blur"}],app_key:[{required:!0,message:"请输入APP_KEY",trigger:"blur"}],secret_key:[{required:!0,message:"请输入SECRET_KEY",trigger:"blur"}],secret_id:[{required:!0,message:"请输入SECRET_ID",trigger:"blur"}]},k=async()=>{var s,e;await((s=d.value)==null?void 0:s.validate()),await B(t),(e=i.value)==null||e.close(),V("success")},R=async()=>{const s=await N({type:t.type});for(const e in s)t[e]=s[e]},C=s=>{var e;t.type=s,(e=i.value)==null||e.open(),R()},P=()=>{var s;(s=d.value)==null||s.resetFields()};return g({open:C}),(s,e)=>{const p=w,u=A,f=U,v=K,D=T;return n(),I("div",G,[a(F,{ref_key:"popupRef",ref:i,title:"设置短信",async:!0,width:"550px",onConfirm:k,onClose:P},{default:o(()=>[a(D,{ref_key:"formRef",ref:d,model:l(t),"label-width":"120px",rules:b},{default:o(()=>[a(p,{label:"短信渠道"},{default:o(()=>[x("div",null,q(l(t).name),1)]),_:1}),a(p,{label:"短信签名",prop:"sign"},{default:o(()=>[a(u,{modelValue:l(t).sign,"onUpdate:modelValue":e[0]||(e[0]=r=>l(t).sign=r),placeholder:"请输入短信签名"},null,8,["modelValue"])]),_:1}),l(t).type=="ali"?(n(),_(p,{key:0,label:"APP_KEY",prop:"app_key"},{default:o(()=>[a(u,{modelValue:l(t).app_key,"onUpdate:modelValue":e[1]||(e[1]=r=>l(t).app_key=r),placeholder:"请输入APP_KEY"},null,8,["modelValue"])]),_:1})):m("",!0),l(t).type=="tencent"?(n(),_(p,{key:1,label:"APP_ID",prop:"app_id"},{default:o(()=>[a(u,{modelValue:l(t).app_id,"onUpdate:modelValue":e[2]||(e[2]=r=>l(t).app_id=r),placeholder:"请输入APP_ID"},null,8,["modelValue"])]),_:1})):m("",!0),l(t).type=="tencent"?(n(),_(p,{key:2,label:"SECRET_ID",prop:"secret_id"},{default:o(()=>[a(u,{modelValue:l(t).secret_id,"onUpdate:modelValue":e[3]||(e[3]=r=>l(t).secret_id=r),placeholder:"请输入SECRET_ID"},null,8,["modelValue"])]),_:1})):m("",!0),a(p,{label:"SECRET_KEY",prop:"secret_key"},{default:o(()=>[a(u,{modelValue:l(t).secret_key,"onUpdate:modelValue":e[4]||(e[4]=r=>l(t).secret_key=r),placeholder:"请输入SECRET_KEY"},null,8,["modelValue"])]),_:1}),a(p,{label:"状态",prop:"status"},{default:o(()=>[a(v,{modelValue:l(t).status,"onUpdate:modelValue":e[5]||(e[5]=r=>l(t).status=r)},{default:o(()=>[a(f,{value:0},{default:o(()=>[...e[6]||(e[6]=[c("关闭",-1)])]),_:1}),a(f,{value:1},{default:o(()=>[...e[7]||(e[7]=[c("开启",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},512)])}}});export{H as _};
+import{o as S,q as n,r as I,v as a,D as o,b9 as T,u as l,b6 as w,s as x,T as q,b7 as A,O as _,P as m,bc as K,bo as U,L as c,a8 as y,ba as Y}from"./.pnpm-BuKxIMgQ.js";import{b as B,c as N}from"./message-CFwNSBKd.js";import{_ as F}from"./index-BARAiw4K.js";const G={class:"edit-popup"},H=S({__name:"edit",emits:["success"],setup(L,{expose:g,emit:E}){const V=E,d=y(),i=y(),t=Y({name:"",type:"",sign:"",app_key:"",app_id:"",secret_key:"",secret_id:"",status:0}),b={sign:[{required:!0,message:"请输入短信签名",trigger:"blur"}],app_id:[{required:!0,message:"请输入APP_ID",trigger:"blur"}],app_key:[{required:!0,message:"请输入APP_KEY",trigger:"blur"}],secret_key:[{required:!0,message:"请输入SECRET_KEY",trigger:"blur"}],secret_id:[{required:!0,message:"请输入SECRET_ID",trigger:"blur"}]},k=async()=>{var s,e;await((s=d.value)==null?void 0:s.validate()),await B(t),(e=i.value)==null||e.close(),V("success")},R=async()=>{const s=await N({type:t.type});for(const e in s)t[e]=s[e]},C=s=>{var e;t.type=s,(e=i.value)==null||e.open(),R()},P=()=>{var s;(s=d.value)==null||s.resetFields()};return g({open:C}),(s,e)=>{const p=w,u=A,f=U,v=K,D=T;return n(),I("div",G,[a(F,{ref_key:"popupRef",ref:i,title:"设置短信",async:!0,width:"550px",onConfirm:k,onClose:P},{default:o(()=>[a(D,{ref_key:"formRef",ref:d,model:l(t),"label-width":"120px",rules:b},{default:o(()=>[a(p,{label:"短信渠道"},{default:o(()=>[x("div",null,q(l(t).name),1)]),_:1}),a(p,{label:"短信签名",prop:"sign"},{default:o(()=>[a(u,{modelValue:l(t).sign,"onUpdate:modelValue":e[0]||(e[0]=r=>l(t).sign=r),placeholder:"请输入短信签名"},null,8,["modelValue"])]),_:1}),l(t).type=="ali"?(n(),_(p,{key:0,label:"APP_KEY",prop:"app_key"},{default:o(()=>[a(u,{modelValue:l(t).app_key,"onUpdate:modelValue":e[1]||(e[1]=r=>l(t).app_key=r),placeholder:"请输入APP_KEY"},null,8,["modelValue"])]),_:1})):m("",!0),l(t).type=="tencent"?(n(),_(p,{key:1,label:"APP_ID",prop:"app_id"},{default:o(()=>[a(u,{modelValue:l(t).app_id,"onUpdate:modelValue":e[2]||(e[2]=r=>l(t).app_id=r),placeholder:"请输入APP_ID"},null,8,["modelValue"])]),_:1})):m("",!0),l(t).type=="tencent"?(n(),_(p,{key:2,label:"SECRET_ID",prop:"secret_id"},{default:o(()=>[a(u,{modelValue:l(t).secret_id,"onUpdate:modelValue":e[3]||(e[3]=r=>l(t).secret_id=r),placeholder:"请输入SECRET_ID"},null,8,["modelValue"])]),_:1})):m("",!0),a(p,{label:"SECRET_KEY",prop:"secret_key"},{default:o(()=>[a(u,{modelValue:l(t).secret_key,"onUpdate:modelValue":e[4]||(e[4]=r=>l(t).secret_key=r),placeholder:"请输入SECRET_KEY"},null,8,["modelValue"])]),_:1}),a(p,{label:"状态",prop:"status"},{default:o(()=>[a(v,{modelValue:l(t).status,"onUpdate:modelValue":e[5]||(e[5]=r=>l(t).status=r)},{default:o(()=>[a(f,{value:0},{default:o(()=>[...e[6]||(e[6]=[c("关闭",-1)])]),_:1}),a(f,{value:1},{default:o(()=>[...e[7]||(e[7]=[c("开启",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},512)])}}});export{H as _};
diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CXzpO6zZ.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CtGsxGTS.js
similarity index 94%
rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CXzpO6zZ.js
rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CtGsxGTS.js
index 851c26698..485cda506 100644
--- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CXzpO6zZ.js
+++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CtGsxGTS.js
@@ -1 +1 @@
-import{o as D,q as U,r as h,v as l,D as n,b9 as q,u as t,b6 as I,b7 as j,s as f,J as B,I as F,a8 as _,p as N,ba as S,M as z}from"./.pnpm-BHOjf1ZS.js";import{a as A,b as J,c as M}from"./post-BX0OihZx.js";import{_ as T}from"./index-Dt_C33Jx.js";const G={class:"edit-popup"},P=D({__name:"edit",emits:["success","close"],setup(H,{expose:b,emit:v}){const i=v,p=_(),u=_(),m=z("add"),V=N(()=>m.value=="edit"?"编辑岗位":"新增岗位"),o=S({id:"",name:"",code:"",sort:0,remark:"",status:1}),w={code:[{required:!0,message:"请输入岗位编码",trigger:["blur"]}],name:[{required:!0,message:"请输入岗位名称",trigger:["blur"]}]},x=async()=>{var a,e;await((a=p.value)==null?void 0:a.validate()),m.value=="edit"?await A(o):await J(o),(e=u.value)==null||e.close(),i("success")},g=(a="add")=>{var e;m.value=a,(e=u.value)==null||e.open()},c=a=>{for(const e in o)a[e]!=null&&a[e]!=null&&(o[e]=a[e])},k=async a=>{const e=await M({id:a.id});c(e)},R=()=>{i("close")};return b({open:g,setFormData:c,getDetail:k}),(a,e)=>{const d=j,r=I,y=B,E=F,C=q;return U(),h("div",G,[l(T,{ref_key:"popupRef",ref:u,title:t(V),async:!0,width:"550px",onConfirm:x,onClose:R},{default:n(()=>[l(C,{ref_key:"formRef",ref:p,model:t(o),"label-width":"84px",rules:w},{default:n(()=>[l(r,{label:"岗位名称",prop:"name"},{default:n(()=>[l(d,{modelValue:t(o).name,"onUpdate:modelValue":e[0]||(e[0]=s=>t(o).name=s),placeholder:"请输入岗位名称",clearable:"",maxlength:100},null,8,["modelValue"])]),_:1}),l(r,{label:"岗位编码",prop:"code"},{default:n(()=>[l(d,{modelValue:t(o).code,"onUpdate:modelValue":e[1]||(e[1]=s=>t(o).code=s),placeholder:"请输入岗位编码",clearable:""},null,8,["modelValue"])]),_:1}),l(r,{label:"排序",prop:"sort"},{default:n(()=>[f("div",null,[l(y,{modelValue:t(o).sort,"onUpdate:modelValue":e[2]||(e[2]=s=>t(o).sort=s),min:0,max:9999},null,8,["modelValue"]),e[5]||(e[5]=f("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),l(r,{label:"备注",prop:"remark"},{default:n(()=>[l(d,{modelValue:t(o).remark,"onUpdate:modelValue":e[3]||(e[3]=s=>t(o).remark=s),placeholder:"请输入备注",type:"textarea",autosize:{minRows:4,maxRows:6},maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(r,{label:"岗位状态",required:"",prop:"status"},{default:n(()=>[l(E,{modelValue:t(o).status,"onUpdate:modelValue":e[4]||(e[4]=s=>t(o).status=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{P as _};
+import{o as D,q as U,r as h,v as l,D as n,b9 as q,u as t,b6 as I,b7 as j,s as f,J as B,I as F,a8 as _,p as N,ba as S,M as z}from"./.pnpm-BuKxIMgQ.js";import{a as A,b as J,c as M}from"./post-BBv3o4dg.js";import{_ as T}from"./index-BARAiw4K.js";const G={class:"edit-popup"},P=D({__name:"edit",emits:["success","close"],setup(H,{expose:b,emit:v}){const i=v,p=_(),u=_(),m=z("add"),V=N(()=>m.value=="edit"?"编辑岗位":"新增岗位"),o=S({id:"",name:"",code:"",sort:0,remark:"",status:1}),w={code:[{required:!0,message:"请输入岗位编码",trigger:["blur"]}],name:[{required:!0,message:"请输入岗位名称",trigger:["blur"]}]},x=async()=>{var a,e;await((a=p.value)==null?void 0:a.validate()),m.value=="edit"?await A(o):await J(o),(e=u.value)==null||e.close(),i("success")},g=(a="add")=>{var e;m.value=a,(e=u.value)==null||e.open()},c=a=>{for(const e in o)a[e]!=null&&a[e]!=null&&(o[e]=a[e])},k=async a=>{const e=await M({id:a.id});c(e)},R=()=>{i("close")};return b({open:g,setFormData:c,getDetail:k}),(a,e)=>{const d=j,r=I,y=B,E=F,C=q;return U(),h("div",G,[l(T,{ref_key:"popupRef",ref:u,title:t(V),async:!0,width:"550px",onConfirm:x,onClose:R},{default:n(()=>[l(C,{ref_key:"formRef",ref:p,model:t(o),"label-width":"84px",rules:w},{default:n(()=>[l(r,{label:"岗位名称",prop:"name"},{default:n(()=>[l(d,{modelValue:t(o).name,"onUpdate:modelValue":e[0]||(e[0]=s=>t(o).name=s),placeholder:"请输入岗位名称",clearable:"",maxlength:100},null,8,["modelValue"])]),_:1}),l(r,{label:"岗位编码",prop:"code"},{default:n(()=>[l(d,{modelValue:t(o).code,"onUpdate:modelValue":e[1]||(e[1]=s=>t(o).code=s),placeholder:"请输入岗位编码",clearable:""},null,8,["modelValue"])]),_:1}),l(r,{label:"排序",prop:"sort"},{default:n(()=>[f("div",null,[l(y,{modelValue:t(o).sort,"onUpdate:modelValue":e[2]||(e[2]=s=>t(o).sort=s),min:0,max:9999},null,8,["modelValue"]),e[5]||(e[5]=f("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),l(r,{label:"备注",prop:"remark"},{default:n(()=>[l(d,{modelValue:t(o).remark,"onUpdate:modelValue":e[3]||(e[3]=s=>t(o).remark=s),placeholder:"请输入备注",type:"textarea",autosize:{minRows:4,maxRows:6},maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(r,{label:"岗位状态",required:"",prop:"status"},{default:n(()=>[l(E,{modelValue:t(o).status,"onUpdate:modelValue":e[4]||(e[4]=s=>t(o).status=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{P as _};
diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-ny-dQ55c.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DCzkKZ2j.js
similarity index 91%
rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-ny-dQ55c.js
rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DCzkKZ2j.js
index 604219cf0..4cf56dfd1 100644
--- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-ny-dQ55c.js
+++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DCzkKZ2j.js
@@ -1 +1 @@
-import{o as R,q as E,r as C,v as t,D as s,b9 as q,u as a,b6 as D,b7 as F,bc as T,bf as U,L as _,a8 as c,p as B,ba as I,M as N}from"./.pnpm-BHOjf1ZS.js";import{g as h,h as z}from"./dict-V0YKjsig.js";import{_ as A}from"./index-Dt_C33Jx.js";const G={class:"edit-popup"},K=R({__name:"edit",emits:["success","close"],setup(L,{expose:b,emit:V}){const p=V,i=c(),u=c(),m=N("add"),v=B(()=>m.value=="edit"?"编辑字典类型":"新增字典类型"),o=I({id:"",name:"",type:"",status:1,remark:""}),y={name:[{required:!0,message:"请输入字典名称",trigger:["blur"]}],type:[{required:!0,message:"请输入字典类型",trigger:["blur"]}]},w=async()=>{var l,e;await((l=i.value)==null?void 0:l.validate()),m.value=="edit"?await h(o):await z(o),(e=u.value)==null||e.close(),p("success")},g=()=>{p("close")};return b({open:(l="add")=>{var e;m.value=l,(e=u.value)==null||e.open()},setFormData:l=>{for(const e in o)l[e]!=null&&l[e]!=null&&(o[e]=l[e])}}),(l,e)=>{const d=F,n=D,f=U,x=T,k=q;return E(),C("div",G,[t(A,{ref_key:"popupRef",ref:u,title:a(v),async:!0,width:"550px",onConfirm:w,onClose:g},{default:s(()=>[t(k,{class:"ls-form",ref_key:"formRef",ref:i,rules:y,model:a(o),"label-width":"84px"},{default:s(()=>[t(n,{label:"字典名称",prop:"name"},{default:s(()=>[t(d,{modelValue:a(o).name,"onUpdate:modelValue":e[0]||(e[0]=r=>a(o).name=r),placeholder:"请输入字典名称",clearable:""},null,8,["modelValue"])]),_:1}),t(n,{label:"字典类型",prop:"type"},{default:s(()=>[t(d,{modelValue:a(o).type,"onUpdate:modelValue":e[1]||(e[1]=r=>a(o).type=r),placeholder:"请输入字典类型",clearable:""},null,8,["modelValue"])]),_:1}),t(n,{label:"字典状态",required:"",prop:"status"},{default:s(()=>[t(x,{modelValue:a(o).status,"onUpdate:modelValue":e[2]||(e[2]=r=>a(o).status=r)},{default:s(()=>[t(f,{value:1},{default:s(()=>[...e[4]||(e[4]=[_("正常",-1)])]),_:1}),t(f,{value:0},{default:s(()=>[...e[5]||(e[5]=[_("停用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(n,{label:"备注",prop:"remark"},{default:s(()=>[t(d,{modelValue:a(o).remark,"onUpdate:modelValue":e[3]||(e[3]=r=>a(o).remark=r),type:"textarea",autosize:{minRows:4,maxRows:6},clearable:"",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{K as _};
+import{o as R,q as E,r as C,v as t,D as s,b9 as q,u as a,b6 as D,b7 as F,bc as T,bo as U,L as _,a8 as c,p as B,ba as I,M as N}from"./.pnpm-BuKxIMgQ.js";import{g as h,h as z}from"./dict-DJCviyhe.js";import{_ as A}from"./index-BARAiw4K.js";const G={class:"edit-popup"},K=R({__name:"edit",emits:["success","close"],setup(L,{expose:b,emit:V}){const p=V,i=c(),u=c(),m=N("add"),v=B(()=>m.value=="edit"?"编辑字典类型":"新增字典类型"),o=I({id:"",name:"",type:"",status:1,remark:""}),y={name:[{required:!0,message:"请输入字典名称",trigger:["blur"]}],type:[{required:!0,message:"请输入字典类型",trigger:["blur"]}]},w=async()=>{var l,e;await((l=i.value)==null?void 0:l.validate()),m.value=="edit"?await h(o):await z(o),(e=u.value)==null||e.close(),p("success")},g=()=>{p("close")};return b({open:(l="add")=>{var e;m.value=l,(e=u.value)==null||e.open()},setFormData:l=>{for(const e in o)l[e]!=null&&l[e]!=null&&(o[e]=l[e])}}),(l,e)=>{const d=F,n=D,f=U,x=T,k=q;return E(),C("div",G,[t(A,{ref_key:"popupRef",ref:u,title:a(v),async:!0,width:"550px",onConfirm:w,onClose:g},{default:s(()=>[t(k,{class:"ls-form",ref_key:"formRef",ref:i,rules:y,model:a(o),"label-width":"84px"},{default:s(()=>[t(n,{label:"字典名称",prop:"name"},{default:s(()=>[t(d,{modelValue:a(o).name,"onUpdate:modelValue":e[0]||(e[0]=r=>a(o).name=r),placeholder:"请输入字典名称",clearable:""},null,8,["modelValue"])]),_:1}),t(n,{label:"字典类型",prop:"type"},{default:s(()=>[t(d,{modelValue:a(o).type,"onUpdate:modelValue":e[1]||(e[1]=r=>a(o).type=r),placeholder:"请输入字典类型",clearable:""},null,8,["modelValue"])]),_:1}),t(n,{label:"字典状态",required:"",prop:"status"},{default:s(()=>[t(x,{modelValue:a(o).status,"onUpdate:modelValue":e[2]||(e[2]=r=>a(o).status=r)},{default:s(()=>[t(f,{value:1},{default:s(()=>[...e[4]||(e[4]=[_("正常",-1)])]),_:1}),t(f,{value:0},{default:s(()=>[...e[5]||(e[5]=[_("停用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(n,{label:"备注",prop:"remark"},{default:s(()=>[t(d,{modelValue:a(o).remark,"onUpdate:modelValue":e[3]||(e[3]=r=>a(o).remark=r),type:"textarea",autosize:{minRows:4,maxRows:6},clearable:"",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{K as _};
diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-Cpx7n7Pf.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DPqRshhO.js
similarity index 91%
rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-Cpx7n7Pf.js
rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DPqRshhO.js
index 206e6994f..3931992df 100644
--- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-Cpx7n7Pf.js
+++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DPqRshhO.js
@@ -1 +1 @@
-import{o as G,q as i,r as V,v as t,D as d,b9 as K,u as o,b6 as L,b7 as M,s as u,bK as P,bm as z,F as j,G as U,O as p,bn as H,P as k,I as J,a8 as C,p as Q,ba as q,M as W}from"./.pnpm-BHOjf1ZS.js";import{_ as X}from"./picker-DY0rRn6Q.js";import{d as Y}from"./department-C6mdNFMs.js";import{j as Z}from"./post-BX0OihZx.js";import{b as $,d as h,e as ee}from"./admin-MPtc__0S.js";import{r as le}from"./role-DMU3SLD8.js";import{_ as oe}from"./index-Dt_C33Jx.js";import{u as ae}from"./useDictOptions-DnbupH6P.js";const te={class:"edit-popup"},ce=G({__name:"edit",emits:["success","close"],setup(re,{expose:D,emit:R}){const v=R,w=C(),m=C(),f=W("add"),F=Q(()=>f.value=="edit"?"编辑管理员":"新增管理员"),l=q({id:"",account:"",name:"",dept_id:[],jobs_id:[],role_id:[],avatar:"",password:"",password_confirm:"",disable:0,multipoint_login:1,root:0}),g=(n,e,r)=>{l.password&&(e||r(new Error("请再次输入密码")),e!==l.password&&r(new Error("两次输入密码不一致!"))),r()},_=q({account:[{required:!0,message:"请输入账号",trigger:["blur"]}],name:[{required:!0,message:"请输入名称",trigger:["blur"]}],role_id:[{required:!0,validator:(n,e,r)=>{l.root||l.role_id.length?r():r(new Error("请选择角色"))}}],password:[{required:!0,message:"请输入密码",trigger:["blur"]}],password_confirm:[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:g,trigger:"blur"}]}),{optionsData:c}=ae({role:{api:le},jobs:{api:Z},dept:{api:Y}}),I=async()=>{var n,e;await((n=w.value)==null?void 0:n.validate()),f.value=="edit"?await $(l):await h(l),(e=m.value)==null||e.close(),v("success")},A=(n="add")=>{var e;f.value=n,(e=m.value)==null||e.open()},B=async n=>{_.password=[],_.password_confirm=[{validator:g,trigger:"blur"}];const e=await ee({id:n.id});for(const r in l)e[r]!=null&&e[r]!=null&&(l[r]=e[r])},S=()=>{v("close")};return D({open:A,setFormData:B}),(n,e)=>{const r=M,s=L,N=X,O=P,y=H,E=z,x=J,T=K;return i(),V("div",te,[t(oe,{ref_key:"popupRef",ref:m,title:o(F),async:!0,width:"550px",onConfirm:I,onClose:S},{default:d(()=>[t(T,{ref_key:"formRef",ref:w,model:o(l),"label-width":"84px",rules:o(_)},{default:d(()=>[t(s,{label:"账号",prop:"account"},{default:d(()=>[t(r,{modelValue:o(l).account,"onUpdate:modelValue":e[0]||(e[0]=a=>o(l).account=a),disabled:o(l).root==1,placeholder:"请输入账号",clearable:""},null,8,["modelValue","disabled"])]),_:1}),t(s,{label:"头像"},{default:d(()=>[u("div",null,[u("div",null,[t(N,{modelValue:o(l).avatar,"onUpdate:modelValue":e[1]||(e[1]=a=>o(l).avatar=a),limit:1},null,8,["modelValue"])]),e[10]||(e[10]=u("div",{class:"form-tips"},"建议尺寸:100*100px,支持jpg,jpeg,png格式",-1))])]),_:1}),t(s,{label:"名称",prop:"name"},{default:d(()=>[t(r,{modelValue:o(l).name,"onUpdate:modelValue":e[2]||(e[2]=a=>o(l).name=a),placeholder:"请输入名称",clearable:""},null,8,["modelValue"])]),_:1}),t(s,{label:"归属部门",prop:"dept_id"},{default:d(()=>[t(O,{class:"flex-1",modelValue:o(l).dept_id,"onUpdate:modelValue":e[3]||(e[3]=a=>o(l).dept_id=a),data:o(c).dept,clearable:"",multiple:"","node-key":"id",props:{value:"id",label:"name",disabled(a){return a.status!==1}},"check-strictly":"","default-expand-all":!0,placeholder:"请选择上级部门"},null,8,["modelValue","data","props"])]),_:1}),t(s,{label:"岗位",prop:"jobs_id"},{default:d(()=>[t(E,{class:"flex-1",modelValue:o(l).jobs_id,"onUpdate:modelValue":e[4]||(e[4]=a=>o(l).jobs_id=a),clearable:"",multiple:"",placeholder:"请选择岗位"},{default:d(()=>[(i(!0),V(j,null,U(o(c).jobs,(a,b)=>(i(),p(y,{key:b,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(l).root!=1?(i(),p(s,{key:0,label:"角色",prop:"role_id"},{default:d(()=>[t(E,{modelValue:o(l).role_id,"onUpdate:modelValue":e[5]||(e[5]=a=>o(l).role_id=a),disabled:o(l).root==1,class:"flex-1",multiple:"",placeholder:"请选择角色",clearable:""},{default:d(()=>[(i(!0),V(j,null,U(o(c).role,(a,b)=>(i(),p(y,{key:b,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled"])]),_:1})):k("",!0),t(s,{label:"密码",prop:"password"},{default:d(()=>[t(r,{modelValue:o(l).password,"onUpdate:modelValue":e[6]||(e[6]=a=>o(l).password=a),"show-password":"",clearable:"",placeholder:"请输入密码"},null,8,["modelValue"])]),_:1}),t(s,{label:"确认密码",prop:"password_confirm"},{default:d(()=>[t(r,{modelValue:o(l).password_confirm,"onUpdate:modelValue":e[7]||(e[7]=a=>o(l).password_confirm=a),"show-password":"",clearable:"",placeholder:"请输入确认密码"},null,8,["modelValue"])]),_:1}),o(l).root!=1?(i(),p(s,{key:1,label:"管理员状态"},{default:d(()=>[t(x,{modelValue:o(l).disable,"onUpdate:modelValue":e[8]||(e[8]=a=>o(l).disable=a),"active-value":0,"inactive-value":1},null,8,["modelValue"])]),_:1})):k("",!0),t(s,{label:"多处登录"},{default:d(()=>[u("div",null,[t(x,{modelValue:o(l).multipoint_login,"onUpdate:modelValue":e[9]||(e[9]=a=>o(l).multipoint_login=a),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[11]||(e[11]=u("div",{class:"form-tips"},"允许多人同时在线登录",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["title"])])}}});export{ce as _};
+import{o as G,q as i,r as V,v as t,D as d,b9 as K,u as o,b6 as L,b7 as M,s as u,bK as P,bf as z,F as j,G as U,O as p,bg as H,P as k,I as J,a8 as C,p as Q,ba as q,M as W}from"./.pnpm-BuKxIMgQ.js";import{_ as X}from"./picker-C-hBLp_q.js";import{d as Y}from"./department-CGkU6VW9.js";import{j as Z}from"./post-BBv3o4dg.js";import{b as $,d as h,e as ee}from"./admin-BdieSbRQ.js";import{r as le}from"./role-CFd3KqwG.js";import{_ as oe}from"./index-BARAiw4K.js";import{u as ae}from"./useDictOptions-C2rBJRQa.js";const te={class:"edit-popup"},ce=G({__name:"edit",emits:["success","close"],setup(re,{expose:D,emit:R}){const v=R,w=C(),m=C(),f=W("add"),F=Q(()=>f.value=="edit"?"编辑管理员":"新增管理员"),l=q({id:"",account:"",name:"",dept_id:[],jobs_id:[],role_id:[],avatar:"",password:"",password_confirm:"",disable:0,multipoint_login:1,root:0}),g=(n,e,r)=>{l.password&&(e||r(new Error("请再次输入密码")),e!==l.password&&r(new Error("两次输入密码不一致!"))),r()},_=q({account:[{required:!0,message:"请输入账号",trigger:["blur"]}],name:[{required:!0,message:"请输入名称",trigger:["blur"]}],role_id:[{required:!0,validator:(n,e,r)=>{l.root||l.role_id.length?r():r(new Error("请选择角色"))}}],password:[{required:!0,message:"请输入密码",trigger:["blur"]}],password_confirm:[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:g,trigger:"blur"}]}),{optionsData:c}=ae({role:{api:le},jobs:{api:Z},dept:{api:Y}}),I=async()=>{var n,e;await((n=w.value)==null?void 0:n.validate()),f.value=="edit"?await $(l):await h(l),(e=m.value)==null||e.close(),v("success")},A=(n="add")=>{var e;f.value=n,(e=m.value)==null||e.open()},B=async n=>{_.password=[],_.password_confirm=[{validator:g,trigger:"blur"}];const e=await ee({id:n.id});for(const r in l)e[r]!=null&&e[r]!=null&&(l[r]=e[r])},S=()=>{v("close")};return D({open:A,setFormData:B}),(n,e)=>{const r=M,s=L,N=X,O=P,y=H,E=z,x=J,T=K;return i(),V("div",te,[t(oe,{ref_key:"popupRef",ref:m,title:o(F),async:!0,width:"550px",onConfirm:I,onClose:S},{default:d(()=>[t(T,{ref_key:"formRef",ref:w,model:o(l),"label-width":"84px",rules:o(_)},{default:d(()=>[t(s,{label:"账号",prop:"account"},{default:d(()=>[t(r,{modelValue:o(l).account,"onUpdate:modelValue":e[0]||(e[0]=a=>o(l).account=a),disabled:o(l).root==1,placeholder:"请输入账号",clearable:""},null,8,["modelValue","disabled"])]),_:1}),t(s,{label:"头像"},{default:d(()=>[u("div",null,[u("div",null,[t(N,{modelValue:o(l).avatar,"onUpdate:modelValue":e[1]||(e[1]=a=>o(l).avatar=a),limit:1},null,8,["modelValue"])]),e[10]||(e[10]=u("div",{class:"form-tips"},"建议尺寸:100*100px,支持jpg,jpeg,png格式",-1))])]),_:1}),t(s,{label:"名称",prop:"name"},{default:d(()=>[t(r,{modelValue:o(l).name,"onUpdate:modelValue":e[2]||(e[2]=a=>o(l).name=a),placeholder:"请输入名称",clearable:""},null,8,["modelValue"])]),_:1}),t(s,{label:"归属部门",prop:"dept_id"},{default:d(()=>[t(O,{class:"flex-1",modelValue:o(l).dept_id,"onUpdate:modelValue":e[3]||(e[3]=a=>o(l).dept_id=a),data:o(c).dept,clearable:"",multiple:"","node-key":"id",props:{value:"id",label:"name",disabled(a){return a.status!==1}},"check-strictly":"","default-expand-all":!0,placeholder:"请选择上级部门"},null,8,["modelValue","data","props"])]),_:1}),t(s,{label:"岗位",prop:"jobs_id"},{default:d(()=>[t(E,{class:"flex-1",modelValue:o(l).jobs_id,"onUpdate:modelValue":e[4]||(e[4]=a=>o(l).jobs_id=a),clearable:"",multiple:"",placeholder:"请选择岗位"},{default:d(()=>[(i(!0),V(j,null,U(o(c).jobs,(a,b)=>(i(),p(y,{key:b,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(l).root!=1?(i(),p(s,{key:0,label:"角色",prop:"role_id"},{default:d(()=>[t(E,{modelValue:o(l).role_id,"onUpdate:modelValue":e[5]||(e[5]=a=>o(l).role_id=a),disabled:o(l).root==1,class:"flex-1",multiple:"",placeholder:"请选择角色",clearable:""},{default:d(()=>[(i(!0),V(j,null,U(o(c).role,(a,b)=>(i(),p(y,{key:b,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled"])]),_:1})):k("",!0),t(s,{label:"密码",prop:"password"},{default:d(()=>[t(r,{modelValue:o(l).password,"onUpdate:modelValue":e[6]||(e[6]=a=>o(l).password=a),"show-password":"",clearable:"",placeholder:"请输入密码"},null,8,["modelValue"])]),_:1}),t(s,{label:"确认密码",prop:"password_confirm"},{default:d(()=>[t(r,{modelValue:o(l).password_confirm,"onUpdate:modelValue":e[7]||(e[7]=a=>o(l).password_confirm=a),"show-password":"",clearable:"",placeholder:"请输入确认密码"},null,8,["modelValue"])]),_:1}),o(l).root!=1?(i(),p(s,{key:1,label:"管理员状态"},{default:d(()=>[t(x,{modelValue:o(l).disable,"onUpdate:modelValue":e[8]||(e[8]=a=>o(l).disable=a),"active-value":0,"inactive-value":1},null,8,["modelValue"])]),_:1})):k("",!0),t(s,{label:"多处登录"},{default:d(()=>[u("div",null,[t(x,{modelValue:o(l).multipoint_login,"onUpdate:modelValue":e[9]||(e[9]=a=>o(l).multipoint_login=a),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[11]||(e[11]=u("div",{class:"form-tips"},"允许多人同时在线登录",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["title"])])}}});export{ce as _};
diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-Byo87JLI.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DhA80uZ_.js
similarity index 53%
rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-Byo87JLI.js
rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DhA80uZ_.js
index 819a0bc85..335f88f77 100644
--- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-Byo87JLI.js
+++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DhA80uZ_.js
@@ -1 +1 @@
-import{o as Y,q as _,r as k,v as l,D as r,b9 as A,u as o,b6 as B,s as u,bf as I,L as g,T as y,b7 as T,O as h,P as E,bc as F,a8 as V,ba as G,p as L}from"./.pnpm-BHOjf1ZS.js";import{r as f}from"./index-B31vLELt.js";import{_ as P}from"./index-Dt_C33Jx.js";function ee(){return f.get({url:"/setting.storage/lists"})}function j(d){return f.post({url:"/setting.storage/setup",params:d})}function z(d){return f.get({url:"/setting.storage/detail",params:d})}const H={class:"edit-popup"},J={class:"form-tips"},M={key:0},Q={class:"flex-1"},W={class:"flex-1"},te=Y({__name:"edit",emits:["success"],setup(d,{expose:v,emit:C}){const R=C,p=V(),m=V(),t=G({engine:"",bucket:"",access_key:"",secret_key:"",domain:"",region:"",status:0}),q=[{name:"本地存储",type:"local",tips:"本地存储方式不需要配置其他参数"},{name:"七牛云存储",type:"qiniu",tips:"切换七牛云存储后,素材库需要重新上传至七牛云"},{name:"阿里云OSS",type:"aliyun",tips:"切换阿里云OSS后,素材库需要重新上传至阿里云OSS"},{name:"腾讯云OSS",type:"qcloud",tips:"切换腾讯云OSS后,素材库需要重新上传至腾讯云OSS"}],x={bucket:[{required:!0,message:"请输入存储空间名称",trigger:"blur"}],access_key:[{required:!0,message:"请输入ACCESS_KEY",trigger:"blur"}],secret_key:[{required:!0,message:"请输入SECRET_KEY",trigger:"blur"}],domain:[{required:!0,message:"请输入空间域名",trigger:"blur"}],region:[{required:!0,message:"请输入REGION",trigger:"blur"}]},b=L(()=>q.find(s=>s.type==t.engine)),O=async()=>{var s,e;await((s=p.value)==null?void 0:s.validate()),await j(t),(e=m.value)==null||e.close(),R("success")},K=async()=>{const s=await z({engine:t.engine});for(const e in s)t[e]=s[e]},w=s=>{var e;t.engine=s,(e=m.value)==null||e.open(),K()},D=()=>{var s;(s=p.value)==null||s.resetFields()};return v({open:w}),(s,e)=>{const c=I,n=B,i=T,N=F,U=A;return _(),k("div",H,[l(P,{ref_key:"popupRef",ref:m,title:"设置存储",async:!0,width:"550px",onConfirm:O,onClose:D},{default:r(()=>[l(U,{ref_key:"formRef",ref:p,model:o(t),"label-width":"120px",rules:x},{default:r(()=>[l(n,{label:"存储方式",prop:"engine"},{default:r(()=>{var a;return[u("div",null,[l(c,{checked:""},{default:r(()=>{var S;return[g(y((S=o(b))==null?void 0:S.name),1)]}),_:1}),u("div",J,y((a=o(b))==null?void 0:a.tips),1)])]}),_:1}),o(t).engine!=="local"?(_(),k("div",M,[l(n,{label:" 存储空间名称",prop:"bucket"},{default:r(()=>[u("div",Q,[l(i,{modelValue:o(t).bucket,"onUpdate:modelValue":e[0]||(e[0]=a=>o(t).bucket=a),placeholder:"请输入存储空间名称(Bucket)",clearable:""},null,8,["modelValue"])])]),_:1}),l(n,{label:"ACCESS_KEY",prop:"access_key"},{default:r(()=>[l(i,{modelValue:o(t).access_key,"onUpdate:modelValue":e[1]||(e[1]=a=>o(t).access_key=a),placeholder:"请输入ACCESS_KEY(AK)",clearable:""},null,8,["modelValue"])]),_:1}),l(n,{label:"SECRET_KEY",prop:"secret_key"},{default:r(()=>[l(i,{modelValue:o(t).secret_key,"onUpdate:modelValue":e[2]||(e[2]=a=>o(t).secret_key=a),placeholder:"请输入SECRET_KEY(SK)",clearable:""},null,8,["modelValue"])]),_:1}),l(n,{label:"空间域名",prop:"domain"},{default:r(()=>[u("div",W,[u("div",null,[l(i,{modelValue:o(t).domain,"onUpdate:modelValue":e[3]||(e[3]=a=>o(t).domain=a),placeholder:"请输入空间域名(Domain)",clearable:""},null,8,["modelValue"])]),e[6]||(e[6]=u("div",{class:"form-tips"}," 请补全http://或https://,例如https://static.cloud.com ",-1))])]),_:1}),o(t).engine=="qcloud"?(_(),h(n,{key:0,label:"REGION",prop:"region"},{default:r(()=>[l(i,{modelValue:o(t).region,"onUpdate:modelValue":e[4]||(e[4]=a=>o(t).region=a),placeholder:"请输入region",clearable:""},null,8,["modelValue"])]),_:1})):E("",!0)])):E("",!0),l(n,{label:"状态",prop:"status"},{default:r(()=>[l(N,{modelValue:o(t).status,"onUpdate:modelValue":e[5]||(e[5]=a=>o(t).status=a)},{default:r(()=>[l(c,{value:0},{default:r(()=>[...e[7]||(e[7]=[g("关闭",-1)])]),_:1}),l(c,{value:1},{default:r(()=>[...e[8]||(e[8]=[g("开启",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},512)])}}});export{te as _,ee as s};
+import{o as Y,q as _,r as k,v as o,D as r,b9 as A,u as l,b6 as B,s as u,bo as I,L as g,T as y,b7 as T,O as h,P as E,bc as F,a8 as V,ba as G,p as L}from"./.pnpm-BuKxIMgQ.js";import{r as f}from"./index-BZAvl557.js";import{_ as P}from"./index-BARAiw4K.js";function ee(){return f.get({url:"/setting.storage/lists"})}function j(d){return f.post({url:"/setting.storage/setup",params:d})}function z(d){return f.get({url:"/setting.storage/detail",params:d})}const H={class:"edit-popup"},J={class:"form-tips"},M={key:0},Q={class:"flex-1"},W={class:"flex-1"},te=Y({__name:"edit",emits:["success"],setup(d,{expose:v,emit:C}){const R=C,p=V(),m=V(),t=G({engine:"",bucket:"",access_key:"",secret_key:"",domain:"",region:"",status:0}),q=[{name:"本地存储",type:"local",tips:"本地存储方式不需要配置其他参数"},{name:"七牛云存储",type:"qiniu",tips:"切换七牛云存储后,素材库需要重新上传至七牛云"},{name:"阿里云OSS",type:"aliyun",tips:"切换阿里云OSS后,素材库需要重新上传至阿里云OSS"},{name:"腾讯云OSS",type:"qcloud",tips:"切换腾讯云OSS后,素材库需要重新上传至腾讯云OSS"}],x={bucket:[{required:!0,message:"请输入存储空间名称",trigger:"blur"}],access_key:[{required:!0,message:"请输入ACCESS_KEY",trigger:"blur"}],secret_key:[{required:!0,message:"请输入SECRET_KEY",trigger:"blur"}],domain:[{required:!0,message:"请输入空间域名",trigger:"blur"}],region:[{required:!0,message:"请输入REGION",trigger:"blur"}]},b=L(()=>q.find(s=>s.type==t.engine)),O=async()=>{var s,e;await((s=p.value)==null?void 0:s.validate()),await j(t),(e=m.value)==null||e.close(),R("success")},K=async()=>{const s=await z({engine:t.engine});for(const e in s)t[e]=s[e]},w=s=>{var e;t.engine=s,(e=m.value)==null||e.open(),K()},D=()=>{var s;(s=p.value)==null||s.resetFields()};return v({open:w}),(s,e)=>{const c=I,n=B,i=T,N=F,U=A;return _(),k("div",H,[o(P,{ref_key:"popupRef",ref:m,title:"设置存储",async:!0,width:"550px",onConfirm:O,onClose:D},{default:r(()=>[o(U,{ref_key:"formRef",ref:p,model:l(t),"label-width":"120px",rules:x},{default:r(()=>[o(n,{label:"存储方式",prop:"engine"},{default:r(()=>{var a;return[u("div",null,[o(c,{checked:""},{default:r(()=>{var S;return[g(y((S=l(b))==null?void 0:S.name),1)]}),_:1}),u("div",J,y((a=l(b))==null?void 0:a.tips),1)])]}),_:1}),l(t).engine!=="local"?(_(),k("div",M,[o(n,{label:" 存储空间名称",prop:"bucket"},{default:r(()=>[u("div",Q,[o(i,{modelValue:l(t).bucket,"onUpdate:modelValue":e[0]||(e[0]=a=>l(t).bucket=a),placeholder:"请输入存储空间名称(Bucket)",clearable:""},null,8,["modelValue"])])]),_:1}),o(n,{label:"ACCESS_KEY",prop:"access_key"},{default:r(()=>[o(i,{modelValue:l(t).access_key,"onUpdate:modelValue":e[1]||(e[1]=a=>l(t).access_key=a),placeholder:"请输入ACCESS_KEY(AK)",clearable:""},null,8,["modelValue"])]),_:1}),o(n,{label:"SECRET_KEY",prop:"secret_key"},{default:r(()=>[o(i,{modelValue:l(t).secret_key,"onUpdate:modelValue":e[2]||(e[2]=a=>l(t).secret_key=a),placeholder:"请输入SECRET_KEY(SK)",clearable:""},null,8,["modelValue"])]),_:1}),o(n,{label:"空间域名",prop:"domain"},{default:r(()=>[u("div",W,[u("div",null,[o(i,{modelValue:l(t).domain,"onUpdate:modelValue":e[3]||(e[3]=a=>l(t).domain=a),placeholder:"请输入空间域名(Domain)",clearable:""},null,8,["modelValue"])]),e[6]||(e[6]=u("div",{class:"form-tips"}," 请补全http://或https://,例如https://static.cloud.com ",-1))])]),_:1}),l(t).engine=="qcloud"?(_(),h(n,{key:0,label:"REGION",prop:"region"},{default:r(()=>[o(i,{modelValue:l(t).region,"onUpdate:modelValue":e[4]||(e[4]=a=>l(t).region=a),placeholder:"请输入region",clearable:""},null,8,["modelValue"])]),_:1})):E("",!0)])):E("",!0),o(n,{label:"状态",prop:"status"},{default:r(()=>[o(N,{modelValue:l(t).status,"onUpdate:modelValue":e[5]||(e[5]=a=>l(t).status=a)},{default:r(()=>[o(c,{value:0},{default:r(()=>[...e[7]||(e[7]=[g("关闭",-1)])]),_:1}),o(c,{value:1},{default:r(()=>[...e[8]||(e[8]=[g("开启",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},512)])}}});export{te as _,ee as s};
diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DEJKyTet.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DsQpdPgp.js
similarity index 95%
rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DEJKyTet.js
rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DsQpdPgp.js
index dd34c4261..a2267329d 100644
--- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DEJKyTet.js
+++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DsQpdPgp.js
@@ -1 +1 @@
-import{o as P,M as U,ba as S,q as i,r as J,v as t,D as a,b9 as $,u as l,b6 as j,bc as z,bf as H,L as m,bK as Q,b7 as W,O as f,P as v,s as d,dc as X,J as Y,a8 as w,p as Z}from"./.pnpm-BHOjf1ZS.js";import{_ as h}from"./picker.vue_vue_type_script_setup_true_lang-B2mG_7nA.js";import{a as ee,b as le,c as oe,d as te}from"./menu-O9ulO-rY.js";import{_ as ae}from"./index-Dt_C33Jx.js";import{w as se,M as n,x as de,y as ue}from"./index-B31vLELt.js";const ne={class:"edit-popup"},re={class:"flex-1"},pe={class:"flex-1"},ie={class:"flex-1"},me={class:"flex-1"},fe={class:"flex-1"},ce=P({__name:"edit",emits:["success","close"],setup(ve,{expose:x,emit:N}){const c=N,g=w(),_=w(),y=U("add"),O=Z(()=>y.value=="edit"?"编辑菜单":"新增菜单"),T=U(se()),C=(u,e)=>{const r=u?T.value.filter(V=>V.toLowerCase().includes(u.toLowerCase())):T.value;e(r.map(V=>({value:V})))},o=S({id:"",pid:0,type:n.CATALOGUE,icon:"",name:"",sort:0,paths:"",perms:"",component:"",selected:"",params:"",is_cache:1,is_show:1,is_disable:0}),A={pid:[{required:!0,message:"请选择父级菜单",trigger:["blur","change"]}],name:[{required:!0,message:"请输入菜单名称",trigger:"blur"}],paths:[{required:!0,message:"请输入路由地址",trigger:"blur"}],component:[{required:!0,message:"请输入组件地址",trigger:"blur"}]},k=U([]),B=async()=>{const u=await ee({page_type:0}),e={id:0,name:"顶级",children:[]};e.children=de(ue(u.lists).filter(r=>r.type!=n.BUTTON)),k.value.push(e)},M=async()=>{var u,e;await((u=g.value)==null?void 0:u.validate()),y.value=="edit"?await le(o):await oe(o),(e=_.value)==null||e.close(),c("success")},q=(u="add")=>{var e;y.value=u,(e=_.value)==null||e.open()},E=u=>{for(const e in o)u[e]!=null&&u[e]!=null&&(o[e]=u[e])},R=async u=>{const e=await te({id:u.id});E(e)},L=()=>{c("close")};return B(),x({open:q,setFormData:E,getDetail:R}),(u,e)=>{const r=H,V=z,p=j,D=Q,b=W,G=h,I=X,F=Y,K=$;return i(),J("div",ne,[t(ae,{ref_key:"popupRef",ref:_,title:l(O),async:!0,width:"550px",onConfirm:M,onClose:L},{default:a(()=>[t(K,{ref_key:"formRef",ref:g,model:l(o),"label-width":"80px",rules:A},{default:a(()=>[t(p,{label:"菜单类型",prop:"type",required:""},{default:a(()=>[t(V,{modelValue:l(o).type,"onUpdate:modelValue":e[0]||(e[0]=s=>l(o).type=s)},{default:a(()=>[t(r,{value:l(n).CATALOGUE},{default:a(()=>[...e[13]||(e[13]=[m("目录",-1)])]),_:1},8,["value"]),t(r,{value:l(n).MENU},{default:a(()=>[...e[14]||(e[14]=[m("菜单",-1)])]),_:1},8,["value"]),t(r,{value:l(n).BUTTON},{default:a(()=>[...e[15]||(e[15]=[m("按钮",-1)])]),_:1},8,["value"])]),_:1},8,["modelValue"])]),_:1}),t(p,{label:"父级菜单",prop:"pid"},{default:a(()=>[t(D,{class:"flex-1",modelValue:l(o).pid,"onUpdate:modelValue":e[1]||(e[1]=s=>l(o).pid=s),data:l(k),clearable:"","node-key":"id",props:{label:"name"},"default-expand-all":!0,placeholder:"请选择父级菜单","check-strictly":""},null,8,["modelValue","data"])]),_:1}),t(p,{label:"菜单名称",prop:"name"},{default:a(()=>[t(b,{modelValue:l(o).name,"onUpdate:modelValue":e[2]||(e[2]=s=>l(o).name=s),placeholder:"请输入菜单名称",clearable:""},null,8,["modelValue"])]),_:1}),l(o).type!=l(n).BUTTON?(i(),f(p,{key:0,label:"菜单图标",prop:"icon"},{default:a(()=>[t(G,{class:"flex-1",modelValue:l(o).icon,"onUpdate:modelValue":e[3]||(e[3]=s=>l(o).icon=s)},null,8,["modelValue"])]),_:1})):v("",!0),l(o).type!=l(n).BUTTON?(i(),f(p,{key:1,label:"路由路径",prop:"paths"},{default:a(()=>[d("div",re,[t(b,{modelValue:l(o).paths,"onUpdate:modelValue":e[4]||(e[4]=s=>l(o).paths=s),placeholder:"请输入路由路径",clearable:""},null,8,["modelValue"]),e[16]||(e[16]=d("div",{class:"form-tips"}," 访问的路由地址,如:`user`,如外网地址需内链访问则以`http(s)://`开头 ",-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:2,label:"组件路径",prop:"component"},{default:a(()=>[d("div",pe,[t(I,{class:"w-full",modelValue:l(o).component,"onUpdate:modelValue":e[5]||(e[5]=s=>l(o).component=s),"fetch-suggestions":C,clearable:"",placeholder:"请输入组件路径"},null,8,["modelValue"]),e[17]||(e[17]=d("div",{class:"form-tips"}," 访问的组件路径,如:`user/setting`,默认在`views`目录下 ",-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:3,label:"选中菜单",prop:"selected"},{default:a(()=>[d("div",ie,[t(b,{modelValue:l(o).selected,"onUpdate:modelValue":e[6]||(e[6]=s=>l(o).selected=s),placeholder:"请输入路由路径",clearable:""},null,8,["modelValue"]),e[18]||(e[18]=d("div",{class:"form-tips"}," 访问详情页面,编辑页面时,菜单高亮显示,如`/consumer/lists` ",-1))])]),_:1})):v("",!0),l(o).type!=l(n).CATALOGUE?(i(),f(p,{key:4,label:"权限字符",prop:"perms"},{default:a(()=>[d("div",me,[t(b,{modelValue:l(o).perms,"onUpdate:modelValue":e[7]||(e[7]=s=>l(o).perms=s),placeholder:"请输入权限字符",clearable:""},null,8,["modelValue"]),e[19]||(e[19]=d("div",{class:"form-tips"}," 将作为server端API验权使用,如`auth.admin/user`,请谨慎修改 ",-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:5,label:"路由参数",prop:"params"},{default:a(()=>[d("div",null,[d("div",fe,[t(b,{modelValue:l(o).params,"onUpdate:modelValue":e[8]||(e[8]=s=>l(o).params=s),placeholder:"请输入路由参数",clearable:""},null,8,["modelValue"])]),e[20]||(e[20]=d("div",{class:"form-tips"},' 访问路由的默认传递参数,如:`{"id": 1, "name": "admin"}`或`id=1&name=admin` ',-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:6,label:"是否缓存",prop:"is_cache",required:""},{default:a(()=>[d("div",null,[t(V,{modelValue:l(o).is_cache,"onUpdate:modelValue":e[9]||(e[9]=s=>l(o).is_cache=s)},{default:a(()=>[t(r,{value:1},{default:a(()=>[...e[21]||(e[21]=[m("缓存",-1)])]),_:1}),t(r,{value:0},{default:a(()=>[...e[22]||(e[22]=[m("不缓存",-1)])]),_:1})]),_:1},8,["modelValue"]),e[23]||(e[23]=d("div",{class:"form-tips"},"选择缓存则会被`keep-alive`缓存",-1))])]),_:1})):v("",!0),l(o).type!=l(n).BUTTON?(i(),f(p,{key:7,label:"是否显示",prop:"is_show",required:""},{default:a(()=>[d("div",null,[t(V,{modelValue:l(o).is_show,"onUpdate:modelValue":e[10]||(e[10]=s=>l(o).is_show=s)},{default:a(()=>[t(r,{value:1},{default:a(()=>[...e[24]||(e[24]=[m("显示",-1)])]),_:1}),t(r,{value:0},{default:a(()=>[...e[25]||(e[25]=[m("隐藏",-1)])]),_:1})]),_:1},8,["modelValue"]),e[26]||(e[26]=d("div",{class:"form-tips"}," 选择隐藏则路由将不会出现在侧边栏,但仍然可以访问 ",-1))])]),_:1})):v("",!0),l(o).type!=l(n).BUTTON?(i(),f(p,{key:8,label:"菜单状态",prop:"is_disable",required:""},{default:a(()=>[d("div",null,[t(V,{modelValue:l(o).is_disable,"onUpdate:modelValue":e[11]||(e[11]=s=>l(o).is_disable=s)},{default:a(()=>[t(r,{value:0},{default:a(()=>[...e[27]||(e[27]=[m("正常",-1)])]),_:1}),t(r,{value:1},{default:a(()=>[...e[28]||(e[28]=[m("停用",-1)])]),_:1})]),_:1},8,["modelValue"]),e[29]||(e[29]=d("div",{class:"form-tips"},"选择停用则路由将不会出现在侧边栏,也不能被访问",-1))])]),_:1})):v("",!0),t(p,{label:"菜单排序",prop:"sort"},{default:a(()=>[d("div",null,[t(F,{modelValue:l(o).sort,"onUpdate:modelValue":e[12]||(e[12]=s=>l(o).sort=s),min:0,max:9999},null,8,["modelValue"]),e[30]||(e[30]=d("div",{class:"form-tips"},"数值越大越排前",-1))])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{ce as _};
+import{o as P,M as U,ba as S,q as i,r as J,v as t,D as a,b9 as $,u as l,b6 as j,bc as z,bo as H,L as m,bK as Q,b7 as W,O as f,P as v,s as d,dc as X,J as Y,a8 as w,p as Z}from"./.pnpm-BuKxIMgQ.js";import{_ as h}from"./picker.vue_vue_type_script_setup_true_lang-Z843pVBd.js";import{a as ee,b as le,c as oe,d as te}from"./menu-BxP-O3HL.js";import{_ as ae}from"./index-BARAiw4K.js";import{w as se,M as n,x as de,y as ue}from"./index-BZAvl557.js";const ne={class:"edit-popup"},re={class:"flex-1"},pe={class:"flex-1"},ie={class:"flex-1"},me={class:"flex-1"},fe={class:"flex-1"},ce=P({__name:"edit",emits:["success","close"],setup(ve,{expose:x,emit:N}){const c=N,g=w(),_=w(),y=U("add"),O=Z(()=>y.value=="edit"?"编辑菜单":"新增菜单"),T=U(se()),C=(u,e)=>{const r=u?T.value.filter(V=>V.toLowerCase().includes(u.toLowerCase())):T.value;e(r.map(V=>({value:V})))},o=S({id:"",pid:0,type:n.CATALOGUE,icon:"",name:"",sort:0,paths:"",perms:"",component:"",selected:"",params:"",is_cache:1,is_show:1,is_disable:0}),A={pid:[{required:!0,message:"请选择父级菜单",trigger:["blur","change"]}],name:[{required:!0,message:"请输入菜单名称",trigger:"blur"}],paths:[{required:!0,message:"请输入路由地址",trigger:"blur"}],component:[{required:!0,message:"请输入组件地址",trigger:"blur"}]},k=U([]),B=async()=>{const u=await ee({page_type:0}),e={id:0,name:"顶级",children:[]};e.children=de(ue(u.lists).filter(r=>r.type!=n.BUTTON)),k.value.push(e)},M=async()=>{var u,e;await((u=g.value)==null?void 0:u.validate()),y.value=="edit"?await le(o):await oe(o),(e=_.value)==null||e.close(),c("success")},q=(u="add")=>{var e;y.value=u,(e=_.value)==null||e.open()},E=u=>{for(const e in o)u[e]!=null&&u[e]!=null&&(o[e]=u[e])},R=async u=>{const e=await te({id:u.id});E(e)},L=()=>{c("close")};return B(),x({open:q,setFormData:E,getDetail:R}),(u,e)=>{const r=H,V=z,p=j,D=Q,b=W,G=h,I=X,F=Y,K=$;return i(),J("div",ne,[t(ae,{ref_key:"popupRef",ref:_,title:l(O),async:!0,width:"550px",onConfirm:M,onClose:L},{default:a(()=>[t(K,{ref_key:"formRef",ref:g,model:l(o),"label-width":"80px",rules:A},{default:a(()=>[t(p,{label:"菜单类型",prop:"type",required:""},{default:a(()=>[t(V,{modelValue:l(o).type,"onUpdate:modelValue":e[0]||(e[0]=s=>l(o).type=s)},{default:a(()=>[t(r,{value:l(n).CATALOGUE},{default:a(()=>[...e[13]||(e[13]=[m("目录",-1)])]),_:1},8,["value"]),t(r,{value:l(n).MENU},{default:a(()=>[...e[14]||(e[14]=[m("菜单",-1)])]),_:1},8,["value"]),t(r,{value:l(n).BUTTON},{default:a(()=>[...e[15]||(e[15]=[m("按钮",-1)])]),_:1},8,["value"])]),_:1},8,["modelValue"])]),_:1}),t(p,{label:"父级菜单",prop:"pid"},{default:a(()=>[t(D,{class:"flex-1",modelValue:l(o).pid,"onUpdate:modelValue":e[1]||(e[1]=s=>l(o).pid=s),data:l(k),clearable:"","node-key":"id",props:{label:"name"},"default-expand-all":!0,placeholder:"请选择父级菜单","check-strictly":""},null,8,["modelValue","data"])]),_:1}),t(p,{label:"菜单名称",prop:"name"},{default:a(()=>[t(b,{modelValue:l(o).name,"onUpdate:modelValue":e[2]||(e[2]=s=>l(o).name=s),placeholder:"请输入菜单名称",clearable:""},null,8,["modelValue"])]),_:1}),l(o).type!=l(n).BUTTON?(i(),f(p,{key:0,label:"菜单图标",prop:"icon"},{default:a(()=>[t(G,{class:"flex-1",modelValue:l(o).icon,"onUpdate:modelValue":e[3]||(e[3]=s=>l(o).icon=s)},null,8,["modelValue"])]),_:1})):v("",!0),l(o).type!=l(n).BUTTON?(i(),f(p,{key:1,label:"路由路径",prop:"paths"},{default:a(()=>[d("div",re,[t(b,{modelValue:l(o).paths,"onUpdate:modelValue":e[4]||(e[4]=s=>l(o).paths=s),placeholder:"请输入路由路径",clearable:""},null,8,["modelValue"]),e[16]||(e[16]=d("div",{class:"form-tips"}," 访问的路由地址,如:`user`,如外网地址需内链访问则以`http(s)://`开头 ",-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:2,label:"组件路径",prop:"component"},{default:a(()=>[d("div",pe,[t(I,{class:"w-full",modelValue:l(o).component,"onUpdate:modelValue":e[5]||(e[5]=s=>l(o).component=s),"fetch-suggestions":C,clearable:"",placeholder:"请输入组件路径"},null,8,["modelValue"]),e[17]||(e[17]=d("div",{class:"form-tips"}," 访问的组件路径,如:`user/setting`,默认在`views`目录下 ",-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:3,label:"选中菜单",prop:"selected"},{default:a(()=>[d("div",ie,[t(b,{modelValue:l(o).selected,"onUpdate:modelValue":e[6]||(e[6]=s=>l(o).selected=s),placeholder:"请输入路由路径",clearable:""},null,8,["modelValue"]),e[18]||(e[18]=d("div",{class:"form-tips"}," 访问详情页面,编辑页面时,菜单高亮显示,如`/consumer/lists` ",-1))])]),_:1})):v("",!0),l(o).type!=l(n).CATALOGUE?(i(),f(p,{key:4,label:"权限字符",prop:"perms"},{default:a(()=>[d("div",me,[t(b,{modelValue:l(o).perms,"onUpdate:modelValue":e[7]||(e[7]=s=>l(o).perms=s),placeholder:"请输入权限字符",clearable:""},null,8,["modelValue"]),e[19]||(e[19]=d("div",{class:"form-tips"}," 将作为server端API验权使用,如`auth.admin/user`,请谨慎修改 ",-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:5,label:"路由参数",prop:"params"},{default:a(()=>[d("div",null,[d("div",fe,[t(b,{modelValue:l(o).params,"onUpdate:modelValue":e[8]||(e[8]=s=>l(o).params=s),placeholder:"请输入路由参数",clearable:""},null,8,["modelValue"])]),e[20]||(e[20]=d("div",{class:"form-tips"},' 访问路由的默认传递参数,如:`{"id": 1, "name": "admin"}`或`id=1&name=admin` ',-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:6,label:"是否缓存",prop:"is_cache",required:""},{default:a(()=>[d("div",null,[t(V,{modelValue:l(o).is_cache,"onUpdate:modelValue":e[9]||(e[9]=s=>l(o).is_cache=s)},{default:a(()=>[t(r,{value:1},{default:a(()=>[...e[21]||(e[21]=[m("缓存",-1)])]),_:1}),t(r,{value:0},{default:a(()=>[...e[22]||(e[22]=[m("不缓存",-1)])]),_:1})]),_:1},8,["modelValue"]),e[23]||(e[23]=d("div",{class:"form-tips"},"选择缓存则会被`keep-alive`缓存",-1))])]),_:1})):v("",!0),l(o).type!=l(n).BUTTON?(i(),f(p,{key:7,label:"是否显示",prop:"is_show",required:""},{default:a(()=>[d("div",null,[t(V,{modelValue:l(o).is_show,"onUpdate:modelValue":e[10]||(e[10]=s=>l(o).is_show=s)},{default:a(()=>[t(r,{value:1},{default:a(()=>[...e[24]||(e[24]=[m("显示",-1)])]),_:1}),t(r,{value:0},{default:a(()=>[...e[25]||(e[25]=[m("隐藏",-1)])]),_:1})]),_:1},8,["modelValue"]),e[26]||(e[26]=d("div",{class:"form-tips"}," 选择隐藏则路由将不会出现在侧边栏,但仍然可以访问 ",-1))])]),_:1})):v("",!0),l(o).type!=l(n).BUTTON?(i(),f(p,{key:8,label:"菜单状态",prop:"is_disable",required:""},{default:a(()=>[d("div",null,[t(V,{modelValue:l(o).is_disable,"onUpdate:modelValue":e[11]||(e[11]=s=>l(o).is_disable=s)},{default:a(()=>[t(r,{value:0},{default:a(()=>[...e[27]||(e[27]=[m("正常",-1)])]),_:1}),t(r,{value:1},{default:a(()=>[...e[28]||(e[28]=[m("停用",-1)])]),_:1})]),_:1},8,["modelValue"]),e[29]||(e[29]=d("div",{class:"form-tips"},"选择停用则路由将不会出现在侧边栏,也不能被访问",-1))])]),_:1})):v("",!0),t(p,{label:"菜单排序",prop:"sort"},{default:a(()=>[d("div",null,[t(F,{modelValue:l(o).sort,"onUpdate:modelValue":e[12]||(e[12]=s=>l(o).sort=s),min:0,max:9999},null,8,["modelValue"]),e[30]||(e[30]=d("div",{class:"form-tips"},"数值越大越排前",-1))])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{ce as _};
diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DDcLJMtO.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-LiIBGI8Q.js
similarity index 94%
rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DDcLJMtO.js
rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-LiIBGI8Q.js
index 659e412e5..0ad39031c 100644
--- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DDcLJMtO.js
+++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-LiIBGI8Q.js
@@ -1 +1 @@
-import{o as F,q as i,r as O,v as o,D as a,b9 as S,u as l,b6 as T,s as n,b7 as z,O as c,P as v,bc as A,bf as G,L as m,J,I as L,a8 as w,p as M,ba as P,M as j}from"./.pnpm-BHOjf1ZS.js";import{f as H,h as K,i as Q}from"./wx_oa-DnRFEP08.js";import{_ as W}from"./index-Dt_C33Jx.js";const X={class:"edit-popup"},Y={class:"flex-1"},Z={class:"flex-1"},$={class:"flex-1"},h={class:"flex-1"},ee={class:"flex-1"},te={class:"flex-1"},le={class:"flex-1"},de=F({__name:"edit",emits:["success","close"],setup(oe,{expose:x,emit:k}){const V=k,g=w(),_=w(),f=j("add"),R=M(()=>f.value=="edit"?"编辑":"新增"),t=P({id:"",name:"",reply_type:0,content_type:1,keyword:"",content:"",matching_type:1,status:1,sort:0,reply_num:1}),E={name:[{required:!0,message:"请输入规则名称",trigger:["blur"]}],keyword:[{required:!0,message:"请输入关键词",trigger:["blur"]}],matching_type:[{required:!0,message:"请选择匹配方式",trigger:["blur"]}],content_type:[{required:!0,message:"请选择回复类型",trigger:["blur"]}],content:[{required:!0,message:"请输入回复内容",trigger:["blur"]}]},U=async()=>{var d,e;await((d=g.value)==null?void 0:d.validate()),f.value=="edit"?await H(t):await K(t),(e=_.value)==null||e.close(),V("success")},q=(d="add",e=0)=>{var u;f.value=d,t.reply_type=e,(u=_.value)==null||u.open()},b=d=>{for(const e in t)d[e]!=null&&d[e]!=null&&(t[e]=d[e])},C=async d=>{const e=await Q({id:d.id});b(e)},D=()=>{V("close")};return x({open:q,setFormData:b,getDetail:C}),(d,e)=>{const u=z,r=T,p=G,y=A,N=J,B=L,I=S;return i(),O("div",X,[o(W,{ref_key:"popupRef",ref:_,title:l(R),async:!0,width:"500px",onConfirm:U,onClose:D},{default:a(()=>[o(I,{ref_key:"formRef",ref:g,model:l(t),"label-width":"84px",rules:E,class:"pr-10"},{default:a(()=>[o(r,{label:"规则名称",prop:"name"},{default:a(()=>[n("div",Y,[o(u,{modelValue:l(t).name,"onUpdate:modelValue":e[0]||(e[0]=s=>l(t).name=s),placeholder:"请输入规则名称"},null,8,["modelValue"]),e[8]||(e[8]=n("div",{class:"form-tips"},"方便通过名称管理关注回复内容",-1))])]),_:1}),l(t).reply_type==2?(i(),c(r,{key:0,label:"关键词",prop:"keyword"},{default:a(()=>[n("div",Z,[o(u,{modelValue:l(t).keyword,"onUpdate:modelValue":e[1]||(e[1]=s=>l(t).keyword=s),placeholder:"请输入关键词"},null,8,["modelValue"]),e[9]||(e[9]=n("div",{class:"form-tips"},"方便通过名称管理关注回复内容",-1))])]),_:1})):v("",!0),l(t).reply_type==2?(i(),c(r,{key:1,label:"匹配方式",prop:"matching_type"},{default:a(()=>[n("div",$,[o(y,{modelValue:l(t).matching_type,"onUpdate:modelValue":e[2]||(e[2]=s=>l(t).matching_type=s)},{default:a(()=>[o(p,{value:1},{default:a(()=>[...e[10]||(e[10]=[m("全匹配",-1)])]),_:1}),o(p,{value:2},{default:a(()=>[...e[11]||(e[11]=[m("模糊匹配",-1)])]),_:1})]),_:1},8,["modelValue"]),e[12]||(e[12]=n("div",{class:"form-tips"},"模糊匹配时,关键词部分匹配用户输入的内容即可",-1))])]),_:1})):v("",!0),o(r,{label:"回复类型",prop:"content_type",min:0},{default:a(()=>[n("div",h,[o(y,{modelValue:l(t).content_type,"onUpdate:modelValue":e[3]||(e[3]=s=>l(t).content_type=s)},{default:a(()=>[o(p,{value:1},{default:a(()=>[...e[13]||(e[13]=[m("文本",-1)])]),_:1})]),_:1},8,["modelValue"]),e[14]||(e[14]=n("div",{class:"form-tips"},"暂时只支持文本类型",-1))])]),_:1}),o(r,{label:"回复内容",prop:"content"},{default:a(()=>[n("div",ee,[o(u,{modelValue:l(t).content,"onUpdate:modelValue":e[4]||(e[4]=s=>l(t).content=s),autosize:{minRows:4,maxRows:4},type:"textarea",maxlength:"200","show-word-limit":"",placeholder:"请输入回复内容"},null,8,["modelValue"])])]),_:1}),o(r,{label:"排序"},{default:a(()=>[n("div",te,[o(N,{modelValue:l(t).sort,"onUpdate:modelValue":e[5]||(e[5]=s=>l(t).sort=s),min:0,max:9999},null,8,["modelValue"])])]),_:1}),l(t).reply_type==2?(i(),c(r,{key:2,label:"回复数量",prop:"reply_num",required:""},{default:a(()=>[n("div",le,[o(y,{modelValue:l(t).reply_num,"onUpdate:modelValue":e[6]||(e[6]=s=>l(t).reply_num=s)},{default:a(()=>[o(p,{value:1},{default:a(()=>[...e[15]||(e[15]=[m("回复匹配首词条",-1)])]),_:1})]),_:1},8,["modelValue"]),e[16]||(e[16]=n("div",{class:"form-tips"}," 设置关键词匹配多条时回复的数量,暂时支持回复一条内容 ",-1))])]),_:1})):v("",!0),o(r,{label:"启用状态"},{default:a(()=>[o(B,{modelValue:l(t).status,"onUpdate:modelValue":e[7]||(e[7]=s=>l(t).status=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{de as _};
+import{o as F,q as i,r as O,v as o,D as a,b9 as S,u as l,b6 as T,s as n,b7 as z,O as c,P as v,bc as A,bo as G,L as m,J,I as L,a8 as w,p as M,ba as P,M as j}from"./.pnpm-BuKxIMgQ.js";import{f as H,h as K,i as Q}from"./wx_oa-CPg89SqX.js";import{_ as W}from"./index-BARAiw4K.js";const X={class:"edit-popup"},Y={class:"flex-1"},Z={class:"flex-1"},$={class:"flex-1"},h={class:"flex-1"},ee={class:"flex-1"},te={class:"flex-1"},le={class:"flex-1"},de=F({__name:"edit",emits:["success","close"],setup(oe,{expose:x,emit:k}){const V=k,g=w(),_=w(),f=j("add"),R=M(()=>f.value=="edit"?"编辑":"新增"),t=P({id:"",name:"",reply_type:0,content_type:1,keyword:"",content:"",matching_type:1,status:1,sort:0,reply_num:1}),E={name:[{required:!0,message:"请输入规则名称",trigger:["blur"]}],keyword:[{required:!0,message:"请输入关键词",trigger:["blur"]}],matching_type:[{required:!0,message:"请选择匹配方式",trigger:["blur"]}],content_type:[{required:!0,message:"请选择回复类型",trigger:["blur"]}],content:[{required:!0,message:"请输入回复内容",trigger:["blur"]}]},U=async()=>{var d,e;await((d=g.value)==null?void 0:d.validate()),f.value=="edit"?await H(t):await K(t),(e=_.value)==null||e.close(),V("success")},q=(d="add",e=0)=>{var u;f.value=d,t.reply_type=e,(u=_.value)==null||u.open()},b=d=>{for(const e in t)d[e]!=null&&d[e]!=null&&(t[e]=d[e])},C=async d=>{const e=await Q({id:d.id});b(e)},D=()=>{V("close")};return x({open:q,setFormData:b,getDetail:C}),(d,e)=>{const u=z,r=T,p=G,y=A,N=J,B=L,I=S;return i(),O("div",X,[o(W,{ref_key:"popupRef",ref:_,title:l(R),async:!0,width:"500px",onConfirm:U,onClose:D},{default:a(()=>[o(I,{ref_key:"formRef",ref:g,model:l(t),"label-width":"84px",rules:E,class:"pr-10"},{default:a(()=>[o(r,{label:"规则名称",prop:"name"},{default:a(()=>[n("div",Y,[o(u,{modelValue:l(t).name,"onUpdate:modelValue":e[0]||(e[0]=s=>l(t).name=s),placeholder:"请输入规则名称"},null,8,["modelValue"]),e[8]||(e[8]=n("div",{class:"form-tips"},"方便通过名称管理关注回复内容",-1))])]),_:1}),l(t).reply_type==2?(i(),c(r,{key:0,label:"关键词",prop:"keyword"},{default:a(()=>[n("div",Z,[o(u,{modelValue:l(t).keyword,"onUpdate:modelValue":e[1]||(e[1]=s=>l(t).keyword=s),placeholder:"请输入关键词"},null,8,["modelValue"]),e[9]||(e[9]=n("div",{class:"form-tips"},"方便通过名称管理关注回复内容",-1))])]),_:1})):v("",!0),l(t).reply_type==2?(i(),c(r,{key:1,label:"匹配方式",prop:"matching_type"},{default:a(()=>[n("div",$,[o(y,{modelValue:l(t).matching_type,"onUpdate:modelValue":e[2]||(e[2]=s=>l(t).matching_type=s)},{default:a(()=>[o(p,{value:1},{default:a(()=>[...e[10]||(e[10]=[m("全匹配",-1)])]),_:1}),o(p,{value:2},{default:a(()=>[...e[11]||(e[11]=[m("模糊匹配",-1)])]),_:1})]),_:1},8,["modelValue"]),e[12]||(e[12]=n("div",{class:"form-tips"},"模糊匹配时,关键词部分匹配用户输入的内容即可",-1))])]),_:1})):v("",!0),o(r,{label:"回复类型",prop:"content_type",min:0},{default:a(()=>[n("div",h,[o(y,{modelValue:l(t).content_type,"onUpdate:modelValue":e[3]||(e[3]=s=>l(t).content_type=s)},{default:a(()=>[o(p,{value:1},{default:a(()=>[...e[13]||(e[13]=[m("文本",-1)])]),_:1})]),_:1},8,["modelValue"]),e[14]||(e[14]=n("div",{class:"form-tips"},"暂时只支持文本类型",-1))])]),_:1}),o(r,{label:"回复内容",prop:"content"},{default:a(()=>[n("div",ee,[o(u,{modelValue:l(t).content,"onUpdate:modelValue":e[4]||(e[4]=s=>l(t).content=s),autosize:{minRows:4,maxRows:4},type:"textarea",maxlength:"200","show-word-limit":"",placeholder:"请输入回复内容"},null,8,["modelValue"])])]),_:1}),o(r,{label:"排序"},{default:a(()=>[n("div",te,[o(N,{modelValue:l(t).sort,"onUpdate:modelValue":e[5]||(e[5]=s=>l(t).sort=s),min:0,max:9999},null,8,["modelValue"])])]),_:1}),l(t).reply_type==2?(i(),c(r,{key:2,label:"回复数量",prop:"reply_num",required:""},{default:a(()=>[n("div",le,[o(y,{modelValue:l(t).reply_num,"onUpdate:modelValue":e[6]||(e[6]=s=>l(t).reply_num=s)},{default:a(()=>[o(p,{value:1},{default:a(()=>[...e[15]||(e[15]=[m("回复匹配首词条",-1)])]),_:1})]),_:1},8,["modelValue"]),e[16]||(e[16]=n("div",{class:"form-tips"}," 设置关键词匹配多条时回复的数量,暂时支持回复一条内容 ",-1))])]),_:1})):v("",!0),o(r,{label:"启用状态"},{default:a(()=>[o(B,{modelValue:l(t).status,"onUpdate:modelValue":e[7]||(e[7]=s=>l(t).status=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{de as _};
diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-B0772kYb.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-H7N9Ba6a.js
similarity index 93%
rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-B0772kYb.js
rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-H7N9Ba6a.js
index 4aa708ad6..7c9962811 100644
--- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-B0772kYb.js
+++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-H7N9Ba6a.js
@@ -1 +1 @@
-import{o as f,q as D,r as I,v as a,D as n,b9 as B,u as l,b6 as F,b7 as N,s as c,J as U,I as q,a8 as _,p as S,ba as A,M as J}from"./.pnpm-BHOjf1ZS.js";import{d as M,e as T,f as j}from"./article-DB3929O1.js";import{_ as z}from"./index-Dt_C33Jx.js";const G={class:"edit-popup"},H=f({name:"articleColumnEdit"}),Q=f({...H,emits:["success","close"],setup(K,{expose:v,emit:w}){const u=w,d=_(),i=_(),r=J("add"),b=S(()=>r.value=="edit"?"编辑栏目":"新增栏目"),o=A({id:"",name:"",sort:0,is_show:1}),V={name:[{required:!0,message:"请输入栏目名称",trigger:["blur"]}]},C=async()=>{var t,e;await((t=d.value)==null?void 0:t.validate()),r.value=="edit"?await M(o):await T(o),(e=i.value)==null||e.close(),u("success")},E=(t="add")=>{var e;r.value=t,(e=i.value)==null||e.open()},p=t=>{for(const e in o)t[e]!=null&&t[e]!=null&&(o[e]=t[e])},h=async t=>{const e=await j({id:t.id});p(e)},x=()=>{u("close")};return v({open:E,setFormData:p,getDetail:h}),(t,e)=>{const y=N,m=F,R=U,g=q,k=B;return D(),I("div",G,[a(z,{ref_key:"popupRef",ref:i,title:l(b),async:!0,width:"550px",onConfirm:C,onClose:x},{default:n(()=>[a(k,{ref_key:"formRef",ref:d,model:l(o),"label-width":"84px",rules:V},{default:n(()=>[a(m,{label:"栏目名称",prop:"name"},{default:n(()=>[a(y,{modelValue:l(o).name,"onUpdate:modelValue":e[0]||(e[0]=s=>l(o).name=s),placeholder:"请输入栏目名称",clearable:""},null,8,["modelValue"])]),_:1}),a(m,{label:"排序",prop:"sort"},{default:n(()=>[c("div",null,[a(R,{modelValue:l(o).sort,"onUpdate:modelValue":e[1]||(e[1]=s=>l(o).sort=s),min:0,max:9999},null,8,["modelValue"]),e[3]||(e[3]=c("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),a(m,{label:"状态",prop:"is_show"},{default:n(()=>[a(g,{modelValue:l(o).is_show,"onUpdate:modelValue":e[2]||(e[2]=s=>l(o).is_show=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{Q as _};
+import{o as f,q as D,r as I,v as a,D as n,b9 as B,u as l,b6 as F,b7 as N,s as c,J as U,I as q,a8 as _,p as S,ba as A,M as J}from"./.pnpm-BuKxIMgQ.js";import{d as M,e as T,f as j}from"./article-CjHzXUSw.js";import{_ as z}from"./index-BARAiw4K.js";const G={class:"edit-popup"},H=f({name:"articleColumnEdit"}),Q=f({...H,emits:["success","close"],setup(K,{expose:v,emit:w}){const u=w,d=_(),i=_(),r=J("add"),b=S(()=>r.value=="edit"?"编辑栏目":"新增栏目"),o=A({id:"",name:"",sort:0,is_show:1}),V={name:[{required:!0,message:"请输入栏目名称",trigger:["blur"]}]},C=async()=>{var t,e;await((t=d.value)==null?void 0:t.validate()),r.value=="edit"?await M(o):await T(o),(e=i.value)==null||e.close(),u("success")},E=(t="add")=>{var e;r.value=t,(e=i.value)==null||e.open()},p=t=>{for(const e in o)t[e]!=null&&t[e]!=null&&(o[e]=t[e])},h=async t=>{const e=await j({id:t.id});p(e)},x=()=>{u("close")};return v({open:E,setFormData:p,getDetail:h}),(t,e)=>{const y=N,m=F,R=U,g=q,k=B;return D(),I("div",G,[a(z,{ref_key:"popupRef",ref:i,title:l(b),async:!0,width:"550px",onConfirm:C,onClose:x},{default:n(()=>[a(k,{ref_key:"formRef",ref:d,model:l(o),"label-width":"84px",rules:V},{default:n(()=>[a(m,{label:"栏目名称",prop:"name"},{default:n(()=>[a(y,{modelValue:l(o).name,"onUpdate:modelValue":e[0]||(e[0]=s=>l(o).name=s),placeholder:"请输入栏目名称",clearable:""},null,8,["modelValue"])]),_:1}),a(m,{label:"排序",prop:"sort"},{default:n(()=>[c("div",null,[a(R,{modelValue:l(o).sort,"onUpdate:modelValue":e[1]||(e[1]=s=>l(o).sort=s),min:0,max:9999},null,8,["modelValue"]),e[3]||(e[3]=c("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),a(m,{label:"状态",prop:"is_show"},{default:n(()=>[a(g,{modelValue:l(o).is_show,"onUpdate:modelValue":e[2]||(e[2]=s=>l(o).is_show=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{Q as _};
diff --git a/server/public/admin/assets/environment-ebHX4Te_.js b/server/public/admin/assets/environment-Bv7c9kPx.js
similarity index 66%
rename from server/public/admin/assets/environment-ebHX4Te_.js
rename to server/public/admin/assets/environment-Bv7c9kPx.js
index 282869eef..59cb85227 100644
--- a/server/public/admin/assets/environment-ebHX4Te_.js
+++ b/server/public/admin/assets/environment-Bv7c9kPx.js
@@ -1 +1 @@
-import{c as b,E as f}from"./index-B31vLELt.js";import{o as i,ap as k,q as n,r as h,v as e,D as t,s as l,bj as x,u as p,bk as y,bg as w,O as c,ba as B}from"./.pnpm-BHOjf1ZS.js";const C={class:"system-environment"},E={class:"mt-4"},g={class:"mt-4"},q={class:"mt-4"},S=i({name:"environment"}),T=i({...S,setup(I){const s=B({server:[],env:[],auth:[]}),v=()=>{f().then(r=>{s.server=r.server,s.env=r.env,s.auth=r.auth})};return k(()=>{v()}),(r,o)=>{const a=y,_=x,m=w,d=b;return n(),h("div",C,[e(m,{class:"!border-none",shadow:"never"},{default:t(()=>[o[0]||(o[0]=l("div",null,"服务器信息",-1)),l("div",E,[e(_,{data:p(s).server},{default:t(()=>[e(a,{prop:"param",label:"参数"}),e(a,{prop:"value",label:"值"})]),_:1},8,["data"])])]),_:1}),e(m,{shadow:"never",class:"!border-none mt-4"},{default:t(()=>[o[1]||(o[1]=l("div",null,"PHP环境要求",-1)),l("div",g,[e(_,{data:p(s).env},{default:t(()=>[e(a,{prop:"option",label:"选项"}),e(a,{prop:"require",label:"要求"}),e(a,{label:"状态"},{default:t(u=>[u.row.status?(n(),c(d,{key:0,name:"el-icon-Select",class:"text-success"})):(n(),c(d,{key:1,name:"el-icon-CloseBold",class:"text-danger"}))]),_:1}),e(a,{prop:"remark",label:"说明及帮助"})]),_:1},8,["data"])])]),_:1}),e(m,{shadow:"never",class:"!border-none mt-4"},{default:t(()=>[o[2]||(o[2]=l("div",null,"目录权限",-1)),l("div",q,[e(_,{data:p(s).auth},{default:t(()=>[e(a,{prop:"dir",label:"选项"}),e(a,{prop:"require",label:"要求"}),e(a,{label:"状态"},{default:t(u=>[u.row.status?(n(),c(d,{key:0,name:"el-icon-Select",class:"text-success"})):(n(),c(d,{key:1,name:"el-icon-CloseBold",class:"text-danger"}))]),_:1}),e(a,{prop:"remark",label:"说明及帮助"})]),_:1},8,["data"])])]),_:1})])}}});export{T as default};
+import{c as b,E as f}from"./index-BZAvl557.js";import{o as p,ap as h,q as n,r as k,v as e,D as t,s as l,bi as x,u as i,bj as y,bh as w,O as c,ba as B}from"./.pnpm-BuKxIMgQ.js";const C={class:"system-environment"},E={class:"mt-4"},g={class:"mt-4"},q={class:"mt-4"},S=p({name:"environment"}),T=p({...S,setup(I){const s=B({server:[],env:[],auth:[]}),v=()=>{f().then(r=>{s.server=r.server,s.env=r.env,s.auth=r.auth})};return h(()=>{v()}),(r,o)=>{const a=y,_=x,m=w,d=b;return n(),k("div",C,[e(m,{class:"!border-none",shadow:"never"},{default:t(()=>[o[0]||(o[0]=l("div",null,"服务器信息",-1)),l("div",E,[e(_,{data:i(s).server},{default:t(()=>[e(a,{prop:"param",label:"参数"}),e(a,{prop:"value",label:"值"})]),_:1},8,["data"])])]),_:1}),e(m,{shadow:"never",class:"!border-none mt-4"},{default:t(()=>[o[1]||(o[1]=l("div",null,"PHP环境要求",-1)),l("div",g,[e(_,{data:i(s).env},{default:t(()=>[e(a,{prop:"option",label:"选项"}),e(a,{prop:"require",label:"要求"}),e(a,{label:"状态"},{default:t(u=>[u.row.status?(n(),c(d,{key:0,name:"el-icon-Select",class:"text-success"})):(n(),c(d,{key:1,name:"el-icon-CloseBold",class:"text-danger"}))]),_:1}),e(a,{prop:"remark",label:"说明及帮助"})]),_:1},8,["data"])])]),_:1}),e(m,{shadow:"never",class:"!border-none mt-4"},{default:t(()=>[o[2]||(o[2]=l("div",null,"目录权限",-1)),l("div",q,[e(_,{data:i(s).auth},{default:t(()=>[e(a,{prop:"dir",label:"选项"}),e(a,{prop:"require",label:"要求"}),e(a,{label:"状态"},{default:t(u=>[u.row.status?(n(),c(d,{key:0,name:"el-icon-Select",class:"text-success"})):(n(),c(d,{key:1,name:"el-icon-CloseBold",class:"text-danger"}))]),_:1}),e(a,{prop:"remark",label:"说明及帮助"})]),_:1},8,["data"])])]),_:1})])}}});export{T as default};
diff --git a/server/public/admin/assets/error-DsFdpPpO.js b/server/public/admin/assets/error-DibWL8Oq.js
similarity index 85%
rename from server/public/admin/assets/error-DsFdpPpO.js
rename to server/public/admin/assets/error-DibWL8Oq.js
index 129465a81..59698a3ef 100644
--- a/server/public/admin/assets/error-DsFdpPpO.js
+++ b/server/public/admin/assets/error-DibWL8Oq.js
@@ -1 +1 @@
-import{o as u,W as m,aq as v,q as l,r as _,s,ah as f,T as r,O as p,D as B,L as h,u as x,P as g,M as y,K as k}from"./.pnpm-BHOjf1ZS.js";import{_ as w}from"./index-B31vLELt.js";const C={class:"error"},I={class:"error-code"},S={class:"text-lg text-tx-secondary mt-7 mb-7"},E=u({__name:"error",props:{code:String,title:String,showBtn:{type:Boolean,default:!0}},setup(e){const c=e;let t=null;const o=y(5),a=m();return c.showBtn&&(t=setInterval(()=>{o.value===0?(clearInterval(t),a.go(-1)):o.value--},1e3)),v(()=>{t&&clearInterval(t)}),(d,n)=>{const i=k;return l(),_("div",C,[s("div",null,[f(d.$slots,"content",{},()=>[s("div",I,r(e.code),1)],!0),s("div",S,r(e.title),1),e.showBtn?(l(),p(i,{key:0,type:"primary",onClick:n[0]||(n[0]=N=>x(a).go(-1))},{default:B(()=>[h(r(o.value)+" 秒后返回上一页 ",1)]),_:1})):g("",!0)])])}}}),q=w(E,[["__scopeId","data-v-0154c8e6"]]);export{q as default};
+import{o as u,W as m,aq as v,q as l,r as _,s,ah as f,T as r,O as p,D as B,L as h,u as x,P as g,M as y,K as k}from"./.pnpm-BuKxIMgQ.js";import{_ as w}from"./index-BZAvl557.js";const C={class:"error"},I={class:"error-code"},S={class:"text-lg text-tx-secondary mt-7 mb-7"},E=u({__name:"error",props:{code:String,title:String,showBtn:{type:Boolean,default:!0}},setup(e){const c=e;let t=null;const o=y(5),a=m();return c.showBtn&&(t=setInterval(()=>{o.value===0?(clearInterval(t),a.go(-1)):o.value--},1e3)),v(()=>{t&&clearInterval(t)}),(d,n)=>{const i=k;return l(),_("div",C,[s("div",null,[f(d.$slots,"content",{},()=>[s("div",I,r(e.code),1)],!0),s("div",S,r(e.title),1),e.showBtn?(l(),p(i,{key:0,type:"primary",onClick:n[0]||(n[0]=N=>x(a).go(-1))},{default:B(()=>[h(r(o.value)+" 秒后返回上一页 ",1)]),_:1})):g("",!0)])])}}}),q=w(E,[["__scopeId","data-v-0154c8e6"]]);export{q as default};
diff --git a/server/public/admin/assets/fans-CDj9hK34.js b/server/public/admin/assets/fans-ZsYBYCua.js
similarity index 89%
rename from server/public/admin/assets/fans-CDj9hK34.js
rename to server/public/admin/assets/fans-ZsYBYCua.js
index 1e38c24fd..53b2e8c93 100644
--- a/server/public/admin/assets/fans-CDj9hK34.js
+++ b/server/public/admin/assets/fans-ZsYBYCua.js
@@ -1 +1 @@
-import{r as n}from"./index-B31vLELt.js";function e(t){return n.get({url:"/fan/lists",params:t})}function i(t){return n.post({url:"/fan/add",params:t})}function s(t){return n.post({url:"/fan/edit",params:t})}function a(t){return n.post({url:"/fan/delete",params:t})}function f(t){return n.get({url:"/fan/visitRecordLists",params:t})}function o(t){return n.post({url:"/fan/addVisitRecord",params:t})}function u(t){return n.post({url:"/fan/editVisitRecord",params:t})}function d(t){return n.post({url:"/fan/deleteVisitRecord",params:t})}export{i as a,s as b,o as c,u as d,d as e,e as f,f as g,a as h};
+import{r as n}from"./index-BZAvl557.js";function e(t){return n.get({url:"/fan/lists",params:t})}function i(t){return n.post({url:"/fan/add",params:t})}function s(t){return n.post({url:"/fan/edit",params:t})}function a(t){return n.post({url:"/fan/delete",params:t})}function f(t){return n.get({url:"/fan/visitRecordLists",params:t})}function o(t){return n.post({url:"/fan/addVisitRecord",params:t})}function u(t){return n.post({url:"/fan/editVisitRecord",params:t})}function d(t){return n.post({url:"/fan/deleteVisitRecord",params:t})}export{i as a,s as b,o as c,u as d,d as e,e as f,f as g,a as h};
diff --git a/server/public/admin/assets/file-DFj3ko4j.js b/server/public/admin/assets/file-4O37R3TG.js
similarity index 95%
rename from server/public/admin/assets/file-DFj3ko4j.js
rename to server/public/admin/assets/file-4O37R3TG.js
index 263853ad5..c0535cf93 100644
--- a/server/public/admin/assets/file-DFj3ko4j.js
+++ b/server/public/admin/assets/file-4O37R3TG.js
@@ -1 +1 @@
-import{e as f,q as a,g as c,R as p,r as t}from"./index-B31vLELt.js";async function i(e,n="image",o=0){const l=f(),r=new FormData;r.append("file",e),r.append("cid",String(o));const u=`${a.baseUrl}${a.urlPrefix}/upload/${n}`,s=await(await fetch(u,{method:"POST",headers:{token:c()||"",version:l.config.version||""},body:r})).json();if(s.code!==p.SUCCESS)throw new Error(s.msg||"上传失败");return s.data}async function m(e,n="screenshot.jpg"){const o=e instanceof File?e:new File([e],n,{type:e.type||"image/jpeg"});return i(o,"image",0)}async function C(e,n="recording.webm"){const o=e instanceof File?e:new File([e],n,{type:e.type||"video/webm"});return i(o,"video",0)}function b(e){return t.post({url:"/file/addCate",params:e})}function w(e){return t.post({url:"/file/editCate",params:e})}function y(e){return t.post({url:"/file/delCate",params:e})}function j(e){return t.get({url:"/file/listCate",params:e})}function S(e){return t.get({url:"/file/lists",params:e},{ignoreCancelToken:!0,isOpenRetry:!1})}function h(e){return t.post({url:"/file/delete",params:e})}function v(e){return t.post({url:"/file/move",params:e})}function F(e){return t.post({url:"/file/rename",params:e})}function O(e){return t.post({url:"/upload/ossCredentials",params:e})}function k(e){return t.post({url:"/upload/ossConfirm",params:e})}export{i as a,y as b,w as c,b as d,F as e,j as f,v as g,h,S as i,O as j,k,C as l,m as u};
+import{e as f,q as a,g as c,R as p,r as t}from"./index-BZAvl557.js";async function i(e,n="image",o=0){const l=f(),r=new FormData;r.append("file",e),r.append("cid",String(o));const u=`${a.baseUrl}${a.urlPrefix}/upload/${n}`,s=await(await fetch(u,{method:"POST",headers:{token:c()||"",version:l.config.version||""},body:r})).json();if(s.code!==p.SUCCESS)throw new Error(s.msg||"上传失败");return s.data}async function m(e,n="screenshot.jpg"){const o=e instanceof File?e:new File([e],n,{type:e.type||"image/jpeg"});return i(o,"image",0)}async function C(e,n="recording.webm"){const o=e instanceof File?e:new File([e],n,{type:e.type||"video/webm"});return i(o,"video",0)}function b(e){return t.post({url:"/file/addCate",params:e})}function w(e){return t.post({url:"/file/editCate",params:e})}function y(e){return t.post({url:"/file/delCate",params:e})}function j(e){return t.get({url:"/file/listCate",params:e})}function S(e){return t.get({url:"/file/lists",params:e},{ignoreCancelToken:!0,isOpenRetry:!1})}function h(e){return t.post({url:"/file/delete",params:e})}function v(e){return t.post({url:"/file/move",params:e})}function F(e){return t.post({url:"/file/rename",params:e})}function O(e){return t.post({url:"/upload/ossCredentials",params:e})}function k(e){return t.post({url:"/upload/ossConfirm",params:e})}export{i as a,y as b,w as c,b as d,F as e,j as f,v as g,h,S as i,O as j,k,C as l,m as u};
diff --git a/server/public/admin/assets/file-CVQCw6gj.js b/server/public/admin/assets/file-NbQjQSL6.js
similarity index 71%
rename from server/public/admin/assets/file-CVQCw6gj.js
rename to server/public/admin/assets/file-NbQjQSL6.js
index ef08e02ce..a2458e1a7 100644
--- a/server/public/admin/assets/file-CVQCw6gj.js
+++ b/server/public/admin/assets/file-NbQjQSL6.js
@@ -1 +1 @@
-import{o as v,q as r,r as p,v as a,D as n,s as e,u as s,bg as f,K as x,L as V,b7 as _,ba as w}from"./.pnpm-BHOjf1ZS.js";import{_ as b}from"./picker-DY0rRn6Q.js";import"./index-Dt_C33Jx.js";import"./index-B31vLELt.js";import"./index-Mwguss-B.js";import"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import"./index-Btk0rgzN.js";import"./index-BXyqGAss.js";import"./file-DFj3ko4j.js";import"./index.vue_vue_type_script_setup_true_lang-BBhGStE3.js";import"./usePaging-oaNM6A9T.js";const U={class:"flex flex-wrap"},B={class:"flex m-4"},E={class:"flex m-4"},k={class:"flex flex-1 m-4"},C={class:"flex-1"},N={class:"flex flex-wrap"},g={class:"flex m-4"},c={class:"flex m-4"},q={class:"flex m-4"},y={class:"flex m-4 items-center"},z={class:"flex m-4 items-center"},P=v({__name:"file",setup(D){const o=w({value1:"",value2:[],value3:"",value4:"",value5:"",value6:""});return(I,l)=>{const d=b,u=f,i=x,m=_;return r(),p("div",null,[a(u,{header:"基础使用",shadow:"never",class:"!border-none"},{default:n(()=>[e("div",U,[e("div",B,[l[6]||(l[6]=e("div",{class:"mr-4"},"选择图片:",-1)),a(d,{modelValue:s(o).value1,"onUpdate:modelValue":l[0]||(l[0]=t=>s(o).value1=t)},null,8,["modelValue"])]),e("div",E,[l[7]||(l[7]=e("div",{class:"mr-4"},"选择视频:",-1)),a(d,{type:"video",modelValue:s(o).value3,"onUpdate:modelValue":l[1]||(l[1]=t=>s(o).value3=t)},null,8,["modelValue"])]),e("div",k,[l[8]||(l[8]=e("div",{class:"mr-4"},"多张图片:",-1)),e("div",C,[a(d,{limit:4,modelValue:s(o).value2,"onUpdate:modelValue":l[2]||(l[2]=t=>s(o).value2=t)},null,8,["modelValue"])])])])]),_:1}),a(u,{header:"进阶用法",shadow:"never",class:"!border-none mt-4"},{default:n(()=>[e("div",N,[e("div",g,[l[9]||(l[9]=e("div",{class:"mr-4"},"自定义选择器大小:",-1)),a(d,{size:"60px",modelValue:s(o).value4,"onUpdate:modelValue":l[3]||(l[3]=t=>s(o).value4=t)},null,8,["modelValue"])]),e("div",c,[l[11]||(l[11]=e("div",{class:"mr-4"},"使用插槽:",-1)),a(d,{modelValue:s(o).value5,"onUpdate:modelValue":l[4]||(l[4]=t=>s(o).value5=t)},{upload:n(()=>[a(i,null,{default:n(()=>[...l[10]||(l[10]=[V("选择文件",-1)])]),_:1})]),_:1},8,["modelValue"])]),e("div",q,[l[12]||(l[12]=e("div",{class:"mr-4"},"选出地址不带域名:",-1)),a(d,{"exclude-domain":!0,modelValue:s(o).value6,"onUpdate:modelValue":l[5]||(l[5]=t=>s(o).value6=t)},null,8,["modelValue"])])]),e("div",null,[e("div",y,[l[13]||(l[13]=e("div",{class:"w-20 flex-none"},"带域名:",-1)),a(m,{class:"w-[500px]","model-value":s(o).value5},null,8,["model-value"])]),e("div",z,[l[14]||(l[14]=e("div",{class:"w-20 flex-none"},"不带域名:",-1)),a(m,{class:"w-[500px]","model-value":s(o).value6},null,8,["model-value"])])])]),_:1})])}}});export{P as default};
+import{o as v,q as r,r as p,v as a,D as n,s as e,u as s,bh as f,K as x,L as V,b7 as _,ba as w}from"./.pnpm-BuKxIMgQ.js";import{_ as b}from"./picker-C-hBLp_q.js";import"./index-BARAiw4K.js";import"./index-BZAvl557.js";import"./index-DO2zctlZ.js";import"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import"./index-BYpT7Ezr.js";import"./index-CzMLdmwb.js";import"./file-4O37R3TG.js";import"./index.vue_vue_type_script_setup_true_lang-CMJ6A--A.js";import"./usePaging-DNtxCypz.js";const U={class:"flex flex-wrap"},B={class:"flex m-4"},E={class:"flex m-4"},k={class:"flex flex-1 m-4"},C={class:"flex-1"},N={class:"flex flex-wrap"},c={class:"flex m-4"},g={class:"flex m-4"},q={class:"flex m-4"},y={class:"flex m-4 items-center"},z={class:"flex m-4 items-center"},P=v({__name:"file",setup(D){const o=w({value1:"",value2:[],value3:"",value4:"",value5:"",value6:""});return(I,l)=>{const d=b,u=f,i=x,m=_;return r(),p("div",null,[a(u,{header:"基础使用",shadow:"never",class:"!border-none"},{default:n(()=>[e("div",U,[e("div",B,[l[6]||(l[6]=e("div",{class:"mr-4"},"选择图片:",-1)),a(d,{modelValue:s(o).value1,"onUpdate:modelValue":l[0]||(l[0]=t=>s(o).value1=t)},null,8,["modelValue"])]),e("div",E,[l[7]||(l[7]=e("div",{class:"mr-4"},"选择视频:",-1)),a(d,{type:"video",modelValue:s(o).value3,"onUpdate:modelValue":l[1]||(l[1]=t=>s(o).value3=t)},null,8,["modelValue"])]),e("div",k,[l[8]||(l[8]=e("div",{class:"mr-4"},"多张图片:",-1)),e("div",C,[a(d,{limit:4,modelValue:s(o).value2,"onUpdate:modelValue":l[2]||(l[2]=t=>s(o).value2=t)},null,8,["modelValue"])])])])]),_:1}),a(u,{header:"进阶用法",shadow:"never",class:"!border-none mt-4"},{default:n(()=>[e("div",N,[e("div",c,[l[9]||(l[9]=e("div",{class:"mr-4"},"自定义选择器大小:",-1)),a(d,{size:"60px",modelValue:s(o).value4,"onUpdate:modelValue":l[3]||(l[3]=t=>s(o).value4=t)},null,8,["modelValue"])]),e("div",g,[l[11]||(l[11]=e("div",{class:"mr-4"},"使用插槽:",-1)),a(d,{modelValue:s(o).value5,"onUpdate:modelValue":l[4]||(l[4]=t=>s(o).value5=t)},{upload:n(()=>[a(i,null,{default:n(()=>[...l[10]||(l[10]=[V("选择文件",-1)])]),_:1})]),_:1},8,["modelValue"])]),e("div",q,[l[12]||(l[12]=e("div",{class:"mr-4"},"选出地址不带域名:",-1)),a(d,{"exclude-domain":!0,modelValue:s(o).value6,"onUpdate:modelValue":l[5]||(l[5]=t=>s(o).value6=t)},null,8,["modelValue"])])]),e("div",null,[e("div",y,[l[13]||(l[13]=e("div",{class:"w-20 flex-none"},"带域名:",-1)),a(m,{class:"w-[500px]","model-value":s(o).value5},null,8,["model-value"])]),e("div",z,[l[14]||(l[14]=e("div",{class:"w-20 flex-none"},"不带域名:",-1)),a(m,{class:"w-[500px]","model-value":s(o).value6},null,8,["model-value"])])])]),_:1})])}}});export{P as default};
diff --git a/server/public/admin/assets/filing-BA2etyr9.js b/server/public/admin/assets/filing-Dyudi2fn.js
similarity index 67%
rename from server/public/admin/assets/filing-BA2etyr9.js
rename to server/public/admin/assets/filing-Dyudi2fn.js
index 866592f0a..2f6dbd2ad 100644
--- a/server/public/admin/assets/filing-BA2etyr9.js
+++ b/server/public/admin/assets/filing-Dyudi2fn.js
@@ -1 +1 @@
-import{_ as F}from"./index-BKuK5cAm.js";import{o as b,be as x,q as i,r as m,v as e,D as t,s as l,b9 as U,F as N,G as I,u as f,O as v,b6 as L,b7 as $,K as j,L as g,bg as q,ac as A,M as G}from"./.pnpm-BHOjf1ZS.js";import{c as K,j as M}from"./index-B31vLELt.js";import{_ as O}from"./index-Btk0rgzN.js";import{g as P,s as S}from"./website-Bp9r7Mhf.js";const T={class:"website-filing"},z={class:"py-4 bg-fill-lighter"},H={class:"w-80"},J={class:"w-80"},Q=b({name:"webFilling"}),oe=b({...Q,setup(R){const n=G([{key:"",value:""}]),c=async()=>{const s=await P();s.length&&(n.value=s)},w=()=>{n.value.push({key:"",value:""})},h=s=>{if(n.value.length<=1)return M.msgError("至少保留一个");n.value.splice(s,1)},y=async()=>{await S({config:n.value}),c()};return c(),(s,o)=>{const _=$,d=L,k=O,V=K,u=j,C=U,E=q,D=F,B=x("perms");return i(),m("div",T,[e(E,{shadow:"never",class:"!border-none"},{default:t(()=>[o[2]||(o[2]=l("div",{class:"mb-5"},"站点底部版权备案信息设置",-1)),e(C,{ref:"form",class:"ls-form","label-width":"100px"},{default:t(()=>[(i(!0),m(N,null,I(f(n),(a,p)=>(i(),v(k,{class:"mb-4",key:p,"show-close":f(n).length>1,onClose:r=>h(p)},{default:t(()=>[l("div",z,[e(d,{label:"显示名称",prop:"icp_link"},{default:t(()=>[l("div",H,[l("div",null,[e(_,{modelValue:a.key,"onUpdate:modelValue":r=>a.key=r,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])])])]),_:2},1024),e(d,{label:"跳转链接",prop:"icp_link"},{default:t(()=>[l("div",J,[l("div",null,[e(_,{modelValue:a.value,"onUpdate:modelValue":r=>a.value=r,placeholder:"请输入链接,例如:http://www.beian.gov.cn"},null,8,["modelValue","onUpdate:modelValue"])]),o[0]||(o[0]=l("div",{class:"form-tips"},"跳转链接不设置,则不跳转",-1))])]),_:2},1024)])]),_:2},1032,["show-close","onClose"]))),128)),l("div",null,[e(u,{type:"primary",onClick:w},{default:t(()=>[e(V,{name:"el-icon-Plus"}),o[1]||(o[1]=g(" 添加 ",-1))]),_:1})])]),_:1},512)]),_:1}),A((i(),v(D,null,{default:t(()=>[e(u,{type:"primary",onClick:y},{default:t(()=>[...o[3]||(o[3]=[g("保存",-1)])]),_:1})]),_:1})),[[B,["setting.web.web_setting/setCopyright"]]])])}}});export{oe as default};
+import{_ as F}from"./index-DJsqtYWG.js";import{o as g,bn as x,q as i,r as m,v as e,D as t,s as l,b9 as U,F as N,G as I,u as f,O as v,b6 as L,b7 as $,K as j,L as b,bh as q,ac as A,M as G}from"./.pnpm-BuKxIMgQ.js";import{c as K,j as M}from"./index-BZAvl557.js";import{_ as O}from"./index-BYpT7Ezr.js";import{g as P,s as S}from"./website-BmJiI2zN.js";const T={class:"website-filing"},z={class:"py-4 bg-fill-lighter"},H={class:"w-80"},J={class:"w-80"},Q=g({name:"webFilling"}),oe=g({...Q,setup(R){const n=G([{key:"",value:""}]),c=async()=>{const s=await P();s.length&&(n.value=s)},h=()=>{n.value.push({key:"",value:""})},w=s=>{if(n.value.length<=1)return M.msgError("至少保留一个");n.value.splice(s,1)},y=async()=>{await S({config:n.value}),c()};return c(),(s,o)=>{const _=$,d=L,k=O,V=K,u=j,C=U,E=q,D=F,B=x("perms");return i(),m("div",T,[e(E,{shadow:"never",class:"!border-none"},{default:t(()=>[o[2]||(o[2]=l("div",{class:"mb-5"},"站点底部版权备案信息设置",-1)),e(C,{ref:"form",class:"ls-form","label-width":"100px"},{default:t(()=>[(i(!0),m(N,null,I(f(n),(a,p)=>(i(),v(k,{class:"mb-4",key:p,"show-close":f(n).length>1,onClose:r=>w(p)},{default:t(()=>[l("div",z,[e(d,{label:"显示名称",prop:"icp_link"},{default:t(()=>[l("div",H,[l("div",null,[e(_,{modelValue:a.key,"onUpdate:modelValue":r=>a.key=r,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])])])]),_:2},1024),e(d,{label:"跳转链接",prop:"icp_link"},{default:t(()=>[l("div",J,[l("div",null,[e(_,{modelValue:a.value,"onUpdate:modelValue":r=>a.value=r,placeholder:"请输入链接,例如:http://www.beian.gov.cn"},null,8,["modelValue","onUpdate:modelValue"])]),o[0]||(o[0]=l("div",{class:"form-tips"},"跳转链接不设置,则不跳转",-1))])]),_:2},1024)])]),_:2},1032,["show-close","onClose"]))),128)),l("div",null,[e(u,{type:"primary",onClick:h},{default:t(()=>[e(V,{name:"el-icon-Plus"}),o[1]||(o[1]=b(" 添加 ",-1))]),_:1})])]),_:1},512)]),_:1}),A((i(),v(D,null,{default:t(()=>[e(u,{type:"primary",onClick:y},{default:t(()=>[...o[3]||(o[3]=[b("保存",-1)])]),_:1})]),_:1})),[[B,["setting.web.web_setting/setCopyright"]]])])}}});export{oe as default};
diff --git a/server/public/admin/assets/finance-CcpAmLxc.js b/server/public/admin/assets/finance-Dz8cnGZe.js
similarity index 95%
rename from server/public/admin/assets/finance-CcpAmLxc.js
rename to server/public/admin/assets/finance-Dz8cnGZe.js
index 0be1ca021..fe19e820b 100644
--- a/server/public/admin/assets/finance-CcpAmLxc.js
+++ b/server/public/admin/assets/finance-Dz8cnGZe.js
@@ -1 +1 @@
-import{r as t}from"./index-B31vLELt.js";function r(n){return t.get({url:"/finance.account_log/lists",params:n})}function c(n){return t.get({url:"/recharge.recharge/lists",params:n},{ignoreCancelToken:!0})}function a(n){return t.get({url:"/finance.account_log/getUmChangeType",params:n})}function u(n){return t.post({url:"/recharge.recharge/refund",params:n})}function o(n){return t.post({url:"/recharge.recharge/refundAgain",params:n})}function s(n){return t.get({url:"/finance.refund/record",params:n})}function f(n){return t.get({url:"/finance.refund/log",params:n})}function i(n){return t.get({url:"/finance.refund/stat",params:n})}function g(n){return t.get({url:"/finance.account_cost/lists",params:n})}function l(n){return t.post({url:"/finance.account_cost/add",params:n})}function d(n){return t.post({url:"/finance.account_cost/edit",params:n})}function p(n){return t.get({url:"/finance.account_cost/detail",params:n})}function h(n){return t.post({url:"/finance.account_cost/delete",params:n})}function _(n){return t.get({url:"/finance.dept_performance_target/monthMatrix",params:n})}function m(n){return t.post({url:"/finance.dept_performance_target/batchSave",params:n})}export{d as a,l as b,p as c,_ as d,g as e,h as f,r as g,a as h,m as i,c as j,u as k,s as l,o as m,i as n,f as r};
+import{r as t}from"./index-BZAvl557.js";function r(n){return t.get({url:"/finance.account_log/lists",params:n})}function c(n){return t.get({url:"/recharge.recharge/lists",params:n},{ignoreCancelToken:!0})}function a(n){return t.get({url:"/finance.account_log/getUmChangeType",params:n})}function u(n){return t.post({url:"/recharge.recharge/refund",params:n})}function o(n){return t.post({url:"/recharge.recharge/refundAgain",params:n})}function s(n){return t.get({url:"/finance.refund/record",params:n})}function f(n){return t.get({url:"/finance.refund/log",params:n})}function i(n){return t.get({url:"/finance.refund/stat",params:n})}function g(n){return t.get({url:"/finance.account_cost/lists",params:n})}function l(n){return t.post({url:"/finance.account_cost/add",params:n})}function d(n){return t.post({url:"/finance.account_cost/edit",params:n})}function p(n){return t.get({url:"/finance.account_cost/detail",params:n})}function h(n){return t.post({url:"/finance.account_cost/delete",params:n})}function _(n){return t.get({url:"/finance.dept_performance_target/monthMatrix",params:n})}function m(n){return t.post({url:"/finance.dept_performance_target/batchSave",params:n})}export{d as a,l as b,p as c,_ as d,g as e,h as f,r as g,a as h,m as i,c as j,u as k,s as l,o as m,i as n,f as r};
diff --git a/server/public/admin/assets/first_visit-ClR5pGNH.js b/server/public/admin/assets/first_visit-Ciw6inl9.js
similarity index 98%
rename from server/public/admin/assets/first_visit-ClR5pGNH.js
rename to server/public/admin/assets/first_visit-Ciw6inl9.js
index c61b793df..ffe49cb27 100644
--- a/server/public/admin/assets/first_visit-ClR5pGNH.js
+++ b/server/public/admin/assets/first_visit-Ciw6inl9.js
@@ -1 +1 @@
-import{r as e}from"./index-B31vLELt.js";function n(t){return e.get({url:"/firstvisit.myPatient/lists",params:t})}function s(t){return e.get({url:"/firstvisit.myPatient/orders",params:t})}function a(t){return e.get({url:"/firstvisit.myPatient/orderDetail",params:t})}function u(t){return e.post({url:"/firstvisit.myPatient/orderEdit",params:t})}function m(t){return e.post({url:"/firstvisit.myPatient/orderAuditPrescription",params:t})}function c(t){return e.post({url:"/firstvisit.myPatient/orderRevokeRxAudit",params:t})}function f(t){return e.post({url:"/firstvisit.myPatient/orderAuditPayment",params:t})}function P(t){return e.post({url:"/firstvisit.myPatient/orderRevokePayAudit",params:t})}function l(t){return e.post({url:"/firstvisit.myPatient/orderDdcode",params:t})}function d(t){return e.post({url:"/firstvisit.myPatient/orderShip",params:t})}function v(t){return e.post({url:"/firstvisit.myPatient/orderAddPayOrder",params:t})}function p(t){return e.post({url:"/firstvisit.myPatient/orderComplete",params:t})}function y(t){return e.post({url:"/firstvisit.myPatient/orderRefund",params:t})}function w(t){return e.post({url:"/firstvisit.myPatient/orderWithdraw",params:t})}function g(t){return e.post({url:"/firstvisit.myPatient/orderUploadToPharmacy",params:t})}function O(t){return e.get({url:"/firstvisit.myPatient/progress",params:t})}function C(t){return e.post({url:"/firstvisit.myPatient/createAppointment",params:t})}function A(t){return e.post({url:"/firstvisit.myPatient/cancelAppointment",params:t})}function h(){return e.get({url:"/firstvisit.myPatient/assistants"})}function k(t){return e.post({url:"/firstvisit.myPatient/assign",params:t})}function T(t){return e.post({url:"/firstvisit.myPatient/fillIdCard",params:t})}function S(t){return e.get({url:"/firstvisit.conversion/overview",params:t,timeout:12e4},{ignoreCancelToken:!0})}function D(t){return e.get({url:"/firstvisit.conversion/fansDetail",params:t,timeout:12e4},{ignoreCancelToken:!0})}function R(t){return e.get({url:"/firstvisit.registrationStats/overview",params:t,timeout:12e4},{ignoreCancelToken:!0})}function b(t){return e.get({url:"/firstvisit.doctorDashboard/overview",params:t,timeout:12e4},{ignoreCancelToken:!0})}function M(){return e.get({url:"/firstvisit.wecomPromotion/overview"})}function W(t){return e.post({url:"/firstvisit.wecomPromotion/savePool",params:t,timeout:12e4})}function U(){return e.get({url:"/firstvisit.wecomPromotion/tagOptions"})}function x(t){return e.post({url:"/firstvisit.wecomPromotion/createTag",params:t,timeout:3e4},{ignoreCancelToken:!0})}function F(t,r){const i=new FormData;return i.append("file",t),i.append("type",r),e.post({url:"/firstvisit.wecomPromotion/uploadWelcomeMedia",data:i,headers:{"Content-Type":"multipart/form-data"},timeout:12e4},{ignoreCancelToken:!0})}function L(t){return e.post({url:"/firstvisit.wecomPromotion/saveWidget",params:t})}function V(t){return e.post({url:"/firstvisit.wecomPromotion/batchSetOperators",params:t})}function B(t){return e.post({url:"/firstvisit.wecomPromotion/batchUpdatePools",params:t,timeout:12e4},{ignoreCancelToken:!0})}function E(t){return e.post({url:"/firstvisit.wecomPromotion/deletePool",params:t,timeout:12e4})}function I(t){return e.post({url:"/firstvisit.wecomPromotion/saveMember",params:t,timeout:12e4})}function q(t){return e.post({url:"/firstvisit.wecomPromotion/toggleMember",params:t,timeout:12e4})}function j(){return e.post({url:"/firstvisit.wecomPromotion/checkApiPermission"})}function z(t){return e.post({url:"/firstvisit.wecomPromotion/syncMemberRange",params:t,timeout:12e4},{ignoreCancelToken:!0,isOpenRetry:!1})}function G(t){return e.get({url:"/firstvisit.wecomPromotion/customerStatistics",params:t,timeout:12e4},{ignoreCancelToken:!0})}function H(t={}){return e.post({url:"/firstvisit.wecomPromotion/syncCustomers",params:t,timeout:12e4})}export{F as A,L as B,G as C,M as D,B as E,V as F,W as G,E as H,I,q as J,j as K,H as L,z as M,C as N,D as a,b,m as c,f as d,c as e,S as f,P as g,l as h,d as i,u as j,v as k,p as l,a as m,y as n,w as o,g as p,s as q,O as r,n as s,k as t,T as u,A as v,h as w,R as x,U as y,x as z};
+import{r as e}from"./index-BZAvl557.js";function n(t){return e.get({url:"/firstvisit.myPatient/lists",params:t})}function s(t){return e.get({url:"/firstvisit.myPatient/orders",params:t})}function a(t){return e.get({url:"/firstvisit.myPatient/orderDetail",params:t})}function u(t){return e.post({url:"/firstvisit.myPatient/orderEdit",params:t})}function m(t){return e.post({url:"/firstvisit.myPatient/orderAuditPrescription",params:t})}function c(t){return e.post({url:"/firstvisit.myPatient/orderRevokeRxAudit",params:t})}function f(t){return e.post({url:"/firstvisit.myPatient/orderAuditPayment",params:t})}function P(t){return e.post({url:"/firstvisit.myPatient/orderRevokePayAudit",params:t})}function l(t){return e.post({url:"/firstvisit.myPatient/orderDdcode",params:t})}function d(t){return e.post({url:"/firstvisit.myPatient/orderShip",params:t})}function v(t){return e.post({url:"/firstvisit.myPatient/orderAddPayOrder",params:t})}function p(t){return e.post({url:"/firstvisit.myPatient/orderComplete",params:t})}function y(t){return e.post({url:"/firstvisit.myPatient/orderRefund",params:t})}function w(t){return e.post({url:"/firstvisit.myPatient/orderWithdraw",params:t})}function g(t){return e.post({url:"/firstvisit.myPatient/orderUploadToPharmacy",params:t})}function O(t){return e.get({url:"/firstvisit.myPatient/progress",params:t})}function C(t){return e.post({url:"/firstvisit.myPatient/createAppointment",params:t})}function A(t){return e.post({url:"/firstvisit.myPatient/cancelAppointment",params:t})}function h(){return e.get({url:"/firstvisit.myPatient/assistants"})}function k(t){return e.post({url:"/firstvisit.myPatient/assign",params:t})}function T(t){return e.post({url:"/firstvisit.myPatient/fillIdCard",params:t})}function S(t){return e.get({url:"/firstvisit.conversion/overview",params:t,timeout:12e4},{ignoreCancelToken:!0})}function D(t){return e.get({url:"/firstvisit.conversion/fansDetail",params:t,timeout:12e4},{ignoreCancelToken:!0})}function R(t){return e.get({url:"/firstvisit.registrationStats/overview",params:t,timeout:12e4},{ignoreCancelToken:!0})}function b(t){return e.get({url:"/firstvisit.doctorDashboard/overview",params:t,timeout:12e4},{ignoreCancelToken:!0})}function M(){return e.get({url:"/firstvisit.wecomPromotion/overview"})}function W(t){return e.post({url:"/firstvisit.wecomPromotion/savePool",params:t,timeout:12e4})}function U(){return e.get({url:"/firstvisit.wecomPromotion/tagOptions"})}function x(t){return e.post({url:"/firstvisit.wecomPromotion/createTag",params:t,timeout:3e4},{ignoreCancelToken:!0})}function F(t,r){const i=new FormData;return i.append("file",t),i.append("type",r),e.post({url:"/firstvisit.wecomPromotion/uploadWelcomeMedia",data:i,headers:{"Content-Type":"multipart/form-data"},timeout:12e4},{ignoreCancelToken:!0})}function L(t){return e.post({url:"/firstvisit.wecomPromotion/saveWidget",params:t})}function V(t){return e.post({url:"/firstvisit.wecomPromotion/batchSetOperators",params:t})}function B(t){return e.post({url:"/firstvisit.wecomPromotion/batchUpdatePools",params:t,timeout:12e4},{ignoreCancelToken:!0})}function E(t){return e.post({url:"/firstvisit.wecomPromotion/deletePool",params:t,timeout:12e4})}function I(t){return e.post({url:"/firstvisit.wecomPromotion/saveMember",params:t,timeout:12e4})}function q(t){return e.post({url:"/firstvisit.wecomPromotion/toggleMember",params:t,timeout:12e4})}function j(){return e.post({url:"/firstvisit.wecomPromotion/checkApiPermission"})}function z(t){return e.post({url:"/firstvisit.wecomPromotion/syncMemberRange",params:t,timeout:12e4},{ignoreCancelToken:!0,isOpenRetry:!1})}function G(t){return e.get({url:"/firstvisit.wecomPromotion/customerStatistics",params:t,timeout:12e4},{ignoreCancelToken:!0})}function H(t={}){return e.post({url:"/firstvisit.wecomPromotion/syncCustomers",params:t,timeout:12e4})}export{F as A,L as B,G as C,M as D,B as E,V as F,W as G,E as H,I,q as J,j as K,H as L,z as M,C as N,D as a,b,m as c,f as d,c as e,S as f,P as g,l as h,d as i,u as j,v as k,p as l,a as m,y as n,w as o,g as p,s as q,O as r,n as s,k as t,T as u,A as v,h as w,R as x,U as y,x as z};
diff --git a/server/public/admin/assets/follow_reply-0OfHhept.js b/server/public/admin/assets/follow_reply-kJkFG-2o.js
similarity index 70%
rename from server/public/admin/assets/follow_reply-0OfHhept.js
rename to server/public/admin/assets/follow_reply-kJkFG-2o.js
index f37e3e288..fc2d932bd 100644
--- a/server/public/admin/assets/follow_reply-0OfHhept.js
+++ b/server/public/admin/assets/follow_reply-kJkFG-2o.js
@@ -1 +1 @@
-import{o as S,q as f,r as T,v as t,D as l,bh as B,bg as L,s as g,K as N,L as p,ac as j,O as y,bj as O,u as o,bk as P,T as U,I as A,bi as q,C as z,P as F,a8 as I,M as K,p as M,n as b}from"./.pnpm-BHOjf1ZS.js";import{_ as G}from"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import{c as H,j as J}from"./index-B31vLELt.js";import{d as Q,o as W,e as X}from"./wx_oa-DnRFEP08.js";import{u as Y}from"./usePaging-oaNM6A9T.js";import{_ as Z}from"./edit.vue_vue_type_script_setup_true_lang-DDcLJMtO.js";import"./index-Dt_C33Jx.js";const ee={class:"flex justify-end mt-4"},de=S({__name:"follow_reply",setup(te){const d=I(),c=K(!1),w=M(()=>n=>{switch(n){case 1:return"文本"}}),{pager:r,getLists:s}=Y({fetchFun:Q,params:{reply_type:1}}),h=async()=>{var n;c.value=!0,await b(),(n=d.value)==null||n.open("add",1)},C=async n=>{var e,u;c.value=!0,await b(),(e=d.value)==null||e.open("edit",1),(u=d.value)==null||u.getDetail(n)},k=async n=>{await J.confirm("确定要删除?"),await W({id:n}),s()},V=async n=>{try{await X({id:n}),s()}catch{s()}};return s(),(n,e)=>{const u=B,v=L,E=H,_=N,i=P,$=A,x=O,R=G,D=q;return f(),T("div",null,[t(v,{class:"!border-none",shadow:"never"},{default:l(()=>[t(u,{type:"warning",title:"温馨提示:1.粉丝关注公众号时,会自动发送启用的关注回复;2.同时只能启用一个关注回复。",closable:!1,"show-icon":""})]),_:1}),t(v,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[g("div",null,[t(_,{class:"mb-4",type:"primary",onClick:e[0]||(e[0]=a=>h())},{icon:l(()=>[t(E,{name:"el-icon-Plus"})]),default:l(()=>[e[3]||(e[3]=p(" 新增 ",-1))]),_:1})]),j((f(),y(x,{size:"large",data:o(r).lists},{default:l(()=>[t(i,{label:"规则名称",prop:"name","min-width":"120"}),t(i,{label:"回复类型","min-width":"120"},{default:l(({row:a})=>[p(U(o(w)(a.content_type)),1)]),_:1}),t(i,{label:"回复内容",prop:"content","min-width":"120"}),t(i,{label:"状态","min-width":"120"},{default:l(({row:a})=>[t($,{modelValue:a.status,"onUpdate:modelValue":m=>a.status=m,"active-value":1,"inactive-value":0,onChange:m=>V(a.id)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),t(i,{label:"排序",prop:"sort","min-width":"120"}),t(i,{label:"操作",width:"120",fixed:"right"},{default:l(({row:a})=>[t(_,{type:"primary",link:"",onClick:m=>C(a)},{default:l(()=>[...e[4]||(e[4]=[p(" 编辑 ",-1)])]),_:1},8,["onClick"]),t(_,{type:"danger",link:"",onClick:m=>k(a.id)},{default:l(()=>[...e[5]||(e[5]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[D,o(r).loading]]),g("div",ee,[t(R,{modelValue:o(r),"onUpdate:modelValue":e[1]||(e[1]=a=>z(r)?r.value=a:null),onChange:o(s)},null,8,["modelValue","onChange"])])]),_:1}),o(c)?(f(),y(Z,{key:0,ref_key:"editRef",ref:d,onSuccess:o(s),onClose:e[2]||(e[2]=a=>c.value=!1)},null,8,["onSuccess"])):F("",!0)])}}});export{de as default};
+import{o as S,q as f,r as T,v as t,D as l,bm as B,bh as L,s as y,K as N,L as p,ac as j,O as g,bi as O,u as o,bj as P,T as U,I as A,bl as q,C as z,P as F,a8 as I,M as K,p as M,n as b}from"./.pnpm-BuKxIMgQ.js";import{_ as G}from"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import{c as H,j as J}from"./index-BZAvl557.js";import{d as Q,o as W,e as X}from"./wx_oa-CPg89SqX.js";import{u as Y}from"./usePaging-DNtxCypz.js";import{_ as Z}from"./edit.vue_vue_type_script_setup_true_lang-LiIBGI8Q.js";import"./index-BARAiw4K.js";const ee={class:"flex justify-end mt-4"},de=S({__name:"follow_reply",setup(te){const d=I(),c=K(!1),w=M(()=>n=>{switch(n){case 1:return"文本"}}),{pager:r,getLists:s}=Y({fetchFun:Q,params:{reply_type:1}}),h=async()=>{var n;c.value=!0,await b(),(n=d.value)==null||n.open("add",1)},C=async n=>{var e,u;c.value=!0,await b(),(e=d.value)==null||e.open("edit",1),(u=d.value)==null||u.getDetail(n)},k=async n=>{await J.confirm("确定要删除?"),await W({id:n}),s()},V=async n=>{try{await X({id:n}),s()}catch{s()}};return s(),(n,e)=>{const u=B,v=L,E=H,_=N,i=P,$=A,x=O,R=G,D=q;return f(),T("div",null,[t(v,{class:"!border-none",shadow:"never"},{default:l(()=>[t(u,{type:"warning",title:"温馨提示:1.粉丝关注公众号时,会自动发送启用的关注回复;2.同时只能启用一个关注回复。",closable:!1,"show-icon":""})]),_:1}),t(v,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[y("div",null,[t(_,{class:"mb-4",type:"primary",onClick:e[0]||(e[0]=a=>h())},{icon:l(()=>[t(E,{name:"el-icon-Plus"})]),default:l(()=>[e[3]||(e[3]=p(" 新增 ",-1))]),_:1})]),j((f(),g(x,{size:"large",data:o(r).lists},{default:l(()=>[t(i,{label:"规则名称",prop:"name","min-width":"120"}),t(i,{label:"回复类型","min-width":"120"},{default:l(({row:a})=>[p(U(o(w)(a.content_type)),1)]),_:1}),t(i,{label:"回复内容",prop:"content","min-width":"120"}),t(i,{label:"状态","min-width":"120"},{default:l(({row:a})=>[t($,{modelValue:a.status,"onUpdate:modelValue":m=>a.status=m,"active-value":1,"inactive-value":0,onChange:m=>V(a.id)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),t(i,{label:"排序",prop:"sort","min-width":"120"}),t(i,{label:"操作",width:"120",fixed:"right"},{default:l(({row:a})=>[t(_,{type:"primary",link:"",onClick:m=>C(a)},{default:l(()=>[...e[4]||(e[4]=[p(" 编辑 ",-1)])]),_:1},8,["onClick"]),t(_,{type:"danger",link:"",onClick:m=>k(a.id)},{default:l(()=>[...e[5]||(e[5]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[D,o(r).loading]]),y("div",ee,[t(R,{modelValue:o(r),"onUpdate:modelValue":e[1]||(e[1]=a=>z(r)?r.value=a:null),onChange:o(s)},null,8,["modelValue","onChange"])])]),_:1}),o(c)?(f(),g(Z,{key:0,ref_key:"editRef",ref:d,onSuccess:o(s),onClose:e[2]||(e[2]=a=>c.value=!1)},null,8,["onSuccess"])):F("",!0)])}}});export{de as default};
diff --git a/server/public/admin/assets/footer.vue_vue_type_script_setup_true_lang-lrEHiy-h.js b/server/public/admin/assets/footer.vue_vue_type_script_setup_true_lang-CNbytEjb.js
similarity index 63%
rename from server/public/admin/assets/footer.vue_vue_type_script_setup_true_lang-lrEHiy-h.js
rename to server/public/admin/assets/footer.vue_vue_type_script_setup_true_lang-CNbytEjb.js
index 046bfab5a..81ae66e7f 100644
--- a/server/public/admin/assets/footer.vue_vue_type_script_setup_true_lang-lrEHiy-h.js
+++ b/server/public/admin/assets/footer.vue_vue_type_script_setup_true_lang-CNbytEjb.js
@@ -1 +1 @@
-import{e as a}from"./index-B31vLELt.js";import{o as n,q as t,r as o,s as c,F as p,G as _,u as i,p as u,T as l}from"./.pnpm-BHOjf1ZS.js";const f={class:"layout-footer"},m={class:"text-center p-2 text-xs text-tx-secondary max-w-[900px] mx-auto"},x=["href"],v=n({__name:"footer",setup(d){const s=a(),r=u(()=>s.config.copyright_config||[]);return(h,y)=>(t(),o("footer",f,[c("div",m,[(t(!0),o(p,null,_(i(r),e=>(t(),o("a",{class:"mx-1 hover:underline",href:e.value,target:"_blank",key:e.key},l(e.key),9,x))),128))])]))}});export{v as _};
+import{e as a}from"./index-BZAvl557.js";import{o as n,q as t,r as o,s as c,F as p,G as _,u as i,p as u,T as l}from"./.pnpm-BuKxIMgQ.js";const f={class:"layout-footer"},m={class:"text-center p-2 text-xs text-tx-secondary max-w-[900px] mx-auto"},x=["href"],v=n({__name:"footer",setup(d){const s=a(),r=u(()=>s.config.copyright_config||[]);return(h,y)=>(t(),o("footer",f,[c("div",m,[(t(!0),o(p,null,_(i(r),e=>(t(),o("a",{class:"mx-1 hover:underline",href:e.value,target:"_blank",key:e.key},l(e.key),9,x))),128))])]))}});export{v as _};
diff --git a/server/public/admin/assets/getExposeType-BNcoHnAy.js b/server/public/admin/assets/getExposeType-BNcoHnAy.js
new file mode 100644
index 000000000..d5afa52f7
--- /dev/null
+++ b/server/public/admin/assets/getExposeType-BNcoHnAy.js
@@ -0,0 +1 @@
+import{M as o}from"./.pnpm-BuKxIMgQ.js";const r=e=>o();export{r as u};
diff --git a/server/public/admin/assets/getExposeType-BhVtb25-.js b/server/public/admin/assets/getExposeType-BhVtb25-.js
deleted file mode 100644
index 40551cdf1..000000000
--- a/server/public/admin/assets/getExposeType-BhVtb25-.js
+++ /dev/null
@@ -1 +0,0 @@
-import{M as o}from"./.pnpm-BHOjf1ZS.js";const r=e=>o();export{r as u};
diff --git a/server/public/admin/assets/guahao-Bdw3mz70.js b/server/public/admin/assets/guahao-Cq8LEWDe.js
similarity index 90%
rename from server/public/admin/assets/guahao-Bdw3mz70.js
rename to server/public/admin/assets/guahao-Cq8LEWDe.js
index 70280909a..c71452ca0 100644
--- a/server/public/admin/assets/guahao-Bdw3mz70.js
+++ b/server/public/admin/assets/guahao-Cq8LEWDe.js
@@ -1 +1 @@
-import{o as J,ap as Se,bo as ke,be as Ce,q as m,r as S,v as l,D as n,b9 as xe,aw as Ee,u as a,b6 as Ue,b7 as De,b8 as W,bm as Ne,F as D,G as N,O as b,bn as Te,K as qe,L as _,bg as Be,s as v,ac as L,T as c,P as F,bj as Fe,bk as Pe,br as Re,bi as Ae,C as M,bp as He,c5 as Ie,bc as Le,bb as Me,bt as $e,ba as $,M as k,p as P}from"./.pnpm-BHOjf1ZS.js";import{_ as Ke}from"./index.vue_vue_type_script_setup_true_lang-CDLrQsa9.js";import{_ as Oe}from"./index.vue_vue_type_script_setup_true_lang-Cmgm_Z5P.js";import{j as g,n as je}from"./index-B31vLELt.js";import{a as Ge,b as Ye,c as Qe}from"./doctor-CI72mqZm.js";import{a as ze}from"./appointment-type-DJT6wPaT.js";import{o as We}from"./tcm-BkYsBTA3.js";import{u as Je}from"./usePaging-oaNM6A9T.js";const Xe={class:"guahao-list"},Ze={class:"flex flex-wrap items-center gap-3 mb-4"},et={key:0,class:"text-sm text-gray-500"},tt={class:"text-sm"},lt={class:"font-medium"},at={class:"text-gray-500"},nt={class:"text-xs text-gray-400"},ot={class:"text-gray-500"},st={class:"text-sm"},it={key:0,class:"text-xs text-gray-400 truncate"},rt={class:"flex justify-end mt-4"},ut={class:"text-sm text-gray-600 mb-4"},dt=J({name:"consumerPrescriptionGuahao"}),Vt=J({...dt,setup(mt){const u=$({start_date:"",end_date:"",patient_name:"",doctor_name:"",assistant_id:void 0,appointment_type:"",status:"",channel_source:""}),X={start_date:"",end_date:"",patient_name:"",doctor_name:"",assistant_id:void 0,appointment_type:"",status:"",channel_source:""},{pager:E,getLists:U,resetPage:T}=Je({fetchFun:Ge,params:u}),q=k([]),K=k(null),h=k([]);function Z(s){h.value=s}const ee=new Set(["自媒体3Q","自媒体3H","自媒体2H","自媒体2Q"]);function B(s){return ee.has(String(s??"").trim())}const y=k([]),te=P(()=>{const s=o.channel_source;if(s===""||s==null)return"";const e=y.value.find(i=>String(i.value)===String(s));return e?String(e.name??"").trim():""}),O=P(()=>B(te.value)),le=P(()=>{const s=p.channel_source;if(s===""||s==null)return"";const e=y.value.find(i=>String(i.value)===String(s));return e?String(e.name??"").trim():""}),j=P(()=>B(le.value));function ae(s){const e=y.value.find(d=>String(d.value)===String(s)),i=e?String(e.name??"").trim():"";B(i)||(p.channel_source_detail="")}const C=k(!1),R=k(!1),p=$({channel_source:"",channel_source_detail:""});function ne(){if(h.value.length===0){g.msgWarning("请先勾选挂号记录");return}p.channel_source="",p.channel_source_detail="",C.value=!0}function oe(){p.channel_source="",p.channel_source_detail=""}async function se(){var s,e;if(h.value.length===0){g.msgWarning("请先勾选挂号记录");return}if(!p.channel_source){g.msgError("请选择渠道来源");return}if(j.value&&!p.channel_source_detail.trim()){g.msgError("请填写自媒体补充说明");return}R.value=!0;try{const i=h.value.map(d=>Number(d.id));await Ye({ids:i,channel_source:p.channel_source,channel_source_detail:p.channel_source_detail.trim()}),g.msgSuccess("批量修改成功"),C.value=!1,(e=(s=K.value)==null?void 0:s.clearSelection)==null||e.call(s),h.value=[],U()}finally{R.value=!1}}function ie(s){const e=y.value.find(d=>String(d.value)===String(s)),i=e?String(e.name??"").trim():"";B(i)||(o.channel_source_detail="")}const x=k(!1),A=k(!1),o=$({id:0,appointment_date:"",appointment_time:"",period:"morning",appointment_type:"video",status:1,remark:"",assistant_id:void 0,channel_source:"",channel_source_detail:""});function re(s){const e=String(s||"");return e.length>=11?e.slice(0,3)+"****"+e.slice(-4):e||"—"}function G(s){const e=String(s||"");return e.length>=5?e.slice(0,5):e||"—"}function ue(){Object.assign(u,X),T()}function de(s){const e=String(s.period??s.type??"morning");return e==="afternoon"||e==="all"?e:"morning"}async function me(){try{const s=await We();q.value=(s==null?void 0:s.lists)??s??[]}catch{q.value=[]}}async function pe(){try{const s=await je({type:"channels"}),e=((s==null?void 0:s.channels)||[]).filter(i=>i.status!==0);e.sort((i,d)=>{const r=Number((d==null?void 0:d.sort)??0)-Number((i==null?void 0:i.sort)??0);return r!==0?r:Number((d==null?void 0:d.id)??0)-Number((i==null?void 0:i.id)??0)}),y.value=e}catch{y.value=[]}}function _e(s){o.id=Number(s.id),o.appointment_date=String(s.appointment_date||""),o.appointment_time=G(String(s.appointment_time||"")),o.period=de(s),o.appointment_type=String(s.appointment_type||"video"),o.status=Number(s.status),o.remark=String(s.remark||"");const e=s.appointment_assistant_id;o.assistant_id=e!=null&&e!==""?Number(e):void 0,o.channel_source=String(s.channel_source??s.channels??""),o.channel_source_detail=String(s.channel_source_detail??""),x.value=!0}function ce(){o.id=0,o.appointment_date="",o.appointment_time="",o.period="morning",o.appointment_type="video",o.status=1,o.remark="",o.assistant_id=void 0,o.channel_source="",o.channel_source_detail=""}async function fe(){if(!o.appointment_date){g.msgError("请选择预约日期");return}if(!o.appointment_time){g.msgError("请选择预约时间");return}if(!o.channel_source){g.msgError("请选择渠道来源");return}if(O.value&&!o.channel_source_detail.trim()){g.msgError("请填写自媒体补充说明");return}A.value=!0;try{const s={id:o.id,appointment_date:o.appointment_date,appointment_time:o.appointment_time,period:o.period,appointment_type:o.appointment_type,status:o.status,remark:o.remark,assistant_id:o.assistant_id??"",channel_source:o.channel_source,channel_source_detail:o.channel_source_detail.trim()};await Qe(s),g.msgSuccess("保存成功"),x.value=!1,U()}finally{A.value=!1}}return Se(()=>{me(),pe()}),ke(()=>{U()}),U(),(s,e)=>{const i=Ue,d=De,r=Te,V=Ne,w=qe,H=xe,Y=Be,f=Pe,be=Re,ve=Fe,ge=Ke,he=He,ye=Ie,I=Me,Ve=Le,Q=$e,z=Ce("perms"),we=Ae;return m(),S("div",Xe,[l(Y,{class:"!border-none",shadow:"never"},{default:n(()=>[l(H,{class:"mb-[-16px]",model:a(u),inline:!0,onSubmit:e[8]||(e[8]=Ee(()=>{},["prevent"]))},{default:n(()=>[l(i,{label:"预约日期"},{default:n(()=>[l(Oe,{startTime:a(u).start_date,"onUpdate:startTime":e[0]||(e[0]=t=>a(u).start_date=t),endTime:a(u).end_date,"onUpdate:endTime":e[1]||(e[1]=t=>a(u).end_date=t)},null,8,["startTime","endTime"])]),_:1}),l(i,{label:"患者姓名"},{default:n(()=>[l(d,{modelValue:a(u).patient_name,"onUpdate:modelValue":e[2]||(e[2]=t=>a(u).patient_name=t),placeholder:"模糊搜索",clearable:"",class:"!w-[160px]",onKeyup:W(a(T),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(i,{label:"医生"},{default:n(()=>[l(d,{modelValue:a(u).doctor_name,"onUpdate:modelValue":e[3]||(e[3]=t=>a(u).doctor_name=t),placeholder:"模糊搜索",clearable:"",class:"!w-[140px]",onKeyup:W(a(T),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(i,{label:"医助"},{default:n(()=>[l(V,{modelValue:a(u).assistant_id,"onUpdate:modelValue":e[4]||(e[4]=t=>a(u).assistant_id=t),placeholder:"全部",clearable:"",filterable:"",class:"!w-[180px]"},{default:n(()=>[(m(!0),S(D,null,N(a(q),t=>(m(),b(r,{key:t.id,label:t.name+(t.account?` (${t.account})`:""),value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"挂号类型"},{default:n(()=>[l(V,{modelValue:a(u).appointment_type,"onUpdate:modelValue":e[5]||(e[5]=t=>a(u).appointment_type=t),placeholder:"全部",clearable:"",class:"!w-[140px]"},{default:n(()=>[l(r,{label:"全部",value:""}),l(r,{label:"视频问诊",value:"video"}),l(r,{label:"图文问诊",value:"text"})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"状态"},{default:n(()=>[l(V,{modelValue:a(u).status,"onUpdate:modelValue":e[6]||(e[6]=t=>a(u).status=t),placeholder:"全部",clearable:"",class:"!w-[130px]"},{default:n(()=>[l(r,{label:"已预约",value:1}),l(r,{label:"已取消",value:2}),l(r,{label:"已完成",value:3}),l(r,{label:"已过号",value:4})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"渠道"},{default:n(()=>[l(V,{modelValue:a(u).channel_source,"onUpdate:modelValue":e[7]||(e[7]=t=>a(u).channel_source=t),placeholder:"全部",clearable:"",filterable:"",class:"!w-[200px]"},{default:n(()=>[(m(!0),S(D,null,N(a(y),t=>(m(),b(r,{key:String(t.value),label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(i,null,{default:n(()=>[l(w,{type:"primary",onClick:a(T)},{default:n(()=>[...e[25]||(e[25]=[_("查询",-1)])]),_:1},8,["onClick"]),l(w,{onClick:ue},{default:n(()=>[...e[26]||(e[26]=[_("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),l(Y,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[v("div",Ze,[L((m(),b(w,{type:"primary",disabled:a(h).length===0,onClick:ne},{default:n(()=>[...e[27]||(e[27]=[_(" 批量修改渠道 ",-1)])]),_:1},8,["disabled"])),[[z,["doctor.appointment/edit"]]]),a(h).length>0?(m(),S("span",et," 已选 "+c(a(h).length)+" 条 ",1)):F("",!0)]),L((m(),b(ve,{ref_key:"tableRef",ref:K,"row-key":"id",data:a(E).lists,size:"large",stripe:"",onSelectionChange:Z},{default:n(()=>[l(f,{type:"selection",width:"48",align:"center","reserve-selection":""}),l(f,{label:"ID",prop:"id",width:"72",align:"center"}),l(f,{label:"诊单/患者","min-width":"140"},{default:n(({row:t})=>[v("div",tt,[v("div",lt,c(t.patient_name||"—"),1),v("div",at,c(re(t.patient_phone)),1),v("div",nt,"诊单 #"+c(t.diagnosis_id??t.patient_id),1)])]),_:1}),l(f,{label:"医生",prop:"doctor_name",width:"100","show-overflow-tooltip":""}),l(f,{label:"医助",prop:"assistant_name",width:"100","show-overflow-tooltip":""}),l(f,{label:"预约时间","min-width":"128"},{default:n(({row:t})=>[v("div",null,c(t.appointment_date),1),v("div",ot,c(G(t.appointment_time))+" · "+c(t.period_desc),1)]),_:1}),l(f,{label:"挂号类型",width:"110"},{default:n(({row:t})=>[_(c(a(ze)(t.appointment_type)),1)]),_:1}),l(f,{label:"渠道","min-width":"130","show-overflow-tooltip":""},{default:n(({row:t})=>[v("div",st,c(t.channel_source_desc||"—"),1),t.channel_source_detail?(m(),S("div",it,c(t.channel_source_detail),1)):F("",!0)]),_:1}),l(f,{label:"状态",width:"96",align:"center"},{default:n(({row:t})=>[l(be,{type:t.status===1?"success":t.status===2?"info":t.status===3?"primary":"danger",size:"small",effect:"light"},{default:n(()=>[_(c(t.status_desc),1)]),_:2},1032,["type"])]),_:1}),l(f,{label:"备注",prop:"remark","min-width":"120","show-overflow-tooltip":""}),l(f,{label:"操作",width:"100",fixed:"right",align:"center"},{default:n(({row:t})=>[L((m(),b(w,{type:"primary",link:"",onClick:pt=>_e(t)},{default:n(()=>[...e[28]||(e[28]=[_(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[z,["doctor.appointment/edit"]]])]),_:1})]),_:1},8,["data"])),[[we,a(E).loading]]),v("div",rt,[l(ge,{modelValue:a(E),"onUpdate:modelValue":e[9]||(e[9]=t=>M(E)?E.value=t:null),onChange:a(U)},null,8,["modelValue","onChange"])])]),_:1}),l(Q,{modelValue:a(x),"onUpdate:modelValue":e[20]||(e[20]=t=>M(x)?x.value=t:null),title:"编辑挂号",width:"560px","destroy-on-close":"",onClosed:ce},{footer:n(()=>[l(w,{onClick:e[19]||(e[19]=t=>x.value=!1)},{default:n(()=>[...e[32]||(e[32]=[_("取消",-1)])]),_:1}),l(w,{type:"primary",loading:a(A),onClick:fe},{default:n(()=>[...e[33]||(e[33]=[_("保存",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(H,{model:a(o),"label-width":"96px"},{default:n(()=>[l(i,{label:"预约日期",required:""},{default:n(()=>[l(he,{modelValue:a(o).appointment_date,"onUpdate:modelValue":e[10]||(e[10]=t=>a(o).appointment_date=t),type:"date","value-format":"YYYY-MM-DD",placeholder:"选择日期",class:"!w-full"},null,8,["modelValue"])]),_:1}),l(i,{label:"预约时间",required:""},{default:n(()=>[l(ye,{modelValue:a(o).appointment_time,"onUpdate:modelValue":e[11]||(e[11]=t=>a(o).appointment_time=t),format:"HH:mm","value-format":"HH:mm",placeholder:"时间",class:"!w-full"},null,8,["modelValue"])]),_:1}),l(i,{label:"时段",required:""},{default:n(()=>[l(Ve,{modelValue:a(o).period,"onUpdate:modelValue":e[12]||(e[12]=t=>a(o).period=t)},{default:n(()=>[l(I,{label:"morning"},{default:n(()=>[...e[29]||(e[29]=[_("上午",-1)])]),_:1}),l(I,{label:"afternoon"},{default:n(()=>[...e[30]||(e[30]=[_("下午",-1)])]),_:1}),l(I,{label:"all"},{default:n(()=>[...e[31]||(e[31]=[_("全天",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"挂号类型",required:""},{default:n(()=>[l(V,{modelValue:a(o).appointment_type,"onUpdate:modelValue":e[13]||(e[13]=t=>a(o).appointment_type=t),class:"!w-full"},{default:n(()=>[l(r,{label:"视频问诊",value:"video"}),l(r,{label:"图文问诊",value:"text"})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"渠道来源",required:""},{default:n(()=>[l(V,{modelValue:a(o).channel_source,"onUpdate:modelValue":e[14]||(e[14]=t=>a(o).channel_source=t),placeholder:"请选择渠道来源",filterable:"",class:"!w-full",onChange:ie},{default:n(()=>[(m(!0),S(D,null,N(a(y),t=>(m(),b(r,{key:String(t.value),label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(O)?(m(),b(i,{key:0,label:"自媒体补充",required:""},{default:n(()=>[l(d,{modelValue:a(o).channel_source_detail,"onUpdate:modelValue":e[15]||(e[15]=t=>a(o).channel_source_detail=t),maxlength:"128","show-word-limit":"",placeholder:"请输入自媒体相关补充内容",clearable:"",class:"!w-full"},null,8,["modelValue"])]),_:1})):F("",!0),l(i,{label:"状态",required:""},{default:n(()=>[l(V,{modelValue:a(o).status,"onUpdate:modelValue":e[16]||(e[16]=t=>a(o).status=t),class:"!w-full"},{default:n(()=>[l(r,{label:"已预约",value:1}),l(r,{label:"已取消",value:2}),l(r,{label:"已完成",value:3}),l(r,{label:"已过号",value:4})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"挂号医助"},{default:n(()=>[l(V,{modelValue:a(o).assistant_id,"onUpdate:modelValue":e[17]||(e[17]=t=>a(o).assistant_id=t),placeholder:"不修改可留空",clearable:"",filterable:"",class:"!w-full"},{default:n(()=>[(m(!0),S(D,null,N(a(q),t=>(m(),b(r,{key:t.id,label:t.name+(t.account?` (${t.account})`:""),value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"备注"},{default:n(()=>[l(d,{modelValue:a(o).remark,"onUpdate:modelValue":e[18]||(e[18]=t=>a(o).remark=t),type:"textarea",rows:3,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(Q,{modelValue:a(C),"onUpdate:modelValue":e[24]||(e[24]=t=>M(C)?C.value=t:null),title:"批量修改渠道",width:"520px","destroy-on-close":"",onClosed:oe},{footer:n(()=>[l(w,{onClick:e[23]||(e[23]=t=>C.value=!1)},{default:n(()=>[...e[34]||(e[34]=[_("取消",-1)])]),_:1}),l(w,{type:"primary",loading:a(R),onClick:se},{default:n(()=>[...e[35]||(e[35]=[_("确定",-1)])]),_:1},8,["loading"])]),default:n(()=>[v("p",ut,"将对已选 "+c(a(h).length)+" 条挂号写入同一渠道来源(仅改渠道,不改其它字段)。",1),l(H,{model:a(p),"label-width":"96px"},{default:n(()=>[l(i,{label:"渠道来源",required:""},{default:n(()=>[l(V,{modelValue:a(p).channel_source,"onUpdate:modelValue":e[21]||(e[21]=t=>a(p).channel_source=t),placeholder:"请选择渠道来源",filterable:"",class:"!w-full",onChange:ae},{default:n(()=>[(m(!0),S(D,null,N(a(y),t=>(m(),b(r,{key:String(t.value),label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(j)?(m(),b(i,{key:0,label:"自媒体补充",required:""},{default:n(()=>[l(d,{modelValue:a(p).channel_source_detail,"onUpdate:modelValue":e[22]||(e[22]=t=>a(p).channel_source_detail=t),maxlength:"128","show-word-limit":"",placeholder:"请输入自媒体相关补充内容",clearable:"",class:"!w-full"},null,8,["modelValue"])]),_:1})):F("",!0)]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}});export{Vt as default};
+import{o as J,ap as Se,bq as ke,bn as Ce,q as m,r as S,v as l,D as n,b9 as xe,aw as Ee,u as a,b6 as Ue,b7 as De,b8 as W,bf as Ne,F as D,G as N,O as b,bg as qe,K as Te,L as _,bh as Be,s as v,ac as L,T as c,P as F,bi as Fe,bj as Pe,bk as Re,bl as Ae,C as M,be as He,c5 as Ie,bc as Le,bb as Me,bt as $e,ba as $,M as k,p as P}from"./.pnpm-BuKxIMgQ.js";import{_ as Ke}from"./index.vue_vue_type_script_setup_true_lang-CSfv3pIy.js";import{_ as Oe}from"./index.vue_vue_type_script_setup_true_lang-ZyaNl9CV.js";import{j as g,n as je}from"./index-BZAvl557.js";import{a as Ge,b as Ye,c as Qe}from"./doctor-DlXZd1P5.js";import{a as ze}from"./appointment-type-DJT6wPaT.js";import{o as We}from"./tcm-BZvWmp4G.js";import{u as Je}from"./usePaging-DNtxCypz.js";const Xe={class:"guahao-list"},Ze={class:"flex flex-wrap items-center gap-3 mb-4"},et={key:0,class:"text-sm text-gray-500"},tt={class:"text-sm"},lt={class:"font-medium"},at={class:"text-gray-500"},nt={class:"text-xs text-gray-400"},ot={class:"text-gray-500"},st={class:"text-sm"},it={key:0,class:"text-xs text-gray-400 truncate"},rt={class:"flex justify-end mt-4"},ut={class:"text-sm text-gray-600 mb-4"},dt=J({name:"consumerPrescriptionGuahao"}),Vt=J({...dt,setup(mt){const u=$({start_date:"",end_date:"",patient_name:"",doctor_name:"",assistant_id:void 0,appointment_type:"",status:"",channel_source:""}),X={start_date:"",end_date:"",patient_name:"",doctor_name:"",assistant_id:void 0,appointment_type:"",status:"",channel_source:""},{pager:E,getLists:U,resetPage:q}=Je({fetchFun:Ge,params:u}),T=k([]),K=k(null),h=k([]);function Z(s){h.value=s}const ee=new Set(["自媒体3Q","自媒体3H","自媒体2H","自媒体2Q"]);function B(s){return ee.has(String(s??"").trim())}const y=k([]),te=P(()=>{const s=o.channel_source;if(s===""||s==null)return"";const e=y.value.find(i=>String(i.value)===String(s));return e?String(e.name??"").trim():""}),O=P(()=>B(te.value)),le=P(()=>{const s=p.channel_source;if(s===""||s==null)return"";const e=y.value.find(i=>String(i.value)===String(s));return e?String(e.name??"").trim():""}),j=P(()=>B(le.value));function ae(s){const e=y.value.find(d=>String(d.value)===String(s)),i=e?String(e.name??"").trim():"";B(i)||(p.channel_source_detail="")}const C=k(!1),R=k(!1),p=$({channel_source:"",channel_source_detail:""});function ne(){if(h.value.length===0){g.msgWarning("请先勾选挂号记录");return}p.channel_source="",p.channel_source_detail="",C.value=!0}function oe(){p.channel_source="",p.channel_source_detail=""}async function se(){var s,e;if(h.value.length===0){g.msgWarning("请先勾选挂号记录");return}if(!p.channel_source){g.msgError("请选择渠道来源");return}if(j.value&&!p.channel_source_detail.trim()){g.msgError("请填写自媒体补充说明");return}R.value=!0;try{const i=h.value.map(d=>Number(d.id));await Ye({ids:i,channel_source:p.channel_source,channel_source_detail:p.channel_source_detail.trim()}),g.msgSuccess("批量修改成功"),C.value=!1,(e=(s=K.value)==null?void 0:s.clearSelection)==null||e.call(s),h.value=[],U()}finally{R.value=!1}}function ie(s){const e=y.value.find(d=>String(d.value)===String(s)),i=e?String(e.name??"").trim():"";B(i)||(o.channel_source_detail="")}const x=k(!1),A=k(!1),o=$({id:0,appointment_date:"",appointment_time:"",period:"morning",appointment_type:"video",status:1,remark:"",assistant_id:void 0,channel_source:"",channel_source_detail:""});function re(s){const e=String(s||"");return e.length>=11?e.slice(0,3)+"****"+e.slice(-4):e||"—"}function G(s){const e=String(s||"");return e.length>=5?e.slice(0,5):e||"—"}function ue(){Object.assign(u,X),q()}function de(s){const e=String(s.period??s.type??"morning");return e==="afternoon"||e==="all"?e:"morning"}async function me(){try{const s=await We();T.value=(s==null?void 0:s.lists)??s??[]}catch{T.value=[]}}async function pe(){try{const s=await je({type:"channels"}),e=((s==null?void 0:s.channels)||[]).filter(i=>i.status!==0);e.sort((i,d)=>{const r=Number((d==null?void 0:d.sort)??0)-Number((i==null?void 0:i.sort)??0);return r!==0?r:Number((d==null?void 0:d.id)??0)-Number((i==null?void 0:i.id)??0)}),y.value=e}catch{y.value=[]}}function _e(s){o.id=Number(s.id),o.appointment_date=String(s.appointment_date||""),o.appointment_time=G(String(s.appointment_time||"")),o.period=de(s),o.appointment_type=String(s.appointment_type||"video"),o.status=Number(s.status),o.remark=String(s.remark||"");const e=s.appointment_assistant_id;o.assistant_id=e!=null&&e!==""?Number(e):void 0,o.channel_source=String(s.channel_source??s.channels??""),o.channel_source_detail=String(s.channel_source_detail??""),x.value=!0}function ce(){o.id=0,o.appointment_date="",o.appointment_time="",o.period="morning",o.appointment_type="video",o.status=1,o.remark="",o.assistant_id=void 0,o.channel_source="",o.channel_source_detail=""}async function fe(){if(!o.appointment_date){g.msgError("请选择预约日期");return}if(!o.appointment_time){g.msgError("请选择预约时间");return}if(!o.channel_source){g.msgError("请选择渠道来源");return}if(O.value&&!o.channel_source_detail.trim()){g.msgError("请填写自媒体补充说明");return}A.value=!0;try{const s={id:o.id,appointment_date:o.appointment_date,appointment_time:o.appointment_time,period:o.period,appointment_type:o.appointment_type,status:o.status,remark:o.remark,assistant_id:o.assistant_id??"",channel_source:o.channel_source,channel_source_detail:o.channel_source_detail.trim()};await Qe(s),g.msgSuccess("保存成功"),x.value=!1,U()}finally{A.value=!1}}return Se(()=>{me(),pe()}),ke(()=>{U()}),U(),(s,e)=>{const i=Ue,d=De,r=qe,V=Ne,w=Te,H=xe,Y=Be,f=Pe,be=Re,ve=Fe,ge=Ke,he=He,ye=Ie,I=Me,Ve=Le,Q=$e,z=Ce("perms"),we=Ae;return m(),S("div",Xe,[l(Y,{class:"!border-none",shadow:"never"},{default:n(()=>[l(H,{class:"mb-[-16px]",model:a(u),inline:!0,onSubmit:e[8]||(e[8]=Ee(()=>{},["prevent"]))},{default:n(()=>[l(i,{label:"预约日期"},{default:n(()=>[l(Oe,{startTime:a(u).start_date,"onUpdate:startTime":e[0]||(e[0]=t=>a(u).start_date=t),endTime:a(u).end_date,"onUpdate:endTime":e[1]||(e[1]=t=>a(u).end_date=t)},null,8,["startTime","endTime"])]),_:1}),l(i,{label:"患者姓名"},{default:n(()=>[l(d,{modelValue:a(u).patient_name,"onUpdate:modelValue":e[2]||(e[2]=t=>a(u).patient_name=t),placeholder:"模糊搜索",clearable:"",class:"!w-[160px]",onKeyup:W(a(q),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(i,{label:"医生"},{default:n(()=>[l(d,{modelValue:a(u).doctor_name,"onUpdate:modelValue":e[3]||(e[3]=t=>a(u).doctor_name=t),placeholder:"模糊搜索",clearable:"",class:"!w-[140px]",onKeyup:W(a(q),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(i,{label:"医助"},{default:n(()=>[l(V,{modelValue:a(u).assistant_id,"onUpdate:modelValue":e[4]||(e[4]=t=>a(u).assistant_id=t),placeholder:"全部",clearable:"",filterable:"",class:"!w-[180px]"},{default:n(()=>[(m(!0),S(D,null,N(a(T),t=>(m(),b(r,{key:t.id,label:t.name+(t.account?` (${t.account})`:""),value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"挂号类型"},{default:n(()=>[l(V,{modelValue:a(u).appointment_type,"onUpdate:modelValue":e[5]||(e[5]=t=>a(u).appointment_type=t),placeholder:"全部",clearable:"",class:"!w-[140px]"},{default:n(()=>[l(r,{label:"全部",value:""}),l(r,{label:"视频问诊",value:"video"}),l(r,{label:"图文问诊",value:"text"})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"状态"},{default:n(()=>[l(V,{modelValue:a(u).status,"onUpdate:modelValue":e[6]||(e[6]=t=>a(u).status=t),placeholder:"全部",clearable:"",class:"!w-[130px]"},{default:n(()=>[l(r,{label:"已预约",value:1}),l(r,{label:"已取消",value:2}),l(r,{label:"已完成",value:3}),l(r,{label:"已过号",value:4})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"渠道"},{default:n(()=>[l(V,{modelValue:a(u).channel_source,"onUpdate:modelValue":e[7]||(e[7]=t=>a(u).channel_source=t),placeholder:"全部",clearable:"",filterable:"",class:"!w-[200px]"},{default:n(()=>[(m(!0),S(D,null,N(a(y),t=>(m(),b(r,{key:String(t.value),label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(i,null,{default:n(()=>[l(w,{type:"primary",onClick:a(q)},{default:n(()=>[...e[25]||(e[25]=[_("查询",-1)])]),_:1},8,["onClick"]),l(w,{onClick:ue},{default:n(()=>[...e[26]||(e[26]=[_("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),l(Y,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[v("div",Ze,[L((m(),b(w,{type:"primary",disabled:a(h).length===0,onClick:ne},{default:n(()=>[...e[27]||(e[27]=[_(" 批量修改渠道 ",-1)])]),_:1},8,["disabled"])),[[z,["doctor.appointment/edit"]]]),a(h).length>0?(m(),S("span",et," 已选 "+c(a(h).length)+" 条 ",1)):F("",!0)]),L((m(),b(ve,{ref_key:"tableRef",ref:K,"row-key":"id",data:a(E).lists,size:"large",stripe:"",onSelectionChange:Z},{default:n(()=>[l(f,{type:"selection",width:"48",align:"center","reserve-selection":""}),l(f,{label:"ID",prop:"id",width:"72",align:"center"}),l(f,{label:"诊单/患者","min-width":"140"},{default:n(({row:t})=>[v("div",tt,[v("div",lt,c(t.patient_name||"—"),1),v("div",at,c(re(t.patient_phone)),1),v("div",nt,"诊单 #"+c(t.diagnosis_id??t.patient_id),1)])]),_:1}),l(f,{label:"医生",prop:"doctor_name",width:"100","show-overflow-tooltip":""}),l(f,{label:"医助",prop:"assistant_name",width:"100","show-overflow-tooltip":""}),l(f,{label:"预约时间","min-width":"128"},{default:n(({row:t})=>[v("div",null,c(t.appointment_date),1),v("div",ot,c(G(t.appointment_time))+" · "+c(t.period_desc),1)]),_:1}),l(f,{label:"挂号类型",width:"110"},{default:n(({row:t})=>[_(c(a(ze)(t.appointment_type)),1)]),_:1}),l(f,{label:"渠道","min-width":"130","show-overflow-tooltip":""},{default:n(({row:t})=>[v("div",st,c(t.channel_source_desc||"—"),1),t.channel_source_detail?(m(),S("div",it,c(t.channel_source_detail),1)):F("",!0)]),_:1}),l(f,{label:"状态",width:"96",align:"center"},{default:n(({row:t})=>[l(be,{type:t.status===1?"success":t.status===2?"info":t.status===3?"primary":"danger",size:"small",effect:"light"},{default:n(()=>[_(c(t.status_desc),1)]),_:2},1032,["type"])]),_:1}),l(f,{label:"备注",prop:"remark","min-width":"120","show-overflow-tooltip":""}),l(f,{label:"操作",width:"100",fixed:"right",align:"center"},{default:n(({row:t})=>[L((m(),b(w,{type:"primary",link:"",onClick:pt=>_e(t)},{default:n(()=>[...e[28]||(e[28]=[_(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[z,["doctor.appointment/edit"]]])]),_:1})]),_:1},8,["data"])),[[we,a(E).loading]]),v("div",rt,[l(ge,{modelValue:a(E),"onUpdate:modelValue":e[9]||(e[9]=t=>M(E)?E.value=t:null),onChange:a(U)},null,8,["modelValue","onChange"])])]),_:1}),l(Q,{modelValue:a(x),"onUpdate:modelValue":e[20]||(e[20]=t=>M(x)?x.value=t:null),title:"编辑挂号",width:"560px","destroy-on-close":"",onClosed:ce},{footer:n(()=>[l(w,{onClick:e[19]||(e[19]=t=>x.value=!1)},{default:n(()=>[...e[32]||(e[32]=[_("取消",-1)])]),_:1}),l(w,{type:"primary",loading:a(A),onClick:fe},{default:n(()=>[...e[33]||(e[33]=[_("保存",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(H,{model:a(o),"label-width":"96px"},{default:n(()=>[l(i,{label:"预约日期",required:""},{default:n(()=>[l(he,{modelValue:a(o).appointment_date,"onUpdate:modelValue":e[10]||(e[10]=t=>a(o).appointment_date=t),type:"date","value-format":"YYYY-MM-DD",placeholder:"选择日期",class:"!w-full"},null,8,["modelValue"])]),_:1}),l(i,{label:"预约时间",required:""},{default:n(()=>[l(ye,{modelValue:a(o).appointment_time,"onUpdate:modelValue":e[11]||(e[11]=t=>a(o).appointment_time=t),format:"HH:mm","value-format":"HH:mm",placeholder:"时间",class:"!w-full"},null,8,["modelValue"])]),_:1}),l(i,{label:"时段",required:""},{default:n(()=>[l(Ve,{modelValue:a(o).period,"onUpdate:modelValue":e[12]||(e[12]=t=>a(o).period=t)},{default:n(()=>[l(I,{label:"morning"},{default:n(()=>[...e[29]||(e[29]=[_("上午",-1)])]),_:1}),l(I,{label:"afternoon"},{default:n(()=>[...e[30]||(e[30]=[_("下午",-1)])]),_:1}),l(I,{label:"all"},{default:n(()=>[...e[31]||(e[31]=[_("全天",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"挂号类型",required:""},{default:n(()=>[l(V,{modelValue:a(o).appointment_type,"onUpdate:modelValue":e[13]||(e[13]=t=>a(o).appointment_type=t),class:"!w-full"},{default:n(()=>[l(r,{label:"视频问诊",value:"video"}),l(r,{label:"图文问诊",value:"text"})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"渠道来源",required:""},{default:n(()=>[l(V,{modelValue:a(o).channel_source,"onUpdate:modelValue":e[14]||(e[14]=t=>a(o).channel_source=t),placeholder:"请选择渠道来源",filterable:"",class:"!w-full",onChange:ie},{default:n(()=>[(m(!0),S(D,null,N(a(y),t=>(m(),b(r,{key:String(t.value),label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(O)?(m(),b(i,{key:0,label:"自媒体补充",required:""},{default:n(()=>[l(d,{modelValue:a(o).channel_source_detail,"onUpdate:modelValue":e[15]||(e[15]=t=>a(o).channel_source_detail=t),maxlength:"128","show-word-limit":"",placeholder:"请输入自媒体相关补充内容",clearable:"",class:"!w-full"},null,8,["modelValue"])]),_:1})):F("",!0),l(i,{label:"状态",required:""},{default:n(()=>[l(V,{modelValue:a(o).status,"onUpdate:modelValue":e[16]||(e[16]=t=>a(o).status=t),class:"!w-full"},{default:n(()=>[l(r,{label:"已预约",value:1}),l(r,{label:"已取消",value:2}),l(r,{label:"已完成",value:3}),l(r,{label:"已过号",value:4})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"挂号医助"},{default:n(()=>[l(V,{modelValue:a(o).assistant_id,"onUpdate:modelValue":e[17]||(e[17]=t=>a(o).assistant_id=t),placeholder:"不修改可留空",clearable:"",filterable:"",class:"!w-full"},{default:n(()=>[(m(!0),S(D,null,N(a(T),t=>(m(),b(r,{key:t.id,label:t.name+(t.account?` (${t.account})`:""),value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"备注"},{default:n(()=>[l(d,{modelValue:a(o).remark,"onUpdate:modelValue":e[18]||(e[18]=t=>a(o).remark=t),type:"textarea",rows:3,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(Q,{modelValue:a(C),"onUpdate:modelValue":e[24]||(e[24]=t=>M(C)?C.value=t:null),title:"批量修改渠道",width:"520px","destroy-on-close":"",onClosed:oe},{footer:n(()=>[l(w,{onClick:e[23]||(e[23]=t=>C.value=!1)},{default:n(()=>[...e[34]||(e[34]=[_("取消",-1)])]),_:1}),l(w,{type:"primary",loading:a(R),onClick:se},{default:n(()=>[...e[35]||(e[35]=[_("确定",-1)])]),_:1},8,["loading"])]),default:n(()=>[v("p",ut,"将对已选 "+c(a(h).length)+" 条挂号写入同一渠道来源(仅改渠道,不改其它字段)。",1),l(H,{model:a(p),"label-width":"96px"},{default:n(()=>[l(i,{label:"渠道来源",required:""},{default:n(()=>[l(V,{modelValue:a(p).channel_source,"onUpdate:modelValue":e[21]||(e[21]=t=>a(p).channel_source=t),placeholder:"请选择渠道来源",filterable:"",class:"!w-full",onChange:ae},{default:n(()=>[(m(!0),S(D,null,N(a(y),t=>(m(),b(r,{key:String(t.value),label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(j)?(m(),b(i,{key:0,label:"自媒体补充",required:""},{default:n(()=>[l(d,{modelValue:a(p).channel_source_detail,"onUpdate:modelValue":e[22]||(e[22]=t=>a(p).channel_source_detail=t),maxlength:"128","show-word-limit":"",placeholder:"请输入自媒体相关补充内容",clearable:"",class:"!w-full"},null,8,["modelValue"])]),_:1})):F("",!0)]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}});export{Vt as default};
diff --git a/server/public/admin/assets/h5-C0x8GXu2.js b/server/public/admin/assets/h5-C0x8GXu2.js
new file mode 100644
index 000000000..21d605858
--- /dev/null
+++ b/server/public/admin/assets/h5-C0x8GXu2.js
@@ -0,0 +1 @@
+import{o as ie,q as r,r as u,s as n,v as t,b8 as De,C as T,u as a,b7 as Fe,D as s,bg as Ue,bf as $e,L as i,K as Ye,ac as ae,bl as Le,bB as Me,P as g,F as se,G as oe,cw as Se,w as Te,b9 as qe,b6 as Be,J as He,bc as Ne,bo as Ie,I as Ae,B as Ke,bk as Pe,T as p,bb as je,be as Ge,M as d,p as Je}from"./.pnpm-BuKxIMgQ.js";import{f as Oe,a as Xe,b as Qe,c as We,d as Ze,e as el,g as ll,h as tl}from"./fans-ZsYBYCua.js";import{j as ne,_ as al}from"./index-BZAvl557.js";import{d as sl}from"./dayjs-7f8aMLm8.js";const ol={class:"fans-h5"},nl={class:"h5-header"},il={class:"h5-search"},dl={class:"h5-filter-row"},rl={class:"h5-list"},ul={key:0,class:"h5-empty"},ml={class:"h5-card-header"},vl={class:"h5-card-name"},pl={class:"name"},_l={key:0,class:"age"},cl={class:"h5-card-body"},fl={class:"info-line"},gl={class:"value"},yl={class:"info-line"},Vl={class:"value"},bl={key:0,class:"info-line"},kl={class:"value remark"},hl={class:"h5-card-footer"},xl={class:"footer-left"},Cl={class:"visit-info"},wl={class:"visit-count"},El={key:0,class:"creator-info"},Rl={class:"actions"},zl={key:0},Dl={key:1},Fl={key:2,class:"h5-no-more"},Ul={class:"h5-form-row"},$l={class:"h5-visit-header"},Yl={class:"h5-visit-list"},Ll={key:0,class:"h5-empty"},Ml={class:"visit-card-header"},Sl={class:"visit-card-tags"},Tl={class:"visit-time"},ql={class:"visit-card-actions"},Bl={class:"visit-card-content"},Hl={key:0,class:"visit-card-result"},Nl={class:"visit-card-meta"},Il={key:0,class:"next-visit"},Al={key:1,class:"operator"},Kl=ie({name:"fansH5"}),Pl=ie({...Kl,setup(jl){const y=d(""),C=d({name:"",phone:"",gender:"",status:""}),b=d([]),R=d(!1),z=d(!1),q=d(1),de=15,j=d(0),G=Je(()=>b.value.length