19e5a4353a372846ed136a534469fcb3.json 16 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\\components\\couponList\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\components\\couponList\\index.vue","mtime":1761185179956},{"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:DQppbXBvcnQgeyByZWxlYXNlZExpc3RBcGkgfSBmcm9tICdAL2FwaS9tYXJrZXRpbmcnOw0KaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0AvdXRpbHMvdmFsaWRhdGUnOw0KDQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICdpbmRleCcsDQogIGZpbHRlcnM6IHsNCiAgICBmb3JtYXREYXRlKHRpbWUpIHsNCiAgICAgIGlmICh0aW1lICE9PSAwKSB7DQogICAgICAgIGxldCBkYXRlID0gbmV3IERhdGUodGltZSAqIDEwMDApOw0KICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZShkYXRlLCAneXl5eS1NTS1kZCBoaDptbScpOw0KICAgICAgfQ0KICAgIH0sDQogIH0sDQogIHByb3BzOiB7DQogICAgY291cG9uaWRzOiB7DQogICAgICB0eXBlOiBBcnJheSwNCiAgICB9LA0KICAgIHVwZGF0ZUlkczogew0KICAgICAgdHlwZTogQXJyYXksDQogICAgfSwNCiAgICB1cGRhdGVOYW1lOiB7DQogICAgICB0eXBlOiBBcnJheSwNCiAgICB9LA0KICAgIGx1Y2tEcmF3OiB7DQogICAgICB0eXBlOiBCb29sZWFuLA0KICAgICAgZGVmYXVsdDogZmFsc2UsDQogICAgfSwNCiAgfSwNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgdGVtcGxhdGVSYWRpbzogMCwNCg0KICAgICAgY3VycmVudGlkOiAwLA0KICAgICAgcHJvZHVjdFJvdzoge30sDQogICAgICBpc1RlbXBsYXRlOiBmYWxzZSwNCiAgICAgIGxvYWRpbmc6IGZhbHNlLA0KICAgICAgdGFibGVGcm9tOiB7DQogICAgICAgIHJlY2VpdmVfdHlwZTogMywNCiAgICAgICAgcGFnZTogMSwNCiAgICAgICAgbGltaXQ6IDE1LA0KICAgICAgfSwNCiAgICAgIHRvdGFsOiAwLA0KICAgICAgaWRzOiBbXSwNCiAgICAgIHRleHRzOiBbXSwNCiAgICAgIGNvdXBvbkxpc3Q6IFtdLA0KICAgICAgc2VsZWN0ZWRJZHM6IFtdLA0KICAgICAgc2VsZWN0ZWROYW1lczogW10sDQogICAgICBtdWx0aXBsZVNlbGVjdGlvbjogW10sDQogICAgfTsNCiAgfSwNCiAgbW91bnRlZCgpIHt9LA0KICB3YXRjaDogew0KICAgIHVwZGF0ZUlkczogZnVuY3Rpb24gKG5ld1ZhbCkgew0KICAgICAgdGhpcy5zZWxlY3RlZElkcyA9IG5ld1ZhbDsNCiAgICB9LA0KICAgIHVwZGF0ZU5hbWU6IGZ1bmN0aW9uIChuZXdWYWwpIHsNCiAgICAgIHRoaXMuc2VsZWN0ZWROYW1lcyA9IG5ld1ZhbDsNCiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSBuZXdWYWw7DQogICAgfSwNCiAgfSwNCiAgY3JlYXRlZCgpIHt9LA0KICBtZXRob2RzOiB7DQogICAgZ2V0Um93S2V5KHJvdykgew0KICAgICAgcmV0dXJuIHJvdy5pZDsNCiAgICB9LA0KICAgIGdldFRlbXBsYXRlUm93KHJvdykgew0KICAgICAgdGhpcy5jdXJyZW50aWQgPSByb3cuaWQ7DQogICAgICB0aGlzLnByb2R1Y3RSb3cgPSByb3c7DQogICAgfSwNCiAgICAvL+WvueixoeaVsOe7hOWOu+mHje+8mw0KICAgIHVuaXF1ZShhcnIpIHsNCiAgICAgIGNvbnN0IHJlcyA9IG5ldyBNYXAoKTsNCiAgICAgIHJldHVybiBhcnIuZmlsdGVyKChhcnIpID0+ICFyZXMuaGFzKGFyci5pZCkgJiYgcmVzLnNldChhcnIuaWQsIDEpKTsNCiAgICB9LA0KICAgIGNoYW5nZUNoZWNrYm94KHNlbGVjdGlvbikgew0KICAgICAgbGV0IHVuaXF1ZUFyciA9IFtdOw0KICAgICAgbGV0IGN1cHMgPSBbXTsNCiAgICAgIGxldCBpZHMgPSBbXTsNCiAgICAgIGxldCBhcnIgPSB0aGlzLnVuaXF1ZShzZWxlY3Rpb24pOw0KICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgY29uc3QgaXRlbSA9IGFycltpXTsNCiAgICAgICAgaWYgKCFpZHMuaW5jbHVkZXMoaXRlbS5pZCkpIHsNCiAgICAgICAgICBsZXQgb2JqID0gew0KICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsDQogICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZSwNCiAgICAgICAgICAgIGZ1bGxfcmVkdWN0aW9uOiBpdGVtLmZ1bGxfcmVkdWN0aW9uLCAvLyDmu6ENCiAgICAgICAgICAgIHVzZV9taW5fcHJpY2U6IGl0ZW0udXNlX21pbl9wcmljZSwgLy8g5ruhDQogICAgICAgICAgICBjb3Vwb25fcHJpY2U6IGl0ZW0uY291cG9uX3ByaWNlLCAvLyDlh48NCiAgICAgICAgICB9Ow0KICAgICAgICAgIGN1cHMucHVzaChvYmopOw0KICAgICAgICAgIGlkcy5wdXNoKGl0ZW0uaWQpOw0KICAgICAgICAgIHVuaXF1ZUFyci5wdXNoKGl0ZW0pOw0KICAgICAgICB9DQogICAgICB9DQogICAgICB0aGlzLnNlbGVjdGVkSWRzID0gaWRzOw0KICAgICAgdGhpcy5zZWxlY3RlZE5hbWVzID0gY3VwczsNCiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSB1bmlxdWVBcnI7DQogICAgfSwNCiAgICBjYW5jZWwoKSB7DQogICAgICB0aGlzLmlzVGVtcGxhdGUgPSBmYWxzZTsNCiAgICAgIGlmICh0aGlzLmx1Y2tEcmF3KSB7DQogICAgICAgIHRoaXMuY3VycmVudGlkID0gMDsNCiAgICAgIH0NCiAgICB9LA0KICAgIHRhYmxlTGlzdCgpIHsNCiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7DQogICAgICByZWxlYXNlZExpc3RBcGkodGhpcy50YWJsZUZyb20pLnRoZW4oKHJlcykgPT4gew0KICAgICAgICBsZXQgZGF0YSA9IHJlcy5kYXRhOw0KICAgICAgICB0aGlzLmNvdXBvbkxpc3QgPSBkYXRhLmxpc3Q7DQogICAgICAgIHRoaXMudG90YWwgPSBkYXRhLmNvdW50Ow0KICAgICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7DQogICAgICAgICAgLy/noa7kv51kb23liqDovb3lrozmr5UNCiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLmxlbmd0aCAmJiB0aGlzLnNldENoZWNrZWQoKTsNCiAgICAgICAgICB0aGlzLnNob3dTZWxlY3REYXRhKCk7DQogICAgICAgIH0pOw0KICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsNCiAgICAgIH0pOw0KICAgIH0sDQogICAgc2V0Q2hlY2tlZCgpIHsNCiAgICAgIC8v5bCGbmV3IFNldCgp6L2s5YyW5Li65pWw57uEDQogICAgICBsZXQgaWRzID0gWy4uLnRoaXMuc2VsZWN0ZWRJZHNdOw0KICAgICAgdGhpcy5jb3Vwb25MaXN0LmZvckVhY2goKHJvdykgPT4gew0KICAgICAgICBpZiAoaWRzLmluY2x1ZGVzKHJvdy5pZCkpIHsNCiAgICAgICAgICB0aGlzLiRyZWZzLmNvdXBvblRhYmxlLnRvZ2dsZVJvd1NlbGVjdGlvbihyb3csIHRydWUpOw0KICAgICAgICB9DQogICAgICB9KTsNCiAgICB9LA0KICAgIG9rKCkgew0KICAgICAgaWYgKHRoaXMubHVja0RyYXcpIHsNCiAgICAgICAgdGhpcy4kZW1pdCgnZ2V0Q291cG9uSWQnLCB0aGlzLnByb2R1Y3RSb3cpOw0KICAgICAgICB0aGlzLmN1cnJlbnRpZCA9IDA7DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLiRlbWl0KCduYW1lSWQnLCB0aGlzLnNlbGVjdGVkSWRzLCB0aGlzLnNlbGVjdGVkTmFtZXMpOw0KICAgICAgfQ0KICAgICAgdGhpcy5pc1RlbXBsYXRlID0gZmFsc2U7DQogICAgfSwNCiAgICBwYWdlQ2hhbmdlKGluZGV4KSB7DQogICAgICB0aGlzLnRhYmxlRnJvbS5wYWdlID0gaW5kZXg7DQogICAgICB0aGlzLnRhYmxlTGlzdCgpOw0KICAgIH0sDQogICAgbGltaXRDaGFuZ2UobGltaXQpIHsNCiAgICAgIHRoaXMudGFibGVGcm9tLmxpbWl0ID0gbGltaXQ7DQogICAgICB0aGlzLnRhYmxlTGlzdCgpOw0KICAgIH0sDQogICAgc2hvd1NlbGVjdERhdGEoKSB7DQogICAgICBpZiAodGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGggPiAwKSB7DQogICAgICAgIC8vIOWIpOaWreaYr+WQpuWtmOWcqOWLvumAiei/h+eahOaVsOaNrg0KICAgICAgICB0aGlzLmNvdXBvbkxpc3QuZm9yRWFjaCgocm93KSA9PiB7DQogICAgICAgICAgLy8g6I635Y+W5pWw5o2u5YiX6KGo5o6l5Y+j6K+35rGC5Yiw55qE5pWw5o2uDQogICAgICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5mb3JFYWNoKChpdGVtKSA9PiB7DQogICAgICAgICAgICAvLyDli77pgInliLDnmoTmlbDmja4NCiAgICAgICAgICAgIGlmIChyb3cuaWQgPT09IGl0ZW0uaWQpIHsNCiAgICAgICAgICAgICAgLy8gdGhpcy4kcmVmcy50YWJsZS50b2dnbGVSb3dTZWxlY3Rpb24oaXRlbSwgdHJ1ZSk7IC8vIOiLpeaciemHjeWQiO+8jOWImeWbnuaYvuivpeadoeaVsOaNrg0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0pOw0KICAgICAgICB9KTsNCiAgICAgIH0NCiAgICB9LA0KICB9LA0KfTsNCg=="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";AA6FA;AACA;;AAEA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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/components/couponList","sourcesContent":["<template>\r\n <div>\r\n <el-dialog :visible.sync=\"isTemplate\" title=\"优惠券列表\" append-to-body width=\"1000px\">\r\n <el-table\r\n :data=\"couponList\"\r\n ref=\"couponTable\"\r\n class=\"mt20\"\r\n v-loading=\"loading\"\r\n highlight-current-row\r\n :row-key=\"getRowKey\"\r\n no-userFrom-text=\"暂无数据\"\r\n no-filtered-userFrom-text=\"暂无筛选结果\"\r\n @selection-change=\"changeCheckbox\"\r\n >\r\n <el-table-column v-if=\"!luckDraw\" type=\"selection\" width=\"55\" :reserve-selection=\"true\"> </el-table-column>\r\n <el-table-column v-else width=\"50\">\r\n <template slot-scope=\"scope\">\r\n <el-radio v-model=\"templateRadio\" :label=\"scope.row.id\" @change.native=\"getTemplateRow(scope.row)\"\r\n >&nbsp;</el-radio\r\n >\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"ID\" width=\"70\">\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=\"120\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.title }}</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 v-if=\"scope.row.type === 1\">品类券</span>\r\n <span v-else-if=\"scope.row.type === 2\">商品券</span>\r\n <span v-else-if=\"scope.row.type === 3\">会员券</span>\r\n <span v-else>通用券</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.coupon_price }}</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.use_min_price }}</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 v-if=\"scope.row.is_permanent\">不限量</span>\r\n <div v-else>\r\n <span class=\"fa\">发布:{{ scope.row.total_count }}</span>\r\n <span class=\"sheng ml10\">剩余:{{ scope.row.remain_count }}</span>\r\n </div>\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 <div v-if=\"scope.row.start_time\">\r\n {{ scope.row.start_time | formatDate }} - {{ scope.row.end_time | formatDate }}\r\n </div>\r\n <span v-else>不限时</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 <el-tag size=\"medium\" v-show=\"scope.row.status === 1\">正常</el-tag>\r\n <el-tag size=\"medium\" type=\"danger\" v-show=\"scope.row.status === 0\">未开启</el-tag>\r\n <el-tag size=\"medium\" type=\"info\" v-show=\"scope.row.status === -1\">已失效</el-tag>\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=\"tableList\"\r\n />\r\n </div>\r\n <span slot=\"footer\" class=\"dialog-footer\">\r\n <el-button v-db-click @click=\"cancel\">取 消</el-button>\r\n <el-button type=\"primary\" v-db-click @click=\"ok\">确 定</el-button>\r\n </span>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { releasedListApi } from '@/api/marketing';\r\nimport { formatDate } from '@/utils/validate';\r\n\r\nexport default {\r\n name: 'index',\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 hh:mm');\r\n }\r\n },\r\n },\r\n props: {\r\n couponids: {\r\n type: Array,\r\n },\r\n updateIds: {\r\n type: Array,\r\n },\r\n updateName: {\r\n type: Array,\r\n },\r\n luckDraw: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data() {\r\n return {\r\n templateRadio: 0,\r\n\r\n currentid: 0,\r\n productRow: {},\r\n isTemplate: false,\r\n loading: false,\r\n tableFrom: {\r\n receive_type: 3,\r\n page: 1,\r\n limit: 15,\r\n },\r\n total: 0,\r\n ids: [],\r\n texts: [],\r\n couponList: [],\r\n selectedIds: [],\r\n selectedNames: [],\r\n multipleSelection: [],\r\n };\r\n },\r\n mounted() {},\r\n watch: {\r\n updateIds: function (newVal) {\r\n this.selectedIds = newVal;\r\n },\r\n updateName: function (newVal) {\r\n this.selectedNames = newVal;\r\n this.multipleSelection = newVal;\r\n },\r\n },\r\n created() {},\r\n methods: {\r\n getRowKey(row) {\r\n return row.id;\r\n },\r\n getTemplateRow(row) {\r\n this.currentid = row.id;\r\n this.productRow = row;\r\n },\r\n //对象数组去重;\r\n unique(arr) {\r\n const res = new Map();\r\n return arr.filter((arr) => !res.has(arr.id) && res.set(arr.id, 1));\r\n },\r\n changeCheckbox(selection) {\r\n let uniqueArr = [];\r\n let cups = [];\r\n let ids = [];\r\n let arr = this.unique(selection);\r\n for (let i = 0; i < arr.length; i++) {\r\n const item = arr[i];\r\n if (!ids.includes(item.id)) {\r\n let obj = {\r\n id: item.id,\r\n title: item.title,\r\n full_reduction: item.full_reduction, // 满\r\n use_min_price: item.use_min_price, // 满\r\n coupon_price: item.coupon_price, // 减\r\n };\r\n cups.push(obj);\r\n ids.push(item.id);\r\n uniqueArr.push(item);\r\n }\r\n }\r\n this.selectedIds = ids;\r\n this.selectedNames = cups;\r\n this.multipleSelection = uniqueArr;\r\n },\r\n cancel() {\r\n this.isTemplate = false;\r\n if (this.luckDraw) {\r\n this.currentid = 0;\r\n }\r\n },\r\n tableList() {\r\n this.loading = true;\r\n releasedListApi(this.tableFrom).then((res) => {\r\n let data = res.data;\r\n this.couponList = data.list;\r\n this.total = data.count;\r\n this.$nextTick(() => {\r\n //确保dom加载完毕\r\n this.selectedIds.length && this.setChecked();\r\n this.showSelectData();\r\n });\r\n this.loading = false;\r\n });\r\n },\r\n setChecked() {\r\n //将new Set()转化为数组\r\n let ids = [...this.selectedIds];\r\n this.couponList.forEach((row) => {\r\n if (ids.includes(row.id)) {\r\n this.$refs.couponTable.toggleRowSelection(row, true);\r\n }\r\n });\r\n },\r\n ok() {\r\n if (this.luckDraw) {\r\n this.$emit('getCouponId', this.productRow);\r\n this.currentid = 0;\r\n } else {\r\n this.$emit('nameId', this.selectedIds, this.selectedNames);\r\n }\r\n this.isTemplate = false;\r\n },\r\n pageChange(index) {\r\n this.tableFrom.page = index;\r\n this.tableList();\r\n },\r\n limitChange(limit) {\r\n this.tableFrom.limit = limit;\r\n this.tableList();\r\n },\r\n showSelectData() {\r\n if (this.multipleSelection.length > 0) {\r\n // 判断是否存在勾选过的数据\r\n this.couponList.forEach((row) => {\r\n // 获取数据列表接口请求到的数据\r\n this.multipleSelection.forEach((item) => {\r\n // 勾选到的数据\r\n if (row.id === item.id) {\r\n // this.$refs.table.toggleRowSelection(item, true); // 若有重合,则回显该条数据\r\n }\r\n });\r\n });\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped></style>\r\n"]}]}