15f7639f8986fe3defee44d5bfa3ddb3.json 23 KB

1
  1. {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\cms\\addArticle\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\cms\\addArticle\\index.vue","mtime":1761185180078},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQppbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnOw0KaW1wb3J0IHVwbG9hZFBpY3R1cmVzIGZyb20gJ0AvY29tcG9uZW50cy91cGxvYWRQaWN0dXJlcyc7DQppbXBvcnQgV2FuZ0VkaXRvciBmcm9tICdAL2NvbXBvbmVudHMvd2FuZ0VkaXRvci9pbmRleC52dWUnOw0KaW1wb3J0IHsgY21zQWRkQXBpLCBjcmVhdGVBcGksIGNhdGVnb3J5VHJlZUxpc3RBcGkgfSBmcm9tICdAL2FwaS9jbXMnOw0KZXhwb3J0IGRlZmF1bHQgew0KICBuYW1lOiAnYWRkQXJ0aWNsZScsDQogIGNvbXBvbmVudHM6IHsgdXBsb2FkUGljdHVyZXMsIFdhbmdFZGl0b3IgfSwNCiAgZGF0YSgpIHsNCiAgICBjb25zdCB2YWxpZGF0ZVVwbG9hZCA9IChydWxlLCB2YWx1ZSwgY2FsbGJhY2spID0+IHsNCiAgICAgIGlmICh0aGlzLmZvcm1WYWxpZGF0ZS5pbWFnZV9pbnB1dCkgew0KICAgICAgICBjYWxsYmFjaygpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCfor7fkuIrkvKDlm77mloflsIHpnaInKSk7DQogICAgICB9DQogICAgfTsNCiAgICBjb25zdCB2YWxpZGF0ZVVwbG9hZDIgPSAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7DQogICAgICBpZiAoIXRoaXMuZm9ybVZhbGlkYXRlLmNpZCkgew0KICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoJ+ivt+mAieaLqeaWh+eroOWIhuexuycpKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGNhbGxiYWNrKCk7DQogICAgICB9DQogICAgfTsNCiAgICByZXR1cm4gew0KICAgICAgZGlhbG9nOiB7fSwNCiAgICAgIGlzQ2hvaWNlOiAn5Y2V6YCJJywNCiAgICAgIGdyaWQ6IHsNCiAgICAgICAgeGw6IDgsDQogICAgICAgIGxnOiA4LA0KICAgICAgICBtZDogMTIsDQogICAgICAgIHNtOiAyNCwNCiAgICAgICAgeHM6IDI0LA0KICAgICAgfSwNCiAgICAgIGdyaWRQaWM6IHsNCiAgICAgICAgeGw6IDYsDQogICAgICAgIGxnOiA4LA0KICAgICAgICBtZDogMTIsDQogICAgICAgIHNtOiAxMiwNCiAgICAgICAgeHM6IDEyLA0KICAgICAgfSwNCiAgICAgIGdyaWRCdG46IHsNCiAgICAgICAgeGw6IDQsDQogICAgICAgIGxnOiA4LA0KICAgICAgICBtZDogOCwNCiAgICAgICAgc206IDgsDQogICAgICAgIHhzOiA4LA0KICAgICAgfSwNCiAgICAgIGxvYWRpbmc6IGZhbHNlLA0KICAgICAgZm9ybVZhbGlkYXRlOiB7DQogICAgICAgIGlkOiAwLA0KICAgICAgICB0aXRsZTogJycsDQogICAgICAgIGF1dGhvcjogJycsDQogICAgICAgIGltYWdlX2lucHV0OiAnJywNCiAgICAgICAgY29udGVudDogJycsDQogICAgICAgIHN5bm9wc2lzOiAnJywNCiAgICAgICAgdXJsOiAnJywNCiAgICAgICAgaXNfaG90OiAwLA0KICAgICAgICBpc19iYW5uZXI6IDAsDQogICAgICAgIGNpZDogJycsDQogICAgICAgIHZpc2l0OiAwLA0KICAgICAgfSwNCiAgICAgIGNvbnRlbnQ6ICcnLA0KICAgICAgcnVsZVZhbGlkYXRlOiB7DQogICAgICAgIHRpdGxlOiBbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ+ivt+i+k+WFpeagh+mimCcsIHRyaWdnZXI6ICdibHVyJyB9XSwNCiAgICAgICAgY2lkOiBbDQogICAgICAgICAgew0KICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsDQogICAgICAgICAgICB2YWxpZGF0b3I6IHZhbGlkYXRlVXBsb2FkMiwNCiAgICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnLA0KICAgICAgICAgICAgdHlwZTogJ251bWJlcicsDQogICAgICAgICAgfSwNCiAgICAgICAgXSwNCiAgICAgICAgaW1hZ2VfaW5wdXQ6IFt7IHJlcXVpcmVkOiB0cnVlLCB2YWxpZGF0b3I6IHZhbGlkYXRlVXBsb2FkLCB0cmlnZ2VyOiAnY2hhbmdlJyB9XSwNCiAgICAgICAgY29udGVudDogW3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfor7fovpPlhaXmlofnq6DlhoXlrrknLCB0cmlnZ2VyOiAnY2hhbmdlJyB9XSwNCiAgICAgIH0sDQogICAgICB2YWx1ZTogJycsDQogICAgICBtb2RhbFBpYzogZmFsc2UsDQogICAgICB0ZW1wbGF0ZTogZmFsc2UsDQogICAgICB0cmVlRGF0YTogW10sDQogICAgICBmb3JtVmFsaWRhdGUyOiB7DQogICAgICAgIHR5cGU6IDEsDQogICAgICB9LA0KICAgICAgbXlDb25maWc6IHsNCiAgICAgICAgYXV0b0hlaWdodEVuYWJsZWQ6IGZhbHNlLCAvLyDnvJbovpHlmajkuI3oh6rliqjooqvlhoXlrrnmkpHpq5gNCiAgICAgICAgaW5pdGlhbEZyYW1lSGVpZ2h0OiA1MDAsIC8vIOWIneWni+WuueWZqOmrmOW6pg0KICAgICAgICBpbml0aWFsRnJhbWVXaWR0aDogJzEwMCUnLCAvLyDliJ3lp4vlrrnlmajlrr3luqYNCiAgICAgICAgVUVESVRPUl9IT01FX1VSTDogJy9VRWRpdG9yLycsDQogICAgICAgIHNlcnZlclVybDogJycsDQogICAgICB9LA0KICAgIH07DQogIH0sDQogIGNvbXB1dGVkOiB7DQogICAgLi4ubWFwU3RhdGUoJ21lZGlhJywgWydpc01vYmlsZSddKSwNCiAgICBsYWJlbFdpZHRoKCkgew0KICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgPyB1bmRlZmluZWQgOiAnMTAwcHgnOw0KICAgIH0sDQogICAgbGFiZWxQb3NpdGlvbigpIHsNCiAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlID8gJ3RvcCcgOiAncmlnaHQnOw0KICAgIH0sDQogIH0sDQogIHdhdGNoOiB7DQogICAgJHJvdXRlKHRvLCBmcm9tKSB7DQogICAgICBpZiAodGhpcy4kcm91dGUucGFyYW1zLmlkKSB7DQogICAgICAgIHRoaXMuZ2V0RGV0YWlscygpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdGhpcy5mb3JtVmFsaWRhdGUgPSB7DQogICAgICAgICAgaWQ6IDAsDQogICAgICAgICAgdGl0bGU6ICcnLA0KICAgICAgICAgIGF1dGhvcjogJycsDQogICAgICAgICAgaW1hZ2VfaW5wdXQ6ICcnLA0KICAgICAgICAgIGNvbnRlbnQ6ICcnLA0KICAgICAgICAgIHN5bm9wc2lzOiAnJywNCiAgICAgICAgICB1cmw6ICcnLA0KICAgICAgICAgIGlzX2hvdDogMCwNCiAgICAgICAgICBpc19iYW5uZXI6IDAsDQogICAgICAgIH07DQogICAgICB9DQogICAgfSwNCiAgfSwNCiAgbWV0aG9kczogew0KICAgIGdldEVkaXRvckNvbnRlbnQoZGF0YSkgew0KICAgICAgdGhpcy5jb250ZW50ID0gZGF0YTsNCiAgICB9LA0KICAgIC8vIOmAieaLqeWbvueJhw0KICAgIG1vZGFsUGljVGFwKCkgew0KICAgICAgdGhpcy5tb2RhbFBpYyA9IHRydWU7DQogICAgfSwNCiAgICAvLyDpgInkuK3lm77niYcNCiAgICBnZXRQaWMocGMpIHsNCiAgICAgIHRoaXMuZm9ybVZhbGlkYXRlLmltYWdlX2lucHV0ID0gcGMuYXR0X2RpcjsNCiAgICAgIHRoaXMubW9kYWxQaWMgPSBmYWxzZTsNCiAgICB9LA0KICAgIC8vIOWIhuexuw0KICAgIGdldENsYXNzKCkgew0KICAgICAgY2F0ZWdvcnlUcmVlTGlzdEFwaSgpDQogICAgICAgIC50aGVuKGFzeW5jIChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLnRyZWVEYXRhID0gcmVzLmRhdGE7DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDov4fmu6Tor6bmg4XlhoXlrrkNCiAgICBmb3JtYXRSaWNoVGV4dChodG1sKSB7DQogICAgICBsZXQgbmV3Q29udGVudCA9IGh0bWwucmVwbGFjZSgvPGltZ1tePl0qPi9naSwgZnVuY3Rpb24gKG1hdGNoLCBjYXB0dXJlKSB7DQogICAgICAgIG1hdGNoID0gbWF0Y2gucmVwbGFjZSgvc3R5bGU9IlteIl0rIi9naSwgJycpLnJlcGxhY2UoL3N0eWxlPSdbXiddKycvZ2ksICcnKTsNCiAgICAgICAgbWF0Y2ggPSBtYXRjaC5yZXBsYWNlKC93aWR0aD0iW14iXSsiL2dpLCAnJykucmVwbGFjZSgvd2lkdGg9J1teJ10rJy9naSwgJycpOw0KICAgICAgICBtYXRjaCA9IG1hdGNoLnJlcGxhY2UoL2hlaWdodD0iW14iXSsiL2dpLCAnJykucmVwbGFjZSgvaGVpZ2h0PSdbXiddKycvZ2ksICcnKTsNCiAgICAgICAgcmV0dXJuIG1hdGNoOw0KICAgICAgfSk7DQogICAgICBuZXdDb250ZW50ID0gbmV3Q29udGVudC5yZXBsYWNlKC9zdHlsZT0iW14iXSsiL2dpLCBmdW5jdGlvbiAobWF0Y2gsIGNhcHR1cmUpIHsNCiAgICAgICAgbWF0Y2ggPSBtYXRjaC5yZXBsYWNlKC93aWR0aDpbXjtdKzsvZ2ksICdtYXgtd2lkdGg6MTAwJTsnKS5yZXBsYWNlKC9tYXgtbWF4LXdpZHRoOlteO10rOy9naSwgJ21heC13aWR0aDoxMDAlOycpOw0KICAgICAgICByZXR1cm4gbWF0Y2g7DQogICAgICB9KTsNCiAgICAgIC8vIG5ld0NvbnRlbnQgPSBuZXdDb250ZW50LnJlcGxhY2UoLzxicltePl0qXC8+L2dpLCAnJyk7DQogICAgICBuZXdDb250ZW50ID0gbmV3Q29udGVudC5yZXBsYWNlKA0KICAgICAgICAvXDxpbWcvZ2ksDQogICAgICAgICc8aW1nIHN0eWxlPSJtYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0bztkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7IicsDQogICAgICApOw0KICAgICAgcmV0dXJuIG5ld0NvbnRlbnQ7DQogICAgfSwNCiAgICAvLyDmj5DkuqTmlbDmja4NCiAgICBvbnN1Ym1pdChuYW1lKSB7DQogICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5jb250ZW50ID0gdGhpcy5mb3JtYXRSaWNoVGV4dCh0aGlzLmNvbnRlbnQpOw0KICAgICAgdGhpcy4kcmVmc1tuYW1lXS52YWxpZGF0ZSgodmFsaWQpID0+IHsNCiAgICAgICAgaWYgKHZhbGlkKSB7DQogICAgICAgICAgY21zQWRkQXBpKHRoaXMuZm9ybVZhbGlkYXRlKQ0KICAgICAgICAgICAgLnRoZW4oYXN5bmMgKHJlcykgPT4gew0KICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7DQogICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gew0KICAgICAgICAgICAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsgcGF0aDogdGhpcy4kcm91dGVQcm9TdHIgKyAnL2Ntcy9hcnRpY2xlL2luZGV4JyB9KTsNCiAgICAgICAgICAgICAgfSwgNTAwKTsNCiAgICAgICAgICAgIH0pDQogICAgICAgICAgICAuY2F0Y2goKHJlcykgPT4gew0KICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICB9KTsNCiAgICB9LA0KICAgIC8vIOaWh+eroOivpuaDhQ0KICAgIGdldERldGFpbHMoKSB7DQogICAgICBjcmVhdGVBcGkodGhpcy4kcm91dGUucGFyYW1zLmlkID8gdGhpcy4kcm91dGUucGFyYW1zLmlkIDogMCkNCiAgICAgICAgLnRoZW4oYXN5bmMgKHJlcykgPT4gew0KICAgICAgICAgIGxldCBkYXRhID0gcmVzLmRhdGE7DQogICAgICAgICAgbGV0IG5ld3MgPSBkYXRhLmluZm87DQogICAgICAgICAgdGhpcy5mb3JtVmFsaWRhdGUgPSB7DQogICAgICAgICAgICBpZDogbmV3cy5pZCwNCiAgICAgICAgICAgIHRpdGxlOiBuZXdzLnRpdGxlLA0KICAgICAgICAgICAgYXV0aG9yOiBuZXdzLmF1dGhvciwNCiAgICAgICAgICAgIGltYWdlX2lucHV0OiBuZXdzLmltYWdlX2lucHV0LA0KICAgICAgICAgICAgY29udGVudDogbmV3cy5jb250ZW50LA0KICAgICAgICAgICAgc3lub3BzaXM6IG5ld3Muc3lub3BzaXMsDQogICAgICAgICAgICB1cmw6IG5ld3MudXJsLA0KICAgICAgICAgICAgaXNfaG90OiBuZXdzLmlzX2hvdCwNCiAgICAgICAgICAgIGlzX2Jhbm5lcjogbmV3cy5pc19iYW5uZXIsDQogICAgICAgICAgICBjaWQ6IG5ld3MuY2lkLA0KICAgICAgICAgICAgdmlzaXQ6IG5ld3MudmlzaXQsDQogICAgICAgICAgfTsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOw0KICAgICAgICB9KTsNCiAgICB9LA0KICB9LA0KICBtb3VudGVkKCkgew0KICAgIGlmICh0aGlzLiRyb3V0ZS5wYXJhbXMuaWQpIHsNCiAgICAgIHRoaXMuZ2V0RGV0YWlscygpOw0KICAgIH0NCiAgfSwNCiAgY3JlYXRlZCgpIHsNCiAgICB0aGlzLmdldENsYXNzKCk7DQogIH0sDQp9Ow0K"},{"version":3,"sources":["index.vue"],"names":[],"mappings":";AA2HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/pages/cms/addArticle","sourcesContent":["<template>\r\n <div class=\"article-manager\">\r\n <pages-header\r\n ref=\"pageHeader\"\r\n :title=\"$route.params.id ? '编辑文章' : '添加文章'\"\r\n :backUrl=\"$routeProStr + '/cms/article/index'\"\r\n ></pages-header>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"mt16\">\r\n <el-form\r\n class=\"form\"\r\n ref=\"formValidate\"\r\n :model=\"formValidate\"\r\n :rules=\"ruleValidate\"\r\n :label-width=\"labelWidth\"\r\n :label-position=\"labelPosition\"\r\n @submit.native.prevent\r\n >\r\n <div class=\"goodsTitle acea-row\">\r\n <div class=\"title\">文章信息</div>\r\n </div>\r\n <div class=\"grid_box\">\r\n <el-form-item label=\"标题:\" prop=\"title\" label-for=\"title\">\r\n <el-input\r\n v-model=\"formValidate.title\"\r\n placeholder=\"请输入\"\r\n class=\"content_width\"\r\n maxlength=\"80\"\r\n show-word-limit\r\n />\r\n </el-form-item>\r\n <el-form-item label=\"作者:\" prop=\"author\" label-for=\"author\">\r\n <el-input\r\n v-model=\"formValidate.author\"\r\n placeholder=\"请输入\"\r\n class=\"content_width\"\r\n maxlength=\"10\"\r\n show-word-limit\r\n />\r\n </el-form-item>\r\n <el-form-item label=\"文章分类:\" label-for=\"cid\" prop=\"cid\">\r\n <el-cascader\r\n class=\"content_width\"\r\n v-model=\"formValidate.cid\"\r\n size=\"small\"\r\n :options=\"treeData\"\r\n :props=\"{ multiple: false, checkStrictly: true, emitPath: false }\"\r\n clearable\r\n ></el-cascader>\r\n </el-form-item>\r\n <el-form-item label=\"文章简介:\" prop=\"synopsis\" label-for=\"synopsis\">\r\n <el-input\r\n v-model=\"formValidate.synopsis\"\r\n type=\"textarea\"\r\n placeholder=\"请输入\"\r\n class=\"content_width\"\r\n maxlength=\"300\"\r\n show-word-limit\r\n />\r\n </el-form-item>\r\n <el-form-item label=\"图文封面:\" prop=\"image_input\">\r\n <div class=\"picBox\" v-db-click @click=\"modalPicTap('单选')\">\r\n <div class=\"pictrue\" v-if=\"formValidate.image_input\">\r\n <img :src=\"formValidate.image_input\" />\r\n </div>\r\n <div class=\"upLoad acea-row row-center-wrapper\" v-else>\r\n <i class=\"el-icon-plus\" style=\"font-size: 24px\"></i>\r\n </div>\r\n </div>\r\n <div class=\"tip\">建议尺寸:500 x 312 px</div>\r\n </el-form-item>\r\n </div>\r\n <div class=\"goodsTitle acea-row\">\r\n <div class=\"title\">文章内容</div>\r\n </div>\r\n <el-form-item label=\"文章内容:\" prop=\"content\">\r\n <WangEditor style=\"width: 90%\" :content=\"formValidate.content\" @editorContent=\"getEditorContent\"></WangEditor>\r\n </el-form-item>\r\n <div class=\"goodsTitle acea-row\">\r\n <div class=\"title\">其他设置</div>\r\n </div>\r\n <el-row :gutter=\"24\">\r\n <!-- <el-col :span=\"24\">-->\r\n <!-- <el-form-item label=\"原文链接:\">-->\r\n <!-- <el-input v-model=\"formValidate.url\" placeholder=\"请输入\" element-id=\"url\" style=\"width: 60%\"/>-->\r\n <!-- </el-form-item>-->\r\n <!-- </el-col>-->\r\n <el-col :span=\"24\">\r\n <el-form-item label=\"banner显示:\" label-for=\"is_banner\">\r\n <el-radio-group v-model=\"formValidate.is_banner\" element-id=\"is_banner\">\r\n <el-radio :label=\"1\" class=\"radio\">显示</el-radio>\r\n <el-radio :label=\"0\">不显示</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"24\">\r\n <el-form-item label=\"热门文章:\" label-for=\"is_hot\">\r\n <el-radio-group v-model=\"formValidate.is_hot\" element-id=\"is_hot\">\r\n <el-radio :label=\"1\" class=\"radio\">显示</el-radio>\r\n <el-radio :label=\"0\">不显示</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"24\">\r\n <el-form-item label=\"\">\r\n <el-button type=\"primary\" class=\"submission\" v-db-click @click=\"onsubmit('formValidate')\">提交</el-button>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <el-dialog :visible.sync=\"modalPic\" width=\"950px\" title=\"上传商品图\" :close-on-click-modal=\"false\">\r\n <uploadPictures\r\n :isChoice=\"isChoice\"\r\n @getPic=\"getPic\"\r\n :gridBtn=\"gridBtn\"\r\n :gridPic=\"gridPic\"\r\n v-if=\"modalPic\"\r\n ></uploadPictures>\r\n </el-dialog>\r\n </el-card>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapState } from 'vuex';\r\nimport uploadPictures from '@/components/uploadPictures';\r\nimport WangEditor from '@/components/wangEditor/index.vue';\r\nimport { cmsAddApi, createApi, categoryTreeListApi } from '@/api/cms';\r\nexport default {\r\n name: 'addArticle',\r\n components: { uploadPictures, WangEditor },\r\n data() {\r\n const validateUpload = (rule, value, callback) => {\r\n if (this.formValidate.image_input) {\r\n callback();\r\n } else {\r\n callback(new Error('请上传图文封面'));\r\n }\r\n };\r\n const validateUpload2 = (rule, value, callback) => {\r\n if (!this.formValidate.cid) {\r\n callback(new Error('请选择文章分类'));\r\n } else {\r\n callback();\r\n }\r\n };\r\n return {\r\n dialog: {},\r\n isChoice: '单选',\r\n grid: {\r\n xl: 8,\r\n lg: 8,\r\n md: 12,\r\n sm: 24,\r\n xs: 24,\r\n },\r\n gridPic: {\r\n xl: 6,\r\n lg: 8,\r\n md: 12,\r\n sm: 12,\r\n xs: 12,\r\n },\r\n gridBtn: {\r\n xl: 4,\r\n lg: 8,\r\n md: 8,\r\n sm: 8,\r\n xs: 8,\r\n },\r\n loading: false,\r\n formValidate: {\r\n id: 0,\r\n title: '',\r\n author: '',\r\n image_input: '',\r\n content: '',\r\n synopsis: '',\r\n url: '',\r\n is_hot: 0,\r\n is_banner: 0,\r\n cid: '',\r\n visit: 0,\r\n },\r\n content: '',\r\n ruleValidate: {\r\n title: [{ required: true, message: '请输入标题', trigger: 'blur' }],\r\n cid: [\r\n {\r\n required: true,\r\n validator: validateUpload2,\r\n trigger: 'change',\r\n type: 'number',\r\n },\r\n ],\r\n image_input: [{ required: true, validator: validateUpload, trigger: 'change' }],\r\n content: [{ required: true, message: '请输入文章内容', trigger: 'change' }],\r\n },\r\n value: '',\r\n modalPic: false,\r\n template: false,\r\n treeData: [],\r\n formValidate2: {\r\n type: 1,\r\n },\r\n myConfig: {\r\n autoHeightEnabled: false, // 编辑器不自动被内容撑高\r\n initialFrameHeight: 500, // 初始容器高度\r\n initialFrameWidth: '100%', // 初始容器宽度\r\n UEDITOR_HOME_URL: '/UEditor/',\r\n serverUrl: '',\r\n },\r\n };\r\n },\r\n computed: {\r\n ...mapState('media', ['isMobile']),\r\n labelWidth() {\r\n return this.isMobile ? undefined : '100px';\r\n },\r\n labelPosition() {\r\n return this.isMobile ? 'top' : 'right';\r\n },\r\n },\r\n watch: {\r\n $route(to, from) {\r\n if (this.$route.params.id) {\r\n this.getDetails();\r\n } else {\r\n this.formValidate = {\r\n id: 0,\r\n title: '',\r\n author: '',\r\n image_input: '',\r\n content: '',\r\n synopsis: '',\r\n url: '',\r\n is_hot: 0,\r\n is_banner: 0,\r\n };\r\n }\r\n },\r\n },\r\n methods: {\r\n getEditorContent(data) {\r\n this.content = data;\r\n },\r\n // 选择图片\r\n modalPicTap() {\r\n this.modalPic = true;\r\n },\r\n // 选中图片\r\n getPic(pc) {\r\n this.formValidate.image_input = pc.att_dir;\r\n this.modalPic = false;\r\n },\r\n // 分类\r\n getClass() {\r\n categoryTreeListApi()\r\n .then(async (res) => {\r\n this.treeData = res.data;\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 过滤详情内容\r\n formatRichText(html) {\r\n let newContent = html.replace(/<img[^>]*>/gi, function (match, capture) {\r\n match = match.replace(/style=\"[^\"]+\"/gi, '').replace(/style='[^']+'/gi, '');\r\n match = match.replace(/width=\"[^\"]+\"/gi, '').replace(/width='[^']+'/gi, '');\r\n match = match.replace(/height=\"[^\"]+\"/gi, '').replace(/height='[^']+'/gi, '');\r\n return match;\r\n });\r\n newContent = newContent.replace(/style=\"[^\"]+\"/gi, function (match, capture) {\r\n match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/max-max-width:[^;]+;/gi, 'max-width:100%;');\r\n return match;\r\n });\r\n // newContent = newContent.replace(/<br[^>]*\\/>/gi, '');\r\n newContent = newContent.replace(\r\n /\\<img/gi,\r\n '<img style=\"max-width:100%;height:auto;display:block;margin-top:0;margin-bottom:0;\"',\r\n );\r\n return newContent;\r\n },\r\n // 提交数据\r\n onsubmit(name) {\r\n this.formValidate.content = this.formatRichText(this.content);\r\n this.$refs[name].validate((valid) => {\r\n if (valid) {\r\n cmsAddApi(this.formValidate)\r\n .then(async (res) => {\r\n this.$message.success(res.msg);\r\n setTimeout(() => {\r\n this.$router.push({ path: this.$routeProStr + '/cms/article/index' });\r\n }, 500);\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n } else {\r\n return false;\r\n }\r\n });\r\n },\r\n // 文章详情\r\n getDetails() {\r\n createApi(this.$route.params.id ? this.$route.params.id : 0)\r\n .then(async (res) => {\r\n let data = res.data;\r\n let news = data.info;\r\n this.formValidate = {\r\n id: news.id,\r\n title: news.title,\r\n author: news.author,\r\n image_input: news.image_input,\r\n content: news.content,\r\n synopsis: news.synopsis,\r\n url: news.url,\r\n is_hot: news.is_hot,\r\n is_banner: news.is_banner,\r\n cid: news.cid,\r\n visit: news.visit,\r\n };\r\n })\r\n .catch((res) => {\r\n this.loading = false;\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n },\r\n mounted() {\r\n if (this.$route.params.id) {\r\n this.getDetails();\r\n }\r\n },\r\n created() {\r\n this.getClass();\r\n },\r\n};\r\n</script>\r\n<style scoped lang=\"scss\">\r\n.grid_box {\r\n display: grid;\r\n grid-template-columns: repeat(2, 1fr);\r\n grid-template-rows: auto;\r\n grid-gap: 0;\r\n}\r\n.content_width {\r\n width: 414px;\r\n}\r\n::v-deep .ivu-form-item-content {\r\n line-height: unset !important;\r\n}\r\n.picBox {\r\n display: inline-block;\r\n cursor: pointer;\r\n}\r\n\r\n.form .goodsTitle {\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.09);\r\n margin-bottom: 25px;\r\n}\r\n\r\n.form .goodsTitle ~ .goodsTitle {\r\n margin-top: 20px;\r\n}\r\n\r\n.form .goodsTitle .title {\r\n border-bottom: 2px solid var(--prev-color-primary);\r\n padding: 0 8px 12px 5px;\r\n color: #000;\r\n font-size: 14px;\r\n}\r\n\r\n.form .goodsTitle .icons {\r\n font-size: 15px;\r\n margin-right: 8px;\r\n color: #999;\r\n}\r\n\r\n.form .add {\r\n font-size: 12px;\r\n color: var(--prev-color-primary);\r\n padding: 0 12px;\r\n cursor: pointer;\r\n}\r\n\r\n.form .radio {\r\n margin-right: 20px;\r\n}\r\n\r\n.form .submission {\r\n width: 10%;\r\n}\r\n\r\n.form .upLoad {\r\n width: 58px;\r\n height: 58px;\r\n line-height: 58px;\r\n border: 1px dotted rgba(0, 0, 0, 0.1);\r\n border-radius: 4px;\r\n background: rgba(0, 0, 0, 0.02);\r\n}\r\n\r\n.form .iconfont {\r\n color: #898989;\r\n}\r\n\r\n.form .pictrue {\r\n width: 60px;\r\n height: 60px;\r\n border: 1px dotted rgba(0, 0, 0, 0.1);\r\n margin-right: 10px;\r\n}\r\n\r\n.form .pictrue img {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.Modals .address {\r\n width: 90%;\r\n}\r\n\r\n.Modals .address .iconfont {\r\n font-size: 20px;\r\n}\r\n.tip {\r\n margin-top: 10px;\r\n color: #bbb;\r\n font-size: 12px;\r\n}\r\n</style>\r\n"]}]}