关于VUE+G2chat的使用问题

关于VUE+G2chat的使用问题

遇到的问题:
1、axios获取数据后无法获取显示到图中
2、返回的json将int自动转换成string
3、G2图表不能显示数据,async的问题
第一个问题解决办法:
采用异步模式

    async initData () {//此处异步拉取数据解决G2无法获取数据问题
		const params = {
		    fit: this.fit
		    }
		this.dep = await scoreService.scorecharts(params);
    },

第二个问题解决办法:

//返回JSON
echo json_encode(array(

                //"recordsTotal" => count($ob),
                "statusCode" => $res['statusCode'],
                //"recordsFiltered" => intval($recordsFiltered),
                //"ob"=>$ob,
                "msg"=>$res['msg'],
                "data"=>$res['data'],
                // "ceshi"=>$q['password'],
            ),JSON_UNESCAPED_UNICODE|JSON_NUMERIC_CHECK);

后端使用PHP,返回json:

echo json_encode默认会将数值转换为字符串。
解决办法是在option中加入JSON_NUMERIC_CHECK。
option所有参数如下:

JSON_HEX_QUOT //所有的 < 和 > 转换成 \u003C 和 \u003E。 自 PHP 5.3.0 起生效。
 
JSON_HEX_TAG //所有的 < 和 > 转换成 \u003C 和 \u003E。 自 PHP 5.3.0 起生效。
 
JSON_HEX_AMP //所有的 & 转换成 \u0026。 自 PHP 5.3.0 起生效。
 
JSON_HEX_APOS //所有的 ' 转换成 \u0027。 自 PHP 5.3.0 起生效。
 
JSON_NUMERIC_CHECK //将所有数字字符串编码成数字(numbers)。 自 PHP 5.3.3 起生效。
 
JSON_PRETTY_PRINT //用空白字符格式化返回的数据。 自 PHP 5.4.0 起生效。
 
JSON_UNESCAPED_SLASHES //不要编码 /。 自 PHP 5.4.0 起生效。
 
JSON_FORCE_OBJECT //使一个非关联数组输出一个类(Object)而非数组。 在数组为空而接受者需要一个类(Object)的时候尤其有用。 自 PHP 5.3.0 起生效。
 
JSON_PRESERVE_ZERO_FRACTION //确保浮点值始终被编码为浮点值。自 PHP 5.6.6 起生效。
 
JSON_UNESCAPED_UNICODE //以字面编码多字节 Unicode 字符(默认是编码成 \uXXXX)。 自 PHP 5.4.0 起生效。
 
JSON_PARTIAL_OUTPUT_ON_ERROR //替换一些不可编码的值而不是失败。自 PHP 5.6.6 起生效。

JSON_UNESCAPED_LINE_TERMINATORS //当提供JSON_UNESCAPED_UNICODE时,行终止符保持未转义。它使用与PHP 7.1之前相同的行为,没有这个常数。自 PHP 7.1.0可用。

第三个问题解决办法:
加个watch

  watch: {
    dep: {
      handler(newName, oldName) {
		this.chart.changeData(this.dep.rows);
        console.log('obj.a changed');
      },

啊,发现了json_encode的坑,asnyc异步获取虽然在created中,但实际无法起到作用,还需要使用watch观察。
OVER,MARK一下,写得乱七八糟,希望又遇到此类问题的兄弟少走弯路了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章