<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 class="font_normal_body">{{$parent.$parent.usertitle}}名称</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">{{$parent.$parent.usertitle}}地址</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">{{$parent.$parent.usertitle}}编号</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" title="旧客户编号">档案编号</label>
                                <input type="text" style="width:60%" class="input_search" v-model="model.f_olduserinfo_code"
                                       condition="f_olduserinfo_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.getfield"
                                                  :footer="$parent.$parent.footer"
                                                  :header="$parent.$parent.other"
                                                  sqlurl="api/af-revenue/logic/openapi/exportfile"
                                                  sql-name="MonthGasQuery"
                                                  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 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" title="参数名称:用户类型">{{$parent.$parent.usertitle}}类型</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 :classname="$parent.classname">
                        <template partial='head'>
                            <tr>
                                <th><nobr>{{$parent.$parent.$parent.usertitle}}编号</nobr></th>
                                <th><nobr>{{$parent.$parent.$parent.usertitle}}名称</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>
                                <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>{{row.code}}</nobr>
                          </td>
                            <td style="text-align: center;">
                              <nobr>{{row.username}}</nobr>
                            </td>
                            <td style="text-align: center;">
                              <nobr>{{row.f_olduserinfo_code}}</nobr>
                            </td>
                            <td style="text-align: center;">
                                <nobr>{{row.jan}}</nobr>
                            </td>
                            <td style="text-align: center;">
                              <nobr>{{row.feb}}</nobr>
                            </td>
                            <td style="text-align: center;">
                              <nobr>{{row.mar}}</nobr>
                            </td>
                            <td style="text-align: center;">
                                <nobr>{{row.apr}}</nobr>
                            </td>
                            <td style="text-align: center;">
                                <nobr>{{row.may}}</nobr>
                            </td>
                            <td style="text-align: center;">
                                <nobr>{{row.jun}}</nobr>
                            </td>
                            <td style="text-align: center;">
                                <nobr>{{row.jul}}</nobr>
                            </td>
                          <td style="text-align: center;">
                            <nobr>{{row.jug}}</nobr>
                          </td>
                          <td style="text-align: center;">
                            <nobr>{{row.sep}}</nobr>
                          </td>
                          <td style="text-align: center;">
                            <nobr>{{row.oct}}</nobr>
                          </td>
                          <td style="text-align: center;">
                            <nobr>{{row.nov}}</nobr>
                          </td>
                          <td style="text-align: center;">
                            <nobr>{{row.dec}}</nobr>
                          </td>
                          <td style="text-align: center;">
                            <nobr>{{row.sum_oughtamount}}</nobr>
                          </td>
                          <td style="text-align: center;">
                            <nobr>{{row.f_oughtfee}}</nobr>
                          </td>
                          <td style="text-align: center;">
                            <nobr>{{row.avg_oughtamount}}</nobr>
                          </td>
                            <td style="text-align: center;">
                                <nobr>{{row.avg_qunianoughtamount}}</nobr>
                            </td>
                          <td style="text-align: center;">
                            <nobr>{{row.f_meter_style}}</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">
                    1月合计:&emsp;{{sumsmodel.jan}}
                  </td>
                  <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
                    2月合计:&emsp;{{sumsmodel.feb}}
                  </td>
                  <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
                    3月合计:&emsp;{{sumsmodel.mar}}
                  </td>
                  <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
                    4月合计:&emsp;{{sumsmodel.apr}}
                  </td>
                  <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
                    5月合计:&emsp;{{sumsmodel.may}}
                  </td>
                  <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
                    6月合计:&emsp;{{sumsmodel.jun}}
                  </td>
                  <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
                    7月合计:&emsp;{{sumsmodel.jul}}
                  </td>
                  <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
                    8月合计:&emsp;{{sumsmodel.jug}}
                  </td>
                  <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
                    9月合计:&emsp;{{sumsmodel.sep}}
                  </td>
                  <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
                    10月合计:&emsp;{{sumsmodel.oct}}
                  </td>
                  <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
                    11月合计:&emsp;{{sumsmodel.nov}}
                  </td>
                  <td style="display: inline-block;width: auto;border-right: 1px solid #F2F6FA;padding: 0px 10px 0px 10px;font-weight: bold">
                    12月合计:&emsp;{{sumsmodel.dec}}
                  </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 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: 'MonthGasQuery',
        data () {
            return {
                model: new PagedList('api/af-revenue/sql/MonthGasQuery', 30, {startDate: 'this.model.startDate', endDate: 'this.model.endDate'}, {
                  jan: 0,
                  feb: 0,
                  mar: 0,
                  apr: 0,
                  may: 0,
                  jun: 0,
                  jul: 0,
                  jug: 0,
                  sep: 0,
                  oct: 0,
                  nov: 0,
                  dec: 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: {
                defaultPrint: ['f_oughtfee', 'avg_oughtamount']
              },
              usertitle: this.$appdata.getSingleValue('用户名称前缀') ? this.$appdata.getSingleValue('用户名称前缀') : '客户',
              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.$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()}`);
            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) {
                args.condition = `${args.condition} ` + this.orgCondtionStr
                // let f_orgstr = this.orgCondtionStr + 'and f_orgid = ' + this.f_orgid
                // args.condition = `${args.condition} ` + f_orgstr
                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
            },
            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.config
                    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>
