Browse Source

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

hella_online_20241212_pandian
赵雪冰 2 months ago
parent
commit
30455fd0a6
  1. 8
      src/api/wms/spareitemLocation/index.ts
  2. 21
      src/components/XButton/src/ButtonBaseMore.vue
  3. 54
      src/locales/en-US.ts
  4. 54
      src/locales/zh-CN.ts
  5. 12
      src/views/wms/inventoryjobManage/sparepartReturn/sparepartReturnRequestMain/index.vue
  6. 2
      src/views/wms/inventoryjobManage/sparepartReturn/sparepartReturnRequestMain/sparepartReturnRequestMain.data.ts
  7. 11
      src/views/wms/issueManage/productionreturn/productionreturnRequestMainNo/index.vue
  8. 12
      src/views/wms/moveManage/inventorymove/inventorymoveRecordMainNew/index.vue
  9. 2
      src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts
  10. 16
      src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/index.vue
  11. 2
      src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue
  12. 2
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue
  13. 10
      src/views/wms/supplierManage/supplierApbalance/supplierApbalanceMain/index.vue

8
src/api/wms/spareitemLocation/index.ts

@ -50,4 +50,10 @@ export const exportSpareitemLocation = async (params) => {
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/wms/spareitem-location/get-import-template' })
}
}
// 自动推荐库位
export const queryItemLocation = async (data) => {
return await request.post({ url: `/wms/spareitem-location/queryItemLocation`, data })
}

21
src/components/XButton/src/ButtonBaseMore.vue

@ -14,11 +14,11 @@
<span :style="{width:item.width+'px'||'auto'}" :class="[item.width?'ellipsis':'']">{{ item.label }}</span>
</el-button>
</div>
<el-dropdown placement="top-start" v-if="showList().length>3">
<el-button link class="more"> 更多 </el-button>
<el-dropdown placement="top-start" v-if="showList().length>showMoreLength">
<el-button link class="more" style="justify-self: flex-end;"> {{ t('ts.更多') }} </el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item v-for="(item, index) in getMoreList" :key="index+3" class="btn-div">
<el-dropdown-item v-for="(item, index) in getMoreList" :key="index+showMoreLength" class="btn-div">
<el-button
v-show="!item.hide"
:type="item.type"
@ -44,6 +44,7 @@ import { clearButtonBlurHandle } from '@/utils/index'
import rowDrop from '@/components/rowDrop/index.vue'
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
const { wsCache } = useCache()
const { t } = useI18n() //
const props = defineProps({
Butttondata: {
@ -60,6 +61,10 @@ const props = defineProps({
type: Object,
default: null
},
showMoreLength: {
type: Number,
default: 3
}
})
const showList = ()=>{
const all_permission = '*:*:*'
@ -80,13 +85,13 @@ const showList = ()=>{
}
const getMoreList = computed(()=>{
let list = showList()
return list.slice(3)
return list.slice(props.showMoreLength)
})
const getButtonList = computed(()=>{
let list = showList()
if(list.length>3){
console.log('list===',list)
return list.slice(0, 3)
return list.slice(0, props.showMoreLength)
}
return list
})
@ -131,5 +136,9 @@ const updataTableColumns = (val) => {
margin: 0px;
}
}
.more{
&.el-button:focus-visible {
outline: none;
}
}
</style>

54
src/locales/en-US.ts

@ -1298,7 +1298,59 @@ export default {
:'Return of invoice',
: 'The invoice has been successfully forwarded',
: 'Last Updated By',
:'The range of invoices is'
:'The range of invoices is',
: 'Schedule to be invoiced data query',
: 'Discrete invoicing data query',
: 'Pending invoicing delete data query',
: 'Purchase discrete order view',
: 'Supplier reconciliation management',
: 'Confirmation date management',
: 'month',
: 'date',
: 'company code',
: 'month',
: 'day',
: 'year',
: 'monthly',
: 'Amount payable payable',
: 'Other amounts payable',
: 'Amount paid in advance',
: 'Provisional estimated amount',
: 'Provisional estimated balance',
: 'Amount of activity',
: 'Print start time',
: 'Print end time',
: 'Total number of bills',
: 'Actual invoice quantity',
: 'Invoice application number',
: 'Read state',
: 'Total spread',
: 'Invoice amount not taxed',
: 'Invoice tax amount',
: 'Invoice value and tax total',
: 'Untaxed residuals',
: 'The tax tail difference',
: 'Spread sum tail spread',
: 'Total difference in value and tax',
: 'Financial Voucher No.',
: 'Supplier maintenance tax',
: 'supplier maintains the untaxed amount',
: 'Total supplier maintenance price and tax',
: 'Date of return',
: 'Notes',
: 'Turn voucher number',
: 'Credential Description',
: 'recovery',
: 'Partial billing',
: 'The invoice is being transferred',
: 'confirmation',
: 'Please select Year',
: 'Please select month',
: 'Please select day',
: 'Details of callback letter',
: 'Resume',
: 'more'
},

54
src/locales/zh-CN.ts

@ -1296,7 +1296,59 @@ export default {
:'发票回转',
: '发票回转成功',
:'最后更新人',
:'可开票数量范围是'
:'可开票数量范围是',
: '日程待开票数据查询',
: '离散待开票数据查询',
: '待开票删除数据查询',
: '采购离散订单查看',
: '供应商对账管理',
: '询证函日期管理',
: '月份',
: '日期',
: '公司代码',
: '月',
: '日',
: '年度',
: '月度',
: '应付挂账金额',
: '其他应付金额',
: '预付金额',
: '暂估金额',
: '暂估余额',
: '活动金额',
: '打印开始时间',
: '打印结束时间',
: '票据总数',
: '实际开票数量',
: '发票申请单号',
: '已读状态',
: '价差合计',
: '发票未税金额',
: '发票税额',
: '发票价税合计',
: '未税尾差',
: '税额尾差',
: '价差合计尾差',
: '价税合计尾差',
: '财务凭证号',
: '供应商维护税额',
: '供应商维护未税金额',
: '供应商维护价税合计',
: '回转日期',
: '说明',
: '回转凭证号',
: '凭证描述',
: '恢复',
: '部分开票',
: '发票回转中',
: '询证',
: '请选择年',
: '请选择月',
: '请选择日',
: '回调函明细',
: '履历表',
: '更多'
},
}

12
src/views/wms/inventoryjobManage/sparepartReturn/sparepartReturnRequestMain/index.vue

@ -108,6 +108,7 @@ import {
} from './sparepartReturnRequestMain.data'
import * as UnplannedreceiptRequestMainApi from '@/api/wms/unplannedreceiptRequestMain'
import * as UnplannedreceiptRequestDetailApi from '@/api/wms/unplannedreceiptRequestDetail'
import * as SpareitemLocationApi from '@/api/wms/spareitemLocation'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import * as ItembasicApi from "@/api/wms/itembasic";
import { formatTime } from '@/utils/index'
@ -170,6 +171,13 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
message.warning('不能同时选择可制造和可采购的物料')
}
newVal = newVal.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['code']))
let locationList = await SpareitemLocationApi.queryItemLocation({
"itemCodeList":newVal.map(item=>(item['code']))
})
console.log('locationList',locationList)
newVal.forEach(item=>{
let tfk = JSON.parse(JSON.stringify(tableFormKeys))
tfk.batch = formatTime(new Date(), 'yyyyMMdd')
@ -179,6 +187,10 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
tfk['itemCode'] = item['code']
tfk['uom'] = item['uom']
tfk['validityDays'] = item['validityDays']
let locationItem = locationList.find(location=>location['itemCode'] == item['code'])
if(locationItem){
tfk['toLocationCode'] = locationItem['locationCode']
}
tableData.value.push(tfk)
})
} else if(formField === 'costcentreCode'){

2
src/views/wms/inventoryjobManage/sparepartReturn/sparepartReturnRequestMain/sparepartReturnRequestMain.data.ts

@ -639,7 +639,7 @@ export const UnplannedreceiptRequestMainRules = reactive({
{ required: false, message: '请输入项目代码', trigger: 'blur' }
],
toWarehouseCode: [
{ required: true, message: '请输入到库代码', trigger: 'blur' }
{ required: true, message: '请输入到库代码', trigger: 'blur' }
],
departmentCode: [
{ required: true, message: '请输入部门', trigger: 'blur' }

11
src/views/wms/issueManage/productionreturn/productionreturnRequestMainNo/index.vue

@ -724,6 +724,17 @@ const submitFormLabel = async (formType, submitData) => {
if(data.masterId){
data.id = data.masterId
}
let flag = true
detatableData.tableList.forEach(item => {
if(!item.supplierItemCode){
flag = false
}
});
if(!flag){
message.error('请填写供应商代码')
return
}
try {
detatableData.tableList.forEach(async (item) => {
await PackageApi.createPackageLabel({...item,toLocationCode:item.fromLocationCode}).then(res => {

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

@ -61,7 +61,8 @@
@tableSelectionDelete="tableSelectionDelete"
@searchTableSuccess="searchTableSuccess"
@submitForm="submitForm"
/>
@clearSearchInput="clearSearchInput"
/>
<!-- 详情 -->
@ -373,6 +374,13 @@ const submitForm = async (formType, submitData) => {
formRef.value.formLoading = false
}
}
const clearSearchInput = (field)=>{
console.log('field',field)
if('fromLocationCode' == field){
//
tableData.value = []
}
}
//
const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => {
console.log('searchTableSuccess',formField, searchField, val, formRef, type, row)
@ -415,6 +423,8 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) =>
if(formField=='fromLocationCode'){
//
setV['fromWarehouseCode'] = val[0]['warehouseCode']
tableData.value = []
}else if(formField=='toLocationCode'){
//
setV['toWarehouseCode'] = val[0]['warehouseCode']

2
src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts

@ -863,6 +863,8 @@ export const ProductscrapRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
value: 'TRUE',
isMainValue: false
}],
isShowTableFormSearch: true,
verificationPage: ProductionlineitemApi.getProductionlineitemPageBom, // tableForm下方输入框校验失去焦点之后是否正确的方法
verificationParams: [{
key: 'itemCode',
action: '==',

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

@ -126,6 +126,7 @@ import {
} from './sparereceiptRequestMain.data'
import * as PurchasereceiptRequestMainApi from '@/api/wms/purchasereceiptRequestMain'
import * as PurchasereceiptRequestDetailApi from '@/api/wms/purchasereceiptRequestDetail'
import * as SpareitemLocationApi from '@/api/wms/spareitemLocation'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import { formatDate } from '@/utils/formatTime'
import * as SupplieritemApi from '@/api/wms/supplieritem'
@ -223,7 +224,7 @@ const onEnter = async (field,value)=>{
formRef.value.setDefaultBlurValue(field,value)
// getSearchTableData(value,true)
}
const updateTableData = (tableList)=>{
const updateTableData = async (tableList)=>{
console.log('tableList',tableList)
let itemCodes = tableList.filter(item=>tableData.value.find(item1=>item1['poNumber']==item['number']&&item1['supplierCode']==item['supplierCode']&&item1['poLine']==item['lineNumber']&&item1['itemCode']==item['itemCode']))
console.log('itemCodes',itemCodes)
@ -234,6 +235,10 @@ const updateTableData = (tableList)=>{
}
tableList = tableList.filter(item=>!tableData.value.find(item1=>item1['poNumber']==item['number']&&item1['supplierCode']==item['supplierCode']&&item1['poLine']==item['lineNumber']&&item1['itemCode']==item['itemCode']))
if(tableList.length==0) return
let locationList = await SpareitemLocationApi.queryItemLocation({
"itemCodeList":tableList.map(item=>(item.itemCode))
})
console.log('locationList',locationList)
tableList.forEach(row=>{
const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...row}))
newRow['poLine'] = row['lineNumber']
@ -249,7 +254,10 @@ const updateTableData = (tableList)=>{
newRow['arriveDate'] = dayjs().valueOf()
//
newRow['batch'] = formatDate(newRow['produceDate'],'YYYYMMDD');
newRow['defaultToLocationCode'] =row['defaultLocation']
let locationItem = locationList.find(location=>location['itemCode'] == row['itemCode'])
if(locationItem){
newRow['defaultToLocationCode'] = locationItem['locationCode']
}
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)
}
@ -288,7 +296,9 @@ const getSearchTableData = async (number,isEnter=false)=>{
}).then((res)=>{
res.list.forEach((item,index)=>{
const findItem = tableData.value.find(item1=>item1['itemCode']==item['code'])
findItem['expireTime'] = item['expireTime']
if(findItem){
findItem['expireTime'] = item['expireTime']
}
})
})
}

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

@ -424,7 +424,7 @@ const getSearchTableData = async (number,formField,searchField)=>{
}
return [
// defaultButtons.mainListPurchasePlanOpeBtn({ hide: isShowMainButton(row, ['2']) }), //
defaultButtons.mainListPurchasePlanCloBtn({ hide: !(row.status!=6&&row.status!=2&&row.type=='SCHEDULE') }), //
defaultButtons.mainListPurchasePlanCloBtn({ hide: !(row.status!=6&&row.status!=2&&row.type=='SCHEDULE') , hasPermi: 'wms:purchase-plan-main:close'}), //
defaultButtons.mainListPurchasePlanPubBtn({ hide: isShowMainButton(row, ['1']) }), //
defaultButtons.mainListPurchasePlanAccBtn({ hide: isShowMainButton(row, ['3']) }), //
defaultButtons.mainListPurchasePlanRejBtn({ hide: isShowMainButton(row, ['3']) }), //

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

@ -55,7 +55,7 @@
</el-button>
</template>
<template #action="{ row, $index }">
<ButtonBaseMore
<ButtonBaseMore :showMoreLength="wsCache.get('lang')=='en-US'?2:3"
:Butttondata="butttondata(row, $index)"
@button-base-click="buttonTableClick($event, row)"
/>

10
src/views/wms/supplierManage/supplierApbalance/supplierApbalanceMain/index.vue

@ -3,24 +3,24 @@
<!-- 搜索工作栏 -->
<Search ref="searchRef" :schema="SupplierApbalanceMain.allSchemas.searchSchema" @search="searchClick" @reset="resetClick" >
<template #year>
<el-select v-model="year" placeholder="请选择年" @change="(value)=>selectChange(value,'year')">
<el-select v-model="year" :placeholder="t(`ts.请选择年`)" @change="(value)=>selectChange(value,'year')">
<el-option v-for="dict in yearList" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</template>
<template #month>
<el-select v-model="month" placeholder="请选择月" @change="(value)=>selectChange(value,'month')">
<el-select v-model="month" :placeholder="t(`ts.请选择月`)" @change="(value)=>selectChange(value,'month')">
<el-option v-for="dict in monthList" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</template>
<template #day>
<el-select v-model="day" placeholder="请选择日" @change="(value)=>selectChange(value,'day')">
<el-select v-model="day" :placeholder="t(`ts.请选择日`)" @change="(value)=>selectChange(value,'day')">
<el-option v-for="dict in dayList" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</template>
<template #actionMoreTop>
<el-button type="primary" @click="confirmationHandle">
<Icon class="mr-5px" icon="ep:" />
询证
{{t(`ts.询证`)}}
<Icon class="ml-5px" icon="ep:" />
</el-button>
</template>
@ -86,7 +86,7 @@
:detailButtonIsShowDelete=false
:slotDetailTabList="[
{
label: '回调函明细',
label: t(`ts.回调函明细`),
prop: 'adjustment'
}
]"

Loading…
Cancel
Save