75b85fb5936efb4c9e501c581774cc43.json 16 KB

1
  1. {"remainingRequest":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\src\\views\\statement\\statementList\\CustomerMerchandiseReport.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\src\\views\\statement\\statementList\\CustomerMerchandiseReport.vue","mtime":1655374732000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\babel.config.js","mtime":1655374732000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js","mtime":1655715099000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IHsgY3VzdG9tZXJHb29kcyB9IGZyb20gIkAvYXBpL0NoYXJ0cyI7CmltcG9ydCBHb29kc0NhdGVnb3J5IGZyb20gIkAvY29tcG9uZW50L2NvbW1vbi9Hb29kc0NhdGVnb3J5LnZ1ZSI7CmltcG9ydCBDdXN0b21lcnNHb29kc0NoYXJ0IGZyb20gIkAvdmlld3Mvc3RhdGVtZW50L2NvbXBvbmVudHMvQ3VzdG9tZXJzR29vZHNDaGFydCI7CmltcG9ydCBDdXN0b21lcnNHb29kc0NoYXJ0UGllIGZyb20gIkAvdmlld3Mvc3RhdGVtZW50L2NvbXBvbmVudHMvQ3VzdG9tZXJzR29vZHNDaGFydFBpZSI7CmV4cG9ydCBkZWZhdWx0IHsKICBjb21wb25lbnRzOiB7CiAgICBHb29kc0NhdGVnb3J5LAogICAgQ3VzdG9tZXJzR29vZHNDaGFydCwKICAgIEN1c3RvbWVyc0dvb2RzQ2hhcnRQaWUKICB9LAoKICBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgdGFibGVEYXRhOiBbXSwKICAgICAgcGFnZTogMSwKICAgICAgcGFnZVNpemU6IDEwLAogICAgICB0b3RhbDogMCwKICAgICAgdGltZTogIiIsCiAgICAgIHN0YXJ0OiAiIiwKICAgICAgZW5kOiAiIiwKICAgICAgdHlwZTogMSwKICAgICAgY3VzdG9tZXJTdGF0dXM6IFt7CiAgICAgICAgbGFiZWw6ICLlrqLmiLciLAogICAgICAgIHZhbHVlOiAxCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogIuWuouaIt+exu+WeiyIsCiAgICAgICAgdmFsdWU6IDIKICAgICAgfV0sCiAgICAgIGNhdGVnb3J5UGF0aDogW10sCiAgICAgIGNhdGVnb3J5SWQ6ICIiLAogICAgICBnb29kc05hbWU6IFtdLAogICAgICBnb29kc051bTogW10sCiAgICAgIGdvb2RzTW9uZXk6IFtdLAogICAgICBnb29kc1ZhbHVlOiBbXSwKICAgICAgZ29vZHNOYW1lMjogW10KICAgIH07CiAgfSwKCiAgY29tcHV0ZWQ6IHsKICAgIHRvdGFsT2JqKCkgewogICAgICBjb25zdCB0b3RhbE9iaiA9IHsKICAgICAgICBnb29kc051bTogMCwKICAgICAgICBnb29kc0Ftb3VudDogMAogICAgICB9OwogICAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgIHRvdGFsT2JqLmdvb2RzTnVtID0gdGhpcy4kTlAucGx1cyh0b3RhbE9iai5nb29kc051bSwgaXRlbS5nb29kc051bSk7CiAgICAgICAgdG90YWxPYmouZ29vZHNBbW91bnQgPSB0aGlzLiROUC5wbHVzKHRvdGFsT2JqLmdvb2RzQW1vdW50LCBpdGVtLmdvb2RzQW1vdW50KTsKICAgICAgfSk7CiAgICAgIHJldHVybiB0b3RhbE9iajsKICAgIH0KCiAgfSwKCiAgY3JlYXRlZCgpIHsKICAgIHRoaXMuY3VzdG9tZXJHb29kcygpOwogIH0sCgogIGFjdGl2YXRlZCgpIHsKICAgIGlmICh0aGlzLiRfaXNJbml0KCkpIHJldHVybjsKICAgIHRoaXMuY3VzdG9tZXJHb29kcygpOwogIH0sCgogIG1ldGhvZHM6IHsKICAgIHBhZ2VDaGFuZ2UodmFsKSB7CiAgICAgIGlmICh0aGlzLnR5cGUgPT09IDIpIHsKICAgICAgICB0aGlzLmdvb2RzTmFtZSA9IFtdOwogICAgICAgIHRoaXMuZ29vZHNOdW0gPSBbXTsKICAgICAgICB0aGlzLmdvb2RzTW9uZXkgPSBbXTsKICAgICAgfQoKICAgICAgaWYgKHRoaXMudHlwZSA9PT0gMSkgewogICAgICAgIHRoaXMuZ29vZHNWYWx1ZSA9IFtdOwogICAgICAgIHRoaXMuZ29vZHNOYW1lMiA9IFtdOwogICAgICB9CgogICAgICB0aGlzLnBhZ2UgPSB2YWw7CiAgICAgIHRoaXMuY3VzdG9tZXJHb29kcygpOwogICAgfSwKCiAgICBzaXplQ2hhbmdlKHZhbCkgewogICAgICB0aGlzLnBhZ2VTaXplID0gdmFsOwogICAgICB0aGlzLmN1c3RvbWVyR29vZHMoKTsKICAgIH0sCgogICAgLy8gIOiuouWNleaXtumXtAogICAgb3JkZXJEYXRlKHZhbCkgewogICAgICBpZiAodmFsICYmIHZhbC5sZW5ndGgpIHsKICAgICAgICB0aGlzLnN0YXJ0ID0gdmFsWzBdIC8gMTAwMDsKICAgICAgICB0aGlzLmVuZCA9IHZhbFsxXSAvIDEwMDAgKyA4NjM5OTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnN0YXJ0ID0gIiI7CiAgICAgICAgdGhpcy5lbmQgPSAiIjsKICAgICAgfQoKICAgICAgdGhpcy5wYWdlQ2hhbmdlKDEpOwogICAgfSwKCiAgICBhc3luYyBjdXN0b21lckdvb2RzKCkgewogICAgICBjb25zdCBnb29kc05hbWUgPSBbXTsKICAgICAgY29uc3QgZ29vZHNOdW0gPSBbXTsKICAgICAgY29uc3QgZ29vZHNNb25leSA9IFtdOwogICAgICBjb25zdCBnb29kc1ZhbHVlID0gW107CiAgICAgIGNvbnN0IGdvb2RzTmFtZTIgPSBbXTsKICAgICAgY29uc3QgewogICAgICAgIGRhdGEsCiAgICAgICAgcGFnZVRvdGFsCiAgICAgIH0gPSBhd2FpdCBjdXN0b21lckdvb2RzKHsKICAgICAgICBwYWdlOiB0aGlzLnBhZ2UsCiAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsCiAgICAgICAgY2F0ZWdvcnlJZDogdGhpcy5jYXRlZ29yeUlkLAogICAgICAgIHN0YXJ0VGltZTogdGhpcy5zdGFydCwKICAgICAgICBlbmRUaW1lOiB0aGlzLmVuZCwKICAgICAgICB0eXBlOiB0aGlzLnR5cGUKICAgICAgfSk7CiAgICAgIHRoaXMudGFibGVEYXRhID0gZGF0YTsKICAgICAgdGhpcy50b3RhbCA9IHBhZ2VUb3RhbDsKCiAgICAgIGlmICh0aGlzLnR5cGUgPT09IDEpIHsKICAgICAgICBkYXRhLmZvckVhY2godmFsdWUgPT4gewogICAgICAgICAgaWYgKGdvb2RzTmFtZS5pbmRleE9mKHZhbHVlLnRpdGxlKSA9PT0gLTEpIHsKICAgICAgICAgICAgZ29vZHNOYW1lLnB1c2godmFsdWUudGl0bGUpOwogICAgICAgICAgICBnb29kc051bS5wdXNoKE51bWJlcih2YWx1ZS5nb29kc051bSkpOwogICAgICAgICAgICBnb29kc01vbmV5LnB1c2goTnVtYmVyKHZhbHVlLmdvb2RzQW1vdW50KSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5nb29kc05hbWUgPSBnb29kc05hbWU7CiAgICAgICAgdGhpcy5nb29kc051bSA9IGdvb2RzTnVtOwogICAgICAgIHRoaXMuZ29vZHNNb25leSA9IGdvb2RzTW9uZXk7CiAgICAgIH0KCiAgICAgIGlmICh0aGlzLnR5cGUgPT09IDIpIHsKICAgICAgICBkYXRhLmZvckVhY2godmFsdWUgPT4gewogICAgICAgICAgaWYgKGdvb2RzTmFtZTIuaW5kZXhPZih2YWx1ZS50aXRsZSkgPT09IC0xKSB7CiAgICAgICAgICAgIGdvb2RzVmFsdWUucHVzaCh7CiAgICAgICAgICAgICAgdmFsdWU6IE51bWJlcih2YWx1ZS5nb29kc0Ftb3VudCksCiAgICAgICAgICAgICAgbmFtZTogdmFsdWUudGl0bGUKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGdvb2RzTmFtZTIucHVzaCh2YWx1ZS50aXRsZSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5nb29kc1ZhbHVlID0gZ29vZHNWYWx1ZTsKICAgICAgICB0aGlzLmdvb2RzTmFtZTIgPSBnb29kc05hbWUyOwogICAgICB9CiAgICB9LAoKICAgIGdvb2RzQ2hhbmUodmFsKSB7CiAgICAgIHRoaXMuY2F0ZWdvcnlJZCA9IHZhbFswXTsKICAgICAgdGhpcy5wYWdlQ2hhbmdlKDEpOwogICAgfQoKICB9Cn07"},{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2GA;AACA;AACA;AACA;AACA;EACAA;IACAC,aADA;IAEAC,mBAFA;IAGAC;EAHA,CADA;;EAMAC;IACA;MACAC,aADA;MAEAC,OAFA;MAGAC,YAHA;MAIAC,QAJA;MAKAC,QALA;MAMAC,SANA;MAOAC,OAPA;MAQAC,OARA;MASAC,iBACA;QAAAC;QAAAC;MAAA,CADA,EAEA;QAAAD;QAAAC;MAAA,CAFA,CATA;MAaAC,gBAbA;MAcAC,cAdA;MAeAC,aAfA;MAgBAC,YAhBA;MAiBAC,cAjBA;MAkBAC,cAlBA;MAmBAC;IAnBA;EAqBA,CA5BA;;EA6BAC;IACAC;MACA;QACAL,WADA;QAEAM;MAFA;MAIA;QACAD;QACAA,qCACAA,oBADA,EAEAE,gBAFA;MAIA,CANA;MAOA;IACA;;EAdA,CA7BA;;EA6CAC;IACA;EACA,CA/CA;;EAgDAC;IACA;IACA;EACA,CAnDA;;EAoDAC;IACAC;MACA;QACA;QACA;QACA;MACA;;MACA;QACA;QACA;MACA;;MACA;MACA;IACA,CAbA;;IAcAC;MACA;MACA;IACA,CAjBA;;IAkBA;IACAC;MACA;QACA;QACA;MACA,CAHA,MAGA;QACA;QACA;MACA;;MACA;IACA,CA5BA;;IA6BA;MACA;MACA;MACA;MACA;MACA;MACA;QAAA5B;QAAA6B;MAAA;QACA3B,eADA;QAEAC,uBAFA;QAGAU,2BAHA;QAIAiB,qBAJA;QAKAC,iBALA;QAMAvB;MANA;MAQA;MACA;;MACA;QACAR;UACA;YACAc;YACAC;YACAC;UACA;QACA,CANA;QAOA;QACA;QACA;MACA;;MACA;QACAhB;UACA;YACAiB;cACAN,gCADA;cAEAqB;YAFA;YAIAd;UACA;QACA,CARA;QASA;QACA;MACA;IACA,CAtEA;;IAuEAe;MACA;MACA;IACA;;EA1EA;AApDA","names":["components","GoodsCategory","CustomersGoodsChart","CustomersGoodsChartPie","data","tableData","page","pageSize","total","time","start","end","type","customerStatus","label","value","categoryPath","categoryId","goodsName","goodsNum","goodsMoney","goodsValue","goodsName2","computed","totalObj","goodsAmount","item","created","activated","methods","pageChange","sizeChange","orderDate","pageTotal","startTime","endTime","name","goodsChane"],"sourceRoot":"src/views/statement/statementList","sources":["CustomerMerchandiseReport.vue"],"sourcesContent":["<template>\n <ContainerQuery>\n <div slot=\"more\">\n <el-form size=\"small\" :inline=\"true\">\n <el-form-item>\n <GoodsCategory\n v-model=\"categoryPath\"\n :width=\"160\"\n check-strictly\n clearable\n size=\"small\"\n @change=\"goodsChane\"\n />\n </el-form-item>\n <el-form-item>\n <el-date-picker\n v-model=\"time\"\n clearable\n type=\"daterange\"\n value-format=\"timestamp\"\n range-separator=\"-\"\n start-placeholder=\"开始日期\"\n end-placeholder=\"结束日期\"\n @change=\"orderDate\"\n ></el-date-picker>\n </el-form-item>\n <el-form-item>\n <el-select\n v-model=\"type\"\n style=\"width: 150px\"\n placeholder=\"统计方式\"\n @change=\"pageChange(1)\"\n >\n <el-option\n v-for=\"item in customerStatus\"\n :key=\"item.value\"\n :label=\"item.label\"\n :value=\"item.value\"\n ></el-option>\n </el-select>\n </el-form-item>\n </el-form>\n </div>\n <div class=\"order_echarts\">\n <div class=\"order_txt\">\n <span>商品数:</span>\n <span class=\"num\">\n {{ $_common.formatNub(totalObj.goodsNum || 0) }}\n </span>\n <span>商品金额:</span>\n <span class=\"num\">\n {{ $_common.formatNub(totalObj.goodsAmount || 0) }}\n </span>\n </div>\n </div>\n <el-divider></el-divider>\n <div v-if=\"type === 1\">\n <CustomersGoodsChart\n v-if=\"type === 1\"\n :goods-name=\"goodsName\"\n :goods-num=\"goodsNum\"\n :goods-money=\"goodsMoney\"\n ></CustomersGoodsChart>\n </div>\n <div v-if=\"type === 2\">\n <CustomersGoodsChartPie\n v-if=\"type === 2\"\n :goods-value=\"goodsValue\"\n :goods-name2=\"goodsName2\"\n ></CustomersGoodsChartPie>\n </div>\n <el-table :data=\"tableData\" style=\"width: 100%\">\n <el-table-column type=\"index\" label=\" \"></el-table-column>\n <el-table-column\n v-if=\"type === 1\"\n prop=\"title\"\n label=\"客户\"\n ></el-table-column>\n <el-table-column\n v-if=\"type === 2\"\n prop=\"title\"\n label=\"客户类型\"\n ></el-table-column>\n <el-table-column prop=\"goodsNum\" label=\"商品数\">\n <template slot-scope=\"scope\">\n {{ $_common.formatNub(scope.row.goodsNum) }}\n <!-- <span v-if=\"scope.row.isEq === 5\">-->\n <!-- ({{ $_common.formatNub(scope.row.otherNum) }})-->\n <!-- </span>-->\n </template>\n </el-table-column>\n <el-table-column prop=\"goodsAmount\" label=\"商品金额\">\n <template slot-scope=\"scope\">\n {{ $_common.formattedNumber(scope.row.goodsAmount) }}\n </template>\n </el-table-column>\n </el-table>\n <FooterPage\n :page-size=\"pageSize\"\n :total-page.sync=\"total\"\n :current-page.sync=\"page\"\n @pageChange=\"pageChange\"\n @sizeChange=\"sizeChange\"\n ></FooterPage>\n </ContainerQuery>\n</template>\n<script>\n import { customerGoods } from \"@/api/Charts\";\n import GoodsCategory from \"@/component/common/GoodsCategory.vue\";\n import CustomersGoodsChart from \"@/views/statement/components/CustomersGoodsChart\";\n import CustomersGoodsChartPie from \"@/views/statement/components/CustomersGoodsChartPie\";\n export default {\n components: {\n GoodsCategory,\n CustomersGoodsChart,\n CustomersGoodsChartPie,\n },\n data() {\n return {\n tableData: [],\n page: 1,\n pageSize: 10,\n total: 0,\n time: \"\",\n start: \"\",\n end: \"\",\n type: 1,\n customerStatus: [\n { label: \"客户\", value: 1 },\n { label: \"客户类型\", value: 2 },\n ],\n categoryPath: [],\n categoryId: \"\",\n goodsName: [],\n goodsNum: [],\n goodsMoney: [],\n goodsValue: [],\n goodsName2: [],\n };\n },\n computed: {\n totalObj() {\n const totalObj = {\n goodsNum: 0,\n goodsAmount: 0,\n };\n this.tableData.forEach((item) => {\n totalObj.goodsNum = this.$NP.plus(totalObj.goodsNum, item.goodsNum);\n totalObj.goodsAmount = this.$NP.plus(\n totalObj.goodsAmount,\n item.goodsAmount\n );\n });\n return totalObj;\n },\n },\n created() {\n this.customerGoods();\n },\n activated() {\n if (this.$_isInit()) return;\n this.customerGoods();\n },\n methods: {\n pageChange(val) {\n if (this.type === 2) {\n this.goodsName = [];\n this.goodsNum = [];\n this.goodsMoney = [];\n }\n if (this.type === 1) {\n this.goodsValue = [];\n this.goodsName2 = [];\n }\n this.page = val;\n this.customerGoods();\n },\n sizeChange(val) {\n this.pageSize = val;\n this.customerGoods();\n },\n // 订单时间\n orderDate(val) {\n if (val && val.length) {\n this.start = val[0] / 1000;\n this.end = val[1] / 1000 + 86399;\n } else {\n this.start = \"\";\n this.end = \"\";\n }\n this.pageChange(1);\n },\n async customerGoods() {\n const goodsName = [];\n const goodsNum = [];\n const goodsMoney = [];\n const goodsValue = [];\n const goodsName2 = [];\n const { data, pageTotal } = await customerGoods({\n page: this.page,\n pageSize: this.pageSize,\n categoryId: this.categoryId,\n startTime: this.start,\n endTime: this.end,\n type: this.type,\n });\n this.tableData = data;\n this.total = pageTotal;\n if (this.type === 1) {\n data.forEach((value) => {\n if (goodsName.indexOf(value.title) === -1) {\n goodsName.push(value.title);\n goodsNum.push(Number(value.goodsNum));\n goodsMoney.push(Number(value.goodsAmount));\n }\n });\n this.goodsName = goodsName;\n this.goodsNum = goodsNum;\n this.goodsMoney = goodsMoney;\n }\n if (this.type === 2) {\n data.forEach((value) => {\n if (goodsName2.indexOf(value.title) === -1) {\n goodsValue.push({\n value: Number(value.goodsAmount),\n name: value.title,\n });\n goodsName2.push(value.title);\n }\n });\n this.goodsValue = goodsValue;\n this.goodsName2 = goodsName2;\n }\n },\n goodsChane(val) {\n this.categoryId = val[0];\n this.pageChange(1);\n },\n },\n };\n</script>\n<style scoped lang=\"scss\">\n .order_echarts {\n width: 100%;\n background-color: #ffffff;\n .order_txt {\n width: 100%;\n height: 70px;\n padding: 20px 20px;\n position: relative;\n .radios {\n position: absolute;\n top: 45px;\n right: 20px;\n }\n .num {\n color: #fd7945;\n font-size: 24px;\n margin-left: 10px;\n margin-right: 40px;\n }\n }\n }\n</style>\n"]}]}