8521eefd4fdbfbdde0f367291156cd56.json 17 KB

1
  1. {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\pages\\marketing\\storeIntegral\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\marketing\\storeIntegral\\index.vue","mtime":1761614939038},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1761614927320},{"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:DQppbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnOw0KaW1wb3J0IHsgaW50ZWdyYWxQcm9kdWN0TGlzdEFwaSwgaW50ZWdyYWxJc1Nob3dBcGksIHN0b3JlU2Vja2lsbEFwaSB9IGZyb20gJ0AvYXBpL21hcmtldGluZyc7DQppbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQC91dGlscy92YWxpZGF0ZSc7DQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICdtYXJrZXRpbmdfc3RvcmVJbnRlZ3JhbCcsDQogIGZpbHRlcnM6IHsNCiAgICBmb3JtYXREYXRlKHRpbWUpIHsNCiAgICAgIGlmICh0aW1lICE9PSAwKSB7DQogICAgICAgIGxldCBkYXRlID0gbmV3IERhdGUodGltZSAqIDEwMDApOw0KICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZShkYXRlLCAneXl5eS1NTS1kZCcpOw0KICAgICAgfQ0KICAgIH0sDQogIH0sDQogIGRhdGEoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIGxvYWRpbmc6IGZhbHNlLA0KICAgICAgcGlja2VyT3B0aW9uczogdGhpcy4kdGltZU9wdGlvbnMsDQogICAgICB0YWJsZUxpc3Q6IFtdLA0KICAgICAgdGltZVZhbDogW10sDQogICAgICBncmlkOiB7DQogICAgICAgIHhsOiA3LA0KICAgICAgICBsZzogMTAsDQogICAgICAgIG1kOiAxMiwNCiAgICAgICAgc206IDI0LA0KICAgICAgICB4czogMjQsDQogICAgICB9LA0KICAgICAgdGFibGVGcm9tOiB7DQogICAgICAgIGludGVncmFsX3RpbWU6ICcnLA0KICAgICAgICBpc19zaG93OiAnJywNCiAgICAgICAgc3RvcmVfbmFtZTogJycsDQogICAgICAgIHBhZ2U6IDEsDQogICAgICAgIGxpbWl0OiAxNSwNCiAgICAgIH0sDQogICAgICB0b3RhbDogMCwNCiAgICB9Ow0KICB9LA0KICBjb21wdXRlZDogew0KICAgIC4uLm1hcFN0YXRlKCdtZWRpYScsIFsnaXNNb2JpbGUnXSksDQogICAgbGFiZWxXaWR0aCgpIHsNCiAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlID8gdW5kZWZpbmVkIDogJzgwcHgnOw0KICAgIH0sDQogICAgbGFiZWxQb3NpdGlvbigpIHsNCiAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlID8gJ3RvcCcgOiAncmlnaHQnOw0KICAgIH0sDQogIH0sDQogIGFjdGl2YXRlZCgpIHsNCiAgICB0aGlzLmdldExpc3QoKTsNCiAgfSwNCiAgbWV0aG9kczogew0KICAgIC8vIOa3u+WKoA0KICAgIGFkZCgpIHsNCiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsgcGF0aDogdGhpcy4kcm91dGVQcm9TdHIgKyAnL21hcmtldGluZy9zdG9yZV9pbnRlZ3JhbC9jcmVhdGUnIH0pOw0KICAgIH0sDQogICAgb3JkZXJMaXN0KHJvdykgew0KICAgICAgdGhpcy4kcm91dGVyLnB1c2goew0KICAgICAgICBwYXRoOiB0aGlzLiRyb3V0ZVByb1N0ciArICcvbWFya2V0aW5nL3N0b3JlX2ludGVncmFsL29yZGVyX2xpc3QnLA0KICAgICAgICBxdWVyeTogew0KICAgICAgICAgIHByb2R1Y3RfaWQ6IHJvdy5pZCwNCiAgICAgICAgfSwNCiAgICAgIH0pOw0KICAgIH0sDQogICAgLy8g5a+85Ye6DQogICAgZXhwb3J0cygpIHsNCiAgICAgIGxldCBmb3JtVmFsaWRhdGUgPSB0aGlzLnRhYmxlRnJvbTsNCiAgICAgIGxldCBkYXRhID0gew0KICAgICAgICBzdGFydF9zdGF0dXM6IGZvcm1WYWxpZGF0ZS5zdGFydF9zdGF0dXMsDQogICAgICAgIHN0YXR1czogZm9ybVZhbGlkYXRlLnN0YXR1cywNCiAgICAgICAgc3RvcmVfbmFtZTogZm9ybVZhbGlkYXRlLnN0b3JlX25hbWUsDQogICAgICB9Ow0KICAgICAgc3RvcmVTZWNraWxsQXBpKGRhdGEpDQogICAgICAgIC50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gcmVzLmRhdGFbMF07DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDnvJbovpENCiAgICBlZGl0KHJvdykgew0KICAgICAgdGhpcy4kcm91dGVyLnB1c2goew0KICAgICAgICBwYXRoOiB0aGlzLiRyb3V0ZVByb1N0ciArICcvbWFya2V0aW5nL3N0b3JlX2ludGVncmFsL2NyZWF0ZS8nICsgcm93LmlkICsgJy8wJywNCiAgICAgIH0pOw0KICAgIH0sDQogICAgLy8g5LiA6ZSu5aSN5Yi2DQogICAgY29weShyb3cpIHsNCiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsNCiAgICAgICAgcGF0aDogdGhpcy4kcm91dGVQcm9TdHIgKyAnL21hcmtldGluZy9zdG9yZV9pbnRlZ3JhbC9jcmVhdGUvJyArIHJvdy5pZCArICcvMScsDQogICAgICB9KTsNCiAgICB9LA0KICAgIC8vIOWIoOmZpA0KICAgIGRlbChyb3csIHRpdCwgbnVtKSB7DQogICAgICBsZXQgZGVsZnJvbURhdGEgPSB7DQogICAgICAgIHRpdGxlOiB0aXQsDQogICAgICAgIG51bTogbnVtLA0KICAgICAgICB1cmw6IGBtYXJrZXRpbmcvaW50ZWdyYWwvJHtyb3cuaWR9YCwNCiAgICAgICAgbWV0aG9kOiAnREVMRVRFJywNCiAgICAgICAgaWRzOiAnJywNCiAgICAgIH07DQogICAgICB0aGlzLiRtb2RhbFN1cmUoZGVsZnJvbURhdGEpDQogICAgICAgIC50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7DQogICAgICAgICAgdGhpcy50YWJsZUZyb20ucGFnZSA9IDE7DQogICAgICAgICAgdGhpcy5nZXRMaXN0KCk7DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDliJfooagNCiAgICBnZXRMaXN0KCkgew0KICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsNCiAgICAgIHRoaXMudGFibGVGcm9tLnN0YXJ0X3N0YXR1cyA9IHRoaXMudGFibGVGcm9tLnN0YXJ0X3N0YXR1cyB8fCAnJzsNCiAgICAgIHRoaXMudGFibGVGcm9tLmlzX3Nob3cgPSB0aGlzLnRhYmxlRnJvbS5pc19zaG93IHx8ICcnOw0KICAgICAgaW50ZWdyYWxQcm9kdWN0TGlzdEFwaSh0aGlzLnRhYmxlRnJvbSkNCiAgICAgICAgLnRoZW4oYXN5bmMgKHJlcykgPT4gew0KICAgICAgICAgIGxldCBkYXRhID0gcmVzLmRhdGE7DQogICAgICAgICAgdGhpcy50YWJsZUxpc3QgPSBkYXRhLmxpc3Q7DQogICAgICAgICAgdGhpcy50b3RhbCA9IHJlcy5kYXRhLmNvdW50Ow0KICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOw0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOw0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgLy8g6KGo5qC85pCc57SiDQogICAgdXNlclNlYXJjaHMoKSB7DQogICAgICB0aGlzLnRhYmxlRnJvbS5wYWdlID0gMTsNCiAgICAgIHRoaXMuZ2V0TGlzdCgpOw0KICAgIH0sDQogICAgLy8g5YW35L2T5pel5pyfDQogICAgb25jaGFuZ2VUaW1lKGUpIHsNCiAgICAgIHRoaXMudGltZVZhbCA9IGU7DQogICAgICB0aGlzLnRhYmxlRnJvbS5pbnRlZ3JhbF90aW1lID0gdGhpcy50aW1lVmFsID8gdGhpcy50aW1lVmFsLmpvaW4oJy0nKSA6ICcnOw0KICAgICAgdGhpcy5nZXRMaXN0KCk7DQogICAgfSwNCiAgICAvLyDkv67mlLnmmK/lkKbmmL7npLoNCiAgICBvbmNoYW5nZUlzU2hvdyhyb3cpIHsNCiAgICAgIGxldCBkYXRhID0gew0KICAgICAgICBpZDogcm93LmlkLA0KICAgICAgICBpc19zaG93OiByb3cuaXNfc2hvdywNCiAgICAgIH07DQogICAgICBpbnRlZ3JhbElzU2hvd0FwaShkYXRhKQ0KICAgICAgICAudGhlbihhc3luYyAocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOw0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7DQogICAgICAgIH0pOw0KICAgIH0sDQogIH0sDQp9Ow0K"},{"version":3,"sources":["index.vue"],"names":[],"mappings":";AAwJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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/marketing/storeIntegral","sourcesContent":["<template>\r\n <div>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt\" :body-style=\"{ padding: 0 }\">\r\n <div class=\"padding-add\">\r\n <el-form\r\n ref=\"tableFrom\"\r\n :model=\"tableFrom\"\r\n :label-width=\"labelWidth\"\r\n label-position=\"right\"\r\n @submit.native.prevent\r\n inline\r\n >\r\n <el-form-item label=\"创建时间:\">\r\n <el-date-picker\r\n clearable\r\n v-model=\"timeVal\"\r\n type=\"daterange\"\r\n :editable=\"false\"\r\n @change=\"onchangeTime\"\r\n format=\"yyyy/MM/dd\"\r\n value-format=\"yyyy/MM/dd\"\r\n start-placeholder=\"开始日期\"\r\n end-placeholder=\"结束日期\"\r\n :picker-options=\"pickerOptions\"\r\n style=\"width: 250px\"\r\n ></el-date-picker>\r\n </el-form-item>\r\n <el-form-item label=\"上架状态:\">\r\n <el-select\r\n placeholder=\"请选择\"\r\n clearable\r\n v-model=\"tableFrom.is_show\"\r\n @change=\"userSearchs\"\r\n class=\"form_content_width\"\r\n >\r\n <el-option value=\"1\" label=\"上架\"></el-option>\r\n <el-option value=\"0\" label=\"下架\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"商品搜索:\" label-for=\"store_name\">\r\n <el-input placeholder=\"请输入商品名称,ID\" v-model=\"tableFrom.store_name\" class=\"form_content_width\" />\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button type=\"primary\" v-db-click @click=\"userSearchs\">查询</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n </el-card>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt mt16\">\r\n <el-button\r\n v-auth=\"['marketing-store_integral-create']\"\r\n type=\"primary\"\r\n icon=\"md-add\"\r\n v-db-click\r\n @click=\"add\"\r\n class=\"mr10\"\r\n >添加积分商品</el-button\r\n >\r\n <el-table\r\n :data=\"tableList\"\r\n v-loading=\"loading\"\r\n highlight-current-row\r\n no-userFrom-text=\"暂无数据\"\r\n no-filtered-userFrom-text=\"暂无筛选结果\"\r\n class=\"mt14\"\r\n >\r\n <el-table-column label=\"ID\" min-width=\"50\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.id }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"商品图片\" min-width=\"40\">\r\n <template slot-scope=\"scope\">\r\n <viewer>\r\n <div class=\"tabBox_img\">\r\n <img v-lazy=\"scope.row.image\" />\r\n </div>\r\n </viewer>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"活动标题\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <el-tooltip placement=\"top\" :open-delay=\"600\">\r\n <div slot=\"content\">{{ scope.row.title }}</div>\r\n <span class=\"line2\">{{ scope.row.title }}</span>\r\n </el-tooltip>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"兑换积分\" min-width=\"60\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.price }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"限量\" min-width=\"60\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.quota_show }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"限量剩余\" min-width=\"60\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.quota }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"创建时间\" min-width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.add_time }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"排序\" min-width=\"60\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.sort }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"状态\" min-width=\"60\">\r\n <template slot-scope=\"scope\">\r\n <el-switch\r\n :active-value=\"1\"\r\n :inactive-value=\"0\"\r\n v-model=\"scope.row.is_show\"\r\n :value=\"scope.row.is_show\"\r\n @change=\"onchangeIsShow(scope.row)\"\r\n size=\"large\"\r\n >\r\n </el-switch>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" fixed=\"right\" width=\"200\">\r\n <template slot-scope=\"scope\">\r\n <a v-db-click @click=\"orderList(scope.row)\">兑换记录</a>\r\n <el-divider direction=\"vertical\"></el-divider>\r\n <a v-db-click @click=\"edit(scope.row)\">编辑</a>\r\n <el-divider direction=\"vertical\"></el-divider>\r\n <a v-db-click @click=\"copy(scope.row)\">复制</a>\r\n <el-divider direction=\"vertical\"></el-divider>\r\n <a v-db-click @click=\"del(scope.row, '删除积分商品', scope.$index)\">删除</a>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <div class=\"acea-row row-right page\">\r\n <pagination\r\n v-if=\"total\"\r\n :total=\"total\"\r\n :page.sync=\"tableFrom.page\"\r\n :limit.sync=\"tableFrom.limit\"\r\n @pagination=\"getList\"\r\n />\r\n </div>\r\n </el-card>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapState } from 'vuex';\r\nimport { integralProductListApi, integralIsShowApi, storeSeckillApi } from '@/api/marketing';\r\nimport { formatDate } from '@/utils/validate';\r\nexport default {\r\n name: 'marketing_storeIntegral',\r\n filters: {\r\n formatDate(time) {\r\n if (time !== 0) {\r\n let date = new Date(time * 1000);\r\n return formatDate(date, 'yyyy-MM-dd');\r\n }\r\n },\r\n },\r\n data() {\r\n return {\r\n loading: false,\r\n pickerOptions: this.$timeOptions,\r\n tableList: [],\r\n timeVal: [],\r\n grid: {\r\n xl: 7,\r\n lg: 10,\r\n md: 12,\r\n sm: 24,\r\n xs: 24,\r\n },\r\n tableFrom: {\r\n integral_time: '',\r\n is_show: '',\r\n store_name: '',\r\n page: 1,\r\n limit: 15,\r\n },\r\n total: 0,\r\n };\r\n },\r\n computed: {\r\n ...mapState('media', ['isMobile']),\r\n labelWidth() {\r\n return this.isMobile ? undefined : '80px';\r\n },\r\n labelPosition() {\r\n return this.isMobile ? 'top' : 'right';\r\n },\r\n },\r\n activated() {\r\n this.getList();\r\n },\r\n methods: {\r\n // 添加\r\n add() {\r\n this.$router.push({ path: this.$routeProStr + '/marketing/store_integral/create' });\r\n },\r\n orderList(row) {\r\n this.$router.push({\r\n path: this.$routeProStr + '/marketing/store_integral/order_list',\r\n query: {\r\n product_id: row.id,\r\n },\r\n });\r\n },\r\n // 导出\r\n exports() {\r\n let formValidate = this.tableFrom;\r\n let data = {\r\n start_status: formValidate.start_status,\r\n status: formValidate.status,\r\n store_name: formValidate.store_name,\r\n };\r\n storeSeckillApi(data)\r\n .then((res) => {\r\n location.href = res.data[0];\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 编辑\r\n edit(row) {\r\n this.$router.push({\r\n path: this.$routeProStr + '/marketing/store_integral/create/' + row.id + '/0',\r\n });\r\n },\r\n // 一键复制\r\n copy(row) {\r\n this.$router.push({\r\n path: this.$routeProStr + '/marketing/store_integral/create/' + row.id + '/1',\r\n });\r\n },\r\n // 删除\r\n del(row, tit, num) {\r\n let delfromData = {\r\n title: tit,\r\n num: num,\r\n url: `marketing/integral/${row.id}`,\r\n method: 'DELETE',\r\n ids: '',\r\n };\r\n this.$modalSure(delfromData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.tableFrom.page = 1;\r\n this.getList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 列表\r\n getList() {\r\n this.loading = true;\r\n this.tableFrom.start_status = this.tableFrom.start_status || '';\r\n this.tableFrom.is_show = this.tableFrom.is_show || '';\r\n integralProductListApi(this.tableFrom)\r\n .then(async (res) => {\r\n let data = res.data;\r\n this.tableList = data.list;\r\n this.total = res.data.count;\r\n this.loading = false;\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 userSearchs() {\r\n this.tableFrom.page = 1;\r\n this.getList();\r\n },\r\n // 具体日期\r\n onchangeTime(e) {\r\n this.timeVal = e;\r\n this.tableFrom.integral_time = this.timeVal ? this.timeVal.join('-') : '';\r\n this.getList();\r\n },\r\n // 修改是否显示\r\n onchangeIsShow(row) {\r\n let data = {\r\n id: row.id,\r\n is_show: row.is_show,\r\n };\r\n integralIsShowApi(data)\r\n .then(async (res) => {\r\n this.$message.success(res.msg);\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.tabBox_img {\r\n width: 36px;\r\n height: 36px;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n}\r\n</style>\r\n"]}]}