王震
2023-08-29 d1cb4f799dc84410817905e16ab6e2b360cc1a35
Merge remote-tracking branch 'origin/master'
已修改6个文件
1124 ■■■■ 文件已修改
src/assets/api/controller.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/measurementManagement.vue 1097 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/sale.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/api/controller.js
@@ -49,11 +49,22 @@
    gettable:"/opinion/list_page"
}
// QMS计量管理
const measure = {
    measureLedgerPageTable: "/measureLedger/metering_table", // 计量预测-->分页表格
    meteringPlanPageTable: "/meteringPlan/metering_table", // 计量计划-->分页表格
    meteringPlanListRecord: "/meteringPlan/list_record", // 计量计划<-->计量台账:查看计量履历
    meterPlanListDevice: "/meteringPlan/list_device", //新增计划设备下拉框
    createPerson: "/meteringPlan/list_user", //创建人下拉框
    meteringPlanDevicePlan: "/meteringPlan/add_plan", // 计量计划-->新增按钮
}
const url = {
    enter: "user/enter", //登录
    ...standard,
    ...raw,
  ...laboratory,
      ...laboratory,
    ...measure,
    ...finishedIns,
    ...unqualifiedaa,
    ...dispose,
src/components/view/measurementManagement.vue
@@ -10,7 +10,7 @@
    >
      <el-row>
        <el-col :span="12" class="top_left_name">{{
          radio1 == 1 ? "计量台账" : "计量预测"
          radio1 == 1 ? "计量台账" : "计量计划"
        }}</el-col>
        <el-col :span="12" style="text-align: right;">
          <el-button
@@ -30,56 +30,35 @@
      </el-row>
      <div class="top_div">
        <div class="table_top_div">
          <span>计量编号:</span>
          <el-select
            class="table_top_input"
          <span>{{ radio1 == 1 ? "计量编号:" : "计划单号:" }}</span>
          <el-input
            class="frame_input"
            v-model="measureLedgerPage.code"
            :placeholder="radio1 == 1 ? '请输入计量编号:' : '请输入计划单号:'"
            size="small"
            v-model="value"
            placeholder="请选择"
          />
          <span style="margin-left: 30px;" v-show="radio1 == 1"
            >仪器设备名称:</span
          >
            <el-option
              v-for="item in options"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
          <span>仪器设备名称:</span>
          <el-select
            class="table_top_input"
          <el-input
            v-show="radio1 == 1"
            class="frame_input"
            v-model="measureLedgerPage.deviceName"
            placeholder="请输入仪器设备名称"
            size="small"
            v-model="value"
            placeholder="请选择"
          >
            <el-option
              v-for="item in options"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
          <span>计量单位:</span>
          <el-select
            class="table_top_input"
          />
          <span style="margin-left: 30px;">计量单位:</span>
          <el-input
            class="frame_input"
            v-model="measureLedgerPage.measureUnit"
            placeholder="请输入计量单位"
            size="small"
            v-model="value"
            placeholder="请选择"
          >
            <el-option
              v-for="item in options"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
          />
          <el-button size="mini" @click="reset"><span>重 置</span></el-button>
          <el-button
            size="mini"
            type="primary"
            @click="selectSearch"
            @click="selectTableData"
            style="background: #004EA2;"
            ><span>查 询</span></el-button
          >
@@ -100,52 +79,99 @@
          <el-table
            v-show="radio1 == 1"
            ref="multipleTable"
            :data="tableData"
            :header-cell-style="{ 'text-align': 'center' }"
            :cell-style="{ 'text-align': 'center' }"
            :data="measureLedgerPageData"
            border
            tooltip-effect="dark"
            class="middle_middle_table"
            height="calc(100vh - 372px)"
            width="100%"
            @selection-change="handleSelectionChange"
          >
            <el-table-column type="selection" width="55"> </el-table-column>
            <el-table-column label="仪器设备编号" min-width="130px">
            <el-table-column label="仪器设备编号" min-width="130px" prop="code">
            </el-table-column>
            <el-table-column label="仪器设备名称" min-width="130px">
            <el-table-column label="仪器设备名称" prop="name" min-width="130px">
            </el-table-column>
            <el-table-column
              label="测量范围"
              min-width="130px"
              prop="measuring_range"
            ></el-table-column>
            <el-table-column
              label="计量周期"
              min-width="130px"
            ></el-table-column>
              prop="measure_period"
            >
              <template slot-scope="scope">
                <el-tag
                  v-if="scope.row.measure_period !== undefined"
                  disable-transitions
                  style="color: black;"
                  >{{ scope.row.measure_period + "/月" }}</el-tag
                ></template
              >
            </el-table-column>
            <el-table-column
              label="计量结果"
              min-width="130px"
            ></el-table-column>
              prop="measure_result"
            >
              <template slot-scope="scope">
                <el-tag
                  v-if="scope.row.measure_result == 1"
                  disable-transitions
                  type="success"
                  >运行</el-tag
                >
                <el-tag
                  v-else-if="scope.row.measure_result == 2"
                  disable-transitions
                  type="danger"
                  >失准</el-tag
                >
                <el-tag
                  v-else-if="scope.row.measure_result == null"
                  disable-transitions
                  type="info"
                  >未计量</el-tag
                >
              </template>
            </el-table-column>
            <el-table-column
              label="计量日期"
              min-width="130px"
              prop="measureDate"
            ></el-table-column>
            <el-table-column
              label="计量有效期"
              min-width="130px"
              prop="validityEnd"
            ></el-table-column>
            <el-table-column label="负责人" min-width="130px"></el-table-column>
            <el-table-column
              label="负责人"
              min-width="130px"
              prop="person_charge"
            ></el-table-column>
            <el-table-column
              label="创建日期"
              min-width="130px"
              prop="createTime"
            ></el-table-column>
            <el-table-column label="创建人" min-width="130px"></el-table-column>
            <el-table-column
              label="创建人"
              min-width="130px"
              prop="founder"
            ></el-table-column>
            <el-table-column
              label="计量单位"
              min-width="130px"
              prop="plan_unit"
            ></el-table-column>
            <el-table-column
              label="计量编号"
              min-width="130px"
              min-width="200px"
              prop="measure_number"
            ></el-table-column>
            <el-table-column
              fixed="right"
@@ -154,57 +180,79 @@
              label="操作"
              show-overflow-tooltip
            >
              <el-button
                type="text"
                size="mini"
                @click="
                  addShow = true;
                  viewResume = false;
                "
                >查看计量履历</el-button
              >
              <el-button type="text" size="mini">查看附件</el-button>
              <template slot-scope="scope">
                <el-button
                  type="text"
                  size="mini"
                  @click="showRecord(scope.row)"
                  >查看计量履历</el-button
                >
                <el-button type="text" size="mini">查看附件</el-button>
              </template>
            </el-table-column>
          </el-table>
          <el-table
            v-show="radio1 == 2"
            ref="multipleTable"
            :data="tableData"
            :data="measurePlanPageData"
            :header-cell-style="{ 'text-align': 'center' }"
            :cell-style="{ 'text-align': 'center' }"
            border
            tooltip-effect="dark"
            class="middle_middle_table"
            height="calc(100vh - 372px)"
            @selection-change="handleSelectionChange"
          >
            <el-table-column type="selection" width="55"> </el-table-column>
            <el-table-column label="计划单号" min-width="130px">
            </el-table-column>
            <el-table-column label="设备编码" min-width="130px">
            </el-table-column>
            <el-table-column
              label="设备名称"
              label="计划单号"
              prop="planNumber"
              min-width="130px"
            ></el-table-column>
            >
            </el-table-column>
            <el-table-column
              label="计划日期"
              min-width="130px"
              prop="planDate"
            ></el-table-column>
            <el-table-column
              label="计划状态"
              min-width="130px"
            ></el-table-column>
              prop="planStatue"
            >
              <template slot-scope="scope">
                <el-tag
                  v-if="scope.row.planStatue == 'y'"
                  disable-transitions
                  type="success"
                  >已完成</el-tag
                >
                <el-tag
                  v-else-if="scope.row.planStatue == 'n'"
                  disable-transitions
                  type="danger"
                  >未完成</el-tag
                >
              </template>
            </el-table-column>
            <el-table-column
              label="计量负责人"
              min-width="130px"
              prop="personCharge"
            ></el-table-column>
            <el-table-column
              label="计量单位"
              min-width="130px"
              prop="planUnit"
            ></el-table-column>
            <el-table-column label="创建人" min-width="130px"></el-table-column>
            <el-table-column
              label="创建人"
              min-width="130px"
              prop="founder"
            ></el-table-column>
            <el-table-column
              label="创建日期"
              min-width="130px"
              prop="createTime"
            ></el-table-column>
            <el-table-column
              fixed="right"
@@ -212,16 +260,15 @@
              label="操作"
              show-overflow-tooltip
            >
              <el-button
                type="text"
                size="mini"
                @click="
                  addShow = true;
                  viewResume = false;
                "
                >查看计量履历</el-button
              >
              <el-button type="text" size="mini">查看附件</el-button>
              <template slot-scope="scope">
                <el-button
                  type="text"
                  size="mini"
                  @click="showRecord(scope.row)"
                  >查看计量履历</el-button
                >
                <el-button type="text" size="mini">查看附件</el-button>
              </template>
            </el-table-column>
          </el-table>
        </div>
@@ -231,24 +278,24 @@
            v-show="radio1 == 1"
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page="currentPage4"
            :page-sizes="[12, 20, 30, 40]"
            :current-page="currentPage"
            :page-sizes="[10, 15, 20, 25]"
            :pager-count="9"
            :page-size="12"
            layout="total, sizes, prev, pager, next, jumper"
            :total="400"
            :total="measureLedgerTotal"
          >
          </el-pagination>
          <el-pagination
            v-show="radio1 == 2"
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page="currentPage4"
            :page-sizes="[12, 20, 30, 40]"
            :current-page="currentPage"
            :page-sizes="[10, 15, 20, 25]"
            :pager-count="9"
            :page-size="12"
            layout="total, sizes, prev, pager, next, jumper"
            :total="600"
            :total="measureLedgerPageTotal"
          >
          </el-pagination>
        </div>
@@ -280,6 +327,7 @@
            v-show="viewResume == true"
            type="primary"
            size="mini"
            @click="sunmitPlanForm"
            icon="el-icon-plus"
            :style="`background: #3a7bfa; opacity: ${addShow ? 1 : 0}`"
            >保存</el-button
@@ -287,131 +335,376 @@
        </el-col>
      </el-row>
      <div class="second_div_main">
        <div class="second_div_top">
          <el-descriptions class="secode_div_top_descriptions">
            <template slot="title">
              <span>计划信息</span>
              <span v-show="viewResume == false" style="font-size: 14px;"
                >&ensp;已完成</span
        <el-form :model="addFormDevice" :rules="rules" ref="ruleFormDevice">
          <!-- form表单 -->
          <div class="second_div_top">
            <el-descriptions
              class="secode_div_top_descriptions"
              v-show="viewResume == false"
            >
              <template slot="title">
                <span>计划信息</span>
                <span
                  v-show="measurePlanPage.accountOrPlan == false"
                  :style="
                    `font-size: 14px; color: ${okOrNo == 'y' ? 'green' : 'red'}`
                  "
                  >&ensp;{{ okOrNo == "y" ? "已完成" : "未完成" }}</span
                >
              </template>
              <el-descriptions-item label="计划编号">{{
                measureTop.plan_number
              }}</el-descriptions-item>
              <el-descriptions-item label="创建人">{{
                measureTop.founder
              }}</el-descriptions-item>
              <el-descriptions-item label="创建日期">{{
                measureTop.createTime
              }}</el-descriptions-item>
              <el-descriptions-item label="计划日期">{{
                measureTop.planTime
              }}</el-descriptions-item>
              <el-descriptions-item label="计划单位">{{
                measureTop.plan_unit
              }}</el-descriptions-item>
              <el-descriptions-item label="负责人">{{
                measureTop.person_charge
              }}</el-descriptions-item>
            </el-descriptions>
            <div
              class="secode_div_top_descriptions_add"
              v-show="viewResume == true"
            >
              <el-form-item
                required
                prop="plannedDate"
                label="计划日期:"
                style="width: 30%"
              >
            </template>
            <el-descriptions-item label="计划编号"
              >kooriookami</el-descriptions-item
            >
            <el-descriptions-item label="创建人"
              >18100000000</el-descriptions-item
            >
            <el-descriptions-item label="创建日期">苏州市</el-descriptions-item>
            <el-descriptions-item label="计划日期">苏州市</el-descriptions-item>
            <el-descriptions-item label="计划单位"
              >江苏省苏州市吴中区吴中大道 1188 号</el-descriptions-item
            >
            <el-descriptions-item label="负责人">苏州市</el-descriptions-item>
          </el-descriptions>
        </div>
        <div class="second_div_middle">
          <div class="el_divider_span">设备信息</div>
          <el-divider></el-divider>
        </div>
        <div class="second_div_table">
          <!-- <div>
            <el-button size="mini" style="padding: 5px 7px;" icon="el-icon-plus"
              ><span style="font-size: 14px;">批量计量</span></el-button
            >
          </div> -->
          <div v-show="viewResume == true">
            <el-table
              ref="multipleTable"
              :data="tableData"
              tooltip-effect="dark"
              border
              style="width: 100%; margin-top: 12px;"
              height="calc(100vh - 382px)"
            >
              <el-table-column type="selection" width="55" min-width="5%">
              </el-table-column>
              <el-table-column label="仪器设备编码" min-width="10%">
              </el-table-column>
              <el-table-column
                label="仪器设备名称"
                min-width="10%"
              ></el-table-column>
              <el-table-column
                label="测量范围"
                min-width="10%"
              ></el-table-column>
              <el-table-column
                label="计量周期"
                min-width="10%"
              ></el-table-column>
              <el-table-column
                label="计量结果"
                min-width="10%"
              ></el-table-column>
              <el-table-column
                label="计量日期"
                min-width="10%"
              ></el-table-column>
              <el-table-column
                label="计量有效期"
                min-width="10%"
              ></el-table-column>
              <el-table-column label="操作" min-width="10%">
                <el-button type="text" size="mini">作废</el-button>
              </el-table-column>
            </el-table>
            <div class="middle_under_div">
              <el-pagination
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
                :current-page="currentPage4"
                :page-sizes="[12, 20, 30, 40]"
                :pager-count="9"
                :page-size="12"
                layout="total, sizes, prev, pager, next, jumper"
                :total="600"
                <el-date-picker
                  v-model="addFormDevice.plannedDate"
                  value-format="yyyy-MM-dd"
                  type="daterange"
                  range-separator="~"
                  start-placeholder="开始日期"
                  end-placeholder="结束日期"
                >
                </el-date-picker>
              </el-form-item>
              <el-form-item
                label="计划单位:"
                prop="planUnit"
                required
                style="width: 20%"
              >
              </el-pagination>
                <el-input
                  style="width: 206px"
                  placeholder="请输入计划单位"
                  clearable
                  v-model="addFormDevice.planUnit"
                ></el-input>
              </el-form-item>
              <el-form-item
                label="负责人:"
                prop="personCharge"
                required
                style="width: 20%"
              >
                <el-select
                  v-model="addFormDevice.personCharge"
                  style="width: 206px"
                  placeholder="负责人"
                  class="table_top"
                >
                  <el-option
                    v-for="item in createPerson"
                    :key="item.index"
                    :label="item.name"
                    :value="item.id"
                  ></el-option>
                </el-select>
              </el-form-item>
            </div>
          </div>
          <div v-show="viewResume == false">
            <el-table
              :data="tableData"
              tooltip-effect="dark"
              border
              :row-style="{ height: '50px' }"
              :cell-style="{ padding: '0px' }"
              style="width: 100%; margin-top: 12px;"
              height="calc(100vh - 382px)"
            >
              <el-table-column label="仪器设备编码"> </el-table-column>
              <el-table-column label="仪器设备名称"></el-table-column>
              <el-table-column label="测量范围"></el-table-column>
              <el-table-column label="计量周期"></el-table-column>
              <el-table-column label="计量结果"></el-table-column>
              <el-table-column label="计量日期"></el-table-column>
              <el-table-column label="计量有效期"></el-table-column>
              <el-table-column label="负责人"></el-table-column>
              <el-table-column label="创建日期"></el-table-column>
              <el-table-column label="创建人"></el-table-column>
              <el-table-column label="计量单位"></el-table-column>
              <el-table-column label="计量编号"></el-table-column>
            </el-table>
            <div class="middle_under_div">
              <el-pagination
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
                :current-page="currentPage4"
                :page-sizes="[12, 20, 30, 40]"
                :pager-count="9"
                :page-size="12"
                layout="total, sizes, prev, pager, next, jumper"
                :total="600"
          <div class="second_div_middle">
            <div class="el_divider_span">设备信息</div>
            <el-divider></el-divider>
          </div>
          <div class="second_div_table">
            <div style="float: right;padding-bottom: 8px">
              <el-button size="mini" type="primary" @click="addDeviceAdd">
                <span style="font-size: 14px;">新增设备</span></el-button
              >
              </el-pagination>
            </div>
            <div v-show="viewResume == true">
              <el-table
                ref="multipleTableDevice"
                tooltip-effect="dark"
                :data="addFormDevice.measureLedgerList"
                header-cell-class-name="addHeaderCellClassName"
                border
                class="end_table"
                height="calc(100vh - 380px)"
              >
                <el-table-column
                  label="仪器设备编码"
                  min-width="10%"
                  prop="code"
                >
                </el-table-column>
                <el-table-column min-width="10%" prop="name">
                  <template slot="header">
                    <span class="requiredclass">仪器设备名称</span>
                  </template>
                  <template scope="scope">
                    <el-form-item
                      :prop="`measureLedgerList[` + scope.$index + `].deviceId`"
                      :rules="{
                        required: true,
                        trigger: 'change'
                      }"
                    >
                      <el-select
                        v-model="scope.row.deviceId"
                        @change="nameAndCode(scope)"
                        size="small"
                        placeholder="请选择设备"
                        class="table_top"
                      >
                        <el-option
                          v-for="item in deviceIdAndNameAndCode"
                          :key="item.index"
                          :label="item.name"
                          :value="item.id"
                        ></el-option>
                      </el-select>
                    </el-form-item>
                  </template>
                </el-table-column>
                <el-table-column label="测量范围" min-width="10%">
                  <template scope="scope">
                    <el-form-item
                      :prop="
                        `measureLedgerList[` + scope.$index + `].measuringRange`
                      "
                      :rules="{
                        required: true,
                        trigger: 'blur'
                      }"
                    >
                      <el-input
                        placeholder="请输入测量范围"
                        clearable
                        size="small"
                        v-model="
                          addFormDevice.measureLedgerList[scope.$index]
                            .measuringRange
                        "
                      ></el-input>
                    </el-form-item>
                  </template>
                </el-table-column>
                <el-table-column label="计量周期" min-width="5%">
                  <template scope="scope">
                    <span
                      v-show="
                        addFormDevice.measureLedgerList[scope.$index]
                          .measurePeriod !== ''
                      "
                      >{{
                        addFormDevice.measureLedgerList[scope.$index]
                          .measurePeriod
                      }}/月</span
                    >
                  </template>
                </el-table-column>
                <el-table-column label="计量结果" min-width="10%">
                  <template scope="scope">
                    <el-select
                      v-model="
                        addFormDevice.measureLedgerList[scope.$index]
                          .measureResult
                      "
                      style="padding-top: 4px;"
                      size="small"
                      placeholder="请选择计量结果"
                      class="table_top"
                    >
                      <el-option label="正常" value="1"></el-option>
                      <el-option label="失准" value="2"></el-option>
                    </el-select> </template
                ></el-table-column>
                <el-table-column width="200px">
                  <template slot="header">
                    <span class="requiredclass">计量日期</span>
                  </template>
                  <template scope="scope">
                    <el-form-item
                      :prop="
                        `measureLedgerList[` + scope.$index + `].measureDate`
                      "
                      :rules="{
                        required: true,
                        trigger: 'change'
                      }"
                    >
                      <el-date-picker
                        size="small"
                        style="width: 150px;"
                        v-model="
                          addFormDevice.measureLedgerList[scope.$index]
                            .measureDate
                        "
                        value-format="yyyy-MM-dd"
                        type="date"
                        placeholder="选择日期"
                      >
                      </el-date-picker>
                    </el-form-item>
                  </template>
                </el-table-column>
                <el-table-column width="300px">
                  <template slot="header">
                    <span class="requiredclass">计量有效期</span>
                  </template>
                  <template scope="scope">
                    <el-form-item
                      :prop="
                        `measureLedgerList[` + scope.$index + `].planDateList`
                      "
                      :rules="{
                        required: true,
                        trigger: 'change'
                      }"
                    >
                      <el-date-picker
                        v-model="
                          addFormDevice.measureLedgerList[scope.$index]
                            .planDateList
                        "
                        value-format="yyyy-MM-dd"
                        size="small"
                        style="width: 270px"
                        @change="pickerplanDateList(scope)"
                        type="daterange"
                        range-separator="~"
                        start-placeholder="开始日期"
                        end-placeholder="结束日期"
                      >
                      </el-date-picker>
                    </el-form-item>
                  </template>
                </el-table-column>
                <el-table-column label="操作" min-width="10%">
                  <template scope="scope">
                    <el-button
                      type="text"
                      size="mini"
                      @click="measureLedgerListDelete(scope)"
                      >删除</el-button
                    >
                  </template>
                </el-table-column>
              </el-table>
            </div>
            <div v-show="viewResume == false">
              <el-table
                :data="recordData"
                tooltip-effect="dark"
                :header-cell-style="{ 'text-align': 'center' }"
                border
                :row-style="{ height: '50px' }"
                :cell-style="{ padding: '0px', 'text-align': 'center' }"
                style="width: 100%; margin-top: 12px;"
                height="calc(100vh - 400px)"
              >
                <el-table-column
                  label="仪器设备编码"
                  prop="code"
                ></el-table-column>
                <el-table-column
                  label="仪器设备名称"
                  prop="name"
                ></el-table-column>
                <el-table-column
                  label="测量范围"
                  prop="measuring_range"
                ></el-table-column>
                <el-table-column
                  label="计量周期"
                  prop="measure_period"
                ></el-table-column>
                <el-table-column label="计量结果" prop="measure_result">
                  <template slot-scope="scope">
                    <el-tag
                      v-if="scope.row.measure_result == 1"
                      disable-transitions
                      type="success"
                      >运行</el-tag
                    >
                    <el-tag
                      v-else-if="scope.row.measure_result == 2"
                      disable-transitions
                      type="danger"
                      >失准</el-tag
                    >
                    <el-tag
                      v-else-if="scope.row.measure_result == null"
                      disable-transitions
                      type="info"
                      >未计量</el-tag
                    >
                  </template></el-table-column
                >
                <el-table-column
                  label="计量日期"
                  prop="measureDate"
                ></el-table-column>
                <el-table-column
                  label="计量有效期"
                  prop="validityEnd"
                ></el-table-column>
                <el-table-column
                  label="负责人"
                  prop="personCharge"
                ></el-table-column>
                <el-table-column
                  label="创建日期"
                  prop="createTime"
                ></el-table-column>
                <el-table-column
                  label="创建人"
                  prop="founder"
                ></el-table-column>
                <el-table-column
                  label="计量单位"
                  prop="plan_unit"
                ></el-table-column>
                <el-table-column
                  width="200px"
                  label="计量编号"
                  prop="measure_number"
                ></el-table-column>
              </el-table>
              <div
                class="middle_under_div"
                v-show="measurePlanPage.accountOrPlan == false"
              >
                <el-pagination
                  @size-change="handleSizeChange"
                  @current-change="handleCurrentChange"
                  :current-page="currentPage"
                  :page-sizes="[10, 15, 20, 25]"
                  :pager-count="9"
                  :page-size="12"
                  layout="total, sizes, prev, pager, next, jumper"
                  :total="measurePlanPageTotal"
                >
                </el-pagination>
              </div>
            </div>
          </div>
        </div>
        </el-form>
      </div>
    </div>
  </div>
@@ -435,106 +728,261 @@
      radio1: 1, // 计量台账计量计划切换
      addShow: false, // 新增计量
      viewResume: true, // 点击查看履历显示
      currentPage4: 4,
      value: "",
      options: [
        {
          value: "选项1",
          label: "黄金糕"
        },
        {
          value: "选项2",
          label: "双皮奶"
        },
        {
          value: "选项3",
          label: "蚵仔煎"
        },
        {
          value: "选项4",
          label: "龙须面"
        },
        {
          value: "选项5",
          label: "北京烤鸭"
        }
      ],
      tableData: [
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-08",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-06",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-07",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-07",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-07",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-07",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-07",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-07",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        }
      ]
      currentPage: 1,
      measureLedgerPage: {
        code: "", // 计划台账计量编号
        deviceName: "", // 计划台账仪器设备名称
        measureUnit: "", // 计划台账计量单位
        pageNo: 1,
        pageSize: 10
      },
      measurePlanPage: {
        code: "", // 计划单号
        meteringUnit: "", // 计量单位
        pageNo: 1,
        pageSize: 10
      },
      key: 0,
      measurePlanPageData: [], // 计量计划表格数据
      measureLedgerTotal: "",
      measureLedgerPageData: [], // 计量台账表格数据
      measureLedgerPageTotal: "",
      recordData: [],
      measurePlanPage: {
        pageNo: 1,
        pageSize: 10,
        accountOrPlan: true,
        measureId: ""
      },
      measureTop: {},
      measurePlanPageTotal: "",
      okOrNo: "",
      deviceIdAndNameAndCode: [],
      addFormDevice: {
        plannedDate: [], // 计划日期开始时间结束时间选择器
        planDateBegin: "", // 计划日期开始时间
        planDateEnd: "", // 计划日期结束时间
        personCharge: "", //负责人
        planUnit: "", // 计划单位
        measureLedgerList: []
      },
      createPerson: [], // 创建人列表
      rules: {
        planUnit: [
          { required: true, message: "请输入计划单位", trigger: "blur" },
          { min: 1, max: 25, message: "长度在 1 到 25 个字符", trigger: "blur" }
        ],
        personCharge: [
          { required: true, message: "请选择负责人", trigger: "change" }
        ],
        plannedDate: [
          {
            type: "array",
            required: true,
            message: "请选择计划日期区间",
            fields: {
              //tpye类型试情况而定,所以如果返回的是date就改成date
              0: { type: "string", required: true, message: "请选择开始日期" },
              1: { type: "string", required: true, message: "请选择结束日期" }
            }
          }
        ]
      }
    };
  },
  mounted() {
    this.measureLedgerPageMethods(); // 初始化调用计划台账表格数据
  },
  methods: {
    handleSizeChange(val) {
      console.log(`每页 ${val} 条`);
    handleSizeChange(pageSize) {
      if (this.radio1 == 1) {
        this.measureLedgerPage.pageSize = pageSize;
        this.measureLedgerPageMethods();
      } else if (this.radio1 == 2) {
        this.measurePlanPage.pageSize = pageSize;
        this.measurePlanPageMethods();
      }
    },
    handleCurrentChange(val) {
      console.log(`当前页: ${val}`);
    handleCurrentChange(pageNo) {
      if (this.radio1 == 1) {
        this.measureLedgerPage.pageNo = pageNo;
        this.measureLedgerPageMethods();
      } else if (this.radio1 == 2) {
        this.measurePlanPage.pageNo = pageNo;
        this.measurePlanPageMethods();
      }
    },
    measureLedgerPageMethods() {
      this.$axios
        .get(this.$api.url.measureLedgerPageTable, {
          params: this.measureLedgerPage
        })
        .then(res => {
          this.measureLedgerPageData = res.data.row;
          this.measureLedgerTotal = res.data.total;
        });
    },
    measurePlanPageMethods() {
      this.$axios
        .get(this.$api.url.meteringPlanPageTable, {
          params: this.measurePlanPage
        })
        .then(res => {
          this.measurePlanPageData = res.data.row;
          this.measureLedgerPageTotal = res.data.total;
        });
    },
    reset() {
      if (this.radio1 == 1) {
        this.measureLedgerPage = {
          code: "", // 计划台账计量编号
          measureUnit: "", // 计划台账仪器设备名称
          deviceName: "", // 计划台账计量单位
          pageNo: 1,
          pageSize: 10
        };
        this.measureLedgerPageMethods();
      } else {
        this.measurePlanPage = {
          code: "", // 计划单号
          meteringUnit: "", // 计量单位
          pageNo: 1,
          pageSize: 10
        };
        this.measureLedgerPage.code = "";
        this.measureLedgerPage.measureUnit = "";
        this.measurePlanPageMethods();
      }
    },
    selectTableData() {
      if (this.radio1 == 1) {
        this.measureLedgerPageData = [];
        this.measureLedgerPageMethods();
      } else {
        this.measurePlanPage.code = this.measureLedgerPage.code;
        this.measurePlanPage.meteringUnit = this.measureLedgerPage.measureUnit;
        this.measurePlanPageData = [];
        this.measurePlanPageMethods();
      }
    },
    showRecord(row) {
      this.addShow = true;
      this.viewResume = false;
      this.measurePlanPage.measureId = row.id;
      this.$axios
        .get(this.$api.url.meteringPlanListRecord, {
          params: this.measurePlanPage
        })
        .then(res => {
          this.recordData = res.data.table;
          this.measureTop = res.data.top;
          this.measurePlanPageTotal = res.data.total;
        });
      if (this.radio1 == 2) {
        this.okOrNo = row.planStatue;
      }
    },
    addDeviceAdd() {
      let measureLedgerList = {
        code: "",
        deviceId: "",
        measureDate: "",
        planDateList: "", // 缓存数据
        measurePeriod: "",
        measureResult: "",
        measuringRange: "",
        validityBegin: "",
        validityEnd: ""
      };
      this.addFormDevice.measureLedgerList.push(measureLedgerList);
    },
    nameAndCode(scope) {
      let deviceMessage = this.deviceIdAndNameAndCode.find(
        role => role.id === scope.row.deviceId
      );
      this.addFormDevice.measureLedgerList[scope.$index].code =
        deviceMessage.code;
    },
    addHeaderCellClassName({ columnIndex }) {
      if (columnIndex === 0 || columnIndex === 1) {
        return "requiredclass";
      }
    },
    pickerplanDateList(scope) {
      let begin = scope.row.planDateList[0];
      let end = scope.row.planDateList[1];
      this.addFormDevice.measureLedgerList[scope.$index].validityBegin = begin;
      this.addFormDevice.measureLedgerList[scope.$index].validityEnd = end;
      let StartDate = begin.split("-");
      let EndDate = end.split("-");
      let dayDate = EndDate[2] - StartDate[2];
      EndDate = parseInt(EndDate[0]) * 12 + parseInt(EndDate[1]);
      StartDate = parseInt(StartDate[0]) * 12 + parseInt(StartDate[1]);
      let resultDate = EndDate - StartDate + 1;
      this.addFormDevice.measureLedgerList[
        scope.$index
      ].measurePeriod = resultDate;
    },
    measureLedgerListDelete(scope) {
      this.addFormDevice.measureLedgerList.splice(scope.$index, 1);
    },
    sunmitPlanForm() {
      this.$refs.ruleFormDevice.validate(valid => {
        if (valid) {
          this.addFormDevice.planDateBegin = this.addFormDevice.plannedDate[0];
          this.addFormDevice.planDateEnd = this.addFormDevice.plannedDate[1];
          delete this.addFormDevice.plannedDate;
          this.addFormDevice.measureLedgerList.forEach(i => {
            i.validityBegin = i.planDateList[0];
            i.validityEnd = i.planDateList[1];
            delete i.planDateList;
          });
          this.$axios
            .post(this.$api.url.meteringPlanDevicePlan, this.addFormDevice, {
              headers: { "Content-Type": "application/json" }
            })
            .then(res => {
              this.$message({
                message: res.message,
                type: "success"
              });
              this.addShow = false;
            });
        }
      });
    }
  },
  watch: {
    radio1: {
      handler: function(newVal, oldVal) {
        if (newVal == 2) {
          this.measurePlanPage.accountOrPlan = false;
          this.measurePlanPageMethods();
        } else {
          this.measurePlanPage.accountOrPlan = true;
        }
      }
    },
    addShow: {
      handler: function(newVal, oldVal) {
        if (newVal === true) {
          this.$axios.get(this.$api.url.meterPlanListDevice).then(res => {
            this.deviceIdAndNameAndCode = res.data;
          });
          this.$axios.get(this.$api.url.createPerson).then(res => {
            this.createPerson = res.data;
          });
        }
      }
    }
  }
};
</script>
<style>
<style less="scss">
.main_div {
  height: calc(100vh - 110px);
  position: relative;
@@ -550,6 +998,23 @@
  height: calc(100vh - 110px);
  transition: 0.5s;
}
.secode_div_top_descriptions_add {
  padding-left: 30px;
  padding-top: 48px;
  .el-form-item {
    float: left;
  }
}
.end_table {
  width: 100%;
  margin-top: 12px;
  .cell {
    height: 40px;
  }
}
.top_div {
  width: 100%;
  height: 100px;
@@ -590,7 +1055,13 @@
}
.table_top_div {
  margin-left: 20px;
  padding: 20px 0;
  padding: 35px 0;
}
.el-descriptions-item__label {
  height: 20px !important;
}
.el-input__prefix {
  padding-left: 0px !important;
}
.table_top_div span {
  font-size: 15px;
@@ -638,9 +1109,22 @@
  background-color: #ffffff;
  height: calc(100vh - 150px);
}
.table_top_div {
  margin-left: 20px;
  padding-top: 15px;
  padding-bottom: 15px;
}
.secode_div_top_descriptions {
  padding-left: 20px;
  padding-top: 10px;
  padding-left: 30px;
  padding-top: 17px;
}
.secode_div_top_descriptions .el-form-item {
  float: left;
}
.requiredclass::before {
  content: "*";
  color: #f56c6c;
  margin-right: 6px;
}
.el-descriptions__title {
  font-size: 15px;
@@ -662,4 +1146,17 @@
.icon-fanhui {
  padding-right: 6px;
}
.frame_input {
  width: 10%;
  margin: 10px 0;
  transition: 1.5s;
}
.el-tag.el-tag {
  border-color: transparent;
  background-color: transparent;
}
.el-tag.el-tag:hover {
  border-color: transparent;
  background-color: transparent;
}
</style>
src/components/view/sale.vue
@@ -364,7 +364,7 @@
                            <el-table-column prop="number" label="数量">
                                <template slot-scope="scope">
                                    <el-input v-model.number="scope.row.number" size="small"
                                        @change="scope.row.number = isNaN(scope.row.number)?0:scope.row.number" clearable
                                         @change="(val)=>scope.row.number = isNaN(val)?null:val" clearable
                                        placeholder="请输入"></el-input>
                                </template>
                            </el-table-column>
src/main.js
@@ -23,7 +23,7 @@
Vue.use(qs);
Vue.use(api);
const javaApi = 'http://192.168.110.167:8001/'
const javaApi = 'http://192.168.110.107:8001/'
axios.defaults.baseURL = javaApi
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
src/router/index.js
@@ -24,4 +24,4 @@
    path: "/enter",
    component: () => import("../view/enter.vue")
  }]
})
})
src/view/index.vue
@@ -417,12 +417,6 @@
                            },
                            {
                                k: 10.1,
                                v: "巡检",
                                i: "font icon-shouye",
                                u: ""
                            },
                            {
                                k: 10.2,
                                v: "不合格品处置",
                                i: "font icon-shouye",
                                u: "Processingproducts"
@@ -572,4 +566,4 @@
            }
        }
    };
</script>
</script>