From 1c15ef9287dced4bbde0c5e88b91eec2d375382c Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期一, 21 四月 2025 18:01:10 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/views/basicData/materialManagement/index.vue | 1 src/api/basicData/processCapacityManagement/processCapacityManagement.js | 44 ++++ src/components/HxlhTable/index.vue | 9 src/views/basicData/apsShop/index.vue | 3 src/views/basicData/apsPlant/index.vue | 4 src/views/basicData/processCapacityManagement/index.vue | 257 +++++++++++++++++++++++ src/views/basicData/materialStorageManagement/index.vue | 3 src/views/basicData/professionalFixedCycleManagement/index.vue | 270 ++++++++++++++++++++++++ src/api/basicData/professionalFixedCycleManagement/professionalFixedCycleManagement.js | 44 ++++ 9 files changed, 627 insertions(+), 8 deletions(-) diff --git a/src/api/basicData/processCapacityManagement/processCapacityManagement.js b/src/api/basicData/processCapacityManagement/processCapacityManagement.js new file mode 100644 index 0000000..8eed92f --- /dev/null +++ b/src/api/basicData/processCapacityManagement/processCapacityManagement.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 鏌ヨ宸ュ簭绾т骇鑳芥暟鎹鐞嗗垪琛� +export function listProcessCapacityManagement(query) { + return request({ + url: '/aps/processCapacityManagement/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ宸ュ簭绾т骇鑳芥暟鎹鐞嗚缁� +export function getProcessCapacityManagement(id) { + return request({ + url: '/processCapacityManagement/processCapacityManagement/' + id, + method: 'get' + }) +} + +// 鏂板宸ュ簭绾т骇鑳芥暟鎹鐞� +export function addProcessCapacityManagement(data) { + return request({ + url: '/processCapacityManagement/processCapacityManagement', + method: 'post', + data: data + }) +} + +// 淇敼宸ュ簭绾т骇鑳芥暟鎹鐞� +export function updateProcessCapacityManagement(data) { + return request({ + url: '/processCapacityManagement/processCapacityManagement', + method: 'put', + data: data + }) +} + +// 鍒犻櫎宸ュ簭绾т骇鑳芥暟鎹鐞� +export function delProcessCapacityManagement(id) { + return request({ + url: '/processCapacityManagement/processCapacityManagement/' + id, + method: 'delete' + }) +} diff --git a/src/api/basicData/professionalFixedCycleManagement/professionalFixedCycleManagement.js b/src/api/basicData/professionalFixedCycleManagement/professionalFixedCycleManagement.js new file mode 100644 index 0000000..132eec8 --- /dev/null +++ b/src/api/basicData/professionalFixedCycleManagement/professionalFixedCycleManagement.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 鏌ヨ涓撲笟鍥哄畾鍛ㄦ湡绠$悊鍒楄〃 +export function listProfessionalFixedCycleManagement(query) { + return request({ + url: '/aps/professionalFixedCycleManagement/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ涓撲笟鍥哄畾鍛ㄦ湡绠$悊璇︾粏 +export function getProfessionalFixedCycleManagement(id) { + return request({ + url: '/basicData/professionalFixedCycleManagement/' + id, + method: 'get' + }) +} + +// 鏂板涓撲笟鍥哄畾鍛ㄦ湡绠$悊 +export function addProfessionalFixedCycleManagement(data) { + return request({ + url: '/basicData/professionalFixedCycleManagement', + method: 'post', + data: data + }) +} + +// 淇敼涓撲笟鍥哄畾鍛ㄦ湡绠$悊 +export function updateProfessionalFixedCycleManagement(data) { + return request({ + url: '/basicData/professionalFixedCycleManagement', + method: 'put', + data: data + }) +} + +// 鍒犻櫎涓撲笟鍥哄畾鍛ㄦ湡绠$悊 +export function delProfessionalFixedCycleManagement(id) { + return request({ + url: '/basicData/professionalFixedCycleManagement/' + id, + method: 'delete' + }) +} diff --git a/src/components/HxlhTable/index.vue b/src/components/HxlhTable/index.vue index 720f93c..a38c90f 100644 --- a/src/components/HxlhTable/index.vue +++ b/src/components/HxlhTable/index.vue @@ -36,9 +36,12 @@ <template v-slot:buttons="row"> <slot name="buttons" v-bind="row"/> </template> - <template #expandContent="{ row }"> - <vxe-grid v-bind="subGridOptions" :data="row.subList"> - </vxe-grid> + <template #expandContent="{ row }"> + <vxe-grid v-bind="subGridOptions" :data="row.subList"> + </vxe-grid> + </template> + <template v-slot:status="row" > + <slot name="status" v-bind="row"/> </template> </vxe-grid> </div> diff --git a/src/views/basicData/apsPlant/index.vue b/src/views/basicData/apsPlant/index.vue index 4c2bdbc..f1cc89a 100644 --- a/src/views/basicData/apsPlant/index.vue +++ b/src/views/basicData/apsPlant/index.vue @@ -67,7 +67,7 @@ <el-input v-model="form.plantName" placeholder="璇疯緭鍏ュ伐鍘傚悕绉�" /> </el-form-item> <el-form-item label="宸ュ巶缂栫爜" prop="plantCode"> - <el-input v-model="form.plantCode" placeholder="璇疯緭鍏ュ伐鍘傜紪鐮�" :disabled=disabled /> + <el-input v-model="form.plantCode" placeholder="璇疯緭鍏ュ伐鍘傜紪鐮�" :disabled=disabled /> </el-form-item> <el-form-item label="鍚敤鐘舵��" prop="status"> <el-radio-group v-model="form.status"> @@ -106,7 +106,6 @@ const ids = ref([]); const single = ref(true); const multiple = ref(true); -const total = ref(0); const title = ref(""); const disabled = ref(false); const data = reactive({ @@ -246,6 +245,7 @@ /** 鎼滅储鎸夐挳鎿嶄綔 */ function handleQuery() { + page.value.current = 1; queryParams.value.pageNum = 1; getList(); } diff --git a/src/views/basicData/apsShop/index.vue b/src/views/basicData/apsShop/index.vue index 582f57c..f121dbd 100644 --- a/src/views/basicData/apsShop/index.vue +++ b/src/views/basicData/apsShop/index.vue @@ -264,6 +264,7 @@ /** 鎼滅储鎸夐挳鎿嶄綔 */ function handleQuery() { + page.value.current = 1; queryParams.value.pageNum = 1; getList(); } @@ -419,8 +420,8 @@ }); function changePageNo(currentPage) { - queryParams.value.pageNum = currentPage; page.value.current = currentPage; + queryParams.value.pageNum = currentPage; getList(); } diff --git a/src/views/basicData/materialManagement/index.vue b/src/views/basicData/materialManagement/index.vue index 95ef9f4..b3f78d3 100644 --- a/src/views/basicData/materialManagement/index.vue +++ b/src/views/basicData/materialManagement/index.vue @@ -96,7 +96,6 @@ formatter: (({ cellValue, row, column }) => { if (cellValue) { for(let i=0;i<aps_material_status.value.length;i++){ - if(cellValue===aps_material_status.value[i].value){ return aps_material_status.value[i].label } diff --git a/src/views/basicData/materialStorageManagement/index.vue b/src/views/basicData/materialStorageManagement/index.vue index a9aef38..2f5fefb 100644 --- a/src/views/basicData/materialStorageManagement/index.vue +++ b/src/views/basicData/materialStorageManagement/index.vue @@ -159,6 +159,7 @@ /** 鎼滅储鎸夐挳鎿嶄綔 */ function handleQuery() { page.value.current = 1; + queryParams.value.pageNum = 1; getList(); } @@ -233,8 +234,8 @@ } function changePageNo(currentPage) { - queryParams.value.pageNum = currentPage; page.value.current = currentPage; + queryParams.value.pageNum = currentPage; getList(); } diff --git a/src/views/basicData/processCapacityManagement/index.vue b/src/views/basicData/processCapacityManagement/index.vue new file mode 100644 index 0000000..f0a7355 --- /dev/null +++ b/src/views/basicData/processCapacityManagement/index.vue @@ -0,0 +1,257 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryRef" :rules="rules" :inline="true" v-show="showSearch" label-width="68px"> + <el-row :gutter="20"> + <el-col :span="6"> + <el-form-item label="鏂欏彿" prop="itemNumber"> + <el-input + v-model="queryParams.itemNumber" + placeholder="璇疯緭鍏ユ枡鍙�" + clearable + @keyup.enter="handleQuery" + /> + </el-form-item> + </el-col> + <el-col :span="18" style="text-align: right;"> + <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-col> + </el-row> + </el-form> + + <el-row :gutter="10" class="mb8"> + <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <HxlhTable + style="width: 100%" + :columns="columns" + :data="processCapacityManagementList" + :loading="loading" + :height="height" + :page="page" + @on-checkbox="handleCheckboxChange" + @changePageNo="changePageNo" + @changePageSize="changePageSize" + > + <template #status="{row}" > + <vxe-tag v-if = "row.capacityType === '0'" status="success">鏍囧噯宸ユ椂</vxe-tag> + <vxe-tag v-if = "row.capacityType === '1'" status="primary">鍥哄畾鍛ㄦ湡</vxe-tag> + </template> + </HxlhTable> + </div> +</template> + +<script setup name="ProcessCapacityManagement"> +import { listProcessCapacityManagement, getProcessCapacityManagement, delProcessCapacityManagement, addProcessCapacityManagement, updateProcessCapacityManagement } from "@/api/basicData/processCapacityManagement/processCapacityManagement"; +import HxlhTable from '@/components/HxlhTable' + +const { proxy } = getCurrentInstance(); + +const processCapacityManagementList = ref([]); +const open = ref(false); +const loading = ref(false); +const showSearch = ref(true); +const ids = ref([]); +const single = ref(true); +const multiple = ref(true); +const title = ref(""); +const height = ref(document.documentElement.clientHeight - 230 + "px;") +const { aps_capacity_type } = proxy.useDict('aps_capacity_type');//浜ц兘绫诲瀷 + +// 鍒嗛〉灞炴�� +const page = ref({ + total: 0, + current: 1, + size: 10 +}); + +const data = reactive({ + form: {}, + queryParams: { + pageNum: 1, + pageSize: 10, + itemNumber: null, + }, + rules: { + itemNumber: [ + { required: true, message: "鏂欏彿涓嶈兘涓虹┖", trigger: "blur" } + ], + } +}); + +// 琛ㄦ牸閰嶇疆 +const columns = ref([ + { type: 'seq', title: '搴忓彿', width: 60 }, + { + title: '鏂欏彿', + field: 'itemNumber', + }, + { + title: '浜ц兘绫诲瀷', + field: 'capacityType', + slots: { default: 'status' }, + /* formatter: (({ cellValue, row, column }) => { + if (cellValue) { + for(let i=0;i<aps_capacity_type.value.length;i++){ + if(cellValue===aps_capacity_type.value[i].value){ + return aps_capacity_type.value[i].label + } + } + } + return ''; + }) */ + }, + { + title: '宸ュ簭鍚嶇О', + field: 'processName', + }, + { + title: '宸ヨ壓璺嚎ID', + field: 'processRouteId', + }, + { + title: '宸ユ椂', + field: 'workTime', + }, + { + title: '鐢熸晥鏃ユ湡', + field: 'effectiveDate', + }, + { + title: '澶辨晥鏃ユ湡', + field: 'expiringDate', + }, + { + title: '闆嗘垚鏃ユ湡', + field: 'integrationDate', + }, +]); + +const { queryParams, form, rules } = toRefs(data); + +/** 鏌ヨ宸ュ簭绾т骇鑳芥暟鎹鐞嗗垪琛� */ +function getList() { + loading.value = true; + listProcessCapacityManagement(queryParams.value).then(response => { + processCapacityManagementList.value = response.rows; + page.value.total = response.total; + loading.value = false; + }); +} + +// 鍙栨秷鎸夐挳 +function cancel() { + open.value = false; + reset(); +} + +// 琛ㄥ崟閲嶇疆 +function reset() { + form.value = { + id: null, + itemNumber: null, + capacityType: null, + processNumber: null, + processName: null, + processRouteId: null, + workTime: null, + effectiveDate: null, + expiringDate: null, + integrationDate: null, + createBy: null, + createTime: null, + updateBy: null, + updateTime: null + }; + proxy.resetForm("processCapacityManagementRef"); +} + +/** 鎼滅储鎸夐挳鎿嶄綔 */ +function handleQuery() { + proxy.$refs["queryRef"].validate(valid => { + if (valid) { + page.value.current = 1; + queryParams.value.pageNum = 1; + getList(); + } + }); +} + +/** 閲嶇疆鎸夐挳鎿嶄綔 */ +function resetQuery() { + proxy.resetForm("queryRef"); + processCapacityManagementList.value = null; + page.value.total = 0; + page.value.current = 1; + queryParams.value.pageNum = 1; + // handleQuery(); +} + +/** 淇敼鎸夐挳鎿嶄綔 */ +function handleUpdate(row) { + reset(); + const _id = row.id || ids.value + getProcessCapacityManagement(_id).then(response => { + form.value = response.data; + open.value = true; + title.value = "淇敼宸ュ簭绾т骇鑳芥暟鎹鐞�"; + }); +} + +/** 鎻愪氦鎸夐挳 */ +function submitForm() { + proxy.$refs["processCapacityManagementRef"].validate(valid => { + if (valid) { + if (form.value.id != null) { + updateProcessCapacityManagement(form.value).then(response => { + proxy.$modal.msgSuccess("淇敼鎴愬姛"); + open.value = false; + getList(); + }); + } else { + addProcessCapacityManagement(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 delProcessCapacityManagement(_ids); + }).then(() => { + getList(); + proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); +} + +/** 瀵煎嚭鎸夐挳鎿嶄綔 */ +function handleExport() { + proxy.download('processCapacityManagement/processCapacityManagement/export', { + ...queryParams.value + }, `processCapacityManagement_${new Date().getTime()}.xlsx`) +} + +function changePageNo(currentPage) { + page.value.current = currentPage; + queryParams.value.pageNum = currentPage; + getList(); +} + +function changePageSize(pageSize) { + page.value.current = 1; + queryParams.value.pageNum = 1; + queryParams.value.pageSize = pageSize; + getList(); +} + +// getList(); +</script> diff --git a/src/views/basicData/professionalFixedCycleManagement/index.vue b/src/views/basicData/professionalFixedCycleManagement/index.vue new file mode 100644 index 0000000..88459db --- /dev/null +++ b/src/views/basicData/professionalFixedCycleManagement/index.vue @@ -0,0 +1,270 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px"> + <el-row :gutter="20"> + <el-col :span="6"> + <el-form-item label="鏂欏彿" prop="itemNumber"> + <el-input + v-model="queryParams.itemNumber" + placeholder="璇疯緭鍏ユ枡鍙�" + clearable + @keyup.enter="handleQuery" + /> + </el-form-item> + </el-col> + <el-col :span="18" style="text-align: right;"> + <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-col> + </el-row> + </el-form> + + <el-row :gutter="10" class="mb8"> + <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <HxlhTable + style="width: 100%" + :columns="columns" + :data="professionalFixedCycleManagementList" + :loading="loading" + :height="height" + :page="page" + @changePageNo="changePageNo" + @changePageSize="changePageSize" + > + </HxlhTable> + + <!-- 娣诲姞鎴栦慨鏀逛笓涓氬浐瀹氬懆鏈熺鐞嗗璇濇 --> + <el-dialog :title="title" v-model="open" width="500px" append-to-body> + <el-form ref="professionalFixedCycleManagementRef" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="鏂欏彿" prop="itemNumber"> + <el-input v-model="form.itemNumber" placeholder="璇疯緭鍏ユ枡鍙�" /> + </el-form-item> + </el-form> + <template #footer> + <div class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </template> + </el-dialog> + </div> +</template> + +<script setup name="ProfessionalFixedCycleManagement"> +import { listProfessionalFixedCycleManagement, getProfessionalFixedCycleManagement, delProfessionalFixedCycleManagement, addProfessionalFixedCycleManagement, updateProfessionalFixedCycleManagement } from "@/api/basicData/professionalFixedCycleManagement/professionalFixedCycleManagement"; +import HxlhTable from '@/components/HxlhTable'; +import axios from 'axios'; +import { listAll_plant } from "@/api/basicData/plant"; + +const { proxy } = getCurrentInstance(); + +const professionalFixedCycleManagementList = 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 title = ref(""); +const height = ref(document.documentElement.clientHeight - 230 + "px;") +const queryPlants = ref({status: 1}); +const plantList = ref([]); + +const data = reactive({ + form: {}, + queryParams: { + pageNum: 1, + pageSize: 10, + itemNumber: null, + }, + rules: { + } +}); + +// 琛ㄦ牸閰嶇疆 +const columns = ref([ + { type: 'seq', title: '搴忓彿', width: 60 }, + { + title: '鏂欏彿', + field: 'itemNumber', + }, + { + title: '涓撲笟鎻忚堪', + field: 'professionalDescription', + }, + { + title: '涓撲笟', + field: 'professional', + }, + { + title: '涓撲笟鍥哄畾鍛ㄦ湡', + field: 'professionalFixedCycle', + }, + { + title: '闆嗘垚鏃ユ湡', + field: 'integrationDate', + }, + { + title: '閫傜敤宸ュ巶', + field: 'applicableFactories', + formatter: (({ cellValue, row, column }) => { + if (cellValue) { + for(let i=0;i<plantList.value.length;i++){ + if(cellValue===plantList.value[i].plantCode){ + return plantList.value[i].plantName + } + } + } + return ''; + }) + }, +]); + +// 鍒嗛〉灞炴�� +const page = ref({ + total: 0, + current: 1, + size: 10 +}); + +const { queryParams, form, rules } = toRefs(data); + +/** 鏌ヨ涓撲笟鍥哄畾鍛ㄦ湡绠$悊鍒楄〃 */ +function getList() { + loading.value = true; + axios.all([ + /** 鏌ヨ宸ュ巶鍒楄〃 */ + listAll_plant(queryPlants.value), + listProfessionalFixedCycleManagement(queryParams.value) + ]) + .then(axios.spread((response1, response2) => { + plantList.value = response1.data; + professionalFixedCycleManagementList.value = response2.rows; + page.value.total = response2.total; + loading.value = false; + })) + .catch(error => { + console.error('璇锋眰鍑洪敊:', error); + }); +} + +// 鍙栨秷鎸夐挳 +function cancel() { + open.value = false; + reset(); +} + +// 琛ㄥ崟閲嶇疆 +function reset() { + form.value = { + id: null, + itemNumber: null, + professionalDescription: null, + professional: null, + professionalFixedCycle: null, + integrationDate: null, + applicableFactories: null, + createBy: null, + createTime: null, + updateBy: null, + updateTime: null + }; + proxy.resetForm("professionalFixedCycleManagementRef"); +} + +/** 鎼滅储鎸夐挳鎿嶄綔 */ +function handleQuery() { + page.value.current = 1; + queryParams.value.pageNum = 1; + getList(); +} + +/** 閲嶇疆鎸夐挳鎿嶄綔 */ +function resetQuery() { + proxy.resetForm("queryRef"); + handleQuery(); +} + +// 澶氶�夋閫変腑鏁版嵁 +function handleSelectionChange(selection) { + ids.value = selection.map(item => item.id); + single.value = selection.length != 1; + multiple.value = !selection.length; +} + +/** 鏂板鎸夐挳鎿嶄綔 */ +function handleAdd() { + reset(); + open.value = true; + title.value = "娣诲姞涓撲笟鍥哄畾鍛ㄦ湡绠$悊"; +} + +/** 淇敼鎸夐挳鎿嶄綔 */ +function handleUpdate(row) { + reset(); + const _id = row.id || ids.value + getProfessionalFixedCycleManagement(_id).then(response => { + form.value = response.data; + open.value = true; + title.value = "淇敼涓撲笟鍥哄畾鍛ㄦ湡绠$悊"; + }); +} + +/** 鎻愪氦鎸夐挳 */ +function submitForm() { + proxy.$refs["professionalFixedCycleManagementRef"].validate(valid => { + if (valid) { + if (form.value.id != null) { + updateProfessionalFixedCycleManagement(form.value).then(response => { + proxy.$modal.msgSuccess("淇敼鎴愬姛"); + open.value = false; + getList(); + }); + } else { + addProfessionalFixedCycleManagement(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 delProfessionalFixedCycleManagement(_ids); + }).then(() => { + getList(); + proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); +} + +/** 瀵煎嚭鎸夐挳鎿嶄綔 */ +function handleExport() { + proxy.download('basicData/professionalFixedCycleManagement/export', { + ...queryParams.value + }, `professionalFixedCycleManagement_${new Date().getTime()}.xlsx`) +} + +function changePageNo(currentPage) { + page.value.current = currentPage; + queryParams.value.pageNum = currentPage; + getList(); +} + +function changePageSize(pageSize) { + page.value.current = 1; + queryParams.value.pageNum = 1; + queryParams.value.pageSize = pageSize; + getList(); +} + +getList(); +</script> -- Gitblit v1.9.3