Browse Source

Merge branch 'master_hella' of http://dev.ccwin-in.com:3000/sfms3.0/sfms3.0-ui into master_hella

master_hella_20240701
ljlong_2630 7 months ago
parent
commit
db9c639d64
  1. 3
      .env.development
  2. 3
      .env.hella13
  3. 3
      .env.hella14
  4. 3
      .env.hella15
  5. 3
      .env.hella16
  6. 4
      .env.hella8
  7. 3
      .env.hella9
  8. 3
      .env.test
  9. 4
      .env.test-scp
  10. 7
      .env.wyf
  11. 3
      README.md
  12. 6
      src/api/eam/basicDocumentType/index.ts
  13. 6
      src/api/eam/basicFaultCause/index.ts
  14. 6
      src/api/eam/basicFaultType/index.ts
  15. 64
      src/api/eam/basicInspectionOption/index.ts
  16. 64
      src/api/eam/basicMaintenanceOption/index.ts
  17. 6
      src/api/eam/equipmentMainPart/index.ts
  18. 69
      src/api/wms/containerMainRequest/index.ts
  19. 58
      src/api/wms/qadproductionplan/index.ts
  20. 2
      src/components/TableForm/src/TableForm.vue
  21. 4
      src/views/eam/basicDocumentType/basicDocumentType.data.ts
  22. 59
      src/views/eam/basicDocumentType/index.vue
  23. 4
      src/views/eam/basicFaultCause/basicFaultCause.data.ts
  24. 55
      src/views/eam/basicFaultCause/index.vue
  25. 4
      src/views/eam/basicFaultType/basicFaultType.data.ts
  26. 56
      src/views/eam/basicFaultType/index.vue
  27. 169
      src/views/eam/basicInspectionOption/basicInspectionOption.data.ts
  28. 290
      src/views/eam/basicInspectionOption/index.vue
  29. 171
      src/views/eam/basicMaintenanceOption/basicMaintenanceOption.data.ts
  30. 291
      src/views/eam/basicMaintenanceOption/index.vue
  31. 4
      src/views/eam/equipmentMainPart/equipmentMainPart.data.ts
  32. 58
      src/views/eam/equipmentMainPart/index.vue
  33. 15
      src/views/login/components/LoginForm.vue
  34. 13
      src/views/login/components/MobileForm.vue
  35. 2
      src/views/mes/abilityInfo/abilityInfo.data.ts
  36. 75
      src/views/mes/holidayCalendar/index.vue
  37. 2
      src/views/mes/hrPersonAbility/hrPersonAbility.data.ts
  38. 8
      src/views/mes/jobcalendar/index.vue
  39. 12
      src/views/mes/orderDay/orderDay.data.ts
  40. 2
      src/views/mes/patternType/patternType.data.ts
  41. 6
      src/views/mes/processroute/processroute.data.ts
  42. 2
      src/views/mes/workScheduling/components/reportAll.vue
  43. 6
      src/views/mes/workcalendar/index.vue
  44. 27
      src/views/qms/inspectionJob/addForm.vue
  45. 24
      src/views/wms/agvManage/interfaceInfo/index.vue
  46. 2
      src/views/wms/basicDataManage/itemManage/itemarea/index.vue
  47. 1
      src/views/wms/basicDataManage/itemManage/relegateRequest/relegateRequest.data.ts
  48. 3
      src/views/wms/deliversettlementManage/deliver/deliverRequestMain/index.vue
  49. 2
      src/views/wms/deliversettlementManage/deliverplan/deliverPlanMain/index.vue
  50. 2
      src/views/wms/deliversettlementManage/stockup/stockupMainRequest/index.vue
  51. 16
      src/views/wms/inventoryjobManage/containermanage/containerMainRequest/containerMainRequest.data.ts
  52. 15
      src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue
  53. 16
      src/views/wms/inventoryjobManage/containermanage/containerRecordMain/containerRecordMain.data.ts
  54. 8
      src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/index.vue
  55. 16
      src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/initialContainerMainRequest.data.ts
  56. 6
      src/views/wms/inventoryjobManage/containermanage/scrapContainerMainRequest/index.vue
  57. 16
      src/views/wms/inventoryjobManage/containermanage/scrapContainerMainRequest/scrapContainerMainRequest.data.ts
  58. 75
      src/views/wms/issueManage/productionreturn/productionreturnRequestMain/index.vue
  59. 54
      src/views/wms/issueManage/productionreturn/productionreturnRequestMain/productionreturnRequestMain.data.ts
  60. 12
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMain/index.vue
  61. 244
      src/views/wms/productionManage/productionplan/qadproductionplan/index.vue
  62. 119
      src/views/wms/productionManage/productionplan/qadproductionplan/qadProductionPlanMain.data.ts
  63. 4
      src/views/wms/productionManage/productputaway/productputawayRequestMain/index.vue
  64. 10
      src/views/wms/productionManage/productputaway/productputawayRequestMain/productputawayRequestMain.data.ts
  65. 2
      src/views/wms/productionManage/productredress/productredressRequestMain/index.vue
  66. 45
      src/views/wms/productionManage/productredress/productredressRequestMain/productredressRequestMain.data.ts
  67. 40
      src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/index.vue
  68. 2
      src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue
  69. 1
      src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/purchaseMain.data.ts
  70. 7
      src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue
  71. 1
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverBasicForm.vue
  72. 2
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data.ts
  73. 1
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/index.vue

3
.env.development

@ -35,3 +35,6 @@ VITE_INTERFACE_URL='http://localhost:12080/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://localhost:12080'
# 租户配置
VITE_TENANT='["长春","成都"]'

3
.env.hella13

@ -35,3 +35,6 @@ VITE_INTERFACE_URL='http://172.21.32.13:90/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.21.32.13:90'
# 租户配置
VITE_TENANT='["长春"]'

3
.env.hella14

@ -35,3 +35,6 @@ VITE_INTERFACE_URL='http://172.21.32.14:90/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.21.32.14:90'
# 租户配置
VITE_TENANT='["长春"]'

3
.env.hella15

@ -35,3 +35,6 @@ VITE_INTERFACE_URL='http://172.21.32.15:90/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.21.32.15:90'
# 租户配置
VITE_TENANT='["长春"]'

3
.env.hella16

@ -35,3 +35,6 @@ VITE_INTERFACE_URL='http://172.21.32.16:90/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.21.32.16:90'
# 租户配置
VITE_TENANT='["长春","成都"]'

4
.env.hella8

@ -35,3 +35,7 @@ VITE_INTERFACE_URL='http://172.22.32.8:90/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.22.32.8:90'
# 租户配置
VITE_TENANT='["成都"]'

3
.env.hella9

@ -35,3 +35,6 @@ VITE_INTERFACE_URL='http://172.22.32.9:90/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.22.32.9:90'
# 租户配置
VITE_TENANT='["成都"]'

3
.env.test

@ -35,3 +35,6 @@ VITE_INTERFACE_URL='http://dev.ccwin-in.com:25310/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://dev.ccwin-in.com:25310'
# 租户配置
VITE_TENANT='["长春","成都"]'

4
.env.test-scp

@ -35,3 +35,7 @@ VITE_INTERFACE_URL='http://dev.ccwin-in.com:25311/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://dev.ccwin-in.com:25311'
# 租户配置
VITE_TENANT='["长春","成都"]'

7
.env.wyf

@ -4,9 +4,9 @@ NODE_ENV=test
VITE_DEV=false
# 请求路径
VITE_BASE_URL='http://192.168.0.113:12080'
VITE_BASE_URL='http://192.168.0.108:12080'
# 上传路径
VITE_UPLOAD_URL='http://192.168.0.113:12080/admin-api/infra/file/upload'
VITE_UPLOAD_URL='http://192.168.0.108:12080/admin-api/infra/file/upload'
# # 请求路径
# VITE_BASE_URL='http://dev.ccwin-in.com:25300/api'
@ -46,3 +46,6 @@ VITE_JMREPORT_BASE_URL='http://192.168.0.108:12080'
# # 积木报表请求路径
# VITE_JMREPORT_BASE_URL='http://dev.ccwin-in.com:25310'
# 租户配置
VITE_TENANT='["长春","成都"]'

3
README.md

@ -1,4 +1,4 @@
## dev发布2024-05-15-002
## dev发布2024-05-15-004
**xxxx.data.ts 文件配置说明**
**form表单查询弹窗配置**
form: {
@ -28,6 +28,7 @@ form: {
}
**tableForm明细列表查询弹窗配置**
tableForm:{
hidden:false,//控制列是否展示
isInpuFocusShow: true, // 开启查询弹窗 【**与form表单中唯一不同属性**】
searchListPlaceholder: '请选择从仓库代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段

6
src/api/eam/documentType/index.ts → src/api/eam/basicDocumentType/index.ts

@ -1,4 +1,5 @@
import request from '@/config/axios'
import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart";
export interface DocumentTypeVO {
id: number
@ -54,3 +55,8 @@ export const exportDocumentType = async (params) => {
export const importTemplate = () => {
return request.download({ url: '/eam/document-type/get-import-template' })
}
// 启用 / 禁用
export const updateEnableCode = async (data: EquipmentMainPartVO) => {
return await request.post({ url: `/eam/document-type/ables` , data })
}

6
src/api/eam/basicFaultCause/index.ts

@ -1,4 +1,5 @@
import request from '@/config/axios'
import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart";
export interface BasicFaultCauseVO {
id: number
@ -55,3 +56,8 @@ export const exportBasicFaultCause = async (params) => {
export const importTemplate = () => {
return request.download({ url: '/eam/basic-fault-cause/get-import-template' })
}
// 启用 / 禁用
export const updateEnableCode = async (data: EquipmentMainPartVO) => {
return await request.post({ url: `/eam/basic-fault-cause/ables` , data })
}

6
src/api/eam/basicFaultType/index.ts

@ -1,4 +1,5 @@
import request from '@/config/axios'
import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart";
export interface BasicFaultTypeVO {
id: number
@ -54,3 +55,8 @@ export const exportBasicFaultType = async (params) => {
export const importTemplate = () => {
return request.download({ url: '/eam/basic-fault-type/get-import-template' })
}
// 启用 / 禁用
export const updateEnableCode = async (data: EquipmentMainPartVO) => {
return await request.post({ url: `/eam/basic-fault-type/ables` , data })
}

64
src/api/eam/basicInspectionOption/index.ts

@ -0,0 +1,64 @@
import request from '@/config/axios'
import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart";
export interface BasicInspectionOptionVO {
id: number
code: string
name: string
describing: string
isUpdated: boolean
type: string
departmentCode: string
remark: string
siteId: string
available: string
deletionTime: Date
deleterId: byte[]
concurrencyStamp: number
}
// 查询巡检方案列表
export const getBasicInspectionOptionPage = async (params) => {
if (params.isSearch) {
delete params.isSearch
const data = {...params}
return await request.post({ url: '/eam/basic-inspection-option/senior', data })
} else {
return await request.get({ url: `/eam/basic-inspection-option/page`, params })
}
}
// 查询巡检方案详情
export const getBasicInspectionOption = async (id: number) => {
return await request.get({ url: `/eam/basic-inspection-option/get?id=` + id })
}
// 新增巡检方案
export const createBasicInspectionOption = async (data: BasicInspectionOptionVO) => {
return await request.post({ url: `/eam/basic-inspection-option/create`, data })
}
// 修改巡检方案
export const updateBasicInspectionOption = async (data: BasicInspectionOptionVO) => {
return await request.put({ url: `/eam/basic-inspection-option/update`, data })
}
// 删除巡检方案
export const deleteBasicInspectionOption = async (id: number) => {
return await request.delete({ url: `/eam/basic-inspection-option/delete?id=` + id })
}
// 导出巡检方案 Excel
export const exportBasicInspectionOption = async (params) => {
return await request.download({ url: `/eam/basic-inspection-option/export-excel`, params })
}
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/eam/basic-inspection-option/get-import-template' })
}
// 启用 / 禁用
export const updateEnableCode = async (data: EquipmentMainPartVO) => {
return await request.post({ url: `/eam/basic-inspection-option/ables` , data })
}

64
src/api/eam/basicMaintenanceOption/index.ts

@ -0,0 +1,64 @@
import request from '@/config/axios'
import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart";
export interface BasicMaintenanceOptionVO {
id: number
code: string
name: string
describing: string
isUpdated: boolean
type: string
departmentCode: string
remark: string
siteId: string
available: string
deletionTime: Date
deleterId: byte[]
concurrencyStamp: number
}
// 查询保养方案列表
export const getBasicMaintenanceOptionPage = async (params) => {
if (params.isSearch) {
delete params.isSearch
const data = {...params}
return await request.post({ url: '/eam/basic-maintenance-option/senior', data })
} else {
return await request.get({ url: `/eam/basic-maintenance-option/page`, params })
}
}
// 查询保养方案详情
export const getBasicMaintenanceOption = async (id: number) => {
return await request.get({ url: `/eam/basic-maintenance-option/get?id=` + id })
}
// 新增保养方案
export const createBasicMaintenanceOption = async (data: BasicMaintenanceOptionVO) => {
return await request.post({ url: `/eam/basic-maintenance-option/create`, data })
}
// 修改保养方案
export const updateBasicMaintenanceOption = async (data: BasicMaintenanceOptionVO) => {
return await request.put({ url: `/eam/basic-maintenance-option/update`, data })
}
// 删除保养方案
export const deleteBasicMaintenanceOption = async (id: number) => {
return await request.delete({ url: `/eam/basic-maintenance-option/delete?id=` + id })
}
// 导出保养方案 Excel
export const exportBasicMaintenanceOption = async (params) => {
return await request.download({ url: `/eam/basic-maintenance-option/export-excel`, params })
}
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/eam/basic-maintenance-option/get-import-template' })
}
// 启用 / 禁用
export const updateEnableCode = async (data: EquipmentMainPartVO) => {
return await request.post({ url: `/eam/basic-maintenance-option/ables` , data })
}

6
src/api/eam/equipmentMainPart/index.ts

@ -37,6 +37,7 @@ export const createEquipmentMainPart = async (data: EquipmentMainPartVO) => {
// 修改主要部件
export const updateEquipmentMainPart = async (data: EquipmentMainPartVO) => {
console.log(data)
return await request.put({ url: `/eam/equipment-main-part/update`, data })
}
@ -54,3 +55,8 @@ export const exportEquipmentMainPart = async (params) => {
export const importTemplate = () => {
return request.download({ url: '/eam/equipment-main-part/get-import-template' })
}
// 启用 / 禁用
export const updateEnableCode = async (data: EquipmentMainPartVO) => {
return await request.post({ url: `/eam/equipment-main-part/ables` , data })
}

69
src/api/wms/containerMainRequest/index.ts

@ -14,7 +14,7 @@ export interface ContainerMainRequestVO {
export const getContainerMainRequestPage = async (params) => {
if (params.isSearch) {
delete params.isSearch
const data = {...params}
const data = { ...params }
return await request.post({ url: '/wms/container-main-request/senior', data })
} else {
return await request.get({ url: `/wms/container-main-request/page`, params })
@ -43,7 +43,74 @@ export const deleteContainerMainRequest = async (id: number) => {
// 导出器具管理申请主 Excel
export const exportContainerMainRequest = async (params) => {
params.businessType = 'ContainerManage'
if (params.isSearch) {
delete params.isSearch
const data = { ...params }
return await request.post({ url: '/wms/container-main-request/export-excel-senior', data })
} else {
return await request.download({ url: `/wms/container-main-request/export-excel`, params })
}
}
// 导出初始化器具管理申请主 Excel
export const exportInitialContainerMainRequest = async (params) => {
params.businessType = 'InitialContainerManage'
if (params.isSearch) {
delete params.isSearch
const data = { ...params }
return await request.post({ url: '/wms/container-main-request/export-excel-senior', data })
} else {
return await request.download({ url: `/wms/container-main-request/export-excel`, params })
}
}
// 导出初始化器具管理申请主 Excel
export const exportScrapContainerMainRequest = async (params) => {
params.businessType = 'ScrapContainerManage'
if (params.isSearch) {
delete params.isSearch
const data = { ...params }
return await request.post({ url: '/wms/container-main-request/export-excel-senior', data })
} else {
return await request.download({ url: `/wms/container-main-request/export-excel`, params })
}
}
// 导出移动器具管理申请主 Excel
export const exportMoveContainerMainRequest = async (params) => {
params.businessType = 'MoveContainerManage'
if (params.isSearch) {
delete params.isSearch
const data = { ...params }
return await request.post({ url: '/wms/container-main-request/export-excel-senior', data })
} else {
return await request.download({ url: `/wms/container-main-request/export-excel`, params })
}
}
// 导出返回器具管理申请主 Excel
export const exportReturnContainerMainRequest = async (params) => {
params.businessType = 'ReturnContainerManage'
if (params.isSearch) {
delete params.isSearch
const data = { ...params }
return await request.post({ url: '/wms/container-main-request/export-excel-senior', data })
} else {
return await request.download({ url: `/wms/container-main-request/export-excel`, params })
}
}
// 导出发运器具管理申请主 Excel
export const exportDeliverContainerMainRequest = async (params) => {
params.businessType = 'DeliverContainerManage'
if (params.isSearch) {
delete params.isSearch
const data = { ...params }
return await request.post({ url: '/wms/container-main-request/export-excel-senior', data })
} else {
return await request.download({ url: `/wms/container-main-request/export-excel`, params })
}
}
// 下载用户导入模板

58
src/api/wms/qadproductionplan/index.ts

@ -0,0 +1,58 @@
import request from '@/config/axios'
export interface QadProductionPlanMainVO {
displayOrder: number
workshop: string
productionLine: string
shift: string
team: string
planDate: Date
details: string
number: string
planType: string
businessType: string
remark: string
woNumber: string
woLine: string
}
// 查询QAD生产计划主列表
export const getQadProductionPlanMainPage = async (params) => {
if (params.isSearch) {
delete params.isSearch
const data = {...params}
return await request.post({ url: '/wms/qad-production-plan-main/senior', data })
} else {
return await request.get({ url: `/wms/qad-production-plan-main/page`, params })
}
}
// 查询QAD生产计划主详情
export const getQadProductionPlanMain = async (id: number) => {
return await request.get({ url: `/wms/qad-production-plan-main/get?id=` + id })
}
// 新增QAD生产计划主
export const createQadProductionPlanMain = async (data: QadProductionPlanMainVO) => {
return await request.post({ url: `/wms/qad-production-plan-main/create`, data })
}
// 修改QAD生产计划主
export const updateQadProductionPlanMain = async (data: QadProductionPlanMainVO) => {
return await request.put({ url: `/wms/qad-production-plan-main/update`, data })
}
// 删除QAD生产计划主
export const deleteQadProductionPlanMain = async (id: number) => {
return await request.delete({ url: `/wms/qad-production-plan-main/delete?id=` + id })
}
// 导出QAD生产计划主 Excel
export const exportQadProductionPlanMain = async (params) => {
return await request.download({ url: `/wms/qad-production-plan-main/export-excel`, params })
}
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/wms/qad-production-plan-main/get-import-template' })
}

2
src/components/TableForm/src/TableForm.vue

@ -40,7 +40,7 @@
/>
<el-table-column
v-slot="{ row, $index }"
v-for="(headerItem) in tableFields"
v-for="(headerItem) in tableFields.filter(item=>(!item.hidden))"
:key="headerItem"
:fixed="headerItem.tableForm?.fixed"
:label="t(`ts.${headerItem.label}`).replace('ts.','')" :prop="headerItem.field"

4
src/views/eam/documentType/documentType.data.ts → src/views/eam/basicDocumentType/basicDocumentType.data.ts

@ -83,10 +83,10 @@ export const DocumentType = useCrudSchemas(reactive<CrudSchema[]>([
sort: 'custom',
form: {
component: 'Switch',
value: 'TURE',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TURE'
activeValue: 'TRUE'
}
},
},

59
src/views/eam/documentType/index.vue → src/views/eam/basicDocumentType/index.vue

@ -33,7 +33,7 @@
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
@ -59,8 +59,8 @@
<script setup lang="ts">
import download from '@/utils/download'
import { DocumentType,DocumentTypeRules } from './documentType.data'
import * as DocumentTypeApi from '@/api/eam/documentType'
import { DocumentType,DocumentTypeRules } from './basicDocumentType.data'
import * as DocumentTypeApi from '@/api/eam/basicDocumentType'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
@ -131,11 +131,23 @@ const buttonBaseClick = (val, item) => {
}
}
const isShowMainButton = (row,val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
return true
}
}
// -
const butttondata = [
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi:'eam:documentType:update'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'eam:documentType:delete'}), //
]
//defaultButtons.mainListDeleteBtn({hasPermi:'eam:equipmentMainPart:delete'}), //
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'eam:documentType:update'}),
defaultButtons.mainListDisableBtn({hide:isShowMainButton(row,['TRUE']),hasPermi:'eam:documentType:update'}),
]
}
// -
const buttonTableClick = async (val, row) => {
@ -143,6 +155,10 @@ const buttonTableClick = async (val, row) => {
openForm('update', row)
} else if (val == 'delete') { //
handleDelete(row.id)
}else if (val == 'enable') {
handleEnable(row.id)
}else if (val == 'disable') {
handleDisable(row.id)
}
}
@ -211,6 +227,37 @@ const handleExport = async () => {
}
}
/** 启用 */
const handleEnable = async (id: number) => {
try {
const params = ref({
id: '',
available:'',
})
params.value.id = id
params.value.available = 'TRUE'
await DocumentTypeApi.updateEnableCode(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
/** 禁用 */
const handleDisable = async (id: number) => {
try {
const params = ref({
id: '',
available:'',
})
params.value.id = id
params.value.available = 'FALSE'
await DocumentTypeApi.updateEnableCode(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
/** 导入 */
const importFormRef = ref()
const handleImport = () => {

4
src/views/eam/basicFaultCause/basicFaultCause.data.ts

@ -94,10 +94,10 @@ export const BasicFaultCause = useCrudSchemas(reactive<CrudSchema[]>([
sort: 'custom',
form: {
component: 'Switch',
value: 'TURE',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TURE'
activeValue: 'TRUE'
}
},
},

55
src/views/eam/basicFaultCause/index.vue

@ -33,7 +33,7 @@
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
@ -131,11 +131,23 @@ const buttonBaseClick = (val, item) => {
}
}
const isShowMainButton = (row,val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
return true
}
}
// -
const butttondata = [
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi:'eam:basicFaultCause:update'}), //
//defaultButtons.mainListDeleteBtn({hasPermi:'eam:basicFaultCause:delete'}), //
]
//defaultButtons.mainListDeleteBtn({hasPermi:'eam:basicInspectionOption:delete'}), //
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'eam:basicFaultCause:update'}),
defaultButtons.mainListDisableBtn({hide:isShowMainButton(row,['TRUE']),hasPermi:'eam:basicFaultCause:update'}),
]
}
// -
const buttonTableClick = async (val, row) => {
@ -143,6 +155,10 @@ const buttonTableClick = async (val, row) => {
openForm('update', row)
} else if (val == 'delete') { //
handleDelete(row.id)
}else if (val == 'enable') {
handleEnable(row.id)
}else if (val == 'disable') {
handleDisable(row.id)
}
}
@ -195,6 +211,37 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 启用 */
const handleEnable = async (id: number) => {
try {
const params = ref({
id: '',
available:'',
})
params.value.id = id
params.value.available = 'TRUE'
await BasicFaultCauseApi.updateEnableCode(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
/** 禁用 */
const handleDisable = async (id: number) => {
try {
const params = ref({
id: '',
available:'',
})
params.value.id = id
params.value.available = 'FALSE'
await BasicFaultCauseApi.updateEnableCode(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const exportLoading = ref(false) //
const handleExport = async () => {

4
src/views/eam/basicFaultType/basicFaultType.data.ts

@ -81,10 +81,10 @@ export const BasicFaultType = useCrudSchemas(reactive<CrudSchema[]>([
sort: 'custom',
form: {
component: 'Switch',
value: 'TURE',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TURE'
activeValue: 'TRUE'
}
},
},

56
src/views/eam/basicFaultType/index.vue

@ -33,7 +33,7 @@
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
@ -65,6 +65,7 @@ import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue'
import * as BasicInspectionOptionApi from "@/api/eam/basicInspectionOption";
defineOptions({ name: 'BasicFaultType' })
@ -131,11 +132,23 @@ const buttonBaseClick = (val, item) => {
}
}
const isShowMainButton = (row,val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
return true
}
}
// -
const butttondata = [
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi:'eam:basicFaultType:update'}), //
//defaultButtons.mainListDeleteBtn({hasPermi:'eam:basicFaultType:delete'}), //
]
//defaultButtons.mainListDeleteBtn({hasPermi:'eam:basicInspectionOption:delete'}), //
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'eam:basicFaultType:update'}),
defaultButtons.mainListDisableBtn({hide:isShowMainButton(row,['TRUE']),hasPermi:'eam:basicFaultType:update'}),
]
}
// -
const buttonTableClick = async (val, row) => {
@ -143,6 +156,10 @@ const buttonTableClick = async (val, row) => {
openForm('update', row)
} else if (val == 'delete') { //
handleDelete(row.id)
}else if (val == 'enable') {
handleEnable(row.id)
}else if (val == 'disable') {
handleDisable(row.id)
}
}
@ -195,6 +212,37 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 启用 */
const handleEnable = async (id: number) => {
try {
const params = ref({
id: '',
available:'',
})
params.value.id = id
params.value.available = 'TRUE'
await BasicFaultTypeApi.updateEnableCode(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
/** 禁用 */
const handleDisable = async (id: number) => {
try {
const params = ref({
id: '',
available:'',
})
params.value.id = id
params.value.available = 'FALSE'
await BasicFaultTypeApi.updateEnableCode(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const exportLoading = ref(false) //
const handleExport = async () => {

169
src/views/mes/holidayCalendar/holidayCalendar.data.ts → src/views/eam/basicInspectionOption/basicInspectionOption.data.ts

@ -2,43 +2,63 @@ import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
// 表单校验
export const HolidayCalendarRules = reactive({
endTime: [required],
concurrencyStamp: [required],
export const BasicInspectionOptionRules = reactive({
code: [required],
name: [required],
type: [required],
})
export const HolidayCalendar = useCrudSchemas(reactive<CrudSchema[]>([
export const BasicInspectionOption = useCrudSchemas(reactive<CrudSchema[]>([
{
label: 'ID',
label: 'id',
field: 'id',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
},
{
label: '日期',
field: 'holidayDate',
label: '编号',
field: 'code',
sort: 'custom',
isSearch: true,
},
{
label: '方案名称',
field: 'name',
sort: 'custom',
formatter: dateFormatter,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
{
label: '描述',
field: 'describing',
sort: 'custom',
isSearch: true,
},
{
label: '项是否可修改',
field: 'isUpdated',
sort: 'custom',
isSearch: true,
form: {
component: 'DatePicker',
component: 'Switch',
value: 'TRUE',
componentProps: {
type: 'datetime',
valueFormat: 'x'
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
},
},
{
label: '结束时间',
field: 'endTime',
label: '来源于类型配置',
field: 'type',
sort: 'custom',
isSearch: true,
},
{
label: '创建时间',
field: 'createTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: true,
@ -50,50 +70,54 @@ export const HolidayCalendar = useCrudSchemas(reactive<CrudSchema[]>([
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
valueFormat: 'x'
}
},
isForm: false,
},
{
label: '备用字段一',
field: 'textOne',
label: '部门id',
field: 'departmentCode',
sort: 'custom',
isSearch: true,
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
},
{
label: '备用字段二',
field: 'textTwo',
label: '备',
field: 'remark',
sort: 'custom',
isSearch: true,
isSearch: false,
},
{
label: '备用字段三',
field: 'textThree',
label: '地点ID',
field: 'siteId',
sort: 'custom',
isSearch: true,
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
},
{
label: '备用字段四',
field: 'textFour',
label: '是否可用',
field: 'available',
sort: 'custom',
isSearch: true,
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
},
{
label: '备用字段五',
field: 'textFive',
sort: 'custom',
isSearch: true,
},
{
label: '删除时间',
field: 'deleteTime',
field: 'deletionTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: true,
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
search: {
component: 'DatePicker',
componentProps: {
@ -111,57 +135,22 @@ export const HolidayCalendar = useCrudSchemas(reactive<CrudSchema[]>([
},
},
{
label: '状态',
field: 'status',
label: '删除人id',
field: 'deleterId',
sort: 'custom',
isSearch: true,
form: {
component: 'Radio'
},
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
},
{
label: '并发乐观锁',
field: 'concurrencyStamp',
sort: 'custom',
isSearch: true,
form: {
component: 'InputNumber',
value: 0
},
},
{
label: '备注',
field: 'remark',
sort: 'custom',
isSearch: true,
},
{
label: '创建时间',
field: 'createTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
isSearch: false,
isTable: false,
isForm: false,
},
{
label: '删除用户名',
field: 'deleter',
sort: 'custom',
isSearch: true,
},
{
label: '位置ID',
field: 'siteId',
sort: 'custom',
isSearch: true,
isDetail:false,
form: {
component: 'InputNumber',
value: 0

290
src/views/eam/basicInspectionOption/index.vue

@ -0,0 +1,290 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="BasicInspectionOption.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="BasicInspectionOption.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
:pagination="{
total: tableObject.total
}"
v-model:pageSize="tableObject.pageSize"
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<BasicForm
ref="basicFormRef"
@success="formsSuccess"
:rules="BasicInspectionOptionRules"
:formAllSchemas="BasicInspectionOption.allSchemas"
:apiUpdate="BasicInspectionOptionApi.updateBasicInspectionOption"
:apiCreate="BasicInspectionOptionApi.createBasicInspectionOption"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
<Detail ref="detailRef" :isBasic="true" :allSchemas="BasicInspectionOption.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/eam/basic-inspection-option/import" :importTemplateData="importTemplateData" @success="importSuccess" />
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { BasicInspectionOption,BasicInspectionOptionRules } from './basicInspectionOption.data'
import * as BasicInspectionOptionApi from '@/api/eam/basicInspectionOption'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue'
defineOptions({ name: 'BasicInspectionOption' })
const message = useMessage() //
const { t } = useI18n() //
const route = useRoute() //
const routeName = ref()
routeName.value = route.name
const tableColumns = ref(BasicInspectionOption.allSchemas.tableColumns)
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
//
const updataTableColumns = (val) => {
tableColumns.value = val
}
const { tableObject, tableMethods } = useTable({
getListApi: BasicInspectionOptionApi.getBasicInspectionOptionPage //
})
//
const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'eam:basicInspectionOption:create'}), //
// defaultButtons.defaultImportBtn({hasPermi:'eam:basicInspectionOption:import'}), //
// defaultButtons.defaultExportBtn({hasPermi:'eam:basicInspectionOption:export'}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
// {
// label: '',
// name: 'zdy',
// hide: false,
// type: 'primary',
// icon: 'Select',
// color: ''
// },
]
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
openForm('create')
} else if (val == 'import') { //
handleImport()
} else if (val == 'export') { //
handleExport()
} else if (val == 'refresh') { //
getList()
} else if (val == 'filtrate') { //
} else { //
console.log('其他按钮', item)
}
}
const isShowMainButton = (row,val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
return true
}
}
// -
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi:'eam:basicInspectionOption:update'}), //
//defaultButtons.mainListDeleteBtn({hasPermi:'eam:basicInspectionOption:delete'}), //
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'eam:basicInspectionOption:update'}),
defaultButtons.mainListDisableBtn({hide:isShowMainButton(row,['TRUE']),hasPermi:'eam:basicInspectionOption:update'}),
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
openForm('update', row)
} else if (val == 'delete') { //
handleDelete(row.id)
}else if (val == 'enable') {
handleEnable(row.id)
}else if (val == 'disable') {
handleDisable(row.id)
}
}
/** 添加/修改操作 */
const basicFormRef = ref()
const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
// form
const formsSuccess = async (formType,data) => {
var isHave =BasicInspectionOption.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
message.error('失效时间要大于生效时间')
return;
}
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await BasicInspectionOptionApi.createBasicInspectionOption(data)
message.success(t('common.createSuccess'))
} else {
await BasicInspectionOptionApi.updateBasicInspectionOption(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {
detailRef.value.openDetail(row, titleName, titleValue, 'basicBasicInspectionOption')
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await BasicInspectionOptionApi.deleteBasicInspectionOption(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 启用 */
const handleEnable = async (id: number) => {
try {
const params = ref({
id: '',
available:'',
})
params.value.id = id
params.value.available = 'TRUE'
await BasicInspectionOptionApi.updateEnableCode(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
/** 禁用 */
const handleDisable = async (id: number) => {
try {
const params = ref({
id: '',
available:'',
})
params.value.id = id
params.value.available = 'FALSE'
await BasicInspectionOptionApi.updateEnableCode(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const exportLoading = ref(false) //
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await BasicInspectionOptionApi.exportBasicInspectionOption(tableObject.params)
download.excel(data, '巡检方案.xlsx')
} catch {
} finally {
exportLoading.value = false
}
}
/** 导入 */
const importFormRef = ref()
const handleImport = () => {
importFormRef.value.open()
}
//
const importTemplateData = reactive({
templateUrl: '',
templateTitle: '巡检方案导入模版.xlsx'
})
//
const importSuccess = () => {
getList()
}
//
const searchFormClick = (searchData) => {
tableObject.params = {
isSearch: true,
filters: searchData.filters
}
getList() //
}
/** 初始化 **/
onMounted(async () => {
getList()
importTemplateData.templateUrl = await BasicInspectionOptionApi.importTemplate()
})
</script>

171
src/views/eam/basicMaintenanceOption/basicMaintenanceOption.data.ts

@ -0,0 +1,171 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
// 表单校验
export const BasicMaintenanceOptionRules = reactive({
code: [required],
type: [required],
name: [required],
})
export const BasicMaintenanceOption = useCrudSchemas(reactive<CrudSchema[]>([
{
label: 'id',
field: 'id',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
},
{
label: '编号',
field: 'code',
sort: 'custom',
isSearch: true,
},
{
label: '方案名称',
field: 'name',
sort: 'custom',
isSearch: true,
},
{
label: '描述',
field: 'describing',
sort: 'custom',
isSearch: true,
},
{
label: '项是否可修改默认是',
field: 'isUpdated',
sort: 'custom',
isSearch: true,
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
},
},
{
label: '来源于类型配置',
field: 'type',
sort: 'custom',
isSearch: true,
},
{
label: '创建时间',
field: 'createTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
isForm: false,
},
{
label: '部门id',
field: 'departmentCode',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
},
{
label: '备注',
field: 'remark',
sort: 'custom',
isSearch: true,
},
{
label: '地点ID',
field: 'siteId',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
},
{
label: '是否可用',
field: 'available',
sort: 'custom',
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
},
},
{
label: '删除时间',
field: 'deletionTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
valueFormat: 'x'
}
},
},
{
label: '删除人id',
field: 'deleterId',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
},
{
label: '并发乐观锁',
field: 'concurrencyStamp',
sort: 'custom',
isSearch: false,
isTable: false,
isForm: false,
isDetail:false,
form: {
component: 'InputNumber',
value: 0
},
},
{
label: '操作',
field: 'action',
isForm: false,
table: {
width: 150,
fixed: 'right'
}
}
]))

291
src/views/eam/basicMaintenanceOption/index.vue

@ -0,0 +1,291 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="BasicMaintenanceOption.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="BasicMaintenanceOption.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
:pagination="{
total: tableObject.total
}"
v-model:pageSize="tableObject.pageSize"
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #code="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<BasicForm
ref="basicFormRef"
@success="formsSuccess"
:rules="BasicMaintenanceOptionRules"
:formAllSchemas="BasicMaintenanceOption.allSchemas"
:apiUpdate="BasicMaintenanceOptionApi.updateBasicMaintenanceOption"
:apiCreate="BasicMaintenanceOptionApi.createBasicMaintenanceOption"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
<Detail ref="detailRef" :isBasic="true" :allSchemas="BasicMaintenanceOption.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/eam/basic-maintenance-option/import" :importTemplateData="importTemplateData" @success="importSuccess" />
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { BasicMaintenanceOption,BasicMaintenanceOptionRules } from './basicMaintenanceOption.data'
import * as BasicMaintenanceOptionApi from '@/api/eam/basicMaintenanceOption'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue'
defineOptions({ name: 'BasicMaintenanceOption' })
const message = useMessage() //
const { t } = useI18n() //
const route = useRoute() //
const routeName = ref()
routeName.value = route.name
const tableColumns = ref(BasicMaintenanceOption.allSchemas.tableColumns)
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
//
const updataTableColumns = (val) => {
tableColumns.value = val
}
const { tableObject, tableMethods } = useTable({
getListApi: BasicMaintenanceOptionApi.getBasicMaintenanceOptionPage //
})
//
const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'eam:basicMaintenanceOption:create'}), //
// defaultButtons.defaultImportBtn({hasPermi:'wms:basicMaintenanceOption:import'}), //
// defaultButtons.defaultExportBtn({hasPermi:'wms:basicMaintenanceOption:export'}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
// {
// label: '',
// name: 'zdy',
// hide: false,
// type: 'primary',
// icon: 'Select',
// color: ''
// },
]
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
openForm('create')
} else if (val == 'import') { //
handleImport()
} else if (val == 'export') { //
handleExport()
} else if (val == 'refresh') { //
getList()
} else if (val == 'filtrate') { //
} else { //
console.log('其他按钮', item)
}
}
const isShowMainButton = (row,val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
return true
}
}
// -
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi:'eam:basicMaintenanceOption:update'}), //
//defaultButtons.mainListDeleteBtn({hasPermi:'eam:equipmentMainPart:delete'}), //
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'eam:basicMaintenanceOption:update'}),
defaultButtons.mainListDisableBtn({hide:isShowMainButton(row,['TRUE']),hasPermi:'eam:basicMaintenanceOption:update'}),
]
}
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
openForm('update', row)
} else if (val == 'delete') { //
handleDelete(row.id)
}else if (val == 'enable') {
handleEnable(row.id)
}else if (val == 'disable') {
handleDisable(row.id)
}
}
/** 添加/修改操作 */
const basicFormRef = ref()
const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
// form
const formsSuccess = async (formType,data) => {
var isHave =BasicMaintenanceOption.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
message.error('失效时间要大于生效时间')
return;
}
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await BasicMaintenanceOptionApi.createBasicMaintenanceOption(data)
message.success(t('common.createSuccess'))
} else {
await BasicMaintenanceOptionApi.updateBasicMaintenanceOption(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {
detailRef.value.openDetail(row, titleName, titleValue, 'basicBasicMaintenanceOption')
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await BasicMaintenanceOptionApi.deleteBasicMaintenanceOption(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 启用 */
const handleEnable = async (id: number) => {
try {
const params = ref({
id: '',
available:'',
})
params.value.id = id
params.value.available = 'TRUE'
await BasicMaintenanceOptionApi.updateEnableCode(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
/** 禁用 */
const handleDisable = async (id: number) => {
try {
const params = ref({
id: '',
available:'',
})
params.value.id = id
params.value.available = 'FALSE'
await BasicMaintenanceOptionApi.updateEnableCode(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const exportLoading = ref(false) //
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await BasicMaintenanceOptionApi.exportBasicMaintenanceOption(tableObject.params)
download.excel(data, '保养方案.xlsx')
} catch {
} finally {
exportLoading.value = false
}
}
/** 导入 */
const importFormRef = ref()
const handleImport = () => {
importFormRef.value.open()
}
//
const importTemplateData = reactive({
templateUrl: '',
templateTitle: '保养方案导入模版.xlsx'
})
//
const importSuccess = () => {
getList()
}
//
const searchFormClick = (searchData) => {
tableObject.params = {
isSearch: true,
filters: searchData.filters
}
getList() //
}
/** 初始化 **/
onMounted(async () => {
getList()
importTemplateData.templateUrl = await BasicMaintenanceOptionApi.importTemplate()
})
</script>

4
src/views/eam/equipmentMainPart/equipmentMainPart.data.ts

@ -83,10 +83,10 @@ export const EquipmentMainPart = useCrudSchemas(reactive<CrudSchema[]>([
isSearch: true,
form: {
component: 'Switch',
value: 'TURE',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TURE'
activeValue: 'TRUE'
}
},
},

58
src/views/eam/equipmentMainPart/index.vue

@ -33,7 +33,7 @@
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event,row)" />
<ButtonBase :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
@ -131,11 +131,23 @@ const buttonBaseClick = (val, item) => {
}
}
// -
const butttondata = [
const isShowMainButton = (row,val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
return true
}
}
const butttondata = (row) => {
return [
defaultButtons.mainListEditBtn({hasPermi:'eam:equipmentMainPart:update'}), //
//defaultButtons.mainListDeleteBtn({hasPermi:'eam:equipmentMainPart:delete'}), //
]
defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'eam:equipmentMainPart:update'}),
defaultButtons.mainListDisableBtn({hide:isShowMainButton(row,['TRUE']),hasPermi:'eam:equipmentMainPart:update'}),
]
}
// -
const buttonTableClick = async (val, row) => {
@ -143,6 +155,10 @@ const buttonTableClick = async (val, row) => {
openForm('update', row)
} else if (val == 'delete') { //
handleDelete(row.id)
}else if (val == 'enable') {
handleEnable(row.id)
}else if (val == 'disable') {
handleDisable(row.id)
}
}
@ -195,6 +211,40 @@ const handleDelete = async (id: number) => {
} catch {}
}
/** 启用 */
const handleEnable = async (id: number) => {
try {
const params = ref({
id: '',
available:'',
})
params.value.id = id
params.value.available = 'TRUE'
await EquipmentMainPartApi.updateEnableCode(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
/** 禁用 */
const handleDisable = async (id: number) => {
try {
const params = ref({
id: '',
available:'',
})
params.value.id = id
params.value.available = 'FALSE'
await EquipmentMainPartApi.updateEnableCode(params.value)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const exportLoading = ref(false) //
const handleExport = async () => {

15
src/views/login/components/LoginForm.vue

@ -9,8 +9,16 @@
</el-col>
<el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item v-if="loginData.tenantEnable === 'true'" prop="tenantName">
<el-input v-model="loginData.loginForm.tenantName" :placeholder="t('login.tenantNamePlaceholder')"
:prefix-icon="iconHouse" link type="primary" />
<!-- <el-input v-model="loginData.loginForm.tenantName" :placeholder="t('login.tenantNamePlaceholder')"
:prefix-icon="iconHouse" link type="primary" /> -->
<el-select v-model="loginData.loginForm.tenantName" :placeholder="t('login.tenantNamePlaceholder')" :prefix-icon="iconHouse">
<el-option
v-for="item in tenantArray"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24" style="padding-right: 10px; padding-left: 10px">
@ -110,6 +118,7 @@
//
const captchaEnabled = ref(true);
const codeUrl = ref("");
const tenantArray = JSON.parse(import.meta.env.VITE_TENANT);
const LoginRules = {
tenantName: [required],
@ -121,7 +130,7 @@
captchaEnable: import.meta.env.VITE_APP_CAPTCHA_ENABLE,
tenantEnable: import.meta.env.VITE_APP_TENANT_ENABLE,
loginForm: {
tenantName: '闻荫源码',
tenantName: tenantArray[0],
username: 'admin',
password: '123456',
captchaVerification: '',

13
src/views/login/components/MobileForm.vue

@ -18,13 +18,21 @@
</el-col>
<el-col :span="24" style="padding-right: 10px; padding-left: 10px">
<el-form-item v-if="loginData.tenantEnable === 'true'" prop="tenantName">
<el-input
<!-- <el-input
v-model="loginData.loginForm.tenantName"
:placeholder="t('login.tenantNamePlaceholder')"
:prefix-icon="iconHouse"
type="primary"
link
/> -->
<el-select v-model="loginData.loginForm.tenantName" :placeholder="t('login.tenantNamePlaceholder')" :prefix-icon="iconHouse">
<el-option
v-for="item in tenantArray"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</el-form-item>
</el-col>
<!-- 手机号 -->
@ -117,6 +125,7 @@ const iconCircleCheck = useIcon({ icon: 'ep:circle-check' })
const { validForm } = useFormValid(formSmsLogin)
const { handleBackLogin, getLoginState } = useLoginState()
const getShow = computed(() => unref(getLoginState) === LoginStateEnum.MOBILE)
const tenantArray = JSON.parse(import.meta.env.VITE_TENANT);
const rules = {
tenantName: [required],
@ -132,7 +141,7 @@ const loginData = reactive({
},
loginForm: {
uuid: '',
tenantName: '闻荫源码',
tenantName: tenantArray[0],
mobileNumber: '',
code: ''
}

2
src/views/mes/abilityInfo/abilityInfo.data.ts

@ -140,7 +140,7 @@ export const AbilityInfo = useCrudSchemas(reactive<CrudSchema[]>([
field: 'remark',
sort: 'custom',
isSearch: false,
isTable: false
isTable: true
},
{
label: '状态',

75
src/views/mes/holidayCalendar/index.vue

@ -1,75 +0,0 @@
<template>
<div>
<el-calendar>
<template #date-cell="{ data }">
<div
style="height: 100"
:class="data.isSelected ? 'is-selected' : ''"
@click="handleClick(data.day)"
>
<div>{{ data.day.split('-').slice(1).join('-') }}</div>
<div v-if="arr.find((v) => v.date === data.day)">{{ arr.find((v) => v.date === data.day).content }}
</div>
<!-- <div>{{ data.isSelected ? '打羽毛球' : '' }}</div>  -->
</div>
</template>
</el-calendar>
<!-- 自定义弹出框 -->
<el-dialog v-model="dialogFormVisible" title="日程安排" width="600" draggable="true">
<el-form :model="calendar" :label-width="100">
<el-form-item label="日程内容">
<el-input v-model="calendar.content" autocomplete="off" />
</el-form-item>
<el-form-item label="创建时间">
<el-input v-model="calendar.content" autocomplete="off" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="save"> 确定 </el-button>
<el-button @click="dialogFormVisible = false"> 取消 </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script>
import { reactive, ref } from 'vue'
import { HolidayCalendar, HolidayCalendarRules } from './holidayCalendar.data'
import * as HolidayCalendarApi from '@/api/mes/holidayCalendar'
const dialogTableVisible = ref(false)
const dialogFormVisible = ref(false)
const formLabelWidth = '160px'
export default {
name: 'Calendar',
data() {
return {
value: new Date(),
arr: [
{ date: '2024-04-01', content: '打球' },
{ date: '2024-04-02', content: '打台球' },
{ date: '2024-04-03', content: '打篮球' },
{ date: '2024-04-04', content: '踢足球' }
],
dialogFormVisible:false,
calendar: {}
}
},
methods: {
handleClick(date) {
this.dialogFormVisible = true
this.calendar.date=date
},
save(){
}
}
}
</script>
<style scoped>
</style>

2
src/views/mes/hrPersonAbility/hrPersonAbility.data.ts

@ -178,7 +178,7 @@ export const HrPersonAbility = useCrudSchemas(reactive<CrudSchema[]>([
field: 'remark',
sort: 'custom',
isSearch: false,
isTable: false
isTable: true
},
{
label: '状态',

8
src/views/mes/jobcalendar/index.vue

@ -1,8 +0,0 @@
<template>
<el-calendar v-model="value" />
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const value = ref(new Date())
</script>

12
src/views/mes/orderDay/orderDay.data.ts

@ -273,6 +273,9 @@ export const OrderDay = useCrudSchemas(reactive<CrudSchema[]>([
valueFormat: 'YYYY-MM-DD',
}
},
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
form: {
component: 'DatePicker',
componentProps: {
@ -296,6 +299,9 @@ export const OrderDay = useCrudSchemas(reactive<CrudSchema[]>([
timeFormat:"HH:mm"
}
},
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
},
{
label: '结束时间',
@ -312,6 +318,9 @@ export const OrderDay = useCrudSchemas(reactive<CrudSchema[]>([
timeFormat:"HH:mm"
}
},
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
},
{
label: '生产模式',
@ -339,6 +348,9 @@ export const OrderDay = useCrudSchemas(reactive<CrudSchema[]>([
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
isForm: false,
},
{

2
src/views/mes/patternType/patternType.data.ts

@ -140,6 +140,6 @@ export const PatternType = useCrudSchemas(reactive<CrudSchema[]>([
field: 'remark',
sort: 'custom',
isSearch: false,
isTable: false
isTable: true
}
]))

6
src/views/mes/processroute/processroute.data.ts

@ -4,6 +4,11 @@ import * as ItembasicApi from '@/api/wms/itembasic'
import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data'
// 表单校验
export const ProcessrouteRules = reactive({
processrouteCode: [required],
processName: [required],
productCode: [required],
ablityCode: [required],
ablityCode: [required],
})
export const Processroute = useCrudSchemas(reactive<CrudSchema[]>([
@ -26,6 +31,7 @@ export const Processroute = useCrudSchemas(reactive<CrudSchema[]>([
field: 'id',
sort: 'custom',
isForm: false,
isTable: false,
},
{

2
src/views/mes/workScheduling/components/reportAll.vue

@ -9,7 +9,7 @@
<template #title>{{ dialogTitle }} </template>
<el-button type="primary" @click="addRow" style="float:right;;">添加</el-button>
<el-table :data="tableData" style="border: 1px;stripe; width:1300px ;" >
<el-table-column prop="processName" label="工序名称" width="200px">
<el-table-column prop="processCodeSelected" label="工序名称" width="200px" >
<template #default="scope">
<el-select v-model="scope.row.processCodeSelected" @change="processChange" value-key="processCode">
<el-option v-for="item in processOption" :key="item.processCode" :label="item.processName" :value="item.processCode" />

6
src/views/mes/workcalendar/index.vue

@ -238,7 +238,7 @@
</el-table>
</el-form>
<div class="demo-drawer__footer">
<el-button @click="handleBatchClose"> </el-button>
<el-button @click="handleAddClose"> </el-button>
<el-button type="primary" @click="addWork"> 保存 </el-button>
</div>
</div>
@ -661,6 +661,10 @@ const batchAddWork = () => {
const handleBatchClose = () => {
batchAddDrawer.value = false
}
const handleAddClose = () => {
drawer.value = false
}
const savePlan = async (workList) => {
await workCalendarApi.createBatch(workList)
//await workCalendarApi.createObj(workList);

27
src/views/qms/inspectionJob/addForm.vue

@ -357,7 +357,6 @@
allSamplePieceSize.value = 0//0
if (row) {
data.value = JSON.parse(JSON.stringify(row))
// console.log(data.value)//
// await InspectionJobMainApi.acceptInspectionJobMain(row.id)
let list = []
list = await InspectionJobDetailPageApi.getInspectionJobDetailList(row.id)
@ -421,7 +420,6 @@
rules.value['inspectionJobCharacteristicsUpdateReqVO.estimateCode'][0].required = false
}
})
console.log(22, allSamplePieceSize.value)
data.value.subList = list
/**
设置采样数量默认第一个包装采样数量<总数量显示数量字段第二个包装和剩下的总数量对比以此类推
@ -526,12 +524,10 @@
quantifyQuantifyCode: ''
}
})
console.log(data.value.subList)
editableTabsValue.value = newTabName
dialogVisibleName.value = false
} else {
console.log('error submit!')
return false
}
})
@ -559,7 +555,6 @@
//
const emit = defineEmits(['submitForm', 'searchTableSuccess'])
const validateForm = (formRef) => {
// console.log(TableBaseForm_Ref.value)
let _lists = formRef?.map((v) => v.validate())
return Promise.all(_lists)
.then(() => {
@ -572,7 +567,6 @@
const tableFormRef = ref()
const submitForm = async () => {
try {
console.log(data.value.subList)
const elForm = unref(formMainRef)?.getElFormRef()
//
if (!elForm) return
@ -580,7 +574,6 @@
if (!valid) return
//
console.log(11, data.value.packageList)
if (data.value.packageList?.length > 0) {
const validateForm1 = await tableFormRef.value.validateForm()
if (!validateForm1) return
@ -611,11 +604,14 @@
let numberList = []//
let parseFloatList = []//
data.value.subList.forEach((item, index) => {
console.log("woxianlai")
console.log(item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList)
if (item.inspectionJobCharacteristicsUpdateReqVO.resultEntryMethod == 1) {
arrBol.push(
item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList.some(
(cur, key) => {
return !cur.qualifiedQuantity || !cur.unqualifiedQuantity
return cur.qualifiedQuantity==='' || cur.unqualifiedQuantity===''
}
)
)
@ -655,15 +651,14 @@
numberList.push(
item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList.some(
(cur, key) => {
console.log(12, cur.qualifiedQuantity)
console.log(13, cur.unqualifiedQuantity)
console.log(14, item.inspectionJobCharacteristicsUpdateReqVO.sampleQty)
return parseFloat(cur.qualifiedQuantity) + parseFloat(cur.unqualifiedQuantity) != parseFloat(item.inspectionJobCharacteristicsUpdateReqVO.sampleQty)
}
)
)
}
})
console.log("wolaile")
console.log(arrBol)
let isEmpty1 = arrBol.some(item => item == true)
let isEmptyNumberList = numberList.some(item => item == true)
let isParseFloat = parseFloatList.some(item => item == true)
@ -691,13 +686,11 @@
emit('submitForm', formType.value, data.value)
}
} catch {
console.log(111)
}
}
const staging = async () => {
try {
console.log(data.value.subList)
const elForm = unref(formMainRef)?.getElFormRef()
//
if (!elForm) return
@ -705,7 +698,6 @@
if (!valid) return
//
console.log(11, data.value.packageList)
if (data.value.packageList?.length > 0) {
const validateForm1 = await tableFormRef.value.validateForm()
if (!validateForm1) return
@ -780,9 +772,6 @@
numberList.push(
item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList.some(
(cur, key) => {
console.log(12, cur.qualifiedQuantity)
console.log(13, cur.unqualifiedQuantity)
console.log(14, item.inspectionJobCharacteristicsUpdateReqVO.sampleQty)
return parseFloat(cur.qualifiedQuantity) + parseFloat(cur.unqualifiedQuantity) != parseFloat(item.inspectionJobCharacteristicsUpdateReqVO.sampleQty)
}
)
@ -811,7 +800,6 @@
await InspectionJobMainApi.stagingInspectionJobMain(data.value);
message.success("暂存成功")
} catch {
console.log(111)
}
}
@ -828,7 +816,6 @@
}
//
const changeFeatureType = (e) => {
console.log(e)
// if (e) {
// rules.value['inspectionJobCharacteristicsUpdateReqVO.quantifyQuantifyCode'][0].required = true
// } else {
@ -986,12 +973,10 @@
}
]
}
console.log(222, item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList)
}
//
const changeQualitativeCode = (e, item, cur) => {
let obj = item.selectedProjectRespVOList.find((cur) => cur.dictionaryValue == e)
console.log(obj)
cur.defectLevel = obj.defectLevel
cur.estimateCode = obj.estimateCode
}

24
src/views/wms/agvManage/interfaceInfo/index.vue

@ -20,6 +20,7 @@
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
:showOverflowTooltip="false"
:pagination="{
total: tableObject.total
}"
@ -27,6 +28,16 @@
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #reqBody="{row}">
<el-tooltip>
<template #content>
<div class="toolContent">
<pre>{{ JSON.parse(row.reqBody.replace(/[\\]/g, '')) }}</pre>
</div>
</template>
<span class="ellipsis">{{row.reqBody}}</span>
</el-tooltip>
</template>
<template #number="{row}">
<el-button type="primary" link @click="openDetail(row, '序号', row.number)">
<span>{{ row.number }}</span>
@ -243,3 +254,16 @@ onMounted(async () => {
})
</script>
<style lang="scss">
.toolContent{
max-height: 300px;
overflow: auto;
}
.ellipsis{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 180px;
}
</style>

2
src/views/wms/basicDataManage/itemManage/itemarea/index.vue

@ -45,6 +45,7 @@
@success="getList"
:rules="ItemareaRules"
:isOpenSearchTable="true"
fieldTableColumn="locationCode"
:formAllSchemas="Itemarea.allSchemas"
:tableAllSchemas="ItemareaDetail.allSchemas"
:tableFormRules="ItemareaDetailRules"
@ -122,6 +123,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
val.forEach(item=>{
const newRow = {...row}
if(formField == 'locationCode') {
if(tableData.value.find(item1=>item1['locationCode'] == item['code'])) return
newRow['locationCode'] = item['code']
}else{
newRow[formField] = item[searchField]

1
src/views/wms/basicDataManage/itemManage/relegateRequest/relegateRequest.data.ts

@ -20,6 +20,7 @@ export const RelegateRequest = useCrudSchemas(reactive<CrudSchema[]>([
field: 'number',
sort: 'custom',
isSearch: true,
isForm:false,
},
{
label: '物料代码',

3
src/views/wms/deliversettlementManage/deliver/deliverRequestMain/index.vue

@ -123,9 +123,8 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
DeliverRequestDetail.allSchemas.tableFormColumns.forEach(item => {
tableFormKeys[item.field] = item.default ? item.default : ''
})
console.log('tableData.value',tableData.value)
val.forEach(item=>{
if(tableData.value.find(item1=>item1['id'] == item['id'])) return
if(tableData.value.find(item1=>item1['itemCode'] == item['itemCode'])) return
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow['uom'] = item['customerUom']
tableData.value.push(newRow)

2
src/views/wms/deliversettlementManage/deliverplan/deliverPlanMain/index.vue

@ -127,7 +127,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
if (type == 'tableForm') {
if(formField == 'itemCode') {
val.forEach(item=>{
if(tableData.value.find(item1=>item1['id'] == item['id'])) return
if(tableData.value.find(item1=>item1['itemCode'] == item['itemCode'])) return
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow['uom'] = item['customerUom']
tableData.value.push(newRow)

2
src/views/wms/deliversettlementManage/stockup/stockupMainRequest/index.vue

@ -127,7 +127,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
// }
if(formField == 'itemCode') {
val.forEach(item=>{
if(tableData.value.find(item1=>item1['id'] == item['id'])) return
if(tableData.value.find(item1=>item1['itemCode'] == item['code'])) return
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow['uom'] = item['uom']
newRow['itemCode'] = item['code']

16
src/views/wms/inventoryjobManage/containermanage/containerMainRequest/containerMainRequest.data.ts

@ -96,6 +96,7 @@ export const ContainerMainRequest = useCrudSchemas(reactive<CrudSchema[]>([
field: 'remark',
sort: 'custom',
isSearch: true,
isTable: false
},
{
label: '部门',
@ -219,9 +220,7 @@ export const ContainerMainRequest = useCrudSchemas(reactive<CrudSchema[]>([
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
table: {
width: 200
},
isTable: false,
isForm: false,
},
{
@ -247,9 +246,7 @@ export const ContainerMainRequest = useCrudSchemas(reactive<CrudSchema[]>([
field: 'siteId',
sort: 'custom',
isForm: false,
table: {
width: 100
},
isTable: false,
},
{
label: '操作',
@ -439,6 +436,7 @@ export const ContainerDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
label: '备注',
field: 'remark',
sort: 'custom',
isTable: false
},
{
label: '创建时间',
@ -453,9 +451,7 @@ export const ContainerDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
table: {
width: 200
},
isTable: false,
isForm: false,
isTableForm: false
},
@ -495,6 +491,8 @@ export const ContainerDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
label: '操作',
field: 'action',
isForm: false,
hiddenInMain:true,
isTableForm: false,
table: {
width: 150,
fixed: 'right'

15
src/views/wms/inventoryjobManage/containermanage/containerMainRequest/index.vue

@ -298,7 +298,7 @@ const findIndex = row['masterId']?tableObject.tableList.findIndex(item=>item['ma
return []
}
return [
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:'wms:container-main-request:close'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['2','3','4','6']),hasPermi:'wms:container-main-request:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:container-main-request:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:container-main-request:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:container-main-request:refused'}), //
@ -466,8 +466,19 @@ const handleExport = async () => {
await message.exportConfirm()
//
exportLoading.value = true
if(routeName.value == 'ReturnContainerManageRequest'){
const data = await ContainerMainRequestApi.exportReturnContainerMainRequest(tableObject.params)
download.excel(data, '器具返回申请.xlsx')
}else if ( routeName.value == 'MoveContainerManageRequest') {
const data = await ContainerMainRequestApi.exportMoveContainerMainRequest(tableObject.params)
download.excel(data, '器具转移申请.xlsx')
}else if ( routeName.value == 'DeliverContainerManageRequest') {
const data = await ContainerMainRequestApi.exportDeliverContainerMainRequest(tableObject.params)
download.excel(data, '器具发运申请.xlsx')
}else{
const data = await ContainerMainRequestApi.exportContainerMainRequest(tableObject.params)
download.excel(data, '器具管理申请主.xlsx')
download.excel(data, '器具管理申请.xlsx')
}
} catch {
} finally {
exportLoading.value = false

16
src/views/wms/inventoryjobManage/containermanage/containerRecordMain/containerRecordMain.data.ts

@ -63,6 +63,7 @@ export const ContainerRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
label: '备注',
field: 'remark',
sort: 'custom',
isTable: false
},
{
label: '部门',
@ -112,9 +113,7 @@ export const ContainerRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
field: 'siteId',
sort: 'custom',
isForm: false,
table: {
width: 100
},
isTable: false,
},
{
label: '创建时间',
@ -129,9 +128,7 @@ export const ContainerRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
table: {
width: 200
},
isTable: false,
isForm: false,
},
{
@ -220,6 +217,7 @@ export const ContainerRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([
label: '备注',
field: 'remark',
sort: 'custom',
isTable: false
},
{
label: '创建时间',
@ -234,9 +232,7 @@ export const ContainerRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
table: {
width: 200
},
isTable: false,
isForm: false,
isTableForm: false
},
@ -276,6 +272,8 @@ export const ContainerRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([
label: '操作',
field: 'action',
isForm: false,
hiddenInMain:true,
isTableForm: false,
table: {
width: 150,
fixed: 'right'

8
src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/index.vue

@ -250,7 +250,7 @@ const findIndex = row['masterId']?tableObject.tableList.findIndex(item=>item['ma
return []
}
return [
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:'wms:container-main-request:close'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['2','3','4','6']),hasPermi:'wms:container-main-request:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:container-main-request:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:container-main-request:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:container-main-request:refused'}), //
@ -420,8 +420,8 @@ const handleExport = async () => {
await message.exportConfirm()
//
exportLoading.value = true
const data = await ContainerMainRequestApi.exportContainerMainRequest(tableObject.params)
download.excel(data, '器具管理申请主.xlsx')
const data = await ContainerMainRequestApi.exportInitialContainerMainRequest(tableObject.params)
download.excel(data, '初始化器具管理申请主.xlsx')
} catch {
} finally {
exportLoading.value = false
@ -436,7 +436,7 @@ const handleImport = () => {
//
const importTemplateData = reactive({
templateUrl: '',
templateTitle: 'importFileName.xlsx'
templateTitle: importFileName.value + '.xlsx'
})
//
const importSuccess = () => {

16
src/views/wms/inventoryjobManage/containermanage/initialContainerMainRequest/initialContainerMainRequest.data.ts

@ -100,6 +100,7 @@ export const ContainerMainRequest = useCrudSchemas(reactive<CrudSchema[]>([
field: 'remark',
sort: 'custom',
isSearch: true,
isTable:false,
},
{
label: '部门',
@ -223,9 +224,7 @@ export const ContainerMainRequest = useCrudSchemas(reactive<CrudSchema[]>([
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
table: {
width: 200
},
isTable:false,
isForm: false,
},
{
@ -251,9 +250,7 @@ export const ContainerMainRequest = useCrudSchemas(reactive<CrudSchema[]>([
field: 'siteId',
sort: 'custom',
isForm: false,
table: {
width: 100
},
isTable:false,
},
{
label: '操作',
@ -410,6 +407,7 @@ export const ContainerDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
label: '备注',
field: 'remark',
sort: 'custom',
isTable:false,
},
{
label: '创建时间',
@ -424,9 +422,7 @@ export const ContainerDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
table: {
width: 200
},
isTable:false,
isForm: false,
isTableForm: false
},
@ -466,6 +462,8 @@ export const ContainerDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
label: '操作',
field: 'action',
isForm: false,
hiddenInMain:true,
isTableForm: false,
table: {
width: 200,
fixed: 'right'

6
src/views/wms/inventoryjobManage/containermanage/scrapContainerMainRequest/index.vue

@ -273,7 +273,7 @@ const findIndex = row['masterId']?tableObject.tableList.findIndex(item=>item['ma
return []
}
return [
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:'wms:container-main-request:close'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['2','3','4','6']),hasPermi:'wms:container-main-request:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:container-main-request:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:container-main-request:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:container-main-request:refused'}), //
@ -446,8 +446,8 @@ const handleExport = async () => {
await message.exportConfirm()
//
exportLoading.value = true
const data = await ContainerMainRequestApi.exportContainerMainRequest(tableObject.params)
download.excel(data, '器具管理申请主.xlsx')
const data = await ContainerMainRequestApi.exportScrapContainerMainRequest(tableObject.params)
download.excel(data, '报废器具管理申请主.xlsx')
} catch {
} finally {
exportLoading.value = false

16
src/views/wms/inventoryjobManage/containermanage/scrapContainerMainRequest/scrapContainerMainRequest.data.ts

@ -96,6 +96,7 @@ export const ContainerMainRequest = useCrudSchemas(reactive<CrudSchema[]>([
field: 'remark',
sort: 'custom',
isSearch: true,
isTable: false
},
{
label: '部门',
@ -219,9 +220,7 @@ export const ContainerMainRequest = useCrudSchemas(reactive<CrudSchema[]>([
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
table: {
width: 200
},
isTable: false,
isForm: false,
},
{
@ -247,9 +246,7 @@ export const ContainerMainRequest = useCrudSchemas(reactive<CrudSchema[]>([
field: 'siteId',
sort: 'custom',
isForm: false,
table: {
width: 100
},
isTable: false,
},
{
label: '操作',
@ -437,6 +434,7 @@ export const ContainerDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
label: '备注',
field: 'remark',
sort: 'custom',
isTable: false
},
{
label: '创建时间',
@ -451,9 +449,7 @@ export const ContainerDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
table: {
width: 200
},
isTable: false,
isForm: false,
isTableForm: false
},
@ -493,6 +489,8 @@ export const ContainerDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
label: '操作',
field: 'action',
isForm: false,
hiddenInMain:true,
isTableForm: false,
table: {
width: 150,
fixed: 'right'

75
src/views/wms/issueManage/productionreturn/productionreturnRequestMain/index.vue

@ -70,6 +70,7 @@
:apiDelete="ProductionreturnRequestDetailApi.deleteProductionreturnRequestDetail"
@searchTableSuccessDetail="searchTableSuccessDetail"
@detailOpenForm="detailOpenForm"
:detailValidate="detailValidate"
/>
<!-- 创建标签 -->
@ -90,13 +91,14 @@
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/wms/productionreturn-request-main/import" :importTemplateData="importTemplateData"
@success="importSuccess" :updateIsDisable="true" :coverIsDisable="true" :mode="2" />
<!-- 标签打印 -->
<SearchTable style="width:905px" ref="searchTableRef" @searchTableSuccess="searchTableSuccess1" />
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import { ProductionreturnRequestMain,ProductionreturnRequestMainRules,ProductionreturnRequestDetail,ProductionreturnRequestDetailRules,ProductionreturnRequestDetailLabel,ProductionreturnRequestDetailLabelRules } from './productionreturnRequestMain.data'
import { ProductionreturnRequestMain,ProductionreturnRequestMainRules,ProductionreturnRequestDetail,ProductionreturnRequestDetailRules,ProductionreturnRequestDetailLabel,ProductionreturnRequestDetailLabelRules, SupplierdeliverRequestPackage } from './productionreturnRequestMain.data'
import * as ProductionreturnRequestMainApi from '@/api/wms/productionreturnRequestMain'
import * as ProductionreturnRequestDetailApi from '@/api/wms/productionreturnRequestDetail'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
@ -130,6 +132,19 @@ const updataTableColumns = (val) => {
tableColumns.value = val
}
// /
const detailValidate = (data) => {
let tag = false;
if(data.qty <= 0){
message.warning('数量必须大于0')
tag = false;
return tag;
}else {
tag = true;
return tag;
}
}
//
const isItemType = async (itemCode, labelTypeParams) => {
let isType = false
@ -509,6 +524,34 @@ const openForm =async (type: string, row?: number) => {
formRef.value.open(type, row)
}
// --退
const searchTableSuccess1 = async (formField, searchField, val, formRef, type, row) => {
console.log('批量打印',val)
// let rows:any = []
// val.forEach(item=>{
// rows = [...rows,...item.selectionRows.map(item1=>item1.number)]
// })
if(val.length == 0){
message.warning("请先选择要打印的数据!")
return
}
// window.open(src.value + '&asn_number=' + val.map(item1=>item1.number).join(','))
await PackageApi.batchPrintingLable(val.map(item1=>item1.number).join(',')).then(res => {
console.log(res)
if (labelType.value == 'cg') {
const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAccessToken())
window.open(src.value+'&asn_number='+res)
} else {
const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAccessToken())
window.open(src.value+'&asn_number='+res)
}
}).catch(err => {
console.log(err)
message.error('创建标签失败')
})
}
//
const { wsCache } = useCache()
/** 详情操作 */
@ -657,18 +700,32 @@ const handlePoint = async (row) => {
})
//
if (isCreateLabel.value) {
if (labelType.value == 'cg') {
const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAccessToken())
window.open(src.value+'&request_number='+row.number)
} else {
const src = ref(BASE_URL + '/jmreport/view/922734157577715712?token=' + getAccessToken())
window.open(src.value+'&request_number='+row.number)
}
labelPrint(row)
} else {
message.warning('请先创建标签')
}
}
const searchTableRef = ref()
const labelPrint = async (row) => {
tableObject.loading = true
const defaultParams = {'moduleName':'productreceipt_predict','recordNumber':row.number}
const {tableObject:tableObjectPrint ,tableMethods} = useTable({
defaultParams,
getListApi: PackageApi.getLabelDetailPage //
})
//
const { getList:getListPrint } = tableMethods
getListPrint()
tableObject.loading = false
const tableColumns = SupplierdeliverRequestPackage.allSchemas.tableFormColumns
tableColumns.forEach((item) => {
item.width = item.table?.width || 150
})
searchTableRef.value.openData("标签信息",tableObjectPrint,{tableColumns},true)
}
/** 导入 */
const importFormRef = ref()
const handleImport = () => {

54
src/views/wms/issueManage/productionreturn/productionreturnRequestMain/productionreturnRequestMain.data.ts

@ -1338,3 +1338,57 @@ export const ProductionreturnRequestDetailLabelRules = reactive({
]
})
export const SupplierdeliverRequestPackage = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '包装号',
field: 'number',
sort: 'custom',
isSearch: true,
table: {
width: 180,
fixed: 'left'
},
},
{
label: '物料代码',
field: 'itemCode',
sort: 'custom',
isSearch: true,
table: {
width: 150,
},
},
{
label: '批次',
field: 'batch',
sort: 'custom',
isSearch: true,
table: {
width: 150,
},
},
{
label: '数量',
field: 'qty',
sort: 'custom',
table: {
width: 150,
},
},
{
label: '计量单位',
field: 'uom',
sort: 'custom',
dictType: DICT_TYPE.UOM,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
form: {
component: 'SelectV2'
},
table: {
width: 150,
},
},
]))

12
src/views/wms/moveManage/inventorymove/inventorymoveRequestMain/index.vue

@ -117,7 +117,7 @@ const { tableObject, tableMethods } = useTable({
}
fromInventoryStatus.value = 'OK'
toInventoryStatus.value = "HOLD"
businessType.value = 'OkToHoldRequest'
businessType.value = 'OkToHold'
importFileName.value = '合格转隔离申请'
} else if ( routeName.value == 'HoldtookRequestMain') {
tableObject.params = {
@ -126,7 +126,7 @@ const { tableObject, tableMethods } = useTable({
}
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "OK"
businessType.value = 'HoldToOkRequest'
businessType.value = 'HoldToOk'
importFileName.value = '隔离转合格申请'
} else if ( routeName.value == 'HoldtoscrapRequestMain') {
tableObject.params = {
@ -135,7 +135,7 @@ const { tableObject, tableMethods } = useTable({
}
fromInventoryStatus.value = 'HOLD'
toInventoryStatus.value = "SCRAP"
businessType.value = 'HoldToScrapRequest'
businessType.value = 'HoldToScrap'
importFileName.value = '隔离转报废申请'
} else if ( routeName.value == 'OktoscrapRequestMain') {
tableObject.params = {
@ -144,7 +144,7 @@ const { tableObject, tableMethods } = useTable({
}
fromInventoryStatus.value = 'OK'
toInventoryStatus.value = "SCRAP"
businessType.value = 'OkToScrapRequest'
businessType.value = 'OkToScrap'
importFileName.value = '合格转报废申请'
} else if ( routeName.value == 'ScraptoholdRequestMain') {
tableObject.params = {
@ -153,11 +153,11 @@ const { tableObject, tableMethods } = useTable({
}
fromInventoryStatus.value = 'SCRAP'
toInventoryStatus.value = "HOLD"
businessType.value = 'ScrapToHoldRequest'
businessType.value = 'ScrapToHold'
importFileName.value = '报废转隔离申请'
} else if( routeName.value == 'InventorymoveRequestMain'){
fromInventoryStatus.value = null
businessType.value = 'InventorymoveRequest'
businessType.value = 'Move'
importFileName.value = '库存移动申请'
}else {
tableObject.params = {

244
src/views/wms/productionManage/productionplan/qadproductionplan/index.vue

@ -0,0 +1,244 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="QadProductionPlanMain.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
</ContentWrap>
<!-- 列表头部 -->
<TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="QadProductionPlanMain.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
:pagination="{
total: tableObject.total
}"
v-model:pageSize="tableObject.pageSize"
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
>
<template #number="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.number)">
<span>{{ row.number }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<BasicForm
ref="basicFormRef"
@success="formsSuccess"
:rules="QadProductionPlanMainRules"
:formAllSchemas="QadProductionPlanMain.allSchemas"
:apiUpdate="QadProductionPlanMainApi.updateQadProductionPlanMain"
:apiCreate="QadProductionPlanMainApi.createQadProductionPlanMain"
@searchTableSuccess="searchTableSuccess"
:isBusiness="false"
/>
<!-- 详情 -->
<Detail ref="detailRef" :isBasic="true" :allSchemas="QadProductionPlanMain.allSchemas" />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/wms/qad-production-plan-main/import" :importTemplateData="importTemplateData" @success="importSuccess" />
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { QadProductionPlanMain,QadProductionPlanMainRules } from './qadProductionPlanMain.data'
import * as QadProductionPlanMainApi from '@/api/wms/qadproductionplan'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue'
defineOptions({ name: 'QadProductionPlanMain' })
const message = useMessage() //
const { t } = useI18n() //
const route = useRoute() //
const routeName = ref()
routeName.value = route.name
const tableColumns = ref(QadProductionPlanMain.allSchemas.tableColumns)
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
}
//
const updataTableColumns = (val) => {
tableColumns.value = val
}
const { tableObject, tableMethods } = useTable({
getListApi: QadProductionPlanMainApi.getQadProductionPlanMainPage //
})
//
const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:qadProductionPlanMain:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:qadProductionPlanMain:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:qadProductionPlanMain:export'}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
// {
// label: '',
// name: 'zdy',
// hide: false,
// type: 'primary',
// icon: 'Select',
// color: ''
// },
]
//
const buttonBaseClick = (val, item) => {
if (val == 'add') { //
openForm('create')
} else if (val == 'import') { //
handleImport()
} else if (val == 'export') { //
handleExport()
} else if (val == 'refresh') { //
getList()
} else if (val == 'filtrate') { //
} else { //
console.log('其他按钮', item)
}
}
// -
const butttondata = [
defaultButtons.mainListEditBtn({hasPermi:'wms:qadProductionPlanMain:update'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'wms:qadProductionPlanMain:delete'}), //
]
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
openForm('update', row)
} else if (val == 'delete') { //
handleDelete(row.id)
}
}
/** 添加/修改操作 */
const basicFormRef = ref()
const openForm = (type: string, row?: any) => {
basicFormRef.value.open(type, row)
}
// form
const formsSuccess = async (formType,data) => {
var isHave =QadProductionPlanMain.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
message.error('失效时间要大于生效时间')
return;
}
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') {
await QadProductionPlanMainApi.createQadProductionPlanMain(data)
message.success(t('common.createSuccess'))
} else {
await QadProductionPlanMainApi.updateQadProductionPlanMain(data)
message.success(t('common.updateSuccess'))
}
basicFormRef.value.dialogVisible = false
getList()
}
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {
detailRef.value.openDetail(row, titleName, titleValue, 'basicQadProductionPlanMain')
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await QadProductionPlanMainApi.deleteQadProductionPlanMain(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const exportLoading = ref(false) //
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await QadProductionPlanMainApi.exportQadProductionPlanMain(tableObject.params)
download.excel(data, 'QAD生产计划主.xlsx')
} catch {
} finally {
exportLoading.value = false
}
}
/** 导入 */
const importFormRef = ref()
const handleImport = () => {
importFormRef.value.open()
}
//
const importTemplateData = reactive({
templateUrl: '',
templateTitle: 'QAD生产计划主导入模版.xlsx'
})
//
const importSuccess = () => {
getList()
}
//
const searchFormClick = (searchData) => {
tableObject.params = {
isSearch: true,
filters: searchData.filters
}
getList() //
}
/** 初始化 **/
onMounted(async () => {
getList()
importTemplateData.templateUrl = await QadProductionPlanMainApi.importTemplate()
})
</script>

119
src/views/wms/productionManage/productionplan/qadproductionplan/qadProductionPlanMain.data.ts

@ -0,0 +1,119 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
// 表单校验
export const QadProductionPlanMainRules = reactive({
workshop: [required],
woNumber: [required],
woLine: [required],
})
export const QadProductionPlanMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '顺序',
field: 'displayOrder',
sort: 'custom',
form: {
component: 'InputNumber',
value: 0
},
},
{
label: '单据号',
field: 'number',
sort: 'custom',
},
{
label: '车间',
field: 'workshop',
sort: 'custom',
isSearch: true,
},
{
label: '生产线',
field: 'productionLine',
sort: 'custom',
isSearch: true,
},
{
label: '班次',
field: 'shift',
sort: 'custom',
isSearch: true,
},
{
label: '班组',
field: 'team',
sort: 'custom',
},
{
label: '计划日期',
field: 'planDate',
sort: 'custom',
formatter: dateFormatter,
form: {
component: 'DatePicker',
componentProps: {
type: 'datetime',
valueFormat: 'x'
}
},
},
{
label: '明细列表',
field: 'details',
sort: 'custom',
},
{
label: '计划类型',
field: 'planType',
sort: 'custom',
form: {
component: 'SelectV2'
},
},
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
form: {
component: 'SelectV2'
},
},
{
label: '备注',
field: 'remark',
sort: 'custom',
},
{
label: '是否可用',
field: 'available',
sort: 'custom',
isForm: false,
},
{
label: '状态',
field: 'status',
sort: 'custom',
isForm: false,
},
{
label: '订单号',
field: 'woNumber',
sort: 'custom',
},
{
label: '订单行',
field: 'woLine',
sort: 'custom',
},
// {
// label: '操作',
// field: 'action',
// isForm: false,
// table: {
// width: 150,
// fixed: 'right'
// }
// }
]))

4
src/views/wms/productionManage/productputaway/productputawayRequestMain/index.vue

@ -108,11 +108,11 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
nextTick(() => {
if (type == 'tableForm') {
//
if(tableData.value.find(item1=>item1['id'] == item['id'])) return
val.forEach(item=>{
if(tableData.value.find(item1=>item1['itemCode'] == item['itemCode']&&item1['batch'] == item['batch']&&item1['packingNumber'] == item['packingNumber']&&item1['fromLocationCode'] == item['locationCode']&&item1['inventoryStatus'] == item['inventoryStatus'])) return
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow[formField] = item[searchField]
newRow['poLine'] = item['itemCode']
newRow['itemCode'] = item['itemCode']
newRow['packingNumber'] = item['packingNumber']
newRow['containerNumber'] = item['containerNumber']
newRow['batch'] = item['batch']

10
src/views/wms/productionManage/productputaway/productputawayRequestMain/productputawayRequestMain.data.ts

@ -462,7 +462,7 @@ export const ProductputawayRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
searchField: 'itemCode', // 查询弹窗赋值字段
searchTitle: '库存余额信息', // 查询弹窗标题
searchAllSchemas: Balance.allSchemas, // 查询弹窗所需类
searchPage: BalanceApi.getBalancePageByBusinessType, // 查询弹窗所需分页方法
searchPage: BalanceApi.getBalancePageByBusinessTypeByItemType, // 查询弹窗所需分页方法
searchCondition: [{
key: 'businessType',
value: businessTypeData.code,
@ -476,7 +476,7 @@ export const ProductputawayRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
searchField: 'itemCode', // 查询弹窗赋值字段
searchTitle: '库存余额信息', // 查询弹窗标题
searchAllSchemas: Balance.allSchemas, // 查询弹窗所需类
searchPage: BalanceApi.getBalancePageByBusinessType, // 查询弹窗所需分页方法
searchPage: BalanceApi.getBalancePageByBusinessTypeByItemType, // 查询弹窗所需分页方法
searchCondition: [{
key: 'businessType',
value: businessTypeData.code,
@ -533,6 +533,9 @@ export const ProductputawayRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
table: {
width: 150
},
tableForm: {
disabled: true
}
},
{
label: '包装数量',
@ -541,6 +544,9 @@ export const ProductputawayRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
table: {
width: 150
},
tableForm: {
disabled: true
}
},
{
label: '计量单位',

2
src/views/wms/productionManage/productredress/productredressRequestMain/index.vue

@ -128,8 +128,8 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
//
row[formField] = val[0][searchField]
if (formField == 'itemCode') {
if(tableData.value.find(item1=>item1['id'] == item['id'])) return
val.forEach(item=>{
if(tableData.value.find(item1=>item1['itemCode'] == item['itemCode']&&item1['batch'] == item['batch']&&item1['packingNumber'] == item['packingNumber']&&item1['toLocationCode'] == item['locationCode']&&item1['inventoryStatus'] == item['inventoryStatus'])) return
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item}))
newRow['itemCode'] = item['itemCode']
newRow['qty'] = item['qty']

45
src/views/wms/productionManage/productredress/productredressRequestMain/productredressRequestMain.data.ts

@ -317,31 +317,32 @@ export const ProductredressRequestDetail = useCrudSchemas(reactive<CrudSchema[]>
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchField: 'itemCode', // 查询弹窗赋值字段
searchTitle: '库存余额信息', // 查询弹窗标题
searchAllSchemas: Balance.allSchemas, // 查询弹窗所需类
searchPage: BalanceApi.getBalancePageByBusinessTypeByItemType, // 查询弹窗所需分页方法
searchCondition: [{
key: 'businessType',
value: businessTypeData.code,
action: '==', // 查询拼接条件
isSearch: true, // 使用自定义拼接条件
isMainValue: false // 拼接条件必须要 false 同时不能与 isMainValue: true 同用
},{
key: 'packingNumber', // 查询列表中字段
value: '', // 指查询具体值
action: 'isNotStr', // 查询拼接条件
isSearch: true, // 使用自定义拼接条件
isMainValue: false // 拼接条件必须要 false 同时不能与 isMainValue: true 同用
}]
}
// componentProps: {
// isSearchList: true, // 开启查询弹窗
// searchListPlaceholder: '请选择物料代码', // 输入框占位文本
// searchField: 'itemCode', // 查询弹窗赋值字段
// searchTitle: '库存余额信息', // 查询弹窗标题
// searchAllSchemas: Balance.allSchemas, // 查询弹窗所需类
// searchPage: BalanceApi.getBalancePageByBusinessTypeByItemType, // 查询弹窗所需分页方法
// searchCondition: [{
// key: 'businessType',
// value: businessTypeData.code,
// action: '==', // 查询拼接条件
// isSearch: true, // 使用自定义拼接条件
// isMainValue: false // 拼接条件必须要 false 同时不能与 isMainValue: true 同用
// },{
// key: 'packingNumber', // 查询列表中字段
// value: '', // 指查询具体值
// action: 'isNotStr', // 查询拼接条件
// isSearch: true, // 使用自定义拼接条件
// isMainValue: false // 拼接条件必须要 false 同时不能与 isMainValue: true 同用
// }]
// }
},
tableForm:{
disabled: true,
multiple:true,
isInpuFocusShow: true,
// isInpuFocusShow: true,
searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchField: 'itemCode', // 查询弹窗赋值字段
searchTitle: '库存余额信息', // 查询弹窗标题

40
src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/index.vue

@ -112,6 +112,7 @@
<script setup lang="ts">
import dayjs from 'dayjs'
import { addDay } from '@/utils/formatTime'
import download from '@/utils/download'
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import {
@ -131,7 +132,7 @@ import * as PurchaseDetailApi from '@/api/wms/purchaseDetail'
import { PurchaseDetail } from '../../supplierdeliver/purchaseMain/purchaseMain.data'
import * as ItembasicApi from '@/api/wms/itembasic'
//
//
defineOptions({ name: 'PurchasereceiptRequestMain' })
const message = useMessage() //
@ -154,7 +155,7 @@ const updataTableColumns = (val) => {
//
const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => {
//console.log("formRef",formRef)
//console.log("supplierCode",formRef.value.formRef.formModel.supplierCode)
console.log("searchTableSuccess",formField, searchField, val, formRef, type, row)
nextTick(() => {
if (type == 'tableForm') {
//
@ -162,7 +163,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
if(formField == 'itemCode') {
row['itemCode'] = val[0]['code']
} else if(formField == 'poNumber') {
row['poNumber'] = val[0]['number']
updateTableData(val)
} else if(formField == 'poLine'){
//--
val.forEach(item=>{
@ -213,6 +214,25 @@ const onEnter = async (field,value)=>{
console.log(field,value)
getSearchTableData(value,true)
}
const updateTableData = (tableList)=>{
tableList.forEach(row=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...row}))
newRow['poLine'] = row['lineNumber']
newRow['itemCode'] = row['itemCode']
newRow['uom'] = row['uom']
newRow['poNumber'] =row['number']
newRow['supplierCode'] =row['supplierCode']
//
newRow['produceDate'] = dayjs().valueOf()
newRow['arriveDate'] = dayjs().valueOf()
//
newRow['batch'] = formatDate(newRow['produceDate'],'YYYYMMDD');
newRow['defaultToLocationCode'] =row['defaultLocation']
if(!tableData.value.find((item:object)=>item.poNumber == newRow.poNumber&&item.itemCode == newRow.itemCode&&item.poLine == newRow.poLine&&item.batch == newRow.batch)){
tableData.value.push(newRow)
}
})
}
const getSearchTableData = async (number,isEnter=false)=>{
const {tableObject ,tableMethods} = useTable({
defaultParams:{number},
@ -226,22 +246,10 @@ const getSearchTableData = async (number,isEnter=false)=>{
item.width = item.table?.width || 150
})
tableData.value = []
updateTableData(tableObject.tableList)
const itemCodes = []
tableObject.tableList.forEach(row=>{
itemCodes.push(row['itemCode'])
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...row}))
newRow['poLine'] = row['lineNumber']
newRow['itemCode'] = row['itemCode']
newRow['uom'] = row['uom']
newRow['poNumber'] =row['number']
newRow['supplierCode'] =row['supplierCode']
//
newRow['produceDate'] = dayjs().valueOf()
newRow['arriveDate'] = dayjs().valueOf()
//
newRow['batch'] = formatDate(newRow['produceDate'],'YYYYMMDD');
newRow['defaultToLocationCode'] =row['defaultLocation']
tableData.value.push(newRow)
if(isEnter){
//--
const setV = {}

2
src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue

@ -517,6 +517,7 @@ console.log('PurchaseMain.allSchemas.searchSchema',PurchaseMain.allSchemas.searc
if (item.field == 'orderQty') {
console.log("AAAAAA",item)
item.tableForm.disabled = false
item.hidden = false
}
})
}
@ -525,6 +526,7 @@ console.log('PurchaseMain.allSchemas.searchSchema',PurchaseMain.allSchemas.searc
if (item.field == 'orderQty') {
console.log("BBBBB",item)
item.tableForm.disabled = true
item.hidden = true
}
})
}

1
src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/purchaseMain.data.ts

@ -494,6 +494,7 @@ export const PurchaseDetail = useCrudSchemas(reactive<CrudSchema[]>([
},
tableForm: {
disabled:false,
hidden:false,
type: 'InputNumber',
min: 1,
precision: 6

7
src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue

@ -117,8 +117,15 @@
newRow['orderQty'] = item['orderQty']
newRow['planQty'] = item['orderQty']-item['plannedQty']
newRow['available'] = item['available']
console.log('tableData.value',tableData.value)
console.log('item',item)
if(!tableData.value.find(tableItem=>tableItem['itemCode']==item['itemCode']&&tableItem['poNumber']==item['number']&&tableItem['poLine']==item['lineNumber'])){
tableData.value.push(newRow)
}
}else{
tableData.value.push(newRow)
}
})
} else {
const setV = {}

1
src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverBasicForm.vue

@ -173,7 +173,6 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row) =>
//--
const itemCodes = []
val.forEach(item=>{
if(tableData.value.find(item1=>item1['id'] == item['id'])) return
const newRow = {...row}
newRow[formField] = item[searchField]
newRow['poNumber'] = item['poNumber']

2
src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data.ts

@ -298,7 +298,7 @@ export const SupplierdeliverRequestMain = useCrudSchemas(reactive<CrudSchema[]>(
label: '申请时间',
field: 'requestTime',
formatter: dateFormatter,
detaul: {
detail: {
dateFormat: 'YYYY-MM-DD HH:mm:ss'
},
sort: 'custom',

1
src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/index.vue

@ -204,6 +204,7 @@
if (type == 'tableForm') {
//
val.forEach(item=>{
if(tableData.value.find(item1=>item1['poNumber'] == item['poNumber']&&item1['poLine'] == item['poLine'])) return
const newRow = {...row}
newRow[formField] = item[searchField]
if (formField == 'poLine') {

Loading…
Cancel
Save