gaoluyang
2025-03-07 573265f7d79341298ba4287be38f00ddbc66e7ec
src/views/performance/manHour/workTimeManagement.vue
@@ -4,308 +4,146 @@
    <div class="search">
      <div class="search_thing" style="width: 200px">
        <div class="search_label">星期:</div>
        <el-select
          v-model="entity.weekDay"
          clearable
          placeholder="全部"
          size="small"
          @change="refreshTable()"
        >
          <el-option
            v-for="item in weekList"
            :key="item.value"
            :label="item.label"
            :value="item.value"
          >
        <el-select v-model="entity.weekDay" clearable placeholder="全部" size="small" @change="refreshTable()">
          <el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value">
          </el-option>
        </el-select>
      </div>
      <div class="search_thing" style="width: 390px">
        <div class="search_label" style="width: 90px">时间范围:</div>
        <div class="search_input">
          <el-date-picker
            v-model="entity.dateTime"
            clearable
            end-placeholder="结束日期"
            format="yyyy-MM-dd"
            range-separator="至"
            size="small"
            start-placeholder="开始日期"
            style="width: 100%"
            type="daterange"
            value-format="yyyy-MM-dd"
            @change="refreshTable()"
          >
          <el-date-picker v-model="entity.dateTime" clearable end-placeholder="结束日期" format="yyyy-MM-dd"
            range-separator="至" size="small" start-placeholder="开始日期" style="width: 100%" type="daterange"
            value-format="yyyy-MM-dd" @change="refreshTable()">
          </el-date-picker>
        </div>
      </div>
      <!-- 以下这两个为组长角色特有的 -->
      <div class="search_thing" style="width: 200px">
        <div class="search_label">名字:</div>
        <el-input
          v-model="entity.name"
          clearable
          placeholder="请输入"
          size="small"
          @keyup.enter.native="refreshTable()"
        ></el-input>
        <el-input v-model="entity.name" clearable placeholder="请输入" size="small"
          @keyup.enter.native="refreshTable()"></el-input>
      </div>
      <div
        v-if="currentTable == 'ValueTable1'"
        class="search_thing"
        style="width: 250px"
      >
      <div v-if="currentTable == 'ValueTable1'" class="search_thing" style="width: 250px">
        <div class="search_label" style="width: 120px">样品编号:</div>
        <el-input
          v-model="entity.sample"
          clearable
          placeholder="请输入"
          size="small"
          @keyup.enter.native="refreshTable()"
        ></el-input>
        <el-input v-model="entity.sample" clearable placeholder="请输入" size="small"
          @keyup.enter.native="refreshTable()"></el-input>
      </div>
      <div
        v-if="currentTable == 'ValueTable0'"
        class="search_thing"
        style="width: 200px"
      >
      <div v-if="currentTable == 'ValueTable0'" class="search_thing" style="width: 200px">
        <div class="search_label">状态:</div>
        <el-select
          v-model="entity.state"
          placeholder="全部"
          size="small"
          @change="refreshTable()"
          clearable
        >
          <el-option
            v-for="item in stateList"
            :key="item.value"
            :label="item.label"
            :value="item.value"
          >
        <el-select v-model="entity.state" placeholder="全部" size="small" @change="refreshTable()" clearable>
          <el-option v-for="item in stateList" :key="item.value" :label="item.label" :value="item.value">
          </el-option>
        </el-select>
      </div>
      <div class="search_thing" style="padding-left: 30px; width: 100px">
        <el-button size="small" @click="refresh()">重 置</el-button>
        <el-button size="small" type="primary" @click="refreshTable()"
          >查 询</el-button
        >
        <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button>
      </div>
    </div>
    <div
      style="display: flex; align-items: center; justify-content: space-between"
    >
    <div style="display: flex; align-items: center; justify-content: space-between">
      <el-radio-group :key="'111'" v-model="currentTable" size="small">
        <el-radio-button label="ValueTable0"> 辅助工时 </el-radio-button>
        <el-radio-button label="ValueTable1"> 产量工时 </el-radio-button>
      </el-radio-group>
      <div style="display: flex; align-items: center">
        <p style="font-size: 14px; margin-right: 30px">
          总工时汇总:<span
            v-if="totalInfo"
            style="font-size: 16px; color: #3a7bfa"
            >{{
              totalInfo["产量工时汇总"] + totalInfo["辅助工时汇总"]
                ? Number(
                    totalInfo["产量工时汇总"] + totalInfo["辅助工时汇总"]
                  ).tofixed(4)
                : 0
            }}</span
          >&nbsp;&nbsp;&nbsp;&nbsp;产量工时汇总:<span
            v-if="totalInfo"
            style="font-size: 16px; color: #3a7bfa"
            >{{
          总工时汇总:<span v-if="totalInfo" style="font-size: 16px; color: #3a7bfa">{{
            totalInfo["产量工时汇总"] + totalInfo["辅助工时汇总"]
              ? Number(
                totalInfo["产量工时汇总"] + totalInfo["辅助工时汇总"]
              ).tofixed(4)
              : 0
          }}</span>&nbsp;&nbsp;&nbsp;&nbsp;产量工时汇总:<span v-if="totalInfo" style="font-size: 16px; color: #3a7bfa">{{
              totalInfo["产量工时汇总"]
                ? Number(totalInfo["产量工时汇总"]).tofixed(4)
                : 0
            }}</span
          >&nbsp;&nbsp;&nbsp;&nbsp;辅助工时汇总:<span
            v-if="totalInfo"
            style="font-size: 16px; color: #3a7bfa"
            >{{
            }}</span>&nbsp;&nbsp;&nbsp;&nbsp;辅助工时汇总:<span v-if="totalInfo" style="font-size: 16px; color: #3a7bfa">{{
              totalInfo["辅助工时汇总"]
                ? Number(totalInfo["辅助工时汇总"]).tofixed(4)
                : 0
            }}</span
          >
            }}</span>
        </p>
        <el-button
          v-show="
            currentTable == 'ValueTable0' &&
            checkPermi(['performance:manHour:workTimeManagement:add'])
          "
          size="small"
          type="primary"
          @click="openAdd"
          >录入数据</el-button
        >
        <el-button
          v-if="down && currentTable === 'ValueTable0'"
          :loading="outLoading"
          size="small"
          type="primary"
          @click="handleOut"
          >导 出</el-button
        >
        <el-button
          v-if="down && currentTable === 'ValueTable1'"
          :loading="outLoading"
          size="small"
          type="primary"
          @click="handleOut1"
          >导 出</el-button
        >
        <el-button
          v-show="
            currentTable == 'ValueTable0' &&
            checkPermi(['performance:manHour:workTimeManagement:add'])
          "
          size="small"
          type="primary"
          @click="openBatchCheck(1)"
          >批量批准</el-button
        >
        <el-button v-show="currentTable == 'ValueTable0' &&
          checkPermi(['performance:manHour:workTimeManagement:add'])
          " size="small" type="primary" @click="openAdd">录入数据</el-button>
        <el-button v-if="down && currentTable === 'ValueTable0'" :loading="outLoading" size="small" type="primary"
          @click="handleOut">导 出</el-button>
        <el-button v-if="down && currentTable === 'ValueTable1'" :loading="outLoading" size="small" type="primary"
          @click="handleOut1">导 出</el-button>
        <el-button v-show="currentTable == 'ValueTable0' &&
          checkPermi(['performance:manHour:workTimeManagement:add'])
          " size="small" type="primary" @click="openBatchCheck(1)">批量批准</el-button>
      </div>
    </div>
    <div class="table">
      <lims-table
        :tableData="tableData"
        :column="column"
        :page="page"
        :tableLoading="tableLoading"
        :height="'calc(100vh - 350px)'"
        :isSelection="true"
        v-if="currentTable == 'ValueTable0'"
        @pagination="pagination"
        :handleSelectionChange="handleSelectionChange"
      ></lims-table>
      <lims-table
        :tableData="tableData0"
        :column="column0"
        :page="page0"
        :tableLoading="tableLoading"
        :height="'calc(100vh - 350px)'"
        v-if="currentTable == 'ValueTable1'"
        @pagination="pagination0"
      ></lims-table>
      <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
        :height="'calc(100vh - 350px)'" :isSelection="true" v-if="currentTable == 'ValueTable0'"
        @pagination="pagination" :handleSelectionChange="handleSelectionChange"></lims-table>
      <lims-table :tableData="tableData0" :column="column0" :page="page0" :tableLoading="tableLoading"
        :height="'calc(100vh - 350px)'" v-if="currentTable == 'ValueTable1'" @pagination="pagination0"></lims-table>
    </div>
    <el-dialog
      :before-close="handleClose"
      :title="formData.id ? '编辑' : '录入数据'"
      :visible.sync="addVisible"
      width="600px"
    >
    <el-dialog :before-close="handleClose" :title="formData.id ? '编辑' : '录入数据'" :visible.sync="addVisible"
      width="600px">
      <el-row style="display: flex; justify-content: space-around">
        <el-col :span="12">
          <el-form :model="formData" label-width="90px">
            <el-form-item label="录入时间:">
              <el-radio-group v-model="formData.dateTime" size="small">
                <el-radio :label="getYearAndMonthAndDays() + ' 00:00:00'"
                  >今天</el-radio
                >
                <el-radio
                  :label="
                    getYearAndMonthAndDays(
                      new Date(new Date().getTime() - 24 * 60 * 60 * 1000)
                    ) + ' 00:00:00'
                  "
                  >昨天</el-radio
                >
                <el-radio :label="getYearAndMonthAndDays() + ' 00:00:00'">今天</el-radio>
                <el-radio :label="getYearAndMonthAndDays(
                  new Date(new Date().getTime() - 24 * 60 * 60 * 1000)
                ) + ' 00:00:00'
                  ">昨天</el-radio>
              </el-radio-group>
            </el-form-item>
            <el-form-item label="年份:">
              <el-input
                v-model="formData.year"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData.year" disabled size="small"></el-input>
            </el-form-item>
            <el-form-item label="周次:">
              <el-input
                v-model="formData.week"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData.week" disabled size="small"></el-input>
            </el-form-item>
            <el-form-item label="星期:">
              <!-- <el-input v-model="formData.weekDay" size="small" disabled></el-input> -->
              <el-select
                v-model="formData.weekDay"
                disabled
                placeholder="请选择"
                size="small"
              >
                <el-option
                  v-for="item in weekList"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
              <el-select v-model="formData.weekDay" disabled placeholder="请选择" size="small">
                <el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="班次:">
              <el-input
                v-model="formData.shift"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData.shift" disabled size="small"></el-input>
            </el-form-item>
          </el-form>
        </el-col>
        <el-col :span="12">
          <el-form :model="formData" label-width="90px">
            <el-form-item label="编号:" required>
              <el-input
                v-model="formData.number"
                size="small"
                @blur="getInfoByCode"
              ></el-input>
              <el-input v-model="formData.number" size="small" @blur="getInfoByCode"></el-input>
            </el-form-item>
            <el-form-item label="数量:" required>
              <el-input v-model="formData.amount" size="small"></el-input>
            </el-form-item>
            <el-form-item label="核准工时:">
              <el-input
                v-model="formData.approvedWorkingHour"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData.approvedWorkingHour" disabled size="small"></el-input>
            </el-form-item>
            <el-form-item label="辅助工时:">
              <el-input
                v-model="formData.nonproductiveTime"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData.nonproductiveTime" disabled size="small"></el-input>
            </el-form-item>
            <el-form-item label="辅助项目:">
              <el-input
                v-model="formData.auxiliaryProject"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData.auxiliaryProject" disabled size="small"></el-input>
            </el-form-item>
          </el-form>
        </el-col>
      </el-row>
      <el-form :model="formData" label-width="90px">
        <el-form-item label="辅助说明:">
          <el-input
            v-model="formData.remarks"
            :rows="3"
            size="small"
            type="textarea"
          ></el-input>
          <el-input v-model="formData.remarks" :rows="3" size="small" type="textarea"></el-input>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-row>
          <el-button @click="handleClose">取 消</el-button>
          <el-button :loading="addLoad" type="primary" @click="submitAdd"
            >确 定</el-button
          >
          <el-button :loading="addLoad" type="primary" @click="submitAdd">确 定</el-button>
        </el-row>
      </span>
    </el-dialog>
@@ -315,134 +153,63 @@
        <el-col :span="12">
          <el-form :model="formData0" label-width="90px">
            <el-form-item label="年份:">
              <el-input
                v-model="formData0.year"
                :disabled="title == '批准'"
                size="small"
              ></el-input>
              <el-input v-model="formData0.year" :disabled="title == '批准'" size="small"></el-input>
            </el-form-item>
            <el-form-item label="周次:">
              <el-input
                v-model="formData0.week"
                :disabled="title == '批准'"
                size="small"
              ></el-input>
              <el-input v-model="formData0.week" :disabled="title == '批准'" size="small"></el-input>
            </el-form-item>
            <el-form-item label="星期:">
              <el-select
                v-model="formData0.weekDay"
                :disabled="title == '批准'"
                placeholder="请选择"
                size="small"
              >
                <el-option
                  v-for="item in weekList"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
              <el-select v-model="formData0.weekDay" :disabled="title == '批准'" placeholder="请选择" size="small">
                <el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="姓名:">
              <el-input
                v-model="formData0.name"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData0.name" disabled size="small"></el-input>
            </el-form-item>
            <el-form-item label="班次:">
              <el-select
                v-model="formData0.shift"
                :disabled="title == '批准'"
                placeholder="请选择"
                size="small"
              >
                <el-option
                  v-for="item in classType"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
              <el-select v-model="formData0.shift" :disabled="title == '批准'" placeholder="请选择" size="small">
                <el-option v-for="item in classType" :key="item.value" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="复核说明:">
              <el-input
                v-model="formData0.reviewerRemark"
                :rows="3"
                size="small"
                type="textarea"
              ></el-input>
              <el-input v-model="formData0.reviewerRemark" :rows="3" size="small" type="textarea"></el-input>
            </el-form-item>
          </el-form>
        </el-col>
        <el-col :span="12">
          <el-form :model="formData0" label-width="90px">
            <el-form-item label="编号:" required>
              <el-input
                v-model="formData0.number"
                :disabled="title == '批准'"
                size="small"
              ></el-input>
              <el-input v-model="formData0.number" :disabled="title == '批准'" size="small"></el-input>
            </el-form-item>
            <el-form-item label="数量:" required>
              <el-input
                v-model="formData0.amount"
                :disabled="title == '批准'"
                size="small"
              ></el-input>
              <el-input v-model="formData0.amount" :disabled="title == '批准'" size="small"></el-input>
            </el-form-item>
            <el-form-item label="复核数量:" required>
              <el-input
                v-model="formData0.reviewerNumber"
                size="small"
              ></el-input>
              <el-input v-model="formData0.reviewerNumber" size="small"></el-input>
            </el-form-item>
            <el-form-item label="核准工时:">
              <el-input
                v-model="formData0.approvedWorkingHour"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData0.approvedWorkingHour" disabled size="small"></el-input>
            </el-form-item>
            <el-form-item label="复核工时:">
              <el-input
                v-model="formData0.reviewerNonproductiveTime"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData0.reviewerNonproductiveTime" disabled size="small"></el-input>
            </el-form-item>
            <el-form-item label="辅助项目:">
              <el-input
                v-model="formData0.auxiliaryProject"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData0.auxiliaryProject" disabled size="small"></el-input>
            </el-form-item>
          </el-form>
        </el-col>
      </el-row>
      <span slot="footer" class="dialog-footer">
        <el-row>
          <el-button :loading="checkLoadN" @click="submitCheck(0)"
            >不批准</el-button
          >
          <el-button
            :loading="checkLoadY"
            type="primary"
            @click="submitCheck(1)"
            >批 准</el-button
          >
          <el-button :loading="checkLoadN" @click="submitCheck(0)">不批准</el-button>
          <el-button :loading="checkLoadY" type="primary" @click="submitCheck(1)">批 准</el-button>
        </el-row>
      </span>
    </el-dialog>
    <el-dialog
      :before-close="closeBatchCheckDialog"
      :title="batchCheckTitle"
      :visible.sync="batchCheckDialog"
      width="30%"
    >
    <el-dialog :before-close="closeBatchCheckDialog" :title="batchCheckTitle" :visible.sync="batchCheckDialog"
      width="30%">
      <span>{{ batchCheckDialogMessage }}</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="batchCheck(0)">不批准</el-button>
@@ -597,7 +364,6 @@
          dataType: "action",
          fixed: "right",
          label: "操作",
          width: "160px",
          operation: [
            {
              name: "编辑",
@@ -752,9 +518,10 @@
        param = { ...entity, ...this.page };
      } else {
        param = { ...this.entity, ...this.page };
        param.dateTime = JSON.stringify(param.dateTime);
        param.dateTime = param.dateTime?.length > 0 ? JSON.stringify(param.dateTime) : null;
      }
      delete param.total;
      console.log('11111111111111111')
      selectAuxiliaryWorkingHoursDay({ ...param })
        .then((res) => {
          this.tableLoading = false;
@@ -871,12 +638,11 @@
      })
        .then(() => {
          deleteAuxiliaryWorkingHoursDay({ id: row.id }).then((res) => {
            if (res.code == 201) return;
            this.$message.success("删除成功");
            this.refreshTable("page");
          });
        })
        .catch(() => {});
        .catch(() => { });
    },
    handleClose() {
      this.addVisible = false;
@@ -894,7 +660,6 @@
      if (!this.formData.id) {
        insertAuxiliaryWorkingHoursDay(this.formData).then((res) => {
          this.addLoad = false;
          if (res.code == 201) return;
          this.$message.success("已提交");
          this.formData.number = "";
          this.formData.amount = "";
@@ -909,7 +674,6 @@
      } else {
        updateAuxiliaryWorkingHoursDay(this.formData).then((res) => {
          this.addLoad = false;
          if (res.code == 201) return;
          this.$message.success("操作成功");
          this.formData.number = "";
          this.formData.amount = "";
@@ -962,9 +726,6 @@
      });
      approve({ auxiliaryWorkingHoursDays: auxiliaryWorkingHoursDays }).then(
        (res) => {
          if (res.code === 201) {
            return;
          }
          this.submitBatchCheckDialog();
          this.$message.success("操作成功");
        }
@@ -1001,7 +762,6 @@
        } else {
          this.checkLoadY = false;
        }
        if (res.code == 201) return;
        this.$message.success("操作成功");
        this.checkVisible = false;
        this.refreshTable("page");
@@ -1097,7 +857,6 @@
      exportAssistantHours({ entity: entity })
        .then((res) => {
          this.outLoading = false;
          this.$message.success("导出成功");
          const blob = new Blob([res]);
          this.$download.saveAs(blob, "辅助工时信息导出.xlsx");
        })
@@ -1116,7 +875,6 @@
      exportOutputHours({ entity: entity })
        .then((res) => {
          this.outLoading = false;
          this.$message.success("导出成功");
          const blob = new Blob([res]);
          this.$download.saveAs(blob, "产量工时信息导出.xlsx");
        })
@@ -1140,6 +898,7 @@
  padding-top: 0;
  /* scrollbar-width: none;  */
}
/* .work-time-management::-webkit-scrollbar {
  display: none;
} */