import{c as R,U as u,A as F,G as D,f as J}from"./api.BeM3vxkG.js";import{v as c,x as l,m as p,h as v,w as C,s as f,i as I,f as L}from"./index.lP_uh0LI.js";import{C as M,c as b,g as U,b as $,a as _}from"./vue.BxlDVA1H.js";import{E as n,a as o}from"./curriculum.model.DmH5tfDc.js";const A=function({crudExpose:i}){const x=async e=>(e.ordering="-created_time",e.category=e.category&&typeof e.category=="object"?e.category.value:e.category,e.lecturer=e.lecturer&&typeof e.lecturer=="object"?e.lecturer.value:e.lecturer,await D(e)),S=async({form:e,row:t})=>(e.uuid=t.uuid,e.category=e.category&&typeof e.category=="object"?e.category.value:e.category,e.lecturer=e.lecturer&&typeof e.lecturer=="object"?e.lecturer.value:e.lecturer,await u(e)),k=async({form:e})=>await F(e);function w(){let e=0;const t={data:_([]),loading:_(!1)},r=L(async(a,s)=>{e+=1;const W=e;t.data.value=[],t.loading.value=!0;let g="";switch(s){case 1:g=`${p.knowledge}course/category/manage/`;break;case 2:g=`${p.knowledge}course/lecturer/manage/`;break}const h={limit:50};s==1&&(h.is_active=!0),s==1?h.name=a.trim():h.full_name=a.trim();const O=await J(g,h);W===e&&(t.data.value=O.map(y=>({label:y.name??y.full_name,value:y.uuid})),t.loading.value=!1)},800);return{state:t,fetchUser:r}}const{state:d,fetchUser:j}=w(),{state:m,fetchUser:N}=w(),T=M();return{crudOptions:{request:{pageRequest:x,addRequest:k,editRequest:S,transformQuery:({page:e,form:t})=>{const r=(e==null?void 0:e.pageSize)||10,a=(e==null?void 0:e.currentPage)||1;return delete t.created_time,{offset:(a-1)*r,limit:r,...t}},transformRes:({res:e,query:t})=>{const r=e;return r.success?{records:r.data.results.map(a=>({...a,category:a.category?{value:a.category,label:a.category_name}:"",lecturer:a.lecturer?{value:a.lecturer,label:a.lecturer_full_name}:""})),currentPage:t.offset/t.limit+1,pageSize:t.limit,total:r.data.count}:{records:[],currentPage:t.offset/t.limit+1,pageSize:t.limit,total:0}}},actionbar:{buttons:{add:{show:!0,text:"新增课程"}}},toolbar:{buttons:{export:{show:!1}}},search:{autoSearch:!1,initialForm:{lecturer:b(()=>{const e=window.localStorage.getItem("lecturer")||"";return e&&window.localStorage.removeItem("lecturer"),e&&JSON.parse(e)}),category:b(()=>{const e=window.localStorage.getItem("category")||"";return e&&window.localStorage.removeItem("category"),e&&JSON.parse(e)})},onReset(){i.getSearchFormData().lecturer="",i.getSearchFormData().category=""}},rowHandle:{fixed:"right",width:200,buttons:{view:{show:!1},edit:{show:!0,link:!0,type:"primary"},remove:{show:!1},reminder:{show:!0,link:!0,text:"内容",type:"primary",click:({row:e})=>{T.push({name:"curriculumManageContent",query:{course:e.uuid}})}}}},columns:{_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:e=>{let t=e.index??1,r=i.crudBinding.value.pagination;return((r.currentPage??1)-1)*r.pageSize+t+1}}},id:{title:"ID",search:{show:!0,order:1,col:{span:6},title:"课程ID",component:{placeholder:"请输入课程ID"}},type:["text","colspan"],column:{order:1,minWidth:120,align:"left"},form:{show:!1}},title:{title:"课程名称",search:{show:!0,order:2,col:{span:6},component:{placeholder:"请输入课程名称",minlength:0,maxlength:99999}},type:["text","colspan"],column:{order:3,minWidth:200,align:"left"},form:{title:"标题",rules:[{required:!0,message:"请输入课程名称"}],component:{placeholder:"请输入课程名称",minlength:1,maxlength:20}}},lecturer:{title:"讲师",search:{show:!0,order:5,col:{span:6},component:{placeholder:"请选择讲师"}},type:["dict-select","colspan"],column:{show:!1},form:{show:!0,rules:[{required:!0,message:"搜索并选择讲师"}],component:{name:"fs-dict-select",placeholder:"搜索并选择讲师",filterable:!0,remote:!0,defaultFirstLoad:!1,"reserve-keyword":!1,on:{focus:()=>{m.loading.value=!1,m.data.value=[]}},remoteMethod:e=>{N(e,2)},loading:m.loading,options:m.data}}},category:{title:"分类",search:{show:!0,order:4,col:{span:6},component:{placeholder:"请选择分类"}},type:["dict-select","colspan"],column:{order:4,minWidth:100,align:"left",formatter:({row:e})=>e.category_name||""},form:{show:!0,rules:[{required:!0,message:"搜索并选择分类"}],component:{name:"fs-dict-select",placeholder:"搜索并选择分类",filterable:!0,remote:!0,defaultFirstLoad:!1,"reserve-keyword":!1,on:{focus:()=>{d.loading.value=!1,d.data.value=[]}},remoteMethod:e=>{j(e,1)},loading:d.loading,options:d.data}}},home_picture_url:{title:"主页宣传图",type:["cropper-uploader","colspan"],column:{order:2,minWidth:120,align:"left",title:"课程图片"},form:{rules:v([{required:!0,message:"至少上传一张图片",trigger:"change"}]),helper:{text:"限上传png、jpg、jpeg文件,且不超过10M"},component:{limit:1,accept:"png, jpg, jpeg",cropper:{aspectRatio:NaN},maxSize:10,uploader:{action:`${p.knowledge}course/file/manage/`}}}},detail_picture_url:{title:"详情宣传图",type:["cropper-uploader","colspan"],column:{show:!1},form:{rules:v([{required:!0,message:"至少上传一张图片",trigger:"change"}]),helper:{text:"限上传png、jpg、jpeg文件,且不超过10M"},component:{limit:1,accept:"jpe, jpeg, png",cropper:{aspectRatio:NaN},maxSize:10,uploader:{action:`${p.knowledge}course/file/manage/`}}}},tags:{title:"标签",type:["tag","colspan"],column:{show:!1},form:{component:{props:{clearable:!0}},render(e){return U($("el-input-tag"),{modelValue:e.form.tags,"onUpdate:modelValue":t=>e.form.tags=t,placeholder:"请输入","aria-label":"输入后请按回车",maxlength:"6",minlength:"1",max:5,type:"primary"},null)}}},purchase_type:{title:"购买方式",type:["dict-radio","colspan"],search:{show:!0,order:3,col:{span:6},component:{placeholder:"请选择购买方式"}},column:{order:5,minWidth:100,align:"left",formatter:({row:e})=>{let t="";switch(e.purchase_type){case o.cash:t="现金";break;case o.free:t="免费";break;case o.integral:t="积分抵扣";break}return t}},form:{show:!0,value:o.cash,rules:[{required:!0,message:"请选择购买方式"}]},dict:c({data:[{label:"现金",value:o.cash},{label:"免费",value:o.free},{label:"积分抵扣",value:o.integral}]})},points_price:{title:"",search:{show:!1},type:["number","colspan"],column:{show:!1},form:{show:l(({form:e})=>e.purchase_type==o.integral),rules:[{required:!0,message:"请输入积分"}],component:{name:"el-input-number",props:{placeholder:"请输入积分",min:1,max:99999,step:1,precision:0,controls:!1},slots:{suffix:()=>"积分"}},class:"mdd-hide-required-asterisk"}},rule_price:{title:"",search:{show:!1},type:["number","colspan"],column:{show:!1},form:{show:l(({form:e})=>e.purchase_type==o.cash||e.purchase_type==o.integral),rules:[{required:l(({form:e})=>e.purchase_type===o.cash),message:"请输入金额"}],component:{name:"el-input-number",props:{placeholder:"请输入金额",min:.01,max:99999,step:1,precision:2,controls:!1},slots:{suffix:l(({form:e})=>e.purchase_type===o.cash?"元":"元,积分不足时可现金支付")}},helper:{text:l(({form:e})=>e.purchase_type===o.integral?"不设置,则必须使用积分抵扣":"")},class:"mdd-hide-required-asterisk"}},platform_rate:{title:"",search:{show:!1},type:["number","colspan"],column:{show:!1},form:{show:l(({form:e})=>{const t=e.rule_price!==void 0&&e.rule_price!==null&&e.rule_price!=="";return e.purchase_type==o.cash||e.purchase_type==o.integral&&t}),component:{name:"el-input-number",props:{placeholder:"请输入平台抽成比例",min:0,max:100,step:1,precision:1,controls:!1},slots:{suffix:l(({form:e})=>e.purchase_type===o.cash?"%,平台抽成比例":"%,现金支付平台抽成比例")}}}},course_price:{title:"划线价",search:{show:!1},type:["number","colspan"],column:{show:!1},form:{show:!0,component:{name:"el-input-number",props:{placeholder:"请输入划线价",min:.01,max:99999,step:1,precision:2,controls:!1},slots:{suffix:()=>"元"}}}},view_count:{title:"浏览",search:{show:!1},type:["text","colspan"],column:{order:6,minWidth:120,align:"left"},form:{show:!1}},buy_count:{title:"购买",search:{show:!1},type:["text","colspan"],column:{order:7,minWidth:120,align:"left"},form:{show:!1}},study_deadline_type:{title:"有效期",search:{show:!1},type:["dict-radio","colspan"],column:{order:8,minWidth:100,align:"left",formatter:({row:e})=>{let t="";switch(e.study_deadline_type){case n.perpetual:t="永久";break;case n.haveLimits:t=e.study_limited_days?e.study_limited_days+"天":"";break}return t}},form:{show:!0,title:"学习有效期",value:n.haveLimits,rules:[{required:!0,message:"请选择学习有效期"}]},dict:c({data:[{label:"永久",value:n.perpetual},{label:"有限制",value:n.haveLimits}]})},study_limited_days:{title:"",search:{show:!1},type:["number","colspan"],column:{show:!1},form:{show:l(({form:e})=>e.study_deadline_type==n.haveLimits),rules:[{required:!0,message:"请输入天数"}],component:{name:"el-input-number",props:{placeholder:"请输入天数",min:1,max:365,step:1,precision:0,controls:!1},slots:{suffix:()=>"天"}},helper:{text:"到期后,用户需要重新购。免费课程建议都设置有效期"},class:"mdd-hide-required-asterisk"}},hot:{title:"运营热度",search:{show:!1},type:["number","colspan"],column:{show:!1},form:{show:!0,value:1,component:{placeholder:"请输入排序",min:0,max:99999,precision:0},helper:{text:"影响排序"}}},sort:{title:"排序",search:{show:!1},type:["number","colspan"],column:{order:9,minWidth:120,align:"left"},form:{show:!0,value:1,component:{placeholder:"请输入排序",min:0,max:99999,precision:0}}},introduction:{title:"课程详细介绍",search:{show:!1},type:["editor-wang5","colspan"],column:{show:!1},form:{rules:[{required:!0,message:"请输入课程详细介绍",validator:async(e,t)=>{if(t.trim()==="