<script lang='tsx'>
import { Component, Vue, Prop, Model, Watch } from "vue-property-decorator";
import { VNode, CreateElement } from "vue";
import { interval, Subject, Subscription } from "rxjs";
import { Http,Util } from '@/utils';
import JSONEditor from "@json-editor/json-editor";
import BootstrapVue from "bootstrap-vue";
import "bootstrap/dist/css/bootstrap.css";
import "bootstrap-vue/dist/bootstrap-vue.css";
import CodeListService from "@/codelist/codelist-service";
import AppFormJson from './app-form-json.vue';


@Component({
    components: {
         
    }
})
export default class AppFormJsonDaReport extends AppFormJson {
  public codeListService:CodeListService = new CodeListService({ $store: this.$store });

  public async  getSchema(): Promise<any>{
            let _schema = {
                "title": "图表配置",
                "type": "array",
                "format": "table",
                "required": ["headerName"],
                "items": {
                    "$ref": "#/definitions/columnDefs"
                    },
                "default":{headerName:"指标名称"},
                "definitions": {
                    "columnDefs": {
                        "id" : "arr_columnDefs",
                        "type": "object",
                        "title": "展现",
                        "headerTemplate": "{{ self.headerName }}",
                        "required": ["headerName","entity","field"],
                        "properties": {
                            "headerName": {
                                "type": "string",
                                "title": "指标自定义名称",
                                "default": "指标名称",
                                 options: {
                                     grid_columns: 4,
                                    input_width: 250
                                },
                            },
                            "entity": {
                                "type": "string",
                                "title": "模型",
                                options: {
                                      grid_columns: 4,
                                    select2_options: {
                                        width: 200,
                                        value: ''
                                    }
                                },
                                enumSource: []
                            },
                            "field":{
                                "type": "selectnew",
                                "title": "属性",
                                "watch": {
                                    "entity12":  "arr_columnDefs.entity" ,
                                },
                                "links": [
                                    {
                                        "rel": "查看",
                                        "href": "javascript:window.showdetail('dametric-edit-view',{'dametric':'{{self}}'})"
                                    }
                                ],
                                options: {
                                      grid_columns: 4,
                                    select2_options: {
                                        width: 350,
                                        value: ''
                                    }
                                },
                                "enumSource":[{"source":[...[{metric_name:"--",metric_id:""}]],  
                                    "p0":"entity12" ,"url":'/dabuilds/${p0}/dametrics/fetchdefault',
                                    "title": "{{item.metric_name}}", "value": "{{item.metric_id}}"}]
                            }
                        }
                    }
                }
            };

            let _eset: Array<any> = [];
            try{
              
              let cond={};
              const localdata = window.localStorage.getItem('localdata');
              if(localdata) cond={"n_systemid_eq":localdata["dstsystemid"]};   
              const res = await this.codeListService.getItems("CLModel",{},cond);
              _eset.push(...res);
            }catch(er){}
            
            if (_eset) {
                    let _items = [...[{text:"--",id:""}],..._eset];
                    let sourceobj={"source":_items,"title": "{{item.text}}", "value": "{{item.id}}"};
                    _schema.definitions.columnDefs.properties.entity.enumSource=[sourceobj];
            }





            // let _fset: Array<any> = [];

            //  try{
            //   const res = await this.codeListService.getItems("CLMetric");
            //   _fset.push(...res);
            //   }catch(er){

            //   }

            // if (_fset) {
            //     let _items = [...[{text:"--",id:""}],..._fset];
            //     let sourceobj={"source":_items,"filterText":"entity12","title": "{{item.text}}", "value": "{{item.id}}"};
            //     _schema.definitions.columnDefs.properties.field.enumSource=[sourceobj];
            // }
            return _schema;
  }

}
</script>