diff --git a/.env b/.env index 7af3e7916..80e701f49 100644 --- a/.env +++ b/.env @@ -1,5 +1,5 @@ # 标题 -VITE_APP_TITLE=SFMS管理系统 +VITE_APP_TITLE=富维海拉管理系统 # 项目本地运行端口号 VITE_PORT=80 diff --git a/.env.hella15 b/.env.hella15 index 15f726a54..ee35a6305 100644 --- a/.env.hella15 +++ b/.env.hella15 @@ -4,10 +4,10 @@ NODE_ENV=production VITE_DEV=false # 请求路径 -VITE_BASE_URL='https://172.21.32.15:55563/api' +VITE_BASE_URL='https://scp.faway-hella.com/api' # 上传路径 -VITE_UPLOAD_URL='https://172.21.32.15:55563/api/admin-api/infra/file/upload' +VITE_UPLOAD_URL='https://scp.faway-hella.com/api/admin-api/infra/file/upload' # 接口前缀 VITE_API_BASEPATH= diff --git a/.env.hella16 b/.env.hella16 index 251fa31e6..e739fa5c3 100644 --- a/.env.hella16 +++ b/.env.hella16 @@ -4,10 +4,10 @@ NODE_ENV=production VITE_DEV=false # 请求路径 -VITE_BASE_URL='https://172.21.32.16:55563/api' +VITE_BASE_URL='https://scptest.faway-hella.com/api' # 上传路径 -VITE_UPLOAD_URL='https://172.21.32.16:55563/api/admin-api/infra/file/upload' +VITE_UPLOAD_URL='https://scptest.faway-hella.com/api/admin-api/infra/file/upload' # 接口前缀 VITE_API_BASEPATH= diff --git a/README.md b/README.md index 82b41ee1a..d3e92e517 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -## dev发布2024-05-16-002 +## dev发布2024-05-17-002 **xxxx.data.ts 文件配置说明** **form表单查询弹窗配置** form: { diff --git a/index.html b/index.html index eff7359f1..ba11b4e50 100644 --- a/index.html +++ b/index.html @@ -3,16 +3,16 @@ - + %VITE_APP_TITLE% @@ -137,7 +137,7 @@
- +
%VITE_APP_TITLE%
diff --git a/nginx_prod.conf b/nginx_prod.conf index 225deb142..7cd6ed0f8 100644 --- a/nginx_prod.conf +++ b/nginx_prod.conf @@ -73,5 +73,29 @@ http { index index.html index.htm; } } + server { + listen 56563 ssl; + server_name_in_redirect off; + server_name _; + ssl_certificate /opt/faway-hella/faway-hella.com.pem; + ssl_certificate_key /opt/faway-hella/faway-hella.com.key; + location /api/ { + proxy_pass http://sfms3.0/; + proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header; + proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $http_x_forwarded_for; + } + location /profile/ { + alias /opt/profile/; + index index.html index.htm; + } + location / { + try_files $uri $uri/ /index.html; + root /opt/sfms3.0; + index index.html index.htm; + } + } } diff --git a/src/api/qms/inspectionJob/inspectionJobMain/index.ts b/src/api/qms/inspectionJob/inspectionJobMain/index.ts index aca7fd268..3346beae4 100644 --- a/src/api/qms/inspectionJob/inspectionJobMain/index.ts +++ b/src/api/qms/inspectionJob/inspectionJobMain/index.ts @@ -51,12 +51,14 @@ export const abandonInspectionJobMain = async (id) => { export const closeInspectionJobMain = async (id) => { return await request.put({ url: `/qms/inspection-job-main/close?id=` + id }) } - +// 发布检验任务 +export const releaseInspectionJobMain = async (id) => { + return await request.put({ url: `/qms/inspection-job-main/release?id=` + id }) +} // 导出检验申请 Excel export const exportInspectionJobMain = async (params) => { return await request.download({ url: `/qms/inspection-job-main/export-excel`, params }) } - // 下载用户导入模板 export const importTemplate = () => { return request.download({ url: '/qms/inspection-job-main/get-import-template' }) diff --git a/src/api/wms/deliverRecordDetail/index.ts b/src/api/wms/deliverRecordDetail/index.ts index 28ea53b04..99890101c 100644 --- a/src/api/wms/deliverRecordDetail/index.ts +++ b/src/api/wms/deliverRecordDetail/index.ts @@ -77,5 +77,5 @@ export const importTemplate = () => { // 查询发货记录子列表 export const getDeliverRecordDetailListToRepeat = async (params) => { - return await request.get({ url: `/wms/deliver-record-detail/listToRepeat`, params }) + return await request.get({ url: `/wms/deliver-record-detail/listToRepeatDeliverReceipt`, params }) } \ No newline at end of file diff --git a/src/api/wms/location/index.ts b/src/api/wms/location/index.ts index 183224ff5..ff0a8435c 100644 --- a/src/api/wms/location/index.ts +++ b/src/api/wms/location/index.ts @@ -94,4 +94,15 @@ export const selectPageItemAreaToLocation = async (params) => { } else { return request.get({ url: `/wms/location/pageItemAreaToLocation`, params }) } +} + + +export const selectConfigToLocation = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/location/pageConfigToLocationSenior', data }) + } else { + return request.get({ url: `/wms/location/pageConfigToLocation`, params }) + } } \ No newline at end of file diff --git a/src/api/wms/printLabelCorrelation/index.ts b/src/api/wms/printLabelCorrelation/index.ts new file mode 100644 index 000000000..a5370b81c --- /dev/null +++ b/src/api/wms/printLabelCorrelation/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +export interface PrintCorrelationVO { + id: number + number: string + labelId: string + labelType: string + available: string +} + +// 查询打印标签关联列表 +export const getPrintCorrelationPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/print-correlation/senior', data }) + } else { + return await request.get({ url: `/wms/print-correlation/page`, params }) + } +} + +// 查询打印标签关联详情 +export const getPrintCorrelation = async (id: number) => { + return await request.get({ url: `/wms/print-correlation/get?id=` + id }) +} + +// 新增打印标签关联 +export const createPrintCorrelation = async (data: PrintCorrelationVO) => { + return await request.post({ url: `/wms/print-correlation/create`, data }) +} + +// 修改打印标签关联 +export const updatePrintCorrelation = async (data: PrintCorrelationVO) => { + return await request.put({ url: `/wms/print-correlation/update`, data }) +} + +// 删除打印标签关联 +export const deletePrintCorrelation = async (id: number) => { + return await request.delete({ url: `/wms/print-correlation/delete?id=` + id }) +} + +// 导出打印标签关联 Excel +export const exportPrintCorrelation = async (params) => { + return await request.download({ url: `/wms/print-correlation/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/print-correlation/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/purchasereceiptRecordDetail/index.ts b/src/api/wms/purchasereceiptRecordDetail/index.ts index 17503b4e7..352eeb112 100644 --- a/src/api/wms/purchasereceiptRecordDetail/index.ts +++ b/src/api/wms/purchasereceiptRecordDetail/index.ts @@ -101,7 +101,7 @@ export const getPurchasereceiptRecordDetailList = async (params) => { // 查询采购收货记录子列表 export const getPurchasereceiptRecordDetailListToRepeat = async (params) => { - return await request.get({ url: `/wms/purchasereceipt-record-detail/listToRepeat`, params }) + return await request.get({ url: `/wms/purchasereceipt-record-detail/listToRepeatPurchaseReceipt`, params }) } // 查询采购收货记录子详情 diff --git a/src/assets/imgs/logo_white.png b/src/assets/imgs/logo_white.png new file mode 100644 index 000000000..a3a435c43 Binary files /dev/null and b/src/assets/imgs/logo_white.png differ diff --git a/src/components/Annex/src/Annex.vue b/src/components/Annex/src/Annex.vue index 7d5f0e142..5f5f144d6 100644 --- a/src/components/Annex/src/Annex.vue +++ b/src/components/Annex/src/Annex.vue @@ -3,7 +3,7 @@
-
diff --git a/src/components/Descriptions/src/Descriptions.vue b/src/components/Descriptions/src/Descriptions.vue index 6f00f10c2..f81f8f35a 100644 --- a/src/components/Descriptions/src/Descriptions.vue +++ b/src/components/Descriptions/src/Descriptions.vue @@ -5,6 +5,7 @@ import { useDesign } from '@/hooks/web/useDesign' import { propTypes } from '@/utils/propTypes' import { useAppStore } from '@/store/modules/app' import { DescriptionsSchema } from '@/types/descriptions' +const { t } = useI18n() // 国际化 defineOptions({ name: 'Descriptions' }) @@ -99,7 +100,7 @@ const showAll = () =>{ >
- {{ title }} + {{ t(`ts.${title}`).replace('ts.', '') }} @@ -119,7 +120,7 @@ const showAll = () =>{ - { :row="{ label: item.label }" - >{{ item.label }} + >{{ t(`ts.${item.label}`).replace('ts.', '') }} diff --git a/src/components/Detail/src/Detail.vue b/src/components/Detail/src/Detail.vue index 3ebe261c5..af528c603 100644 --- a/src/components/Detail/src/Detail.vue +++ b/src/components/Detail/src/Detail.vue @@ -2,14 +2,14 @@
diff --git a/src/components/DictTag/src/DictTag.vue b/src/components/DictTag/src/DictTag.vue index b72b2b9ec..35920d91e 100644 --- a/src/components/DictTag/src/DictTag.vue +++ b/src/components/DictTag/src/DictTag.vue @@ -3,6 +3,7 @@ import { defineComponent, PropType, ref } from 'vue' import { isHexColor } from '@/utils/color' import { ElTag } from 'element-plus' import { DictDataType, getDictOptions } from '@/utils/dict' +const { t } = useI18n() // 国际化 export default defineComponent({ name: 'DictTag', @@ -55,7 +56,7 @@ export default defineComponent({ } disableTransitions={true} > - {dictData.value?.label} + {t(`ts.${dictData.value?.label}`).replace('ts.', '')} ) } else { @@ -71,7 +72,7 @@ export default defineComponent({ } disableTransitions={true} > - {item?.label} + {t(`ts.${item?.label}`).replace('ts.', '')} }) ) diff --git a/src/components/Remarks/src/Remarks.vue b/src/components/Remarks/src/Remarks.vue index 35423c454..857d91027 100644 --- a/src/components/Remarks/src/Remarks.vue +++ b/src/components/Remarks/src/Remarks.vue @@ -20,9 +20,9 @@
- + - 确定 + {{t('ts.确定')}}
@@ -32,6 +32,7 @@ const message = useMessage() // 消息弹窗 import * as RemarkApi from '@/api/wms/remark' import { formatDate } from '@/utils/formatTime' +const { t } = useI18n() // 国际化 defineComponent({ name: 'Annex' diff --git a/src/components/TableForm/src/TableForm.vue b/src/components/TableForm/src/TableForm.vue index 87eb4a851..1cfc8ba01 100644 --- a/src/components/TableForm/src/TableForm.vue +++ b/src/components/TableForm/src/TableForm.vue @@ -303,7 +303,7 @@
-
添加明细
+
{{t('ts.添加明细')}}
diff --git a/src/components/Tabs/src/Tabs.vue b/src/components/Tabs/src/Tabs.vue index 8c66168a9..8c22163f6 100644 --- a/src/components/Tabs/src/Tabs.vue +++ b/src/components/Tabs/src/Tabs.vue @@ -1,7 +1,7 @@ @@ -9,6 +9,7 @@ // const message = useMessage() // 消息弹窗 import { emit } from "process"; +const { t } = useI18n() // 国际化 // const { t } = useI18n() // 国际化 defineComponent({ diff --git a/src/components/UploadFile/src/UploadFile.vue b/src/components/UploadFile/src/UploadFile.vue index 05ce5f239..bf3cc4895 100644 --- a/src/components/UploadFile/src/UploadFile.vue +++ b/src/components/UploadFile/src/UploadFile.vue @@ -42,6 +42,7 @@ import { PropType } from 'vue' import { propTypes } from '@/utils/propTypes' import { getAccessToken, getTenantId } from '@/utils/auth' import type { UploadInstance, UploadUserFile, UploadProps, UploadRawFile } from 'element-plus' +const { t } = useI18n() // 国际化 defineOptions({ name: 'UploadFile' }) @@ -78,7 +79,7 @@ const uploadHeaders = ref({ // 文件上传之前判断 const beforeUpload: UploadProps['beforeUpload'] = (file: UploadRawFile) => { if (fileList.value.length >= props.limit) { - message.error(`上传文件数量不能超过${props.limit}个!`) + message.error(`${t('ts.上传文件数量不能超过')}${props.limit}!`) return false } let fileExtension = '' @@ -91,14 +92,14 @@ const beforeUpload: UploadProps['beforeUpload'] = (file: UploadRawFile) => { }) const isLimit = file.size < props.fileSize * 1024 * 1024 if (!isImg) { - message.error(`文件格式不正确, 请上传${props.fileType.join('/')}格式!`) + message.error(`${t(`ts.${'文件格式不正确, 请上传'}`)}${props.fileType.join('/')}${t('ts.格式')}!`) return false } if (!isLimit) { - message.error(`上传文件大小不能超过${props.fileSize}MB!`) + message.error(`${t('ts.上传文件大小不能超过')}${props.fileSize}MB!`) return false } - message.success('正在上传文件,请稍候...') + message.success(t(`ts.${'正在上传文件,请稍候'}`)) uploadNumber.value++ } // 处理上传的文件发生变化 @@ -107,7 +108,7 @@ const beforeUpload: UploadProps['beforeUpload'] = (file: UploadRawFile) => { // } // 文件上传成功 const handleFileSuccess: UploadProps['onSuccess'] = (res: any,uploadFile: any): void => { - message.success('上传成功') + message.success(t('ts.上传成功')) const fileListNew = fileList.value fileListNew.pop() fileList.value = fileListNew @@ -121,11 +122,11 @@ const handleFileSuccess: UploadProps['onSuccess'] = (res: any,uploadFile: any): } // 文件数超出提示 const handleExceed: UploadProps['onExceed'] = (): void => { - message.error(`上传文件数量不能超过${props.limit}个!`) + message.error(`${t('ts.上传文件数量不能过')}${props.limit}!`) } // 上传错误提示 const excelUploadError: UploadProps['onError'] = (): void => { - message.error('导入数据失败,请您重新上传!') + message.error(t(`ts.导入数据失败,请您重新上传`)) } // 删除上传文件 const handleRemove = (file) => { diff --git a/src/layout/components/Logo/src/Logo.vue b/src/layout/components/Logo/src/Logo.vue index 1239279d7..1400ee4f2 100644 --- a/src/layout/components/Logo/src/Logo.vue +++ b/src/layout/components/Logo/src/Logo.vue @@ -77,7 +77,11 @@ watch( ]" to="/" > - +
diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts index d426530a5..ae1e7afda 100644 --- a/src/locales/en-US.ts +++ b/src/locales/en-US.ts @@ -1063,6 +1063,31 @@ export default { 采购价格审批人:'Purchasing price approver', 供应商发货单号:'Supplier\'s invoice number', 加载中:'loading', + 请输入备注:'Please enter remarks', + '正在上传文件,请稍候':'Please wait while uploading files', + 上传成功:'upload successful', + 上传文件数量不能超过:'The number of uploaded files cannot exceed', + '导入数据失败,请您重新上传':'Failed to import data, please upload again!', + 上传文件大小不能超过:'The size of the uploaded file cannot exceed', + '文件格式不正确, 请上传':'The file format is incorrect. Please upload it in', + 格式:'format', + 收货人:'consignee', + 联系电话:'phone', + 送达日期:'delivery date', + 月台代码:'Platform code', + 截止日期:'Deadline', + 仓库代码:'Warehouse code', + 'ERP单据号(无用)':'ERP document number (useless)', + 供应商审批人:'Supplier approver', + 供应商审批时间:'Supplier approval time', + 快递单号:'courier number', + 开票日历管理:'Invoicing calendar management', + 描述:'description', + 批量删除:'Batch delete' + + + + }, diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 73699f76a..5ba3e7d63 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -1063,6 +1063,31 @@ export default { 采购价格审批人:'采购价格审批人', 供应商发货单号:'供应商发货单号', 加载中:'加载中', + 请输入备注:'请输入备注', + '正在上传文件,请稍候':'正在上传文件,请稍候...', + 上传成功:'上传成功', + 上传文件数量不能超过:'上传文件数量不能超过', + '导入数据失败,请您重新上传':'导入数据失败,请您重新上传!', + 上传文件大小不能超过:'上传文件大小不能超过', + '文件格式不正确, 请上传':'文件格式不正确, 请上传', + 格式:'格式', + 收货人:'收货人', + 联系电话:'联系电话', + 送达日期:'送达日期', + 月台代码:'月台代码', + 截止日期:'截止日期', + 仓库代码:'仓库代码', + 'ERP单据号(无用)':'ERP单据号(无用)', + 供应商审批人:'供应商审批人', + 供应商审批时间:'供应商审批时间', + 快递单号:'快递单号', + 开票日历管理:'开票日历管理', + 描述:'描述', + 批量删除:'批量删除' + + + + }, diff --git a/src/utils/dict.ts b/src/utils/dict.ts index b8a84e8e6..92d89451e 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -340,5 +340,6 @@ export enum DICT_TYPE { // ========== eam - 业务 - ========== DEVICE_TYPE = 'device_type', // 设备类型 + IS_UPDATED = 'is_updated', //是否可修改 } diff --git a/src/views/eam/basicInspectionOption/basicInspectionOption.data.ts b/src/views/eam/basicInspectionOption/basicInspectionOption.data.ts index d826259c0..13bf5fff5 100644 --- a/src/views/eam/basicInspectionOption/basicInspectionOption.data.ts +++ b/src/views/eam/basicInspectionOption/basicInspectionOption.data.ts @@ -40,7 +40,13 @@ export const BasicInspectionOption = useCrudSchemas(reactive([ label: '项是否可修改', field: 'isUpdated', sort: 'custom', + dictType: DICT_TYPE.IS_UPDATED, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isTable: true, + isDetail: false, isSearch: true, + isTableForm: false, + isForm: true, form: { component: 'Switch', value: 'TRUE', @@ -100,14 +106,13 @@ export const BasicInspectionOption = useCrudSchemas(reactive([ label: '是否可用', field: 'available', sort: 'custom', - form: { - component: 'Switch', - value: 'TRUE', - componentProps: { - inactiveValue: 'FALSE', - activeValue: 'TRUE' - } - }, + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isTable: true, + isDetail: false, + isSearch: false, + isTableForm: false, + isForm: false, }, { label: '删除时间', diff --git a/src/views/home/components/supplierIndex.vue b/src/views/home/components/supplierIndex.vue index 5e8a679c1..af6faa6f0 100644 --- a/src/views/home/components/supplierIndex.vue +++ b/src/views/home/components/supplierIndex.vue @@ -231,7 +231,8 @@ import { set } from 'lodash-es' import { EChartsOption } from 'echarts' import { lineOptions, pieOptions } from '../echarts-data' -import { formatDate } from '@/utils/formatTime' +import { formatDate,dateFormatter } from '@/utils/formatTime' + import * as NotifyMessageApi from '@/api/system/notify/message' import * as IndexApi from '@/api/home' import { DICT_TYPE, getStrDictOptions } from '@/utils/dict' diff --git a/src/views/login/login.vue b/src/views/login/login.vue index a0025ab66..b9bf1709d 100644 --- a/src/views/login/login.vue +++ b/src/views/login/login.vue @@ -9,7 +9,7 @@ >
- + {{ underlineToHump(appStore.getTitle) }}
@@ -33,7 +33,7 @@ class="flex items-center justify-between text-white at-2xl:justify-end at-xl:justify-end" >
- + {{ underlineToHump(appStore.getTitle) }}
diff --git a/src/views/mes/hrPersonAbility/hrPersonAbility.data.ts b/src/views/mes/hrPersonAbility/hrPersonAbility.data.ts index 81c779e86..614e2ef7f 100644 --- a/src/views/mes/hrPersonAbility/hrPersonAbility.data.ts +++ b/src/views/mes/hrPersonAbility/hrPersonAbility.data.ts @@ -1,8 +1,9 @@ import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import { dateFormatter } from '@/utils/formatTime' import * as AbilityInfoApi from '@/api/mes/abilityInfo' +import * as UserApi from "@/api/system/user"; import { AbilityInfo } from '../abilityInfo/abilityInfo.data' - +import {searchUser} from "@/views/wms/basicDataManage/orderManage/team/team.data"; // 表单校验 export const HrPersonAbilityRules = reactive({ @@ -116,6 +117,20 @@ export const HrPersonAbility = useCrudSchemas(reactive([ field: 'personCode', sort: 'custom', isSearch: true, + form: { + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchTitle: '人员信息', // 查询弹窗标题 + searchAllSchemas: searchUser.allSchemas, // 查询弹窗所需类 + searchField: 'username', // 查询弹窗赋值字段 + searchPage: UserApi.getUserPage, // 查询弹窗所需分页方法 + searchCondition: [{ + action: "==", + column: 'userType', + value: 'WORKER' + }] + } + } }, { label: '能力编号', diff --git a/src/views/mes/hrPersonAbility/index.vue b/src/views/mes/hrPersonAbility/index.vue index f4b11845f..a4bc513f0 100644 --- a/src/views/mes/hrPersonAbility/index.vue +++ b/src/views/mes/hrPersonAbility/index.vue @@ -49,7 +49,7 @@ @searchTableSuccess="searchTableSuccess" :isBusiness="false" /> - + @@ -80,9 +80,17 @@ const tableColumns = ref(HrPersonAbility.allSchemas.tableColumns) // 查询页面返回 const searchTableSuccess = (formField, searchField, val, formRef) => { nextTick(() => { - const setV = {} - setV[formField] = val[0][searchField] - formRef.setValues(setV) + if (formField === 'ablityCode') { + const setV = {} + setV[formField] = val[0][searchField] + formRef.setValues(setV) + } + if (formField === 'personCode') { + const setV = {} + setV[formField] = val[0][searchField] + formRef.setValues(setV) + } + }) } diff --git a/src/views/mes/opersteps/index.vue b/src/views/mes/opersteps/index.vue index 4e2c1abc8..6250e6ef1 100644 --- a/src/views/mes/opersteps/index.vue +++ b/src/views/mes/opersteps/index.vue @@ -149,6 +149,16 @@ const buttonTableClick = async (val, row) => { /** 添加/修改操作 */ const basicFormRef = ref() const openForm = (type: string, row?: any) => { + let disabledFlag = false + if(type==='update'){ + disabledFlag = true + } + Opersteps.allSchemas.formSchema.forEach(item => { + if (item.field == 'stepsCode') { + item.componentProps.disabled =disabledFlag + } + }) + basicFormRef.value.open(type, row) basicFormRef.value.open(type, row) } diff --git a/src/views/mes/opersteps/opersteps.data.ts b/src/views/mes/opersteps/opersteps.data.ts index 96dc16c9d..6dc4c1f12 100644 --- a/src/views/mes/opersteps/opersteps.data.ts +++ b/src/views/mes/opersteps/opersteps.data.ts @@ -5,7 +5,10 @@ import { OperstepsType } from '../operstepsType/operstepsType.data' // 表单校验 export const OperstepsRules = reactive({ - concurrencyStamp: [required], + //concurrencyStamp: [required], + stepsCode: [required], + stepsName: [required], + collectCode: [required], }) export const Opersteps = useCrudSchemas(reactive([ diff --git a/src/views/mes/operstepsType/index.vue b/src/views/mes/operstepsType/index.vue index 20c4d9940..761b74318 100644 --- a/src/views/mes/operstepsType/index.vue +++ b/src/views/mes/operstepsType/index.vue @@ -149,6 +149,15 @@ const buttonTableClick = async (val, row) => { /** 添加/修改操作 */ const basicFormRef = ref() const openForm = (type: string, row?: any) => { + let disabledFlag = false + if(type==='update'){ + disabledFlag = true + } + OperstepsType.allSchemas.formSchema.forEach(item => { + if (item.field == 'collectCode') { + item.componentProps.disabled =disabledFlag + } + }) basicFormRef.value.open(type, row) } diff --git a/src/views/mes/orderDay/components/schedule.vue b/src/views/mes/orderDay/components/schedule.vue index 9ac9b269e..eccbefcd7 100644 --- a/src/views/mes/orderDay/components/schedule.vue +++ b/src/views/mes/orderDay/components/schedule.vue @@ -201,7 +201,7 @@ @@ -471,20 +471,23 @@ const opensearchTable = ( ) } -const handleClose=()=>{ - dialogVisible.value = false, - emit('close') +const handleClose=(val)=>{ + dialogVisible.value = false + emit('close',val) } const publishPlan=()=>{ - message.confirm("确认发布当前计划?","question").then(async () => { + message.confirm("确认发布当前计划?","提示").then( () => { //isPublish.value=true //loading.value = true, - try{formLoading.value=true - doPublishPlan() }finally{ + try{ + formLoading.value=true + let promise = doPublishPlan(); + handleClose(promise) + }finally{ formLoading.value=false; - handleClose() + } - + }).catch(() => { message.info("已取消发布") }) @@ -517,12 +520,14 @@ const doPublishPlan= ()=>{ let res = OrderDayApi.publishPlan(data) - res.then(()=>{ - message.success("计划发布成功") - }).catch(()=>{ - //console.log("---doPublishPlan-- 458--",res.msg) - message.error("计划发布失败!") - }) + return res + + // res.then(()=>{ + // message.success("计划发布成功") + // }).catch(()=>{ + // //console.log("---doPublishPlan-- 458--",res.msg) + // message.error("计划发布失败!") + // }) } diff --git a/src/views/mes/orderDay/index.vue b/src/views/mes/orderDay/index.vue index edcb14390..98a405c6f 100644 --- a/src/views/mes/orderDay/index.vue +++ b/src/views/mes/orderDay/index.vue @@ -57,7 +57,7 @@ :isBusiness="false" :isSearchFilterButtonHide="true" @onChange="valueChange" - + /> @@ -142,7 +142,7 @@ const searchTableSuccess = (formField, searchField, val, formRef) => { if(formField=='workroomCode'){ getProductlines(val[0][searchField]) } - + }) } @@ -156,9 +156,9 @@ const valueChange=(filed,cur)=>{ //item.componentProps.required = cur==='ENABLE'?false:true } }) - + } - + } // 字段设置 更新主列表字段 @@ -199,10 +199,12 @@ const buttonBaseClick = (val, item) => { console.log('其他按钮', item) } } -const publishClosed=()=>{ - //console.log('orderday-publishClosed-200') - getList() - +const publishClosed=(val)=>{ + console.log('orderday-publishClosed-200',val) + nextTick?.(()=>{ + getList() + }) + } // 根据状态返回该按钮是否显示 const isShowMainButton = (row,val) => { @@ -227,7 +229,7 @@ const butttondata = (row) => { type: 'warning', icon: '', color: '', - hasPermi: 'mes:orderDay:update'}), // + hasPermi: 'mes:orderDay:update'}), // // defaultButtons.mainListHandleBtn({label: '发布', // name: 'publish', // hide: isShowMainButton(row,['2']), @@ -268,25 +270,24 @@ const openForm = (type: string, row?: any) => { // form表单提交 const formsSuccess = async (formType,data) => { - + if (formType === 'create') { - let ret= OrderDayApi.createOrderDay(data) - if(ret===undefined || ret===null){ - message.error(t('common.networkError')) - }else{ - message.success(t('common.createSuccess')) - } - + await OrderDayApi.createOrderDay(data) + // if(ret===undefined || ret===null){ + // message.error(t('common.networkError')) + // }else{ + // message.success(t('common.createSuccess')) + // } + } else { - let ret= OrderDayApi.updateOrderDay(data) - if(ret.code==0){ - message.success(t('common.updateSuccess')) - }else{ - message.error(t('common.networkError')) - } - + await OrderDayApi.updateOrderDay(data) + // if(ret.code==0){ + // message.success(t('common.updateSuccess')) + // }else{ + // message.error(t('common.networkError')) + // } + } - basicFormRef.value.dialogVisible = false await getList() } @@ -301,7 +302,7 @@ const openDetail = (row: any, titleName: any, titleValue: any) => { //console.log('orderDay-openDetail-303',row) sDetailRef.value.open(row, titleName) } - + } /** 发布操作 */ const scheduleDetailRef = ref() @@ -336,9 +337,10 @@ const handleExport = async () => { exportLoading.value = false } } -const stopPlan = (id) => { - OrderDayApi.stopPlan(id) - +const stopPlan = async (id) => { + await OrderDayApi.stopPlan(id) + getList() + } /** 导入 */ const importFormRef = ref() diff --git a/src/views/mes/orderDay/orderDay.data.ts b/src/views/mes/orderDay/orderDay.data.ts index 43bed9d1e..8796228c6 100644 --- a/src/views/mes/orderDay/orderDay.data.ts +++ b/src/views/mes/orderDay/orderDay.data.ts @@ -8,9 +8,9 @@ import { Workshop } from '@/views/wms/basicDataManage/factoryModeling/workshop/w // 表单校验 export const OrderDayRules = reactive({ - // batchCode: [ - // { required: false, message: '请输入一个日计划编号', trigger: 'blur' } - // ], + batchCode: [ + { required: true, message: '请输入产品批次码', trigger: 'blur' } + ], // planNoMonth: [ // { required: true, message: '请输入一个月计划编号', trigger: 'blur' } // ], @@ -49,6 +49,7 @@ export const OrderDay = useCrudSchemas(reactive([ field: 'id', sort: 'custom', isForm: false, + isTable: false, width: '60px', }, { @@ -365,7 +366,7 @@ export const OrderDay = useCrudSchemas(reactive([ field: 'remark', sort: 'custom', isSearch: false, - isTable:false, + // isTable:false, }, { label: '操作', diff --git a/src/views/mes/processroute/components/configDialog.vue b/src/views/mes/processroute/components/configDialog.vue index 589d36a19..08cdcd6bb 100644 --- a/src/views/mes/processroute/components/configDialog.vue +++ b/src/views/mes/processroute/components/configDialog.vue @@ -42,7 +42,7 @@ @@ -250,10 +250,16 @@ const searchTableSuccess = (formField, searchField, val, type, row) => { }) } } -const deleteNode=(row)=>{ - processData.value.splice(processData.value.indexOf(row),1) +const deleteNode=(row,index:number)=>{ + //console.log('row------',index) + //showProcessNodeData.value.splice(index,1) + processData.value.splice((page.value.current-1)*page.value.size+index,1) page.value.total=processData.value.length page.value.current=1 + showProcessNodeData.value=processData.value.slice(1,1+page.value.size); + + //page.value.current=1 + //showProcessNodeData.value=processData.value.slice((page.value.current-1)*page.value.size,page.value.size) graph.value.removeNode(row.code) } @@ -278,6 +284,9 @@ const openDetail = (row: any) => { materialData.value = [] mouldData.value = [] workStationList.value = [] + processData.value=[] + showProcessNodeData.value = [] + showMaterialsData.value = [] graph.value.on('node:dblclick', ({ e, x, y, node, view }) => { nodeClick(e, x, y, node, view) }) @@ -297,6 +306,7 @@ const handleDrawerClose = () => { //console.log(graph.value.toJSON()) rowData.value=null } + emit('close') } //**获取 工序信息 */ const getProcessInfo = async (id: any) => { @@ -440,15 +450,15 @@ const saveResult = async () => { processrouteId: processRouteId.value } - let res = ProcessrouteApi.saveGraphData(gdata) - if (res) { - message.success('保存成功!') - } else { - message.error('保存失败!') - } + await ProcessrouteApi.saveGraphData(gdata) + // if (res) { + // message.success('保存成功!') + // } else { + // message.error('保存失败!') + // } isShowDrawer.value = false handleDrawerClose() - emit('close') + //emit('close',) //return res } diff --git a/src/views/mes/processroute/index.vue b/src/views/mes/processroute/index.vue index 45d4c879d..98b69f762 100644 --- a/src/views/mes/processroute/index.vue +++ b/src/views/mes/processroute/index.vue @@ -157,16 +157,25 @@ const buttonTableClick = async (val, row) => { openDetail(row) } } -const dailogClose=() => { - console.log('close'); - nextTick?.(()=>{ - getList() - }) +const dailogClose= () => { + //console.log('dailogClose--confge',getList()); + //nextTick?.(()=>{ + getList() + //}) } /** 添加/修改操作 */ const basicFormRef = ref() const openForm = (type: string, row?: any) => { + let disabledFlag = false + if(type==='update'){ + disabledFlag = true + } + Processroute.allSchemas.formSchema.forEach(item => { + if (item.field == 'processrouteCode') { + item.componentProps.disabled =disabledFlag + } + }) basicFormRef.value.open(type, row) } diff --git a/src/views/mes/processroute/processroute.data.ts b/src/views/mes/processroute/processroute.data.ts index 077aecc88..06fe7caff 100644 --- a/src/views/mes/processroute/processroute.data.ts +++ b/src/views/mes/processroute/processroute.data.ts @@ -4,11 +4,9 @@ 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], + processrouteCode: [{ required: true, message: '请输入工艺路线编码!', trigger: 'blur' },], + processName: [{ required: true, message: '请输入工艺路线名称!', trigger: 'blur' },], + productCode: [{ required: true, message: '请输入产品编码!', trigger: 'blur' },], }) export const Processroute = useCrudSchemas(reactive([ @@ -59,15 +57,7 @@ export const Processroute = useCrudSchemas(reactive([ field: 'processrouteCode', sort: 'custom', isSearch: true, - // form: { - // component: 'Input', - - // componentProps: { - // slots:{ - // default:} - // disabled: true - // } - // } + }, { diff --git a/src/views/mes/productBackline/index.vue b/src/views/mes/productBackline/index.vue index 9872e5958..b132565f6 100644 --- a/src/views/mes/productBackline/index.vue +++ b/src/views/mes/productBackline/index.vue @@ -106,8 +106,8 @@ const { getList, setSearchParams } = tableMethods // 列表头部按钮 const HeadButttondata = [ defaultButtons.defaultAddBtn({hasPermi:'mes:product-backline:create'}), // 新增 - defaultButtons.defaultImportBtn({hasPermi:'mes:product-backline:import'}), // 导入 - defaultButtons.defaultExportBtn({hasPermi:'mes:product-backline:export'}), // 导出 + // defaultButtons.defaultImportBtn({hasPermi:'mes:product-backline:import'}), // 导入 + // defaultButtons.defaultExportBtn({hasPermi:'mes:product-backline:export'}), // 导出 defaultButtons.defaultFreshBtn(null), // 刷新 defaultButtons.defaultFilterBtn(null), // 筛选 defaultButtons.defaultSetBtn(null), // 设置 diff --git a/src/views/mes/productOffline/index.vue b/src/views/mes/productOffline/index.vue index 194031539..319b76cab 100644 --- a/src/views/mes/productOffline/index.vue +++ b/src/views/mes/productOffline/index.vue @@ -106,8 +106,8 @@ const { getList, setSearchParams } = tableMethods // 列表头部按钮 const HeadButttondata = [ defaultButtons.defaultAddBtn({hasPermi:'mes:product-offline:create'}), // 新增 - defaultButtons.defaultImportBtn({hasPermi:'mes:product-offline:import'}), // 导入 - defaultButtons.defaultExportBtn({hasPermi:'mes:product-offline:export'}), // 导出 + // defaultButtons.defaultImportBtn({hasPermi:'mes:product-offline:import'}), // 导入 + // defaultButtons.defaultExportBtn({hasPermi:'mes:product-offline:export'}), // 导出 defaultButtons.defaultFreshBtn(null), // 刷新 defaultButtons.defaultFilterBtn(null), // 筛选 defaultButtons.defaultSetBtn(null), // 设置 diff --git a/src/views/mes/workScheduling/components/qualifiedCheck.vue b/src/views/mes/workScheduling/components/qualifiedCheck.vue index bf2d7733e..a0b1d6a0e 100644 --- a/src/views/mes/workScheduling/components/qualifiedCheck.vue +++ b/src/views/mes/workScheduling/components/qualifiedCheck.vue @@ -7,38 +7,37 @@ width="600px" > - - - + + + - - + + - - + + - + - - + + - - + + - - + + + diff --git a/src/views/qms/inspectionJob/addForm.vue b/src/views/qms/inspectionJob/addForm.vue index 1a9f11a80..aaa8f4bb8 100644 --- a/src/views/qms/inspectionJob/addForm.vue +++ b/src/views/qms/inspectionJob/addForm.vue @@ -369,7 +369,7 @@ // 总数量值是 样品份数 乘 每份样品量 allSamplePieceSize.value += parseFloat((parseFloat(item.inspectionJobCharacteristicsUpdateReqVO.sampleQty) * parseFloat(item.inspectionJobCharacteristicsUpdateReqVO.samplePieceSize)).toFixed(2)) // rules.value['inspectionJobCharacteristicsUpdateReqVO.quantifyCapping'][0].required = true - if(!item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList){ + if (!item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList) { // 单个录入时 if (item.inspectionJobCharacteristicsUpdateReqVO.resultEntryMethod == 0) { // rules.value['inspectionJobCharacteristicsUpdateReqVO.quantifyCapping'][0].required = true @@ -397,7 +397,7 @@ ) } } - + // 编辑判断上限下限目标值是否必填 if (item.inspectionJobCharacteristicsUpdateReqVO.quantifyIsCapping) { rules.value['inspectionJobCharacteristicsUpdateReqVO.quantifyCapping'][0].required = true @@ -425,17 +425,17 @@ 设置采样数量,默认第一个包装采样数量<总数量,显示数量字段,第二个包装和剩下的总数量对比,以此类推, 第一个包装采样数量>总数量 则显示总数量 */ - + for (let i = 0; i < data.value.packageList.length; i++) { - if(data.value.packageList[i].sampleAmount==null){ - if (allSamplePieceSize.value > data.value.packageList[i].amount) { - data.value.packageList[i].sampleAmount = data.value.packageList[i].amount - allSamplePieceSize.value = parseFloat((allSamplePieceSize.value - data.value.packageList[i].amount).toFixed(2)) - } else { - data.value.packageList[i].sampleAmount = allSamplePieceSize.value - allSamplePieceSize.value = 0 - // return; - } + if (data.value.packageList[i].sampleAmount == null) { + if (allSamplePieceSize.value > data.value.packageList[i].amount) { + data.value.packageList[i].sampleAmount = data.value.packageList[i].amount + allSamplePieceSize.value = parseFloat((allSamplePieceSize.value - data.value.packageList[i].amount).toFixed(2)) + } else { + data.value.packageList[i].sampleAmount = allSamplePieceSize.value + allSamplePieceSize.value = 0 + // return; + } } } // data.value.packageList.forEach(item=>{ @@ -604,14 +604,11 @@ 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 === '' } ) ) @@ -657,8 +654,6 @@ ) } }) - 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) @@ -732,7 +727,7 @@ arrBol.push( item.inspectionJobCharacteristicsUpdateReqVO.recordInspectionQuantifyList.some( (cur, key) => { - return !cur.qualifiedQuantity || !cur.unqualifiedQuantity + return cur.qualifiedQuantity === '' || cur.unqualifiedQuantity === '' } ) ) diff --git a/src/views/qms/inspectionJob/index.vue b/src/views/qms/inspectionJob/index.vue index dcc7d81b3..3566e702d 100644 --- a/src/views/qms/inspectionJob/index.vue +++ b/src/views/qms/inspectionJob/index.vue @@ -159,6 +159,15 @@ return true } } + + // 根据状态返回该按钮是否显示 + const isShowMainButton2 = (row, val) => { + if (val.indexOf(row.isStaging) > -1) { + return false + } else { + return true + } + } // 列表-操作按钮 const butttondata = (row) => { @@ -167,6 +176,7 @@ defaultButtons.mainListJobCloBtn({hide:isShowMainButton(row,['1']),hasPermi:'qms:inspection-job-main:close'}), // 关闭 defaultButtons.mainListJobAbaBtn({hide:isShowMainButton(row,['2']),hasPermi:'qms:inspection-job-main:abandon'}), // 放弃 defaultButtons.mainListJobExeBtn({hide:isShowMainButton(row,['2']),hasPermi:'qms:inspection-job-main:execute'}), // 执行 + defaultButtons.mainListOrderPubBtn({hide:isShowMainButton2(row,['TRUE']),hasPermi:'qms:inspection-job-main:execute'}), // 发布 defaultButtons.mainListPackageBtn(null), // 包装 ] } @@ -185,6 +195,8 @@ const list = ref([]) handleAbandon(row.id) } else if (val == 'mainJobClo') { // 关闭 handleClose(row.id) + } else if (val == 'mainOrderPub') { // 发布 + handleRelease(row.id) } else if (val == 'mainJobAcc') { // 承接 handleAccept(row.id) } @@ -220,6 +232,18 @@ const list = ref([]) await getList() } catch { } } + /** 发布按钮操作 */ + const handleRelease = async (id : number) => { + try { + // 发布的二次确认 + await message.confirm('确认发布吗?') + // 发起发布 + await InspectionJobMainApi.releaseInspectionJobMain(id) + message.success('发布成功!') + // 刷新列表 + await getList() + } catch { } + } // 承接 const handleAccept = async (id : number) => { try { diff --git a/src/views/qms/inspectionRequest/inspectionRequestMain.data.ts b/src/views/qms/inspectionRequest/inspectionRequestMain.data.ts index 1482f4200..20406de65 100644 --- a/src/views/qms/inspectionRequest/inspectionRequestMain.data.ts +++ b/src/views/qms/inspectionRequest/inspectionRequestMain.data.ts @@ -1,5 +1,5 @@ import type { CrudSchema } from '@/hooks/web/useCrudSchemas' -import { dateFormatter } from '@/utils/formatTime' +import { dateFormatter, dateFormatter2 } from '@/utils/formatTime' import * as ItemApi from '@/api/wms/itembasic' import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data' import * as SupplierApi from '@/api/wms/supplier' @@ -38,7 +38,7 @@ export const InspectionMain = useCrudSchemas(reactive([ label: '申请日期', field: 'applicationDate', sort: 'custom', - formatter: dateFormatter, + formatter: dateFormatter2, isSearch: false, search: { component: 'DatePicker', @@ -57,8 +57,11 @@ export const InspectionMain = useCrudSchemas(reactive([ } }, table: { - width: 175 - } + width: 120 + }, + detail: { + dateFormat: 'YYYY-MM-DD' + }, }, { label: '申请时间', diff --git a/src/views/wms/basicDataManage/labelManage/manufacturePackage/index.vue b/src/views/wms/basicDataManage/labelManage/manufacturePackage/index.vue index 44c7b3b9e..2b2c988f5 100644 --- a/src/views/wms/basicDataManage/labelManage/manufacturePackage/index.vue +++ b/src/views/wms/basicDataManage/labelManage/manufacturePackage/index.vue @@ -256,7 +256,7 @@ const BASE_URL = import.meta.env.VITE_JMREPORT_BASE_URL const src = ref(BASE_URL + '/jmreport/view/922734157577715712?token=' + getAccessToken()) // 标签打印 const handlePoint = async (row) => { - window.open(src.value+'&number='+row.relateNumber) + window.open(src.value+'&asn_number='+row.relateNumber) } // form表单提交 diff --git a/src/views/wms/basicDataManage/labelManage/purchasePackage/index.vue b/src/views/wms/basicDataManage/labelManage/purchasePackage/index.vue index 305d384cb..728e69d6e 100644 --- a/src/views/wms/basicDataManage/labelManage/purchasePackage/index.vue +++ b/src/views/wms/basicDataManage/labelManage/purchasePackage/index.vue @@ -256,7 +256,7 @@ const BASE_URL = import.meta.env.VITE_JMREPORT_BASE_URL const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAccessToken()) // 标签打印 const handlePoint = async (row) => { - window.open(src.value+'&number='+row.relateNumber) + window.open(src.value+'&asn_number='+row.relateNumber) } // form表单提交 diff --git a/src/views/wms/basicDataManage/labelManage/utensilPackage/index.vue b/src/views/wms/basicDataManage/labelManage/utensilPackage/index.vue index d9e78815a..ef517c4e4 100644 --- a/src/views/wms/basicDataManage/labelManage/utensilPackage/index.vue +++ b/src/views/wms/basicDataManage/labelManage/utensilPackage/index.vue @@ -240,7 +240,7 @@ const BASE_URL = 'http://dev.ccwin-in.com:25110' const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAccessToken()) // 标签打印 const handlePoint = async (row) => { - window.open(src.value+'&number='+row.relateNumber) + window.open(src.value+'&asn_number='+row.relateNumber) } /** 导入 */ diff --git a/src/views/wms/deliversettlementManage/deliver/deliverRequestMain/deliverRequestMain.data.ts b/src/views/wms/deliversettlementManage/deliver/deliverRequestMain/deliverRequestMain.data.ts index caf69fc42..54715ea57 100644 --- a/src/views/wms/deliversettlementManage/deliver/deliverRequestMain/deliverRequestMain.data.ts +++ b/src/views/wms/deliversettlementManage/deliver/deliverRequestMain/deliverRequestMain.data.ts @@ -786,7 +786,6 @@ export const DeliverRequestDetail = useCrudSchemas(reactive([ field: 'uom', dictType: DICT_TYPE.UOM, dictClass: 'string', - isTable: true, sort: 'custom', table: { width: 150 diff --git a/src/views/wms/deliversettlementManage/deliver/deliverRequestMain/index.vue b/src/views/wms/deliversettlementManage/deliver/deliverRequestMain/index.vue index 3a6f4ac74..8e0e37a1e 100644 --- a/src/views/wms/deliversettlementManage/deliver/deliverRequestMain/index.vue +++ b/src/views/wms/deliversettlementManage/deliver/deliverRequestMain/index.vue @@ -567,9 +567,6 @@ const resetShow = async () => { item.tableForm.isInpuFocusShow = true item.tableForm.disabled = false } - if(item.field == 'uom') { - item.tableForm.disabled = false - } if(item.field == 'available') { item.tableForm.disabled = false } diff --git a/src/views/wms/deliversettlementManage/saleShipmentMainRecord/index.vue b/src/views/wms/deliversettlementManage/saleShipmentMainRecord/index.vue index df789bd3d..779e7f7df 100644 --- a/src/views/wms/deliversettlementManage/saleShipmentMainRecord/index.vue +++ b/src/views/wms/deliversettlementManage/saleShipmentMainRecord/index.vue @@ -1,7 +1,7 @@