<template>
  <div id="unit" class="flex-row">
    <div class="basic-main" @keyup.enter="search">
      <div class="flex" v-if="!show">

        <criteria-paged :model="model" v-ref:paged>
          <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
            <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
              <div class="row">
                <div class="col-sm-2 form-group">
                  <label class="font_normal_body">车牌号</label>
                  <input type="text" style="width:60%" class="input_search" v-model="model.f_meternumber"
                         condition="f_meternumber like '%{}%'" placeholder="车牌号">
                </div>
                <div class="col-sm-2 form-group">
                  <label for="startDate" class="font_normal_body">加气开始时间</label>
                  <datepicker id="startDate" placeholder="开始时间" style="width:60%" v-model="model.startDate"
                              :value.sync="model.startDate" :format="'yyyy-MM-dd HH:mm:ss'" :show-reset-button="true"
                              condition="f_start_filling_date >= '{}'">
                  </datepicker>
                </div>
                <div class="col-sm-2 form-group">
                  <label for="endDate" class="font_normal_body">加气结束时间</label>
                  <datepicker id="endDate" placeholder="结束时间" style="width:60%" v-model="model.endDate"
                              :value.sync="model.endDate" :format="'yyyy-MM-dd HH:mm:ss'" :show-reset-button="true"
                              condition="f_end_filling_date <= '{}'">
                  </datepicker>
                </div>
                <div class="span" style="float:right;">
                  <button class="button_search button_spacing" @click="search()">查询</button>
                  <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
                  <!--<button class="btn btn-default" @click="$parent.$parent.stamp()">打印</button>-->

                  <export-excel :data="$parent.$parent.getCondition" :field="$parent.$parent.getfield"
                                :footer="$parent.$parent.footer" :header="$parent.$parent.other"
                                sqlurl="rs/logic/saleExport"
                                sql-name="fillGasQuery" template-name='加气查询导出' :choose-col="true"></export-excel>
                  <print-data :sum-field="$parent.$parent.getfield" :model="$parent.model"
                              :field="$parent.$parent.getfield" :defaultfield="$parent.$parent.defaultfield"
                              titletable="加气记录"
                              :sumsmodel="$parent.$parent.sumsmodel"></print-data>
                  <div style="float: right" class="button_spacing"
                       :class="{ 'button_shrink_top': $parent.$parent.criteriaShow, 'button_shrink_bottom': !$parent.$parent.criteriaShow }"
                       @click="$parent.$parent.hidden()"></div>
                </div>
              </div>

              <div class="row" v-show="$parent.$parent.criteriaShow">
                <!--                <div class="col-sm-2 form-group">-->
                <!--                  <label class="font_normal_body">加气类型</label>-->
                <!--                  <v-select :value.sync="model.f_type" v-model="model.f_type" :options='$parent.$parent.fillGasTypes'-->
                <!--                    placeholder='请选择' condition="f_type = '{}'" close-on-select></v-select>-->
                <!--                </div>-->
                <div class="col-sm-2 form-group">
                  <label class="font_normal_body">客户编号</label>
                  <input type="text" style="width:60%" class="input_search" v-model="model.f_userinfo_code"
                         condition="f_userinfo_code = '{}' " placeholder="客户编号">
                </div>
                <div class="col-sm-2 form-group">
                  <label class="font_normal_body">客户名称</label>
                  <input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
                         condition="f_user_name like '%{}%'" placeholder="客户名称">
                </div>
                <div class="col-sm-2 form-group">
                  <label class="font_normal_body">客户电话</label>
                  <input type="text" style="width:60%" class="input_search" v-model="model.f_user_phone"
                         condition="f_user_phone like '%{}%'" placeholder="客户电话">
                </div>
              </div>
            </div>
          </criteria>

          <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
            <template partial='head'>
              <tr>
                <th>
                  <nobr>客户编号</nobr>
                </th>
                <th>
                  <nobr>客户名称</nobr>
                </th>
                <th>
                  <nobr>客户电话</nobr>
                </th>
                <th>
                  <nobr>车牌号</nobr>
                </th>
                <th>
                  <nobr>充装量</nobr>
                </th>
                <th>
                  <nobr>加气金额</nobr>
                </th>
                <th>
                  <nobr>气瓶余压(MPa)</nobr>
                </th>
                <th>
                  <nobr>加气中压力</nobr>
                </th>
                <th>
                  <nobr>加气后压力</nobr>
                </th>
                <th>
                  <nobr>加气前外观</nobr>
                </th>
                <!--                <th><nobr>加气后外观</nobr></th>-->
                <th>
                  <nobr>加气前泄露</nobr>
                </th>
                <th>
                  <nobr>加气后泄露</nobr>
                </th>
                <!--                <th><nobr>充装量</nobr></th>-->
                <th>
                  <nobr>加气开始时间</nobr>
                </th>
                <th>
                  <nobr>加气结束时间</nobr>
                </th>
                <!--                <th><nobr>加气日期</nobr></th>-->
                <th>
                  <nobr>充装员</nobr>
                </th>
                <th>
                  <nobr>检查员</nobr>
                </th>
                <th>
                  <nobr>公司</nobr>
                </th>
                <th>
                  <nobr>操作</nobr>
                </th>
              </tr>
            </template>
            <template partial='body'>
              <td style="text-align: center;">
                <nobr><span @click="$parent.$parent.$parent.dealmsg(row)"><a>{{ row.f_userinfo_code }}</a></span></nobr>
              </td>
              <td style="text-align: center;">
                <nobr>{{ row.f_user_name }}</nobr>
              </td>
              <td style="text-align: center;">
                <nobr>{{ row.f_user_phone }}</nobr>
              </td>
              <td style="text-align: center;">
                <nobr>{{ row.f_meternumber }}</nobr>
              </td>
              <td style="text-align: center;">
                <nobr>{{ row.f_pregas }}</nobr>
              </td>
              <td style="text-align: center;">
                <nobr>{{ row.f_preamount }}</nobr>
              </td>

              <td style="text-align: center;">
                <nobr>{{ row.f_before_filling }}</nobr>
              </td>
              <td style="text-align: center;">
                <nobr>{{ row.f_in_filling }}</nobr>
              </td>
              <td style="text-align: center;">
                <nobr>{{ row.f_after_filling }}</nobr>
              </td>
              <td style="text-align: center;">
                <nobr>{{ row.f_before_appearance }}</nobr>
              </td>
              <!--              <td style="text-align: center;"><nobr>{{ row.f_after_appearance }}</nobr></td>-->
              <td style="text-align: center;">
                <nobr>{{ row.f_before_leak }}</nobr>
              </td>
              <td style="text-align: center;">
                <nobr>{{ row.f_after_leak }}</nobr>
              </td>
              <!--              <td style="text-align: center;"><nobr>{{ row.f_reloading }}</nobr></td>-->
              <td style="text-align: center;">
                <nobr>{{ row.f_start_filling_date }}</nobr>
              </td>
              <td style="text-align: center;">
                <nobr>{{ row.f_end_filling_date }}</nobr>
              </td>

              <!--              <td style="text-align: center;"><nobr>{{ row.f_air_date }}</nobr></td>-->
              <td style="text-align: center;">
                <nobr>{{ row.f_aerator }}</nobr>
              </td>
              <td style="text-align: center;">
                <nobr>{{ row.f_cheaker }}</nobr>
              </td>
              <td style="text-align: center;">
                <nobr>{{ row.f_orgname }}</nobr>
              </td>
              <td style="text-align: center;">
                <button type="button" name="button" class="button_search-2 button_spacing width-60"
                        @click.stop="$parent.$parent.$parent.modifyInfo(row)">退费
                </button>
              </td>
            </template>
            <template partial='foot'></template>
          </data-grid>
        </criteria-paged>
        <table class="table-hover">
          <tr style="position: relative" class="table-bordered">
            <td
              style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;color: #5CB95C;font-weight: bold">
              汇总信息
            </td>
            <td
              style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
              加气量合计:&emsp;{{ sumsmodel.f_pregas }}
            </td>
            <td
              style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
              加气金额合计:&emsp;{{ sumsmodel.f_preamount }}
            </td>
          </tr>
        </table>
      </div>
      <div class="flex" v-if="show">
        <user-info-detail-manage-new :f_userinfo_code="rowdata.f_userinfo_code"
                                     @cancel-main="cancel"></user-info-detail-manage-new>
      </div>
    </div>
    <modal :show.sync="showupload" v-if="showupload" width="80%" style="width:auto;" v-ref:modal middle
           backdrop="false">
      <article slot="modal-body">
        <upload :blodid="selected.f_userinfo_id" v-ref:upload isupload="false" takeimg="false" fusetype="加气"
                :isremark="false" style="width:auto"></upload>
      </article>
      <footer slot="modal-footer" class="modal-footer">
      </footer>
    </modal>
    <modal :show.sync="modelV" v-if="modelV" width="50%" style="width:auto;" v-ref:modal middle backdrop="false">
      <header slot="modal-header" class="modal-header">
        <h3 style="color: black" class="modal-title">退费详情</h3>
      </header>
      <article slot="modal-body" class="modal-body">
        <validator name="v">
          <form class="form-horizontal select-overspread">
            <div class="row" style="margin-top: 20px">
              <div class="col-sm-6 form-input-group">
                <label class="control-label col-sm-3">用户名称</label>
                <input type="text" v-model="returnPremium.f_user_name" placeholder="用户名称" readonly/>
              </div>
              <div class="col-sm-6 form-input-group">
                <label class="control-label col-sm-3">用户电话</label>
                <input type="text" v-model="returnPremium.f_user_phone" placeholder="用户电话" readonly/>
              </div>
            </div>
            <div class="row" style="margin-top: 20px">
              <div class="col-sm-6 form-input-group">
                <label class="control-label col-sm-3">车牌号</label>
                <input type="text" v-model="returnPremium.f_meternumber" placeholder="车牌号" readonly/>
              </div>
              <div class="col-sm-6 form-input-group">
                <label class="control-label col-sm-3">充装量</label>
                <input type="text" v-model="returnPremium.f_pregas" placeholder="充装量" readonly/>
              </div>
            </div>
            <div class="row" style="margin-top: 20px">
              <div class="col-sm-6 form-input-group">
                <label class="control-label col-sm-3">气价</label>
                <input type="text" v-model="returnPremium.f_price" placeholder="气价" readonly/>
              </div>
              <div class="col-sm-6 form-input-group">
                <label class="control-label col-sm-3">加气金额</label>
                <input type="text" v-model="returnPremium.f_preamount" placeholder="加气金额" readonly/>
              </div>
            </div>
            <div class="row" style="margin-top: 20px">
              <div class="col-sm-6 form-input-group">
                <label class="control-label col-sm-3">操作员</label>
                <input type="text" v-model="returnPremium.f_operator" placeholder="操作员" readonly/>
              </div>
            </div>
            <div class="row" style="margin-top: 20px">
              <div class="col-sm-12 form-input-group">
                <label for="f_comments" class="control-label">备&nbsp;&nbsp;注</label>
                <input class="input_search" style="width: 100%" v-model="returnPremium.f_comments" placeholder="备注"/>
              </div>
            </div>
          </form>
        </validator>
      </article>
      <footer slot="modal-footer" class="modal-footer">
        <button class="btn btn-success" @click="confirm">确认</button>
        <button class="btn btn-default" @click="cancel1">取消</button>
      </footer>
    </modal>
  </div>
</template>

<script>
import {PagedList} from 'vue-client'
import defaultPrint from '../config/DefaultPrint'
import exportConfig from '../config/exportConfig'

let readySomething = async function (self) {
  self.$refs.paged.$refs.cri.model.startDate = self.data ? self.data.startDate : self.$login.toStandardDateString() + ' 00:00:00'
  self.$refs.paged.$refs.cri.model.endDate = self.data ? self.data.endDate : self.$login.toStandardDateString() + ' 23:59:59'
  // self.$refs.paged.$refs.cri.model.startDate = self.$login.toStandardDateString() + ' 00:00:00'
  // self.$refs.paged.$refs.cri.model.endDate = self.$login.toStandardDateString() + ' 23:59:59'
  // await self.$refs.paged.$refs.cri.search()
  self.defaultfield = [...self.defaultfield, ...self.config.defaultPrint]
  self.initParams()
  await self.$MagLoadParams.loadParam()
  self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
}
export default {
  props: ['data'],
  title: '加气查询',
  data () {
    return {
      data: {},
      other: [],
      footer: [],
      model: new PagedList('rs/sql/fillGasQuery', 20, {}, {f_pregas: 0, f_preamount: 0}),
      criteriaShow: false,
      headData: ['客户编号', '客户名称', '客户电话', '身份证号', '加气类型', '车型号', '卡号', '汽车品牌', '汽车状态', '加气量', '加气日期', '充装员', '检查员', '公司'],
      bodyData: ['f_userinfo_code', 'f_user_name', 'f_user_phone', 'f_idnumber', 'f_user_nature', 'f_user_id', 'f_card_id', 'f_meter_brand', 'f_table_state', 'f_fillgas', 'f_operate_date', 'f_aerator', 'f_cheaker', 'f_orgname'],
      orgCondtionStr: ' and a.f_orgid = ' + this.$login.f.orgid,
      config: {
        defaultPrint: ['f_userinfo_code', 'f_user_name', 'f_user_phone', 'f_idnumber', 'f_type', 'f_meter_brand', 'f_fillgas', 'f_operate_date', 'f_operator']
      },
      // 默认打印列
      defaultfield: [],
      modelval: [],
      printshow: false,
      all: false,
      fields: {},
      thead: '',
      tfoot: '',
      show: false,
      rowdata: {},
      meterbrands: [],
      initres: {
        org: [this.$login.f.orgid],
        dep: [],
        user: []
      },
      showupload: false,
      selected: {},
      gasproperties: [],
      // 合计数据
      sumsmodel: {},
      modelV: false,
      returnPremium: {}
    }
  },
  ready () {
    this.search()
    readySomething(this).then(() => {
      this.$emit('ready')
    }).catch((error) => {
      this.$emit('error', error)
    })
  },
  methods: {
    view (row) {
      this.showupload = true
      this.selected = row
    },
    modifyInfo (row) {
      this.modelV = true
      this.returnPremium = row
      console.log(this.returnPremium)
    },
    async confirm () {
      console.log(this.returnPremium)
      await this.$http.post('rs/logic/retPremium', {
        data: this.returnPremium
      }).then((res) => {
        this.modelV = false
        this.search()
        // this.model()
      })
    },
    cancel1 () {
      this.modelV = false
    },
    getotherfooter () {
      // this.$refs.paged.$refs.cri.$refs.exports.otherData=[];
      // this.$refs.paged.$refs.cri.$refs.exports.footerData=[];
      this.other = []
      this.footer = []
      // let exportdata = this.getCondition
      let otherInData = []
      otherInData.push(`导出时间: ${this.$login.toStandardTimeString()}`)
      // eslint-disable-next-line one-var
      let footerData = [], exportfield = this.getfield
      footerData.push('合计')
      let self = this
      for (var field in self.sumsmodel) {
        footerData.push(`${exportfield[field]}合计:${self.sumsmodel[field]}`)
      }
      this.footer.push(footerData)
      this.other.push(otherInData)
    },
    search () {
      this.$refs.paged.$refs.cri.search()
    },
    initParams () {
      // 初始化汽车品牌
      let brandArr = []
      this.$MagGetSaleParam.getGasbrand().forEach((item) => {
        let temp = {}
        temp.label = item.label
        temp.value = item.value.f_meter_brand
        brandArr.push(temp)
      })
      this.meterbrands = [{label: '全部', value: ''}, ...brandArr]
    },
    selfSearch (args) {
      // if (this.data) {
      //   this.$parent.$parent.$parent.data.startDate = this.$refs.paged.$refs.cri.model.startDate
      //   this.$parent.$parent.$parent.data.endDate = this.$refs.paged.$refs.cri.model.endDate
      // }
      if (this.$login.f.orgid === '99' || this.$login.f.orgid === 99) {
        console.log('总部查询----------------')
      } else {
        args.condition = args.condition + ' and a.f_orgid = ' + this.$login.f.orgid
      }

      // args.condition = args.condition + ' and a.f_orgid = ' + this.$login.f.orgid + ' and a.f_start_filling_date >= ' + this.$parent.$parent.$parent.data.startDate + '' + ' and a.f_end_filling_date <= ' + this.$parent.$parent.$parent.data.endDate + ''
      // `${args.condition}${this.$login.f.orgid}`
      console.log(this.$parent.$parent.$parent.data.endDate)
      this.model.search(args.condition, args.model)
      this.sumsmodel = this.$refs.paged.$refs.grid.model.sums
    },
    clear () {
      // 清空部门和人员
      this.$refs.paged.$refs.cri.$refs.sel.$children[1].selectres = []
      // 部门和人员变为全选
      this.$refs.paged.$refs.cri.$refs.sel.$children[1].$children[0].isSelectAll = false
      this.$refs.paged.$refs.cri.$refs.sel.$children[2].$children[0].isSelectAll = false
      Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
        this.$refs.paged.$refs.cri.model[key] = []
      })
    },
    show () {
      this.criteriaShow = true
    },
    hidden () {
      this.criteriaShow = !this.criteriaShow
    },
    getRes (condition) {
      if (this.orgCondtionStr === '99' || this.orgCondtionStr === 99) {
        this.orgCondtionStr = ''
      } else {
        this.orgCondtionStr = condition
      }
    },
    stamp () {
      this.all = false
      // 默认选择要打印的列
      this.modelval = defaultPrint.config
      this.fields = this.getfield
      console.log('所有打印字段', this.fields)
      this.printshow = true
      this.put()
    },
    cancel () {
      this.show = false
    },
    dealmsg (val) {
      console.log('---------------dealmsg')
      this.rowdata = val
      this.show = true
      val.model = this.model.model
      this.$dispatch('deal-msg', val)
    },
    put () {
      // 对Modelval进行排序
      this.sortModelval()
      this.thead = `<tr><th colspan=${this.modelval.length}>加气查询统计报表</th></tr><tr>`
      for (let key of this.modelval) {
        this.thead += '<th>' + this.fields[key] + '</th>'
      }
      this.thead += '</tr>'
    },
    print () {
      this.$refs.print.PrintAsFile()
      this.printshow = false
    },
    close () {
      this.printshow = false
      this.all = false
    },
    // 对选择的列进行排序
    sortModelval () {
      let sortModel = []
      Object.keys(this.fields).forEach((key) => {
        if (this.modelval.includes(key)) {
          sortModel.push(key)
        }
      })
      this.modelval = sortModel
      console.log('选择的打印的字段', this.modelval)
    },
    async updateParams () {
      await this.$MagLoadParams.loadParam(this.f_filialeid)
      this.initParams()
    },
    userTypeChange () {
      this.gasproperties = []
      if (this.$refs.paged.$refs.cri.model !== null) {
        this.$refs.paged.$refs.cri.model.f_gasproperties = ''
        this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
      } else {
        this.gasproperties = [{label: '全部', value: ''}]
      }
    }
  },
  watch: {
    'all' (val) {
      if (val) {
        this.modelval = this.bodyData
      } else {
        this.modelval = defaultPrint.config
        this.put()
      }
    },
    'modelval.length' () {
      this.put()
    },
    sumsmodel: {
      handler: function (val) {
        this.getotherfooter()
      },
      deep: true
    },
    'orgCondtionStr' (val) {
      let res = val.match(/'(.*?)'/)
      console.log('正则提取:', res && res[1])
      if (res) {
        this.f_filialeid = res[1]
        this.updateParams()
      }
    }
  },
  computed: {
    getCondition () {
      return {condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr}
    },
    getfield () {
      return exportConfig.fillgasConfig
    },
    fillGasTypes () {
      return [{label: '全部', value: ''}, ...this.$appdata.getParam('加气类型')]
    },
    chargeState () {
      return [{label: '全部', value: ''}, ...this.$appdata.getParam('加气状态')]
    },
    usertypes () {
      return [{label: '全部', value: ''}, ...this.$appdata.getParam('用户类型')]
    }
  }
}
</script>
<style>
.nav-tabss ul > li > a {
  padding: 5px 10px;
}
</style>
