function e(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var t={},n=[],r=()=>{},i=()=>!1,a=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),o=e=>e.startsWith(`onUpdate:`),s=Object.assign,c=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},l=Object.prototype.hasOwnProperty,u=(e,t)=>l.call(e,t),d=Array.isArray,f=e=>x(e)===`[object Map]`,p=e=>x(e)===`[object Set]`,m=e=>x(e)===`[object Date]`,h=e=>typeof e==`function`,g=e=>typeof e==`string`,_=e=>typeof e==`symbol`,v=e=>typeof e==`object`&&!!e,y=e=>(v(e)||h(e))&&h(e.then)&&h(e.catch),b=Object.prototype.toString,x=e=>b.call(e),S=e=>x(e).slice(8,-1),C=e=>x(e)===`[object Object]`,w=e=>g(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,T=e(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),ee=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},te=/-\w/g,ne=ee(e=>e.replace(te,e=>e.slice(1).toUpperCase())),re=/\B([A-Z])/g,ie=ee(e=>e.replace(re,`-$1`).toLowerCase()),ae=ee(e=>e.charAt(0).toUpperCase()+e.slice(1)),oe=ee(e=>e?`on${ae(e)}`:``),se=(e,t)=>!Object.is(e,t),ce=(e,...t)=>{for(let n=0;n 办事指南 由学校创建,或在开放自主注册时在线申请。 首次登录修改密码,并按要求提交真实资料。 资料审核通过后,在开放期内完成报名。 使用同一报名号下载准考证、查分和查看录取。 ${String(a.value.content||``).replaceAll(`
`,` `)}一个报名号,贯穿完整考试服务
报名号是考生的长期账户。每场考试新增报名记录,不重复创建个人账户。l;m--)d[m]=f(m);d[l]=f(l),p++}while(d[l]!==c);return u[l].slice(1)};nC.fastDiff=XS;function rC(){return function e(){e.called=!0}}var iC=class{source;name;path;stop;off;return;constructor(e,t){this.source=e,this.name=t,this.path=[],this.stop=rC(),this.off=rC()}},aC=Array(256).fill(``).map((e,t)=>(`0`+t.toString(16)).slice(-2));function oC(){let[e,t,n,r]=crypto.getRandomValues(new Uint32Array(4));return`e`+aC[e>>0&255]+aC[e>>8&255]+aC[e>>16&255]+aC[e>>24&255]+aC[t>>0&255]+aC[t>>8&255]+aC[t>>16&255]+aC[t>>24&255]+aC[n>>0&255]+aC[n>>8&255]+aC[n>>16&255]+aC[n>>24&255]+aC[r>>0&255]+aC[r>>8&255]+aC[r>>16&255]+aC[r>>24&255]}var sC={get(e=`normal`){return typeof e==`number`?e:this[e]||this.normal},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5};function cC(e,t){let n=sC.get(t.priority),r=0,i=e.length;for(;r>1;sC.get(e[t].priority)<br> element)`),keystroke:`Shift+Enter`}]})}};function xB(e){let t=new Set;for(let n of e.model.document.differ.getChanges())n.type==`insert`||n.type==`remove`?n.position.parent.is(`element`)&&t.add(n.position.parent):n.type==`attribute`&&n.range.start.parent.is(`element`)&&t.add(n.range.start.parent);let n=!1;for(let r of t)for(let t of r.getChildren()){if(!t.is(`element`,`softBreak`))continue;let r=t.nextSibling;if(!r||r.is(`element`))continue;let i=Array.from(t.getAttributes()).filter(([e,t])=>!SB(r,e,t));for(let[r]of i)e.removeAttribute(r,t),n=!0}return n}function SB(e,t,n){return e?.getAttribute(t)===n}var CB=class extends eP{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(e={}){let t=this.editor.model,n=t.schema,r=t.document.selection,i=Array.from(r.getSelectedBlocks()),a=e.forceValue===void 0?!this.value:e.forceValue;t.change(e=>{if(!a)this._removeQuote(e,i.filter(wB));else{let t=i.filter(e=>wB(e)||EB(n,e));this._applyQuote(e,t)}})}_getValue(){let e=this.editor.model.document.selection,t=TT(e.getSelectedBlocks());return!!(t&&wB(t))}_checkEnabled(){if(this.value)return!0;let e=this.editor.model.document.selection,t=this.editor.model.schema,n=TT(e.getSelectedBlocks());return n?EB(t,n):!1}_removeQuote(e,t){TB(e,t).reverse().forEach(t=>{if(t.start.isAtStart&&t.end.isAtEnd){e.unwrap(t.start.parent);return}if(t.start.isAtStart){let n=e.createPositionBefore(t.start.parent);e.move(t,n);return}t.end.isAtEnd||e.split(t.end);let n=e.createPositionAfter(t.end.parent);e.move(t,n)})}_applyQuote(e,t){let n=[];TB(e,t).reverse().forEach(t=>{let r=wB(t.start);r||(r=e.createElement(`blockQuote`),e.wrap(t,r)),n.push(r)}),n.reverse().reduce((t,n)=>t.nextSibling==n?(e.merge(e.createPositionAfter(t)),t):n)}};function wB(e){return e.parent.name==`blockQuote`?e.parent:null}function TB(e,t){let n,r=0,i=[];for(;r
`).replace(/\r?\n/g,`
`).replace(/\t/g,` `).replace(/^\s/,` `).replace(/\s$/,` `).replace(/\s\s/g,` `),(e.includes(`
`)||e.includes(`
`))&&(e=`
${e}
`),e}var TV=class extends bO{domEventType=[`paste`,`copy`,`cut`,`drop`,`dragover`,`dragstart`,`dragend`,`dragenter`,`dragleave`];constructor(e){super(e);let t=this.document;this.listenTo(t,`paste`,n(`clipboardInput`),{priority:`low`}),this.listenTo(t,`drop`,n(`clipboardInput`),{priority:`low`}),this.listenTo(t,`dragover`,n(`dragging`),{priority:`low`});function n(e){return(n,r)=>{r.preventDefault();let i=r.dropRange?[r.dropRange]:null,a=r.dataTransfer,o=new iC(t,e),s=``;a.getData(`text/html`)?s=a.getData(`text/html`):a.getData(`text/plain`)&&(s=wV(a.getData(`text/plain`))),t.fire(o,{dataTransfer:a,content:s,method:n.name,targetRanges:i,target:r.target,domEvent:r.domEvent}),o.stop.called&&r.stopPropagation()}}}onDomEvent(e){let t={dataTransfer:new kO(`clipboardData`in e?e.clipboardData:e.dataTransfer,{cacheFiles:e.type==`drop`||e.type==`paste`})};if(e.type==`drop`||e.type==`dragover`){let n=hw(e);t.dropRange=n&&this.view.domConverter.domRangeToView(n)}this.fire(e.type,e,t)}};function EV(e){return e.replace(/(\s+)<\/span>/g,(e,t)=>t.length==1?` `:t).replace(//g,``)}var DV=[`figcaption`,`li`],OV=[`ol`,`ul`];function kV(e,t){if(t.is(`$text`)||t.is(`$textProxy`))return t.data;if(t.is(`element`,`img`)&&t.hasAttribute(`alt`))return t.getAttribute(`alt`);if(t.is(`element`,`br`))return` `;let n=``,r=null;for(let i of t.getChildren())n+=jV(i,r)+kV(e,i),r=i;if(t.is(`rawElement`)){let r=document.implementation.createHTMLDocument(``).createElement(`div`);t.render(r,e),n+=AV(r)}return n}function AV(e){let t=``;if(e.nodeType===Node.TEXT_NODE)return e.textContent;if(e.tagName===`BR`)return` `;for(let n of e.childNodes)t+=AV(n);return t}function jV(e,t){return t?e.is(`element`,`li`)&&!e.isEmpty&&e.getChild(0).is(`containerElement`)||OV.includes(e.name)&&OV.includes(t.name)?` `:!e.is(`containerElement`)&&!t.is(`containerElement`)?``:DV.includes(e.name)||DV.includes(t.name)?` `:e.is(`element`)&&e.getCustomProperty(`dataPipeline:transparentRendering`)||t.is(`element`)&&t.getCustomProperty(`dataPipeline:transparentRendering`)?``:` `:``}var MV=class extends Z{_markersToCopy=new Map;static get pluginName(){return`ClipboardMarkersUtils`}static get isOfficialPlugin(){return!0}_registerMarkerToCopy(e,t){this._markersToCopy.set(e,t)}_copySelectedFragmentWithMarkers(e,t,n=e=>e.model.getSelectedContent(e.model.document.selection)){return this.editor.model.change(r=>{let i=r.model.document.selection;r.setSelection(t);let a=this._insertFakeMarkersIntoSelection(r,r.model.document.selection,e),o=n(r),s=this._removeFakeMarkersInsideElement(r,o);for(let[e,t]of Object.entries(a)){s[e]||=r.createRangeIn(o);for(let e of t)r.remove(e)}o.markers.clear();for(let[e,t]of Object.entries(s))o.markers.set(e,t);return r.setSelection(i),o})}_pasteMarkersIntoTransformedElement(e,t){let n=this._getPasteMarkersFromRangeMap(e);return this.editor.model.change(e=>{let r=this._insertFakeMarkersElements(e,n),i=t(e),a=this._removeFakeMarkersInsideElement(e,i);for(let t of Object.values(r).flat())e.remove(t);for(let[t,n]of Object.entries(a))e.model.markers.has(t)||e.addMarker(t,{usingOperation:!0,affectsData:!0,range:n});return i})}_pasteFragmentWithMarkers(e){let t=this._getPasteMarkersFromRangeMap(e.markers);e.markers.clear();for(let n of t)e.markers.set(n.name,n.range);return this.editor.model.insertContent(e)}_forceMarkersCopy(e,t,n={allowedActions:`all`,copyPartiallySelected:!0,duplicateOnPaste:!0}){let r=this._markersToCopy.get(e);this._markersToCopy.set(e,n),t(),r?this._markersToCopy.set(e,r):this._markersToCopy.delete(e)}_isMarkerCopyable(e,t){let n=this._getMarkerClipboardConfig(e);if(!n)return!1;if(!t)return!0;let{allowedActions:r}=n;return r===`all`||r.includes(t)}_hasMarkerConfiguration(e){return!!this._getMarkerClipboardConfig(e)}_getMarkerClipboardConfig(e){let[t]=e.split(`:`);return this._markersToCopy.get(t)||null}_insertFakeMarkersIntoSelection(e,t,n){let r=this._getCopyableMarkersFromSelection(e,t,n);return this._insertFakeMarkersElements(e,r)}_getCopyableMarkersFromSelection(e,t,n){let r=Array.from(t.getRanges()),i=new Set(r.flatMap(t=>Array.from(e.model.markers.getMarkersIntersectingRange(t))));return Array.from(i).filter(e=>{if(!this._isMarkerCopyable(e.name,n))return!1;let{copyPartiallySelected:t}=this._getMarkerClipboardConfig(e.name);if(!t){let t=e.getRange();return r.some(e=>e.containsRange(t,!0))}return!0}).map(e=>({name:n===`dragstart`?this._getUniqueMarkerName(e.name):e.name,range:e.getRange()}))}_getPasteMarkersFromRangeMap(e,t=null){let{model:n}=this.editor;return(e instanceof Map?Array.from(e.entries()):Object.entries(e)).flatMap(([e,r])=>{if(!this._hasMarkerConfiguration(e))return[{name:e,range:r}];if(this._isMarkerCopyable(e,t)){let t=this._getMarkerClipboardConfig(e),i=n.markers.has(e)&&n.markers.get(e).getRange().root.rootName===`$graveyard`;return(t.duplicateOnPaste||i)&&(e=this._getUniqueMarkerName(e)),[{name:e,range:r}]}return[]})}_insertFakeMarkersElements(e,t){let n={},r=t.flatMap(e=>{let{start:t,end:n}=e.range;return[{position:t,marker:e,type:`start`},{position:n,marker:e,type:`end`}]}).sort(({position:e},{position:t})=>e.isBefore(t)?1:-1);for(let{position:t,marker:i,type:a}of r){let r=e.createElement(`$marker`,{"data-name":i.name,"data-type":a});n[i.name]||(n[i.name]=[]),n[i.name].push(r),e.insert(r,t)}return n}_removeFakeMarkersInsideElement(e,t){return DS(this._getAllFakeMarkersFromElement(e,t).reduce((t,n)=>{let r=n.markerElement&&e.createPositionBefore(n.markerElement),i=t[n.name],a=!1;return i?.start&&i?.end&&(this._getMarkerClipboardConfig(n.name).duplicateOnPaste?t[this._getUniqueMarkerName(n.name)]=t[n.name]:a=!0,i=null),a||(t[n.name]={...i,[n.type]:r}),n.markerElement&&e.remove(n.markerElement),t},{}),n=>new X(n.start||e.createPositionFromPath(t,[0]),n.end||e.createPositionAt(t,`end`)))}_getAllFakeMarkersFromElement(e,t){let n=Array.from(e.createRangeIn(t)).flatMap(({item:e})=>e.is(`element`,`$marker`)?[{markerElement:e,name:e.getAttribute(`data-name`),type:e.getAttribute(`data-type`)}]:[]),r=[],i=[];for(let e of n)e.type===`end`&&(n.some(t=>t.name===e.name&&t.type===`start`)||r.push({markerElement:null,name:e.name,type:`start`})),e.type===`start`&&(n.some(t=>t.name===e.name&&t.type===`end`)||i.unshift({markerElement:null,name:e.name,type:`end`}));return[...r,...n,...i]}_getUniqueMarkerName(e){let t=e.split(`:`),n=oC().substring(1,6);return t.length===3?`${t.slice(0,2).join(`:`)}:${n}`:`${t.join(`:`)}:${n}`}},NV=class extends Z{static get pluginName(){return`ClipboardPipeline`}static get isOfficialPlugin(){return!0}static get requires(){return[MV]}init(){this.editor.editing.view.addObserver(TV),this._setupPasteDrop(),this._setupCopyCut()}_fireOutputTransformationEvent(e,t,n){let r=this.editor.plugins.get(`ClipboardMarkersUtils`);this.editor.model.enqueueChange({isUndoable:n===`cut`},()=>{let i=r._copySelectedFragmentWithMarkers(n,t);this.fire(`outputTransformation`,{dataTransfer:e,content:i,method:n})})}_setupPasteDrop(){let e=this.editor,t=e.model,n=e.editing.view,r=n.document,i=this.editor.plugins.get(`ClipboardMarkersUtils`);this.listenTo(r,`clipboardInput`,(t,n)=>{n.method==`paste`&&!e.model.canEditAt(e.model.document.selection)&&t.stop()},{priority:`highest`}),this.listenTo(r,`clipboardInput`,(e,t)=>{let r=t.dataTransfer,i=new iC(this,`inputTransformation`),a=r.getData(`application/ckeditor5-editor-id`)||null,o=typeof t.content==`string`?this.editor.data.htmlProcessor.toView(EV(t.content)):t.content;this.fire(i,{content:o,dataTransfer:r,sourceEditorId:a,extraContent:t.extraContent,targetRanges:t.targetRanges,method:t.method}),i.stop.called&&e.stop(),n.scrollToTheSelection()},{priority:`low`}),this.listenTo(this,`inputTransformation`,(e,n)=>{if(n.content.isEmpty)return;let r=this.editor.data.toModel(n.content,`$clipboardHolder`);r.childCount!=0&&(e.stop(),t.change(()=>{this.fire(`contentInsertion`,{content:r,method:n.method,sourceEditorId:n.sourceEditorId,dataTransfer:n.dataTransfer,targetRanges:n.targetRanges})}))},{priority:`low`}),this.listenTo(this,`contentInsertion`,(e,t)=>{t.resultRange=i._pasteFragmentWithMarkers(t.content)},{priority:`low`})}_setupCopyCut(){let e=this.editor,t=e.model.document,n=e.editing.view.document,r=(e,n)=>{let r=n.dataTransfer;n.preventDefault(),this._fireOutputTransformationEvent(r,t.selection,e.name)};this.listenTo(n,`copy`,r,{priority:`low`}),this.listenTo(n,`cut`,(t,n)=>{e.model.canEditAt(e.model.document.selection)?r(t,n):n.preventDefault()},{priority:`low`}),this.listenTo(this,`outputTransformation`,(t,r)=>{let i=e.data.toView(r.content,{isClipboardPipeline:!0});n.fire(`clipboardOutput`,{dataTransfer:r.dataTransfer,content:i,method:r.method})},{priority:`low`}),this.listenTo(n,`clipboardOutput`,(n,r)=>{r.content.isEmpty||(r.dataTransfer.setData(`text/html`,this.editor.data.htmlProcessor.toData(r.content)),r.dataTransfer.setData(`text/plain`,kV(e.data.htmlProcessor.domConverter,r.content)),r.dataTransfer.setData(`application/ckeditor5-editor-id`,this.editor.id)),r.method==`cut`&&e.model.deleteContent(t.selection)},{priority:`low`})}},PV=jw(`px`),FV=class extends ${constructor(){super();let e=this.bindTemplate;this.set({isVisible:!1,left:null,top:null,width:null}),this.setTemplate({tag:`div`,attributes:{class:[`ck`,`ck-clipboard-drop-target-line`,e.if(`isVisible`,`ck-hidden`,e=>!e)],style:{left:e.to(`left`,e=>PV(e)),top:e.to(`top`,e=>PV(e)),width:e.to(`width`,e=>PV(e))}}})}},IV=class extends Z{removeDropMarkerDelayed=IT(()=>this.removeDropMarker(),40);_updateDropMarkerThrottled=nS(e=>this._updateDropMarker(e),40);_reconvertMarkerThrottled=nS(()=>{this.editor.model.markers.has(`drop-target`)&&this.editor.editing.reconvertMarker(`drop-target`)},0);_dropTargetLineView=new FV;_domEmitter=new(cw());_scrollables=new Map;static get pluginName(){return`DragDropTarget`}static get isOfficialPlugin(){return!0}init(){this._setupDropMarker()}destroy(){this._domEmitter.stopListening();for(let{resizeObserver:e}of this._scrollables.values())e.destroy();return this._updateDropMarkerThrottled.cancel(),this.removeDropMarkerDelayed.cancel(),this._reconvertMarkerThrottled.cancel(),super.destroy()}updateDropMarker(e,t,n,r,i,a){this.removeDropMarkerDelayed.cancel();let o=LV(this.editor,e,t,n,r,i,a);return o?a&&a.containsRange(o)||o&&!this.editor.model.canEditAt(o)?(this.removeDropMarker(),null):(this._updateDropMarkerThrottled(o),o):null}getFinalDropRange(e,t,n,r,i,a){let o=LV(this.editor,e,t,n,r,i,a);return this.removeDropMarker(),o}removeDropMarker(){let e=this.editor.model;this.removeDropMarkerDelayed.cancel(),this._updateDropMarkerThrottled.cancel(),this._dropTargetLineView.isVisible=!1,e.markers.has(`drop-target`)&&e.change(e=>{e.removeMarker(`drop-target`)})}_setupDropMarker(){let e=this.editor;e.ui.view.body.add(this._dropTargetLineView),e.conversion.for(`editingDowncast`).markerToHighlight({model:`drop-target`,view:{classes:[`ck-clipboard-drop-target-range`]}}),e.conversion.for(`editingDowncast`).markerToElement({model:`drop-target`,view:(t,{writer:n})=>{if(e.model.schema.checkChild(t.markerRange.start,`$text`))return this._dropTargetLineView.isVisible=!1,this._createDropTargetPosition(n);t.markerRange.isCollapsed?this._updateDropTargetLine(t.markerRange):this._dropTargetLineView.isVisible=!1}})}_updateDropMarker(e){let t=this.editor,n=t.model.markers;t.model.change(t=>{n.has(`drop-target`)?n.get(`drop-target`).getRange().isEqual(e)||t.updateMarker(`drop-target`,{range:e}):t.addMarker(`drop-target`,{range:e,usingOperation:!1,affectsData:!1})})}_createDropTargetPosition(e){return e.createUIElement(`span`,{class:`ck ck-clipboard-drop-target-position`},function(e){let t=this.toDomElement(e);return t.append(``,e.createElement(`span`),``),t})}_updateDropTargetLine(e){let t=this.editor.editing,n=e.start.nodeBefore,r=e.start.nodeAfter,i=e.start.parent,a=n?t.mapper.toViewElement(n):null,o=a?t.view.domConverter.mapViewToDom(a):null,s=r?t.mapper.toViewElement(r):null,c=s?t.view.domConverter.mapViewToDom(s):null,l=t.mapper.toViewElement(i);if(!l)return;let u=t.view.domConverter.mapViewToDom(l),d=this._getScrollableRect(l),{scrollX:f,scrollY:p}=W.window,m=o?new xw(o):null,h=c?new xw(c):null,g=new xw(u).excludeScrollbarsAndBorders(),_=m?m.bottom:g.top,v=h?h.top:g.bottom,y=W.window.getComputedStyle(u),b=_<=v?(_+v)/2:v;if(d.tops.schema.checkChild(a,e))){if(s.schema.checkChild(a,`$text`))return s.createRange(a);if(t)return zV(e,VV(e,t.parent),r,i)}}}else if(s.schema.isInline(l))return zV(e,l,r,i)}if(s.schema.isBlock(l))return zV(e,l,r,i);if(s.schema.checkChild(l,`$block`)){let t=Array.from(l.getChildren()).filter(t=>t.is(`element`)&&!RV(e,t)),n=0,a=t.length;if(a==0)return s.createRange(s.createPositionAt(l,`end`));for(;n<br> element)":`插入软换行(一个<br> 元素)`,"Insert a hard break (a new paragraph)":`插入硬换行(新段落)`,Emoji:`表情符号`,"Show all emoji...":`显示所有表情符号...`,"Find an emoji (min. 2 characters)":`查找表情符号(最少 2 个字符)`,'No emojis were found matching "%0".':`未找到与“%0”匹配的表情符号。`,"Keep on typing to see the emoji.":`继续键入以查看表情符号。`,"The query must contain at least two characters.":`查询必须至少包含两个字符。`,"Smileys & Expressions":`笑脸符与表情`,"Gestures & People":`手势与人物`,"Animals & Nature":`动物与自然`,"Food & Drinks":`食物与饮料`,"Travel & Places":`旅行与地点`,Activities:`活动`,Objects:`物品`,Symbols:`符号`,Flags:`旗帜`,"Select skin tone":`选择肤色`,"Default skin tone":`默认肤色`,"Light skin tone":`浅肤色`,"Medium Light skin tone":`中等偏浅肤色`,"Medium skin tone":`中等肤色`,"Medium Dark skin tone":`中等偏深肤色`,"Dark skin tone":`深肤色`,"Emoji picker":`表情符号选择器`,Cancel:`取消`,Clear:`清除`,"Remove color":`移除颜色`,"Restore default":`恢复默认`,Save:`保存`,"Show more items":`显示更多`,"%0 of %1":`第 %0 步,共 %1 步`,"Cannot upload file:":`无法上传的文件:`,"Rich Text Editor. Editing area: %0":`富文本编辑器。编辑区域:%0`,"Insert with file manager":`使用文件管理器插入`,"Replace with file manager":`使用文件管理器替换`,"Insert image with file manager":`使用文件管理器插入图片`,"Replace image with file manager":`使用文件管理器替换图片`,File:`文件`,"With file manager":`通过文件管理器`,"Toggle caption off":`关闭表标题`,"Toggle caption on":`打开表标题`,"Content editing keystrokes":`内容编辑按键`,"These keyboard shortcuts allow for quick access to content editing features.":`这些键盘快捷键允许快速访问内容编辑功能。`,"User interface and content navigation keystrokes":`用户界面和内容导航按键`,"Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":`使用以下按键可以在 CKEditor 5 用户界面中进行更有效地导览。`,"Close contextual balloons, dropdowns, and dialogs":`关闭上下文气泡框、下拉菜单和对话框`,"Open the accessibility help dialog":`打开“无障碍辅助功能帮助”对话框`,"Move focus between form fields (inputs, buttons, etc.)":`在表单字段(输入、按钮等)之间移动焦点`,"Move focus to the menu bar, navigate between menu bars":`将焦点移到菜单栏,在菜单栏之间导航`,"Move focus to the toolbar, navigate between toolbars":`将焦点移至工具栏,在工具栏之间导览`,"Navigate through the toolbar or menu bar":`通过工具栏或菜单栏进行导航`,"Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":`执行当前聚焦的按钮。执行与编辑器内容交互的按钮将焦点返回到内容。`,Accept:`接受`,Paragraph:`段落`,"Color picker":`颜色选择器`,"Please try a different phrase or check the spelling.":`请尝试使用不同的短语或检查拼写。`,Source:`源`,Insert:`插入`,Update:`更新`,Back:`返回`,"Wrap text":`文字环绕`,"Break text":`文字断行`,Custom:`自定义`,Original:`原始大小`,"The value must not be empty.":`该值不能为空。`,"The value should be a plain number.":`该值应当为纯数字。`,"Insert code block":`插入代码块`,"Plain text":`纯文本`,"Leaving %0 code snippet":`正在退出 %0 代码片段`,"Entering %0 code snippet":`正在输入 %0 代码片段`,"Entering code snippet":`正在输入代码片段`,"Leaving code snippet":`正在退出代码片段`,"Code block":`代码块`,"Copy selected content":`复制选定的内容`,"Paste content":`粘贴内容`,"Paste content as plain text":`将内容粘贴为纯文本`,"Insert image or file":`插入图片或文件`,"Could not obtain resized image URL.":`无法获取重设大小的图片URL`,"Selecting resized image failed":`选择重设大小的图片失败`,"Could not insert image at the current position.":`无法在当前位置插入图片`,"Inserting image failed":`插入图片失败`,"Open file manager":`打开文件管理器`,"Cannot determine a category for the uploaded file.":`无法确定上传文件的类别。`,"Cannot access default workspace.":`无法访问默认工作区`,"You have no image editing permissions.":`您没有编辑图片的权限。`,"Edit image":`编辑图片`,"Processing the edited image.":`正在处理已编辑的图片。`,"Server failed to process the image.":`服务器未能处理图片。`,"Failed to determine category of edited image.":`未能确定已编辑图片的类别。`,Bookmark:`书签`,"Edit bookmark":`编辑书签`,"Remove bookmark":`删除书签`,"Bookmark name":`书签名称`,"Enter the bookmark name without spaces.":`输入书签名称,不带空格。`,"Bookmark must not be empty.":`书签不能为空。`,"Bookmark name cannot contain space characters.":`书签名称不能包含空格。`,"Bookmark name already exists.":`书签名称已存在。`,"bookmark widget":`书签小组件`,"Bookmark toolbar":`书签工具栏`,Bookmarks:`书签`,"No bookmarks available.":`无可用书签。`,"Scroll to bookmark":`滚动到书签`,"Block quote":`块引用`,Bold:`加粗`,Italic:`倾斜`,Underline:`下划线`,Code:`代码`,Strikethrough:`删除线`,Subscript:`下标`,Superscript:`上标`,"Italic text":`斜体文本`,"Move out of an inline code style":`摆脱内联代码风格`,"Bold text":`加粗字体`,"Underline text":`给文本添加下划线`,"Strikethrough text":`给文本添加删除线`,"Saving changes":`正在保存更改`,"Revert autoformatting action":`恢复自动格式化操作`,"Align left":`左对齐`,"Align right":`右对齐`,"Align center":`居中对齐`,Justify:`两端对齐`,"Text alignment":`对齐`,"Text alignment toolbar":`对齐工具栏`},getPluralForm(e){return 0}}},Tq={__name:`NoticeRichTextEditor`,props:li({disabled:{type:Boolean,default:!1}},{modelValue:{type:String,default:``},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=ki(e,`modelValue`),n={licenseKey:`GPL`,language:`zh-cn`,translations:[wq],plugins:[hU,DU,PU,qz,Qz,cB,rB,rU,iG,kB,yq,Cq],toolbar:{items:[`undo`,`redo`,`|`,`heading`,`|`,`bold`,`italic`,`underline`,`strikethrough`,`|`,`link`,`bulletedList`,`numberedList`,`blockQuote`,`insertTable`],shouldNotGroupWhenFull:!1},heading:{options:[{model:`paragraph`,title:`正文`,class:`ck-heading_paragraph`},{model:`heading2`,view:`h2`,title:`一级标题`,class:`ck-heading_heading2`},{model:`heading3`,view:`h3`,title:`二级标题`,class:`ck-heading_heading3`},{model:`heading4`,view:`h4`,title:`三级标题`,class:`ck-heading_heading4`}]},link:{addTargetToExternalLinks:!0,defaultProtocol:`https://`},table:{contentToolbar:[`tableColumn`,`tableRow`,`mergeTableCells`]},placeholder:`在此编写通知正文……`},r=z(()=>String(t.value||``).replace(/<[^>]*>/g,` `).replace(/ /g,` `).replace(/\s+/g,` `).trim().length);return(i,a)=>(N(),P(`div`,{class:ve([`notice-rich-editor`,{"is-disabled":e.disabled}])},[I(k(kb),{modelValue:t.value,"onUpdate:modelValue":a[0]||=e=>t.value=e,editor:k(sU),config:n,disabled:e.disabled},null,8,[`modelValue`,`editor`,`disabled`]),F(`footer`,null,[a[1]||=F(`span`,null,`支持标题、链接、列表、引用和表格;保存时会再次执行安全过滤。`,-1),F(`strong`,null,D(r.value)+` 字`,1)])],2))}},Eq={class:`admin-system-workspace`},Dq={key:0,class:`form-error`},Oq={key:1,class:`record-panel center-edit-picker`},kq={class:`chip-list`},Aq=[`onClick`],jq={key:0,class:`form-callout`},Mq={class:`notice-editor-studio__header`},Nq={class:`notice-editor-studio__identity`},Pq={class:`notice-editor-studio__body`},Fq={class:`notice-editor-studio__manuscript`},Iq={class:`notice-title-field`},Lq={class:`notice-editor-studio__settings`},Rq=[`value`],zq={class:`notice-pin-control`},Bq={class:`notice-editor-studio__actions`},Vq=[`disabled`],Hq=[`disabled`],Uq=[`disabled`],Wq={class:`record-panel notice-ledger-panel`},Gq={class:`ledger-toolbar ledger-toolbar--wide`},Kq=[`value`],qq={class:`table-scroll`},Jq=[`onClick`],Yq=[`href`],Xq=[`onClick`],Zq={key:0},Qq={class:`record-panel notice-ledger-panel`},$q={class:`ledger-toolbar ledger-toolbar--wide`},eJ=[`value`],tJ={class:`table-scroll`},nJ=[`onClick`],rJ={key:0},iJ={key:0},aJ=[`value`],oJ={class:`form-grid`},sJ=[`value`],cJ=[`disabled`],lJ=[`value`],uJ=[`disabled`],dJ=[`value`],fJ={class:`room-editor-list`},pJ={class:`form-grid`},mJ=[`onUpdate:modelValue`],hJ=[`onUpdate:modelValue`],gJ=[`onUpdate:modelValue`],_J=[`onUpdate:modelValue`],vJ=[`onUpdate:modelValue`],yJ=[`onUpdate:modelValue`],bJ=[`onClick`],xJ={class:`record-panel`},SJ={class:`ledger-toolbar ledger-toolbar--wide`},CJ=[`value`],wJ={class:`ledger-bulk`},TJ=[`disabled`],EJ={class:`table-scroll`},DJ=[`value`],OJ={class:`record-panel`},kJ={class:`ledger-toolbar ledger-toolbar--wide`},AJ={class:`ledger-bulk`},jJ=[`disabled`],MJ=[`disabled`],NJ={class:`table-scroll`},PJ=[`value`,`disabled`],FJ={key:0,class:`row-decision`},IJ=[`onUpdate:modelValue`],LJ=[`onClick`],RJ=[`onClick`],zJ={class:`ledger-toolbar ledger-toolbar--wide`},BJ=[`value`],VJ={class:`workflow-grid-vue`},HJ={class:`workflow-track-vue`},UJ=[`onUpdate:modelValue`],WJ=[`onClick`],GJ=[`onClick`],KJ=[`onClick`],qJ={key:5,class:`workflow-design-grid-vue`},JJ=[`onSubmit`],YJ=[`onClick`],XJ=[`onUpdate:modelValue`],ZJ=[`onUpdate:modelValue`],QJ=[`onUpdate:modelValue`],$J=[`onClick`],eY={class:`number-rule-layout-vue`},tY={class:`form-grid`},nY={class:`rule-segment-grid`},rY={__name:`AdminSystemWorkspace`,props:{page:{type:String,required:!0},data:{type:Object,default:()=>({})}},emits:[`reload`],setup(e,{emit:t}){let n=e,r=t,i=O(!1),a=O(``),o=O([]),s=O([]),c=Bt({}),l=Bt({id:``,category:`报名通知`,status:`draft`,title:``,summary:``,content:``,pinned:!1}),u=Bt({id:``,schoolId:``,code:``,name:``,provinceCode:``,cityCode:``,districtCode:``,address:``,managerName:``,managerPhone:``,contact:``,emergencyPhone:``,gateOpenTime:``,status:`active`,transport:``,notes:``,rooms:[{code:``,name:``,building:``,floor:``,capacity:30,seatPlan:``,roomType:`standard`,status:`active`,notes:``}]}),d=Bt({id:``,name:`固定报名号规则`,separator:`-`,year:!0,school_code:!0,gender:!1,literal:!1,literalValue:``,yearWidth:4,sequenceWidth:4}),f=z(()=>Pf.find(e=>e.code===u.provinceCode)?.cities||[]),p=z(()=>f.value.find(e=>e.code===u.cityCode)?.districts||[]),m=Sm(()=>n.data.centers||[],{filters:{status:(e,t)=>e.status===t,school:(e,t)=>e.schoolId===t},searchText:e=>[e.code,e.name,e.schoolName,e.address,e.managerName,e.managerPhone,...(e.rooms||[]).map(e=>`${e.code} ${e.name} ${e.building}`)].join(` `)}),h=Sm(()=>n.data.changeRequests||[],{filters:{status:(e,t)=>e.status===t,type:(e,t)=>e.requestType===t},searchText:e=>[e.name,e.code,e.schoolName,e.requestType,e.status].join(` `)}),g=Sm(()=>n.data.instances||[],{filters:{status:(e,t)=>e.status===t,type:(e,t)=>e.businessType===t},searchText:e=>[e.candidateName,e.centerName,e.schoolName,e.examName,e.className,e.assignee?.displayName,e.businessType].join(` `)}),_=Sm(()=>n.data.notices||[],{filters:{status:(e,t)=>e.status===t,category:(e,t)=>e.category===t},searchText:e=>[e.title,e.summary,e.category,e.author].join(` `)}),v=Sm(()=>n.data.publications||[],{filters:{visibility:(e,t)=>t===`visible`?S(e):!S(e),type:(e,t)=>e.sourceType===t},searchText:e=>[e.title,e.sourceType,e.examName,e.schoolName].join(` `)}),y=z(()=>[...new Set([`报名通知`,`考试须知`,`考点公告`,`成绩通知`,`系统公告`,...(n.data.notices||[]).map(e=>e.category)].filter(Boolean))]),b=z(()=>[...new Set((n.data.publications||[]).map(e=>e.sourceType).filter(Boolean))]);function x(e){return{plan:`招生计划`,qualification:`指标资格`,admission:`录取结果`,cutoff:`录取分数线`,reporting:`报到情况`}[e]||e}function S(e){return typeof e?.publicVisible==`boolean`?e.publicVisible:typeof e?.visible==`boolean`?e.visible:e?.status===`visible`}let C=z(()=>[...new Set((n.data.instances||[]).map(e=>e.businessType).filter(Boolean))]);function w(e,t,n=()=>!0){let r=t.filter(n).map(e=>e.id),i=Array.isArray(e)?e:e.value,a=r.length>0&&r.every(e=>i.includes(e))?i.filter(e=>!r.includes(e)):[...new Set([...i,...r])];Array.isArray(e)?e.splice(0,e.length,...a):e.value=a}async function T(e,t){i.value=!0,a.value=``;try{let n=await e();return t&&Ul.notify(t),r(`reload`),n}catch(e){return a.value=e.message,null}finally{i.value=!1}}function ee(){Object.assign(l,{id:``,category:`报名通知`,status:`draft`,title:``,summary:``,content:``,pinned:!1})}function te(e){Object.assign(l,{id:e.id,category:e.category,status:e.status,title:e.title,summary:e.summary||``,content:e.contentHtml||e.content||``,pinned:!!e.pinned}),window.scrollTo({top:0,behavior:`smooth`})}async function ne(){let e=l.content.replace(/<[^>]*>/g,` `).replace(/ /g,` `).replace(/\s+/g,` `).trim();if(!l.title.trim()||!e){a.value=`请填写通知标题和正文`;return}if(l.content.length>2e4){a.value=`通知正文内容过长,请精简至 20000 个字符以内`;return}let t=!!l.id;await T(()=>H(l.id?`/api/admin/notices/${l.id}`:`/api/admin/notices`,{method:l.id?`PATCH`:`POST`,body:{title:l.title.trim(),summary:l.summary.trim(),category:l.category,status:l.status,content:l.content,pinned:l.pinned}}),l.status===`published`?t?`已发布通知已更新`:`通知已发布`:t?`通知草稿已更新`:`通知草稿已保存`)&&ee()}function re(e){T(()=>H(`/api/admin/notices/${e.id}`,{method:`PATCH`,body:{status:e.status===`published`?`draft`:`published`}}),e.status===`published`?`通知已撤回`:`通知已发布`)}function ie(e){let t=S(e);T(()=>H(`/api/admin/publications/${e.sourceType}/${e.id}`,{method:`PATCH`,body:{publicVisible:!t}}),t?`系统公示已隐藏`:`系统公示已公开`)}function ae(){u.rooms.push({code:``,name:``,building:``,floor:``,capacity:30,seatPlan:``,roomType:`standard`,status:`active`,notes:``})}function oe(){Object.assign(u,{id:``,schoolId:``,code:``,name:``,provinceCode:``,cityCode:``,districtCode:``,address:``,managerName:``,managerPhone:``,contact:``,emergencyPhone:``,gateOpenTime:``,status:`active`,transport:``,notes:``,rooms:[{code:``,name:``,building:``,floor:``,capacity:30,seatPlan:``,roomType:`standard`,status:`active`,notes:``}]})}function se(e){Object.assign(u,{...e,id:e.id,rooms:(e.rooms||[]).map(e=>({...e}))}),window.scrollTo({top:0,behavior:`smooth`})}function ce(){let e=!!u.id;T(()=>H(e?`/api/admin/centers/${u.id}`:`/api/admin/centers`,{method:e?`PATCH`:`POST`,body:{...u,rooms:u.rooms.map(e=>({...e,capacity:Number(e.capacity)}))}}),e?`考点变更已提交审批`:`新考点档案已提交审批`)}function E(e,t){T(()=>H(`/api/admin/center-change-requests/${e.id}`,{method:`PATCH`,body:{status:t,reviewNote:c[e.id]||``}}),t===`approved`?`考点变更已通过`:`考点变更已退回`)}async function le({file:e,input:t}){await T(()=>H(`/api/admin/excel/centers`,{method:`POST`,headers:{"Content-Type":`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`},body:e}),`考点考场 Excel 已导入`),t.value=``}function ue(){Im(`centers`,o.value)}async function de(e){let t=(n.data.changeRequests||[]).filter(e=>s.value.includes(e.id)&&e.status===`pending`);if(!t.length)return;let o=window.prompt(e===`rejected`?`请填写统一退回原因`:`填写统一审批意见(可留空)`,``);if(o===null||e===`rejected`&&!o.trim())return;i.value=!0,a.value=``;let c=0;try{for(let n of t)await H(`/api/admin/center-change-requests/${n.id}`,{method:`PATCH`,body:{status:e,reviewNote:o}}),c+=1;Ul.notify(`已处理 ${c} 条考点变更申请`),s.value=[],r(`reload`)}catch(e){a.value=`${c} 条已完成;${e.message}`}finally{i.value=!1}}function fe(e){return e.businessType===`profile_change`?`/api/admin/candidates/${e.businessId}`:e.businessType===`registration_review`?`/api/admin/registrations/${e.businessId}`:e.businessType===`center_change`?`/api/admin/center-change-requests/${e.businessId}`:e.businessType===`candidate_account_batch`?`/api/admin/candidate-account-batches/${e.businessId}`:`/api/admin/score-appeals/${e.businessId}`}function pe(e,t){let n={status:t,reviewNote:c[e.id]||``};e.businessType===`score_appeal`&&t===`approved`&&(n.reviewedScore=Number(window.prompt(`请输入复议后的成绩`,e.appealResult?.score??``)||e.appealResult?.score)),T(()=>H(fe(e),{method:`PATCH`,body:n}),t===`approved`?`流程已通过当前步骤`:`流程已退回`)}function me(e){let t=window.prompt(`请输入目标管理员 ID`,``)||``;t&&T(()=>H(`/api/admin/workflow-instances/${e.id}/transfer`,{method:`PATCH`,body:{assigneeId:t,note:c[e.id]||``}}),`流程已转交`)}function he(e){T(()=>H(`/api/admin/workflows/${e.businessType}`,{method:`PUT`,body:{name:e.name,steps:e.steps.map(e=>({name:e.name,adminLevel:e.adminLevel}))}}),`审批流程已保存`)}function ge(e){e.steps.push({name:`新增审批步骤`,adminLevel:`school`,position:e.steps.length+1})}function _e(){let e=[{type:`year`,include:d.year,width:Number(d.yearWidth)},{type:`school_code`,include:d.school_code},{type:`gender`,include:d.gender},{type:`literal`,include:d.literal,value:d.literalValue},{type:`sequence`,include:!0,width:Number(d.sequenceWidth)}].filter(e=>e.include).map((e,t)=>({type:e.type,position:t+1,value:e.value||``,width:e.width||0}));T(()=>H(`/api/admin/number-rules`,{method:`POST`,body:{id:d.id||void 0,name:d.name,separator:d.separator,segments:e}}),`报名号规则已启用`)}if(n.page===`number-rules`&&n.data.activeRule){let e=n.data.activeRule;d.id=e.id,d.name=e.name,d.separator=e.separator;for(let t of e.segments||[])d[t.type]=!0,t.type===`literal`&&(d.literalValue=t.value),t.type===`year`&&(d.yearWidth=t.width),t.type===`sequence`&&(d.sequenceWidth=t.width)}return(t,n)=>(N(),P(`div`,Eq,[a.value?(N(),P(`div`,Dq,D(a.value),1)):R(``,!0),e.page===`centers`&&e.data.centers?.length?(N(),P(`section`,Oq,[F(`header`,null,[n[65]||=F(`div`,null,[F(`h2`,null,`维护已有考点`),F(`p`,null,`选择考点后,下面的档案表单会切换为变更申请。`)],-1),u.id?(N(),P(`button`,{key:0,class:`app-button`,type:`button`,onClick:oe},` 取消编辑 `)):R(``,!0)]),F(`div`,kq,[(N(!0),P(M,null,j(e.data.centers,e=>(N(),P(`button`,{key:e.id,type:`button`,class:ve({active:u.id===e.id}),onClick:t=>se(e)},D(e.code)+` · `+D(e.name),11,Aq))),128))]),u.id?(N(),P(`div`,jq,[F(`strong`,null,`正在提交“`+D(u.name)+`”的变更`,1),n[66]||=F(`p`,null,`审批通过前,当前正式考点档案不会变化。`,-1)])):R(``,!0)])):R(``,!0),e.page===`notices`?(N(),P(M,{key:2},[F(`form`,{class:`business-form notice-editor-vue notice-editor-studio`,onSubmit:ks(ne,[`prevent`])},[F(`header`,Mq,[F(`div`,null,[n[67]||=F(`p`,null,`官方通知发布台`,-1),F(`h2`,null,D(l.id?`编辑人工通知`:`起草新的通知公告`),1),n[68]||=F(`span`,null,`正文由 CKEditor 编辑,发布前由服务端统一清理不安全内容。`,-1)]),F(`div`,Nq,[F(`small`,null,D(l.id?`正在修改`:`新建文稿`),1),F(`strong`,null,D(l.id||`尚未生成文号`),1)])]),F(`div`,Pq,[F(`section`,Fq,[F(`label`,Iq,[n[69]||=F(`span`,null,`通知标题`,-1),A(F(`input`,{"onUpdate:modelValue":n[0]||=e=>l.title=e,maxlength:`120`,placeholder:`输入完整、明确的通知标题`,required:``},null,512),[[B,l.title]])]),F(`label`,null,[n[70]||=F(`span`,null,`首页摘要`,-1),A(F(`textarea`,{"onUpdate:modelValue":n[1]||=e=>l.summary=e,rows:`2`,maxlength:`260`,placeholder:`用于首页和公告目录,留空时将自动截取正文`},null,512),[[B,l.summary]])]),n[71]||=F(`label`,{class:`notice-editor-label`},[F(`span`,null,`通知正文`)],-1),I(Tq,{modelValue:l.content,"onUpdate:modelValue":n[2]||=e=>l.content=e,disabled:i.value},null,8,[`modelValue`,`disabled`])]),F(`aside`,Lq,[n[77]||=F(`div`,null,[F(`small`,null,`发布设置`),F(`h3`,null,`公开范围与状态`),F(`p`,null,`保存草稿不会出现在公开首页;立即发布后公众可直接查看。`)],-1),F(`label`,null,[n[72]||=F(`span`,null,`公告分类`,-1),A(F(`select`,{"onUpdate:modelValue":n[3]||=e=>l.category=e},[(N(!0),P(M,null,j(y.value,e=>(N(),P(`option`,{key:e,value:e},D(e),9,Rq))),128))],512),[[V,l.category]])]),F(`label`,null,[n[74]||=F(`span`,null,`保存后的状态`,-1),A(F(`select`,{"onUpdate:modelValue":n[4]||=e=>l.status=e},[...n[73]||=[F(`option`,{value:`draft`},`草稿,不公开`,-1),F(`option`,{value:`published`},`正式发布`,-1)]],512),[[V,l.status]])]),F(`label`,zq,[A(F(`input`,{"onUpdate:modelValue":n[5]||=e=>l.pinned=e,type:`checkbox`},null,512),[[Ss,l.pinned]]),n[75]||=F(`span`,null,[F(`strong`,null,`公开首页置顶`),F(`small`,null,`仅对已发布通知生效`)],-1)]),F(`div`,{class:ve([`notice-release-state`,{"is-published":l.status===`published`}])},[n[76]||=F(`i`,null,null,-1),F(`span`,null,[F(`strong`,null,D(l.status===`published`?`将正式发布`:`将保存为草稿`),1),F(`small`,null,D(l.status===`published`?`提交后立即进入公开公告目录`:`可继续编辑,不会对公众显示`),1)])],2)])]),F(`footer`,Bq,[l.id?(N(),P(`button`,{key:0,type:`button`,class:`app-button`,disabled:i.value,onClick:ee},` 取消编辑 `,8,Vq)):R(``,!0),F(`button`,{type:`button`,class:`app-button`,disabled:i.value,onClick:ee},` 清空文稿 `,8,Hq),F(`button`,{class:`app-button app-button--primary`,disabled:i.value},D(i.value?`正在保存…`:l.status===`published`?l.id?`更新已发布通知`:`发布通知`:l.id?`更新草稿`:`保存草稿`),9,Uq)])],32),F(`section`,Wq,[F(`header`,null,[F(`div`,null,[n[78]||=F(`h2`,null,`人工通知`,-1),F(`p`,null,` 筛选结果 `+D(k(_).total)+` / 共 `+D(e.data.notices?.length||0)+` 条 `,1)])]),F(`div`,Gq,[F(`label`,null,[n[79]||=F(`span`,null,`搜索通知`,-1),A(F(`input`,{"onUpdate:modelValue":n[6]||=e=>k(_).query=e,placeholder:`标题、摘要、作者`},null,512),[[B,k(_).query]])]),F(`label`,null,[n[81]||=F(`span`,null,`发布状态`,-1),A(F(`select`,{"onUpdate:modelValue":n[7]||=e=>k(_).filters.status=e},[...n[80]||=[F(`option`,{value:``},`全部状态`,-1),F(`option`,{value:`draft`},`草稿`,-1),F(`option`,{value:`published`},`已发布`,-1)]],512),[[V,k(_).filters.status]])]),F(`label`,null,[n[83]||=F(`span`,null,`公告分类`,-1),A(F(`select`,{"onUpdate:modelValue":n[8]||=e=>k(_).filters.category=e},[n[82]||=F(`option`,{value:``},`全部分类`,-1),(N(!0),P(M,null,j(y.value,e=>(N(),P(`option`,{key:e,value:e},D(e),9,Kq))),128))],512),[[V,k(_).filters.category]])]),F(`button`,{type:`button`,class:`table-action`,onClick:n[9]||=(...e)=>k(_).clear&&k(_).clear(...e)},` 清除筛选 `)]),F(`div`,qq,[F(`table`,null,[n[85]||=F(`thead`,null,[F(`tr`,null,[F(`th`,null,`标题`),F(`th`,null,`分类`),F(`th`,null,`状态`),F(`th`,null,`置顶`),F(`th`,null,`发布时间`),F(`th`,null,`操作`)])],-1),F(`tbody`,null,[(N(!0),P(M,null,j(k(_).rows,e=>(N(),P(`tr`,{key:e.id},[F(`td`,null,[L(D(e.title),1),F(`small`,null,D(e.summary),1)]),F(`td`,null,D(e.category),1),F(`td`,null,[I(Rd,{value:e.status},null,8,[`value`])]),F(`td`,null,D(e.pinned?`是`:`否`),1),F(`td`,null,D(k(nu)(e.publishAt||e.createdAt,!0)),1),F(`td`,null,[F(`button`,{type:`button`,class:`table-action`,onClick:t=>te(e)},` 编辑`,8,Jq),e.status===`published`?(N(),P(`a`,{key:0,class:`table-action`,href:`/announcements/`+e.id,target:`_blank`,rel:`noopener`},`预览`,8,Yq)):R(``,!0),F(`button`,{type:`button`,class:`table-action`,onClick:t=>re(e)},D(e.status===`published`?`撤回`:`发布`),9,Xq)])]))),128)),k(_).rows.length?R(``,!0):(N(),P(`tr`,Zq,[...n[84]||=[F(`td`,{colspan:`6`,class:`ledger-empty`},`没有符合条件的人工通知`,-1)]]))])])]),I(bm,{page:k(_).page,"onUpdate:page":n[10]||=e=>k(_).page=e,"page-size":k(_).pageSize,"onUpdate:pageSize":n[11]||=e=>k(_).pageSize=e,total:k(_).total},null,8,[`page`,`page-size`,`total`])]),F(`section`,Qq,[F(`header`,null,[F(`div`,null,[n[86]||=F(`h2`,null,`系统自动公示`,-1),F(`p`,null,` 筛选结果 `+D(k(v).total)+` / 共 `+D(e.data.publications?.length||0)+` 条;业务事实不可编辑。 `,1)])]),F(`div`,$q,[F(`label`,null,[n[87]||=F(`span`,null,`搜索公示`,-1),A(F(`input`,{"onUpdate:modelValue":n[12]||=e=>k(v).query=e,placeholder:`标题、考试、学校`},null,512),[[B,k(v).query]])]),F(`label`,null,[n[89]||=F(`span`,null,`公示类型`,-1),A(F(`select`,{"onUpdate:modelValue":n[13]||=e=>k(v).filters.type=e},[n[88]||=F(`option`,{value:``},`全部类型`,-1),(N(!0),P(M,null,j(b.value,e=>(N(),P(`option`,{key:e,value:e},D(x(e)),9,eJ))),128))],512),[[V,k(v).filters.type]])]),F(`label`,null,[n[91]||=F(`span`,null,`公开状态`,-1),A(F(`select`,{"onUpdate:modelValue":n[14]||=e=>k(v).filters.visibility=e},[...n[90]||=[F(`option`,{value:``},`全部状态`,-1),F(`option`,{value:`visible`},`正在公开`,-1),F(`option`,{value:`hidden`},`已隐藏`,-1)]],512),[[V,k(v).filters.visibility]])]),F(`button`,{type:`button`,class:`table-action`,onClick:n[15]||=(...e)=>k(v).clear&&k(v).clear(...e)},` 清除筛选 `)]),F(`div`,tJ,[F(`table`,null,[n[94]||=F(`thead`,null,[F(`tr`,null,[F(`th`,null,`标题`),F(`th`,null,`类型`),F(`th`,null,`生成方式`),F(`th`,null,`公开状态`),F(`th`,null,`操作`)])],-1),F(`tbody`,null,[(N(!0),P(M,null,j(k(v).rows,e=>(N(),P(`tr`,{key:e.sourceType+`-`+e.id},[F(`td`,null,D(e.title),1),F(`td`,null,D(x(e.sourceType)),1),n[92]||=F(`td`,null,`系统自动生成`,-1),F(`td`,null,[F(`span`,{class:ve([`status-badge`,S(e)?`is-approved`:`is-archived`])},D(S(e)?`正在公开`:`已隐藏`),3)]),F(`td`,null,[F(`button`,{type:`button`,class:`table-action`,onClick:t=>ie(e)},D(S(e)?`隐藏`:`公开`),9,nJ)])]))),128)),k(v).rows.length?R(``,!0):(N(),P(`tr`,rJ,[...n[93]||=[F(`td`,{colspan:`5`,class:`ledger-empty`},`没有符合条件的系统公示`,-1)]]))])])]),I(bm,{page:k(v).page,"onUpdate:page":n[16]||=e=>k(v).page=e,"page-size":k(v).pageSize,"onUpdate:pageSize":n[17]||=e=>k(v).pageSize=e,total:k(v).total},null,8,[`page`,`page-size`,`total`])])],64)):e.page===`centers`?(N(),P(M,{key:3},[I(fm,{resource:`centers`,label:`考点考场档案`,onImport:le}),F(`form`,{class:`business-form center-editor-vue`,onSubmit:ks(ce,[`prevent`])},[n[120]||=F(`p`,null,`受控考点档案`,-1),n[121]||=F(`h2`,null,`提交新考点档案`,-1),n[122]||=F(`span`,null,`提交后进入考点考场变更审批,通过前不会改动正式档案。`,-1),k(U).state.user?.adminLevel===`super`?(N(),P(`label`,iJ,[n[96]||=F(`span`,null,`所属学校`,-1),A(F(`select`,{"onUpdate:modelValue":n[18]||=e=>u.schoolId=e,required:``},[n[95]||=F(`option`,{value:``},`请选择`,-1),(N(!0),P(M,null,j(e.data.schools,e=>(N(),P(`option`,{key:e.id,value:e.id},D(e.name),9,aJ))),128))],512),[[V,u.schoolId]])])):R(``,!0),F(`div`,oJ,[F(`label`,null,[n[97]||=F(`span`,null,`考点代码`,-1),A(F(`input`,{"onUpdate:modelValue":n[19]||=e=>u.code=e,required:``},null,512),[[B,u.code]])]),F(`label`,null,[n[98]||=F(`span`,null,`考点名称`,-1),A(F(`input`,{"onUpdate:modelValue":n[20]||=e=>u.name=e,required:``},null,512),[[B,u.name]])]),F(`label`,null,[n[100]||=F(`span`,null,`省份`,-1),A(F(`select`,{"onUpdate:modelValue":n[21]||=e=>u.provinceCode=e,required:``,onChange:n[22]||=e=>{u.cityCode=``,u.districtCode=``}},[n[99]||=F(`option`,{value:``},`请选择`,-1),(N(!0),P(M,null,j(k(Pf),e=>(N(),P(`option`,{key:e.code,value:e.code},D(e.name),9,sJ))),128))],544),[[V,u.provinceCode]])]),F(`label`,null,[n[102]||=F(`span`,null,`城市`,-1),A(F(`select`,{"onUpdate:modelValue":n[23]||=e=>u.cityCode=e,required:``,disabled:!u.provinceCode,onChange:n[24]||=e=>u.districtCode=``},[n[101]||=F(`option`,{value:``},`请选择`,-1),(N(!0),P(M,null,j(f.value,e=>(N(),P(`option`,{key:e.code,value:e.code},D(e.name),9,lJ))),128))],40,cJ),[[V,u.cityCode]])]),F(`label`,null,[n[104]||=F(`span`,null,`区县`,-1),A(F(`select`,{"onUpdate:modelValue":n[25]||=e=>u.districtCode=e,required:``,disabled:!u.cityCode},[n[103]||=F(`option`,{value:``},`请选择`,-1),(N(!0),P(M,null,j(p.value,e=>(N(),P(`option`,{key:e.code,value:e.code},D(e.name),9,dJ))),128))],8,uJ),[[V,u.districtCode]])]),F(`label`,null,[n[105]||=F(`span`,null,`详细地址`,-1),A(F(`input`,{"onUpdate:modelValue":n[26]||=e=>u.address=e,required:``},null,512),[[B,u.address]])]),F(`label`,null,[n[106]||=F(`span`,null,`负责人`,-1),A(F(`input`,{"onUpdate:modelValue":n[27]||=e=>u.managerName=e},null,512),[[B,u.managerName]])]),F(`label`,null,[n[107]||=F(`span`,null,`负责人手机`,-1),A(F(`input`,{"onUpdate:modelValue":n[28]||=e=>u.managerPhone=e},null,512),[[B,u.managerPhone]])]),F(`label`,null,[n[108]||=F(`span`,null,`值班电话`,-1),A(F(`input`,{"onUpdate:modelValue":n[29]||=e=>u.contact=e},null,512),[[B,u.contact]])]),F(`label`,null,[n[109]||=F(`span`,null,`应急电话`,-1),A(F(`input`,{"onUpdate:modelValue":n[30]||=e=>u.emergencyPhone=e},null,512),[[B,u.emergencyPhone]])]),F(`label`,null,[n[110]||=F(`span`,null,`开放时间`,-1),A(F(`input`,{"onUpdate:modelValue":n[31]||=e=>u.gateOpenTime=e,type:`time`},null,512),[[B,u.gateOpenTime]])])]),F(`label`,null,[n[111]||=F(`span`,null,`交通与入场提示`,-1),A(F(`textarea`,{"onUpdate:modelValue":n[32]||=e=>u.transport=e},null,512),[[B,u.transport]])]),F(`section`,fJ,[F(`header`,null,[n[112]||=F(`strong`,null,`考场明细`,-1),F(`button`,{type:`button`,onClick:ae},`+ 添加考场`)]),(N(!0),P(M,null,j(u.rooms,(e,t)=>(N(),P(`article`,{key:t},[F(`div`,pJ,[F(`label`,null,[n[113]||=F(`span`,null,`场地代码`,-1),A(F(`input`,{"onUpdate:modelValue":t=>e.code=t,required:``},null,8,mJ),[[B,e.code]])]),F(`label`,null,[n[114]||=F(`span`,null,`考场名称`,-1),A(F(`input`,{"onUpdate:modelValue":t=>e.name=t,required:``},null,8,hJ),[[B,e.name]])]),F(`label`,null,[n[115]||=F(`span`,null,`楼栋`,-1),A(F(`input`,{"onUpdate:modelValue":t=>e.building=t,required:``},null,8,gJ),[[B,e.building]])]),F(`label`,null,[n[116]||=F(`span`,null,`楼层`,-1),A(F(`input`,{"onUpdate:modelValue":t=>e.floor=t},null,8,_J),[[B,e.floor]])]),F(`label`,null,[n[117]||=F(`span`,null,`容量`,-1),A(F(`input`,{"onUpdate:modelValue":t=>e.capacity=t,type:`number`,min:`1`,required:``},null,8,vJ),[[B,e.capacity]])]),F(`label`,null,[n[119]||=F(`span`,null,`考场类型`,-1),A(F(`select`,{"onUpdate:modelValue":t=>e.roomType=t},[...n[118]||=[F(`option`,{value:`standard`},`标准考场`,-1),F(`option`,{value:`computer`},`机考考场`,-1),F(`option`,{value:`accessible`},`无障碍考场`,-1),F(`option`,{value:`spare`},`备用考场`,-1)]],8,yJ),[[V,e.roomType]])])]),F(`button`,{type:`button`,onClick:e=>u.rooms.splice(t,1)},` 移除 `,8,bJ)]))),128))]),n[123]||=F(`button`,{class:`app-button app-button--primary`},`提交审批`,-1)],32),F(`section`,xJ,[F(`header`,null,[F(`div`,null,[n[124]||=F(`h2`,null,`正式考点与考场`,-1),F(`p`,null,` 筛选结果 `+D(k(m).total)+` / 共 `+D(e.data.centers?.length||0)+` 个考点 `,1)])]),F(`div`,SJ,[F(`label`,null,[n[125]||=F(`span`,null,`关键词`,-1),A(F(`input`,{"onUpdate:modelValue":n[33]||=e=>k(m).query=e,placeholder:`代码、考点、学校、地址、负责人、考场`},null,512),[[B,k(m).query]])]),F(`label`,null,[n[127]||=F(`span`,null,`所属学校`,-1),A(F(`select`,{"onUpdate:modelValue":n[34]||=e=>k(m).filters.school=e},[n[126]||=F(`option`,{value:``},`全部学校`,-1),(N(!0),P(M,null,j(e.data.schools,e=>(N(),P(`option`,{key:e.id,value:e.id},D(e.name),9,CJ))),128))],512),[[V,k(m).filters.school]])]),F(`label`,null,[n[129]||=F(`span`,null,`状态`,-1),A(F(`select`,{"onUpdate:modelValue":n[35]||=e=>k(m).filters.status=e},[...n[128]||=[F(`option`,{value:``},`全部状态`,-1),F(`option`,{value:`active`},`启用`,-1),F(`option`,{value:`inactive`},`停用`,-1)]],512),[[V,k(m).filters.status]])]),F(`button`,{class:`table-action`,onClick:n[36]||=(...e)=>k(m).clear&&k(m).clear(...e)},` 清除筛选 `)]),F(`div`,wJ,[F(`label`,null,[F(`input`,{type:`checkbox`,onChange:n[37]||=e=>w(o.value,k(m).rows)},null,32),n[130]||=L(` 选择当前页`,-1)]),F(`strong`,null,`已选 `+D(o.value.length)+` 个`,1),F(`button`,{disabled:!o.value.length,onClick:ue},` 导出选中项 XLSX `,8,TJ)]),F(`div`,EJ,[F(`table`,null,[n[131]||=F(`thead`,null,[F(`tr`,null,[F(`th`,null,`选择`),F(`th`,null,`考点`),F(`th`,null,`学校`),F(`th`,null,`地址`),F(`th`,null,`考场 / 席位`),F(`th`,null,`负责人`),F(`th`,null,`状态`)])],-1),F(`tbody`,null,[(N(!0),P(M,null,j(k(m).rows,e=>(N(),P(`tr`,{key:e.id},[F(`td`,null,[A(F(`input`,{"onUpdate:modelValue":n[38]||=e=>o.value=e,type:`checkbox`,value:e.id},null,8,DJ),[[Ss,o.value]])]),F(`td`,null,[L(D(e.name),1),F(`small`,null,D(e.code),1)]),F(`td`,null,D(e.schoolName),1),F(`td`,null,D(e.address),1),F(`td`,null,D(e.rooms?.length)+` 个 / `+D(e.totalCapacity)+` 席 `,1),F(`td`,null,[L(D(e.managerName),1),F(`small`,null,D(e.managerPhone),1)]),F(`td`,null,[I(Rd,{value:e.status},null,8,[`value`])])]))),128))])])]),I(bm,{page:k(m).page,"onUpdate:page":n[39]||=e=>k(m).page=e,"page-size":k(m).pageSize,"onUpdate:pageSize":n[40]||=e=>k(m).pageSize=e,total:k(m).total},null,8,[`page`,`page-size`,`total`])]),F(`section`,OJ,[F(`header`,null,[F(`div`,null,[n[132]||=F(`h2`,null,`考点变更审批台账`,-1),F(`p`,null,` 筛选结果 `+D(k(h).total)+` / 共 `+D(e.data.changeRequests?.length||0)+` 条 `,1)])]),F(`div`,kJ,[F(`label`,null,[n[133]||=F(`span`,null,`关键词`,-1),A(F(`input`,{"onUpdate:modelValue":n[41]||=e=>k(h).query=e,placeholder:`考点、代码、学校`},null,512),[[B,k(h).query]])]),F(`label`,null,[n[135]||=F(`span`,null,`申请类型`,-1),A(F(`select`,{"onUpdate:modelValue":n[42]||=e=>k(h).filters.type=e},[...n[134]||=[F(`option`,{value:``},`全部类型`,-1),F(`option`,{value:`create`},`新增`,-1),F(`option`,{value:`update`},`修改`,-1)]],512),[[V,k(h).filters.type]])]),F(`label`,null,[n[137]||=F(`span`,null,`审批状态`,-1),A(F(`select`,{"onUpdate:modelValue":n[43]||=e=>k(h).filters.status=e},[...n[136]||=[F(`option`,{value:``},`全部状态`,-1),F(`option`,{value:`pending`},`待审批`,-1),F(`option`,{value:`approved`},`已通过`,-1),F(`option`,{value:`rejected`},`已退回`,-1)]],512),[[V,k(h).filters.status]])])]),F(`div`,AJ,[F(`label`,null,[F(`input`,{type:`checkbox`,onChange:n[44]||=e=>w(s.value,k(h).rows,e=>e.status===`pending`)},null,32),n[138]||=L(` 选择当前页待审项`,-1)]),F(`strong`,null,`已选 `+D(s.value.length)+` 条`,1),F(`button`,{disabled:!s.value.length||i.value,onClick:n[45]||=e=>de(`rejected`)},` 批量退回`,8,jJ),F(`button`,{disabled:!s.value.length||i.value,onClick:n[46]||=e=>de(`approved`)},` 批量通过 `,8,MJ)]),F(`div`,NJ,[F(`table`,null,[n[139]||=F(`thead`,null,[F(`tr`,null,[F(`th`,null,`选择`),F(`th`,null,`类型`),F(`th`,null,`考点 / 学校`),F(`th`,null,`考场`),F(`th`,null,`状态`),F(`th`,null,`审批`)])],-1),F(`tbody`,null,[(N(!0),P(M,null,j(k(h).rows,e=>(N(),P(`tr`,{key:e.id},[F(`td`,null,[A(F(`input`,{"onUpdate:modelValue":n[47]||=e=>s.value=e,type:`checkbox`,value:e.id,disabled:e.status!==`pending`},null,8,PJ),[[Ss,s.value]])]),F(`td`,null,D(e.requestType===`create`?`新增`:`修改`),1),F(`td`,null,[L(D(e.name),1),F(`small`,null,D(e.schoolName),1)]),F(`td`,null,D(e.rooms?.length)+` 个`,1),F(`td`,null,[I(Rd,{value:e.status},null,8,[`value`])]),F(`td`,null,[e.status===`pending`?(N(),P(`div`,FJ,[A(F(`input`,{"onUpdate:modelValue":t=>c[e.id]=t,placeholder:`审批意见`},null,8,IJ),[[B,c[e.id]]]),F(`button`,{onClick:t=>E(e,`rejected`)},` 退回`,8,LJ),F(`button`,{onClick:t=>E(e,`approved`)},` 通过 `,8,RJ)])):R(``,!0)])]))),128))])])]),I(bm,{page:k(h).page,"onUpdate:page":n[48]||=e=>k(h).page=e,"page-size":k(h).pageSize,"onUpdate:pageSize":n[49]||=e=>k(h).pageSize=e,total:k(h).total},null,8,[`page`,`page-size`,`total`])])],64)):e.page===`flows`?(N(),P(M,{key:4},[F(`div`,zJ,[F(`label`,null,[n[140]||=F(`span`,null,`关键词`,-1),A(F(`input`,{"onUpdate:modelValue":n[50]||=e=>k(g).query=e,placeholder:`考生、学校、考试、责任人或流程`},null,512),[[B,k(g).query]])]),F(`label`,null,[n[142]||=F(`span`,null,`业务类型`,-1),A(F(`select`,{"onUpdate:modelValue":n[51]||=e=>k(g).filters.type=e},[n[141]||=F(`option`,{value:``},`全部类型`,-1),(N(!0),P(M,null,j(C.value,e=>(N(),P(`option`,{key:e,value:e},D(k(Pd)(e)),9,BJ))),128))],512),[[V,k(g).filters.type]])]),F(`label`,null,[n[144]||=F(`span`,null,`流程状态`,-1),A(F(`select`,{"onUpdate:modelValue":n[52]||=e=>k(g).filters.status=e},[...n[143]||=[F(`option`,{value:``},`全部状态`,-1),F(`option`,{value:`pending`},`处理中`,-1),F(`option`,{value:`approved`},`已通过`,-1),F(`option`,{value:`rejected`},`已退回`,-1)]],512),[[V,k(g).filters.status]])]),F(`button`,{class:`table-action`,onClick:n[53]||=(...e)=>k(g).clear&&k(g).clear(...e)},` 清除筛选 `)]),F(`section`,VJ,[(N(!0),P(M,null,j(k(g).rows,e=>(N(),P(`article`,{key:e.id,class:`record-panel flow-card-vue`},[F(`header`,null,[F(`div`,null,[F(`span`,null,D(k(Pd)(e.businessType)),1),F(`h2`,null,D(e.candidateName||e.centerName||e.schoolName||e.id),1),F(`p`,null,D(e.examName)+` `+D(e.className),1)]),I(Rd,{value:e.status},null,8,[`value`])]),F(`div`,HJ,[(N(!0),P(M,null,j(e.steps,t=>(N(),P(`span`,{key:t.position,class:ve({done:t.position