2 lines
5.9 KiB
JavaScript
2 lines
5.9 KiB
JavaScript
import{c as e,w as t,s as a,n as s,a as r,i as n,o as i,b as l,S as o,d as g,t as c,e as u,F as d,r as h,f as m,g as p,h as f,j as P}from"./index-BeUtwrrb.js";import{_,g as x,r as b}from"./_plugin-vue_export-helper.C77rDQpE.js";const y=_({data:()=>({agreements:[],loading:!1,errorMessage:"",currentPage:1,pageSize:10,total:null,hasNextPage:!1}),computed:{totalPages(){return null===this.total?this.currentPage:Math.max(1,Math.ceil(this.total/this.pageSize))},totalPagesText(){return null!==this.total?String(this.totalPages):this.hasNextPage?this.currentPage+"+":String(this.currentPage)},canPrevPage(){return this.currentPage>1},canNextPage(){return null!==this.total?this.currentPage<this.totalPages:this.hasNextPage},showPagination(){return this.currentPage>1||this.canNextPage||null!==this.total&&this.total>this.pageSize}},onLoad(e={}){b(e.token?"?token="+encodeURIComponent(e.token):""),r({title:"旧版协议"}),this.loadAgreements(1)},methods:{async loadAgreements(e=this.currentPage){if(this.loading)return;const t=Math.max(1,Number(e)||1);this.loading=!0,this.errorMessage="";try{const e=await x({page:t,limit:this.pageSize}),a=this.normalizeList(e),s=this.resolvePagination(e,a.length,t);this.currentPage=t,this.agreements=a,this.total=s.total,this.hasNextPage=s.hasNextPage}catch(a){this.errorMessage=this.getErrorMessage(a,"协议加载失败,点击重试")}finally{this.loading=!1}},normalizeList(e){const t=this.unwrapPayload(e);return this.pickList(t).map(e=>this.normalizeAgreementItem(e)).filter(e=>""!==e.id)},unwrapPayload:e=>e&&"object"==typeof e&&void 0!==e.data?e.data:e,pickList(e){if(Array.isArray(e))return e;if(!e||"object"!=typeof e)return[];const t=[e.list,e.data,e.data&&e.data.list,e.data&&e.data.rows,e.data&&e.data.records,e.rows,e.records,e.result,e.result&&e.result.list];for(let a=0;a<t.length;a+=1)if(Array.isArray(t[a]))return t[a];return[]},resolvePagination(e,t,a){const s=this.collectPaginationSources(e),r=this.pickNumber(s,["total","count","total_count","totalCount","total_num","totalNum"]),n=this.pickNumber(s,["limit","pageSize","page_size","per_page","perPage"])||this.pageSize,i=this.pickValue(s,["has_more","hasMore","has_next","hasNext"]);let l=!1;return l=null!==r?a<Math.max(1,Math.ceil(r/n)):void 0!==i?!0===i||1===i||"1"===i:t>=n,{total:r,hasNextPage:l}},collectPaginationSources(e){const t=[],a=[e],s=[];for(;a.length&&t.length<12;){const e=a.shift();e&&"object"==typeof e&&-1===s.indexOf(e)&&(s.push(e),t.push(e),["data","result","page","pagination","meta"].forEach(t=>{e[t]&&"object"==typeof e[t]&&a.push(e[t])}))}return t},pickNumber(e,t){const a=this.pickValue(e,t);if(null==a||""===a)return null;const s=Number(a);return Number.isFinite(s)?s:null},pickValue(e,t){for(let a=0;a<e.length;a+=1){const s=e[a];for(let e=0;e<t.length;e+=1){const a=t[e];if(Object.prototype.hasOwnProperty.call(s,a))return s[a]}}},normalizeAgreementItem(e){e=e||{};const t=this.toText(e.id||e.contract_id||e.agreement_id);return{id:t,title:this.toText(e.title||e.name||e.contract_name||e.agreement_name||e.content_name||"未命名"),version:this.toText(e.version||e.version_name||e.contract_version||e.edition||e.v||(t?"id"+t:"")),date:this.formatDate(e.date||e.release_time||e.publish_time||e.create_time||e.add_time||e.updated_at||e.update_time)}},formatDate(e){if(null==e||""===e)return"";if("number"==typeof e){const t=new Date(e>1e11?e:1e3*e);if(!Number.isNaN(t.getTime()))return this.padDate(t)}const t=this.toText(e);return/^\d+$/.test(t)?this.formatDate(Number(t)):t.split(" ")[0].replace(/-/g,"年").replace(/^(\d{4})年(\d{2})年(\d{2})$/,"$1年$2月$3日")},padDate(e){const t=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0");return e.getFullYear()+"年"+t+"月"+a+"日"},toText:e=>null==e?"":String(e).trim(),getErrorMessage:(e,t)=>e&&e.msg?e.msg:e&&e.message?e.message:"string"==typeof e?e:t,changePage(e){e<1||this.loading||e>this.currentPage&&!this.canNextPage||this.loadAgreements(e)},openPreview(e){e.id?s({url:`/pages/agreement/preview/index?id=${encodeURIComponent(e.id)}`}):a({title:"协议ID为空",icon:"none"})}}},[["render",function(a,s,r,_,x,b){const y=n,k=m,N=f,v=o;return i(),e(y,{class:"agreement-page"},{default:t(()=>[l(v,{class:"agreement-scroll","scroll-y":""},{default:t(()=>[l(y,{class:"screen list-screen"},{default:t(()=>[x.loading?(i(),e(y,{key:0,class:"state-text"},{default:t(()=>[g("加载中...")]),_:1})):x.errorMessage?(i(),e(y,{key:1,class:"state-text",onClick:b.loadAgreements},{default:t(()=>[g(c(x.errorMessage),1)]),_:1},8,["onClick"])):(i(),e(y,{key:2,class:"list-content"},{default:t(()=>[x.agreements.length?(i(),e(y,{key:1,class:"agreement-table"},{default:t(()=>[(i(!0),u(d,null,h(x.agreements,a=>(i(),e(y,{key:a.id,class:"agreement-row","hover-class":"row-hover",onClick:e=>b.openPreview(a)},{default:t(()=>[l(y,{class:"agreement-cell"},{default:t(()=>[l(y,{class:"agreement-info"},{default:t(()=>[l(k,{class:"agreement-name"},{default:t(()=>[g(c(a.title),1)]),_:2},1024),a.date?(i(),e(k,{key:0,class:"agreement-date"},{default:t(()=>[g(c(a.date)+" 更新",1)]),_:2},1024)):p("",!0)]),_:2},1024),l(k,{class:"view-button"},{default:t(()=>[g("查看")]),_:1})]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})):(i(),e(y,{key:0,class:"state-text"},{default:t(()=>[g("暂无协议")]),_:1})),b.showPagination?(i(),e(y,{key:2,class:"pagination-bar"},{default:t(()=>[l(N,{class:P(["page-button",{"page-button-disabled":!b.canPrevPage||x.loading}]),disabled:!b.canPrevPage||x.loading,onClick:s[0]||(s[0]=e=>b.changePage(x.currentPage-1))},{default:t(()=>[g(" 上一页 ")]),_:1},8,["class","disabled"]),l(k,{class:"page-info"},{default:t(()=>[g(c(x.currentPage)+" / "+c(b.totalPagesText),1)]),_:1}),l(N,{class:P(["page-button",{"page-button-disabled":!b.canNextPage||x.loading}]),disabled:!b.canNextPage||x.loading,onClick:s[1]||(s[1]=e=>b.changePage(x.currentPage+1))},{default:t(()=>[g(" 下一页 ")]),_:1},8,["class","disabled"])]),_:1})):p("",!0)]),_:1}))]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-e4e42340"]]);export{y as default};
|