<!--锅炉改造和重大修理-->
<template>
  <div class="app-container">
    <sticky style="margin-bottom: 10px">
      <div class="sub-navbar">
        <el-button
          v-if="state === 'create'"
          type="success"
          icon="el-icon-edit"
          size="medium"
          @click="saveYsjl('add')"
        >
          保存
        </el-button>
        <template v-else>
          <el-button
            type="primary"
            icon="el-icon-edit"
            size="medium"
            @click="saveYsjl('upd')"
          >
            更新
          </el-button>
          <el-button
            v-if="isSysUser"
            type="success"
            icon="el-icon-upload2"
            size="medium"
            @click="saveYsjl('build')"
          >
            生成报告
          </el-button>
          <el-button
            type="warning"
            icon="el-icon-view"
            size="medium"
            @click="common.viewYsjl(ysjl.id, 'YSJL')"
          >
            预览
          </el-button>
        </template>
        <template v-if="isSysUser">
          <el-button type="primary" size="medium" @click="Signjyxm">
            <svg-icon icon-class="sign" />
            检验项目批量签名
          </el-button>
          <el-button
            type="danger"
            icon="el-icon-delete"
            size="medium"
            @click="signClear"
          >
            批量清除签名
          </el-button>
          <el-button
            type="success"
            size="medium"
            icon="el-icon-edit"
            @click="batchUpdDate"
          >
            批量修改日期
          </el-button>
          <el-button
            type="primary"
            size="medium"
            icon="el-icon-info"
            @click="showDialogRoleVisible"
          >
            编辑权限
          </el-button>
        </template>
        <el-button
          type="info"
          size="medium"
          icon="el-icon-info"
          @click="dialogEnclosureVisible = true"
        >
          相关鉴证
        </el-button>
      </div>
    </sticky>
    <el-tabs v-model="checkedTab" type="card">
      <el-tab-pane label="基本情况" name="first">
        <el-form
          ref="ysjl"
          :model="ysjl"
          class="el-form"
          label-position="right"
          label-width="140px"
        >
          <fieldset>
            <legend>基本信息</legend>
            <el-row :gutter="25">
              <el-col
                v-if="
                  state === 'create' ||
                    ysjl.jilubianhao === null ||
                    ysjl.jilubianhao === ''
                "
                :span="14"
              >
                <el-form-item label="记录编号">
                  <el-input v-model="jlbh1" style="width: 80px" disabled />
                  <el-input v-model="jlbh2" style="width: 80px" disabled />-
                  <el-input
                    v-model="jlbh3"
                    style="width: 85px"
                    @blur="judgeRepeat(jlbh1 + jlbh2 + '-' + jlbh3, ysjl.id)"
                  />
                </el-form-item>
              </el-col>
              <el-col v-else :span="9">
                <el-form-item label="记录编号" prop="jilubianhao">
                  <el-input
                    v-if="state !== 'create'"
                    v-model="ysjl.jilubianhao"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
              <el-col
                v-if="isRepeat"
                :span="2"
                style="
                  vertical-align: middle;
                  padding-top: 3px;
                  font-size: 15px;
                "
              >
                <span style="color: red">编号重复</span>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="9">
                <el-form-item label="设备类别" prop="shebeileibie">
                  <el-select
                    v-model="ysjl.shebeileibie"
                    filterable
                    allow-create
                    default-first-option
                    style="width: 100%"
                    @change="changXh"
                  >
                    <el-option
                      v-for="item in xinghaoList"
                      :key="item.id"
                      :label="item.xinghao"
                      :value="item.xinghao"
                    />
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item label="设备品种" prop="shebeipinzhong">
                  <el-input
                    v-model="ysjl.shebeipinzhong"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="9">
                <el-form-item label="产品编号" prop="chanpinbianhao">
                  <el-input v-model="ysjl.chanpinbianhao" type="text" />
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item label="制造日期" prop="zhizaoriqi">
                  <el-date-picker
                    v-model="ysjl.zhizaoriqi"
                    value-format="yyyy-MM-dd"
                    placeholder="选择日期"
                    style="width: 100%"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="18">
                <el-form-item label="制造单位名称" prop="zhizaodanwei">
                  <el-input
                    v-model="ysjl.zhizaodanwei"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row v-if="fromType === 1 || fromType === 5 || fromType === 3" :gutter="20">
              <el-col :span="18">
                <el-form-item label="使用单位名称" prop="shiyongdanwei">
                  <el-input
                    v-model="ysjl.shiyongdanwei"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row v-if="fromType === 2 || fromType === 4" :gutter="20">
              <el-col :span="18">
                <el-form-item
                  label="施工单位名称"
                  prop="shigongdanweimingcheng"
                >
                  <el-input
                    v-model="ysjl.shigongdanweimingcheng"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row v-if="fromType === 2 || fromType === 4" :gutter="20">
              <el-col :span="9">
                <el-form-item
                  label="施工单位许可证编号"
                  prop="shigongdanweixukezhengbianhao"
                >
                  <el-input
                    v-model="ysjl.shigongdanweixukezhengbianhao"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item label="施工类别" prop="shigongleibie">
                  <el-input
                    v-model="ysjl.shigongleibie"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row v-if="fromType === 2" :gutter="20">
              <el-col :span="18">
                <el-form-item label="安装地点" prop="anzhuangdidian">
                  <el-input
                    v-model="ysjl.anzhuangdidian"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="9">
                <el-form-item label="安全管理人员" prop="anquanguanlirenyuan">
                  <el-input
                    v-model="ysjl.anquanguanlirenyuan"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item label="联系电话" prop="shiyongdanweiDianhua">
                  <el-input
                    v-model="ysjl.shiyongdanweiDianhua"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="9">
                <el-form-item label="使用单位代码" prop="shiyongdanweiCode">
                  <el-input
                    v-model="ysjl.shiyongdanweiCode"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item
                  label="使用登记证编号"
                  prop="shiyongdengjibianhao"
                >
                  <el-input
                    v-model="ysjl.shiyongdengjibianhao"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row v-if="fromType === 1 ||fromType === 5" :gutter="20">
              <el-col :span="18">
                <el-form-item label="注册代码" prop="zhucedaima">
                  <el-input
                    v-model="ysjl.zhucedaima"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="18">
                <el-form-item label="设备使用地点" prop="anzhuangdidian">
                  <el-input
                    v-model="ysjl.anzhuangdidian"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="9">
                <el-form-item label="单位内编号" prop="danweineibubianhao">
                  <el-input
                    v-model="ysjl.danweineibubianhao"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item label="改造日期" prop="gaizaoriqi">
                  <el-date-picker
                    v-model="ysjl.gaizaoriqi"
                    value-format="yyyy-MM-dd"
                    placeholder="选择日期"
                    style="width: 100%"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="9">
                <el-form-item label="改造单位名称" prop="gaizaodanwei">
                  <el-input
                    v-model="ysjl.gaizaodanwei"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item label="设备代码" prop="shebeidaima">
                  <el-input
                    v-model="ysjl.shebeidaima"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row v-if="fromType === 2" :gutter="20">
              <el-col :span="9">
                <el-form-item label="联系人" prop="lianxiren">
                  <el-input
                    v-model="param.lianxiren"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item label="电话" prop="dianhua">
                  <el-input
                    v-model="param.dianhua"
                    type="number"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="18">
                <el-form-item label="维护保养单位名称" prop="weibaodanwei">
                  <el-input
                    v-model="ysjl.weibaodanwei"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="9">
                <el-form-item v-if="fromType === 5" label="维护保养单位电话" prop="weibaodanweiDianhua">
                  <el-input
                    v-model="ysjl.weibaodanweiDianhua"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
                <el-form-item v-else label="维保电话" prop="weibaodanweiDianhua">
                  <el-input
                    v-model="ysjl.weibaodanweiDianhua"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item label="型号" prop="guigexinghao">
                  <el-input
                    v-model="ysjl.guigexinghao"
                    type="text"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row v-if="fromType !== 5" :gutter="20">
              <el-col :span="18">
                <el-form-item label="现场检验条件" prop="xianchangjianyantiaojian">
                  <el-radio-group v-model="ysjl.xianchangjianyantiaojian">
                    <el-radio label="符合">
                      符合
                    </el-radio>
                    <el-radio label="不符合">
                      不符合
                    </el-radio>
                  </el-radio-group>
                </el-form-item>
              </el-col>
            </el-row>
          </fieldset>
          <fieldset v-if="fromType !== 5">
            <legend>设备技术参数</legend>
            <el-row :gutter="20">
              <el-col :span="9">
                <el-form-item label="额定载重量" prop="edingzaizhongliang">
                  <el-input v-model="param.edingzaizhongliang" type="text">
                    <span slot="suffix">/kg</span>
                  </el-input>
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item v-if="fromType === 4" label="额定速度">
                  <el-input v-model="param.edingsuduShangxing" type="text">
                    <span slot="suffix">m/s</span>
                  </el-input>
                  <el-input v-model="param.edingsuduXiaxing" type="text">
                    <span slot="suffix">m/s</span>
                  </el-input>
                </el-form-item>
                <el-form-item v-else label="额定速度" prop="edingsudu">
                  <el-input v-model="param.edingsudu" type="text">
                    <span slot="suffix">m/s</span>
                  </el-input>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="9">
                <el-form-item label="层站门数" prop="cnegzhanmenshu">
                  <el-input
                    v-model="param.ceng"
                    type="text"
                    style="width: 50px"
                  />层
                  <el-input
                    v-model="param.zhan"
                    type="text"
                    style="width: 50px"
                  />站
                  <el-input
                    v-model="param.men"
                    type="text"
                    style="width: 50px"
                  />门
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item label="控制方式" prop="kongzhifangshi">
                  <el-input v-model="param.kongzhifangshi" type="text" />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row v-if="fromType === 3 || fromType === 4" :gutter="20">
              <el-col :span="9">
                <el-form-item label="油缸数量" prop="youguanshuliang">
                  <el-input v-model="param.youguanshuliang" type="text" />
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item label="顶升形式" prop="dingshengxingshi">
                  <el-input v-model="param.dingshengxingshi" type="text" />
                </el-form-item>
              </el-col>
            </el-row>
          </fieldset>
          <fieldset v-else>
            <legend>设备技术参数</legend>
            <el-row :gutter="20">
              <el-col :span="9">
                <el-form-item label="名义速度" prop="mingyisudu">
                  <el-input v-model="param.mingyisudu" type="text">
                    <span slot="suffix">m/s</span>
                  </el-input>
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item label="名义宽度" prop="mingyikuandu">
                  <el-input v-model="param.mingyikuandu" type="text">
                    <span slot="suffix">mm</span>
                  </el-input>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="9">
                <el-form-item label="倾斜角" prop="qingxiejiao">
                  <el-input
                    v-model="param.qingxiejiao"
                    type="text"
                  >
                    <span slot="suffix">°</span>
                  </el-input>
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item label="输送能力" prop="shusongnengli">
                  <el-input v-model="param.shusongnengli" type="text">
                    <span slot="suffix">p/h</span>
                  </el-input>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="9">
                <el-form-item label="提升高度" prop="tishenggaodu">
                  <el-input v-model="param.tishenggaodu" type="text">
                    <span slot="suffix">m</span>
                  </el-input>
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item label="使用区长度" prop="quduanchangdu">
                  <el-input v-model="param.quduanchangdu" type="text">
                    <span slot="suffix">m</span>
                  </el-input>
                </el-form-item>
              </el-col>
            </el-row>
          </fieldset>
          <fieldset>
            <legend>检验信息</legend>
            <el-row :gutter="20">
              <el-col :span="18">
                <el-form-item label="检验依据" prop="jianyanyiju">
                  <el-input v-model="ysjl.jianyanyiju" />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="18">
                <el-form-item label="主要检验仪器和设备" prop="gongjuxianghao">
                  <el-input v-model="param.gongjuxianghao" style="width: 100px" />号检验专用工具箱
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="18">
                <el-form-item label="检验结论" prop="jianyanjielun">
                  <el-radio-group v-model="ysjl.jianyanjielun">
                    <el-radio label="合格">
                      合格
                    </el-radio>
                    <el-radio label="不合格">
                      不合格
                    </el-radio>
                    <el-radio label="复检合格">
                      复检合格
                    </el-radio>
                    <el-radio label="复检不合格">
                      复检不合格
                    </el-radio>
                  </el-radio-group>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="18" style="height: auto;">
                <el-form-item label="备注" prop="beizhu">
                  <el-input
                    v-model="ysjl.beizhu"
                    type="textarea"
                    :autosize="{ minRows: 2, maxRows: 5 }"
                    :disabled="edit"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col :span="9">
                <el-form-item label="检验日期" prop="jianyanjieshuriqi">
                  <el-input v-model="ysjl.jianyanjieshuriqi" />
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item label="现场检验日期" prop="xianchangjianyanriqi">
                  <el-date-picker
                    v-model="ysjl.xianchangjianyanriqi"
                    value-format="yyyy-MM-dd"
                    placeholder="选择日期"
                    style="width: 100%"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="20">
              <el-col v-if="fromType !== 5" :span="9">
                <el-form-item label="检验完成日期" prop="jianyanjieshuriqi">
                  <el-date-picker
                    v-model="ysjl.jianyanjieshuriqi"
                    value-format="yyyy-MM-dd"
                    placeholder="选择日期"
                    style="width: 100%"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="9">
                <el-form-item label="下次检验日期" prop="xiacijianyanriqi">
                  <el-date-picker
                    v-model="ysjl.xiacijianyanriqi"
                    value-format="yyyy-MM-dd"
                    placeholder="选择日期"
                    style="width: 100%"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <template>
              <el-row :gutter="10">
                <el-col :span="9">
                  <el-form-item label="检验人员" prop="jianyanrenyuan">
                    <el-input v-model="ysjl.jianyanrenyuan" disabled />
                  </el-form-item>
                </el-col>
                <el-col :span="9">
                  <sign-name
                    :jianyanrenyuan="jianyanrenyuan"
                    :ysjl="ysjl"
                    :custom-clear-sign="customClearSign"
                    @setSignValue="signNameValue"
                  />
                </el-col>
              </el-row>
            </template>
          </fieldset>
        </el-form>
      </el-tab-pane>
      <el-tab-pane label="检验项目" name="second">
        <Inspection :bgfy-data="bgfyData" />
      </el-tab-pane>
      <el-tab-pane v-if="fromType === 5" label="附表1" name="three">
        <zdft-fb ref="table1" :table-data.sync="fubiao1" />
      </el-tab-pane>
      <template v-else>
        <el-tab-pane label="附表一" name="four">
          <Table ref="table1" :tabel-header="arrayGroup[0].header" :table-data.sync="fubiao1" />
        </el-tab-pane>
        <el-tab-pane label="附表二" name="five">
          <Table ref="table2" :tabel-header="arrayGroup[1].header" :table-data.sync="fubiao2" />
        </el-tab-pane>
        <el-tab-pane v-if="fromType === 1 || fromType === 3" label="附表3" name="six">
          <phxsb ref="table3" :table-data.sync="fubiao3" :ysjl-param.sync="param" @loadPhxsImage="loadPhxsImage" />
        </el-tab-pane>
      </template>
    </el-tabs>
  </div>
</template>
<script>
import Sticky from '@/components/Sticky'
import SignName from '@/views/common/SignName'
import Utils from '@/utils/contact'
import merge from 'webpack-merge'
import Inspection from '@/views/ysjl/3000/common/inspection-items'
import Table from '@/views/ysjl/3000/dj/common/table'
import Phxsb from '@/views/ysjl/3000/dj/common/phxsb'
import ZdftFb from '@/views/ysjl/3000/dj/common/zdftFb'

export default {
  name: 'BaseInfo',
  components: { SignName, Sticky, Inspection, Table, Phxsb, ZdftFb },
  props: {
    arrayGroup: {
      required: true,
      type: Array
    },
    // /**
    //  * 格式为： [{ index: 0, relationIds: [1, 2] }]
    //  */
    // jyxmRelations: {
    //   required: true,
    //   type: Array
    // },
    fromType: {
      required: true,
      type: Number
    },
    jlbh1: {
      type: String,
      default: 'DT'
    }
  },
  data() {
    return {
      ysjl: {},
      param: {},
      jlbh2: '(' + new Date().getFullYear() + ')',
      jlbh3: '',
      isRepeat: false,
      jianyanrenyuan: '',
      departmentId: this.$route.query.departmentId,
      edit: false,
      state: this.$route.query.state,
      bgfyData: [],
      ysjlId: this.$route.query.id,
      checkedTab: 'first',
      xmlbListAB: ['A', 'B'],
      xmlbListAC: ['A', 'C'],
      xmlbListBC: ['B', 'C'],
      jyxmrqShow: false,
      querenriqi: null,
      signShow: false,
      dialogEnclosureVisible: false,
      dialogRoleVisible: false,
      userList: [],
      defaultRlr: [],
      renlingren: [],
      xinghaoList: [],
      dicGzjz: [],
      isSysUser: this.$store.getters.clientType === 'System',
      cols: [
        {
          name: 'jianyanxiang', // 参与计算的列名，必须和el-table-column prop=''值一致
          getValue(row) {
            // 该列用于比较的值的获取方法
            return row.jianyanxiang
          }
        }
      ],
      rows: [
        {
          name: 'jianyanxiang',
          getValue(row) {
            return row.jianyanxiang
          }
        },
        {
          name: 'jianyanneirong',
          getValue(row) {
            return row.jianyanneirong
          }
        }
      ],
      pickerOptions: {
        disabledDate(time) {
          return time.getTime() > Date.now()
        }
      },
      pic: '',
      fubiao1: [],
      fubiao2: [],
      fubiao3: []
    }
  },
  created() {
    if (this.state === 'create') {
      this.initYsjl()
      this.getMaxBh()
    } else {
      this.getYsjl()
      this.getParam()
      this.getJyxm(1)
      this.getJyxmInfoByYsjl()
    }
    this.getDicJyxm(1)
    this.userList = this.$store.getters.allUser.filter(
      (user) => user.departmentId === 74 && user.clientType === 'System'
    )
  },
  methods: {
    initYsjl() {
      this.ysjlService.init(this.$route.query).then((data) => {
        this.ysjl = data.ysjl
        this.param = data.param ? data.param : {}
        this.ysjl.jianyanjieshuriqi = this.formatter.dateFormat('YYYY-MM-dd')
        this.ysjl.bglx = 1
        this.ysjl.cjState = 'ysjl'
        this.ysjl.xianchangjianyantiaojian = '符合'
        this.getJyxm(1)
        this.getSbList()
      })
    },
    getSbList() {
      this.api({
        url: '/sedirectory/getList',
        method: 'get',
        params: {
          sbzl: this.$route.query.sbzldm,
          sblb: this.$route.query.sblbdm,
          level: 2
        }
      }).then((data) => {
        this.xinghaoList = data
      })
    },
    getJyxmInfoByYsjl() {
      this.ysjlService.getJyxmInfoByYsjl(this.ysjlId).then((data) => {
        if (!data.fbjyxm) {
          return
        }
        const fubiao = JSON.parse(data.fbjyxm)
        if (!fubiao.length) {
          return
        }
        if (fubiao[0]) {
          this.fubiao1 = fubiao[0]
        }
        if (fubiao[1]) {
          this.fubiao2 = fubiao[1]
        }
        if (fubiao[2]) {
          this.fubiao3 = fubiao[2]
        }
        console.log(this.fubiao1)
        console.log(this.fubiao2)
        console.log(this.fubiao3)
      })
    },
    getYsjl() {
      this.ysjlService.getYsjl(this.ysjlId).then((data) => {
        this.ysjl = data
        this.ysjl.imagePath = ''
        if (
          this.ysjl.jianyanrenyuan !== null &&
          this.ysjl.jianyanrenyuan.length > 0
        ) {
          this.jianyanrenyuan = this.common.convertCnName(
            this.ysjl.jianyanrenyuan
          )
        }
        this.ysjlService
          .judgeRepeat(this.ysjl.jilubianhao, this.ysjl.id)
          .then((data) => {
            this.isRepeat = data
          })
      })
    },
    getParam() {
      const id = this.ysjlId || this.$route.query.templateId
      this.ysjlService
        .getParam(id, this.$route.query.sbzldm)
        .then((data) => {
          this.param = data
        })
    },
    judgeRepeat(bianhao, id) {
      this.api({
        url: '/ysjl/judgeRepeat',
        method: 'get',
        params: {
          ysjlId: id,
          bianhao: bianhao
        }
      }).then((data) => {
        if (data > 0) {
          this.isRepeat = true
        } else {
          this.isRepeat = false
        }
      })
    },
    getJyxm(sort) {
      if (this.$route.query.state === 'update') {
        this.jyxmService.getJdCyJyxm(this.ysjlId, this.$route.query.templateId, sort).then((data) => {
          this.bgfyData = data
          this.tableJs.getData(this.cols, this.rows, this.bgfyData)
        })
      } else {
        this.jyxmService.getCyJyxm(this.$route.query.templateId, sort).then((data) => {
          this.bgfyData = data
          this.tableJs.getData(this.cols, this.rows, this.bgfyData)
        })
      }
    },
    getDicJyxm(sort) {
      this.jyxmService
        .getCyJyxm(this.$route.query.templateId, sort)
        .then((data) => {
          this.dicGzjz = data.map((row) => {
            return { value: row.gongzuojianzheng }
          })
        })
    },
    /**
     * 查询最大记录编号
     */
    getMaxBh() {
      const aheadPart = this.jlbh1 + this.jlbh2 + '-'
      this.api({
        url: '/ysjl/gainCurrentBh',
        method: 'get',
        params: {
          aheadPart: aheadPart,
          hinderPart: ''
        }
      }).then((data) => {
        this.jlbh3 = data
        this.ysjlService
          .judgeRepeat(this.ysjl.jilubianhao, this.ysjl.id)
          .then((data) => {
            this.isRepeat = data
          })
      })
    },
    /**
     * 签名方法
     * @param data
     */
    signNameValue(data) {
      this.ysjl.jianyanrenyuan = String(data.id)
      this.jianyanrenyuan = data.name
      this.common.signName(this.ysjl.id, this.ysjl.jianyanrenyuan)
    },
    customClearSign(fieldName) {
      const data = {
        id:
            this.ysjl.jianyanrenyuan &&
            this.common
              .deleteElement(
                this.ysjl.jianyanrenyuan.split(','),
                String(this.$store.getters.userId)
              )
              .join(','),
        name:
            this.jianyanrenyuan &&
            this.common
              .deleteElement(
                this.jianyanrenyuan.split(','),
                this.$store.getters.nickname
              )
              .join(','),
        fieldName: fieldName
      }
      this.signNameValue(data)
    },
    saveYsjl(operation) {
      if (operation !== 'add' && this.pic) {
        this.uploadPhxsBase64File(operation)
      } else {
        this.buildSaveData(operation)
      }
    },
    buildSaveData(operation) {
      const tableData = []
      let fubiao
      if (this.fromType === 5) {
        fubiao = [this.$refs.table1.tableData]
      } else {
        fubiao = [this.fubiao1, this.fubiao2, this.fubiao3]
      }
      this.bgfyData.forEach((row) => {
        tableData.push({
          ysjlId: this.ysjlId,
          beizhu: row.beizhu,
          dicJyxmId: row.id,
          jianyanjieguo: row.jianyanjieguo ? row.jianyanjieguo : '',
          jianyanjielun: row.jianyanjielun ? row.jianyanjielun : '',
          jyxmMode: 0,
          sort: row.sort,
          orders: row.orders,
          cjState: 0
        })
      })
      if (operation === 'add') {
        this.ysjl.jilubianhao = this.jlbh1 + this.jlbh2 + '-' + this.jlbh3
        this.save(operation, 'post', tableData, fubiao)
      } else if (operation === 'build') {
        this.ysjl.baogaobianhao = this.ysjl.jilubianhao
        if (this.ysjl.jilubianhao && this.ysjl.jilubianhao.indexOf('COPY') > -1) {
          this.$message({
            type: 'error',
            message: '请先修改报告编号，不允许携带COPY标志生成报告!'
          })
          return false
        }
        if (this.ysjl.jianyanrenyuan === null || this.ysjl.jianyanrenyuan === '') {
          this.$message({
            type: 'error',
            message: '请先签名再生成报告!'
          })
          return false
        }
        for (let i = 0; i < this.bgfyData.length; i++) {
          if (!this.bgfyData[i].jianjianyuan || !this.bgfyData[i].querenriqi) {
            this.$message.error('请将检验项目中的监检人员及监检日期填写完毕，再生成报告！')
            return false
          }
        }
        this.save(operation, 'put', tableData, fubiao)
      } else if (operation === 'upd') {
        this.save(operation, 'put', tableData, fubiao)
      }
    },
    save(operation, type, jyxm, fubiao) {
      if (this.fromType !== 5) this.ysjl.imagePath = this.$refs.table1.imgPath

      // 判断报告编号是否重复
      if (this.isRepeat) {
        this.$message({
          message: '记录编号重复，请先修改记录编号再保存',
          type: 'error'
        })
        return false
      } else {
        this.$refs['ysjl'].validate((valid) => {
          if (valid) {
            this.api({
              url: '/ysjl',
              method: type,
              data: {
                ysjl: this.ysjl,
                param: this.param,
                cyJyxm: {
                  ysjlId: this.ysjl.id,
                  fbjyxm: JSON.stringify(fubiao)
                },
                jdJyxm: jyxm,
                flag: operation
              }
            }).then((data) => {
              Utils.$emit('ysjl-db-list')
              // 刷新任务列表，原始记录待办，原始记录已办，检验报告
              if (operation === 'add') {
                Utils.$emit('task-list')
                this.ysjl.id = data
                this.param.ysjlId = data
                this.$message({ message: '保存成功', type: 'success' })
                this.uploadPhxsBase64File()
                // 刷新路由网址
                this.common.reloadViewToUpdateYsjl(this.ysjl)
              } else if (operation === 'upd') {
                this.dialogRoleVisible = false
                this.$message({ message: '更新成功', type: 'success' })
                // 替换路由中的参数
                this.$router.push({
                  query: merge(this.$route.query, {
                    jianyanrenyuan: this.ysjl.jianyanrenyuan
                  })
                })
              } else {
                // 生成pdf
                this.common.viewYsjlNoOpen(this.ysjl.id, 'YSJL')
                Utils.$emit('ysjl-list')
                Utils.$emit('ysjl-yb-list')
                Utils.$emit('bggl-daiban-list')
                this.$message({ message: '生成报告成功', type: 'success' })
                this.common.delCurrentViews()
              }
              this.state = 'update'
            })
          }
        })
      }
    },

    /**
     * 上传平衡系数表
     */
    uploadPhxsBase64File(operation) {
      if (!this.pic) {
        return false
      }
      this.uploadService.uploadPhxsBase64File({
        ysjlId: this.ysjl.id,
        base64File: this.pic
      }).then(() => {
        if (operation !== 'add') {
          this.buildSaveData(operation)
        }
      })
    },

    /**
     * 格式化监检员
     */
    formatterJianjianyuan(row) {
      if (row.jianjianyuan) {
        if (typeof row.jianjianyuan === 'number') {
          row.jianjianyuan = row.jianjianyuan.toString()
          return this.common.convertCnName(row.jianjianyuan)
        }
        return row.jianjianyuan
      }
    },
    /**
     * 检验项目批量签名
     */
    Signjyxm() {
      if (this.$refs.bgfyData.selection.length === 0) {
        this.$message('请在列表选择要签名的数据。')
        return
      }
      this.signShow = true
      this.$refs.qmButton.dialogFormVisible = true
    },
    /**
     * 检验项目清除签名
     */
    signClear: function() {
      if (this.$refs.bgfyData.selection.length === 0) {
        this.$message('请在列表选择要清除签名的数据。')
        return
      }
      this.$refs.bgfyData.selection.forEach((row) => {
        row.jianjianyuan = null
      })
    },
    batchUpdDate() {
      if (this.$refs.bgfyData.selection.length === 0) {
        this.$message('请在列表选择要修改日期的数据。')
        return false
      }
      this.jyxmrqShow = true
    },
    batchUpd() {
      for (let i = 0; i < this.$refs.bgfyData.selection.length; i++) {
        this.$refs.bgfyData.selection[i].querenriqi = this.querenriqi
      }
      this.jyxmrqShow = false
    },
    changeJsl(val) {
      if (val === '无此项.') {
        this.$set(this.param, 'qita', val)
      } else {
        this.$set(
          this.param,
          'qita',
          val ? (this.param.qita ? this.param.qita + '\n' : '') + val : ''
        )
      }
    },
    /**
     * 核价
     */
    beforeHejia: function() {
      // 锅炉制造费用四舍五入到个位
      this.ysjl.jianyanheding = Math.round(
        !this.param.zaojia || !this.param.bili
          ? 0
          : this.common.accMul(this.param.zaojia, this.param.bili / 100)
      )
    },
    showDialogRoleVisible: function() {
      // 重置表单所需数据
      this.renlingren.length = 0
      this.defaultRlr = this.ysjl.renlingren.split(',')
      // 在可追加的人员列表中移除认领人中已有的人员
      this.defaultRlr.forEach((userId) => {
        for (let i = 0; i < this.userList.length; i++) {
          if (String(this.userList[i].id) === userId) {
            this.userList.splice(i, 1)
            break
          }
        }
      })
      this.dialogRoleVisible = true
    },

    /**
     * 追加认领人
     * 将默认（原）认领人拼接新加的认领人
     */
    updateRenlingren: function() {
      const rlr = this.defaultRlr.concat(this.renlingren)
      this.ysjl.renlingren = rlr.join(',')
      this.saveYsjl('upd')
    },
    changXh: function(val) {
      const xinghao = this.xinghaoList.filter((xh) => xh.xinghao === val)[0]
      this.$set(
        this.param,
        'jiandingbaogaobianhao',
        (xinghao && xinghao.jiandingbaogaobianhao) || ''
      )
    },
    querySearchGzjz: function(queryString, cb, $index) {
      cb([this.dicGzjz[$index]])
    },
    loadPhxsImage(data) {
      this.pic = data
    }
  }
}
</script>
<style scoped>
.el-tag {
  margin: auto 5px;
}
</style>
<style lang="scss" scoped>
</style>
