????

Your IP : 216.73.216.130


Current Path : C:/inetpub/vhost/donthu.nextform.vn/wwwroot/assets/
Upload File :
Current File : C:/inetpub/vhost/donthu.nextform.vn/wwwroot/assets/index-bWTVYQjq.js

var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});import{bM as formatDatetime,ao as useService,bN as Article,r as reactExports,bh as CHECK_SUCCESS,bi as CHECK_ERROR,bK as lodashExports,bO as slug,k as jsxRuntimeExports,C as Card,B as Box,am as Grid,P as Paper,y as Button,I as Icon,aH as CircularProgress}from"./index-y1X-EiI1.js";import{h as useMedia,u as useAsync,F as Form,C as CardHeader,b as CardContent,a as FormControl,D as DataTable}from"./DataTable-BEDH0i35.js";import{J as JoditForm}from"./index-V2aIyTpk.js";import{b as DialogContent,c as DialogActions,D as Dialog}from"./DialogTitle-B28XGy8_.js";import"./Tooltip-C0pwvyhl.js";import"./Popper-BN0GgV3z.js";import"./utils-B_XeHYak.js";import"./TableRow-BfZy-RM-.js";import"./FormGroup-CEJG6asl.js";import"./ListItemText-BvrfP19N.js";import"./Autocomplete-CpStdzj7.js";import"./Close-DnCuke95.js";import"./usePreviousProps-eNEUPQQG.js";import"./Chip-4iuxTgqW.js";import"./warning-BmqNoLzl.js";import"./TablePagination-Dnie0nHQ.js";import"./Toolbar-BZCdaOvb.js";import"./LoadingButton-DgqpHLzy.js";import"./Badge-BUU8rl3f.js";import"./Collapse-YEAu7S3-.js";import"./Alert-AfWalC00.js";import"./Switch-BlzK9Osj.js";import"./SwitchBase-HB81Uehs.js";import"./Checkbox-B8nePMFP.js";import"./AppBar-BrohM22l.js";import"./Fab-BPCNM9bU.js";const columns=[{title:"id",field:"id",type:"numeric",dataID:!0,editable:"never",hidden:!0},{title:"Ảnh",field:"featuredImage",type:"image",headerStyle:{width:"11rem"}},{title:"Tiêu đề",field:"title",type:"string",dataCheck:!0,searchable:!0},{title:"Tóm tắt",field:"summary",type:"string",dataCheck:!0,searchable:!0},{title:"Nhãn",field:"keywords",type:"string",dataCheck:!0},{title:"Ngày tạo",field:"publishDate",type:"date",dataCheck:!0,render:({publishDate})=>formatDatetime(publishDate)}];function useArticle(){const allow=useService(Article,"");return{getAllArticle:__name(param=>allow.get({url:""},param),"getAllArticle"),postArticle:__name(data=>allow.post({url:"",body:data}),"postArticle"),getArticleById:__name(id=>allow.get({url:`(${id})`}),"getArticleById"),updateArticle:__name((id,data)=>allow.path({url:`(${id})`,body:data}),"updateArticle")}}__name(useArticle,"useArticle");const formData={featuredImage:{field_name:"featuredImage",title:"Ảnh bìa",type:"image",rules:{required:"Vui lòng chọn"}},title:{field_name:"title",title:"Tiêu đề",type:"textbox",rules:{required:"Vui lòng nhập"}},summary:{field_name:"summary",title:"Tóm tắt",type:"textarea",rules:{required:"Vui lòng nhập",maxLength:{value:300,message:"Vui lòng nhập dưới 300 từ"}}},keywords:{field_name:"keywords",title:"Nhãn",type:"textbox",rules:{required:"Vui lòng nhập"}},link:{field_name:"link",title:"Slug",type:"textbox"},language:{field_name:"language",title:"Ngôn ngữ",type:"switch",nameOptions:["Tiếng Việt","Tiếng Anh"]},isPinned:{field_name:"isPinned",title:"Ghim",type:"checkbox"}},Index$1=__name(({onClose,open,id})=>{const[data,setData]=reactExports.useState({}),{getArticleById,postArticle,updateArticle}=useArticle(),{postMedia}=useMedia(),refJodit=reactExports.useRef(null),getDataById=reactExports.useCallback(async id2=>{try{const data2=await getArticleById(id2),dataReal={...data2,language:data2.language==="en"};return setData({...data2,language:data2.language==="en"}),dataReal}catch{}},[getArticleById]),handleSubmit=reactExports.useCallback(async dataForm=>{try{const{id:id2,language,...dataEdit}=dataForm;let languageSa=language?"en":"vi";if(id2){const{file}=data;if(file){const url=await postMedia({file,caption:file==null?void 0:file.name});await updateArticle(id2,{...dataEdit,language:languageSa,featuredImage:url.link,content:refJodit.current.getValue()})}else await updateArticle(id2,{...dataEdit,language:languageSa,content:refJodit.current.getValue()})}else{const{language:language2,...dataPost}=dataForm,{file}=data;let urlImage=null;if(file){const{link}=await postMedia({file,caption:file==null?void 0:file.name});urlImage=link}await postArticle({...dataPost,featuredImage:urlImage||dataPost.featuredImage,publishDate:new Date,language:languageSa,content:refJodit.current.getValue()})}CHECK_SUCCESS("Cập nhật thành công"),onClose()}catch(error){CHECK_ERROR(error)}},[data,onClose,postArticle,postMedia,updateArticle]),{execute,status}=useAsync(handleSubmit),handleChangeNS=reactExports.useCallback((name,value)=>{switch(name){case"title":setData(pre=>({...pre,[name]:value,link:slug(value)}));break;case"featuredImage":lodashExports.isObject(value)?setData(pre=>({...pre,[name]:value.url,file:value.file})):setData(pre=>({...pre,[name]:value}));break;default:setData(pre=>({...pre,[name]:value}));break}},[]),renderFormCreate=reactExports.useMemo(()=>jsxRuntimeExports.jsxs(Form,{onSubmit:execute,defaultValues:()=>id?getDataById(id):Promise.resolve({}),children:[jsxRuntimeExports.jsx(DialogContent,{sx:{padding:"0px"},children:jsxRuntimeExports.jsxs(Card,{children:[jsxRuntimeExports.jsx(CardHeader,{title:"Thêm mới"}),jsxRuntimeExports.jsx(CardContent,{sx:{background:"#E7EBF0"},children:jsxRuntimeExports.jsx(Box,{children:jsxRuntimeExports.jsxs(Grid,{container:!0,spacing:2,children:[jsxRuntimeExports.jsx(Grid,{item:!0,xs:4,children:jsxRuntimeExports.jsx(Paper,{sx:{borderRadius:"0.3rem",padding:"1rem"},children:Object.entries(formData).map(([key,value],idx)=>jsxRuntimeExports.jsx(FormControl,{data:{...value,name:key},rules:value.rules,name:key,value:data&&data[key],onChange:handleChangeNS,defaultValue:value.defaultValue||data[key]},idx+key))})}),jsxRuntimeExports.jsx(Grid,{item:!0,xs:8,children:open&&jsxRuntimeExports.jsx(JoditForm,{ref:refJodit,isOpen:data.content||""})})]})})})]})}),jsxRuntimeExports.jsxs(DialogActions,{children:[jsxRuntimeExports.jsx(Button,{color:"error",startIcon:jsxRuntimeExports.jsx(Icon,{children:"cancel"}),onClick:onClose,disabled:!1,children:"Hủy"}),jsxRuntimeExports.jsx(Button,{type:"submit",variant:"outlined",startIcon:status==="pending"?jsxRuntimeExports.jsx(CircularProgress,{size:20}):jsxRuntimeExports.jsx(Icon,{children:"save"}),disabled:status==="pending",children:"Lưu"})]})]}),[data,execute,getDataById,handleChangeNS,id,onClose,open,status]);return jsxRuntimeExports.jsx(Dialog,{fullWidth:!0,disableEnforceFocus:!0,disableAutoFocus:!0,maxWidth:"xl",onClose,open:!!open,children:renderFormCreate})},"Index$1"),UpdateForm=reactExports.memo(Index$1),Index=__name(()=>{const tableRef=reactExports.createRef(),[openConfig,setOpenConfig]=reactExports.useState({}),reloadTable=__name(()=>tableRef.current&&tableRef.current.onQueryChange(),"reloadTable");return jsxRuntimeExports.jsxs(Box,{children:[jsxRuntimeExports.jsx(Grid,{container:!0,children:jsxRuntimeExports.jsx(DataTable,{tableRef,isAuth:!0,isFullTextSearch:!0,url:"/Articles",title:"Danh sách bài viết",columns,selectType:"withColumns",onAdd:{onClick:()=>{setOpenConfig({status:"open"})}},onEdit:{onClick:(e,rowData)=>{setOpenConfig({status:"open",id:rowData.id})}},onDelete:{}})}),openConfig&&jsxRuntimeExports.jsx(UpdateForm,{open:openConfig.status,id:openConfig.id,onClose:()=>{reloadTable(),setOpenConfig(null)}})]})},"Index");export{Index as default};