From a7e3f9bafb5887f1d8948b666adf8f0c7168713a Mon Sep 17 00:00:00 2001
From: dy <dingyang@lnfxkj.tech>
Date: 星期三, 09 四月 2025 15:24:25 +0800
Subject: [PATCH] 零件计划管理页面提交
---
src/components/HxlhTable/index.vue | 9
src/views/partPlan/index.vue | 911 +++++++++++++++++++-------------------------------------
2 files changed, 311 insertions(+), 609 deletions(-)
diff --git a/src/components/HxlhTable/index.vue b/src/components/HxlhTable/index.vue
index b7ce6c7..eb4d866 100644
--- a/src/components/HxlhTable/index.vue
+++ b/src/components/HxlhTable/index.vue
@@ -137,7 +137,6 @@
const tableForm = ref([]);
-const height = ref(document.documentElement.clientHeight - 120 + "px;")
// const url = computed(() => props.src)
const emit = defineEmits();
@@ -198,25 +197,23 @@
if (!props.page) {
return;
}
- console.log(props.page.total);
return {
total: props.page.total,
currentPage: props.page.current,
pageSize: props.page.size,
align: 'left',
pageSizes: [10, 20, 50, 100, 500],
- layouts: ['PrevJump', 'PrevPage', 'Number', 'NextPage', 'NextJump', 'Sizes', 'FullJump', 'Total']
+ layouts: ['PrevJump', 'PrevPage', 'Number', 'NextPage', 'NextJump', 'Sizes', 'FullJump', 'Total'],
+ perfect: true
};
});
-
-console.log(tablePage);
// 瀹氫箟 footData 璁$畻灞炴��
const footData = computed(() => props.mxTableFootData);
</script>
-<style lang="scss">
+<style lang="less">
.hxlh-table .vxe-toolbar .vxe-tools--operate {
margin-top: -23px;
}
diff --git a/src/views/partPlan/index.vue b/src/views/partPlan/index.vue
index 9b5ae3b..2b62880 100644
--- a/src/views/partPlan/index.vue
+++ b/src/views/partPlan/index.vue
@@ -1,273 +1,62 @@
<template>
<div class="app-container">
- <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
- <el-form-item label="涓昏鍒掑憳" prop="masterPlanner">
- <el-input
- v-model="queryParams.masterPlanner"
- placeholder="璇疯緭鍏ヤ富璁″垝鍛�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <!-- <el-form-item label="鍛ㄦ棩" prop="weekDay">
- <el-date-picker clearable
- v-model="queryParams.weekDay"
- type="date"
- value-format="YYYY-MM-DD"
- placeholder="璇烽�夋嫨鍛ㄦ棩">
- </el-date-picker>
- </el-form-item>
- <el-form-item label="鍛ㄥ害" prop="weekCycle">
- <el-input
- v-model="queryParams.weekCycle"
- placeholder="璇疯緭鍏ュ懆搴�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="涓讳欢鏂欏彿" prop="mainPartNumber">
- <el-input
- v-model="queryParams.mainPartNumber"
- placeholder="璇疯緭鍏ヤ富浠舵枡鍙�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="涓讳欢鍥惧彿" prop="mainPartDrawingNumber">
- <el-input
- v-model="queryParams.mainPartDrawingNumber"
- placeholder="璇疯緭鍏ヤ富浠跺浘鍙�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item> -->
- <el-form-item label="瀹㈡埛鍚嶇О" prop="customer">
- <el-input
- v-model="queryParams.customer"
- placeholder="璇疯緭鍏ュ鎴峰悕绉�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <!-- <el-form-item label="鍗曟嵁鍙�" prop="documentNumber">
- <el-input
- v-model="queryParams.documentNumber"
- placeholder="璇疯緭鍏ュ崟鎹彿"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="鏂欏彿" prop="itemNumber">
- <el-input
- v-model="queryParams.itemNumber"
- placeholder="璇疯緭鍏ユ枡鍙�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="鍥惧彿" prop="drawingNo">
- <el-input
- v-model="queryParams.drawingNo"
- placeholder="璇疯緭鍏ュ浘鍙�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="鐗堟湰鍙�" prop="versionNumber">
- <el-input
- v-model="queryParams.versionNumber"
- placeholder="璇疯緭鍏ョ増鏈彿"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="鐢熶骇鏁伴噺" prop="productionQuantity">
- <el-input
- v-model="queryParams.productionQuantity"
- placeholder="璇疯緭鍏ョ敓浜ф暟閲�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="鑹搧鏁伴噺" prop="goodProductsQuantity">
- <el-input
- v-model="queryParams.goodProductsQuantity"
- placeholder="璇疯緭鍏ヨ壇鍝佹暟閲�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="宸ュ簭鍙�" prop="processNumber">
- <el-input
- v-model="queryParams.processNumber"
- placeholder="璇疯緭鍏ュ伐搴忓彿"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="宸ヤ綔涓績" prop="workCenter">
- <el-input
- v-model="queryParams.workCenter"
- placeholder="璇疯緭鍏ュ伐浣滀腑蹇�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="鎵�灞為儴闂�" prop="department">
- <el-input
- v-model="queryParams.department"
- placeholder="璇疯緭鍏ユ墍灞為儴闂�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item> -->
- <el-form-item label="璁″垝寮�宸ユ棩" style="width: 308px">
- <el-date-picker
- v-model="daterangePlanStartDay"
- value-format="YYYY-MM-DD"
- type="daterange"
- range-separator="-"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- ></el-date-picker>
- </el-form-item>
- <el-form-item label="璁″垝瀹屽伐鏃�" style="width: 308px">
- <el-date-picker
- v-model="daterangePlanEndDay"
- value-format="YYYY-MM-DD"
- type="daterange"
- range-separator="-"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- ></el-date-picker>
- </el-form-item>
- <el-form-item label="澶囨枡鏂欏彿" prop="standbyNumber">
- <el-input
- v-model="queryParams.standbyNumber"
- placeholder="璇疯緭鍏ュ鏂欐枡鍙�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="澶囨枡鍚嶇О" prop="standbyName">
- <el-input
- v-model="queryParams.standbyName"
- placeholder="璇疯緭鍏ュ鏂欏悕绉�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="澶囨枡搴撳瓨" prop="standbyStock">
- <el-input
- v-model="queryParams.standbyStock"
- placeholder="璇疯緭鍏ュ鏂欏簱瀛�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="涓嬮亾宸ュ簭鎵�灞為儴闂�" prop="nextProcessDeparment">
- <el-input
- v-model="queryParams.nextProcessDeparment"
- placeholder="璇疯緭鍏ヤ笅閬撳伐搴忔墍灞為儴闂�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="鏄惁鎸傝捣" prop="isSuspended">
- <el-input
- v-model="queryParams.isSuspended"
- placeholder="璇疯緭鍏ユ槸鍚︽寕璧�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="澶栧崗鏍囪瘑" prop="isOutsourcing">
- <el-input
- v-model="queryParams.isOutsourcing"
- placeholder="璇疯緭鍏ュ鍗忔爣璇�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="璐﹀" prop="account">
- <el-input
- v-model="queryParams.account"
- placeholder="璇疯緭鍏ヨ处濂�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="涓婇樁鐗╂枡" prop="advancedMaterials">
- <el-input
- v-model="queryParams.advancedMaterials"
- placeholder="璇疯緭鍏ヤ笂闃剁墿鏂�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="涓婇樁鍗曟嵁鍙�" prop="advancedDocumentNumber">
- <el-input
- v-model="queryParams.advancedDocumentNumber"
- placeholder="璇疯緭鍏ヤ笂闃跺崟鎹彿"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="涓婇樁闇�姹傛棩鏈�" prop="advancedRequirementDay">
- <el-date-picker clearable
- v-model="queryParams.advancedRequirementDay"
- type="date"
- value-format="YYYY-MM-DD"
- placeholder="璇烽�夋嫨涓婇樁闇�姹傛棩鏈�">
- </el-date-picker>
- </el-form-item>
- <el-form-item label="璁″垝榻愬" prop="isPlanComplete">
- <el-input
- v-model="queryParams.isPlanComplete"
- placeholder="璇疯緭鍏ヨ鍒掗綈濂�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="搴撳瓨榻愬" prop="isStockComplete">
- <el-input
- v-model="queryParams.isStockComplete"
- placeholder="璇疯緭鍏ュ簱瀛橀綈濂�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="鏄惁鏈夋姌杩斿伐搴�" prop="hasTurnback">
- <el-input
- v-model="queryParams.hasTurnback"
- placeholder="璇疯緭鍏ユ槸鍚︽湁鎶樿繑宸ュ簭"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="椋庨櫓鏍囪瘑" prop="hasRisk">
- <el-input
- v-model="queryParams.hasRisk"
- placeholder="璇疯緭鍏ラ闄╂爣璇�"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item>
- <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
- <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
- </el-form-item>
- </el-form>
-
+ <el-row :gutter="20">
+ <el-col>
+ <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="90px">
+ <el-form-item label="璁″垝寮�宸ユ棩" style="width: 350px">
+ <el-date-picker
+ v-model="daterangePlanStartDay"
+ value-format="YYYY-MM-DD"
+ type="daterange"
+ range-separator="-"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ ></el-date-picker>
+ </el-form-item>
+ <el-form-item label="璁″垝瀹屽伐鏃�" style="width: 350px">
+ <el-date-picker
+ v-model="daterangePlanEndDay"
+ value-format="YYYY-MM-DD"
+ type="daterange"
+ range-separator="-"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ ></el-date-picker>
+ </el-form-item>
+ <el-form-item label="鍗曟嵁鍙�" prop="documentNumber">
+ <el-input
+ v-model="queryParams.documentNumber"
+ placeholder="璇疯緭鍏ュ崟鎹彿"
+ clearable
+ @keyup.enter="handleQuery"
+ />
+ </el-form-item>
+ <el-form-item label="瀹㈡埛鍚嶇О" prop="customer">
+ <el-input
+ v-model="queryParams.customer"
+ placeholder="璇疯緭鍏ュ鎴峰悕绉�"
+ clearable
+ @keyup.enter="handleQuery"
+ />
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
+ <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ </el-col>
+ </el-row>
+
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="Plus"
- @click="handleAdd"
+ :disabled="single"
+ @click="plannedStart"
v-hasPermi="['partPlan:add']"
- >鏂板</el-button>
+ >鎵归噺淇敼璁″垝寮�宸ユ棩</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@@ -275,19 +64,18 @@
plain
icon="Edit"
:disabled="single"
- @click="handleUpdate"
+ @click="plannedEnd"
v-hasPermi="['partPlan:edit']"
- >淇敼</el-button>
+ >鎵归噺淇敼璁″垝瀹屽伐鏃�</el-button>
</el-col>
<el-col :span="1.5">
- <el-button
- type="danger"
- plain
- icon="Delete"
- :disabled="multiple"
- @click="handleDelete"
- v-hasPermi="['partPlan:remove']"
- >鍒犻櫎</el-button>
+ <el-button
+ type="info"
+ plain
+ icon="Upload"
+ @click="handleImport"
+ v-hasPermi="['partPlan:import']"
+ >瀵煎叆</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@@ -301,198 +89,35 @@
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
- <el-table v-loading="loading" :data="planList" @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55" align="center" />
- <el-table-column label="涓昏鍒掑憳" align="center" prop="masterPlanner" />
- <el-table-column label="鍛ㄦ棩" align="center" prop="weekDay" width="180">
- <template #default="scope">
- <span>{{ parseTime(scope.row.weekDay, '{y}-{m}-{d}') }}</span>
- </template>
- </el-table-column>
- <el-table-column label="鍛ㄥ害" align="center" prop="weekCycle" />
- <el-table-column label="涓讳欢鏂欏彿" align="center" prop="mainPartNumber" />
- <el-table-column label="涓讳欢鍥惧彿" align="center" prop="mainPartDrawingNumber" />
- <el-table-column label="瀹㈡埛鍚嶇О" align="center" prop="customer" />
- <el-table-column label="涓氬姟绫诲瀷" align="center" prop="businessType" />
- <el-table-column label="鍗曟嵁鍙�" align="center" prop="documentNumber" />
- <el-table-column label="闇�姹傚垎绫�" align="center" prop="requirementType" />
- <el-table-column label="鍗曟嵁鐘舵��" align="center" prop="documentStatus" />
- <el-table-column label="鏂欏彿" align="center" prop="itemNumber" />
- <el-table-column label="鍥惧彿" align="center" prop="drawingNo" />
- <el-table-column label="鐗堟湰鍙�" align="center" prop="versionNumber" />
- <el-table-column label="鐢熶骇鏁伴噺" align="center" prop="productionQuantity" />
- <el-table-column label="鑹搧鏁伴噺" align="center" prop="goodProductsQuantity" />
- <el-table-column label="宸ュ簭鍙�" align="center" prop="processNumber" />
- <el-table-column label="宸ヤ綔涓績" align="center" prop="workCenter" />
- <el-table-column label="鎵�灞為儴闂�" align="center" prop="department" />
- <el-table-column label="璁″垝寮�宸ユ棩" align="center" prop="planStartDay" width="180">
- <template #default="scope">
- <span>{{ parseTime(scope.row.planStartDay, '{y}-{m}-{d}') }}</span>
- </template>
- </el-table-column>
- <el-table-column label="璁″垝瀹屽伐鏃�" align="center" prop="planEndDay" width="180">
- <template #default="scope">
- <span>{{ parseTime(scope.row.planEndDay, '{y}-{m}-{d}') }}</span>
- </template>
- </el-table-column>
- <el-table-column label="澶囨枡鏂欏彿" align="center" prop="standbyNumber" />
- <el-table-column label="澶囨枡鍚嶇О" align="center" prop="standbyName" />
- <el-table-column label="澶囨枡搴撳瓨" align="center" prop="standbyStock" />
- <el-table-column label="涓嬮亾宸ュ簭鎵�灞為儴闂�" align="center" prop="nextProcessDeparment" />
- <el-table-column label="鏄惁鎸傝捣" align="center" prop="isSuspended" />
- <el-table-column label="澶栧崗鏍囪瘑" align="center" prop="isOutsourcing" />
- <el-table-column label="璐﹀" align="center" prop="account" />
- <el-table-column label="涓婇樁鐗╂枡" align="center" prop="advancedMaterials" />
- <el-table-column label="涓婇樁鍗曟嵁鍙�" align="center" prop="advancedDocumentNumber" />
- <el-table-column label="涓婇樁闇�姹傛棩鏈�" align="center" prop="advancedRequirementDay" width="180">
- <template #default="scope">
- <span>{{ parseTime(scope.row.advancedRequirementDay, '{y}-{m}-{d}') }}</span>
- </template>
- </el-table-column>
- <el-table-column label="璁″垝榻愬" align="center" prop="isPlanComplete" />
- <el-table-column label="搴撳瓨榻愬" align="center" prop="isStockComplete" />
- <el-table-column label="鏄惁鏈夋姌杩斿伐搴�" align="center" prop="hasTurnback" />
- <el-table-column label="椋庨櫓鏍囪瘑" align="center" prop="hasRisk" />
- <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
- <template #default="scope">
- <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['partPlan:plan:edit']">淇敼</el-button>
- <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['partPlan:plan:remove']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
-
- <pagination
- v-show="total>0"
- :total="total"
- v-model:page="queryParams.pageNum"
- v-model:limit="queryParams.pageSize"
- @pagination="getList"
- />
+ <HxlhTable
+ style="width: 100%"
+ :columns="columns"
+ :data="planList"
+ :loading="loading"
+ :height="height"
+ @on-checkbox="handleCheckboxChange"
+ >
+ </HxlhTable>
- <!-- 娣诲姞鎴栦慨鏀归浂浠惰鍒掔鐞嗗璇濇 -->
- <el-dialog :title="title" v-model="open" width="500px" append-to-body>
- <el-form ref="planRef" :model="form" :rules="rules" label-width="80px">
- <el-form-item label="涓婚敭id" prop="id">
- <el-input v-model="form.id" placeholder="璇疯緭鍏ヤ富閿甶d" />
- </el-form-item>
- <el-form-item label="涓昏鍒掑憳" prop="masterPlanner">
- <el-input v-model="form.masterPlanner" placeholder="璇疯緭鍏ヤ富璁″垝鍛�" />
- </el-form-item>
- <el-form-item label="鍛ㄦ棩" prop="weekDay">
- <el-date-picker clearable
- v-model="form.weekDay"
- type="date"
- value-format="YYYY-MM-DD"
- placeholder="璇烽�夋嫨鍛ㄦ棩">
- </el-date-picker>
- </el-form-item>
- <el-form-item label="鍛ㄥ害" prop="weekCycle">
- <el-input v-model="form.weekCycle" placeholder="璇疯緭鍏ュ懆搴�" />
- </el-form-item>
- <el-form-item label="涓讳欢鏂欏彿" prop="mainPartNumber">
- <el-input v-model="form.mainPartNumber" placeholder="璇疯緭鍏ヤ富浠舵枡鍙�" />
- </el-form-item>
- <el-form-item label="涓讳欢鍥惧彿" prop="mainPartDrawingNumber">
- <el-input v-model="form.mainPartDrawingNumber" placeholder="璇疯緭鍏ヤ富浠跺浘鍙�" />
- </el-form-item>
- <el-form-item label="瀹㈡埛鍚嶇О" prop="customer">
- <el-input v-model="form.customer" placeholder="璇疯緭鍏ュ鎴峰悕绉�" />
- </el-form-item>
- <el-form-item label="鍗曟嵁鍙�" prop="documentNumber">
- <el-input v-model="form.documentNumber" placeholder="璇疯緭鍏ュ崟鎹彿" />
- </el-form-item>
- <el-form-item label="鏂欏彿" prop="itemNumber">
- <el-input v-model="form.itemNumber" placeholder="璇疯緭鍏ユ枡鍙�" />
- </el-form-item>
- <el-form-item label="鍥惧彿" prop="drawingNo">
- <el-input v-model="form.drawingNo" placeholder="璇疯緭鍏ュ浘鍙�" />
- </el-form-item>
- <el-form-item label="鐗堟湰鍙�" prop="versionNumber">
- <el-input v-model="form.versionNumber" placeholder="璇疯緭鍏ョ増鏈彿" />
- </el-form-item>
- <el-form-item label="鐢熶骇鏁伴噺" prop="productionQuantity">
- <el-input v-model="form.productionQuantity" placeholder="璇疯緭鍏ョ敓浜ф暟閲�" />
- </el-form-item>
- <el-form-item label="鑹搧鏁伴噺" prop="goodProductsQuantity">
- <el-input v-model="form.goodProductsQuantity" placeholder="璇疯緭鍏ヨ壇鍝佹暟閲�" />
- </el-form-item>
- <el-form-item label="宸ュ簭鍙�" prop="processNumber">
- <el-input v-model="form.processNumber" placeholder="璇疯緭鍏ュ伐搴忓彿" />
- </el-form-item>
- <el-form-item label="宸ヤ綔涓績" prop="workCenter">
- <el-input v-model="form.workCenter" placeholder="璇疯緭鍏ュ伐浣滀腑蹇�" />
- </el-form-item>
- <el-form-item label="鎵�灞為儴闂�" prop="department">
- <el-input v-model="form.department" placeholder="璇疯緭鍏ユ墍灞為儴闂�" />
- </el-form-item>
- <el-form-item label="璁″垝寮�宸ユ棩" prop="planStartDay">
- <el-date-picker clearable
- v-model="form.planStartDay"
- type="date"
- value-format="YYYY-MM-DD"
- placeholder="璇烽�夋嫨璁″垝寮�宸ユ棩">
- </el-date-picker>
- </el-form-item>
- <el-form-item label="璁″垝瀹屽伐鏃�" prop="planEndDay">
- <el-date-picker clearable
- v-model="form.planEndDay"
- type="date"
- value-format="YYYY-MM-DD"
- placeholder="璇烽�夋嫨璁″垝瀹屽伐鏃�">
- </el-date-picker>
- </el-form-item>
- <el-form-item label="澶囨枡鏂欏彿" prop="standbyNumber">
- <el-input v-model="form.standbyNumber" placeholder="璇疯緭鍏ュ鏂欐枡鍙�" />
- </el-form-item>
- <el-form-item label="澶囨枡鍚嶇О" prop="standbyName">
- <el-input v-model="form.standbyName" placeholder="璇疯緭鍏ュ鏂欏悕绉�" />
- </el-form-item>
- <el-form-item label="澶囨枡搴撳瓨" prop="standbyStock">
- <el-input v-model="form.standbyStock" placeholder="璇疯緭鍏ュ鏂欏簱瀛�" />
- </el-form-item>
- <el-form-item label="涓嬮亾宸ュ簭鎵�灞為儴闂�" prop="nextProcessDeparment">
- <el-input v-model="form.nextProcessDeparment" placeholder="璇疯緭鍏ヤ笅閬撳伐搴忔墍灞為儴闂�" />
- </el-form-item>
- <el-form-item label="鏄惁鎸傝捣" prop="isSuspended">
- <el-input v-model="form.isSuspended" placeholder="璇疯緭鍏ユ槸鍚︽寕璧�" />
- </el-form-item>
- <el-form-item label="澶栧崗鏍囪瘑" prop="isOutsourcing">
- <el-input v-model="form.isOutsourcing" placeholder="璇疯緭鍏ュ鍗忔爣璇�" />
- </el-form-item>
- <el-form-item label="璐﹀" prop="account">
- <el-input v-model="form.account" placeholder="璇疯緭鍏ヨ处濂�" />
- </el-form-item>
- <el-form-item label="涓婇樁鐗╂枡" prop="advancedMaterials">
- <el-input v-model="form.advancedMaterials" placeholder="璇疯緭鍏ヤ笂闃剁墿鏂�" />
- </el-form-item>
- <el-form-item label="涓婇樁鍗曟嵁鍙�" prop="advancedDocumentNumber">
- <el-input v-model="form.advancedDocumentNumber" placeholder="璇疯緭鍏ヤ笂闃跺崟鎹彿" />
- </el-form-item>
- <el-form-item label="涓婇樁闇�姹傛棩鏈�" prop="advancedRequirementDay">
- <el-date-picker clearable
- v-model="form.advancedRequirementDay"
- type="date"
- value-format="YYYY-MM-DD"
- placeholder="璇烽�夋嫨涓婇樁闇�姹傛棩鏈�">
- </el-date-picker>
- </el-form-item>
- <el-form-item label="璁″垝榻愬" prop="isPlanComplete">
- <el-input v-model="form.isPlanComplete" placeholder="璇疯緭鍏ヨ鍒掗綈濂�" />
- </el-form-item>
- <el-form-item label="搴撳瓨榻愬" prop="isStockComplete">
- <el-input v-model="form.isStockComplete" placeholder="璇疯緭鍏ュ簱瀛橀綈濂�" />
- </el-form-item>
- <el-form-item label="鏄惁鏈夋姌杩斿伐搴�" prop="hasTurnback">
- <el-input v-model="form.hasTurnback" placeholder="璇疯緭鍏ユ槸鍚︽湁鎶樿繑宸ュ簭" />
- </el-form-item>
- <el-form-item label="椋庨櫓鏍囪瘑" prop="hasRisk">
- <el-input v-model="form.hasRisk" placeholder="璇疯緭鍏ラ闄╂爣璇�" />
- </el-form-item>
- </el-form>
+ <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� -->
+ <el-dialog :title="upload.title" v-model="upload.open" width="400px" append-to-body>
+ <el-upload ref="uploadRef" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
+ <el-icon class="el-icon--upload"><upload-filled /></el-icon>
+ <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+ <template #tip>
+ <div class="el-upload__tip text-center">
+ <div class="el-upload__tip">
+ <el-checkbox v-model="upload.updateSupport" />鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
+ </div>
+ <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span>
+ <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline" @click="importTemplate">涓嬭浇妯℃澘</el-link>
+ </div>
+ </template>
+ </el-upload>
<template #footer>
<div class="dialog-footer">
- <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
- <el-button @click="cancel">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button>
+ <el-button @click="upload.open = false">鍙� 娑�</el-button>
</div>
</template>
</el-dialog>
@@ -501,69 +126,233 @@
<script setup name="Plan">
import { listPlan, getPlan, delPlan, addPlan, updatePlan } from "@/api/partPlan/plan";
+import HxlhTable from '@/components/HxlhTable'
+import { getToken } from "@/utils/auth";
const { proxy } = getCurrentInstance();
const planList = ref([]);
-const open = ref(false);
const loading = ref(true);
const showSearch = ref(true);
-const ids = ref([]);
const single = ref(true);
-const multiple = ref(true);
const total = ref(0);
-const title = ref("");
const daterangePlanStartDay = ref([]);
const daterangePlanEndDay = ref([]);
+const vxeTable = ref(null);
+const height = ref(document.documentElement.clientHeight - 260 + "px;")
+
+/*** 鐢ㄦ埛瀵煎叆鍙傛暟 */
+const upload = reactive({
+ // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
+ open: false,
+ // 寮瑰嚭灞傛爣棰橈紙鐢ㄦ埛瀵煎叆锛�
+ title: "",
+ // 鏄惁绂佺敤涓婁紶
+ isUploading: false,
+ // 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
+ updateSupport: 0,
+ // 璁剧疆涓婁紶鐨勮姹傚ご閮�
+ headers: { Authorization: "Bearer " + getToken() },
+ // 涓婁紶鐨勫湴鍧�
+ url: import.meta.env.VITE_APP_BASE_API + "/system/user/importData"
+});
+
+// 琛ㄦ牸閰嶇疆
+const columns = ref([
+ { type: 'checkbox', width: 60, align:"center"},
+ { type: 'seq', title: '搴忓彿', width: 60 },
+ {
+ title: '涓昏鍒掑憳',
+ field: 'masterPlanner',
+ width: 100,
+ },
+ {
+ title: '鍛ㄦ棩',
+ field: 'weekDay',
+ width: 100,
+ formatter: (({ cellValue, row, column }) => {
+ if (cellValue) {
+ const weekDay = new Date(cellValue);
+ const year = weekDay.getFullYear();
+ const month = String(weekDay.getMonth() + 1).padStart(2, '0');
+ const day = String(weekDay.getDate()).padStart(2, '0');
+ return `${month}-${day}`;
+ }
+ return '';
+ })
+ },
+ {
+ title: '鍛ㄥ害',
+ field: 'weekCycle',
+ width: 80,
+ },
+ {
+ title: '涓讳欢鏂欏彿',
+ field: 'mainPartNumber',
+ width: 150,
+ },
+ {
+ title: '涓讳欢鍥惧彿',
+ field: 'mainPartDrawingNumber',
+ width: 150,
+ },
+ {
+ title: '瀹㈡埛鍚嶇О',
+ field: 'customer',
+ width: 200,
+ },
+ {
+ title: '涓氬姟绫诲瀷',
+ field: 'businessType',
+ width: 100,
+ },
+ {
+ title: '鍗曟嵁鍙�',
+ field: 'documentNumber',
+ width: 100,
+ },
+ {
+ title: '闇�姹傚垎绫�',
+ field: 'requirementType',
+ width: 100,
+ },
+ {
+ title: '鍗曟嵁鐘舵��',
+ field: 'documentStatus',
+ width: 100,
+ },
+ {
+ title: '鏂欏彿',
+ field: 'itemNumber',
+ width: 100,
+ },
+ {
+ title: '鍥惧彿',
+ field: 'drawingNo',
+ width: 100,
+ },
+ {
+ title: '鐗堟湰鍙�',
+ field: 'versionNumber',
+ width: 100,
+ },
+ {
+ title: '鐢熶骇鏁伴噺',
+ field: 'productionQuantity',
+ width: 100,
+ },
+ {
+ title: '鑹搧鏁伴噺',
+ field: 'goodProductsQuantity',
+ width: 100,
+ },
+ {
+ title: '宸ュ簭鍙�',
+ field: 'processNumber',
+ width: 100,
+ },
+ {
+ title: '宸ヤ綔涓績',
+ field: 'workCenter',
+ width: 100,
+ },
+ {
+ title: '鎵�灞為儴闂�',
+ field: 'department',
+ width: 100,
+ },
+ {
+ title: '璁″垝寮�宸ユ棩',
+ field: 'planStartDay',
+ width: 100,
+ },
+ {
+ title: '璁″垝瀹屽伐鏃�',
+ field: 'planEndDay',
+ width: 100,
+ },
+ {
+ title: '澶囨枡鏂欏彿',
+ field: 'standbyNumber',
+ width: 100,
+ },
+ {
+ title: '澶囨枡鍚嶇О',
+ field: 'standbyName',
+ width: 100,
+ },
+ {
+ title: '澶囨枡搴撳瓨',
+ field: 'standbyStock',
+ width: 100,
+ },
+ {
+ title: '涓嬮亾宸ュ簭鎵�灞為儴闂�',
+ field: 'nextProcessDeparment',
+ width: 100,
+ },
+ {
+ title: '鏄惁鎸傝捣',
+ field: 'isSuspended',
+ width: 100,
+ },
+ {
+ title: '澶栧崗鏍囪瘑',
+ field: 'isOutsourcing',
+ width: 100,
+ },
+ {
+ title: '璐﹀',
+ field: 'account',
+ width: 100,
+ },
+ {
+ title: '涓婇樁鐗╂枡',
+ field: 'advancedMaterials',
+ width: 100,
+ },
+ {
+ title: '涓婇樁鍗曟嵁鍙�',
+ field: 'advancedDocumentNumber',
+ width: 100,
+ },
+ {
+ title: '涓婇樁闇�姹傛棩鏈�',
+ field: 'advancedRequirementDay',
+ width: 100,
+ },
+ {
+ title: '璁″垝榻愬',
+ field: 'isPlanComplete',
+ width: 100,
+ },
+ {
+ title: '搴撳瓨榻愬',
+ field: 'isStockComplete',
+ width: 100,
+ },
+ {
+ title: '鏄惁鏈夋姌杩斿伐搴�',
+ field: 'hasTurnback',
+ width: 100,
+ },
+ {
+ title: '椋庨櫓鏍囪瘑',
+ field: 'hasRisk',
+ width: 100,
+ },
+]);
const data = reactive({
- form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
- masterPlanner: null,
- weekDay: null,
- weekCycle: null,
- mainPartNumber: null,
- mainPartDrawingNumber: null,
- customer: null,
- businessType: null,
documentNumber: null,
- requirementType: null,
- documentStatus: null,
- itemNumber: null,
- drawingNo: null,
- versionNumber: null,
- productionQuantity: null,
- goodProductsQuantity: null,
- processNumber: null,
- workCenter: null,
- department: null,
- planStartDay: null,
- planEndDay: null,
- standbyNumber: null,
- standbyName: null,
- standbyStock: null,
- nextProcessDeparment: null,
- isSuspended: null,
- isOutsourcing: null,
- account: null,
- advancedMaterials: null,
- advancedDocumentNumber: null,
- advancedRequirementDay: null,
- isPlanComplete: null,
- isStockComplete: null,
- hasTurnback: null,
- hasRisk: null
- },
- rules: {
- // id: [
- // { required: true, message: "涓婚敭id涓嶈兘涓虹┖", trigger: "blur" }
- // ],
+ customer: null,
}
});
-const { queryParams, form, rules } = toRefs(data);
+const { queryParams } = toRefs(data);
/** 鏌ヨ闆朵欢璁″垝绠$悊鍒楄〃 */
function getList() {
@@ -584,54 +373,6 @@
});
}
-// 鍙栨秷鎸夐挳
-function cancel() {
- open.value = false;
- reset();
-}
-
-// 琛ㄥ崟閲嶇疆
-function reset() {
- form.value = {
- id: null,
- masterPlanner: null,
- weekDay: null,
- weekCycle: null,
- mainPartNumber: null,
- mainPartDrawingNumber: null,
- customer: null,
- businessType: null,
- documentNumber: null,
- requirementType: null,
- documentStatus: null,
- itemNumber: null,
- drawingNo: null,
- versionNumber: null,
- productionQuantity: null,
- goodProductsQuantity: null,
- processNumber: null,
- workCenter: null,
- department: null,
- planStartDay: null,
- planEndDay: null,
- standbyNumber: null,
- standbyName: null,
- standbyStock: null,
- nextProcessDeparment: null,
- isSuspended: null,
- isOutsourcing: null,
- account: null,
- advancedMaterials: null,
- advancedDocumentNumber: null,
- advancedRequirementDay: null,
- isPlanComplete: null,
- isStockComplete: null,
- hasTurnback: null,
- hasRisk: null
- };
- proxy.resetForm("planRef");
-}
-
/** 鎼滅储鎸夐挳鎿嶄綔 */
function handleQuery() {
queryParams.value.pageNum = 1;
@@ -647,61 +388,25 @@
}
// 澶氶�夋閫変腑鏁版嵁
-function handleSelectionChange(selection) {
- ids.value = selection.map(item => item.id);
- single.value = selection.length != 1;
- multiple.value = !selection.length;
+const handleCheckboxChange = (data) => {
+ console.log(data);
+};
+
+/** 鎵归噺淇敼璁″垝寮�宸ユ棩鎸夐挳鎿嶄綔 */
+function plannedStart(row) {
+
}
-/** 鏂板鎸夐挳鎿嶄綔 */
-function handleAdd() {
- reset();
- open.value = true;
- title.value = "娣诲姞闆朵欢璁″垝绠$悊";
+/** 鎵归噺淇敼璁″垝瀹屽伐鏃ユ寜閽搷浣� */
+function plannedEnd(row) {
+
}
-/** 淇敼鎸夐挳鎿嶄綔 */
-function handleUpdate(row) {
- reset();
- const _id = row.id || ids.value
- getPlan(_id).then(response => {
- form.value = response.data;
- open.value = true;
- title.value = "淇敼闆朵欢璁″垝绠$悊";
- });
-}
-
-/** 鎻愪氦鎸夐挳 */
-function submitForm() {
- proxy.$refs["planRef"].validate(valid => {
- if (valid) {
- if (form.value.id != null) {
- updatePlan(form.value).then(response => {
- proxy.$modal.msgSuccess("淇敼鎴愬姛");
- open.value = false;
- getList();
- });
- } else {
- addPlan(form.value).then(response => {
- proxy.$modal.msgSuccess("鏂板鎴愬姛");
- open.value = false;
- getList();
- });
- }
- }
- });
-}
-
-/** 鍒犻櫎鎸夐挳鎿嶄綔 */
-function handleDelete(row) {
- const _ids = row.id || ids.value;
- proxy.$modal.confirm('鏄惁纭鍒犻櫎闆朵欢璁″垝绠$悊缂栧彿涓�"' + _ids + '"鐨勬暟鎹」锛�').then(function() {
- return delPlan(_ids);
- }).then(() => {
- getList();
- proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
- }).catch(() => {});
-}
+/** 瀵煎叆鎸夐挳鎿嶄綔 */
+function handleImport() {
+ upload.title = "瀵煎叆";
+ upload.open = true;
+};
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
function handleExport() {
--
Gitblit v1.9.3