3e3042ecec1e1de9463eb7b1d7c6d48e.json 13 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\\product\\components\\addReply.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\product\\components\\addReply.vue","mtime":1761185180153},{"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:DQppbXBvcnQgeyBzYXZlRmljdGl0aW91c1JlcGx5IH0gZnJvbSAnQC9hcGkvcHJvZHVjdCc7DQpleHBvcnQgZGVmYXVsdCB7DQogIHByb3BzOiB7DQogICAgdmlzaWJsZTogew0KICAgICAgdHlwZTogQm9vbGVhbiwNCiAgICAgIGRlZmF1bHQ6IGZhbHNlLA0KICAgIH0sDQogICAgZ29vZHM6IHsNCiAgICAgIHR5cGU6IE9iamVjdCwNCiAgICAgIGRlZmF1bHQoKSB7DQogICAgICAgIHJldHVybiB7fTsNCiAgICAgIH0sDQogICAgfSwNCiAgICBhdHRyOiB7DQogICAgICB0eXBlOiBPYmplY3QsDQogICAgICBkZWZhdWx0KCkgew0KICAgICAgICByZXR1cm4ge307DQogICAgICB9LA0KICAgIH0sDQogICAgYXZhdGFyOiB7DQogICAgICB0eXBlOiBPYmplY3QsDQogICAgICBkZWZhdWx0KCkgew0KICAgICAgICByZXR1cm4ge307DQogICAgICB9LA0KICAgIH0sDQogICAgcGljdHVyZTogew0KICAgICAgdHlwZTogQXJyYXksDQogICAgICBkZWZhdWx0KCkgew0KICAgICAgICByZXR1cm4gW107DQogICAgICB9LA0KICAgIH0sDQogIH0sDQogIGRhdGEoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIGZvcm1EYXRhOiB7DQogICAgICAgIGF2YXRhcjogJycsDQogICAgICAgIG5pY2tuYW1lOiAnJywNCiAgICAgICAgY29tbWVudDogJycsDQogICAgICB9LA0KICAgICAgcHJvZHVjdF9zY29yZTogNSwNCiAgICAgIHNlcnZpY2Vfc2NvcmU6IDUsDQogICAgICBwaWNzOiBbXSwNCiAgICAgIGFkZF90aW1lOiAnJywNCiAgICAgIHZpc2libGVNb2RhbDogZmFsc2UsDQogICAgfTsNCiAgfSwNCiAgd2F0Y2g6IHsNCiAgICBwaWN0dXJlKHZhbHVlKSB7DQogICAgICB0aGlzLnBpY3MgPSB2YWx1ZS5tYXAoKGl0ZW0pID0+IHsNCiAgICAgICAgcmV0dXJuIGl0ZW0uYXR0X2RpcjsNCiAgICAgIH0pOw0KICAgIH0sDQogICAgdmlzaWJsZSh2YWx1ZSkgew0KICAgICAgdGhpcy52aXNpYmxlTW9kYWwgPSB2YWx1ZTsNCiAgICAgIGlmICghdmFsdWUpIHsNCiAgICAgICAgdGhpcy5mb3JtRGF0YS5uaWNrbmFtZSA9ICcnOw0KICAgICAgICB0aGlzLmZvcm1EYXRhLmNvbW1lbnQgPSAnJzsNCiAgICAgICAgdGhpcy5wcm9kdWN0X3Njb3JlID0gNTsNCiAgICAgICAgdGhpcy5zZXJ2aWNlX3Njb3JlID0gNTsNCiAgICAgICAgdGhpcy5hZGRfdGltZSA9ICcnOw0KICAgICAgfQ0KICAgIH0sDQogIH0sDQogIG1ldGhvZHM6IHsNCiAgICByZW1vdmVVc2VyKCkgew0KICAgICAgdGhpcy5hdmF0YXIuYXR0X2RpciA9ICcnOw0KICAgIH0sDQogICAgcmVtb3ZlUGljdHVyZShhdHRfaWQpIHsNCiAgICAgIHRoaXMuJGVtaXQoJ3JlbW92ZVBpY3R1cmUnLCBhdHRfaWQpOw0KICAgIH0sDQogICAgb25DaGFuZ2UoZGF0ZSkgew0KICAgICAgdGhpcy5hZGRfdGltZSA9IGRhdGU7DQogICAgfSwNCiAgICBjYWxsR29vZHMoKSB7DQogICAgICB0aGlzLiRlbWl0KCdjYWxsR29vZHMnKTsNCiAgICB9LA0KICAgIGNhbGxBdHRyKCkgew0KICAgICAgdGhpcy4kZW1pdCgnY2FsbEF0dHInKTsNCiAgICB9LA0KICAgIGNhbGxQaWN0dXJlKHR5cGUpIHsNCiAgICAgIHRoaXMuJGVtaXQoJ2NhbGxQaWN0dXJlJywgdHlwZSk7DQogICAgfSwNCiAgICBvbk9rKCkgew0KICAgICAgaWYgKCF0aGlzLmdvb2RzLmlkKSB7DQogICAgICAgIHJldHVybiB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fpgInmi6nllYblk4EnKTsNCiAgICAgIH0NCiAgICAgIGlmICghdGhpcy5hdHRyLnBpYykgew0KICAgICAgICByZXR1cm4gdGhpcy4kbWVzc2FnZS5lcnJvcign6K+36YCJ5oup5ZWG5ZOB6KeE5qC8Jyk7DQogICAgICB9DQogICAgICBpZiAoIXRoaXMuYXZhdGFyLmF0dF9kaXIpIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+ivt+mAieaLqeeUqOaIt+WktOWDjycpOw0KICAgICAgfQ0KICAgICAgaWYgKCF0aGlzLmZvcm1EYXRhLm5pY2tuYW1lKSB7DQogICAgICAgIHJldHVybiB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7floavlhpnnlKjmiLfmmLXnp7AnKTsNCiAgICAgIH0NCiAgICAgIGlmICghdGhpcy5mb3JtRGF0YS5jb21tZW50KSB7DQogICAgICAgIHJldHVybiB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7floavlhpnor4TorrrlhoXlrrknKTsNCiAgICAgIH0NCiAgICAgIGlmICghdGhpcy5wcm9kdWN0X3Njb3JlKSB7DQogICAgICAgIHJldHVybiB0aGlzLiRtZXNzYWdlLmVycm9yKCfllYblk4HliIbmlbDlv4XpobvmmK8xLTXkuYvpl7TnmoTmlbTmlbAnKTsNCiAgICAgIH0NCiAgICAgIGlmICghdGhpcy5zZXJ2aWNlX3Njb3JlKSB7DQogICAgICAgIHJldHVybiB0aGlzLiRtZXNzYWdlLmVycm9yKCfmnI3liqHliIbmlbDlv4XpobvmmK8xLTXkuYvpl7TnmoTmlbTmlbAnKTsNCiAgICAgIH0NCiAgICAgIGxldCBkYXRhID0gew0KICAgICAgICBpbWFnZTogew0KICAgICAgICAgIGltYWdlOiB0aGlzLmdvb2RzLmltYWdlLA0KICAgICAgICAgIHByb2R1Y3RfaWQ6IHRoaXMuZ29vZHMuaWQsDQogICAgICAgIH0sDQogICAgICAgIHN1azogdGhpcy5hdHRyLnN1aywNCiAgICAgICAgYXZhdGFyOiB0aGlzLmF2YXRhci5hdHRfZGlyLA0KICAgICAgICBuaWNrbmFtZTogdGhpcy5mb3JtRGF0YS5uaWNrbmFtZSwNCiAgICAgICAgY29tbWVudDogdGhpcy5mb3JtRGF0YS5jb21tZW50LA0KICAgICAgICBwcm9kdWN0X3Njb3JlOiB0aGlzLnByb2R1Y3Rfc2NvcmUsDQogICAgICAgIHNlcnZpY2Vfc2NvcmU6IHRoaXMuc2VydmljZV9zY29yZSwNCiAgICAgICAgcGljczogdGhpcy5waWNzLA0KICAgICAgICBhZGRfdGltZTogdGhpcy5hZGRfdGltZSwNCiAgICAgIH07DQogICAgICBzYXZlRmljdGl0aW91c1JlcGx5KGRhdGEpDQogICAgICAgIC50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7DQogICAgICAgICAgdGhpcy4kZW1pdCgnY2xvc2UnLCBmYWxzZSk7DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICBvbkNhbmNlbCgpIHsNCiAgICAgIHRoaXMuJGVtaXQoJ2Nsb3NlJywgZmFsc2UpOw0KICAgIH0sDQogIH0sDQp9Ow0K"},{"version":3,"sources":["addReply.vue"],"names":[],"mappings":";AAsFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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":"addReply.vue","sourceRoot":"src/pages/product/components","sourcesContent":["<template>\r\n <el-dialog\r\n :visible.sync=\"visibleModal\"\r\n title=\"添加自评\"\r\n width=\"720px\"\r\n :close-on-click-modal=\"false\"\r\n @close=\"onCancel\"\r\n >\r\n <el-form :model=\"formData\" label-width=\"100px\" label-position=\"right\">\r\n <el-form-item label=\"商品:\">\r\n <div class=\"upload-box\" v-db-click @click=\"callGoods\">\r\n <img v-if=\"goods.id\" :src=\"goods.image\" class=\"image\" />\r\n <i v-else class=\"el-icon-goods\"></i>\r\n </div>\r\n </el-form-item>\r\n <el-form-item v-if=\"goods.id\" label=\"商品规格:\">\r\n <div class=\"upload-box\" v-db-click @click=\"callAttr\">\r\n <img v-if=\"attr.pic\" :src=\"attr.pic\" class=\"image\" />\r\n <i v-else class=\"el-icon-plus\" />\r\n </div>\r\n <div>{{ attr.suk }}</div>\r\n </el-form-item>\r\n <el-form-item label=\"用户头像:\">\r\n <div class=\"upload-box\" v-db-click @click=\"callPicture('单选')\">\r\n <img v-if=\"avatar.att_dir\" :src=\"avatar.att_dir\" class=\"image\" />\r\n <i v-if=\"avatar.att_dir\" class=\"el-icon-error btn\" v-db-click @click.stop=\"removeUser\"></i>\r\n <i v-else class=\"el-icon-user\" />\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"用户名称:\">\r\n <el-input\r\n v-model=\"formData.nickname\"\r\n placeholder=\"请输入用户名称\"\r\n class=\"w100\"\r\n maxlength=\"20\"\r\n show-word-limit\r\n ></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"评价文字:\">\r\n <el-input\r\n v-model=\"formData.comment\"\r\n type=\"textarea\"\r\n placeholder=\"请输入评价文字\"\r\n class=\"w100\"\r\n maxlength=\"200\"\r\n show-word-limit\r\n ></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"商品分数:\">\r\n <el-rate v-model=\"product_score\" />\r\n </el-form-item>\r\n <el-form-item label=\"服务分数:\">\r\n <el-rate v-model=\"service_score\" />\r\n </el-form-item>\r\n <el-form-item label=\"评价图片:\">\r\n <div class=\"df-aic\">\r\n <div v-for=\"item in picture\" :key=\"item.att_id\" class=\"upload-box\">\r\n <img :src=\"item.att_dir\" class=\"image\" />\r\n <i class=\"el-icon-error btn\" v-db-click @click.stop=\"removePicture(item.att_id)\"></i>\r\n </div>\r\n <div v-if=\"picture.length < 8\" class=\"upload-box\" v-db-click @click=\"callPicture('多选')\">\r\n <i class=\"el-icon-picture-outline\"></i>\r\n </div>\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"评价时间:\">\r\n <el-date-picker\r\n clearable\r\n v-model=\"add_time\"\r\n type=\"datetime\"\r\n range-separator=\"-\"\r\n start-placeholder=\"开始日期\"\r\n end-placeholder=\"结束日期\"\r\n @change=\"onChange\"\r\n style=\"width: 414px\"\r\n />\r\n </el-form-item>\r\n </el-form>\r\n <span slot=\"footer\" class=\"dialog-footer\">\r\n <el-button v-db-click @click=\"onCancel\">取 消</el-button>\r\n <el-button type=\"primary\" v-db-click @click=\"onOk\">确 定</el-button>\r\n </span>\r\n </el-dialog>\r\n</template>\r\n\r\n<script>\r\nimport { saveFictitiousReply } from '@/api/product';\r\nexport default {\r\n props: {\r\n visible: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n goods: {\r\n type: Object,\r\n default() {\r\n return {};\r\n },\r\n },\r\n attr: {\r\n type: Object,\r\n default() {\r\n return {};\r\n },\r\n },\r\n avatar: {\r\n type: Object,\r\n default() {\r\n return {};\r\n },\r\n },\r\n picture: {\r\n type: Array,\r\n default() {\r\n return [];\r\n },\r\n },\r\n },\r\n data() {\r\n return {\r\n formData: {\r\n avatar: '',\r\n nickname: '',\r\n comment: '',\r\n },\r\n product_score: 5,\r\n service_score: 5,\r\n pics: [],\r\n add_time: '',\r\n visibleModal: false,\r\n };\r\n },\r\n watch: {\r\n picture(value) {\r\n this.pics = value.map((item) => {\r\n return item.att_dir;\r\n });\r\n },\r\n visible(value) {\r\n this.visibleModal = value;\r\n if (!value) {\r\n this.formData.nickname = '';\r\n this.formData.comment = '';\r\n this.product_score = 5;\r\n this.service_score = 5;\r\n this.add_time = '';\r\n }\r\n },\r\n },\r\n methods: {\r\n removeUser() {\r\n this.avatar.att_dir = '';\r\n },\r\n removePicture(att_id) {\r\n this.$emit('removePicture', att_id);\r\n },\r\n onChange(date) {\r\n this.add_time = date;\r\n },\r\n callGoods() {\r\n this.$emit('callGoods');\r\n },\r\n callAttr() {\r\n this.$emit('callAttr');\r\n },\r\n callPicture(type) {\r\n this.$emit('callPicture', type);\r\n },\r\n onOk() {\r\n if (!this.goods.id) {\r\n return this.$message.error('请选择商品');\r\n }\r\n if (!this.attr.pic) {\r\n return this.$message.error('请选择商品规格');\r\n }\r\n if (!this.avatar.att_dir) {\r\n return this.$message.error('请选择用户头像');\r\n }\r\n if (!this.formData.nickname) {\r\n return this.$message.error('请填写用户昵称');\r\n }\r\n if (!this.formData.comment) {\r\n return this.$message.error('请填写评论内容');\r\n }\r\n if (!this.product_score) {\r\n return this.$message.error('商品分数必须是1-5之间的整数');\r\n }\r\n if (!this.service_score) {\r\n return this.$message.error('服务分数必须是1-5之间的整数');\r\n }\r\n let data = {\r\n image: {\r\n image: this.goods.image,\r\n product_id: this.goods.id,\r\n },\r\n suk: this.attr.suk,\r\n avatar: this.avatar.att_dir,\r\n nickname: this.formData.nickname,\r\n comment: this.formData.comment,\r\n product_score: this.product_score,\r\n service_score: this.service_score,\r\n pics: this.pics,\r\n add_time: this.add_time,\r\n };\r\n saveFictitiousReply(data)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.$emit('close', false);\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n onCancel() {\r\n this.$emit('close', false);\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.upload-box {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 58px;\r\n height: 58px;\r\n border: 1px dashed #c0ccda;\r\n border-radius: 4px;\r\n\r\n vertical-align: middle;\r\n text-align: center;\r\n line-height: 58px;\r\n cursor: pointer;\r\n\r\n + .upload-box {\r\n margin-left: 10px;\r\n }\r\n .ivu-icon {\r\n vertical-align: middle;\r\n font-size: 20px;\r\n }\r\n .image {\r\n width: 100%;\r\n height: 100%;\r\n border-radius: 3px;\r\n }\r\n .btn {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n font-size: 14px;\r\n transform: translate(50%, -50%);\r\n }\r\n}\r\n.df-aic {\r\n display: flex;\r\n flex-wrap: wrap;\r\n}\r\n.w414 {\r\n width: 414px;\r\n}\r\n.el-rate {\r\n line-height: 2;\r\n}\r\n</style>\r\n"]}]}