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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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'
+ }
+ }
+]))