<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-inline auto" partial>
                            <div class="row">
                              <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"
                                          >
                                </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"
                                           >
                                </datepicker>
                              </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="span" style="float:right;">
                                    <button class="button_search button_spacing" @click="search()">查询</button>
                                    <button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
                                    <export-excel :data="$parent.$parent.getCondition"
                                                  :field="$parent.$parent.config.pageFields"
                                                  :header="$parent.$parent.other"
                                                  sqlurl="api/af-revenue/logic/openapi/exportfile"
                                                  sql-name="DayGasQuery"
                                                  template-name='日用气导出'
                                                  :choose-col="true"></export-excel>

                                  <print-data :sum-field="$parent.$parent.getfield" :model="$parent.model" :field="$parent.$parent.config.pageFields"
                                               :defaultfield="$parent.$parent.defaultfield"
                                              titletable="日用气导出"
                                              ></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>
                                <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_address"
                                           condition="f_address like '%{}%'" placeholder='客户地址'>
                                </div>

                                <div class="col-sm-2 form-group">
                                    <label class="font_normal_body" title="参数名称:用户类型">客户类型</label>
                                    <v-select :value.sync="model.f_user_type"
                                              @change="$parent.$parent.userTypeChange()"
                                              :options='$parent.$parent.usertypes' placeholder='请选择' v-model="model.f_user_type"
                                              condition="f_user_type = '{}'"
                                              close-on-select></v-select>
                                </div>

                              <div class="col-sm-2 form-group">
                                <label class="font_normal_body">用气性质</label>
                                <v-select :value.sync="model.f_gasproperties" v-model="model.f_gasproperties"
                                          :options='$parent.$parent.gasproperties' placeholder='请选择'
                                          condition="f_gasproperties = '{}'"
                                          close-on-select></v-select>
                              </div>
                              <div class="col-sm-2 form-group">
                                <label class="font_normal_body">状态</label>
                                <v-select :value.sync="model.f_state" v-model="model.f_state"
                                          :options='$parent.$parent.f_state' placeholder='请选择'
                                          multiple
                                          :search="false"
                                          condition="f_state in {} "
                                          close-on-select></v-select>
                              </div>
                              <div class="col-sm-2 form-group">
                                <label class="font_normal_body" title="参数名称:气表类型">气表类型</label>
                                <v-select :value.sync="model.f_meter_style"
                                          :options='$parent.$parent.metertypes' placeholder='请选择' v-model="model.f_meter_style"
                                          condition="f_meter_style = '{}'"
                                          close-on-select></v-select>
                              </div>
                              <res-select-group :initres="$parent.$parent.initres"  @re-res="$parent.$parent.getRes" v-ref:sel></res-select-group>

                            </div>
                        </div>
                    </criteria>
                  <data-grid  :model="model" partial='list' class="list_area table_sy" v-ref:grid >
                    <template partial='head'>
                      <tr>
                        <th v-for="(key,value ) in $parent.$parent.$parent.config.pageFields" ><nobr>{{value}}</nobr></th>
                      </tr>
                    </template>
                    <template partial='body'>
                      <td style="text-align: center;" v-for="(key,value ) in $parent.$parent.$parent.config.pageFields"><nobr>{{row[key]}}</nobr></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"
                      v-for="(key,value ) in config.sumFields">
                    {{value}}合计:&emsp;{{sumsmodel[key]}}
                  </td>
                  <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
                    累计用气量合计:&emsp;{{sumsmodel.sum_oughtamount}}
                  </td>
                  <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
                    累计金额合计:&emsp;{{sumsmodel.f_oughtfee}}
                  </td>
                </tr>
              </table>
            </div>
          <div v-if="show">
            <user-info-detail-manage :f_userinfo_id="rowdata.f_userinfo_id" @cancel-main="cancel"></user-info-detail-manage>
          </div>
        </div>
    </div>
</template>
<script>
    import { PagedList } from 'vue-client'
    import * as Util from '../../Util'
    import defaultPrint from './config/DefaultPrint'
    import exportConfig from './config/exportConfig.js'
    let readySomething = async function(self) {
      self.defaultfield = [...self.defaultfield, ...self.config.defaultPrint]
        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.$MagLoadParams.loadParam()
      self.smallareas=[{label: '全部',value: ''},...await self.$MagGetSaleParam.getsmallarea(self.$login.f.orgid)]
        self.sumsmodel = self.$refs.paged.$refs.grid.model.sums
    }
    export default {
        title: '日用气查询',
        name: 'DayGasQuery',
        data () {
            return {
                model: new PagedList('api/af-revenue/sql/DayGasQuery', 30, {startDate: 'this.model.startDate', endDate: 'this.model.endDate'}, {
                  f_day1: 0,
                  f_day2: 0,
                  f_day3: 0,
                  f_day4: 0,
                  f_day5: 0,
                  f_day6: 0,
                  f_day7: 0,
                  f_day8: 0,
                  f_day9: 0,
                  f_day10: 0,
                  f_day11: 0,
                  f_day12: 0,
                  f_day13: 0,
                  f_day14: 0,
                  f_day15: 0,
                  f_day16: 0,
                  f_day17: 0,
                  f_day18: 0,
                  f_day19: 0,
                  f_day20: 0,
                  f_day21: 0,
                  f_day22: 0,
                  f_day23: 0,
                  f_day24: 0,
                  f_day25: 0,
                  f_day26: 0,
                  f_day27: 0,
                  f_day28: 0,
                  f_day29: 0,
                  f_day30: 0,
                  f_day31: 0,
                  sum_oughtamount: 0,
                  f_oughtfee: 0
                }),
                initres: {
                    org:[this.$login.f.orgid],
                    dep:[],
                    user:[],
                },
              other: [],
              footer: [],
                gasproperties:[],
                show:false,
                rowdata:{},
                criteriaShow: false,
                orgCondtionStr: '',
                modelval: [],
                printshow: false,
                all: false,
                fields: {},
                thead: '',
                tfoot: '',
              defaultfield: [],
              config: {
                pageFields:{
                  'code': '客户编号', 'username': '客户名称','f_user_type':'客户类型','f_gasproperties':'用气性质',
                  'sum_oughtamount': '累计气量', 'f_oughtfee': '累计金额'
                },
                sumFields:{
                  'sum_oughtamount':'累计气量','f_oughtfee': '累计金额'
                },
                defaultPrint: ['f_oughtfee', 'avg_oughtamount']
              },
              smallareas:[{label: '全部',value: ''}],  //区域
                //合计数据
                sumsmodel: {},
                f_filialeid: this.$login.f.f_orgid,
                f_orgid: this.$login.f.orgid,
                f_depid: this.$login.f.depids,
                f_operatorid: this.$login.f.id
            }
        },
        ready () {
            readySomething(this)
        },
        methods: {
          getotherfooter() {
            this.other = [];
            this.footer = [];
            let otherInData = [];
            otherInData.push(`导出时间: ${this.$login.toStandardTimeString()}`);
            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);
          },
            userTypeChange () {
                this.gasproperties=[]
                if(this.$refs.paged.$refs.cri.model !==null) {
                    this.$refs.paged.$refs.cri.model.f_gasproperties=''
                    console.log(this.$refs.paged.$refs.cri.model.f_user_type[0])
                    this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type[0])
                }
                else{
                    this.gasproperties =[{label: '全部', value: ''}]
                }
            },
            search(){
                this.$refs.paged.$refs.cri.search()
            },
            cancel() {
                this.show = false
            },
            selfSearch(args) {
                this.synchronizationDate()
                this.changePageFileds()
                args.condition = `${args.condition} ` + this.orgCondtionStr
                this.model.search(args.condition, args.model)
                this.sumsmodel = this.$refs.paged.$refs.grid.model.sums
            },
          //同步年份月份
          synchronizationDate() {
            var startDate = new Date(this.$refs.paged.$refs.cri.model.startDate)
            var endDate = new Date(this.$refs.paged.$refs.cri.model.endDate)
            if (startDate.getFullYear()==endDate.getFullYear() && startDate.getMonth()== endDate.getMonth()){
            }else {
              endDate.setFullYear(startDate.getFullYear())
              endDate.setMonth(startDate.getMonth())
              endDate = Util.dateFormat('yyyy-MM-dd hh:mm:ss',endDate)
              this.$showAlert('仅支持相同月份里查询，已为您默认开始日期的月份', 'warning', 3000)
              this.$refs.paged.$refs.cri.model.endDate = endDate
            }
          },
          // 格式化每月的天份
            changePageFileds() {
            let startDate = new Date(this.$refs.paged.$refs.cri.model.startDate)
            let index =startDate.getDate()
            let month = startDate.getMonth()+ 1
            // let Days = new Date(startDate.getMonth(),startDate.getMonth() + 1,0).getDate()
            let Days = new Date(this.$refs.paged.$refs.cri.model.endDate).getDate()
              this.config.pageFields = {
                'code': '客户编号', 'username': '客户名称', 'f_user_type': '客户类型', 'f_gasproperties': '用气性质'
              }
              for(var i=index;i<=Days;i++){
                this.$set('config.pageFields.f_day'+i,month + '月'+ i)
              }
              this.$set('config.pageFields.sum_oughtamount','累计气量')
              this.$set('config.pageFields.f_oughtfee','累计金额')
              this.config.sumFields = {
              }
              for(var i=index;i<=Days;i++){
                this.$set('config.sumFields.f_day'+i,month + '月'+ i)
              }
            },
            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
            },
            showmsg(obj){
              this.rowdata=obj
              this.show=true
            },
            getRes(condition,obj) {
              this.orgCondtionStr = condition
              this.orgname = obj.orgnames[0]
              this.depname = obj.depnames[0]
            },
            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
            },
            dealmsg(val) {
                this.rowdata=val
                this.show=true
                val.model = this.model.model
                this.$dispatch('deal-msg', val)
            },
            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)
            }
        },
        computed: {
            getCondition() {
                return {
                  condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr,
                  startDate: this.$refs.paged.$refs.cri.model.startDate,
                  endDate: this.$refs.paged.$refs.cri.model.endDate
                }
            },
            getfield() {
                return exportConfig.monthGasConfig
            },
            usertypes() {
                return [{label: ' 全部  ', value: ''}, ...this.$appdata.getParam('用户类型')]
            },
          f_state() {
                return [{label: ' 全部  ', value: ''}, ...this.$appdata.getParam('收费状态')]
            },
          metertypes() {
            return [{label: ' 全部  ', value: ''}, ...this.$appdata.getParam('气表类型')]
          },
        },
        events: {

        },
        watch: {
            'all'(val) {
                if (val) {
                    this.modelval = this.bodyData
                } else {
                    this.modelval = defaultPrint.monthGasConfig
                    this.put()
                }
            },
            'modelval.length'() {
                this.put()
            },
          sumsmodel: {
            handler: function (val) {
              this.getotherfooter();
            },
            deep: true
          }
        }
    }
</script>
<style>
    .datapanel {
        color: #333;
        background-color: white;
        padding: 10px 20px;
        border-radius:15px;
    }
</style>
