Newer
Older
Nanping_sponge_GCGL / src / views / project / projectQuality / qualityRectification / qualityRectification.vue
@liyingjing liyingjing on 25 Oct 2023 7 KB 海绵工程管理
<template>
  <div class="water-analysis-page">
    <div class="top">
      <el-form ref="ruleForm" inline :model="tableData" v-show="showSearch">
        <el-form-item label="项目名称:" prop="projectName">
          <el-input
            clearable
            style="width: 200px"
            v-model="tableData.projectName"
            placeholder="请输入项目名称"
          ></el-input>
        </el-form-item>
        <el-form-item label="整改发起时间:" prop="timer">
          <el-date-picker
            v-model="tableData.timer"
            type="daterange"
            unlink-panels
            style="width: 220px"
            range-separator="至"
            start-placeholder="开始时间"
            end-placeholder="结束时间"
            value-format="YYYY-MM-DD"
          />
        </el-form-item>
        <el-form-item label="限制整改时间:" prop="timer1">
          <el-date-picker
            style="width: 220px"
            v-model="tableData.timer1"
            type="daterange"
            unlink-panels
            range-separator="至"
            start-placeholder="开始时间"
            end-placeholder="结束时间"
            value-format="YYYY-MM-DD"
          />
        </el-form-item>
        <el-form-item label="流程步骤:">
          <el-select
            v-model="tableData.status"
            placeholder="请选择流程步骤"
            clearable
            @change="selectChange"
          >
            <el-option
              v-for="dict in quality_rectification_status"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="提交人:" prop="submitUserName">
          <!-- <el-input
            clearable
            v-model="tableData.submitUserName"
            style="width: 200px"
            placeholder="请输入提交人"
          ></el-input> -->
          <el-select
              clearable
              v-model="tableData.submitUserName"
              class="m-2"
              placeholder="请选择提交人"
              size="mini"
              style="width: 100%"
              filterable
            >
              <el-option
                v-for="item in personList"
                :key="item.userId"
                :label="item.nickName"
                :value="item.userName"
              />
            </el-select>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" icon="Search" @click="searchForm">
            查询</el-button
          >
          <el-button icon="Refresh" @click="resetQuery">重置</el-button>
        </el-form-item>
      </el-form>
      <el-row :gutter="10" class="mb8">
        <el-col :span="1.5">
          <el-button
            type="primary"
            plain
            icon="Plus"
            @click="onCheck('add')"
            v-hasPermi="['system:post:add']"
            >新增</el-button
          >
        </el-col>
        <right-toolbar
          v-model:showSearch="showSearch"
          @queryTable="searchForm"
        ></right-toolbar>
      </el-row>
    </div>
    <el-tabs
      v-model="activeName"
      class="demo-tabs"
      @tab-click="handleClick"
      style="margin-top: -10px"
      type="border-card"
    >
      <el-tab-pane label="待办列表" name="todo"> </el-tab-pane>
      <el-tab-pane label="已办列表" name="done"> </el-tab-pane>
      <el-tab-pane label="我的" name="main"> </el-tab-pane>
      <todoDon
        :key="todoDonKey"
        :todoList="todoList"
        :tableData="tableData"
        :getInfoList="getInfoList"
        ref="todoDonRef"
      >
      <template #pagination>
        <pagination
      v-show="todoList.total > 0"
      :total="todoList.total"
      v-model:page="queryParams.pageNum"
      v-model:limit="queryParams.pageSize"
      @pagination="
        getInfoList({
          pageNum: queryParams.pageNum,
          pageSize: queryParams.pageSize,
          queryScope: todoList.queryScope,
        })
      "
    />
        </template>
    </todoDon>


    </el-tabs>
    <el-dialog
      v-model="visible"
      title="质量整改新增"
      :modal-append-to-body="false"
      :close-on-click-modal="false"
      width="90%"
      height="98%"
    >
      <tableDalgo
        v-if="visible"
        ref="tableDalgoRef"
        :typeList="typeList"
        @onModalClose="onModalClose"
      ></tableDalgo>
      <template #footer>
        <div class="dialog-footer">
          <el-button @click="open2" type="primary">保 存</el-button>
          <el-button @click="submitClict" type="success">提 交</el-button>
          <el-button @click="closed">关闭</el-button>
        </div>
      </template>
    </el-dialog>
  </div>
  <!-- 查看详情弹框 -->
</template>
<script setup>
import { reactive } from "vue";
import tableDalgo from "./qualityComponents/tableDalgo.vue";
import todoDon from "./qualityComponents/todoDon.vue";
import { getInfo, getInfoMamin,userList } from "@/api/qualityRectification";
const { proxy } = getCurrentInstance();
const { project_operation_pattern, quality_rectification_status } =
  proxy.useDict("project_operation_pattern", "quality_rectification_status");
const todoDonRef = ref(null);
let typeList = ref({});
const showSearch = ref(true);
const activeName = ref("todo");
let visible = ref(false);
const todoDonKey = ref(0);
const todoList = ref([]);
const tableDalgoRef = ref();
const personList = ref([]);
const queryParams=ref({
    pageNum: 1,
    pageSize: 10})
const userListM = async () => {
  let { data } = await userList();
  personList.value = data;
};
//动态组件
let tableData = ref({ pageNum: 1, pageSize: 10, queryScope: "todo" });

//切换table
const handleClick = ({ props: { name } }, event) => {
  tableData.value.queryScope = name;
  queryParams.value.pageNum=1
  getInfoList(tableData.value);
};
function selectChange(v) {
  console.log("vvvv", v);
}
//搜索
const searchForm = () => {

  getInfoList(tableData.value);
};
// 新增
const onCheck = (v) => {
  typeList.value.type = v;
  visible.value = true;
  nextTick(()=>{
     tableDalgoRef.value.resect()
  })
};
//关闭
function onModalClose() {
  visible.value = false;
  getInfoList(tableData.value);
}
function open2() {
  tableDalgoRef.value.submit();
}
function closed() {
  tableDalgoRef.value.closed();
}
const getInfoList = async (prams) => {
  if (prams.timer?.length > 0) {
    prams.abarbeitungSearchStartEndTime =
    prams.timer[1];
    prams.abarbeitungSearchStartStartTime =
    prams.timer[0];
  }else{
    prams.abarbeitungSearchStartEndTime =''
    prams.abarbeitungSearchStartStartTime =''
  }
  if (prams.timer1?.length > 0) {
    prams.abarbeitungSearchEndEndTime =   prams.timer1[1];
    prams.abarbeitungSearchEndStartTime =   prams.timer1[0];
  }else{
    prams.abarbeitungSearchEndEndTime =''
    prams.abarbeitungSearchEndStartTime =''
  }
  if (prams.queryScope == "main") {
    let { data, total } = await getInfoMamin(prams);
    todoList.value = data;
    todoList.value.total = total;
    todoList.value.queryScope = prams.queryScope;
  } else {
    let { data, total } = await getInfo(prams);
    todoList.value = data;
    todoList.value.total = total;
    todoList.value.queryScope = prams.queryScope;
  }
  todoDonKey.value++;
};
/** 重置按钮操作 */
function resetQuery() {
  tableData.value = {
    queryScope: tableData.value.queryScope,
    pageNum: 1,
    pageSize: 10,
  };
  getInfoList( tableData.value);
}
//新增提交
function submitClict() {
  tableDalgoRef.value.submit(6);
}
onMounted(() => {
  getInfoList(tableData.value);
  userListM()
});
</script>
<style lang="scss" scoped>
.water-analysis-page {
  padding: 20px;
  height: 90vh;

  .top {
    margin-bottom: 15px;
  }
}
:deep(.el-dialog__body) {
  background-color: #eef1fb;
  height: 750px;
  overflow: auto;
}
</style>