use json::{array, JsonValue, object};
use crate::plugin::{{plugin}}::{{model_a}}::{{model}};
use br_plugin::Response;
use br_plugin::action::Action;
use br_excel::Head;

pub struct {{action}} {
    pub model: {{model}},
}

impl Action for {{action}} {
    fn author(&mut self) -> &'static str {""}
    fn title(&mut self) -> &'static str { "{{title}}" }
    fn index(&mut self,request: Request) -> ApiResponse {
         let temp_dir = format!("{}/temp", header["runtime"]);
         br_file::create_dir(temp_dir.as_str());

               let heads = vec![
                   Head::new("sn", "入库单号", "", 0),
                   Head::new("order_sn", "业务单号", "", 0),
                   Head::new("name", "名称", "", 0),
                   Head::new("barcode", "条码", "", 0),
                   Head::new("code", "货号", "", 0),
                   Head::new("number", "数量", "", 0),
               ];
               let filename = format!("{}/{}", temp_dir, "{{api}}.xlsx");
               let mut excel = br_excel::write::Write::new(&*filename);
               excel.set_page(1, "表", heads, array![]);
               match excel.save() {
                   true => {
                       return self.download(&*filename);
                   }
                   false => {
                       return self.fail("下载失败");
                   }
        }
    }
}