关于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一下,写得乱七八糟,希望又遇到此类问题的兄弟少走弯路了。