Browse Source

Merge remote-tracking branch 'origin/master_hella' into master_hella

master_hella_20240701
gaojs 6 months ago
parent
commit
d3972633dc
  1. 4
      .env.hella15
  2. 7
      src/api/eam/equipmentManufacturer/index.ts
  3. 7
      src/api/eam/equipmentSupplier/index.ts
  4. 6
      src/api/qms/inspectionJob/inspectionJobMain/index.ts
  5. 11
      src/api/wms/location/index.ts
  6. 2
      src/components/Annex/src/Annex.vue
  7. 7
      src/components/Descriptions/src/Descriptions.vue
  8. 4
      src/components/Detail/src/Detail.vue
  9. 5
      src/components/DictTag/src/DictTag.vue
  10. 5
      src/components/Remarks/src/Remarks.vue
  11. 2
      src/components/TableForm/src/TableForm.vue
  12. 3
      src/components/Tabs/src/Tabs.vue
  13. 15
      src/components/UploadFile/src/UploadFile.vue
  14. 24
      src/locales/en-US.ts
  15. 24
      src/locales/zh-CN.ts
  16. 3
      src/views/home/components/supplierIndex.vue
  17. 35
      src/views/mes/orderDay/components/schedule.vue
  18. 60
      src/views/mes/orderDay/index.vue
  19. 3
      src/views/mes/orderDay/orderDay.data.ts
  20. 37
      src/views/mes/workScheduling/components/qualifiedCheck.vue
  21. 33
      src/views/qms/inspectionJob/addForm.vue
  22. 24
      src/views/qms/inspectionJob/index.vue
  23. 1
      src/views/wms/deliversettlementManage/deliver/deliverRequestMain/deliverRequestMain.data.ts
  24. 3
      src/views/wms/deliversettlementManage/deliver/deliverRequestMain/index.vue
  25. 38
      src/views/wms/deliversettlementManage/saleShipmentMainRecord/index.vue
  26. 32
      src/views/wms/deliversettlementManage/saleShipmentMainRecord/saleShipmentMainRecord.data.ts
  27. 21
      src/views/wms/deliversettlementManage/saleShipmentMainRequest/index.vue
  28. 19
      src/views/wms/deliversettlementManage/saleShipmentMainRequest/saleShipmentMain.data.ts
  29. 5
      src/views/wms/inventoryjobManage/containermanage/containerMainRequest/containerMainRequest.data.ts
  30. 3
      src/views/wms/productionManage/productscrap/productscrapRecordMain/index.vue
  31. 2
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue

4
.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=

7
src/api/eam/equipmentManufacturer/index.ts

@ -54,7 +54,12 @@ export const deleteEquipmentManufacturer = async (id: number) => {
// 导出设备制造商 Excel
export const exportEquipmentManufacturer = async (params) => {
return await request.download({ url: `/eam/basic/equipment-manufacturer/export-excel`, params })
if (params.isSearch) {
const data = { ...params }
return await request.downloadPost({ url: `/eam/basic/equipment-manufacturer/export-excel-senior`, data })
} else {
return await request.download({ url: `/eam/basic/equipment-manufacturer/export-excel`, params })
}
}
// 下载用户导入模板

7
src/api/eam/equipmentSupplier/index.ts

@ -54,7 +54,12 @@ export const deleteEquipmentSupplier = async (id: number) => {
// 导出供应商 Excel
export const exportEquipmentSupplier = async (params) => {
return await request.download({ url: `/eam/basic/equipment-supplier/export-excel`, params })
if (params.isSearch) {
const data = { ...params }
return await request.downloadPost({ url: `/eam/basic/equipment-supplier/export-excel-senior`, data })
} else {
return await request.download({ url: `/eam/basic/equipment-supplier/export-excel`, params })
}
}
// 下载用户导入模板

6
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' })

11
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 })
}
}

2
src/components/Annex/src/Annex.vue

@ -3,7 +3,7 @@
<div class="annex">
<div class="title flex items-center">
<!-- <div class="title-txt">附件</div> -->
<UploadFile :isShowFile="false" :isShowTip="false" :fileType="fileType" title="添加附件" :upData="upData" :limit="10"
<UploadFile :isShowFile="false" :isShowTip="false" :fileType="fileType" :title="t('ts.添加附件')" :upData="upData" :limit="10"
@update:modelValue="handleAnnexSuccess" v-if="annexData.annexList.length<5"/>
</div>
<div class="list">

7
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 = () =>{
>
<div :class="[`${prefixCls}-header__title`, 'relative font-18px font-bold ml-10px']">
<div class="flex items-center">
{{ title }}
{{ t(`ts.${title}`).replace('ts.', '') }}
<ElTooltip v-if="message" :content="message" placement="right">
<Icon class="ml-5px" icon="ep:warning" />
</ElTooltip>
@ -119,7 +120,7 @@ const showAll = () =>{
<template v-if="slots['extra']" #extra>
<slot name="extra"></slot>
</template>
<ElDescriptionsItem
<ElDescriptionsItem
v-for="item in schema"
:key="item.field"
v-bind="getBindItemValue(item)"
@ -133,7 +134,7 @@ const showAll = () =>{
:row="{
label: item.label
}"
>{{ item.label }}
>{{ t(`ts.${item.label}`).replace('ts.', '') }}
</slot>
</template>

4
src/components/Detail/src/Detail.vue

@ -2,14 +2,14 @@
<div>
<el-drawer
v-model="isShowDrawer"
title="详情"
:title="t(`ts.详情`).replace('ts.','')"
direction="rtl"
size="80%"
v-loading="detailLoading"
>
<template #header>
<div class="font-size-18px">
{{ titleValueRef }} <span class="ml-20px font-size-16px">{{ titleNameRef }}</span>
{{ titleValueRef }} <span class="ml-20px font-size-16px">{{ t(`ts.${titleNameRef}`).replace('ts.','') }}</span>
</div>
</template>
<Tabs ref="tabRef" :tabsList="tabsList" :current="current" @change="change" />

5
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.', '')}
</ElTag>
)
} else {
@ -71,7 +72,7 @@ export default defineComponent({
}
disableTransitions={true}
>
{item?.label}
{t(`ts.${item?.label}`).replace('ts.', '')}
</ElTag>
})
)

5
src/components/Remarks/src/Remarks.vue

@ -20,9 +20,9 @@
</div>
</div>
<div class="add-remarks flex items-center mt-20px">
<el-input v-model="data.remark" placeholder="请输入备注" />
<el-input v-model="data.remark" :placeholder="t('ts.请输入备注')" />
<el-button class="ml-16px" type="primary" @click="handleSubmitrRemarks" >
确定
{{t('ts.确定')}}
</el-button>
</div>
</div>
@ -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'

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

@ -303,7 +303,7 @@
<div class="button flex" v-if="isShowButton">
<div class="p-12px" @click="handleAddTable">
<Icon icon="ep:circle-plus" color="#409eff" size="26" style="cursor: pointer;" />
<div>添加明细</div>
<div>{{t('ts.添加明细')}}</div>
</div>
</div>
</div>

3
src/components/Tabs/src/Tabs.vue

@ -1,7 +1,7 @@
<!-- tabs组件 -->
<template>
<div class="tabs flex items-center">
<div :class="current == index ? 'active' : ''" v-for="(item, index) in tabsList" :key="index" @click="change(item, index)">{{ item.label }}</div>
<div :class="current == index ? 'active' : ''" v-for="(item, index) in tabsList" :key="index" @click="change(item, index)">{{ t(`ts.${item.label}`).replace('ts.','') }}</div>
</div>
</template>
@ -9,6 +9,7 @@
// const message = useMessage() //
import { emit } from "process";
const { t } = useI18n() //
// const { t } = useI18n() //
defineComponent({

15
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) => {

24
src/locales/en-US.ts

@ -1063,6 +1063,30 @@ 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'
},

24
src/locales/zh-CN.ts

@ -1063,6 +1063,30 @@ export default {
:'采购价格审批人',
:'供应商发货单号',
:'加载中',
:'请输入备注',
'正在上传文件,请稍候':'正在上传文件,请稍候...',
:'上传成功',
:'上传文件数量不能超过',
'导入数据失败,请您重新上传':'导入数据失败,请您重新上传!',
:'上传文件大小不能超过',
'文件格式不正确, 请上传':'文件格式不正确, 请上传',
:'格式',
:'收货人',
:'联系电话',
:'送达日期',
:'月台代码',
:'截止日期',
:'仓库代码',
'ERP单据号(无用)':'ERP单据号(无用)',
:'供应商审批人',
:'供应商审批时间',
:'快递单号',
:'开票日历管理',
:'描述'
},

3
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'

35
src/views/mes/orderDay/components/schedule.vue

@ -201,7 +201,7 @@
</el-dialog>
</ContentWrap>
<template #footer>
<el-button @click="handleClose" >关闭</el-button>
<el-button @click="handleClose('dddddd')" >关闭</el-button>
<el-button type="primary" @click="publishPlan" >发布计划</el-button>
</template>
<SearchTable ref="searchTableRef" @search-table-success="searchTableSuccess" />
@ -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("")
// })
}

60
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()

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

@ -49,6 +49,7 @@ export const OrderDay = useCrudSchemas(reactive<CrudSchema[]>([
field: 'id',
sort: 'custom',
isForm: false,
isTable: false,
width: '60px',
},
{
@ -365,7 +366,7 @@ export const OrderDay = useCrudSchemas(reactive<CrudSchema[]>([
field: 'remark',
sort: 'custom',
isSearch: false,
isTable:false,
// isTable:false,
},
{
label: '操作',

37
src/views/mes/workScheduling/components/qualifiedCheck.vue

@ -11,28 +11,28 @@
<el-form-item label="工序">
<el-input v-model="form.processCode" disabled />
</el-form-item>
<el-form-item label="生产人员">
<el-select v-model="form.personSelected" multiple>
<el-form-item label="生产人员" required="true">
<el-select v-model="form.personSelected" multiple>
<el-option v-for="item in personOption" :key="item.workerCode" :label="item.workerName" :value="item.workerCode" />
</el-select>
</el-form-item>
<el-form-item label="质检人员">
<el-input v-model="form.checkPerson" />
<el-form-item label="质检人员" required="true" >
<el-input v-model="form.checkPerson"/>
</el-form-item>
<el-form-item label="合格数量" @change="handleCount" :key="qcount">
<el-form-item label="合格数量" @change="handleCount" :key="qcount" required="true">
<el-input-number
v-model="form.qualified"
@change="handleCount"
></el-input-number>
</el-form-item>
<el-form-item label="不合格数量">
<el-form-item label="不合格数量" >
<el-input-number v-model="form.unqualified" @change="handleCount" :key="qcount"></el-input-number>
</el-form-item>
<el-form-item label="不合格原因">
<el-input v-model="form.remark"></el-input>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="dialogVisible = false">关闭</el-button>
<el-button type="primary" :disabled="saveFlag" @click="saveReport">保存</el-button>
@ -75,7 +75,7 @@ const openDetail = async (row: any, titleName: any,code:string) => {
form.id=row.id
planDayCode.value=code
getCurrentWorkerList(row.nodeCode)
}
//
@ -86,7 +86,7 @@ const getCurrentWorkerList = async (val) => {
processCode: val
}
personOption.value = await workschedulingApi.getCurrentWorkerList(params)
}
const qcount=ref(0)
//
@ -97,8 +97,8 @@ const handleCount = () => {
form.qualified =rowData.value.planCount - form.unqualified
return
}
}
if (form.unqualified> rowData.value.planCount -form.qualified ) {
message.alert('不合格数量超限!')
form.unqualified =rowData.value.planCount-form.qualified
@ -107,7 +107,18 @@ const handleCount = () => {
}
//
const saveReport = async() => {
if(form.personSelected.length<1){
message.alert('生产人员不能为空')
return
}
if(form.checkPerson==''||form.checkPerson.trim()==''){
message.alert('质检人员不能为空')
return
}
if(form.qualified<1){
message.alert('合格数量不能小于1!')
return
}
saveFlag.value = true
try {
await workschedulingApi.processQualified(form)
@ -118,7 +129,7 @@ const saveReport = async() => {
}
//console.log("report-saveReport-82",data)
//await workschedulingApi.reportWorkByProcess(data)
}
//
const emit = defineEmits(['success', 'close'])

33
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 === ''
}
)
)

24
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 {

1
src/views/wms/deliversettlementManage/deliver/deliverRequestMain/deliverRequestMain.data.ts

@ -786,7 +786,6 @@ export const DeliverRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
field: 'uom',
dictType: DICT_TYPE.UOM,
dictClass: 'string',
isTable: true,
sort: 'custom',
table: {
width: 150

3
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
}

38
src/views/wms/deliversettlementManage/saleShipmentMainRecord/index.vue

@ -1,7 +1,7 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<Search :schema="SaleShipmentMainRecord.allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams" />
<Search :schema="[...SaleShipmentMainRecord.allSchemas.searchSchema,...SaleShipmentDetailRecord.allSchemas.searchSchema]" @search="setSearchParams" @reset="setSearchParams" />
</ContentWrap>
<!-- 列表头部 -->
@ -12,11 +12,12 @@
@updataTableColumns="updataTableColumns"
@searchFormClick="searchFormClick"
:allSchemas="SaleShipmentMainRecord.allSchemas"
:detailAllSchemas="SaleShipmentDetailRecord.allSchemas"
/>
<!-- 列表 -->
<ContentWrap>
<Table
<Table v-clientTable
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
@ -27,9 +28,9 @@
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>
<template #number="{row}">
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)">
<span>{{ row.number }}</span>
</el-button>
</template>
<template #action="{ row }">
@ -51,18 +52,25 @@
/>
<!-- 详情 -->
<Detail ref="detailRef" :isBasic="true" :allSchemas="SaleShipmentMainRecord.allSchemas" />
<Detail
ref="detailRef"
:isBasic="true"
:allSchemas="SaleShipmentMainRecord.allSchemas"
:detailAllSchemas="SaleShipmentDetailRecord.allSchemas"
:detailAllSchemasRules="SaleShipmentDetailRecordRules"
:apiPage="SaleShipmentDetailRecordApi.getSaleShipmentDetailRecordPage"
/>
<!-- 导入 -->
</template>
<script setup lang="ts">
import download from '@/utils/download'
import { SaleShipmentMainRecord,SaleShipmentMainRecordRules } from './saleShipmentMainRecord.data'
import { SaleShipmentMainRecord,SaleShipmentMainRecordRules,SaleShipmentDetailRecord,SaleShipmentDetailRecordRules } from './saleShipmentMainRecord.data'
import * as SaleShipmentMainRecordApi from '@/api/wms/saleShipmentMainRecord'
import * as SaleShipmentDetailRecordApi from '@/api/wms/saleShipmentDetailRecord'
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: 'SaleShipmentMainRecord' })
@ -73,8 +81,8 @@ const { t } = useI18n() // 国际化
const route = useRoute() //
const routeName = ref()
routeName.value = route.name
const tableColumns = ref(SaleShipmentMainRecord.allSchemas.tableColumns)
const tableColumns = ref([SaleShipmentMainRecord.allSchemas.tableColumns,...SaleShipmentDetailRecord.allSchemas.tableMainColumns])
// const tableColumns = ref(SaleShipmentMainRecord.allSchemas.tableColumns)
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
nextTick(() => {
@ -98,8 +106,8 @@ const { getList, setSearchParams } = tableMethods
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:saleShipmentMainRecord:create'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:saleShipmentMainRecord:export'}), //
// defaultButtons.defaultAddBtn({hasPermi:'wms:sale-shipment-main-record:create'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:sale-shipment-main-record:export'}), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
@ -129,8 +137,8 @@ const buttonBaseClick = (val, item) => {
// -
const butttondata = [
defaultButtons.mainListEditBtn({hasPermi:'wms:saleShipmentMainRecord:update'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'wms:saleShipmentMainRecord:delete'}), //
// defaultButtons.mainListEditBtn({hasPermi:'wms:sale-shipment-main-record:update'}), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:sale-shipment-main-record:delete'}), //
]
// -
@ -189,7 +197,7 @@ const handleExport = async () => {
//
exportLoading.value = true
const data = await SaleShipmentMainRecordApi.exportSaleShipmentMainRecord(tableObject.params)
download.excel(data, '销售发运记录.xlsx')
download.excel(data, '销售发运记录.xlsx')
} catch {
} finally {
exportLoading.value = false

32
src/views/wms/deliversettlementManage/saleShipmentMainRecord/saleShipmentMainRecord.data.ts

@ -22,14 +22,12 @@ export const SaleShipmentMainRecord = useCrudSchemas(reactive<CrudSchema[]>([
label: '客户代码',
field: 'customerCode',
sort: 'custom',
isSearch: true,
},
{
label: '发票时间',
field: 'invoiceTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
@ -51,7 +49,6 @@ export const SaleShipmentMainRecord = useCrudSchemas(reactive<CrudSchema[]>([
field: 'executeTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
@ -72,27 +69,25 @@ export const SaleShipmentMainRecord = useCrudSchemas(reactive<CrudSchema[]>([
label: '是否可用',
field: 'available',
sort: 'custom',
isSearch: true,
isTable:false
},
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
isSearch: true,
},
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
isSearch: true,
},
{
label: '创建时间',
field: 'createTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
@ -102,12 +97,13 @@ export const SaleShipmentMainRecord = useCrudSchemas(reactive<CrudSchema[]>([
}
},
isForm: false,
isTable:false
},
{
label: '地点ID',
field: 'siteId',
sort: 'custom',
isSearch: true,
isTable:false
},
{
label: '操作',
@ -129,43 +125,36 @@ export const SaleShipmentDetailRecord = useCrudSchemas(reactive<CrudSchema[]>([
label: '单据号',
field: 'number',
sort: 'custom',
isSearch: true,
},
{
label: '销售订单号',
field: 'soNumber',
sort: 'custom',
isSearch: true,
},
{
label: '销售订单行',
field: 'soLine',
sort: 'custom',
isSearch: true,
},
{
label: '从货主代码',
field: 'fromOwnerCode',
sort: 'custom',
isSearch: true,
},
{
label: '包装号',
field: 'packingNumber',
sort: 'custom',
isSearch: true,
},
{
label: '批次',
field: 'batch',
sort: 'custom',
isSearch: true,
},
{
label: '库存状态',
field: 'inventoryStatus',
sort: 'custom',
isSearch: true,
form: {
component: 'Radio'
},
@ -174,13 +163,11 @@ export const SaleShipmentDetailRecord = useCrudSchemas(reactive<CrudSchema[]>([
label: '从库位代码',
field: 'fromLocationCode',
sort: 'custom',
isSearch: true,
},
{
label: '主表ID',
field: 'masterId',
sort: 'custom',
isSearch: true,
form: {
component: 'InputNumber',
value: 0
@ -190,56 +177,47 @@ export const SaleShipmentDetailRecord = useCrudSchemas(reactive<CrudSchema[]>([
label: '物品代码',
field: 'itemCode',
sort: 'custom',
isSearch: true,
},
{
label: '物品名称',
field: 'itemName',
sort: 'custom',
isSearch: true,
},
{
label: '物品描述1',
field: 'itemDesc1',
sort: 'custom',
isSearch: true,
},
{
label: '物品描述2',
field: 'itemDesc2',
sort: 'custom',
isSearch: true,
},
{
label: '项目代码',
field: 'projectCode',
sort: 'custom',
isSearch: true,
},
{
label: '数量',
field: 'qty',
sort: 'custom',
isSearch: true,
},
{
label: '计量单位',
field: 'uom',
sort: 'custom',
isSearch: true,
},
{
label: '备注',
field: 'remark',
sort: 'custom',
isSearch: true,
},
{
label: '创建时间',
field: 'createTime',
sort: 'custom',
formatter: dateFormatter,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
@ -254,13 +232,11 @@ export const SaleShipmentDetailRecord = useCrudSchemas(reactive<CrudSchema[]>([
label: '并发乐观锁',
field: 'concurrencyStamp',
sort: 'custom',
isSearch: true,
},
{
label: '地点ID',
field: 'siteId',
sort: 'custom',
isSearch: true,
form: {
component: 'InputNumber',
value: 0

21
src/views/wms/deliversettlementManage/saleShipmentMainRequest/index.vue

@ -108,15 +108,20 @@ const trueFalse = ref(false)
const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => {
nextTick(() => {
if (type == 'tableForm') {
row['soLine'] = val[0]['lineNumber']
row['soNumber'] = val[0]['number']
row['itemCode'] = val[0]['itemCode']
row['projectCode'] = val[0]['projectCode']
row['uom'] = val[0]['uom']
if(formField == 'soLine') {
row['soLine'] = val[0]['lineNumber']
row['soNumber'] = val[0]['number']
row['itemCode'] = val[0]['itemCode']
row['projectCode'] = val[0]['projectCode']
row['uom'] = val[0]['uom']
}else if(formField == 'fromLocationCode'){
row['fromLocationCode'] = val[0]['code']
}
}else {
const setV = {}
if(formField == 'CustomerCode') {
setV['CustomerCode'] = val[0]['CustomerCode']
setV[formField] = val[0][searchField]
if(formField == 'CustomerCode') {
setV['CustomerCode'] = val[0]['CustomerCode']
} else {
setV[formField] = val[0][searchField]
}
@ -214,7 +219,7 @@ const butttondata = (row,$index) => {
}
return [
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:sale-shipment-main-request:update'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4']),hasPermi:'wms:sale-shipment-main-request:close'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['2','3','4']),hasPermi:'wms:sale-shipment-main-request:close'}), //
defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['4','5']),hasPermi:'wms:sale-shipment-main-request:reAdd'}), //
defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:sale-shipment-main-request:submit'}), //
defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:sale-shipment-main-request:refused'}), //

19
src/views/wms/deliversettlementManage/saleShipmentMainRequest/saleShipmentMain.data.ts

@ -53,7 +53,6 @@ export const SaleShipmentMain = useCrudSchemas(reactive<CrudSchema[]>([
label: '客户代码',
field: 'customerCode',
sort: 'custom',
isSearch: true,
table: {
width: 150
},
@ -79,7 +78,6 @@ export const SaleShipmentMain = useCrudSchemas(reactive<CrudSchema[]>([
label: '发票时间',
field: 'invoiceTime',
sort: 'custom',
isSearch: true,
table: {
width: 180
},
@ -249,6 +247,15 @@ export const SaleShipmentMain = useCrudSchemas(reactive<CrudSchema[]>([
// 表单校验
export const SaleShipmentDetailRules = reactive({
soLine: [
{ required: true, message: '请选择订单行', trigger: 'blur' }
],
fromLocationCode: [
{ required: true, message: '请输选择客户库位', trigger: 'blur' }
],
qty: [
{ required: true, message: '请输入开票数量', trigger: 'blur' }
],
})
export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
@ -256,7 +263,6 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
label: '销售订单号',
field: 'soNumber',
sort: 'custom',
isSearch: true,
table: {
width: 200
},
@ -321,7 +327,6 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
label: '物料代码',
field: 'itemCode',
sort: 'custom',
isSearch: true,
tableForm: {
type: 'Select',
disabled: true
@ -499,9 +504,7 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
field: 'action',
isDetail: false,
isForm: false,
table: {
width: 150,
fixed: 'right'
}
hiddenInMain:true,
isTableForm:false,
}
]))

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

@ -493,10 +493,7 @@ export const ContainerDetailRequest = useCrudSchemas(reactive<CrudSchema[]>([
isForm: false,
hiddenInMain:true,
isTableForm: false,
table: {
width: 150,
fixed: 'right'
}
isTable: false
}
]))

3
src/views/wms/productionManage/productscrap/productscrapRecordMain/index.vue

@ -135,6 +135,7 @@ const buttonOperationClick = async (row, label, index)=> {
return
}
detatableDataBom.params.itemCode = row.itemCode
detatableDataBom.params.masterId = row.id
DialogTitle.value = '物料代码:【' + row.itemCode + '】 Bom 信息'
bomModelVisible.value = true
await getDetailListBom()
@ -181,7 +182,7 @@ const tableFormButton = async (val , row) => {
bomModelVisible.value = true
DialogTitle.value = '物料代码【' + row.itemCode + '】——Bom信息'
detatableDataBom.params = {
masterId: row.masterId
masterId: row.id
}
await getDetailListBom()
}

2
src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue

@ -420,7 +420,7 @@ const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAcces
const searchTableRef = ref()
const labelPrint = async (row) => {
tableObject.loading = true
const defaultParams = {'moduleName':'supplier','recordNumber':row.number}
const defaultParams = {'moduleName':'purchasereceipt_request','recordNumber':row.asnNumber}
const {tableObject:tableObjectPrint ,tableMethods} = useTable({
defaultParams,
getListApi: PackageApi.getLabelDetailPage //

Loading…
Cancel
Save