jinlin
2024-06-11 c1c99506314644355c105de2a525ea3a248fd91f
web/src/views/modules/basicInfo/ParamData.vue
@@ -37,11 +37,30 @@
            </el-form>
            <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}"
                <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px"
                          v-adaptive="{bottomOffset:30}"
                          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="140"/>
                  <el-table-column prop="name" :key="2" label="名称" fixed="left" width="120"/>
                  <el-table-column v-if="dataForm.productType==='3'||dataForm.productType==='2'"
                                   prop="reliabDistribType"
                                   label="可靠性分布类型" :key="27"
                                   width="100">
                    <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==='4'" :key="3" prop="baseOperatRatio" label="基本可靠性运行比">
                    <template slot-scope="scope">
                      <el-input v-if="scope.row.isEdit" v-model="scope.row.baseOperatRatio"></el-input>
@@ -51,20 +70,15 @@
                  <el-table-column v-if="dataForm.productType==='5'||dataForm.productType==='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.productType==='3'||dataForm.productType==='2'" :key="5" label="基本可靠性计算">
                  <el-table-column v-if="dataForm.productType==='3'||dataForm.productType==='2'" :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">
                    <el-table-column prop="basicJoinCompute" label="参加计算" :key="6">
                      <template v-slot="{ row }">
                        <el-select v-if="row.isEdit" v-model="row.basicJoinCompute"
                                   placeholder="参加计算">
@@ -79,25 +93,25 @@
                                     :typeColor="typeColor" :size="size" :effect="effect" :hit="hit"/>
                      </template>
                    </el-table-column>
                    <el-table-column prop="basicMtbfRegulate" :key="7" label="规定MTBF" width="120">
                    <el-table-column prop="basicMtbfRegulate" :key="7" label="规定MTBF">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.basicMtbfRegulate"></el-input>
                        <span v-else v-text="scope.row.basicMtbfRegulate"></span>
                      </template>
                    </el-table-column>
                    <el-table-column prop="basicMtbfAccept" :key="8" label="可接受的MTBF" width="160">
                    <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规定成功率" width="180">
                    <el-table-column prop="basicMtbfRegulSuccRate" :key="9" label="MTBF规定成功率">
                      <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="180">
                    <el-table-column prop="basicMtbfAcceptSuccRate" :key="10" label="MTBF可接受成功率" width="140">
                      <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>
@@ -115,133 +129,20 @@
                        <span v-else v-text="scope.row.basicRunsNum"></span>
                      </template>
                    </el-table-column>
                    <el-table-column prop="basicMtbfOperatingRatio" :key="13" label="MTBF运行比" width="140">
                    <el-table-column prop="basicMtbfOperatingRatio" :key="13" label="MTBF运行比" width="80">
                      <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="单次运行时间" width="140">
                    <el-table-column prop="basicSingleRunTime" :key="14" label="运行时间" 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 v-if="dataForm.productType==='3'||dataForm.productType==='2'" :key="15" label="任务可靠性计算">
                    <el-table-column prop="taskMtbcfRegulate" :key="16" label="规定MTBCF" width="120">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.taskMtbcfRegulate"></el-input>
                        <span v-else v-text="scope.row.taskMtbcfRegulate"></span>
                      </template>
                    </el-table-column>
                    <el-table-column prop="taskMtbcfAccept" :key="17" label="可接受的MTBCF" width="160">
                      <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规定成功率" width="180">
                      <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="200">
                      <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运行比" width="140">
                      <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="taskMtbcfOtherParams" :key="21" label="MTBCF其他参数" width="160">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.taskMtbcfOtherParams"></el-input>
                        <span v-else v-text="scope.row.taskMtbcfOtherParams"></span>
                      </template>
                    </el-table-column>
                  </el-table-column>
                  <el-table-column v-if="dataForm.productType==='3'||dataForm.productType==='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="repairMttcr" label="MTTCR" :key="25" width="100">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.repairMttcr"></el-input>
                        <span v-else v-text="scope.row.repairMttcr"></span>
                      </template>
                    </el-table-column>
                    <el-table-column prop="repairMttcrOtherParams" :key="26" label="MTTCR其他参数" width="180">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.repairMttcrOtherParams"></el-input>
                        <span v-else v-text="scope.row.repairMttcrOtherParams"></span>
                      </template>
                    </el-table-column>
                  </el-table-column>
                  <!--  <zt-table-column-dict v-if="dataForm.productType==='3'" :key="27" prop="reliabDistribType" label="可靠性分布类型"
                                          width="160"/>-->
                  <el-table-column v-if="dataForm.productType==='3'||dataForm.productType==='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.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==='3'||dataForm.productType==='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">
                  <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>
@@ -249,141 +150,57 @@
                      </zt-table-button>
                    </template>
                  </el-table-column>
                </el-table>
              </el-tab-pane>
              <el-tab-pane label="任务可靠性" name="second">
                <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:30}"
              <el-tab-pane label="任务可靠性" name="second" v-if="dataForm.productType==='3'||dataForm.productType==='2'">
                <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px"
                          v-adaptive="{bottomOffset:30}"
                          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="140"/>
                  <el-table-column v-if="dataForm.productType==='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.productType==='5'||dataForm.productType==='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.productType==='3'||dataForm.productType==='2'" :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">
                      <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" width="120">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.basicMtbfRegulate"></el-input>
                        <span v-else v-text="scope.row.basicMtbfRegulate"></span>
                      </template>
                    </el-table-column>
                    <el-table-column prop="basicMtbfAccept" :key="8" label="可接受的MTBF" width="160">
                      <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规定成功率" width="180">
                      <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="180">
                      <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">
                      <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">
                      <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运行比" width="140">
                      <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="单次运行时间" width="140">
                      <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 prop="name" :key="2" label="名称" fixed="left" width="120"/>
                  <el-table-column v-if="dataForm.productType==='3'||dataForm.productType==='2'" :key="15" label="任务可靠性计算">
                    <el-table-column prop="taskMtbcfRegulate" :key="16" label="规定MTBCF" width="120">
                  <el-table-column v-if="dataForm.productType==='3'||dataForm.productType==='2'" :key="15"
                                   label="任务可靠性计算">
                    <el-table-column prop="taskMtbcfRegulate" :key="16" label="规定MTBCF" width="100">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.taskMtbcfRegulate"></el-input>
                        <span v-else v-text="scope.row.taskMtbcfRegulate"></span>
                      </template>
                    </el-table-column>
                    <el-table-column prop="taskMtbcfAccept" :key="17" label="可接受的MTBCF" width="160">
                    <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规定成功率" width="180">
                    <el-table-column prop="taskMtbcfRegulSuccRate" :key="18" label="MTBCF规定成功率" width="120">
                      <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="200">
                    <el-table-column prop="taskMtbcfAcceptSuccRate" :key="19" label="MTBCF可接受成功率" width="140">
                      <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运行比" width="140">
                    <el-table-column prop="taskMtbcfOperatingRatio" :key="20" label="MTBCF运行比" width="100">
                      <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="taskMtbcfOtherParams" :key="21" label="MTBCF其他参数" width="160">
                    <el-table-column prop="taskMtbcfOtherParams" :key="21" label="MTBCF其他参数">
                      <template slot-scope="scope">
                        <el-input v-if="scope.row.isEdit" v-model="scope.row.taskMtbcfOtherParams"></el-input>
                        <span v-else v-text="scope.row.taskMtbcfOtherParams"></span>
                      </template>
                    </el-table-column>
                  </el-table-column>
                  <el-table-column v-if="dataForm.productType==='3'||dataForm.productType==='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">
@@ -430,34 +247,7 @@
                      </template>
                    </el-table-column>
                  </el-table-column>
                  <!--  <zt-table-column-dict v-if="dataForm.productType==='3'" :key="27" prop="reliabDistribType" label="可靠性分布类型"
                                          width="160"/>-->
                  <el-table-column v-if="dataForm.productType==='3'||dataForm.productType==='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.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==='3'||dataForm.productType==='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">
                  <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>
@@ -626,6 +416,7 @@
      onProductSelected(data) {
        this.dataForm.srcId = data.id
        this.dataForm.productType = data.productType
        this.activeName = 'first'
        console.log(data, 'onProductSelected(data)')
        this.$nextTick(() => {
          this.$refs.tableObj.query()