import{D as f,U as w,A as y,G as b}from"./api.lw1qFwrE.js";import{G as _}from"./api.ssM5yC3w.js";import{W as o,I as c,F as x,s as q,am as u}from"./index.CL7yl-Wb.js";import{aH as W,S as D,aj as v,ad as k}from"./vue.D1BjjNmv.js";function R(r){return typeof r=="function"||Object.prototype.toString.call(r)==="[object Object]"&&!k(r)}const A=function({crudExpose:r}){const m=W(),d=async e=>await b(e),p=async({form:e,row:t})=>(e.id=t.id,await w(e)),s=async({row:e})=>await f(e.id),h=async({form:e})=>{const t=e==null?void 0:e.document_link;if(!t||Array.isArray(t)&&t.length===0)throw u("请上传合约文档"),new Error("document_link required");return Array.isArray(t)&&(e.document_link=t[0]),await y(e)},g=e=>{console.log(e.document_link),m.push({path:"/system/contract/preview",query:{file:e.document_link,contractName:e.contract_name}})};return{crudOptions:{toolbar:{buttons:{search:{show:!1},refresh:{show:!1},compact:{show:!1},export:{text:"导出",type:"primary",size:"small",icon:"upload",circle:!1,display:!0,show:!1},columns:{show:!1}}},search:{col:{span:3},show:!0,autoSearch:!1,buttons:{search:{size:"small"},reset:{size:"small"}}},request:{pageRequest:d,addRequest:h,editRequest:p,delRequest:s},actionbar:{buttons:{add:{show:!0}}},rowHandle:{fixed:"right",width:200,buttons:{view:{text:"详细信息",iconRight:"View",type:"text",show:!0},edit:{iconRight:"Edit",type:"text",show:!1},remove:{iconRight:"Delete",type:"text",show:!0,click:async e=>{try{await x.confirm(`确定要删除合约"${e.row.contract_name}"吗?此操作不可撤销。`,"删除确认",{confirmButtonText:"确定删除",cancelButtonText:"取消",type:"warning",confirmButtonClass:"el-button--danger"}),await s(e),q("删除成功"),r.doRefresh()}catch(t){t!=="cancel"&&u("删除失败")}}},Viewcontract:{text:"查看合约",iconRight:"",type:"text",show:!0,click:e=>{g(e.row)}}}},columns:{_index:{title:"序号",form:{show:!1},column:{type:"index",align:"center",width:"70px",columnSetDisabled:!0}},contract_number:{title:"合约编号",search:{show:!0},type:"input",form:{rules:[{required:!0,message:"合约编号必填"}],component:{placeholder:"请输入合约编号"}},column:{minWidth:150}},document_link:{title:"合约文档",type:"file-uploader",form:{rules:[{required:!0,message:"请上传合约文档"}],component:{uploader:{type:"form",action:"/api/uploadfile/",accept:".pdf,.doc,.docx",maxSize:10*1024*1024,limit:1},placeholder:"请上传PDF或Word格式的合约文档",helpMessage:"支持PDF、Word格式,文件大小不超过10MB"}},column:{show:!1,component:{render:({value:e})=>{if(!e)return"未上传";const t=e.split("/").pop();return D(v("el-link"),{type:"primary",href:e,target:"_blank"},R(t)?t:{default:()=>[t]})}},minWidth:180}},contract_name:{title:"合约名称",search:{show:!0},type:"input",form:{rules:[{required:!0,message:"合约名称必填"}],component:{placeholder:"请输入合约名称"}},column:{minWidth:180}},tenant_name:{title:"企业名称",search:{show:!0},type:"input",form:{show:!1,rules:[{required:!0,message:"企业名称必填"}],component:{placeholder:"请选择企业名称",filterable:!0,clearable:!0}},column:{minWidth:120,show:!1}},tenant:{title:"企业名称",search:{show:!1},type:"dict-select",dict:o({url:"/api/platform/tenants/",value:"tenant_id",label:"name",getData:e=>_({page:1,limit:20}).then(t=>t.data.results)}),form:{rules:[{required:!0,message:"企业名称必填"}],component:{placeholder:"请选择企业名称",filterable:!0,clearable:!0}},column:{minWidth:120}},contract_amount:{title:"合约金额",type:"number",form:{rules:[{required:!0,message:"合约金额必填"},{type:"number",min:0,message:"合约金额不能为负数",trigger:"blur"}],component:{placeholder:"请输入合约金额",precision:2,step:1e3,min:0}},column:{minWidth:120}},start_date:{title:"开始时间",type:"date",search:{show:!0},form:{rules:[{required:!0,message:"开始时间必填"}],component:{type:"datetime",valueFormat:"YYYY-MM-DD",placeholder:"请选择开始时间"}},column:{minWidth:150}},end_date:{title:"结束时间",type:"date",search:{show:!0},form:{rules:c(({form:e})=>[{required:!0,message:"结束时间必填",trigger:"change"},{validator:(t,a,n)=>{if(!a||!(e!=null&&e.start_date))return n();const i=new Date(e.start_date).getTime(),l=new Date(a).getTime();isFinite(i)&&isFinite(l)&&lt=>{if(!(e!=null&&e.start_date))return!1;const a=new Date(e.start_date).getTime();return isFinite(a)?t.getTime()