e57073636afa4871132539ba54a1933a.json 28 KB

1
  1. {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\pages\\app\\wechat\\reply\\follow.vue?vue&type=style&index=0&id=d3c80f06&lang=scss&scoped=true","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\app\\wechat\\reply\\follow.vue","mtime":1761614939008},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\css-loader\\index.js","mtime":1761614929364},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":1761614937403},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\postcss-loader\\src\\index.js","mtime":1761614935133},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\sass-loader\\dist\\cjs.js","mtime":1761614936391},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1761614937402}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQoqIHsNCiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsgLyog54Gr54uQICovDQogIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IC8qIHdlYmtpdOa1j+iniOWZqCAqLw0KICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7IC8qIElFMTAgKi8NCiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lOyAvKiDml6nmnJ/mtY/op4jlmaggKi8NCiAgdXNlci1zZWxlY3Q6IG5vbmU7DQp9DQouYXJyYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7DQogIGZvbnQtc2l6ZTogMTJweDsNCiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGVlMjsNCiAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICBtYXJnaW4tYm90dG9tOiAwcHg7DQogIHBhZGRpbmc6IDAgNXB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICB3aWR0aDogOTAlOw0KICAuZWwtdGFnIHsNCiAgICBtYXJnaW4tcmlnaHQ6IDNweDsNCiAgfQ0KfQ0KLmFycmJveF9pcCB7DQogIGZvbnQtc2l6ZTogMTJweDsNCiAgYm9yZGVyOiBub25lOw0KICBib3gtc2hhZG93OiBub25lOw0KICBvdXRsaW5lOiBub25lOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgcGFkZGluZzogMDsNCiAgbWFyZ2luOiAwOw0KICB3aWR0aDogYXV0byAhaW1wb3J0YW50Ow0KICBtYXgtd2lkdGg6IGluaGVyaXQ7DQogIG1pbi13aWR0aDogODBweDsNCiAgdmVydGljYWwtYWxpZ246IHRvcDsNCiAgaGVpZ2h0OiAzMHB4Ow0KICBjb2xvcjogIzM0NDk1ZTsNCiAgbWFyZ2luOiAycHg7DQogIGxpbmUtaGVpZ2h0OiAzMHB4Ow0KfQ0KLmxlZnQgew0KICBtaW4td2lkdGg6IDM5MHB4Ow0KICBtaW4taGVpZ2h0OiA1NTBweDsNCiAgcG9zaXRpb246IHJlbGF0aXZlOw0KICBwYWRkaW5nLWxlZnQ6IDQwcHg7DQp9DQoudG9wIHsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICB0b3A6IDBweDsNCn0NCi5ib3R0b20gew0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIGJvdHRvbTogMHB4Ow0KfQ0KLmNlbnRlbnQgew0KICBiYWNrZ3JvdW5kOiAjZjRmNWY5Ow0KICBtaW4taGVpZ2h0OiA0MzhweDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICB0b3A6IDYzcHg7DQogIHdpZHRoOiAzMjBweDsNCiAgaGVpZ2h0OiA2MCU7DQogIG92ZXJmbG93LXk6IGF1dG87DQogIHBhZGRpbmc6IDE1cHg7DQogIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCn0NCi5yaWdodCB7DQogIGJhY2tncm91bmQ6ICNmZmY7DQogIG1pbi1oZWlnaHQ6IDMwMHB4Ow0KfQ0KLmJveC1jb250ZW50IHsNCiAgcG9zaXRpb246IHJlbGF0aXZlOw0KICBtYXgtd2lkdGg6IDYwJTsNCiAgbWluLWhlaWdodDogNDBweDsNCiAgbWFyZ2luLWxlZnQ6IDE1cHg7DQogIHBhZGRpbmc6IDEwcHg7DQogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7DQogIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsNCiAgd29yZC13cmFwOiBicmVhay13b3JkOw0KICBsaW5lLWhlaWdodDogMS41Ow0KICBib3JkZXItcmFkaXVzOiA1cHg7DQp9DQouYm94LWNvbnRlbnRfcGljIHsNCiAgd2lkdGg6IDEwMCU7DQp9DQouYm94LWNvbnRlbnRfcGljIGltZyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IGF1dG87DQp9DQouYm94LWNvbnRlbnQ6YmVmb3JlIHsNCiAgY29udGVudDogJyc7DQogIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgbGVmdDogLTEzcHg7DQogIHRvcDogMTFweDsNCiAgZGlzcGxheTogYmxvY2s7DQogIHdpZHRoOiAwOw0KICBoZWlnaHQ6IDA7DQogIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7DQogIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItdG9wOiAxMHB4IHNvbGlkICNjY2M7DQogIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOw0KICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7DQp9DQouYm94LWNvbnRlbnQ6YWZ0ZXIgew0KICBjb250ZW50OiAnJzsNCiAgY29udGVudDogJyc7DQogIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgbGVmdDogLTEycHg7DQogIHRvcDogMTFweDsNCiAgZGlzcGxheTogYmxvY2s7DQogIHdpZHRoOiAwOw0KICBoZWlnaHQ6IDA7DQogIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7DQogIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItdG9wOiAxMHB4IHNvbGlkICNmNWY1ZjU7DQogIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOw0KICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7DQp9DQoudGltZS13cmFwcGVyIHsNCiAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KLnRpbWUgew0KICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogIGNvbG9yOiAjZjVmNWY1Ow0KICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMyk7DQogIHBhZGRpbmc6IDNweCA4cHg7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KfQ0KLnRleHQtYm94IHsNCiAgZGlzcGxheTogZmxleDsNCn0NCi5hdmF0YXIgew0KICB3aWR0aDogNDBweDsNCiAgaGVpZ2h0OiA0MHB4Ow0KfQ0KLmF2YXRhciBpbWcgew0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KLm1vZGVsQm94IHsNCiAgOjp2LWRlZXAgLml2dS1tb2RhbC1ib2R5IHsNCiAgICBwYWRkaW5nOiAwIDE2cHggMTZweCAxNnB4ICFpbXBvcnRhbnQ7DQogIH0NCn0NCi5uZXdzX3BpYyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsNCiAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7DQogIHBhZGRpbmc6IDEwcHg7DQogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7DQogIGRpc3BsYXk6IGZsZXg7DQogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsNCn0NCi5uZXdzX3NwIHsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogIzAwMDAwMDsNCiAgYmFja2dyb3VuZDogI2ZmZjsNCiAgd2lkdGg6IDEwMCU7DQogIGhlaWdodDogMzhweDsNCiAgbGluZS1oZWlnaHQ6IDM4cHg7DQogIHBhZGRpbmc6IDAgMTJweDsNCiAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgZGlzcGxheTogYmxvY2s7DQp9DQoubmV3c19jZW50IHsNCiAgd2lkdGg6IDEwMCU7DQogIGhlaWdodDogYXV0bzsNCiAgYmFja2dyb3VuZDogI2ZmZjsNCiAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCAjZWVlOw0KICBkaXNwbGF5OiBmbGV4Ow0KICBwYWRkaW5nOiAxMHB4Ow0KICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQogIC5uZXdzX3NwMSB7DQogICAgZm9udC1zaXplOiAxMnB4Ow0KICAgIGNvbG9yOiAjMDAwMDAwOw0KICAgIHdpZHRoOiA3MSU7DQogIH0NCiAgLm5ld3NfY2VudF9pbWcgew0KICAgIHdpZHRoOiA4MXB4Ow0KICAgIGhlaWdodDogNDZweDsNCiAgICBib3JkZXItcmFkaXVzOiA2cHg7DQogICAgb3ZlcmZsb3c6IGhpZGRlbjsNCg0KICAgIGltZyB7DQogICAgICB3aWR0aDogMTAwJTsNCiAgICAgIGhlaWdodDogMTAwJTsNCiAgICB9DQogIH0NCn0NCg=="},{"version":3,"sources":["follow.vue"],"names":[],"mappings":";AAgbA;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;;AAEA;AACA;AACA;AACA;AACA;AACA","file":"follow.vue","sourceRoot":"src/pages/app/wechat/reply","sourcesContent":["<template>\r\n <div>\r\n <pages-header\r\n ref=\"pageHeader\"\r\n :title=\"$route.meta.title\"\r\n :backUrl=\"$routeProStr + '/app/wechat/reply/keyword'\"\r\n ></pages-header>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt-16\">\r\n <!-- 公众号设置 -->\r\n <el-row :gutter=\"24\">\r\n <el-col :span=\"24\" class=\"ml40\">\r\n <!-- 预览功能 -->\r\n <el-col :span=\"24\">\r\n <el-col :xl=\"7\" :lg=\"7\" :md=\"22\" :sm=\"22\" :xs=\"22\" class=\"left mb15\">\r\n <img class=\"top\" src=\"../../../../assets/images/mobilehead.png\" />\r\n <img class=\"bottom\" src=\"../../../../assets/images/mobilefoot.png\" />\r\n <div class=\"centent\">\r\n <div class=\"time-wrapper\"><span class=\"time\">9:36</span></div>\r\n <div class=\"view-item text-box clearfix\" v-if=\"formValidate.type !== 'news'\">\r\n <div class=\"avatar fl\"><img src=\"../../../../assets/images/head.gif\" /></div>\r\n <div class=\"box-content fl\">\r\n <span v-text=\"formValidate.data.content\" v-if=\"formValidate.type === 'text'\"></span>\r\n <div class=\"box-content_pic\" v-if=\"formValidate.data.src\">\r\n <img :src=\"formValidate.data.src ? imgUrl + formValidate.data.src : ''\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div v-if=\"formValidate.type === 'news'\">\r\n <div v-for=\"(j, i) in formValidate.data.list\" :key=\"i\">\r\n <div v-if=\"i === 0\">\r\n <div\r\n class=\"news_pic\"\r\n :style=\"{ backgroundImage: 'url(' + j.image_input[0] + ')', backgroundSize: '100% 100%' }\"\r\n ></div>\r\n <span class=\"news_sp\">{{ j.title }}</span>\r\n </div>\r\n <div v-else class=\"news_cent\">\r\n <span class=\"news_sp1\" v-if=\"j.synopsis\">{{ j.title }}</span>\r\n <div class=\"news_cent_img\" v-if=\"j.image_input.length !== 0\"><img :src=\"j.image_input[0]\" /></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </el-col>\r\n <el-col :xl=\"11\" :lg=\"12\" :md=\"22\" :sm=\"22\" :xs=\"22\">\r\n <el-col :span=\"24\" class=\"userAlert\">\r\n <div class=\"box-card right\">\r\n <el-form\r\n ref=\"formValidate\"\r\n :model=\"formValidate\"\r\n :rules=\"ruleValidate\"\r\n label-width=\"100px\"\r\n class=\"mt20\"\r\n @submit.native.prevent\r\n >\r\n <el-form-item label=\"关键字:\" prop=\"val\" v-if=\"$route.params.id\">\r\n <div class=\"arrbox\">\r\n <!--:closable=\"$route.params.id==='0'? true : false\"-->\r\n <el-tag\r\n @close=\"handleClose(item)\"\r\n :name=\"item\"\r\n :closable=\"true\"\r\n v-for=\"(item, index) in labelarr\"\r\n :key=\"index\"\r\n >{{ item }}\r\n </el-tag>\r\n <!--:readonly=\"$route.params.id!=='0'\"-->\r\n <input\r\n class=\"arrbox_ip\"\r\n v-model=\"val\"\r\n placeholder=\"输入后回车\"\r\n style=\"width: 90%\"\r\n @keyup.enter=\"addlabel\"\r\n />\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"消息状态:\">\r\n <el-radio-group v-model=\"formValidate.status\">\r\n <el-radio :label=\"1\">启用</el-radio>\r\n <el-radio :label=\"0\">禁用</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n <el-form-item label=\"消息类型:\" prop=\"type\">\r\n <el-select\r\n v-model=\"formValidate.type\"\r\n placeholder=\"请选择规则状态\"\r\n style=\"width: 90%\"\r\n @change=\"RuleFactor(formValidate.type)\"\r\n >\r\n <el-option value=\"text\" label=\"文字消息\"></el-option>\r\n <el-option value=\"image\" label=\"图片消息\"></el-option>\r\n <el-option value=\"news\" label=\"图文消息\"></el-option>\r\n <el-option value=\"voice\" label=\"声音消息\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"消息内容:\" prop=\"content\" v-if=\"formValidate.type === 'text'\">\r\n <el-input\r\n v-model=\"formValidate.data.content\"\r\n placeholder=\"请填写消息内容\"\r\n style=\"width: 90%\"\r\n type=\"textarea\"\r\n :rows=\"4\"\r\n ></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"选取图文:\" v-if=\"formValidate.type === 'news'\">\r\n <el-button v-db-click @click=\"changePic\">选择图文消息</el-button>\r\n </el-form-item>\r\n\r\n <el-form-item\r\n :label=\"formValidate.type === 'image' ? '图片地址:' : '语音地址:'\"\r\n prop=\"src\"\r\n v-if=\"formValidate.type === 'image' || formValidate.type === 'voice'\"\r\n >\r\n <div class=\"acea-row row-middle\">\r\n <el-input\r\n readonly=\"readonly\"\r\n placeholder=\"default size\"\r\n style=\"width: 75%\"\r\n class=\"mr15\"\r\n v-model=\"formValidate.data.src\"\r\n />\r\n <el-upload\r\n :show-file-list=\"false\"\r\n :action=\"fileUrl\"\r\n :on-success=\"handleSuccess\"\r\n :accept=\"formValidate.type === 'image' ? formatImg : formatVoice\"\r\n :max-size=\"2048\"\r\n :headers=\"header\"\r\n :on-format-error=\"handleFormatError\"\r\n :on-exceeded-size=\"handleMaxSize\"\r\n :before-upload=\"beforeUpload\"\r\n class=\"mr20\"\r\n style=\"margin-top: 1px\"\r\n >\r\n <el-button type=\"primary\">上传</el-button>\r\n </el-upload>\r\n </div>\r\n <span v-show=\"formValidate.type === 'image'\">文件最大2Mb,支持bmp/png/jpeg/jpg/gif格式</span>\r\n <span v-show=\"formValidate.type === 'voice'\">文件最大2Mb,支持mp3格式,播放长度不超过60s</span>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button type=\"primary\" class=\"mr20\" v-db-click @click=\"submenus('formValidate')\"\r\n >保存并发布\r\n </el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n </el-col>\r\n <!-- <el-col :span=\"24\">\r\n <div class=\"acea-row row-center\">\r\n <el-button type=\"primary\" class=\"mr20\" v-db-click @click=\"submenus('formValidate')\">保存并发布 </el-button>\r\n </div>\r\n </el-col> -->\r\n </el-col>\r\n </el-col>\r\n </el-col>\r\n </el-row>\r\n </el-card>\r\n\r\n <!--图文消息 -->\r\n <el-dialog :visible.sync=\"modals\" title=\"发送消息\" width=\"1200px\" :lock-scroll=\"false\" class=\"modelBox\">\r\n <news-category\r\n v-if=\"modals\"\r\n @getCentList=\"getCentList\"\r\n :scrollerHeight=\"scrollerHeight\"\r\n :contentTop=\"contentTop\"\r\n :contentWidth=\"contentWidth\"\r\n :maxCols=\"maxCols\"\r\n ></news-category>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport Setting from '@/setting';\r\nimport { replyApi, keywordsinfoApi } from '@/api/app';\r\n// import { mapActions } from 'vuex'\r\nimport newsCategory from '@/components/newsCategory/index';\r\nimport { getCookies } from '@/libs/util';\r\nimport { isPicUpload } from '@/utils';\r\n\r\nexport default {\r\n name: 'follow',\r\n components: { newsCategory },\r\n data() {\r\n const validateContent = (rule, value, callback) => {\r\n if (this.formValidate.type === 'text') {\r\n if (this.formValidate.data.content === '') {\r\n callback(new Error('请填写规则内容'));\r\n } else {\r\n callback();\r\n }\r\n }\r\n };\r\n const validateSrc = (rule, value, callback) => {\r\n if (this.formValidate.type === 'image' && this.formValidate.data.src === '') {\r\n callback(new Error('请上传'));\r\n } else {\r\n callback();\r\n }\r\n };\r\n const validateVal = (rule, value, callback) => {\r\n if (this.labelarr.length === 0) {\r\n callback(new Error('请输入后回车'));\r\n } else {\r\n callback();\r\n }\r\n };\r\n return {\r\n delfromData: {},\r\n isShow: false,\r\n maxCols: 4,\r\n scrollerHeight: '600',\r\n contentTop: '130',\r\n contentWidth: '98%',\r\n modals: false,\r\n val: '',\r\n formatImg: ['jpg', 'jpeg', 'png', 'bmp', 'gif'],\r\n formatVoice: ['mp3', 'wma', 'wav', 'amr'],\r\n header: {},\r\n formValidate: {\r\n status: -1,\r\n type: '',\r\n key: this.$route.params.key || '',\r\n data: {\r\n content: '',\r\n src: '',\r\n list: [],\r\n },\r\n id: 0,\r\n },\r\n fileUrl: Setting.apiBaseURL + '/file/upload/1',\r\n ruleValidate: {\r\n val: [{ required: true, validator: validateVal, trigger: 'change' }],\r\n type: [{ required: true, message: '请选择消息类型', trigger: 'change' }],\r\n content: [{ required: true, validator: validateContent, trigger: 'blur' }],\r\n src: [{ required: true, validator: validateSrc, trigger: 'change' }],\r\n },\r\n labelarr: [],\r\n };\r\n },\r\n watch: {\r\n $route(to, from) {\r\n if (this.$route.params.key || this.$route.params.id !== '0') {\r\n this.formValidate.key = this.$route.params.key;\r\n this.details();\r\n } else {\r\n this.labelarr = [];\r\n this.$refs['formValidate'].resetFields();\r\n }\r\n },\r\n },\r\n computed: {\r\n imgUrl() {\r\n const search = '/adminapi/';\r\n const start = Setting.apiBaseURL.indexOf(search);\r\n return Setting.apiBaseURL.substring(0, start); // 截取字符串\r\n },\r\n },\r\n mounted() {\r\n this.getToken();\r\n if (this.$route.params.key || (this.$route.params.id && this.$route.params.id !== '0')) {\r\n this.details();\r\n }\r\n },\r\n methods: {\r\n beforeUpload(file) {},\r\n getCentList(val) {\r\n this.formValidate.data.list = val.new;\r\n this.modals = false;\r\n },\r\n addlabel() {\r\n let count = this.labelarr.indexOf(this.val);\r\n if (count === -1) {\r\n this.labelarr.push(this.val);\r\n }\r\n this.val = '';\r\n },\r\n handleClose(name) {\r\n const index = this.labelarr.indexOf(name);\r\n this.labelarr.splice(index, 1);\r\n },\r\n // 详情\r\n details() {\r\n let url = '';\r\n let data = {};\r\n if (this.$route.params.id) {\r\n url = 'app/wechat/keyword/' + this.$route.params.id;\r\n data = {};\r\n } else {\r\n url = 'app/wechat/reply';\r\n data = {\r\n key: {\r\n key: this.formValidate.key,\r\n },\r\n };\r\n }\r\n keywordsinfoApi(url, data)\r\n .then(async (res) => {\r\n if (res.data.info.data instanceof Array) {\r\n this.formValidate.status = 0;\r\n return;\r\n }\r\n let info = res.data.info || {};\r\n let data = info.data || {};\r\n this.formValidate = {\r\n status: info.status,\r\n type: info.type,\r\n key: info.key,\r\n data: {\r\n content: data.content,\r\n src: data.src,\r\n list: data.list,\r\n },\r\n id: info.id,\r\n };\r\n if (this.$route.params.id) {\r\n this.labelarr = this.formValidate.key.split(',') || [];\r\n }\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 选择图文\r\n changePic() {\r\n this.modals = true;\r\n },\r\n // 下拉选择\r\n RuleFactor(type) {\r\n switch (type) {\r\n case 'text':\r\n this.formValidate.data.src = '';\r\n this.formValidate.data.list = [];\r\n break;\r\n case 'news':\r\n this.formValidate.data.src = '';\r\n this.formValidate.data.content = '';\r\n break;\r\n default:\r\n this.formValidate.data.list = [];\r\n this.formValidate.data.content = '';\r\n this.formValidate.data.src = '';\r\n }\r\n // this.$refs['formValidate'].resetFields();\r\n },\r\n // 上传头部token\r\n getToken() {\r\n this.header['Authori-zation'] = 'Bearer ' + getCookies('token');\r\n },\r\n // 上传成功\r\n handleSuccess(res, file) {\r\n if (res.status === 200) {\r\n this.formValidate.data.src = res.data.src;\r\n this.$message.success(res.msg);\r\n } else {\r\n this.$message.error(res.msg);\r\n }\r\n },\r\n handleFormatError(file) {\r\n if (this.formValidate.type === 'image') {\r\n this.$message.warning('请上传bmp/png/jpeg/jpg/gif格式的图片');\r\n } else {\r\n this.$message.warning('请上传mp3/wma/wav/amr格式的语音');\r\n }\r\n },\r\n handleMaxSize(file) {\r\n this.$message.warning('请上传文件2M以内的文件');\r\n },\r\n // 保存\r\n submenus(name) {\r\n this.$refs[name].validate((valid) => {\r\n if (valid) {\r\n let data = {};\r\n if (this.$route.params.id) {\r\n this.formValidate.key = this.labelarr.join(',');\r\n data = {\r\n url: 'app/wechat/keyword/' + this.$route.params.id,\r\n key: this.formValidate,\r\n };\r\n } else {\r\n data = {\r\n url: 'app/wechat/keyword/' + this.formValidate.id,\r\n key: this.formValidate,\r\n };\r\n }\r\n replyApi(data)\r\n .then(async (res) => {\r\n this.operation();\r\n this.$message.success(res.msg);\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 operation() {\r\n if (this.$route.params.id && this.$route.params.id === '0') {\r\n this.$msgbox({\r\n title: '提示',\r\n message: '是否继续添加',\r\n showCancelButton: true,\r\n cancelButtonText: '否',\r\n confirmButtonText: '是',\r\n iconClass: 'el-icon-warning',\r\n confirmButtonClass: 'btn-custom-cancel',\r\n })\r\n .then(() => {\r\n setTimeout(() => {\r\n this.labelarr = [];\r\n this.val = '';\r\n this.$refs['formValidate'].resetFields();\r\n }, 1000);\r\n })\r\n .catch(() => {\r\n setTimeout(() => {\r\n this.$router.push({ path: this.$routeProStr + '/app/wechat/reply/keyword' });\r\n }, 500);\r\n });\r\n } else if (this.$route.params.id && this.$route.params.id !== '0') {\r\n this.$router.push({ path: this.$routeProStr + '/app/wechat/reply/keyword' });\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n* {\r\n -moz-user-select: none; /* 火狐 */\r\n -webkit-user-select: none; /* webkit浏览器 */\r\n -ms-user-select: none; /* IE10 */\r\n -khtml-user-select: none; /* 早期浏览器 */\r\n user-select: none;\r\n}\r\n.arrbox {\r\n background-color: white;\r\n font-size: 12px;\r\n border: 1px solid #dcdee2;\r\n border-radius: 6px;\r\n margin-bottom: 0px;\r\n padding: 0 5px;\r\n text-align: left;\r\n box-sizing: border-box;\r\n width: 90%;\r\n .el-tag {\r\n margin-right: 3px;\r\n }\r\n}\r\n.arrbox_ip {\r\n font-size: 12px;\r\n border: none;\r\n box-shadow: none;\r\n outline: none;\r\n background-color: transparent;\r\n padding: 0;\r\n margin: 0;\r\n width: auto !important;\r\n max-width: inherit;\r\n min-width: 80px;\r\n vertical-align: top;\r\n height: 30px;\r\n color: #34495e;\r\n margin: 2px;\r\n line-height: 30px;\r\n}\r\n.left {\r\n min-width: 390px;\r\n min-height: 550px;\r\n position: relative;\r\n padding-left: 40px;\r\n}\r\n.top {\r\n position: absolute;\r\n top: 0px;\r\n}\r\n.bottom {\r\n position: absolute;\r\n bottom: 0px;\r\n}\r\n.centent {\r\n background: #f4f5f9;\r\n min-height: 438px;\r\n position: absolute;\r\n top: 63px;\r\n width: 320px;\r\n height: 60%;\r\n overflow-y: auto;\r\n padding: 15px;\r\n -webkit-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\r\n.right {\r\n background: #fff;\r\n min-height: 300px;\r\n}\r\n.box-content {\r\n position: relative;\r\n max-width: 60%;\r\n min-height: 40px;\r\n margin-left: 15px;\r\n padding: 10px;\r\n box-sizing: border-box;\r\n border: 1px solid #ccc;\r\n word-break: break-all;\r\n word-wrap: break-word;\r\n line-height: 1.5;\r\n border-radius: 5px;\r\n}\r\n.box-content_pic {\r\n width: 100%;\r\n}\r\n.box-content_pic img {\r\n width: 100%;\r\n height: auto;\r\n}\r\n.box-content:before {\r\n content: '';\r\n position: absolute;\r\n left: -13px;\r\n top: 11px;\r\n display: block;\r\n width: 0;\r\n height: 0;\r\n border-left: 8px solid transparent;\r\n border-right: 8px solid transparent;\r\n border-top: 10px solid #ccc;\r\n -webkit-transform: rotate(90deg);\r\n transform: rotate(90deg);\r\n}\r\n.box-content:after {\r\n content: '';\r\n content: '';\r\n position: absolute;\r\n left: -12px;\r\n top: 11px;\r\n display: block;\r\n width: 0;\r\n height: 0;\r\n border-left: 8px solid transparent;\r\n border-right: 8px solid transparent;\r\n border-top: 10px solid #f5f5f5;\r\n -webkit-transform: rotate(90deg);\r\n transform: rotate(90deg);\r\n}\r\n.time-wrapper {\r\n margin-bottom: 10px;\r\n text-align: center;\r\n}\r\n.time {\r\n display: inline-block;\r\n color: #f5f5f5;\r\n background: rgba(0, 0, 0, 0.3);\r\n padding: 3px 8px;\r\n border-radius: 3px;\r\n font-size: 12px;\r\n}\r\n.text-box {\r\n display: flex;\r\n}\r\n.avatar {\r\n width: 40px;\r\n height: 40px;\r\n}\r\n.avatar img {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n.modelBox {\r\n ::v-deep .ivu-modal-body {\r\n padding: 0 16px 16px 16px !important;\r\n }\r\n}\r\n.news_pic {\r\n width: 100%;\r\n height: 150px;\r\n overflow: hidden;\r\n position: relative;\r\n background-size: 100%;\r\n background-position: center center;\r\n border-radius: 5px 5px 0 0;\r\n padding: 10px;\r\n box-sizing: border-box;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n}\r\n.news_sp {\r\n font-size: 12px;\r\n color: #000000;\r\n background: #fff;\r\n width: 100%;\r\n height: 38px;\r\n line-height: 38px;\r\n padding: 0 12px;\r\n box-sizing: border-box;\r\n display: block;\r\n}\r\n.news_cent {\r\n width: 100%;\r\n height: auto;\r\n background: #fff;\r\n border-top: 1px dashed #eee;\r\n display: flex;\r\n padding: 10px;\r\n box-sizing: border-box;\r\n justify-content: space-between;\r\n .news_sp1 {\r\n font-size: 12px;\r\n color: #000000;\r\n width: 71%;\r\n }\r\n .news_cent_img {\r\n width: 81px;\r\n height: 46px;\r\n border-radius: 6px;\r\n overflow: hidden;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n }\r\n}\r\n</style>\r\n"]}]}