<template>
  <div id='app' >
    <criteria-paged :model="model" :pager='false' v-ref:paged>
      <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:criteria>
        <div novalidate class="form-inline auto " partial >
          <p class="bg-info text-center" style="padding: 8px;">营业分项汇总</p>
          <div novalidate class="auto form-horizontal select-overspread container-fluid auto" partial>
            <div class="row">
              <div class="col-sm-3 form-group form-fix-width" >
                <label class="control-label _zoom4">售气单位</label>
                <v-select :value.sync="model.f_filiale"
                          v-model="model.f_filiale"
                          :options='$parent.$parent.compans'
                          placeholder='请选择'
                          :value-single="true"
                          close-on-select></v-select>
              </div>
              <div class="col-sm-3 form-group form-fix-width" >
                <label class="control-label _zoom4">售气部门</label>
                <v-select :value.sync="model.f_outlets"
                          v-model="model.f_outlets"
                          :options='$parent.$parent.selldep'
                          placeholder='请选择'
                          :value-single="true"
                          close-on-select></v-select>
              </div>
              <div class="col-sm-3 form-group form-fix-width" >
                <label class="control-label _zoom4">操作地点</label>
                <input  type="text" class="form-control _zoom6" v-model="model.op_spot"
                        :value.sync="model.op_spot"
                        placeholder='操作地点'>
              </div>
              <div class="col-sm-3 form-group form-fix-width" >
                <label class="control-label _zoom4">操作员</label>
                <input  type="text" class="form-control _zoom6" v-model="model.op_id"
                        :value.sync="model.op_id"
                        placeholder='操作员'>
              </div>
              <div class="col-sm-3 form-group form-fix-width" >
                <label class="control-label _zoom4" for="startDate">开始日期:</label>
                <datepicker id="startDate" placeholder="开始日期"
                            class="_zoom6"
                            v-model="model.startDate"
                            :value.sync="model.startDate"
                            :disabled-days-of-Week="[]"
                            :format="'yyyy-MM-dd'"
                            :show-reset-button="reset">
                </datepicker>
              </div>
              <div class="col-sm-3 form-group form-fix-width" >
                <label class="control-label _zoom4" for="endDate">结束日期:</label>
                <datepicker id="endDate" placeholder="结束日期"
                            class="_zoom6"
                            v-model="model.endDate"
                            :value.sync="model.endDate"
                            :disabled-days-of-Week="[]"
                            :format="'yyyy-MM-dd'"
                            :show-reset-button="reset">
                </datepicker>
              </div>
            </div>
            <div class="row">
              <div  style = "float:right;margin-top:10px">
                <button class="btn btn-primary width-100" @click="search()">查询</button>
                <report-print id='gasprice' top='1cm' left='2cm' width='100%' height='100%'></report-print>
                <report-excel id='gasprice' ></report-excel>
              </div>
            </div>
          </div>
        </div>
      </criteria>
      <div  partial='list' v-el:handcollect id='gasprice'>
        <table class='tableprint' style="margin: 0px auto" >
          <thead>
          <tr>
            <th colspan='5' style="font-weight: normal; text-align: left;">
              <h3 style="text-align: center">营业分项汇总</h3>
            </th>
          </tr>
          <tr>
            <th colspan='5' style="font-weight: normal; text-align: center;">
              开始时间：{{model.model.startDate}}&nbsp;&nbsp;&nbsp;
              结束时间：{{ model.model.endDate }}&nbsp;&nbsp;&nbsp;
            </th>
          </tr>
          <tr>
          </tr>
          </thead>
          <tr>
            <td colspan='5'>
              {{{ model.data.substring(26,model.data.length-8) }}}
            </td>
          </tr>
          <tfoot>
          <tr style="text-align: left">

          </tr>
          </tfoot>
        </table>
        {{{ $parent.reportStr }}}
      </div>
    </criteria-paged>
    <modal :show.sync="show" v-ref:modal small backdrop="false">
      <header slot="modal-header" class="modal-header">
        <h4 class="modal-title">输入文件名称</h4>
      </header>
      <article slot="modal-body" class="modal-body">
        <div class="form-group">
          <input  type="text" class="form-control" v-model="filename" placeholder='保存的文件名'>
        </div>
      </article>
      <footer slot="modal-footer" class="modal-footer">
        <button v-show="show" type="button" class="btn btn-default" @click='close'>取消</button>
        <button v-show="show" type="button" class="btn btn-success" @click='confirm(filename)'>确认</button>
      </footer>
    </modal>

  </div>
</template>
<script>
  import { DataModel } from 'vue-client'
  import co from 'co'
  let saveFile = function * (self) {
    // 线验证文件是否重名
    let count = yield self.$resetpost('rs/sql/manageSingleTable',
      {data: {tablename: 't_report_record', condition: `f_files_name = '${self.filename}'`}},
      {resolveMsg: null, rejectMsg: null})
    if (count.data.length > 0) {
      self.$showAlert('无法保存，文件名重名', 'warning', 3000)
      return
    }
    let saveBack = yield self.$resetpost('rs/logic/saveReport', {f_files_content: self.$refs.paged.$els.handcollect.innerHTML,
      f_files_name: self.filename, f_files_type: self.data.f_report_type, f_component_name: 'manage-sell-type',
      f_operator: this.$login.f.name, f_query_month: `${self.model.model.startDate}-${self.model.model.endDate}`,
      f_outlets: this.$login.f.f_parentname})
    if (saveBack.data.status === 'succeed') {
      self.show = false
      self.filename = ''
      // 后台保存完成，通知刷新
      self.$dispatch('save-success', self.filename)
    }
  }
  export default {
    title: '营业分项汇总表',
    props: ['data'],
    data () {
      return {
        model: new DataModel('rs/report/fenxiangsell', {
          startDate: 'this.model.startDate',
          endDate: 'this.model.endDate',
          op_id: 'this.model.op_id',
          op_spot: 'this.model.op_spot',
          f_filiale: 'this.model.f_filiale',
          f_outlets: 'this.model.f_outlets',
        }),
        reportStr: null,
        show: false,
        filename: '',
        op_id:'',
        op_spot:'',
        f_filiale:'长安公司',
        f_outlets:this.$login.f.f_parentname,
        userid: this.$login.f.id,
      }
    },
    ready () {
     /* if (this.data) {
        this.$refs.paged.$refs.criteria.model.startDate = this.$login.toStandardDateString() + ' 00:00:00'
        this.$refs.paged.$refs.criteria.model.endDate = this.$login.toStandardDateString() + ' 23:59:59'
        this.$refs.paged.$refs.criteria.model.f_filiale = '长安公司'
        this.$refs.paged.$refs.criteria.model.f_outlets = this.$login.f.f_parentname
        this.$refs.paged.$refs.criteria.model.op_spot = this.$login.f.op_spot
        this.$refs.paged.$refs.criteria.model.op_id = this.$login.f.op_id
      }
      this.$refs.paged.$refs.criteria.search()*/
    },
    methods: {
      selfSearch (args) {
        this.$refs.paged.search(args)
      },
      // 根据文件路径获取储存的报表内容
      getFileContent (path) {
        this.$resetpost('rs/logic/getReportFileContent', {f_files_path: path}, {resolveMsg: null, rejectMsg: null}).then((res) => {
          this.reportStr = res.data.filecontent
          this.model.state = '正确'
        })
      },
      confirm () {
        if (!this.filename || this.filename === '') {
          this.$showAlert('无法保存，文件名不能为空', 'warning', 3000)
        }
        let saveGen = saveFile(this)
        co(saveGen)
      },
      close () {
        this.show = false
      },
      // 将报表保存成文件
      confirmReport () {
        this.show = true
        this.filename = this.data.f_report_name + this.$login.toStandardDateString()
      }
    },
    watch: {
      'data' (val) {
        if (val.f_files_path) {
          this.getFileContent(val.f_files_path)
        } else {
          this.reportStr = null
        }
      }
    },
    computed: {
      selldep () {
        let rs = []
        if(this.$refs.paged.$refs.criteria.model.f_filiale){
          return [{label: '全部', value: ''}, ...this.$appdata.getParam(this.$refs.paged.$refs.criteria.model.f_filiale) ]
        }
        else {
          return [{label: '全部', value: ''}]
        }
      },
      //分公司
      compans () {
        return [{label: '全部', value: ''},...this.$appdata.getParam('售气单位')]
      },
    }
  }
</script>
