From 6bad8be662c28c8bece14483d6741e4e50f89a0c Mon Sep 17 00:00:00 2001 From: songguoqiang <765017469@qq.com> Date: Wed, 19 Jun 2024 13:18:50 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E6=9C=88=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/basedata/monthPlan/index.ts | 51 ++++ src/utils/dict.ts | 4 +- src/utils/formatTime.ts | 7 + src/views/basedata/monthPlan/index.vue | 232 ++++++++++++++++++ .../basedata/monthPlan/monthPlan.data.ts | 121 +++++++++ 5 files changed, 414 insertions(+), 1 deletion(-) create mode 100644 src/api/basedata/monthPlan/index.ts create mode 100644 src/views/basedata/monthPlan/index.vue create mode 100644 src/views/basedata/monthPlan/monthPlan.data.ts diff --git a/src/api/basedata/monthPlan/index.ts b/src/api/basedata/monthPlan/index.ts new file mode 100644 index 0000000..cda9876 --- /dev/null +++ b/src/api/basedata/monthPlan/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +export interface MonthPlanVO { + id: number + workshop: string + years: localdate + planNum: number + completeNum: number + available: string +} + +// 查询生产月计划管理列表 +export const getMonthPlanPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/pszc/month-plan/senior', data }) + } else { + return await request.get({ url: `/pszc/month-plan/page`, params }) + } +} + +// 查询生产月计划管理详情 +export const getMonthPlan = async (id: number) => { + return await request.get({ url: `/pszc/month-plan/get?id=` + id }) +} + +// 新增生产月计划管理 +export const createMonthPlan = async (data: MonthPlanVO) => { + return await request.post({ url: `/pszc/month-plan/create`, data }) +} + +// 修改生产月计划管理 +export const updateMonthPlan = async (data: MonthPlanVO) => { + return await request.put({ url: `/pszc/month-plan/update`, data }) +} + +// 删除生产月计划管理 +export const deleteMonthPlan = async (id: number) => { + return await request.delete({ url: `/pszc/month-plan/delete?id=` + id }) +} + +// 导出生产月计划管理 Excel +export const exportMonthPlan = async (params) => { + return await request.download({ url: `/pszc/month-plan/export-excel`, params }) +} + +// 下载导入模板 +export const importTemplate = () => { + return request.download({ url: '/pszc/month-plan/get-import-template' }) +} \ No newline at end of file diff --git a/src/utils/dict.ts b/src/utils/dict.ts index cdd5072..b84cf5c 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -206,5 +206,7 @@ export enum DICT_TYPE { LAB_OPR_TYPE = 'lab_opr_type', // ========== 统计报表能耗单位字典 ============ -ENERGY_CONSUMPTION_TYPE = 'energy_consumption_type' +ENERGY_CONSUMPTION_TYPE = 'energy_consumption_type', +//==================生产月计划车间字段================ +MONTH_PLAN_WORKSHOP = 'month_plan_workshop' } diff --git a/src/utils/formatTime.ts b/src/utils/formatTime.ts index e2b0e59..29ff3fd 100644 --- a/src/utils/formatTime.ts +++ b/src/utils/formatTime.ts @@ -180,6 +180,13 @@ export const dateFormatter2 = (row, column, cellValue) => { return formatDate(cellValue, 'YYYY-MM-DD') } +export const dateFormatter3 = (row, column, cellValue) => { + if (!cellValue) { + return + } + return formatDate(cellValue, 'YYYY-MM') +} + /** * 设置起始日期,时间为00:00:00 * @param param 传入日期 diff --git a/src/views/basedata/monthPlan/index.vue b/src/views/basedata/monthPlan/index.vue new file mode 100644 index 0000000..f1aa742 --- /dev/null +++ b/src/views/basedata/monthPlan/index.vue @@ -0,0 +1,232 @@ + + + diff --git a/src/views/basedata/monthPlan/monthPlan.data.ts b/src/views/basedata/monthPlan/monthPlan.data.ts new file mode 100644 index 0000000..9099f4a --- /dev/null +++ b/src/views/basedata/monthPlan/monthPlan.data.ts @@ -0,0 +1,121 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter3 } from '@/utils/formatTime' +import { getStrDictOptions } from '@/utils/dict' +const typeList = getStrDictOptions(DICT_TYPE.MONTH_PLAN_WORKSHOP)//生产计划字典 +console.log('typeList',typeList) +// 表单校验 +export const MonthPlanRules = reactive({ + workshop: [required], + years: [required], + // planNum: [required], + // completeNum: [required], + // available: [required] +}) + +export const MonthPlan = useCrudSchemas(reactive([ + // { + // label: '主键、自增', + // field: 'id', + // sort: 'custom', + // isTable: false, + // isForm: false + // }, + { + label: '车间', + field: 'workshop', + sort: 'custom', + isSearch: true, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return typeList.find((obj) => obj.value === cellValue)?.label + }, + search: { + show: true, + component: 'Select', + componentProps: { + options: typeList, + optionsAlias: { + labelField: 'label', + valueField: 'value' + }, + } + }, + form:{ + component: 'Select', + componentProps: { + options: typeList, + optionsAlias: { + labelField: 'label', + valueField: 'value' + }, + } + } + }, + { + label: '年月', + field: 'years', + sort: 'custom', + formatter: dateFormatter3, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + type: 'month', + valueFormat: 'x' + //defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'month', + valueFormat: 'x' + } + } + }, + { + label: '计划数', + field: 'planNum', + sort: 'custom', + form:{ + component:'InputNumber', + componentProps:{ + min:0, + precision:2 + } + } + }, + { + label: '完成数', + field: 'completeNum', + sort: 'custom', + form:{ + component:'InputNumber', + componentProps:{ + min:0, + precision:2 + } + } + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isForm: false + }, + // { + // label: '是否可用', + // field: 'available', + // sort: 'custom', + // isSearch: true + // }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +]))