<template>
  <div class="flex-row">
    <div class="basic-main">
      <criteria-paged :model="model" v-ref:paged @sort="sort">
        <criteria partial='criteria' class="search_area" @condition-changed='$parent.selfSearch' v-ref:criteria>
          <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
            <div class="row">
              <div class="form-group col-sm-2"  >
                <label class="font_normal_body">客户编号</label>
                <input type="text" class="input_search" v-model="model.f_userinfo_code"
                       style="width: 60%" placeholder="客户编号" condition="f_userinfo_code='{}'">
              </div>
              <div class="form-group col-sm-2"  >
                <label class="font_normal_body">客户名称</label>
                <input type="text" class="input_search" v-model="model.f_user_name"
                       style="width: 60%" placeholder="客户名称" condition="f_user_name like '%{}%'">
              </div>
              <div class="form-group col-sm-2"  >
                <label class="font_normal_body">客户电话</label>
                <input type="text" class="input_search" v-model="model.f_user_phone"
                       style="width: 60%" placeholder="客户电话" condition="f_user_phone like '%{}%'">
              </div>
              <div class="form-group col-sm-2"  >
                <label class="font_normal_body">小&emsp;&emsp;区</label>
                <input type="text" class="input_search" v-model="model.f_residential_area"
                       style="width: 60%" placeholder="小区" condition="f_residential_area like '%{}%'">
              </div>
              <div class="form-group col-sm-2"  >
                <label class="font_normal_body">详细地址</label>
                <input type="text" class="input_search" v-model="model.f_address"
                       style="width: 60%" placeholder="详细地址" condition="f_address like '%{}%'">
              </div>
              <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right">

                <export-excel-safe :data="$parent.$parent.searchData"
                              :field="$parent.$parent.excelHeaders"
                              progress="safeGetExportProgress"
                              sqlurl="rs/logic/SafeExportExcel" sql-name="safe_singleTable_OrderBy" template-name='异常差值明细'></export-excel-safe>
<!--                <button class="button_spacing button_search" @click="$parent.$parent.showaudio()" v-if="!$parent.$parent.audioshow">录音</button>-->
                <button class="button_spacing button_search" @click="$parent.$parent.showaudio()" v-if="$parent.$parent.audioshow">隐藏</button>

                <button class="button_spacing button_search" @click="search()">查询</button>
                <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">
            <div class="col-sm-4 form-group" v-show="$parent.$parent.criteriaShow" style="margin: 0">
              <role-selector-safe
                role-name="安检员"
                role-lable="安&nbsp;检&nbsp;员&nbsp;"
                @re-res="$parent.$parent.getRes"
                :value.sync="model.f_checker_id"
                v-model="model.f_checker_id"
                condition="f_checker_name = '{}'">
              </role-selector-safe>
            </div>
              <div class="form-group col-sm-2"   v-show="$parent.$parent.criteriaShow">
                <label class="font_normal_body">差值类型</label>
                <v-select class="select_list select"
                          placeholder='差值类型' style="width: 60%"
                          :value.sync="model.f_item_name" v-model="model.f_item_name"
                          :options='$parent.$parent.f_item_names'
                          filer-key="name"
                          close-on-select clear-button
                          condition="f_item_name='{}'"
                          :value-single="true">
                </v-select>
              </div>
              <div class="form-group col-sm-2"  v-show="$parent.$parent.criteriaShow">
                <label class="font_normal_body">差值区间</label>
                <input type="text" class="input_search" v-model="model.f_item_start"
                       style="width: 60%" placeholder="差值区间(>=)" condition="f_item_value >= {}">
              </div>
              <div class="form-group col-sm-2"  v-show="$parent.$parent.criteriaShow">
                <label class="font_normal_body">差值区间</label>
                <input type="text" class="input_search" v-model="model.f_item_end"
                       style="width: 60%" placeholder="差值区间(<=)" condition="f_item_value <= {}">
              </div>
            </div>
            <div class="row">
              <div class="form-group col-sm-2"  v-show="$parent.$parent.criteriaShow">
                <label class="font_normal_body">气表编号</label>
                <input type="text" class="input_search" v-model="model.f_meternumber"
                       style="width: 60%" placeholder="气表编号" condition="f_meternumber = '{}'">
              </div>
              <div class="form-group col-sm-2"  v-show="$parent.$parent.criteriaShow">
                <label class="font_normal_body">气表品牌</label>
                <input type="text" class="input_search" v-model="model.f_meter_brand"
                       style="width: 60%" placeholder="气表品牌" condition="f_meter_brand like '%{}%'">
              </div>
            </div>

            <modal :show.sync="$parent.$parent.showModal" v-ref:modal>
              <div slot="modal-header" class="modal-header">
                <h4 class="modal-title">
                  选择计划
                </h4>
              </div>
              <div slot="modal-body" class="modal-body">
                <plan-chooser :f.sync="$parent.$parent.fun" v-ref:chooser></plan-chooser>
              </div>
              <div slot="modal-footer" class="modal-footer" style="text-align: center">
                <button class="button_search" @click="$parent.$parent.ok">确认</button>
                <button class="button_search" @click="$parent.$parent.cancel">取消</button>
              </div>
            </modal>
          </div>
        </criteria>
        <data-grid class="list_area table_sy" style="overflow: hidden" :model="model" partial='list' 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>客户电话</nobr>
              </th>
              <th>
                <nobr>客户小区</nobr>
              </th>
              <th>
                <data-order field="f_address" name="客户地址"></data-order>
              </th>

              <th>
                <data-order field="f_offsite_time" name="安检时间"></data-order>
              </th>
              <th>
                <nobr>安检员</nobr>
              </th>

            </tr>
          </template>
          <template partial='body'>

            <td style="text-align: center">{{row.f_item_name}}</td>
            <td style="text-align: center">{{row.f_item_value}}</td>
            <td style="text-align: center">{{row.f_userinfo_code}}</td>
            <td style="text-align: center">{{row.f_user_name}}</td>

            <td style="text-align: center">{{row.f_meternumber}}</td>
            <td style="text-align: center">{{row.f_meter_brand}}</td>

            <td style="text-align: center">{{row.f_user_phone}}</td>
            <td style="text-align: center">{{row.f_residential_area}}</td>

            <td style="text-align: center">{{row.f_address}}</td>
            <td style="text-align: center">{{row.f_offsite_time}}</td>
            <td style="text-align: center">{{row.f_checker_name}}</td>

          </template>
        </data-grid>
      </criteria-paged>
      <check-msg v-if="showcheckmsg" :show="showcheckmsg" :data="checkInfo"></check-msg>
    </div>
  </div>
</template>

<script>
  import {PagedList} from 'vue-client'
  import Vue from 'vue'
  import co from 'co'
  import AppData from '../../stores/AppData'
  import * as Util from '../Util'
  import getNowDate from "../../utils/getNowDate";
  import HttpResetClass from "vue-client/src/plugins/HttpResetClass";
  import BenzAMRRecorder from 'benz-amr-recorder'

  //获取json配置文件
  let asyncReady = async function (self) {
    // 获取配置信息
    try {
      let res = await Vue.resetget(`/phone/rs/vue`, {data: {}}, {resolveMsg: null, rejectMsg: null})
      Vue.config = res.data
    } catch (error) {
      // 忽略704,文件找不到异常R
      if (error.status !== 704) {
        throw error
      }
    }
  }

  let select = function* (self) {
    let http = new HttpResetClass()
    let getGasman = yield http.load('POST', '/rs/search', {
      source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
      userid: self.$login.f.id
    }, {resolveMsg: null, rejectMsg: null})
    ////tag
    self.checkersid.push({label: '全部', value: ''})
    getGasman.data.forEach((checker) => {
      self.checkersid.push({label: checker.name, value: checker.id})
    })
  }

  export default {
    title: '差值明细查看',
    data() {
      let model = new PagedList('rs/sql/getChazhi', 20, {
      })
      model.f_plan_id = ''
      model.f_approved = ''
      model.f_entry = ''
      model.f_no_checkplan = ''
      model.f_filialeid = `('${this.$login.f.orgid}')`
      //model.f_check_type='民用'
      // let searchData={
      //     f_plan_id: this.model.f_checker_id==undefined?"":this.model.f_checker_id,
      //     f_approved: this.model.f_approved,
      //     f_entry_status: this.model.f_entry,
      //     f_no_checkplan:this.model.f_no_checkplan[0],
      //     f_filialeid: this.model.f_filialeid,
      //     //orderitem: this.model.f_offsite_time,
      //     //condition:this.model.condition
      // }
      // model.f_subcompany = this.$login.f.f_fengongsi
      return {
        audioshow:false,
        searchData: {
          condition: "1=1",
          items: "*",
          tablename: "(SELECT tcp.f_userinfo_code,tcp.f_user_name,tcp.f_user_phone,tcp.f_residential_area,tcp.f_address,tcp.f_checker_name,tcp.f_offsite_time,tcp.f_filialeid,tpd.f_device_type,tdi.f_item_name,case when tdl.f_item_value is null or tdl.f_item_value ='' then 0 else CONVERT(NUMERIC(19,2),tdl.f_item_value) end as f_item_value FROM t_check_paper tcp LEFT JOIN t_paper_devices tpd ON tcp.id= tpd.f_paper_id LEFT JOIN t_devices_items tdi ON tpd.id= tdi.f_device_id LEFT JOIN t_devices_items_lists tdl ON tdi.id= tdl.f_item_id  where f_item_name LIKE '%异常差值' ) tt",
          orderitem: "f_userinfo_code"
        },
        model: model,
        //searchData:searchData,
        excelHeaders: {

          'f_item_name': '差值类型',
          'f_item_value': '差值',
          'f_userinfo_code': '客户编号',
          'f_user_name': '客户姓名',
          'f_user_phone': '客户类型',
          'f_residential_area': '小区',
          'f_address': '客户地址',
          'f_offsite_time': '安检时间',
          'f_checker_name': '安检员'
        },
        fun: this.$login.f,
        checkersid: [],
        safetype: this.getSafeParam('安检类型'),
        criteriaShow: false,
        showModal: false,
        f_approval_states: this.getSafeParam('安检单审核状态'),
        f_entry_status:this.getSafeParam('安检状态'),
        f_checkplans: this.getSafeParam('有无计划'),
        showcheckmsg: false,
        f_item_names:[{label: '全部', value: ''}, {label: '气量异常差值', value: '气量异常差值'},{label: '金额异常差值', value: '金额异常差值'}],
        checkInfo: {},
        orderDefault: "'f_offsite_time'",
        orderFields: {
          f_offsite_time: 'no'
        },
        sliceArea: [],
        cbc:[]
      }
    },
    methods: {
      showaudio(){
        //tag
        this.audioshow=!this.audioshow
        //tag
      },
      getmeterbook(val){
        this.cbc=[]
        this.cbc.push({
          label:'全部',
          value:''
        })
        if (val==''){

          this.cbcs.forEach(res=>{
            this.cbc.push({
              label:res.f_book_name,
              value:res.id
            })
          })
        }else{
          this.cbcs.forEach(res=>{
            if (res.f_book_slice_area==val){
              this.cbc.push({
                label:res.f_book_name,
                value:res.id
              })
            }
          })
        }
      },
      getSafeParam(val){
        if(this.$appdata.getParam(val)){
          return [{label: '全部', value: ''}, ...this.$appdata.getParam(val)]
        }else{
          return [{label: '全部', value: ''}]
        }

      },
      Mreadibook(val){
        ////tag
        ////tag
        this.sliceArea=[]
        if (val){
          new HttpResetClass().load('POST',`/rs/sql/safe_singleTable_OrderBy`, {data: {
              items: 'name',
              tablename: 't_zone',
              condition: `parentid  in ${val}`,
              orderitem: 'id'
            }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
            this.sliceArea.push({
              label:'全部',
              value:''
            })
            res.data.forEach(ress=>{
              this.sliceArea.push({
                label:ress.name,
                value:ress.name
              })
            })

          })
        }
      },
      getAllMeterBook(val){
        ////tag
        ////tag
        this.cbcs=[]
        if (val){
          new HttpResetClass().load('POST',`/rs/sql/safe_singleTable_OrderBy`, {data: {
              items: 'f_book_name,f_book_slice_area,id',
              tablename: 't_meter_book',
              condition: `f_filiale_id  in ${val}`,
              orderitem: 'id'
            }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
            res.data.forEach(ress=>{
              this.cbcs.push({
                id:ress.id,
                f_book_name:ress.f_book_name,
                f_book_slice_area:ress.f_book_slice_area
              })
            })
            this.cbc=[]
            this.cbc.push({
              label:'全部',
              value:''
            })
            this.cbcs.forEach(res=>{
              this.cbc.push({
                label:res.f_book_name,
                value:res.id
              })
            })
          })
        }
      },
      getRes(obj) {
        this.model.f_filialeid = this.$login.convertToIn(obj.resids);
        this.searchData.f_filialeid = this.$login.convertToIn(obj.resids);
        this.Mreadibook(this.model.f_filialeid)
        this.getAllMeterBook(this.model.f_filialeid)
        //this.$refs.paged.$refs.criteria.search()
      },

      change(row) {
        // Vue.$login = {jwt: row.f_checker_id}
        asyncReady(this).then(() => {
            ////tag)
            row.f_upload_state = '已传'
            this.$goto('new-check-paper', {f_plan_id: row.f_check_plan_id, item: row, role: 'view'}, 'self')
        }).catch(
          (respanse) => {
            alert('获取配置文件失败')
          })
      },
      readConfig() {
        let gen = asyncReady(this)
        return co(gen)
      },
      showChooser() {
        this.showModal = true
      },
      hidden() {
        this.criteriaShow = !this.criteriaShow
      },
      refresh() {
        this.$refs.paged.$refs.criteria.search()
      },
      ok() {
        this.showModal = false
        if (this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id) {
          this.model.f_plan_id = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id
          this.model.f_check_plan=this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow
        }
      },
      cancel() {
        this.showModal = false
        this.model.f_check_plan = {f_plan_name: '', id: ''}
        this.model.f_plan_id=''
      },
      print(row) {
        this.showcheckmsg = true
        this.checkInfo = row
      },

      sort(field, rule) {
        // 将所有排序方式设为不排序，实现相互排斥
        for (let key in this.orderFields) {
          if (key === field) {
            this.orderFields[key] = rule
          } else {
            this.orderFields[key] = 'no'
          }
        }
        // 如果新规则不排序，还原为默认排序
        if (rule === 'no') {
          this.model.paramSource.orderitem = `'${this.orderDefault}'`
        } else {
          this.model.paramSource.orderitem = `'${field} ${rule}'`
        }
        this.search()
      },
      search() {
        this.$refs.paged.$refs.criteria.search()
      },
      selfSearch(args) {
        ////tag
        this.model.search(args.condition, args.model, args.condValue)
      }
    },

    ready() {
      ////tag
      this.function = this.f
      ////tag

      let gen = select(this)
      //this.pianqu()
      this.Mreadibook(`('${this.$login.f.orgid}')`)
      co(gen)
    },
    watch: {
      'model.f_no_checkplan'(val) {
        if (this.model.f_no_checkplan){
          this.searchData.f_no_checkplan = val
        }
        if (this.model.f_no_checkplan == '有计划安检') {

          this.showChooser()
        }
      },
      'model.condition'(val) {
        if (val) {
          this.searchData.condition = val
        }

      },
      'model.f_item_name'(val) {
        if (val) {
          this.searchData.f_item_name = val
        }
      },
      'model.f_plan_id'(val) {
        if (val) {
          this.searchData.f_plan_id = val
        }
      },
      'model.f_slice_area'(val) {
        if (val) {

        }
      },
      'model.f_approved'(val) {
        if (val) {
          this.searchData.f_approved = val
        }
      },
    }

  }
</script>
