第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

django返回頁(yè)面和json格式列表給前端AntV圖表使用。

標(biāo)簽:
JavaScript

ret_char_data = []  # 经费支出分类汇总列表    ret_char_data_root = []  # 经费支出分类汇总列表含总经费    budget_obj = models.Budget.objects.filter(id=request.GET.get("id")).first()    payment_year = time.strptime(budget_obj.year_budget, "%Y")[0]    payment_previous_year = time.strptime(budget_obj.year_budget, "%Y")[0] - 1    sum_pay = models.Payment.objects.filter(payment_time__year=payment_year).values().aggregate(Sum("payment_amount"))    # 年度总支出    payment_list = models.Payment.objects.filter(payment_time__year=payment_year).values(        "payment_project__project_property").annotate(Sum("payment_amount"))    # 按项目属性得到支出汇总数据    payment_list_previous_year = models.Payment.objects.filter(payment_time__year=payment_previous_year).values(        "payment_project__project_property").annotate(Sum("payment_amount"))    property_tuple = models.OperaMaintProject._meta.model.property_choices    #  得到 ((0, '自主维护'), (1, '专业代维'), (2, '外包维修'), (3, '紧急抢修'), (4, '备件采购'), (5, '其他'))    ret_list = []    ret_list_previous_year = []    budget = budget_obj.reply_quota*10000 - sum_pay["payment_amount__sum"]  # 剩余经费    budget_dic = {"budget": budget}    for property in property_tuple:        char_dic = {}        char_dic_root = {}        char_dic['type'] = property[1]        char_dic_root['type'] = property[1]        char_dic['money'] = 0        char_dic_root['money'] = 0        for pay_item in payment_list:            if pay_item["payment_project__project_property"] == property[0]:                char_dic['type'] = property[1]                char_dic_root['type'] = property[1]                char_dic['money'] = pay_item['payment_amount__sum']                char_dic_root['money'] =float(round((pay_item['payment_amount__sum']/(budget_obj.reply_quota*10000))*100,1))        ret_char_data.append(char_dic)        ret_char_data_root.append(char_dic_root)    sum_money = 0    for obj in ret_char_data_root:       sum_money =sum_money +float(obj["money"])    char_dic_remainder  = {}    char_dic_remainder['type'] = '剩余经费'    char_dic_remainder['money'] = 100-sum_money    ret_char_data_root.append(char_dic_remainder)    ret_char_data_root = json.dumps(ret_char_data_root)    # char_dic_total = {}    # char_dic_total['type'] = '总经费'    # char_dic_total['money'] = str(budget_obj.reply_quota*10000)    # ret_char_data_root.append(char_dic_total)    print(ret_char_data_root)    char_dic_sum={}    char_dic_sum['type'] = '总支出'    char_dic_sum['money'] = str(sum_pay['payment_amount__sum'])    ret_char_data.append(char_dic_sum)    return render(request, "opera_maint/budget_mgr/budget_analysis.html", {"ret_list": ret_list,                                                                           "ret_list_previous_year": ret_list_previous_year,                                                                           "property_tuple": property_tuple,                                                                           "ret_char_data": ret_char_data,                                                                           "ret_char_data_root": ret_char_data_root,                                                                           })

前端:

 var _DataSet = DataSet,            DataView = _DataSet.DataView;                        前端获取列表        var temp_data = '{{ ret_char_data_root|safe }}';        console.log(data,typeof(data));                这时temp_data 是个字符串        var data =JSON.parse(temp_data); 转成json对象        console.log(data,typeof(data));                此时已经是object了。不能直接使用                JSON.parse('{{ ret_char_data_root|safe }}')。要中转一下。        var dv1 = new DataView();        dv1.source(data).transform({            type: 'percent',            field: 'money',            dimension: 'type',            as: 'percent'        });        var chart1 = new G2.Chart({            container: 'mountNode1',            forceFit: true,            height: window.innerHeight        });        chart1.source(dv1, {            percent: {                formatter: function formatter(val) {                    val = val * 100 + '%';                    return val;                }            }        });        chart1.coord('theta');        chart1.tooltip({            showTitle: false,            itemTpl: '<li><span  class="g2-tooltip-marker"></span>{name}: {value}</li>'        });        chart1.intervalStack().position('percent').color('type').label('percent', {            offset: -40,            // autoRotate: false,            textStyle: {                rotate: 0,                textAlign: 'center',                shadowBlur: 2,                shadowColor: 'rgba(0, 0, 0, .45)'            }        }).tooltip('type*percent', function (item, percent) {            percent = percent * 100 + '%';            return {                name: item,                value: percent            };        }).style({            lineWidth: 1,            stroke: '#fff'        });        chart1.render();    </script>

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消