This commit is contained in:
liushiwei
2023-10-16 10:18:31 +08:00
parent 0a1f6f1105
commit af84e9fca6
7 changed files with 22 additions and 30 deletions

View File

@@ -7,7 +7,7 @@
"build": "vue-cli-service build" "build": "vue-cli-service build"
}, },
"dependencies": { "dependencies": {
"@antv/g2plot": "^2.4.31", "@antv/g2plot": "^2.4.25",
"axios": "^1.4.0", "axios": "^1.4.0",
"core-js": "^3.8.3", "core-js": "^3.8.3",
"dayjs": "^1.11.9", "dayjs": "^1.11.9",

View File

@@ -80,7 +80,6 @@ export default {
} }
}, },
created () { created () {
console.log(this.params?.url)
if (this.params?.url) { if (this.params?.url) {
this.form.url = this.params.url this.form.url = this.params.url
} }

View File

@@ -16,7 +16,7 @@
</ai-card> </ai-card>
<ai-card title="趋势信息"> <ai-card title="趋势信息">
<template #content> <template #content>
<div id="chart"></div> <div id="dataChart"></div>
</template> </template>
</ai-card> </ai-card>
</template> </template>
@@ -39,19 +39,23 @@ export default {
}, },
computed: { computed: {
}, },
created() { mounted() {
this.getInfo() // this.info = this.params
this.$nextTick(() => {
this.init()
})
}, },
methods: { methods: {
getInfo() { init() {
this.$http.post('/api/monitorDetail/queryDetail',null,{ this.$http.post('/api/monitorDetail/queryProductDetail',null,{
params: { params: {
goodsId: this.params.goodsId goodsId: this.params.goodsId,
monitorId: this.params.monitorId
} }
}).then(res => { }).then(res => {
this.info = res.data this.info = res.data
const dualAxes = new DualAxes('chart', { const dualAxes = new DualAxes('dataChart', {
data: [this.info.priceAndSale, this.info.priceAndSale], data: [this.info.priceAndSale, this.info.priceAndSale],
xField: '日期', xField: '日期',
yField: ['价格', '销量'], yField: ['价格', '销量'],
@@ -65,14 +69,6 @@ export default {
color: '#5AD8A6', color: '#5AD8A6',
} }
], ],
smooth: true,
// @TODO 后续会换一种动画方式
animation: {
appear: {
animation: 'path-in',
duration: 5000,
},
},
}); });
dualAxes.render(); dualAxes.render();

View File

@@ -6,7 +6,7 @@
</span> </span>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item v-if="isShowDetail" :command="beforeGoDetail(params.goodsId)">查看详情</el-dropdown-item> <el-dropdown-item v-if="isShowDetail" :command="beforeGoDetail(params.goodsId)">查看详情</el-dropdown-item>
<el-dropdown-item divided :command="beforeCopy(params.url)">复制商品</el-dropdown-item> <el-dropdown-item divided :command="beforeCopy(params.url)">商品采集</el-dropdown-item>
<el-dropdown-item divided :command="beforeGoWeb(params.url)">访问商品</el-dropdown-item> <el-dropdown-item divided :command="beforeGoWeb(params.url)">访问商品</el-dropdown-item>
<el-dropdown-item :command="beforeGoMal(params.mallId)">访问店铺</el-dropdown-item> <el-dropdown-item :command="beforeGoMal(params.mallId)">访问店铺</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
@@ -51,7 +51,6 @@ export default {
} else if (e.type == 'goMall') { } else if (e.type == 'goMall') {
window.open('https://www.temu.com/mall.html?mall_id=' + e.mallId, '_blank'); window.open('https://www.temu.com/mall.html?mall_id=' + e.mallId, '_blank');
} else if (e.type == 'goWeb') { } else if (e.type == 'goWeb') {
console.log(e.url)
window.open('https://www.temu.com/' + e.url, '_blank'); window.open('https://www.temu.com/' + e.url, '_blank');
} }
}, },

View File

@@ -16,7 +16,7 @@
<div style="display: inline; margin-left: 5px;">${{ item.priceAndSale[0].price }}<sub style="margin-left: 2px;" v-html="getPricePercent(item.priceAndSale)"></sub></div> <div style="display: inline; margin-left: 5px;">${{ item.priceAndSale[0].price }}<sub style="margin-left: 2px;" v-html="getPricePercent(item.priceAndSale)"></sub></div>
<div style="display: inline; margin-right: 5px; float: right;">{{ item.priceAndSale[0].sale_total }}<sub style="margin-left: 2px;" v-html="getSalePercent(item.priceAndSale)"></sub></div> <div style="display: inline; margin-right: 5px; float: right;">{{ item.priceAndSale[0].sale_total }}<sub style="margin-left: 2px;" v-html="getSalePercent(item.priceAndSale)"></sub></div>
</div> </div>
<ai-product-drop-down :params="item" :isShowDetail="true" @onGoDetail="goDetail(item.goodsId)" style="float: right;"></ai-product-drop-down> <ai-product-drop-down :params="item" :isShowDetail="true" @onGoDetail="goDetail(item.goodsId, item.monitorId)" style="float: right;"></ai-product-drop-down>
</div> </div>
</div> </div>
</el-card> </el-card>
@@ -124,8 +124,8 @@ import AiProductDropDown from '@/components/AiProductDropDown.vue';
handleClose() { handleClose() {
this.isShowDetailDlg = false this.isShowDetailDlg = false
}, },
goDetail (goodsId) { goDetail (goodsId, monitorId) {
this.detailParams = {goodsId: goodsId} this.detailParams = {goodsId: goodsId, monitorId: monitorId}
this.isShowDetailDlg = true this.isShowDetailDlg = true
} }
} }

View File

@@ -16,7 +16,7 @@
<div style="display: inline; margin-left: 5px;">${{ item.priceAndSale[0].price }}<sub style="margin-left: 2px;" v-html="getPricePercent(item.priceAndSale)"></sub></div> <div style="display: inline; margin-left: 5px;">${{ item.priceAndSale[0].price }}<sub style="margin-left: 2px;" v-html="getPricePercent(item.priceAndSale)"></sub></div>
<div style="display: inline; margin-right: 5px; float: right;">{{ item.priceAndSale[0].sale_total }}<sub style="margin-left: 2px;" v-html="getSalePercent(item.priceAndSale)"></sub></div> <div style="display: inline; margin-right: 5px; float: right;">{{ item.priceAndSale[0].sale_total }}<sub style="margin-left: 2px;" v-html="getSalePercent(item.priceAndSale)"></sub></div>
</div> </div>
<ai-product-drop-down :params="item" :isShowDetail="true" @onGoDetail="goDetail(item.goodsId)" style="float: right;"></ai-product-drop-down> <ai-product-drop-down :params="item" :isShowDetail="true" @onGoDetail="goDetail(item.goodsId, item.monitorId)" style="float: right;"></ai-product-drop-down>
</div> </div>
</div> </div>
</el-card> </el-card>
@@ -122,8 +122,8 @@ import AiProductDropDown from '@/components/AiProductDropDown.vue';
handleClose() { handleClose() {
this.isShowDetailDlg = false this.isShowDetailDlg = false
}, },
goDetail (goodsId) { goDetail (goodsId, monitorId) {
this.detailParams = {goodsId: goodsId} this.detailParams = {goodsId: goodsId, monitorId: monitorId}
this.isShowDetailDlg = true this.isShowDetailDlg = true
} }
} }

View File

@@ -1,6 +1,6 @@
const path = require('path') const path = require('path')
const fs = require('fs') const fs = require('fs')
const JavaScriptObfuscator = require('webpack-obfuscator') // const JavaScriptObfuscator = require('webpack-obfuscator')
// Generate pages object // Generate pages object
const pages = {} const pages = {}
@@ -47,9 +47,7 @@ module.exports = {
}, lintOnSave: false, configureWebpack: { }, lintOnSave: false, configureWebpack: {
output: { output: {
filename: `[name].js`, chunkFilename: `[name].js` filename: `[name].js`, chunkFilename: `[name].js`
}, devtool: isDevMode ? 'inline-source-map' : false, plugins: isDevMode ? [] : [new JavaScriptObfuscator({ }, devtool: isDevMode ? 'inline-source-map' : false
rotateStringArray: true,
}, [])]
}, css: { }, css: {
extract: false // Make sure the css is the same extract: false // Make sure the css is the same
} }