diff --git a/src/views/SaleRank/MarketSaleChina/mscEnergyType/opt.js b/src/views/SaleRank/MarketSaleChina/mscEnergyType/opt.js
index d5a1240..dc84907 100644
--- a/src/views/SaleRank/MarketSaleChina/mscEnergyType/opt.js
+++ b/src/views/SaleRank/MarketSaleChina/mscEnergyType/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleChina/mscEnergyType/optLight.js b/src/views/SaleRank/MarketSaleChina/mscEnergyType/optLight.js
index d47f462..abe8fa0 100644
--- a/src/views/SaleRank/MarketSaleChina/mscEnergyType/optLight.js
+++ b/src/views/SaleRank/MarketSaleChina/mscEnergyType/optLight.js
@@ -84,6 +84,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mneCountryPercent/opt.js b/src/views/SaleRank/MarketSaleNE/mneCountryPercent/opt.js
index d5a1240..dc84907 100644
--- a/src/views/SaleRank/MarketSaleNE/mneCountryPercent/opt.js
+++ b/src/views/SaleRank/MarketSaleNE/mneCountryPercent/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mneCountryPercent/optLight.js b/src/views/SaleRank/MarketSaleNE/mneCountryPercent/optLight.js
index d47f462..abe8fa0 100644
--- a/src/views/SaleRank/MarketSaleNE/mneCountryPercent/optLight.js
+++ b/src/views/SaleRank/MarketSaleNE/mneCountryPercent/optLight.js
@@ -84,6 +84,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mneEnergyType/opt.js b/src/views/SaleRank/MarketSaleNE/mneEnergyType/opt.js
index d5a1240..dc84907 100644
--- a/src/views/SaleRank/MarketSaleNE/mneEnergyType/opt.js
+++ b/src/views/SaleRank/MarketSaleNE/mneEnergyType/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mneEnergyType/optLight.js b/src/views/SaleRank/MarketSaleNE/mneEnergyType/optLight.js
index d47f462..abe8fa0 100644
--- a/src/views/SaleRank/MarketSaleNE/mneEnergyType/optLight.js
+++ b/src/views/SaleRank/MarketSaleNE/mneEnergyType/optLight.js
@@ -84,6 +84,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mneMP/mainBrand/opt.js b/src/views/SaleRank/MarketSaleNE/mneMP/mainBrand/opt.js
index f53f5ea..23fd21a 100644
--- a/src/views/SaleRank/MarketSaleNE/mneMP/mainBrand/opt.js
+++ b/src/views/SaleRank/MarketSaleNE/mneMP/mainBrand/opt.js
@@ -75,6 +75,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mneMP/mainBrand/optLight.js b/src/views/SaleRank/MarketSaleNE/mneMP/mainBrand/optLight.js
index 9388fd0..8d1122f 100644
--- a/src/views/SaleRank/MarketSaleNE/mneMP/mainBrand/optLight.js
+++ b/src/views/SaleRank/MarketSaleNE/mneMP/mainBrand/optLight.js
@@ -74,6 +74,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mneMP/mainCountry/opt.js b/src/views/SaleRank/MarketSaleNE/mneMP/mainCountry/opt.js
index 89fd2c7..91d9383 100644
--- a/src/views/SaleRank/MarketSaleNE/mneMP/mainCountry/opt.js
+++ b/src/views/SaleRank/MarketSaleNE/mneMP/mainCountry/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mneMP/mainCountry/optLight.js b/src/views/SaleRank/MarketSaleNE/mneMP/mainCountry/optLight.js
index 4077507..f633e43 100644
--- a/src/views/SaleRank/MarketSaleNE/mneMP/mainCountry/optLight.js
+++ b/src/views/SaleRank/MarketSaleNE/mneMP/mainCountry/optLight.js
@@ -84,6 +84,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mneMPPercent/opt.js b/src/views/SaleRank/MarketSaleNE/mneMPPercent/opt.js
index 5d134a3..16711dd 100644
--- a/src/views/SaleRank/MarketSaleNE/mneMPPercent/opt.js
+++ b/src/views/SaleRank/MarketSaleNE/mneMPPercent/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mneMPPercent/optLight.js b/src/views/SaleRank/MarketSaleNE/mneMPPercent/optLight.js
index 7f8cbc4..a158bd3 100644
--- a/src/views/SaleRank/MarketSaleNE/mneMPPercent/optLight.js
+++ b/src/views/SaleRank/MarketSaleNE/mneMPPercent/optLight.js
@@ -84,6 +84,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mneMainPrice/seriesTotal/opt.js b/src/views/SaleRank/MarketSaleNE/mneMainPrice/seriesTotal/opt.js
index 07f511d..436654c 100644
--- a/src/views/SaleRank/MarketSaleNE/mneMainPrice/seriesTotal/opt.js
+++ b/src/views/SaleRank/MarketSaleNE/mneMainPrice/seriesTotal/opt.js
@@ -86,6 +86,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mneMainPrice/seriesTotal/optLight.js b/src/views/SaleRank/MarketSaleNE/mneMainPrice/seriesTotal/optLight.js
index d990f1c..15749d9 100644
--- a/src/views/SaleRank/MarketSaleNE/mneMainPrice/seriesTotal/optLight.js
+++ b/src/views/SaleRank/MarketSaleNE/mneMainPrice/seriesTotal/optLight.js
@@ -85,6 +85,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precAutoPercent/opt.js b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precAutoPercent/opt.js
index 5ad1a5f..bb1378a 100644
--- a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precAutoPercent/opt.js
+++ b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precAutoPercent/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precAutoPercent/optLight.js b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precAutoPercent/optLight.js
index e37b8b7..6cd8eff 100644
--- a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precAutoPercent/optLight.js
+++ b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precAutoPercent/optLight.js
@@ -84,6 +84,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precMpvPercent/opt.js b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precMpvPercent/opt.js
index 5ad1a5f..bb1378a 100644
--- a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precMpvPercent/opt.js
+++ b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precMpvPercent/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precMpvPercent/optLight.js b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precMpvPercent/optLight.js
index e37b8b7..6cd8eff 100644
--- a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precMpvPercent/optLight.js
+++ b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precMpvPercent/optLight.js
@@ -84,6 +84,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precPercent/opt.js b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precPercent/opt.js
index 42d4327..11cc42c 100644
--- a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precPercent/opt.js
+++ b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precPercent/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precPercent/optLight.js b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precPercent/optLight.js
index e37b8b7..6cd8eff 100644
--- a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precPercent/optLight.js
+++ b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precPercent/optLight.js
@@ -84,6 +84,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precSuvPercent/opt.js b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precSuvPercent/opt.js
index b62661a..a978a27 100644
--- a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precSuvPercent/opt.js
+++ b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precSuvPercent/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precSuvPercent/optLight.js b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precSuvPercent/optLight.js
index e37b8b7..6cd8eff 100644
--- a/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precSuvPercent/optLight.js
+++ b/src/views/SaleRank/MarketSaleNE/mnePrecisionType/precSuvPercent/optLight.js
@@ -84,6 +84,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstCountryPercent/opt.js b/src/views/SaleRank/MarketSaleTraditional/mstCountryPercent/opt.js
index d5a1240..dc84907 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstCountryPercent/opt.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstCountryPercent/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstCountryPercent/optLight.js b/src/views/SaleRank/MarketSaleTraditional/mstCountryPercent/optLight.js
index a696ba2..4315cbe 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstCountryPercent/optLight.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstCountryPercent/optLight.js
@@ -84,6 +84,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstMPPercent/opt.js b/src/views/SaleRank/MarketSaleTraditional/mstMPPercent/opt.js
index 5d134a3..16711dd 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstMPPercent/opt.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstMPPercent/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstMPPercent/optLight.js b/src/views/SaleRank/MarketSaleTraditional/mstMPPercent/optLight.js
index 7f8cbc4..a158bd3 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstMPPercent/optLight.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstMPPercent/optLight.js
@@ -84,6 +84,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainBrand/opt.js b/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainBrand/opt.js
index f53f5ea..23fd21a 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainBrand/opt.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainBrand/opt.js
@@ -75,6 +75,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainBrand/optLight.js b/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainBrand/optLight.js
index 9388fd0..8d1122f 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainBrand/optLight.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainBrand/optLight.js
@@ -74,6 +74,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainCountry/opt.js b/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainCountry/opt.js
index 89fd2c7..91d9383 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainCountry/opt.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainCountry/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainCountry/optLight.js b/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainCountry/optLight.js
index 4077507..f633e43 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainCountry/optLight.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstMainPrice/mainCountry/optLight.js
@@ -84,6 +84,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precAutoPercent/opt.js b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precAutoPercent/opt.js
index 5ad1a5f..bb1378a 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precAutoPercent/opt.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precAutoPercent/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precAutoPercent/optLight.js b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precAutoPercent/optLight.js
index 5ec0ba0..f03db72 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precAutoPercent/optLight.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precAutoPercent/optLight.js
@@ -84,6 +84,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precMpvPercent/opt.js b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precMpvPercent/opt.js
index 5ad1a5f..bb1378a 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precMpvPercent/opt.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precMpvPercent/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precMpvPercent/optLight.js b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precMpvPercent/optLight.js
index 5ec0ba0..f03db72 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precMpvPercent/optLight.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precMpvPercent/optLight.js
@@ -84,6 +84,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precPercent/opt.js b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precPercent/opt.js
index 42d4327..11cc42c 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precPercent/opt.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precPercent/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precPercent/optLight.js b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precPercent/optLight.js
index e37b8b7..6cd8eff 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precPercent/optLight.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precPercent/optLight.js
@@ -84,6 +84,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precSuvPercent/opt.js b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precSuvPercent/opt.js
index b62661a..a978a27 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precSuvPercent/opt.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precSuvPercent/opt.js
@@ -85,6 +85,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precSuvPercent/optLight.js b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precSuvPercent/optLight.js
index 5ec0ba0..f03db72 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precSuvPercent/optLight.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstPrecisionType/precSuvPercent/optLight.js
@@ -84,6 +84,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstSeriesType/seriesTotal/opt.js b/src/views/SaleRank/MarketSaleTraditional/mstSeriesType/seriesTotal/opt.js
index 07f511d..436654c 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstSeriesType/seriesTotal/opt.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstSeriesType/seriesTotal/opt.js
@@ -86,6 +86,16 @@ export default function createOpt(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,
diff --git a/src/views/SaleRank/MarketSaleTraditional/mstSeriesType/seriesTotal/optLight.js b/src/views/SaleRank/MarketSaleTraditional/mstSeriesType/seriesTotal/optLight.js
index d990f1c..15749d9 100644
--- a/src/views/SaleRank/MarketSaleTraditional/mstSeriesType/seriesTotal/optLight.js
+++ b/src/views/SaleRank/MarketSaleTraditional/mstSeriesType/seriesTotal/optLight.js
@@ -85,6 +85,16 @@ export default function createOptLight(dx = [], ds = []) {
       textStyle: {
         color: "#fff", //设置文字颜色
       },
+      formatter: function(param) {
+        let htmlStr = `<div>${param[0].name}</div>`;
+        for(let i = 0; i < param.length; i++) {
+            htmlStr += `<div style="display: flex;justify-content: space-between;margin-top: 4px">
+            <span style="margin-right: 24px">${param[i].marker} ${param[i].seriesName} </span>
+            <span> ${param[i].value} %</span>
+            </div>`
+        }
+        return htmlStr
+      },
       extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
     },
     color: colors,