jinlin
2024-08-02 2fef10f07e65ce6f703c8043085e5728bd311d1e
web/src/views/modules/basicInfo/ParamData.vue
@@ -1,241 +1,281 @@
<template>
  <div>
    <el-row :gutter="20">
      <el-col :span="5">
        <div class="fa-card-a">
          <product-model-tree @on-selected="onProductSelected"/>
    <el-row :gutter="5">
      <el-col :span="4">
        <div class="fa-card-a" style="margin-right: 5px;height: calc(100vh - 123px)">
          <product-model-tree ref="modelTree" @on-selected="onProductSelected" @on-default="onDefault" showXdy="false" :isShow="false"/>
        </div>
      </el-col>
      <el-col :span="19">
        <div class="mod-basicInfo-paramData}">
          <zt-table-wraper ref="tableObj" :query-url=queryUrl
                           :delete-url=deleteUrl
      <el-col :span="20">
        <div class="mod-basicInfo-paramData fa-card-a" style="margin-left: 5px;">
          <zt-table-wraper ref="tableObj" defaultNotQuery="true" query-url="/basicInfo/ParamData/page"
                           delete-url="/basicInfo/ParamData/"
                           @dataLoaded="dataLoaded"
                           v-slot="{ table }"
                           :paging='false'>
                           :paging='false'
          >
            <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
              <el-form-item>
                <el-input v-model="dataForm.name" placeholder="请输入名称" clearable></el-input>
                <zt-dict v-model="dataForm.basicJoinCompute" dict="is_or_not" placeholder="是否参与计算" clearable></zt-dict>
              </el-form-item>
              <el-form-item>
                <zt-button type="warning" @click="handleSaveRows">保存</zt-button>
                <zt-button type="query" @click="table.query()"/>
                <zt-button type="add" v-if="dataForm.nodeType==='2'" @click="add()"/>
                <zt-button type="delete" @click="table.deleteHandle()"/>
                <zt-dict v-model="dataForm.repairable" dict="is_or_not" placeholder="是否可维修" clearable></zt-dict>
              </el-form-item>
              <el-form-item>
                <zt-dict v-model="dataForm.reliabDistribType" dict="ReliabDistribType" placeholder="请选择可靠性分布类型"
                         clearable></zt-dict>
              </el-form-item>
              <el-form-item>
                <zt-dict v-model="dataForm.repairDistribType" dict="RepairDistribType" placeholder="请选择维修分布类型"
                         clearable></zt-dict>
              </el-form-item>
              <el-form-item>
                <zt-button v-if="dataForm.srcId" type="warning" @click="handleSaveRows">保存</zt-button>
                <zt-button v-if="dataForm.srcId" type="query" @click="table.query()"/>
                <zt-button type="add" v-if="dataForm.productType==='3'" @click="add()"/>
                <zt-button v-if="dataForm.srcId" type="delete" @click="table.deleteHandle()"/>
              </el-form-item>
            </el-form>
            <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}"
                      class="paramsDataTable"
            <el-tabs v-model="activeName" @tab-click="handleClick">
              <el-tab-pane label="基本可靠性" name="first">
                <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px"
                          v-adaptive="{bottomOffset:30}"
                          :header-cell-style="{'text-align':'center'}"
                          class="paramsDataTable"
                          @selection-change="table.selectionChangeHandle">
                  <el-table-column type="selection" :key="1" width="40" align="center"/>
                  <el-table-column prop="name" :key="2" label="名称" fixed="left" width="120"/>
                  <el-table-column v-if="dataForm.productType==='3'||dataForm.productType==='4'"
                                   prop="reliabDistribType"
                                   label="可靠性分布类型" :key="27"
                                   align="center">
                    <template v-slot="{ row }">
                      <el-select v-if="row.isEdit" v-model="row.reliabDistribType"
                                 placeholder="请选择">
                        <el-option v-for="item in reliabDistribType"
                                   :key="item.value"
                                   :label="item.label"
                                   :value="item.value">
                        </el-option>
                      </el-select>
                      <zt-dict-tag v-else dict="ReliabDistribType" :value="row.reliabDistribType" :typeS="typeS"
                                   :typeI="typeI" :typeD="typeD" :typeColor="typeColor" :size="size" :effect="effect"
                                   :hit="hit"/>
                    </template>
                  </el-table-column>
                  <el-table-column v-if="dataForm.productType==='2'" :key="3" prop="baseOperatRatio" label="基本可靠性运行比"
                                   align="right">
                    <template slot-scope="scope">
                      <el-input v-if="scope.row.isEdit" v-model="scope.row.baseOperatRatio"></el-input>
                      <span v-else v-text="scope.row.baseOperatRatio"></span>
                    </template>
                  </el-table-column>
                  <el-table-column v-if="dataForm.productType==='1'||dataForm.productType==='2'" :key="4"
                                   prop="actualRunTime"
                                   label="实际运行时间" align="right">
                    <template slot-scope="scope">
                      <el-input v-if="scope.row.isEdit" v-model="scope.row.actualRunTime"></el-input>
                      <span v-else v-text="scope.row.actualRunTime"></span>
                    </template>
                  </el-table-column>
                  <el-table-column v-if="dataForm.productType==='3'||dataForm.productType==='4'" :key="5"
                                   label="基本可靠性计算">
                    <!--                <zt-table-column-dict prop="joinCompute" :keys="6" label="参加计算" width="100" dict="is_or_not"/>-->
                    <el-table-column prop="basicJoinCompute" label="参加计算" :key="6" width="100" align="center">
                      <template v-slot="{ row }">
                        <el-select v-if="row.isEdit" v-model="row.basicJoinCompute"
                                   placeholder="参加计算">
                          <el-option v-for="item in isOrNot"
                                     :key="item.value"
                                     :label="item.label"
                                     :value="item.value">
                          </el-option>
                        </el-select>
                        <zt-dict-tag v-else dict="is_or_not" :value="row.basicJoinCompute" :typeS="typeS" :typeI="typeI"
                                     :typeD="typeD"
                                     :typeColor="typeColor" :size="size" :effect="effect" :hit="hit"/>
                      </template>
                    </el-table-column>
                    <el-table-column prop="basicMtbfRegulate" :key="7" label="MTBF" align="right" width="110">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.basicMtbfRegulate"></el-input>
                        <span v-else>{{scope.row.basicMtbfRegulate | keepNumber}}</span>
                      </template>
                    </el-table-column>
                    <!--<el-table-column prop="basicMtbfAccept" :key="8" label="可接受的MTBF" width="100">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.basicMtbfAccept"></el-input>
                        <span v-else v-text="scope.row.basicMtbfAccept"></span>
                      </template>
                    </el-table-column>-->
                    <el-table-column prop="basicMtbfRegulSuccRate" :key="9" label="MTBF成功率" align="right">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.basicMtbfRegulSuccRate"></el-input>
                        <span v-else v-text="scope.row.basicMtbfRegulSuccRate"></span>
                      </template>
                    </el-table-column>
                    <!-- <el-table-column prop="basicMtbfAcceptSuccRate" :key="10" label="MTBF可接受成功率" width="120">
                       <template slot-scope="scope">
                         <el-input v-if="scope.row.isEdit" v-model="scope.row.basicMtbfAcceptSuccRate"></el-input>
                         <span v-else v-text="scope.row.basicMtbfAcceptSuccRate"></span>
                       </template>
                     </el-table-column>-->
                    <el-table-column prop="basicUnitNum" label="单元数量" :key="11" width="100" align="center">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.basicUnitNum"></el-input>
                        <span v-else v-text="scope.row.basicUnitNum"></span>
                      </template>
                    </el-table-column>
                    <el-table-column prop="basicRunsNum" label="运行次数" :key="12" width="100" align="center">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.basicRunsNum"></el-input>
                        <span v-else v-text="scope.row.basicRunsNum"></span>
                      </template>
                    </el-table-column>
                    <el-table-column prop="basicMtbfOperatingRatio" :key="13" label="MTBF运行比" align="right">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.basicMtbfOperatingRatio"></el-input>
                        <span v-else v-text="scope.row.basicMtbfOperatingRatio"></span>
                      </template>
                    </el-table-column>
                    <el-table-column prop="basicSingleRunTime" :key="14" label="运行时间" align="right" width="100">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.basicSingleRunTime"></el-input>
                        <span v-else v-text="scope.row.basicSingleRunTime"></span>
                      </template>
                    </el-table-column>
                  </el-table-column>
                  <el-table-column fixed="right" align="center" label="操作" width="100">
                    <template slot-scope="scope">
                      <zt-table-button size="small" type="primary" @click="edit(scope.row)">修改
                      </zt-table-button>
                      <zt-table-button v-if="scope.row.isCanel" size="small" type="primary" @click="canel(scope.row)">取消
                      </zt-table-button>
                    </template>
                  </el-table-column>
                </el-table>
              </el-tab-pane>
                      border @selection-change="table.selectionChangeHandle">
              <el-table-column type="selection" :key="1" width="40" align="center"/>
              <el-table-column prop="name" :key="2" label="名称" fixed="left"/>
              <el-table-column v-if="dataForm.nodeType==='4'" :key="3" prop="baseOperatRatio" label="基本可靠性运行比">
                <template slot-scope="scope">
                  <el-input v-if="scope.row.isEdit" v-model="scope.row.baseOperatRatio"></el-input>
                  <span v-else v-text="scope.row.baseOperatRatio"></span>
                </template>
              </el-table-column>
              <el-table-column v-if="dataForm.nodeType==='5'||dataForm.nodeType==='4'" :key="4" prop="actualRunTime"
                               label="实际运行时间">
                <!--                <template slot-scope="scope">
                                    <span v-if="editingCell && editingCell.row === scope.row && editingCell.column.property === scope.column.property">
                                       <el-input ref="editInput" v-model="scope.row.actualRunTime" placeholder="实际运行时间"></el-input>
                                    </span>
                                  <span v-else>{{scope.row.actualRunTime}}</span>
                                </template>-->
                <template slot-scope="scope">
                  <el-input v-if="scope.row.isEdit" v-model="scope.row.actualRunTime"></el-input>
                  <span v-else v-text="scope.row.actualRunTime"></span>
                </template>
              </el-table-column>
              <el-table-column v-if="dataForm.nodeType==='2'" :key="5" label="基本可靠性计算">
                <!--                <zt-table-column-dict prop="joinCompute" :keys="6" label="参加计算" width="100" dict="is_or_not"/>-->
                <el-table-column prop="joinCompute" label="参加计算" :key="6" width="100">
                  <template v-slot="{ row }">
                    <el-select v-if="row.isEdit" v-model="row.joinCompute"
                               placeholder="参加计算">
                      <el-option v-for="item in isOrNot"
                                 :key="item.value"
                                 :label="item.label"
                                 :value="item.value">
                      </el-option>
                    </el-select>
                    <zt-dict-tag v-else dict="is_or_not" :value="row.joinCompute" :typeS="typeS" :typeI="typeI"
                                 :typeD="typeD"
                                 :typeColor="typeColor" :size="size" :effect="effect" :hit="hit"/>
                  </template>
                </el-table-column>
                <el-table-column prop="regulateMtbf" :key="7" label="规定MTBF" width="120">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.regulateMtbf"></el-input>
                    <span v-else v-text="scope.row.regulateMtbf"></span>
                  </template>
                </el-table-column>
                <el-table-column prop="acceptMtbf" :key="8" label="可接受的MTBF" width="160">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.acceptMtbf"></el-input>
                    <span v-else v-text="scope.row.acceptMtbf"></span>
                  </template>
                </el-table-column>
                <el-table-column prop="regulSuccRateMtbf" :key="9" label="MTBF规定成功率" width="180">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.regulSuccRateMtbf"></el-input>
                    <span v-else v-text="scope.row.regulSuccRateMtbf"></span>
                  </template>
                </el-table-column>
                <el-table-column prop="acceptSuccRateMtbf" :key="10" label="MTBF可接受成功率" width="180">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.acceptSuccRateMtbf"></el-input>
                    <span v-else v-text="scope.row.acceptSuccRateMtbf"></span>
                  </template>
                </el-table-column>
                <el-table-column prop="unitNum" label="单元数量" :key="11" width="100">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.unitNum"></el-input>
                    <span v-else v-text="scope.row.unitNum"></span>
                  </template>
                </el-table-column>
                <el-table-column prop="runsNum" label="运行次数" :key="12" width="100">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.runsNum"></el-input>
                    <span v-else v-text="scope.row.runsNum"></span>
                  </template>
                </el-table-column>
                <el-table-column prop="operatingRatioMtbf" :key="13" label="MTBF运行比" width="140">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.operatingRatioMtbf"></el-input>
                    <span v-else v-text="scope.row.operatingRatioMtbf"></span>
                  </template>
                </el-table-column>
                <el-table-column prop="singleRunTime" :key="14" label="单次运行时间" width="140">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.singleRunTime"></el-input>
                    <span v-else v-text="scope.row.singleRunTime"></span>
                  </template>
                </el-table-column>
              </el-table-column>
              <el-table-column v-if="dataForm.nodeType==='2'" :key="15" label="任务可靠性计算">
                <el-table-column prop="regulateMtbcf" :key="16" label="规定MTBCF" width="120">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.regulateMtbcf"></el-input>
                    <span v-else v-text="scope.row.regulateMtbcf"></span>
                  </template>
                </el-table-column>
                <el-table-column prop="acceptMtbcf" :key="17" label="可接受的MTBCF" width="160">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.acceptMtbcf"></el-input>
                    <span v-else v-text="scope.row.acceptMtbcf"></span>
                  </template>
                </el-table-column>
                <el-table-column prop="regulSuccRateMtbcf" :key="18" label="MTBCF规定成功率" width="180">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.regulSuccRateMtbcf"></el-input>
                    <span v-else v-text="scope.row.regulSuccRateMtbcf"></span>
                  </template>
                </el-table-column>
                <el-table-column prop="acceptSuccRateMtbcf" :key="19" label="MTBCF可接受成功率" width="200">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.acceptSuccRateMtbcf"></el-input>
                    <span v-else v-text="scope.row.acceptSuccRateMtbcf"></span>
                  </template>
                </el-table-column>
                <el-table-column prop="operatingRatioMtbcf" :key="20" label="MTBCF运行比" width="140">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.operatingRatioMtbcf"></el-input>
                    <span v-else v-text="scope.row.operatingRatioMtbcf"></span>
                  </template>
                </el-table-column>
                <el-table-column prop="otherParamsMtbcf" :key="21" label="MTBCF其他参数" width="160">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.otherParamsMtbcf"></el-input>
                    <span v-else v-text="scope.row.otherParamsMtbcf"></span>
                  </template>
                </el-table-column>
              </el-table-column>
              <el-tab-pane label="任务可靠性" name="second" v-if="dataForm.productType==='3'||dataForm.productType==='4'">
                <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px"
                          v-adaptive="{bottomOffset:30}"
                          class="paramsDataTable"
                          @selection-change="table.selectionChangeHandle"
                          :header-cell-style="{'text-align':'center'}">
                  <el-table-column type="selection" :key="1" width="40" align="center"/>
                  <el-table-column prop="name" :key="2" label="名称" fixed="left" width="120"/>
              <el-table-column v-if="dataForm.nodeType==='2'" :key="22" label="维修分布">
                <!--                <zt-table-column-dict prop="repairable" :keys="23" label="可维修" dict="is_or_not"/>-->
                <el-table-column prop="repairable" label="可维修" :key="23">
                  <template v-slot="{ row }">
                    <el-select v-if="row.isEdit" v-model="row.repairable"
                               placeholder="当前状态">
                      <el-option v-for="item in isOrNot"
                                 :key="item.value"
                                 :label="item.label"
                                 :value="item.value">
                      </el-option>
                    </el-select>
                    <zt-dict-tag v-else dict="is_or_not" :value="row.repairable" :typeS="typeS" :typeI="typeI"
                                 :typeD="typeD"
                                 :typeColor="typeColor" :size="size" :effect="effect" :hit="hit"/>
                  </template>
                </el-table-column>
                <!--                <zt-table-column-dict prop="repairDistribType" :keys="24" label="维修分布类型" width="140" dict="RepairDistribType"/>-->
                <el-table-column prop="repairDistribType" label="维修分布类型" :key="24" width="140">
                  <template v-slot="{ row }">
                    <el-select v-if="row.isEdit" v-model="row.repairDistribType"
                               placeholder="当前状态">
                      <el-option v-for="item in repairDistribType"
                                 :key="item.value"
                                 :label="item.label"
                                 :value="item.value">
                      </el-option>
                    </el-select>
                    <zt-dict-tag v-else dict="RepairDistribType" :value="row.repairDistribType" :typeS="typeS"
                                 :typeI="typeI"
                                 :typeD="typeD" :typeColor="typeColor" :size="size" :effect="effect" :hit="hit"/>
                  </template>
                </el-table-column>
                <el-table-column prop="mttcr" label="MTTCR" :key="25" width="100">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.mttcr"></el-input>
                    <span v-else v-text="scope.row.mttcr"></span>
                  </template>
                </el-table-column>
                <el-table-column prop="otherParamsMttcr" :key="26" label="MTTCR其他参数" width="180">
                  <template slot-scope="scope">
                    <el-input v-if="scope.row.isEdit" v-model="scope.row.mttcr"></el-input>
                    <span v-else v-text="scope.row.mttcr"></span>
                  </template>
                </el-table-column>
              </el-table-column>
                  <el-table-column v-if="dataForm.productType==='3'||dataForm.productType==='4'" :key="15"
                                   label="任务可靠性计算">
                    <el-table-column prop="taskMtbcfRegulate" :key="16" label="MTBCF" width="110" align="right">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.taskMtbcfRegulate"></el-input>
                        <span v-else>{{scope.row.taskMtbcfRegulate | keepNumber}}</span>
                      </template>
                    </el-table-column>
                    <!--<el-table-column prop="taskMtbcfAccept" :key="17" label="可接受的MTBCF" width="100">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.taskMtbcfAccept"></el-input>
                        <span v-else v-text="scope.row.taskMtbcfAccept"></span>
                      </template>
                    </el-table-column>-->
                    <el-table-column prop="taskMtbcfRegulSuccRate" :key="18" label="MTBCF成功率" align="right">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.taskMtbcfRegulSuccRate"></el-input>
                        <span v-else v-text="scope.row.taskMtbcfRegulSuccRate"></span>
                      </template>
                    </el-table-column>
                    <!-- <el-table-column prop="taskMtbcfAcceptSuccRate" :key="19" label="MTBCF可接受成功率" width="100">
                       <template slot-scope="scope">
                         <el-input v-if="scope.row.isEdit" v-model="scope.row.taskMtbcfAcceptSuccRate"></el-input>
                         <span v-else v-text="scope.row.taskMtbcfAcceptSuccRate"></span>
                       </template>
                     </el-table-column>-->
                    <el-table-column prop="taskMtbcfOperatingRatio" :key="20" label="MTBCF运行比" align="right">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.taskMtbcfOperatingRatio"></el-input>
                        <span v-else v-text="scope.row.taskMtbcfOperatingRatio"></span>
                      </template>
                    </el-table-column>
                    <el-table-column prop="taskMtbcfOtherParams2" :key="21" label="MTBCF其他参数2" align="right">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.taskMtbcfOtherParams2"></el-input>
                        <span v-else v-text="scope.row.taskMtbcfOtherParams2"></span>
                      </template>
                    </el-table-column>
                    <el-table-column prop="taskMtbcfOtherParams3" :key="30" label="MTBCF其他参数3" align="right">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.taskMtbcfOtherParams3"></el-input>
                        <span v-else v-text="scope.row.taskMtbcfOtherParams3"></span>
                      </template>
                    </el-table-column>
                  </el-table-column>
                  <el-table-column v-if="dataForm.productType==='3'||dataForm.productType==='4'" :key="22" label="维修分布"
                                   align="center">
                    <!--                <zt-table-column-dict prop="repairable" :keys="23" label="可维修" dict="is_or_not"/>-->
                    <el-table-column prop="repairable" label="可维修" :key="23" width="80" align="center">
                      <template v-slot="{ row }">
                        <el-select v-if="row.isEdit" v-model="row.repairable"
                                   placeholder="请选择">
                          <el-option v-for="item in isOrNot"
                                     :key="item.value"
                                     :label="item.label"
                                     :value="item.value">
                          </el-option>
                        </el-select>
                        <zt-dict-tag v-else dict="is_or_not" :value="row.repairable" :typeS="typeS" :typeI="typeI"
                                     :typeD="typeD"
                                     :typeColor="typeColor" :size="size" :effect="effect" :hit="hit"/>
                      </template>
                    </el-table-column>
                    <!--                <zt-table-column-dict prop="repairDistribType" :keys="24" label="维修分布类型" width="140" dict="RepairDistribType"/>-->
                    <el-table-column prop="repairDistribType" label="维修分布类型" :key="24" width="130" align="center">
                      <template v-slot="{ row }">
                        <el-select v-if="row.isEdit" v-model="row.repairDistribType"
                                   placeholder="请选择">
                          <el-option v-for="item in repairDistribType"
                                     :key="item.value"
                                     :label="item.label"
                                     :value="item.value">
                          </el-option>
                        </el-select>
                        <zt-dict-tag v-else dict="RepairDistribType" :value="row.repairDistribType" :typeS="typeS"
                                     :typeI="typeI"
                                     :typeD="typeD" :typeColor="typeColor" :size="size" :effect="effect" :hit="hit"/>
                      </template>
                    </el-table-column>
                    <el-table-column prop="repairMttcr" label="MTTCR" :key="25" width="100" align="right">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.repairMttcr"></el-input>
                        <span v-else>{{scope.row.repairMttcr | keepNumber}}</span>
                      </template>
                    </el-table-column>
                    <el-table-column prop="repairMttcrOtherParams2" :key="26" label="MTTCR其他参数2" align="right">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.repairMttcrOtherParams2"></el-input>
                        <span v-else v-text="scope.row.repairMttcrOtherParams2"></span>
                      </template>
                    </el-table-column>
                    <el-table-column prop="repairMttcrOtherParams3" :key="27" label="MTTCR其他参数3" align="right">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.repairMttcrOtherParams3"></el-input>
                        <span v-else v-text="scope.row.repairMttcrOtherParams3"></span>
                      </template>
                    </el-table-column>
                  </el-table-column>
                  <el-table-column fixed="right" align="center" label="操作" width="100">
                    <template slot-scope="scope">
                      <zt-table-button size="small" type="primary" @click="edit(scope.row)">修改
                      </zt-table-button>
                      <zt-table-button v-if="scope.row.isCanel" size="small" type="primary" @click="canel(scope.row)">取消
                      </zt-table-button>
                    </template>
                  </el-table-column>
              <!--  <zt-table-column-dict v-if="dataForm.nodeType==='2'" :key="27" prop="reliabDistribType" label="可靠性分布类型"
                                      width="160"/>-->
              <el-table-column v-if="dataForm.nodeType==='2'" prop="reliabDistribType" label="可靠性分布类型" :key="27"
                               width="160">
                <template v-slot="{ row }">
                  <el-select v-if="row.isEdit" v-model="row.reliabDistribType"
                             placeholder="当前状态">
                    <el-option v-for="item in reliabDistribType"
                               :key="item.value"
                               :label="item.label"
                               :value="item.value">
                    </el-option>
                  </el-select>
                  <zt-dict-tag v-else dict="ReliabDistribType" :value="row.repairDistribType" :typeS="typeS"
                               :typeI="typeI" :typeD="typeD" :typeColor="typeColor" :size="size" :effect="effect"
                               :hit="hit"/>
                </template>
              </el-table-column>
              <el-table-column v-if="dataForm.nodeType==='2'" :key="28" prop="runTime" label="运行时间" width="100">
                <template slot-scope="scope">
                  <el-input v-if="scope.row.isEdit" v-model="scope.row.runTime"></el-input>
                  <span v-else v-text="scope.row.runTime"></span>
                </template>
              </el-table-column>
              <el-table-column fixed="right" align="center" label="操作" width="150">
                <template slot-scope="scope">
                  <zt-table-button size="small" type="primary" @click="edit(scope.row)">修改
                  </zt-table-button>
                  <zt-table-button v-if="scope.row.isCanel" size="small" type="primary" @click="canel(scope.row)">取消
                  </zt-table-button>
                </template>
              </el-table-column>
            </el-table>
                </el-table>
              </el-tab-pane>
            </el-tabs>
            <!-- 弹窗, 新增 / 修改 -->
            <select-ty-model @refreshDataList="table.query" ref="SelectTyModel"/>
          </zt-table-wraper>
@@ -252,8 +292,7 @@
  export default {
    data() {
      return {
        queryUrl: '/basicInfo/ParamData/page',
        deleteUrl: '/basicInfo/ParamData',
        activeName: 'first',
        pageCode: '',
        key: '',
        typeS: '',
@@ -271,7 +310,11 @@
          srcId: '',
          name: '',
          dataThreeList: null,
          nodeType: '5'
          productType: '1',
          basicJoinCompute: '',
          repairable: '',
          repairDistribType: '',
          reliabDistribType: ''
        },
        isOrNot: [{
          value: 1,
@@ -289,19 +332,48 @@
        reliabDistribType: [
          {
            value: 1,
            label: '二项分布'
            label: '指数分布'
          }, {
            value: 2,
            label: '威布尔分布'
            label: '二项分布'
          },
          {
            value: 3,
            label: '指数分布'
            label: '威布尔分布'
          },
        ],
        // editingCell:null,
        dataList: [],
        originalTableData: [],
        originalData: null, // 记录修改前的数据
      }
    },
    filters: {
      keepNumber(value) { //过滤器保留4为小数
        const numM = Number(value).toFixed(5);
        if (numM === "NaN") {
          return "0.0000";
        }
        const realVal = numM.substring(0, numM.length - 1);
        return realVal;
      },
    },
    // 在组件中定义 beforeRouteLeave 导航守卫
    beforeRouteLeave(to, from, next) {
      console.log(this.$store.state.contentTabs, 'this.$store.state.contentTabsActiveName')
      if (this.hasUnsavedChanges()) { // 检查是否有未保存的变更
        this.$confirm('您有未保存的更改,请先保存。是否继续离开?', '提示', {
          confirmButtonText: '保存',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          this.handleSaveRows(); // 保存数据
          next();
        }).catch(() => {
          next(false); // 取消路由离开
        });
      } else {
        next();
      }
    },
    components: {
@@ -309,6 +381,7 @@
      SelectTyModel
    },
    mounted() {
      this.$refs.modelTree.getProductList()
      this.pageCode = this.$route.query.pageCode
      this.dataForm.pageCode = this.$route.query.pageCode
      console.log(this.pageCode, 'this.pageCode this.pageCode')
@@ -316,7 +389,7 @@
    methods: {
      add() {
        this.$refs.SelectTyModel.$refs.dialog.init(null, {
          type: this.dataForm.nodeType - 1,
          type: this.dataForm.productType + 1,
          id: this.dataForm.srcId,
          pageCode: this.pageCode
        })
@@ -333,6 +406,8 @@
          this.originalData = null
          this.dataForm.dataThreeList = null
          this.$refs.tableObj.query()
          this.originalTableData = JSON.parse(JSON.stringify(this.dataList)); // 更新初始数据为当前数据
          console.log(this.originalTableData, 'this.originalTableData 当前表格json数据')
        }
      },
      edit(row) {
@@ -365,9 +440,20 @@
      // },
      onProductSelected(data) {
        this.dataForm.srcId = data.id
        this.dataForm.nodeType = data.productType
        this.dataForm.productType = data.productType
        this.activeName = 'first'
        console.log(data, 'onProductSelected(data)')
        this.$refs.tableObj.query()
        this.$nextTick(() => {
          this.$refs.tableObj.query()
        })
      },
      onDefault(defaultId) {
        this.dataForm.srcId = defaultId
        this.dataForm.productType = '1'
        this.activeName = 'first'
        this.$nextTick(() => {
          this.$refs.tableObj.query()
        })
      },
      dataLoaded(data) {
        this.dataList = data
@@ -377,7 +463,13 @@
          this.$set(dataList, 'isRemove', false)
          console.log(dataList, 'dataList')
        }
      }
        this.originalTableData = JSON.parse(JSON.stringify(this.dataList))
        console.log(this.originalTableData, 'this.originalTableData 初始表格json数据')
      },
      hasUnsavedChanges() {
        // 检查当前表格数据与初始数据是否相同
        return JSON.stringify(this.dataList) !== JSON.stringify(this.originalTableData);
      },
    }
  }
</script>