<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="查找安检单" 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 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="$parent.$parent.model.f_check_plan.f_plan_name"
                       @click="$parent.$parent.showChooser"
                       style="width: 60%" placeholder="安检计划" readonly="readonly">
              </div>-->
              <div class="form-group col-sm-2"  v-show="$parent.$parent.criteriaShow" >
                <label class="font_normal_body">上传起始</label>
                <datepicker
                  class="select_list select"
                  :value.sync="model.f_check_start"
                  placeholder='上传起始' style="width: 60%"
                  :disabled-days-of-week="[]"
                  :format="'yyyy-MM-dd'"
                  :show-rest-button="reset"
                  v-model="model.f_check_start"
                  condition="f_update_date > ='{} 00:00:00'">
                </datepicker>
              </div>
              <div class="form-group col-sm-2"  v-show="$parent.$parent.criteriaShow" >
                <label class="font_normal_body">上传截止</label>
                <datepicker
                  :value.sync="model.f_check_end"
                  placeholder='上传截止' style="width: 60%"
                  :disabled-days-of-week="[]"
                  :format="'yyyy-MM-dd'"
                  :show-rest-button="reset"
                  v-model="model.f_check_end"
                  condition="f_update_date <=  '{} 23:59:59'">
                </datepicker>
              </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>
                <data-order field="f_address" name="客户地址"></data-order>
              </th>
              <th>
                <data-order field="f_upload_date" name="巡检上传时间"></data-order>
              </th>
              <th>
                <nobr>巡检员</nobr>
              </th>
              <th>
                <nobr>操作</nobr>
              </th>
            </tr>
          </template>
          <template partial='body'>

            <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_user_phone}}</td>
            <td style="text-align: center">{{row.f_check_type}}</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>
            <td style="text-align: center">
              <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>


            </td>
            <td style="text-align: center" v-if="$parent.$parent.$parent.audioshow">
<!--              <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>-->
              <audio controls="controls" v-if="row.f_recording1_path">
                <source type="audio/mpeg" :src="'rs/audio/file/'+row.f_recording1_path">
              </audio>
              <!--<button type="button" class="button_new-1 button_spacing" data-toggle="dropdown"
                      @click="$parent.$parent.$parent.print(row)">
                打印
              </button>-->
            </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/queryInspection', 20, {
        f_plan_id: 'this.f_plan_id',
        f_approved: 'this.f_approved',
        f_entry_status: 'this.f_entry',
        f_no_checkplan: 'this.f_no_checkplan',
        f_filialeid: 'this.f_filialeid',
        orderitem: "'f_offsite_time desc'"
      })
      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",
          orderitem: "f_offsite_time desc",
          f_plan_id: "",
          f_approved: '',
          f_entry_status: '',
          f_no_checkplan: '',
          f_filialeid: `('${this.$login.f.orgid}')`
        },
        model: model,
        //searchData:searchData,
        excelHeaders: {
          'f_userinfo_code': '客户编号',
          'f_user_name': '客户姓名',
          'f_check_type': '客户类型',
          'f_residential_area': '小区',
          'f_address': '客户地址',
          'f_entry_status': '安检状态',
          'f_offsite_time': '安检时间',
          'f_checker_name': '安检员'
        },
        fun: this.$login.f,
        checkersid: [],
        safetype: this.$appdata.getParam('安检类型')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检类型')]:[{label: '全部', value: ''}],
        criteriaShow: false,
        showModal: false,
        f_approval_states: this.$appdata.getParam('安检单审核状态'),
        f_entry_status: this.$appdata.getParam('安检状态')?[{label: '全部', value: ''}, ...this.$appdata.getParam('安检状态')]:[{label: '全部', value: ''}],
        f_checkplans: this.$appdata.getParam('有无计划'),
        showcheckmsg: false,
        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
              })
            }
          })
        }
      },
      Mreadibook(val){
        ////tag
        ////tag
        this.sliceArea=[]
        if (val){
          new HttpResetClass().load('POST',`/rs/sql/tel_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/tel_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('displayInspectionList', {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
        args.condition+=" and f_safecheck_type='巡检'"
        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_entry'(val) {
        if (val) {
          this.searchData.f_entry_status = 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>
