gaoluyang
6 天以前 3e975fa4617edb90fbcc4f1be04c05ca676fcc0d
src/views/productionManagement/productionProcess/index.vue
@@ -1,189 +1,218 @@
<template>
   <div class="app-container">
      <div class="search_form">
         <el-form :model="searchForm" :inline="true">
            <el-form-item label="工序名称:">
               <el-input v-model="searchForm.name" placeholder="请输入" clearable prefix-icon="Search"
                              style="width: 200px;"
                              @change="handleQuery" />
            </el-form-item>
            <el-form-item label="工序编号:">
               <el-input v-model="searchForm.no" placeholder="请输入" clearable prefix-icon="Search"
                              style="width: 200px;"
                              @change="handleQuery" />
            </el-form-item>
            <el-form-item>
               <el-button type="primary" @click="handleQuery">搜索</el-button>
            </el-form-item>
         </el-form>
      </div>
      <div class="table_list">
         <div style="text-align: right" class="mb10">
            <el-button type="primary" @click="showNewModal">新增工序</el-button>
            <el-button type="danger" @click="handleDelete" :disabled="selectedRows.length === 0" plain>删除工序</el-button>
         </div>
         <PIMTable
            rowKey="id"
            :column="tableColumn"
            :tableData="tableData"
            :page="page"
            :isSelection="true"
            @selection-change="handleSelectionChange"
            :tableLoading="tableLoading"
            @pagination="pagination"
            :total="page.total"
         ></PIMTable>
      </div>
      <new-process
      v-if="isShowNewModal"
      v-model:visible="isShowNewModal"
      @completed="getList"
    />
    <edit-process
      v-if="isShowEditModal"
      v-model:visible="isShowEditModal"
      :record="record"
      @completed="getList"
    />
   </div>
  <div class="app-container">
    <div class="search_form">
      <el-form :model="searchForm"
               :inline="true">
        <el-form-item label="工序名称:">
          <el-input v-model="searchForm.name"
                    placeholder="请输入"
                    clearable
                    prefix-icon="Search"
                    style="width: 200px;"
                    @change="handleQuery" />
        </el-form-item>
        <el-form-item label="工序编号:">
          <el-input v-model="searchForm.no"
                    placeholder="请输入"
                    clearable
                    prefix-icon="Search"
                    style="width: 200px;"
                    @change="handleQuery" />
        </el-form-item>
        <el-form-item>
          <el-button type="primary"
                     @click="handleQuery">搜索</el-button>
        </el-form-item>
      </el-form>
    </div>
    <div class="table_list">
      <div style="text-align: right"
           class="mb10">
        <el-button type="primary"
                   @click="showNewModal">新增工序</el-button>
        <el-button type="danger"
                   @click="handleDelete"
                   :disabled="selectedRows.length === 0"
                   plain>删除工序</el-button>
      </div>
      <PIMTable rowKey="id"
                :column="tableColumn"
                :tableData="tableData"
                :page="page"
                :isSelection="true"
                @selection-change="handleSelectionChange"
                :tableLoading="tableLoading"
                @pagination="pagination"
                :total="page.total"></PIMTable>
    </div>
    <new-process v-if="isShowNewModal"
                 v-model:visible="isShowNewModal"
                 @completed="getList" />
    <edit-process v-if="isShowEditModal"
                  v-model:visible="isShowEditModal"
                  :record="record"
                  @completed="getList" />
  </div>
</template>
<script setup>
import {onMounted, ref} from "vue";
import NewProcess from "@/views/productionManagement/productionProcess/New.vue";
import EditProcess from "@/views/productionManagement/productionProcess/Edit.vue";
import {listPage, del} from "@/api/productionManagement/productionProcess.js";
  import { onMounted, ref } from "vue";
  import NewProcess from "@/views/productionManagement/productionProcess/New.vue";
  import EditProcess from "@/views/productionManagement/productionProcess/Edit.vue";
  import { listPage, del } from "@/api/productionManagement/productionProcess.js";
const data = reactive({
   searchForm: {
      name: "",
      no: "",
   },
});
const { searchForm } = toRefs(data);
const tableColumn = ref([
   {
      label: "工序名称",
      prop: "name",
   },
   {
      label: "工序编号",
      prop: "no",
   },
   {
      label: "工资定额",
      prop: "salaryQuota",
   },
   {
      label: "备注",
      prop: "remark",
   },
  {
    dataType: "action",
    label: "操作",
    align: "center",
    fixed: "right",
    width: 280,
    operation: [
      {
        name: "编辑",
        type: "text",
        clickFun: (row) => {
          showEditModal(row);
        }
      }
    ]
  const data = reactive({
    searchForm: {
      name: "",
      no: "",
    },
  });
  const { searchForm } = toRefs(data);
  const tableColumn = ref([
    {
      label: "工序名称",
      prop: "name",
    },
    {
      label: "工序编号",
      prop: "no",
    },
    {
      label: "工资定额",
      prop: "salaryQuota",
    },
    {
      label: "备注",
      prop: "remark",
    },
    {
      dataType: "action",
      label: "操作",
      align: "center",
      fixed: "right",
      width: 280,
      operation: [
        {
          name: "编辑",
          type: "text",
          clickFun: row => {
            showEditModal(row);
          },
        },
      ],
    },
  ]);
  const tableData = ref([]);
  const selectedRows = ref([]);
  const tableLoading = ref(false);
  const isShowNewModal = ref(false);
  const isShowEditModal = ref(false);
  const record = ref({});
  const page = reactive({
    current: 1,
    size: 100,
    total: 0,
  });
  const { proxy } = getCurrentInstance();
  // 查询列表
  /** 搜索按钮操作 */
  const handleQuery = () => {
    page.current = 1;
    getList();
  };
  const pagination = obj => {
    page.current = obj.page;
    page.size = obj.limit;
    getList();
  };
  const getList = () => {
    tableLoading.value = true;
    const params = { ...searchForm.value, ...page };
    params.entryDate = undefined;
    listPage(params)
      .then(res => {
        tableLoading.value = false;
        tableData.value = res.data.records.map(item => ({
          ...item,
        }));
        page.total = res.data.total;
      })
      .catch(err => {
        tableLoading.value = false;
      });
  };
  // 表格选择数据
  const handleSelectionChange = selection => {
    selectedRows.value = selection;
  };
  // 打开新增弹框
  const showNewModal = () => {
    isShowNewModal.value = true;
  };
  const showEditModal = row => {
    isShowEditModal.value = true;
    record.value = row;
  };
  // 删除
  function handleDelete() {
    const no = selectedRows.value.map(item => item.no);
    const ids = selectedRows.value.map(item => item.id);
    if (no.length > 2) {
      proxy.$modal
        .confirm(
          '是否确认删除工序编号为"' +
            no[0] +
            "、" +
            no[1] +
            '"等' +
            no.length +
            "条数据项?"
        )
        .then(function () {
          return del(ids);
        })
        .then(() => {
          getList();
          proxy.$modal.msgSuccess("删除成功");
        })
        .catch(() => {});
    } else {
      proxy.$modal
        .confirm('是否确认删除工序编号为"' + no + '"的数据项?')
        .then(function () {
          return del(ids);
        })
        .then(() => {
          getList();
          proxy.$modal.msgSuccess("删除成功");
        })
        .catch(() => {});
    }
  }
]);
const tableData = ref([]);
const selectedRows = ref([]);
const tableLoading = ref(false);
const isShowNewModal = ref(false);
const isShowEditModal = ref(false);
const record = ref({});
const page = reactive({
   current: 1,
   size: 100,
   total: 0,
});
const { proxy } = getCurrentInstance()
// 查询列表
/** 搜索按钮操作 */
const handleQuery = () => {
   page.current = 1;
   getList();
};
  // 导出
  // const handleOut = () => {
  //    ElMessageBox.confirm("选中的内容将被导出,是否确认导出?", "导出", {
  //       confirmButtonText: "确认",
  //       cancelButtonText: "取消",
  //       type: "warning",
  //    })
  //       .then(() => {
  //          proxy.download("/salesLedger/scheduling/exportTwo", {}, "工序排产.xlsx");
  //       })
  //       .catch(() => {
  //          proxy.$modal.msg("已取消");
  //       });
  // };
const pagination = (obj) => {
   page.current = obj.page;
   page.size = obj.limit;
   getList();
};
const getList = () => {
   tableLoading.value = true;
   const params = { ...searchForm.value, ...page };
   params.entryDate = undefined
  listPage(params).then(res => {
      tableLoading.value = false;
      tableData.value = res.data.records.map(item => ({
         ...item,
      }));
      page.total = res.data.total;
   }).catch(err => {
      tableLoading.value = false;
   })
};
// 表格选择数据
const handleSelectionChange = (selection) => {
   selectedRows.value = selection;
};
// 打开新增弹框
const showNewModal = () => {
  isShowNewModal.value = true
};
const showEditModal = (row) => {
  isShowEditModal.value = true
  record.value = row
};
// 删除
function handleDelete() {
  const no = selectedRows.value.map((item) => item.no);
  const ids = selectedRows.value.map((item) => item.id);
  proxy.$modal
      .confirm('是否确认删除工序编号为"' + no + '"的数据项?')
      .then(function () {
        return del(ids);
      })
      .then(() => {
        getList();
        proxy.$modal.msgSuccess("删除成功");
      })
      .catch(() => {});
}
// 导出
// const handleOut = () => {
//    ElMessageBox.confirm("选中的内容将被导出,是否确认导出?", "导出", {
//       confirmButtonText: "确认",
//       cancelButtonText: "取消",
//       type: "warning",
//    })
//       .then(() => {
//          proxy.download("/salesLedger/scheduling/exportTwo", {}, "工序排产.xlsx");
//       })
//       .catch(() => {
//          proxy.$modal.msg("已取消");
//       });
// };
onMounted(() => {
   getList();
});
  onMounted(() => {
    getList();
  });
</script>
<style scoped></style>