{"remainingRequest":"D:\\源码\\vue-element-admin-master\\node_modules\\babel-loader\\lib\\index.js!D:\\源码\\vue-element-admin-master\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\源码\\vue-element-admin-master\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\源码\\vue-element-admin-master\\src\\views\\example\\components\\ArticleDetail.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\源码\\vue-element-admin-master\\src\\views\\example\\components\\ArticleDetail.vue","mtime":1649647926000},{"path":"D:\\源码\\vue-element-admin-master\\babel.config.js","mtime":1649647926000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCmltcG9ydCBUaW55bWNlIGZyb20gJ0AvY29tcG9uZW50cy9UaW55bWNlJzsKaW1wb3J0IFVwbG9hZCBmcm9tICdAL2NvbXBvbmVudHMvVXBsb2FkL1NpbmdsZUltYWdlMyc7CmltcG9ydCBNRGlucHV0IGZyb20gJ0AvY29tcG9uZW50cy9NRGlucHV0JzsKaW1wb3J0IFN0aWNreSBmcm9tICdAL2NvbXBvbmVudHMvU3RpY2t5JzsgLy8g57KY5oCnaGVhZGVy57uE5Lu2CgppbXBvcnQgeyB2YWxpZFVSTCB9IGZyb20gJ0AvdXRpbHMvdmFsaWRhdGUnOwppbXBvcnQgeyBmZXRjaEFydGljbGUgfSBmcm9tICdAL2FwaS9hcnRpY2xlJzsKaW1wb3J0IHsgc2VhcmNoVXNlciB9IGZyb20gJ0AvYXBpL3JlbW90ZS1zZWFyY2gnOwppbXBvcnQgV2FybmluZyBmcm9tICcuL1dhcm5pbmcnOwppbXBvcnQgeyBDb21tZW50RHJvcGRvd24sIFBsYXRmb3JtRHJvcGRvd24sIFNvdXJjZVVybERyb3Bkb3duIH0gZnJvbSAnLi9Ecm9wZG93bic7CnZhciBkZWZhdWx0Rm9ybSA9IHsKICBzdGF0dXM6ICdkcmFmdCcsCiAgdGl0bGU6ICcnLAogIC8vIOaWh+eroOmimOebrgogIGNvbnRlbnQ6ICcnLAogIC8vIOaWh+eroOWGheWuuQogIGNvbnRlbnRfc2hvcnQ6ICcnLAogIC8vIOaWh+eroOaRmOimgQogIHNvdXJjZV91cmk6ICcnLAogIC8vIOaWh+eroOWklumTvgogIGltYWdlX3VyaTogJycsCiAgLy8g5paH56ug5Zu+54mHCiAgZGlzcGxheV90aW1lOiB1bmRlZmluZWQsCiAgLy8g5YmN5Y+w5bGV56S65pe26Ze0CiAgaWQ6IHVuZGVmaW5lZCwKICBwbGF0Zm9ybXM6IFsnYS1wbGF0Zm9ybSddLAogIGNvbW1lbnRfZGlzYWJsZWQ6IGZhbHNlLAogIGltcG9ydGFuY2U6IDAKfTsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdBcnRpY2xlRGV0YWlsJywKICBjb21wb25lbnRzOiB7CiAgICBUaW55bWNlOiBUaW55bWNlLAogICAgTURpbnB1dDogTURpbnB1dCwKICAgIFVwbG9hZDogVXBsb2FkLAogICAgU3RpY2t5OiBTdGlja3ksCiAgICBXYXJuaW5nOiBXYXJuaW5nLAogICAgQ29tbWVudERyb3Bkb3duOiBDb21tZW50RHJvcGRvd24sCiAgICBQbGF0Zm9ybURyb3Bkb3duOiBQbGF0Zm9ybURyb3Bkb3duLAogICAgU291cmNlVXJsRHJvcGRvd246IFNvdXJjZVVybERyb3Bkb3duCiAgfSwKICBwcm9wczogewogICAgaXNFZGl0OiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKCiAgICB2YXIgdmFsaWRhdGVSZXF1aXJlID0gZnVuY3Rpb24gdmFsaWRhdGVSZXF1aXJlKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgewogICAgICBpZiAodmFsdWUgPT09ICcnKSB7CiAgICAgICAgX3RoaXMuJG1lc3NhZ2UoewogICAgICAgICAgbWVzc2FnZTogcnVsZS5maWVsZCArICfkuLrlv4XkvKDpobknLAogICAgICAgICAgdHlwZTogJ2Vycm9yJwogICAgICAgIH0pOwoKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IocnVsZS5maWVsZCArICfkuLrlv4XkvKDpobknKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY2FsbGJhY2soKTsKICAgICAgfQogICAgfTsKCiAgICB2YXIgdmFsaWRhdGVTb3VyY2VVcmkgPSBmdW5jdGlvbiB2YWxpZGF0ZVNvdXJjZVVyaShydWxlLCB2YWx1ZSwgY2FsbGJhY2spIHsKICAgICAgaWYgKHZhbHVlKSB7CiAgICAgICAgaWYgKHZhbGlkVVJMKHZhbHVlKSkgewogICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXMuJG1lc3NhZ2UoewogICAgICAgICAgICBtZXNzYWdlOiAn5aSW6ZO+dXJs5aGr5YaZ5LiN5q2j56GuJywKICAgICAgICAgICAgdHlwZTogJ2Vycm9yJwogICAgICAgICAgfSk7CgogICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCflpJbpk751cmzloavlhpnkuI3mraPnoa4nKSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGNhbGxiYWNrKCk7CiAgICAgIH0KICAgIH07CgogICAgcmV0dXJuIHsKICAgICAgcG9zdEZvcm06IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRGb3JtKSwKICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgIHVzZXJMaXN0T3B0aW9uczogW10sCiAgICAgIHJ1bGVzOiB7CiAgICAgICAgaW1hZ2VfdXJpOiBbewogICAgICAgICAgdmFsaWRhdG9yOiB2YWxpZGF0ZVJlcXVpcmUKICAgICAgICB9XSwKICAgICAgICB0aXRsZTogW3sKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVSZXF1aXJlCiAgICAgICAgfV0sCiAgICAgICAgY29udGVudDogW3sKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVSZXF1aXJlCiAgICAgICAgfV0sCiAgICAgICAgc291cmNlX3VyaTogW3sKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVTb3VyY2VVcmksCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XQogICAgICB9LAogICAgICB0ZW1wUm91dGU6IHt9CiAgICB9OwogIH0sCiAgY29tcHV0ZWQ6IHsKICAgIGNvbnRlbnRTaG9ydExlbmd0aDogZnVuY3Rpb24gY29udGVudFNob3J0TGVuZ3RoKCkgewogICAgICByZXR1cm4gdGhpcy5wb3N0Rm9ybS5jb250ZW50X3Nob3J0Lmxlbmd0aDsKICAgIH0sCiAgICBkaXNwbGF5VGltZTogewogICAgICAvLyBzZXQgYW5kIGdldCBpcyB1c2VmdWwgd2hlbiB0aGUgZGF0YQogICAgICAvLyByZXR1cm5lZCBieSB0aGUgYmFjayBlbmQgYXBpIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBmcm9udCBlbmQKICAgICAgLy8gYmFjayBlbmQgcmV0dXJuID0+ICIyMDEzLTA2LTI1IDA2OjU5OjI1IgogICAgICAvLyBmcm9udCBlbmQgbmVlZCB0aW1lc3RhbXAgPT4gMTM3MjExNDc2NTAwMAogICAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgICByZXR1cm4gK25ldyBEYXRlKHRoaXMucG9zdEZvcm0uZGlzcGxheV90aW1lKTsKICAgICAgfSwKICAgICAgc2V0OiBmdW5jdGlvbiBzZXQodmFsKSB7CiAgICAgICAgdGhpcy5wb3N0Rm9ybS5kaXNwbGF5X3RpbWUgPSBuZXcgRGF0ZSh2YWwpOwogICAgICB9CiAgICB9CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgaWYgKHRoaXMuaXNFZGl0KSB7CiAgICAgIHZhciBpZCA9IHRoaXMuJHJvdXRlLnBhcmFtcyAmJiB0aGlzLiRyb3V0ZS5wYXJhbXMuaWQ7CiAgICAgIHRoaXMuZmV0Y2hEYXRhKGlkKTsKICAgIH0gLy8gV2h5IG5lZWQgdG8gbWFrZSBhIGNvcHkgb2YgdGhpcy4kcm91dGUgaGVyZT8KICAgIC8vIEJlY2F1c2UgaWYgeW91IGVudGVyIHRoaXMgcGFnZSBhbmQgcXVpY2tseSBzd2l0Y2ggdGFnLCBtYXkgYmUgaW4gdGhlIGV4ZWN1dGlvbiBvZiB0aGUgc2V0VGFnc1ZpZXdUaXRsZSBmdW5jdGlvbiwgdGhpcy4kcm91dGUgaXMgbm8gbG9uZ2VyIHBvaW50aW5nIHRvIHRoZSBjdXJyZW50IHBhZ2UKICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9QYW5KaWFDaGVuL3Z1ZS1lbGVtZW50LWFkbWluL2lzc3Vlcy8xMjIxCgoKICAgIHRoaXMudGVtcFJvdXRlID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy4kcm91dGUpOwogIH0sCiAgbWV0aG9kczogewogICAgZmV0Y2hEYXRhOiBmdW5jdGlvbiBmZXRjaERhdGEoaWQpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CgogICAgICBmZXRjaEFydGljbGUoaWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXMyLnBvc3RGb3JtID0gcmVzcG9uc2UuZGF0YTsgLy8ganVzdCBmb3IgdGVzdAoKICAgICAgICBfdGhpczIucG9zdEZvcm0udGl0bGUgKz0gIiAgIEFydGljbGUgSWQ6Ii5jb25jYXQoX3RoaXMyLnBvc3RGb3JtLmlkKTsKICAgICAgICBfdGhpczIucG9zdEZvcm0uY29udGVudF9zaG9ydCArPSAiICAgQXJ0aWNsZSBJZDoiLmNvbmNhdChfdGhpczIucG9zdEZvcm0uaWQpOyAvLyBzZXQgdGFnc3ZpZXcgdGl0bGUKCiAgICAgICAgX3RoaXMyLnNldFRhZ3NWaWV3VGl0bGUoKTsgLy8gc2V0IHBhZ2UgdGl0bGUKCgogICAgICAgIF90aGlzMi5zZXRQYWdlVGl0bGUoKTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycikgewogICAgICAgIGNvbnNvbGUubG9nKGVycik7CiAgICAgIH0pOwogICAgfSwKICAgIHNldFRhZ3NWaWV3VGl0bGU6IGZ1bmN0aW9uIHNldFRhZ3NWaWV3VGl0bGUoKSB7CiAgICAgIHZhciB0aXRsZSA9ICdFZGl0IEFydGljbGUnOwogICAgICB2YXIgcm91dGUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnRlbXBSb3V0ZSwgewogICAgICAgIHRpdGxlOiAiIi5jb25jYXQodGl0bGUsICItIikuY29uY2F0KHRoaXMucG9zdEZvcm0uaWQpCiAgICAgIH0pOwogICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgndGFnc1ZpZXcvdXBkYXRlVmlzaXRlZFZpZXcnLCByb3V0ZSk7CiAgICB9LAogICAgc2V0UGFnZVRpdGxlOiBmdW5jdGlvbiBzZXRQYWdlVGl0bGUoKSB7CiAgICAgIHZhciB0aXRsZSA9ICdFZGl0IEFydGljbGUnOwogICAgICBkb2N1bWVudC50aXRsZSA9ICIiLmNvbmNhdCh0aXRsZSwgIiAtICIpLmNvbmNhdCh0aGlzLnBvc3RGb3JtLmlkKTsKICAgIH0sCiAgICBzdWJtaXRGb3JtOiBmdW5jdGlvbiBzdWJtaXRGb3JtKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKCiAgICAgIGNvbnNvbGUubG9nKHRoaXMucG9zdEZvcm0pOwogICAgICB0aGlzLiRyZWZzLnBvc3RGb3JtLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgX3RoaXMzLmxvYWRpbmcgPSB0cnVlOwoKICAgICAgICAgIF90aGlzMy4kbm90aWZ5KHsKICAgICAgICAgICAgdGl0bGU6ICfmiJDlip8nLAogICAgICAgICAgICBtZXNzYWdlOiAn5Y+R5biD5paH56ug5oiQ5YqfJywKICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLAogICAgICAgICAgICBkdXJhdGlvbjogMjAwMAogICAgICAgICAgfSk7CgogICAgICAgICAgX3RoaXMzLnBvc3RGb3JtLnN0YXR1cyA9ICdwdWJsaXNoZWQnOwogICAgICAgICAgX3RoaXMzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yIHN1Ym1pdCEhJyk7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICBkcmFmdEZvcm06IGZ1bmN0aW9uIGRyYWZ0Rm9ybSgpIHsKICAgICAgaWYgKHRoaXMucG9zdEZvcm0uY29udGVudC5sZW5ndGggPT09IDAgfHwgdGhpcy5wb3N0Rm9ybS50aXRsZS5sZW5ndGggPT09IDApIHsKICAgICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICAgIG1lc3NhZ2U6ICfor7floavlhpnlv4XopoHnmoTmoIfpopjlkozlhoXlrrknLAogICAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICBtZXNzYWdlOiAn5L+d5a2Y5oiQ5YqfJywKICAgICAgICB0eXBlOiAnc3VjY2VzcycsCiAgICAgICAgc2hvd0Nsb3NlOiB0cnVlLAogICAgICAgIGR1cmF0aW9uOiAxMDAwCiAgICAgIH0pOwogICAgICB0aGlzLnBvc3RGb3JtLnN0YXR1cyA9ICdkcmFmdCc7CiAgICB9LAogICAgZ2V0UmVtb3RlVXNlckxpc3Q6IGZ1bmN0aW9uIGdldFJlbW90ZVVzZXJMaXN0KHF1ZXJ5KSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwoKICAgICAgc2VhcmNoVXNlcihxdWVyeSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBpZiAoIXJlc3BvbnNlLmRhdGEuaXRlbXMpIHJldHVybjsKICAgICAgICBfdGhpczQudXNlckxpc3RPcHRpb25zID0gcmVzcG9uc2UuZGF0YS5pdGVtcy5tYXAoZnVuY3Rpb24gKHYpIHsKICAgICAgICAgIHJldHVybiB2Lm5hbWU7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogIH0KfTs="},{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8EA;AACA;AACA;AACA,yC,CAAA;;AACA;AACA;AACA;AACA;AACA;AAEA;EACAA,eADA;EAEAC,SAFA;EAEA;EACAC,WAHA;EAGA;EACAC,iBAJA;EAIA;EACAC,cALA;EAKA;EACAC,aANA;EAMA;EACAC,uBAPA;EAOA;EACAC,aARA;EASAC,yBATA;EAUAC,uBAVA;EAWAC;AAXA;AAcA;EACAC,qBADA;EAEAC;IAAAC;IAAAC;IAAAC;IAAAC;IAAAC;IAAAC;IAAAC;IAAAC;EAAA,CAFA;EAGAC;IACAC;MACAC,aADA;MAEAC;IAFA;EADA,CAHA;EASAC,IATA,kBASA;IAAA;;IACA;MACA;QACA;UACAC,4BADA;UAEAH;QAFA;;QAIAI;MACA,CANA,MAMA;QACAA;MACA;IACA,CAVA;;IAWA;MACA;QACA;UACAA;QACA,CAFA,MAEA;UACA;YACAD,qBADA;YAEAH;UAFA;;UAIAI;QACA;MACA,CAVA,MAUA;QACAA;MACA;IACA,CAdA;;IAeA;MACAC,wCADA;MAEAC,cAFA;MAGAC,mBAHA;MAIAC;QACA1B;UAAA2B;QAAA,EADA;QAEA/B;UAAA+B;QAAA,EAFA;QAGA9B;UAAA8B;QAAA,EAHA;QAIA5B;UAAA4B;UAAAC;QAAA;MAJA,CAJA;MAUAC;IAVA;EAYA,CAhDA;EAiDAC;IACAC,kBADA,gCACA;MACA;IACA,CAHA;IAIAC;MACA;MACA;MACA;MACA;MACAC,GALA,iBAKA;QACA;MACA,CAPA;MAQAC,GARA,eAQAC,GARA,EAQA;QACA;MACA;IAVA;EAJA,CAjDA;EAkEAC,OAlEA,qBAkEA;IACA;MACA;MACA;IACA,CAJA,CAMA;IACA;IACA;;;IACA;EACA,CA5EA;EA6EAC;IACAC,SADA,qBACApC,EADA,EACA;MAAA;;MACAqC;QACA,gCADA,CAGA;;QACA;QACA,6EALA,CAOA;;QACA,0BARA,CAUA;;;QACA;MACA,CAZA,EAYAC,KAZA,CAYA;QACAC;MACA,CAdA;IAeA,CAjBA;IAkBAC,gBAlBA,8BAkBA;MACA;MACA;QAAA9C;MAAA;MACA;IACA,CAtBA;IAuBA+C,YAvBA,0BAuBA;MACA;MACAC;IACA,CA1BA;IA2BAC,UA3BA,wBA2BA;MAAA;;MACAJ;MACA;QACA;UACA;;UACA;YACA7C,WADA;YAEAyB,iBAFA;YAGAH,eAHA;YAIA4B;UAJA;;UAMA;UACA;QACA,CAVA,MAUA;UACAL;UACA;QACA;MACA,CAfA;IAgBA,CA7CA;IA8CAM,SA9CA,uBA8CA;MACA;QACA;UACA1B,sBADA;UAEAH;QAFA;QAIA;MACA;;MACA;QACAG,eADA;QAEAH,eAFA;QAGA8B,eAHA;QAIAF;MAJA;MAMA;IACA,CA7DA;IA8DAG,iBA9DA,6BA8DAC,KA9DA,EA8DA;MAAA;;MACAC;QACA;QACA;UAAA;QAAA;MACA,CAHA;IAIA;EAnEA;AA7EA","names":["status","title","content","content_short","source_uri","image_uri","display_time","id","platforms","comment_disabled","importance","name","components","Tinymce","MDinput","Upload","Sticky","Warning","CommentDropdown","PlatformDropdown","SourceUrlDropdown","props","isEdit","type","default","data","message","callback","postForm","loading","userListOptions","rules","validator","trigger","tempRoute","computed","contentShortLength","displayTime","get","set","val","created","methods","fetchData","fetchArticle","catch","console","setTagsViewTitle","setPageTitle","document","submitForm","duration","draftForm","showClose","getRemoteUserList","query","searchUser"],"sourceRoot":"src/views/example/components","sources":["ArticleDetail.vue"],"sourcesContent":["<template>\n <div class=\"createPost-container\">\n <el-form ref=\"postForm\" :model=\"postForm\" :rules=\"rules\" class=\"form-container\">\n\n <sticky :z-index=\"10\" :class-name=\"'sub-navbar '+postForm.status\">\n <CommentDropdown v-model=\"postForm.comment_disabled\" />\n <PlatformDropdown v-model=\"postForm.platforms\" />\n <SourceUrlDropdown v-model=\"postForm.source_uri\" />\n <el-button v-loading=\"loading\" style=\"margin-left: 10px;\" type=\"success\" @click=\"submitForm\">\n Publish\n </el-button>\n <el-button v-loading=\"loading\" type=\"warning\" @click=\"draftForm\">\n Draft\n </el-button>\n </sticky>\n\n <div class=\"createPost-main-container\">\n <el-row>\n <Warning />\n\n <el-col :span=\"24\">\n <el-form-item style=\"margin-bottom: 40px;\" prop=\"title\">\n <MDinput v-model=\"postForm.title\" :maxlength=\"100\" name=\"name\" required>\n Title\n </MDinput>\n </el-form-item>\n\n <div class=\"postInfo-container\">\n <el-row>\n <el-col :span=\"8\">\n <el-form-item label-width=\"60px\" label=\"Author:\" class=\"postInfo-container-item\">\n <el-select v-model=\"postForm.author\" :remote-method=\"getRemoteUserList\" filterable default-first-option remote placeholder=\"Search user\">\n <el-option v-for=\"(item,index) in userListOptions\" :key=\"item+index\" :label=\"item\" :value=\"item\" />\n </el-select>\n </el-form-item>\n </el-col>\n\n <el-col :span=\"10\">\n <el-form-item label-width=\"120px\" label=\"Publish Time:\" class=\"postInfo-container-item\">\n <el-date-picker v-model=\"displayTime\" type=\"datetime\" format=\"yyyy-MM-dd HH:mm:ss\" placeholder=\"Select date and time\" />\n </el-form-item>\n </el-col>\n\n <el-col :span=\"6\">\n <el-form-item label-width=\"90px\" label=\"Importance:\" class=\"postInfo-container-item\">\n <el-rate\n v-model=\"postForm.importance\"\n :max=\"3\"\n :colors=\"['#99A9BF', '#F7BA2A', '#FF9900']\"\n :low-threshold=\"1\"\n :high-threshold=\"3\"\n style=\"display:inline-block\"\n />\n </el-form-item>\n </el-col>\n </el-row>\n </div>\n </el-col>\n </el-row>\n\n <el-form-item style=\"margin-bottom: 40px;\" label-width=\"70px\" label=\"Summary:\">\n <el-input v-model=\"postForm.content_short\" :rows=\"1\" type=\"textarea\" class=\"article-textarea\" autosize placeholder=\"Please enter the content\" />\n <span v-show=\"contentShortLength\" class=\"word-counter\">{{ contentShortLength }}words</span>\n </el-form-item>\n\n <el-form-item prop=\"content\" style=\"margin-bottom: 30px;\">\n <Tinymce ref=\"editor\" v-model=\"postForm.content\" :height=\"400\" />\n </el-form-item>\n\n <el-form-item prop=\"image_uri\" style=\"margin-bottom: 30px;\">\n <Upload v-model=\"postForm.image_uri\" />\n </el-form-item>\n </div>\n </el-form>\n </div>\n</template>\n\n<script>\nimport Tinymce from '@/components/Tinymce'\nimport Upload from '@/components/Upload/SingleImage3'\nimport MDinput from '@/components/MDinput'\nimport Sticky from '@/components/Sticky' // 粘性header组件\nimport { validURL } from '@/utils/validate'\nimport { fetchArticle } from '@/api/article'\nimport { searchUser } from '@/api/remote-search'\nimport Warning from './Warning'\nimport { CommentDropdown, PlatformDropdown, SourceUrlDropdown } from './Dropdown'\n\nconst defaultForm = {\n status: 'draft',\n title: '', // 文章题目\n content: '', // 文章内容\n content_short: '', // 文章摘要\n source_uri: '', // 文章外链\n image_uri: '', // 文章图片\n display_time: undefined, // 前台展示时间\n id: undefined,\n platforms: ['a-platform'],\n comment_disabled: false,\n importance: 0\n}\n\nexport default {\n name: 'ArticleDetail',\n components: { Tinymce, MDinput, Upload, Sticky, Warning, CommentDropdown, PlatformDropdown, SourceUrlDropdown },\n props: {\n isEdit: {\n type: Boolean,\n default: false\n }\n },\n data() {\n const validateRequire = (rule, value, callback) => {\n if (value === '') {\n this.$message({\n message: rule.field + '为必传项',\n type: 'error'\n })\n callback(new Error(rule.field + '为必传项'))\n } else {\n callback()\n }\n }\n const validateSourceUri = (rule, value, callback) => {\n if (value) {\n if (validURL(value)) {\n callback()\n } else {\n this.$message({\n message: '外链url填写不正确',\n type: 'error'\n })\n callback(new Error('外链url填写不正确'))\n }\n } else {\n callback()\n }\n }\n return {\n postForm: Object.assign({}, defaultForm),\n loading: false,\n userListOptions: [],\n rules: {\n image_uri: [{ validator: validateRequire }],\n title: [{ validator: validateRequire }],\n content: [{ validator: validateRequire }],\n source_uri: [{ validator: validateSourceUri, trigger: 'blur' }]\n },\n tempRoute: {}\n }\n },\n computed: {\n contentShortLength() {\n return this.postForm.content_short.length\n },\n displayTime: {\n // set and get is useful when the data\n // returned by the back end api is different from the front end\n // back end return => \"2013-06-25 06:59:25\"\n // front end need timestamp => 1372114765000\n get() {\n return (+new Date(this.postForm.display_time))\n },\n set(val) {\n this.postForm.display_time = new Date(val)\n }\n }\n },\n created() {\n if (this.isEdit) {\n const id = this.$route.params && this.$route.params.id\n this.fetchData(id)\n }\n\n // Why need to make a copy of this.$route here?\n // Because if you enter this page and quickly switch tag, may be in the execution of the setTagsViewTitle function, this.$route is no longer pointing to the current page\n // https://github.com/PanJiaChen/vue-element-admin/issues/1221\n this.tempRoute = Object.assign({}, this.$route)\n },\n methods: {\n fetchData(id) {\n fetchArticle(id).then(response => {\n this.postForm = response.data\n\n // just for test\n this.postForm.title += ` Article Id:${this.postForm.id}`\n this.postForm.content_short += ` Article Id:${this.postForm.id}`\n\n // set tagsview title\n this.setTagsViewTitle()\n\n // set page title\n this.setPageTitle()\n }).catch(err => {\n console.log(err)\n })\n },\n setTagsViewTitle() {\n const title = 'Edit Article'\n const route = Object.assign({}, this.tempRoute, { title: `${title}-${this.postForm.id}` })\n this.$store.dispatch('tagsView/updateVisitedView', route)\n },\n setPageTitle() {\n const title = 'Edit Article'\n document.title = `${title} - ${this.postForm.id}`\n },\n submitForm() {\n console.log(this.postForm)\n this.$refs.postForm.validate(valid => {\n if (valid) {\n this.loading = true\n this.$notify({\n title: '成功',\n message: '发布文章成功',\n type: 'success',\n duration: 2000\n })\n this.postForm.status = 'published'\n this.loading = false\n } else {\n console.log('error submit!!')\n return false\n }\n })\n },\n draftForm() {\n if (this.postForm.content.length === 0 || this.postForm.title.length === 0) {\n this.$message({\n message: '请填写必要的标题和内容',\n type: 'warning'\n })\n return\n }\n this.$message({\n message: '保存成功',\n type: 'success',\n showClose: true,\n duration: 1000\n })\n this.postForm.status = 'draft'\n },\n getRemoteUserList(query) {\n searchUser(query).then(response => {\n if (!response.data.items) return\n this.userListOptions = response.data.items.map(v => v.name)\n })\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"~@/styles/mixin.scss\";\n\n.createPost-container {\n position: relative;\n\n .createPost-main-container {\n padding: 40px 45px 20px 50px;\n\n .postInfo-container {\n position: relative;\n @include clearfix;\n margin-bottom: 10px;\n\n .postInfo-container-item {\n float: left;\n }\n }\n }\n\n .word-counter {\n width: 40px;\n position: absolute;\n right: 10px;\n top: 0px;\n }\n}\n\n.article-textarea ::v-deep {\n textarea {\n padding-right: 40px;\n resize: none;\n border: none;\n border-radius: 0px;\n border-bottom: 1px solid #bfcbd9;\n }\n}\n</style>\n"]}]}
|