Browse Source

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

master_hella_20240701
zhousq 5 months ago
parent
commit
e6bdb71fbf
  1. 54
      src/api/wms/invoicingcalendar/index.ts
  2. 11
      src/api/wms/location/index.ts
  3. 16
      src/api/wms/saleShipmentDetail/index.ts
  4. 12
      src/api/wms/saleShipmentMain/index.ts
  5. 6
      src/api/wms/supplierinvoiceRequestMain/index.ts
  6. 11
      src/components/BasicForm/src/BasicForm.vue
  7. 33
      src/components/Form/src/Form.vue
  8. 8
      src/components/Form/src/components/useRenderSelect.tsx
  9. 33
      src/components/ImportForm/src/ImportForm.vue
  10. 57
      src/components/SearchHigh/src/SearchHigh.vue
  11. 9
      src/components/SearchTable/src/SearchTable.vue
  12. 21
      src/components/TableForm/src/TableForm.vue
  13. 20
      src/components/rowDrop/index.vue
  14. 2
      src/hooks/web/useI18n.ts
  15. 4
      src/layout/components/Breadcrumb/src/Breadcrumb.vue
  16. 4
      src/layout/components/Menu/src/components/useRenderMenuTitle.tsx
  17. 2
      src/layout/components/TagsView/src/TagsView.vue
  18. 570
      src/locales/en-US.ts
  19. 484
      src/locales/zh-CN.ts
  20. 1
      src/utils/dict.ts
  21. 2
      src/views/qms/selectedProject/selectedProject.data.ts
  22. 4
      src/views/wms/basicDataManage/itemManage/packageunit/packageunit.data.ts
  23. 8
      src/views/wms/basicDataManage/supplierManage/purchaseprice/index.vue
  24. 6
      src/views/wms/basicDataManage/supplierManage/supplier/index.vue
  25. 8
      src/views/wms/basicDataManage/supplierManage/supplieritem/index.vue
  26. 108
      src/views/wms/deliversettlementManage/deliverplan/saleMain/saleMain.data.ts
  27. 11
      src/views/wms/deliversettlementManage/saleShipmentMainRecord/index.vue
  28. 89
      src/views/wms/deliversettlementManage/saleShipmentMainRequest/index.vue
  29. 202
      src/views/wms/deliversettlementManage/saleShipmentMainRequest/saleShipmentMain.data.ts
  30. 1
      src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRecordMain/productreceiptscrapRecordMain.data.ts
  31. 63
      src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRequestMain/index.vue
  32. 4
      src/views/wms/purchasereceiptManage/inspect/inspectRecordMain/index.vue
  33. 12
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue
  34. 2
      src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue
  35. 2
      src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/index.vue
  36. 2
      src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/index.vue
  37. 20
      src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/index.vue
  38. 24
      src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue
  39. 12
      src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/purchaseMain.data.ts
  40. 44
      src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue
  41. 8
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/index.vue
  42. 67
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue
  43. 4
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverBasicForm.vue
  44. 68
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data.ts
  45. 252
      src/views/wms/supplierManage/invoicingcalendar/index.vue
  46. 110
      src/views/wms/supplierManage/invoicingcalendar/invoicingcalendar.data.ts
  47. 24
      src/views/wms/supplierManage/purchaseclaim/purchaseclaimRequestMain/index.vue
  48. 12
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/index.vue
  49. 87
      src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/index.vue
  50. 20
      src/views/wms/supplierManage/supplierinvoiceInvoiced/index.vue

54
src/api/wms/invoicingcalendar/index.ts

@ -0,0 +1,54 @@
import request from '@/config/axios'
export interface InvoicingcalendarVO {
id: number
beginDay: string
endDay: string
descriiption: string
available: string
remark: string
extraProperties: string
concurrencyStamp: number
siteId: string
}
// 查询开票日历列表
export const getInvoicingcalendarPage = async (params) => {
if (params.isSearch) {
delete params.isSearch
const data = {...params}
return await request.post({ url: '/wms/invoicingcalendar/senior', data })
} else {
return await request.get({ url: `/wms/invoicingcalendar/page`, params })
}
}
// 查询开票日历详情
export const getInvoicingcalendar = async (id: number) => {
return await request.get({ url: `/wms/invoicingcalendar/get?id=` + id })
}
// 新增开票日历
export const createInvoicingcalendar = async (data: InvoicingcalendarVO) => {
return await request.post({ url: `/wms/invoicingcalendar/create`, data })
}
// 修改开票日历
export const updateInvoicingcalendar = async (data: InvoicingcalendarVO) => {
return await request.put({ url: `/wms/invoicingcalendar/update`, data })
}
// 删除开票日历
export const deleteInvoicingcalendar = async (id: number) => {
return await request.delete({ url: `/wms/invoicingcalendar/delete?id=` + id })
}
// 导出开票日历 Excel
export const exportInvoicingcalendar = async (params) => {
return await request.download({ url: `/wms/invoicingcalendar/export-excel`, params })
}
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/wms/invoicingcalendar/get-import-template' })
}

11
src/api/wms/location/index.ts

@ -84,3 +84,14 @@ export const selectBusinessTypeToLocation = async (params) => {
return request.get({ url: `/wms/location/pageBusinessTypeToLocation`, params }) return request.get({ url: `/wms/location/pageBusinessTypeToLocation`, 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 })
}
}

16
src/api/wms/saleShipmentDetail/index.ts

@ -28,38 +28,38 @@ export const getSaleShipmentDetailPage = async (params) => {
if (params.isSearch) { if (params.isSearch) {
delete params.isSearch delete params.isSearch
const data = {...params} const data = {...params}
return await request.post({ url: '/wms/sale-shipment-detail/senior', data }) return await request.post({ url: '/wms/sale-shipment-detail-request/senior', data })
} else { } else {
return await request.get({ url: `/wms/sale-shipment-detail/page`, params }) return await request.get({ url: `/wms/sale-shipment-detail-request/page`, params })
} }
} }
// 查询销售发运申请子详情 // 查询销售发运申请子详情
export const getSaleShipmentDetail = async (id: number) => { export const getSaleShipmentDetail = async (id: number) => {
return await request.get({ url: `/wms/sale-shipment-detail/get?id=` + id }) return await request.get({ url: `/wms/sale-shipment-detail-request/get?id=` + id })
} }
// 新增销售发运申请子 // 新增销售发运申请子
export const createSaleShipmentDetail = async (data: SaleShipmentDetailVO) => { export const createSaleShipmentDetail = async (data: SaleShipmentDetailVO) => {
return await request.post({ url: `/wms/sale-shipment-detail/create`, data }) return await request.post({ url: `/wms/sale-shipment-detail-request/create`, data })
} }
// 修改销售发运申请子 // 修改销售发运申请子
export const updateSaleShipmentDetail = async (data: SaleShipmentDetailVO) => { export const updateSaleShipmentDetail = async (data: SaleShipmentDetailVO) => {
return await request.put({ url: `/wms/sale-shipment-detail/update`, data }) return await request.put({ url: `/wms/sale-shipment-detail-request/update`, data })
} }
// 删除销售发运申请子 // 删除销售发运申请子
export const deleteSaleShipmentDetail = async (id: number) => { export const deleteSaleShipmentDetail = async (id: number) => {
return await request.delete({ url: `/wms/sale-shipment-detail/delete?id=` + id }) return await request.delete({ url: `/wms/sale-shipment-detail-request/delete?id=` + id })
} }
// 导出销售发运申请子 Excel // 导出销售发运申请子 Excel
export const exportSaleShipmentDetail = async (params) => { export const exportSaleShipmentDetail = async (params) => {
return await request.download({ url: `/wms/sale-shipment-detail/export-excel`, params }) return await request.download({ url: `/wms/sale-shipment-detail-request/export-excel`, params })
} }
// 下载用户导入模板 // 下载用户导入模板
export const importTemplate = () => { export const importTemplate = () => {
return request.download({ url: '/wms/sale-shipment-detail/get-import-template' }) return request.download({ url: '/wms/sale-shipment-detail-request/get-import-template' })
} }

12
src/api/wms/saleShipmentMain/index.ts

@ -64,31 +64,31 @@ export const importTemplate = () => {
} }
// 关闭-销售发运申请 // 关闭-销售发运申请
export const closeSaleShipmentMain = async (id) => { export const close = async (id) => {
return await request.put({ url: `/wms/sale-shipment-main-request/close?id=` + id }) return await request.put({ url: `/wms/sale-shipment-main-request/close?id=` + id })
} }
// 重新添加-销售发运申请 // 重新添加-销售发运申请
export const reAddSaleShipmentMain = async (id) => { export const reAdd = async (id) => {
return await request.put({ url: `/wms/sale-shipment-main-request/reAdd?id=` + id }) return await request.put({ url: `/wms/sale-shipment-main-request/reAdd?id=` + id })
} }
// 提交审批-销售发运申请 // 提交审批-销售发运申请
export const submitSaleShipmentMain = async (id) => { export const submit = async (id) => {
return await request.put({ url: `/wms/sale-shipment-main-request/submit?id=` + id }) return await request.put({ url: `/wms/sale-shipment-main-request/submit?id=` + id })
} }
// 审批驳回-销售发运申请 // 审批驳回-销售发运申请
export const refusedSaleShipmentMain = async (id) => { export const refused = async (id) => {
return await request.put({ url: `/wms/sale-shipment-main-request/refused?id=` + id }) return await request.put({ url: `/wms/sale-shipment-main-request/refused?id=` + id })
} }
// 审批通过-销售发运申请 // 审批通过-销售发运申请
export const agreeSaleShipmentMain = async (id) => { export const agree = async (id) => {
return await request.put({ url: `/wms/sale-shipment-main-request/agree?id=` + id }) return await request.put({ url: `/wms/sale-shipment-main-request/agree?id=` + id })
} }
// 处理-销售发运申请 // 处理-销售发运申请
export const handleSaleShipmentMain = async (id) => { export const handle = async (id) => {
return await request.put({ url: `/wms/sale-shipment-main-request/handle?id=` + id }) return await request.put({ url: `/wms/sale-shipment-main-request/handle?id=` + id })
} }

6
src/api/wms/supplierinvoiceRequestMain/index.ts

@ -56,6 +56,12 @@ export const deleteSupplierinvoiceRequestMain = async (id: number) => {
return await request.delete({ url: `/wms/supplierinvoice-request-main/delete?id=` + id }) return await request.delete({ url: `/wms/supplierinvoice-request-main/delete?id=` + id })
} }
// 校验控制是否可以开票逻辑
export const checkInvoicingCalendar = async (params) => {
return await request.get({ url: `/wms/supplierinvoice-request-main/checkInvoicingCalendar`, params })
}
// 打开供应商发货申请主 // 打开供应商发货申请主
export const opeSupplierinvoiceRequestMain = async (id: number) => { export const opeSupplierinvoiceRequestMain = async (id: number) => {
return await request.post({ url: `/wms/supplierinvoice-request-main/open?id=` + id }) return await request.post({ url: `/wms/supplierinvoice-request-main/open?id=` + id })

11
src/components/BasicForm/src/BasicForm.vue

@ -274,12 +274,7 @@ const props = defineProps({
required: false, required: false,
default: false default: false
}, },
// TableForm fieldTableColumn indexTableColumn
indexTableColumn :{
type: Number,
required: false,
default: 0
},
fieldTableColumn:{ fieldTableColumn:{
type: String, type: String,
required: false, required: false,
@ -515,11 +510,7 @@ const handleAddTable = () => {
tableFormKeys[item.field] = item.default ? item.default : '' tableFormKeys[item.field] = item.default ? item.default : ''
}) })
if(props.fieldTableColumn!=''){ if(props.fieldTableColumn!=''){
console.log('handleAddTable',tableAllSchemas.value.tableFormColumns.find(item=>item.field==props.fieldTableColumn))
inpuFocus(tableAllSchemas.value.tableFormColumns.find(item=>item.field==props.fieldTableColumn),tableFormKeys,0) inpuFocus(tableAllSchemas.value.tableFormColumns.find(item=>item.field==props.fieldTableColumn),tableFormKeys,0)
}else{
inpuFocus(tableAllSchemas.value.tableFormColumns[props.indexTableColumn],tableFormKeys,0)
} }
}else{ }else{
emit('handleAddTable') emit('handleAddTable')

33
src/components/Form/src/Form.vue

@ -173,8 +173,15 @@ export default defineComponent({
// Divider // Divider
const isDivider = item.component === 'Divider' const isDivider = item.component === 'Divider'
const Com = componentMap['Divider'] as ReturnType<typeof defineComponent> const Com = componentMap['Divider'] as ReturnType<typeof defineComponent>
let labelName = item?.label || ''
if(item?.label){
labelName = t(`ts.${item?.label}`)
if(labelName === 'ts.' + item?.label){
labelName = item?.label
}
}
return isDivider ? ( return isDivider ? (
<Com {...{ contentPosition: 'left', ...item.componentProps }}>{item?.label}</Com> <Com {...{ contentPosition: 'left', ...item.componentProps }}>{labelName}</Com>
) : isCol ? ( ) : isCol ? (
// ElCol // ElCol
<ElCol {...setGridProp(item.colProps)}>{renderFormItem(item)}</ElCol> <ElCol {...setGridProp(item.colProps)}>{renderFormItem(item)}</ElCol>
@ -218,13 +225,28 @@ export default defineComponent({
const formItemSlots: Recordable = setFormItemSlots(slots, item.field) const formItemSlots: Recordable = setFormItemSlots(slots, item.field)
// labelMessage使 // labelMessage使
if (item?.labelMessage) { if (item?.labelMessage) {
let labelName = item.label || ''
if(item.label){
labelName = t(`ts.${item.label}`)
if(labelName === 'ts.' + item.label){
labelName = item.label
}
}
let labelMessage = item.labelMessage || ''
if(item.labelMessage){
labelMessage = t(`ts.${item.labelMessage}`)
if(labelMessage === 'ts.' + item.labelMessage){
labelMessage = item.labelMessage
}
}
formItemSlots.label = () => { formItemSlots.label = () => {
return ( return (
<> <>
<span>{item.label}</span> <span>{labelName}</span>
<ElTooltip placement="right" raw-content> <ElTooltip placement="right" raw-content>
{{ {{
content: () => <span v-dompurify-html={item.labelMessage}></span>, content: () => <span v-dompurify-html={labelMessage}></span>,
default: () => ( default: () => (
<Icon <Icon
icon="ep:warning" icon="ep:warning"
@ -244,12 +266,11 @@ export default defineComponent({
const formItemSlotsSearchList: Recordable = setFormItemSlots(slots, item.field) const formItemSlotsSearchList: Recordable = setFormItemSlots(slots, item.field)
if (item?.componentProps?.isSearchList) { if (item?.componentProps?.isSearchList) {
if(item?.componentProps?.multiple){ if(item?.componentProps?.multiple){
formItemSlotsSearchList[item.field] = () => { formItemSlotsSearchList[item.field] = () => {
return ( return (
<> <>
<ElTooltip placement="top" content={formModel.value[item.field]} > <ElTooltip placement="top" content={formModel.value[item.field]} >
<ElInput class={'myInput'} v-model={formModel.value[item.field]} placeholder={item?.componentProps?.searchListPlaceholder} disabled={item?.componentProps?.enterSearch?false:true} onKeyup={(event)=>{ <ElInput class={'myInput'} v-model={formModel.value[item.field]} placeholder={t(`ts.${item?.componentProps?.searchListPlaceholder}`).replace('ts.','') || ''} disabled={item?.componentProps?.enterSearch?false:true} onKeyup={(event)=>{
if(event.keyCode === 13){ if(event.keyCode === 13){
// //
emit('onEnter',item.field,formModel.value[item.field],event) emit('onEnter',item.field,formModel.value[item.field],event)
@ -293,7 +314,7 @@ export default defineComponent({
formItemSlotsSearchList[item.field] = () => { formItemSlotsSearchList[item.field] = () => {
return ( return (
<> <>
<ElInput class={'myInput'} v-model={formModel.value[item.field]} placeholder={item?.componentProps?.searchListPlaceholder} onKeyup={(event)=>{ <ElInput class={'myInput'} v-model={formModel.value[item.field]} placeholder={t(`ts.${item?.componentProps?.searchListPlaceholder}`).replace('ts.','') || ''} onKeyup={(event)=>{
if(event.keyCode === 13){ if(event.keyCode === 13){
// //
emit('onEnter',item.field,formModel.value[item.field],event) emit('onEnter',item.field,formModel.value[item.field],event)

8
src/components/Form/src/components/useRenderSelect.tsx

@ -3,6 +3,7 @@ import { ComponentOptions } from '@/types/components'
import { ElOption, ElOptionGroup } from 'element-plus' import { ElOption, ElOptionGroup } from 'element-plus'
import { getSlot } from '@/utils/tsxHelper' import { getSlot } from '@/utils/tsxHelper'
import { Slots } from 'vue' import { Slots } from 'vue'
const { t } = useI18n()
export const useRenderSelect = (slots: Slots) => { export const useRenderSelect = (slots: Slots) => {
// 渲染 select options // 渲染 select options
@ -33,11 +34,16 @@ export const useRenderSelect = (slots: Slots) => {
const valueAlias = item?.componentProps?.optionsAlias?.valueField const valueAlias = item?.componentProps?.optionsAlias?.valueField
const { label, value, ...other } = option const { label, value, ...other } = option
const zhName = labelAlias ? option[labelAlias] : label;//中文名称
let labelName = t(`ts.${zhName}`)
if(labelName === 'ts.' + zhName){
labelName = zhName
}
return ( return (
<ElOption <ElOption
{...other} {...other}
label={labelAlias ? option[labelAlias] : label} label={labelName}
value={valueAlias ? option[valueAlias] : value} value={valueAlias ? option[valueAlias] : value}
> >
{{ {{

33
src/components/ImportForm/src/ImportForm.vue

@ -1,6 +1,6 @@
<!-- 导入组件 --> <!-- 导入组件 -->
<template> <template>
<Dialog v-model="dialogVisible" title="导入" width="600" :close-on-click-modal="false"> <Dialog v-model="dialogVisible" :title="t('ts.导入')" width="600" :close-on-click-modal="false">
<el-upload <el-upload
ref="uploadRef" ref="uploadRef"
v-model:file-list="fileList" v-model:file-list="fileList"
@ -30,29 +30,29 @@
style="width: 300px; margin: 0 auto" style="width: 300px; margin: 0 auto"
v-loading="formLoading" v-loading="formLoading"
> >
<Icon icon="ep:upload-filled" color="#c0c4cc" size="60" /> <Icon icon="ep:upload-filled" color="#c0c4cc" :size="60" />
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div> <div class="el-upload__text">{{t('ts.将文件拖到此处,或')}}<em>{{t('ts.点击上传')}}</em></div>
<template #tip> <template #tip>
<div class="el-upload__tip ml--126px mr--80px"> <div class="el-upload__tip ml--126px mr--80px">
<div class="flex"> <div class="flex">
<div <div
class="label h-32px mr-26px color-#acaeb3 font-size-14px w-100px text-right" class="label h-32px mr-26px color-#acaeb3 font-size-14px w-100px text-right"
style="line-height: 32px" style="line-height: 32px"
>导入模式</div >{{t('ts.导入模式')}}</div
> >
<div class=""> <div class="">
<div class="radio"> <div class="radio">
<el-radio-group v-model="mode"> <el-radio-group v-model="mode">
<el-radio :label="1" :disabled="updateIsDisable">更新</el-radio> <el-radio :label="1" :disabled="updateIsDisable">{{ t('ts.更新')}}</el-radio>
<el-radio :label="2" :disabled="appendIsDisable">追加</el-radio> <el-radio :label="2" :disabled="appendIsDisable">{{ t('ts.追加') }}</el-radio>
<el-radio :label="3" :disabled="coverIsDisable">覆盖</el-radio> <el-radio :label="3" :disabled="coverIsDisable">{{ t('ts.覆盖') }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<div class="tips color-#acaeb3 font-size-14px"> <div class="tips color-#acaeb3 font-size-14px">
<div class="mt-2">更新新增并修改</div> <div class="mt-2">{{t('ts.更新:新增并修改')}}</div>
<div class="mt-2">追加只新增不修改</div> <div class="mt-2">{{ t('ts.追加:只新增,不修改') }}</div>
<div class="mt-2">覆盖只修改不新增</div> <div class="mt-2">{{ t('ts.覆盖:只修改不新增') }}</div>
</div> </div>
</div> </div>
</div> </div>
@ -60,15 +60,15 @@
<div <div
class="label h-32px mr-26px color-#acaeb3 font-size-14px w-100px text-right" class="label h-32px mr-26px color-#acaeb3 font-size-14px w-100px text-right"
style="line-height: 32px" style="line-height: 32px"
>部分保存</div >{{ t('ts.部分保存') }}</div
> >
<div class=""> <div class="">
<div class="switch"> <div class="switch">
<el-switch v-model="updatePart" /> <el-switch v-model="updatePart" />
</div> </div>
<div class="tips color-#acaeb3 font-size-14px"> <div class="tips color-#acaeb3 font-size-14px">
<div class="mt-2">部分保存如存在错误数据正确数据正常导入</div> <div class="mt-2">{{ t('ts.部分保存:如存在错误数据,正确数据正常导入') }}</div>
<div class="mt-2">全部保存全部数据正确才能导入</div> <div class="mt-2">{{ t('ts.全部保存:全部数据正确,才能导入') }}</div>
</div> </div>
</div> </div>
</div> </div>
@ -92,11 +92,11 @@
<div class="flex-1 text-left"> <div class="flex-1 text-left">
<el-button type="primary" plain @click="importTemplate"> <el-button type="primary" plain @click="importTemplate">
<Icon icon="ep:download" /> <Icon icon="ep:download" />
下载模板 {{ t('ts.下载模板') }}
</el-button> </el-button>
</div> </div>
<el-button :disabled="formLoading" type="primary" @click="submitForm"> </el-button> <el-button :disabled="formLoading" type="primary" @click="submitForm">{{ t('ts. ') }}</el-button>
<el-button @click="dialogVisible = false"> </el-button> <el-button @click="dialogVisible = false">{{ t('ts.取 消') }}</el-button>
</div> </div>
</template> </template>
</Dialog> </Dialog>
@ -106,6 +106,7 @@ import { getAccessToken, getTenantId } from '@/utils/auth'
import download from '@/utils/download' import download from '@/utils/download'
defineOptions({ name: 'ImportForm' }) defineOptions({ name: 'ImportForm' })
const { t } = useI18n()
const message = useMessage() // const message = useMessage() //

57
src/components/SearchHigh/src/SearchHigh.vue

@ -1,42 +1,42 @@
<template> <template>
<!-- 高级筛选界面 --> <!-- 高级筛选界面 -->
<Dialog title="筛选" v-model="popoverVisible" :width="'50%'" > <Dialog :title="t('ts.筛选')" v-model="popoverVisible" :width="'50%'" >
<el-form id="moreListElForm" size="default" labelWidth="0" :searchData="moreListData"> <el-form id="moreListElForm" size="default" labelWidth="0" :searchData="moreListData">
<el-form-item v-for="(item, index) in moreListData.filters" :key="index" :prop="item.column" > <el-form-item v-for="(item, index) in moreListData.filters" :key="index" :prop="item.column" >
<!-- 第一列 label--> <!-- 第一列 label-->
<div class="rowInnerItem"> <div class="rowInnerItem">
<el-select v-model="item.column" placeholder="请选择筛选对象" :disabled="item.hide" :filterable="true" @change="resetSelect(item)" > <el-select v-model="item.column" :placeholder="t('ts.请选择筛选对象')" :disabled="item.hide" :filterable="true" @change="resetSelect(item)" >
<el-option v-for="(item, index) in searchOption_high" :key="index" :label="item.label" :value="item.field" /> <el-option v-for="(item, index) in searchOption_high" :key="index" :label="t(`ts.${item.label}`).replace('ts.','')" :value="item.field" />
</el-select> </el-select>
</div> </div>
<!-- 第二列 条件--> <!-- 第二列 条件-->
<div class="rowInnerItem"> <div class="rowInnerItem">
<el-select v-model="item.action" placeholder="请选择条件" :disabled="item.column == '' || item.hide ? true : false" @change="actionSelect(item)" > <el-select v-model="item.action" :placeholder="t('ts.请选择条件')" :disabled="item.column == '' || item.hide ? true : false" @change="actionSelect(item)" >
<el-option v-for="item in formatMoreListActions(item) " :key="item.value" :label="item.label" <el-option v-for="item in formatMoreListActions(item) " :key="item.value" :label="t(`ts.${item.label}`).replace('ts.','')"
:value="item.value" /> :value="item.value" />
</el-select> </el-select>
</div> </div>
<!-- 第三列 --> <!-- 第三列 -->
<div class="rowInnerItem1"> <div class="rowInnerItem1">
<!-- 输入框 --> <!-- 输入框 -->
<el-input v-if="getInputType(item.column) == 'input'" v-model="item.value" placeholder="请输入内容" clearable :disabled="item.disabled"/> <el-input v-if="getInputType(item.column) == 'input'" v-model="item.value" :placeholder="t('ts.请输入内容')" clearable :disabled="item.disabled"/>
<!-- 数字输入框 --> <!-- 数字输入框 -->
<el-input-number v-else-if="getInputType(item.column) == 'inputNumber'" v-model="item.value" :precision="getInputPrecision(item.column)" :disabled="item.disabled"/> <el-input-number v-else-if="getInputType(item.column) == 'inputNumber'" v-model="item.value" :precision="getInputPrecision(item.column)" :disabled="item.disabled"/>
<!-- 下拉框 --> <!-- 下拉框 -->
<el-select v-else-if="getInputType(item.column) == 'select'" v-model="item.value1" placeholder="请选择内容" :filterable="true" clearable :disabled="item.disabled" :multiple="item.action=='in' || item.action=='notIn' ? true : false" collapse-tags collapse-tags-tooltip :key="item.action"> <el-select v-else-if="getInputType(item.column) == 'select'" v-model="item.value1" :placeholder="t('ts.请选择内容')" :filterable="true" clearable :disabled="item.disabled" :multiple="item.action=='in' || item.action=='notIn' ? true : false" collapse-tags collapse-tags-tooltip :key="item.action">
<el-option v-for="dict in initSelectOptions(item.column)" :key="dict.value" :label="dict.label" <el-option v-for="dict in initSelectOptions(item.column)" :key="dict.value" :label="t(`ts.${dict.label}`).replace('ts.','')"
:value="dict.value" /> :value="dict.value" />
<!-- <el-option v-for="(op, index) in initSelectOptions(item.column)" :label="op[item.optionsLabel] || op.label" <!-- <el-option v-for="(op, index) in initSelectOptions(item.column)" :label="op[item.optionsLabel] || op.label"
:value="op[item.optionsValue] || op.value" :key="index" /> --> :value="op[item.optionsValue] || op.value" :key="index" /> -->
</el-select> </el-select>
<!-- 时间 --> <!-- 时间 -->
<el-time-picker v-else-if="getInputType(item.column) == 'time'" range-separator="-" start-placeholder="开始时间" end-placeholder="结束时间" v-model="item.value1" style="width: calc(100% - 20px);margin-right: 10px;" :disabled="item.disabled"/> <el-time-picker v-else-if="getInputType(item.column) == 'time'" range-separator="-" :start-placeholder="t('ts.开始时间')" :end-placeholder="t('ts.结束时间')" v-model="item.value1" style="width: calc(100% - 20px);margin-right: 10px;" :disabled="item.disabled"/>
<!-- 日期 --> <!-- 日期 -->
<el-date-picker v-else-if="getInputType(item.column) == 'date'" v-model="item.value1" type="daterange" <el-date-picker v-else-if="getInputType(item.column) == 'date'" v-model="item.value1" type="daterange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" style="width: calc(100% - 20px);margin-right: 10px;" @change="changeDateTimePicker($event, item,'daterange')" value-format="YYYY-MM-DD" format="YYYY/MM/DD" :disabled="item.disabled"/> range-separator="-" :start-placeholder="t('ts.开始日期')" :end-placeholder="t('ts.结束日期')" style="width: calc(100% - 20px);margin-right: 10px;" @change="changeDateTimePicker($event, item,'daterange')" value-format="YYYY-MM-DD" format="YYYY/MM/DD" :disabled="item.disabled"/>
<!-- 日期时间 --> <!-- 日期时间 -->
<el-date-picker v-else-if="getInputType(item.column) == 'datePicker'" v-model="item.value1" type="datetimerange" <el-date-picker v-else-if="getInputType(item.column) == 'datePicker'" v-model="item.value1" type="datetimerange"
range-separator="-" start-placeholder="开始时间" end-placeholder="结束时间" style="width: calc(100% - 20px);margin-right: 10px;" @change="changeDateTimePicker($event, item, 'datetimerange')" value-format="x" format="YYYY/MM/DD HH:mm:ss" :disabled="item.disabled"/> range-separator="-" :start-placeholder="t('ts.开始时间')" :end-placeholder="t('ts.结束时间')" style="width: calc(100% - 20px);margin-right: 10px;" @change="changeDateTimePicker($event, item, 'datetimerange')" value-format="x" format="YYYY/MM/DD HH:mm:ss" :disabled="item.disabled"/>
</div> </div>
<!-- 删除条件按钮 --> <!-- 删除条件按钮 -->
<el-button type="danger" :icon="Minus" circle size="small" <el-button type="danger" :icon="Minus" circle size="small"
@ -45,7 +45,7 @@
</el-form> </el-form>
<!-- 添加筛选条件 --> <!-- 添加筛选条件 -->
<div class="moreListPush-btn"> <div class="moreListPush-btn">
<span @click="moreListPush">+ 添加筛选条件</span> <span @click="moreListPush">+ {{ t('ts.添加筛选条件') }}</span>
</div> </div>
<!-- 按钮 --> <!-- 按钮 -->
<div class="moreListBaseBts" > <div class="moreListBaseBts" >
@ -57,6 +57,7 @@
import { Minus } from '@element-plus/icons-vue' import { Minus } from '@element-plus/icons-vue'
import * as defaultButtons from '@/utils/disposition/defaultButtons' import * as defaultButtons from '@/utils/disposition/defaultButtons'
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict' import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
const { t } = useI18n()
const props = defineProps({ const props = defineProps({
// name // name
@ -92,46 +93,46 @@ const moreListOptions = ref({
action: [ action: [
{ {
value: '==', value: '==',
label: '等于' label: t('ts.等于')
}, { }, {
value: '!=', value: '!=',
label: '不等于' label: t('ts.不等于')
}, { }, {
value: '>', value: '>',
label: '大于' label: t('ts.大于')
}, { }, {
value: '<', value: '<',
label: '小于' label: t('ts.小于')
}, { }, {
value: '>=', value: '>=',
label: '大于等于' label: t('ts.大于等于')
}, { }, {
value: '<=', value: '<=',
label: '小于等于' label: t('ts.小于等于')
}, { }, {
value: 'like', value: 'like',
label: '模糊' label: t('ts.模糊')
}, { }, {
value: 'in', value: 'in',
label: '包含' label: t('ts.包含')
}, { }, {
value: 'notIn', value: 'notIn',
label: '不包含' label: t('ts.不包含')
}, { }, {
value: 'betweeen', value: 'betweeen',
label: '区间' label: t('ts.区间')
}, { }, {
value: 'isNull', value: 'isNull',
label: '是空' label: t('ts.是空')
}, { }, {
value: 'isNotNull', value: 'isNotNull',
label: '不是空' label: t('ts.不是空')
}, { }, {
value: 'isStr', value: 'isStr',
label: '是空字符串' label: t('ts.是空字符串')
}, { }, {
value: 'isNotStr', value: 'isNotStr',
label: '不是空字符串' label: t('ts.不是空字符串')
} }
] ]
}) })
@ -178,9 +179,9 @@ const formatMoreListActions = (val) => {
// - // -
const moreListDelete = (val,item,$event) => { const moreListDelete = (val,item,$event) => {
if (moreListData.value.filters.length == 1) { if (moreListData.value.filters.length == 1) {
message.warning('必须保留一条筛选条件!') message.warning(t('ts.必须保留一条筛选条件!'))
} else { } else {
message.confirm('您确定删除吗, 是否继续?').then(() => { message.confirm(t('ts.您确定删除吗, 是否继续?')).then(() => {
moreListData.value.filters.splice(val, 1) moreListData.value.filters.splice(val, 1)
}) })
} }

9
src/components/SearchTable/src/SearchTable.vue

@ -31,6 +31,8 @@
<div class="flex items-center"> <div class="flex items-center">
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button> <el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="searchDialogVisible = false"> </el-button> <el-button @click="searchDialogVisible = false"> </el-button>
<slot name="actions"></slot>
</div> </div>
</template> </template>
</Dialog> </Dialog>
@ -38,7 +40,7 @@
<script setup lang="ts"> <script setup lang="ts">
import * as defaultButtons from '@/utils/disposition/defaultButtons' import * as defaultButtons from '@/utils/disposition/defaultButtons'
// const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
const route = useRoute() // const route = useRoute() //
@ -73,7 +75,7 @@ const openData = (titleName: any, tableObject:any ,allSchemas: any,multiple: any
HeadButttondata.value = [ HeadButttondata.value = [
defaultButtons.defaultFilterBtn(null), // defaultButtons.defaultFilterBtn(null), //
] ]
dialogTitle.value = titleName dialogTitle.value = t(`ts.${titleName}`).replace('ts.','')
tableObjectRef.value = tableObject tableObjectRef.value = tableObject
searchDialogVisible.value = true searchDialogVisible.value = true
multipleBol.value = multiple multipleBol.value = multiple
@ -103,7 +105,8 @@ const open = (titleName: any, allSchemas: any,getApiPage: any, formField: any, s
rowRef.value = row rowRef.value = row
multipleBol.value = multiple multipleBol.value = multiple
// dialogTitle.value = t('action.' + type) // dialogTitle.value = t('action.' + type)
dialogTitle.value = titleName dialogTitle.value = t(`ts.${titleName}`).replace('ts.','')
const {tableObject, tableMethods } = useTable({ const {tableObject, tableMethods } = useTable({
getListApi: getPage.value // getListApi: getPage.value //
}) })

21
src/components/TableForm/src/TableForm.vue

@ -19,7 +19,7 @@
v-if="isShowReduceButton" v-if="isShowReduceButton"
v-slot="{ row, $index }" v-slot="{ row, $index }"
> >
<Icon icon="ep:remove" color="#757575" size="26" style="cursor: pointer;margin-top: -16px;" @click="handleDeleteTable (row, $index)" /> <Icon icon="ep:remove" color="#757575" :size="26" style="cursor: pointer;margin-top: -16px;" @click="handleDeleteTable (row, $index)" />
</el-table-column> </el-table-column>
<!-- 多选 --> <!-- 多选 -->
<el-table-column <el-table-column
@ -33,7 +33,7 @@
<el-table-column <el-table-column
type="index" type="index"
fixed="left" fixed="left"
label="序号" :label="t(`ts.序号`)"
width="80" width="80"
:align="'center'" :align="'center'"
v-if="isShowIndex" v-if="isShowIndex"
@ -43,7 +43,7 @@
v-for="(headerItem) in tableFields" v-for="(headerItem) in tableFields"
:key="headerItem" :key="headerItem"
:fixed="headerItem.tableForm?.fixed" :fixed="headerItem.tableForm?.fixed"
:label="headerItem.label" :prop="headerItem.field" :label="t(`ts.${headerItem.label}`).replace('ts.','')" :prop="headerItem.field"
:align="headerItem?.tableForm?.align || 'center'" :align="headerItem?.tableForm?.align || 'center'"
:sortable="headerItem?.tableForm?.sortable || false" :sortable="headerItem?.tableForm?.sortable || false"
:width="headerItem?.tableForm?.width || '200px'" :width="headerItem?.tableForm?.width || '200px'"
@ -122,7 +122,7 @@
@blur="tableFormSelectOnBlur(headerItem.field, $event,row, $index)"> @blur="tableFormSelectOnBlur(headerItem.field, $event,row, $index)">
<el-option <el-option
v-for="op in initSelectOptions(headerItem)" v-for="op in initSelectOptions(headerItem)"
:label="op.label" :label="t(`ts.${op.label}`).replace('ts.','')"
:value="op.value" :value="op.value"
:key="op.value" /> :key="op.value" />
</el-select> </el-select>
@ -149,12 +149,12 @@
<el-option-group <el-option-group
v-for="group in initSelectOptions(headerItem)" v-for="group in initSelectOptions(headerItem)"
:key="group.type" :key="group.type"
:label="group.name" :label="t(`ts.${group.name}`).replace('ts.','')"
> >
<el-option <el-option
v-for="item in group.options" v-for="item in group.options"
:key="item.value" :key="item.value"
:label="item.label" :label="t(`ts.${item.label}`).replace('ts.','')"
:value="item.value" :value="item.value"
/> />
</el-option-group> </el-option-group>
@ -250,7 +250,7 @@
<el-radio <el-radio
v-for="(item, index) in initSelectOptions(headerItem)" v-for="(item, index) in initSelectOptions(headerItem)"
:key="index" :key="index"
:label="item.value" :label="t(`ts.${item.value}`).replace('ts.','')"
:size="headerItem?.tableForm?.size" :size="headerItem?.tableForm?.size"
:disabled="itemIsDisabled(headerItem, row)" :disabled="itemIsDisabled(headerItem, row)"
:border="headerItem?.tableForm?.border"> :border="headerItem?.tableForm?.border">
@ -273,10 +273,10 @@
<el-checkbox <el-checkbox
v-for="(item, index) in initSelectOptions(headerItem)" v-for="(item, index) in initSelectOptions(headerItem)"
:key="index" :key="index"
:label="item.value" :label="t(`ts.${item.value}`).replace('ts.','')"
:disabled="itemIsDisabled(headerItem, row)" :disabled="itemIsDisabled(headerItem, row)"
:true-label="headerItem?.tableForm?.trueLabel" :true-label="t(`ts.${headerItem?.tableForm?.trueLabel}`).replace('ts.','')"
:false-label="headerItem?.tableForm?.falseLabel" :false-label="t(`ts.${headerItem?.tableForm?.falseLabel}`).replace('ts.','')"
:border="headerItem?.tableForm?.border" :border="headerItem?.tableForm?.border"
:size="headerItem?.tableForm?.size" :size="headerItem?.tableForm?.size"
:name="headerItem?.tableForm?.name" :name="headerItem?.tableForm?.name"
@ -310,6 +310,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
const { t } = useI18n() //
import { DICT_TYPE, getIntDictOptions, getStrDictOptions } from '@/utils/dict' import { DICT_TYPE, getIntDictOptions, getStrDictOptions } from '@/utils/dict'
const props = defineProps({ const props = defineProps({
// //

20
src/components/rowDrop/index.vue

@ -1,7 +1,7 @@
<template> <template>
<!-- <Dialog title="字段设置" width="270" v-model="popoverVisible" :scroll="true" :maxHeight="500"> --> <!-- <Dialog title="字段设置" width="270" v-model="popoverVisible" :scroll="true" :maxHeight="500"> -->
<div class="test_wrapper" @dragover="dragover($event)"> <div class="test_wrapper" @dragover="dragover($event)">
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handlecheckallchange">全部</el-checkbox> <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handlecheckallchange">{{ t('ts.全部') }}</el-checkbox>
<el-checkbox-group v-model="checkedDataList" @change="handlecheckedchange"> <el-checkbox-group v-model="checkedDataList" @change="handlecheckedchange">
<draggable :list="allData" :force-fallback="true" chosen-class="chosen" animation="300" @end="dragend" @update="dragenter" > <draggable :list="allData" :force-fallback="true" chosen-class="chosen" animation="300" @end="dragend" @update="dragenter" >
<template #item="{element}"> <template #item="{element}">
@ -12,8 +12,8 @@
</div> </div>
<div class="footer"> <div class="footer">
<!-- <template #footer> --> <!-- <template #footer> -->
<el-button size="small" @click="reset">重置</el-button> <el-button size="small" @click="reset">{{ t('ts.重置') }} </el-button>
<el-button size="small" @click="closeRowDrop">关闭</el-button> <el-button size="small" @click="closeRowDrop"> {{ t('ts.关闭') }}</el-button>
<!-- </template> --> <!-- </template> -->
</div> </div>
<!-- </Dialog> --> <!-- </Dialog> -->
@ -25,6 +25,7 @@ import draggable from "vuedraggable";
defineOptions({ name: 'RowDrop' }) defineOptions({ name: 'RowDrop' })
const { t } = useI18n()
const props = defineProps({ const props = defineProps({
allSchemas: { allSchemas: {
@ -58,9 +59,9 @@ const handlecheckedchange = (value: string[]) => {
} }
const reset = () => { const reset = () => {
ElMessageBox.confirm('重置后,字段设置将恢复初始设置,是否继续?', '提示', { ElMessageBox.confirm(t('ts.重置后,字段设置将恢复初始设置,是否继续?'), t('ts.提示'), {
confirmButtonText: '确定', confirmButtonText: t('ts.确定'),
cancelButtonText: '取消', cancelButtonText: t('ts.取消'),
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
RedisApi.deleteRedis(routeName.value).then(() => { RedisApi.deleteRedis(routeName.value).then(() => {
@ -148,10 +149,11 @@ const initSelectSta = () => {
if (item.field != 'action') { if (item.field != 'action') {
checkedDataList.value.push(item.label) checkedDataList.value.push(item.label)
_showTableColumns.push(_myTableColumns.find(myItem => (myItem.label == item.label))) _showTableColumns.push(_myTableColumns.find(myItem => (myItem.label == item.label)))
allData.value.push(item.label) allData.value.push(t(`ts.${item.label}`))
} }
} }
}) })
// //
_myTableColumns?.forEach((myTableItem, index) => { _myTableColumns?.forEach((myTableItem, index) => {
// //
@ -159,7 +161,7 @@ const initSelectSta = () => {
if (!myTableItem.fixed) { if (!myTableItem.fixed) {
if (myTableItem.field != 'action') { if (myTableItem.field != 'action') {
if (allData.value.indexOf(myTableItem.label) == -1) { if (allData.value.indexOf(myTableItem.label) == -1) {
allData.value.push(myTableItem.label) allData.value.push(t(`ts.${myTableItem.label}`))
} }
} }
} }
@ -189,7 +191,7 @@ const initSelectSta = () => {
if (!item.fixed) { if (!item.fixed) {
if (item.field != 'action') { if (item.field != 'action') {
checkedDataList.value.push(item.label) checkedDataList.value.push(item.label)
allData.value.push(item.label) allData.value.push(t(`ts.${item.label}`))
} }
} }
}) })

2
src/hooks/web/useI18n.ts

@ -41,7 +41,7 @@ export const useI18n = (
const tFn: I18nGlobalTranslation = (key: string, ...arg: any[]) => { const tFn: I18nGlobalTranslation = (key: string, ...arg: any[]) => {
if (!key) return '' if (!key) return ''
if (!key.includes('.') && !namespace) return key if (!key.includes('.') && !namespace) return key
//@ts-ignore // @ts-ignore
return t(getKey(namespace, key), ...(arg as I18nTranslationRestParameters)) return t(getKey(namespace, key), ...(arg as I18nTranslationRestParameters))
} }
return { return {

4
src/layout/components/Breadcrumb/src/Breadcrumb.vue

@ -54,10 +54,10 @@ export default defineComponent({
{meta?.icon && breadcrumbIcon.value ? ( {meta?.icon && breadcrumbIcon.value ? (
<> <>
<Icon icon={meta.icon} class="mr-[2px]" svgClass="inline-block"></Icon> <Icon icon={meta.icon} class="mr-[2px]" svgClass="inline-block"></Icon>
{t(v?.meta?.title)} {t(`ts.${v?.meta?.title}`).replace('ts.','')}
</> </>
) : ( ) : (
t(v?.meta?.title) t(`ts.${v?.meta?.title}`).replace('ts.','')
)} )}
</ElBreadcrumbItem> </ElBreadcrumbItem>
) )

4
src/layout/components/Menu/src/components/useRenderMenuTitle.tsx

@ -9,10 +9,10 @@ export const useRenderMenuTitle = () => {
return icon ? ( return icon ? (
<> <>
<Icon icon={meta.icon}></Icon> <Icon icon={meta.icon}></Icon>
<span class="v-menu__title">{t(title as string)}</span> <span class="v-menu__title">{t(`ts.${title}` as string).replace('ts.','')}</span>
</> </>
) : ( ) : (
<span class="v-menu__title">{t(title as string)}</span> <span class="v-menu__title">{t(`ts.${title}` as string).replace('ts.','')}</span>
) )
} }

2
src/layout/components/TagsView/src/TagsView.vue

@ -367,7 +367,7 @@ watch(
:size="12" :size="12"
class="mr-5px" class="mr-5px"
/> />
{{ t(item?.meta?.title as string) }} {{ t(`ts.${item?.meta?.title}` as string).replace('ts.','') }}
<Icon <Icon
:class="`${prefixCls}__item--close`" :class="`${prefixCls}__item--close`"
color="#333" color="#333"

570
src/locales/en-US.ts

@ -481,18 +481,18 @@ export default {
number_all_plans: 'Number of All Plans', number_all_plans: 'Number of All Plans',
number_orders_received: 'Number of Orders Received', number_orders_received: 'Number of Orders Received',
single: 'Single', single: 'Single',
latest_news : 'Latest News', latest_news:'Latest News',
number : 'Number', number:'Number',
user_type : 'User Type', user_type:'User Type',
user_number : 'User Number', user_number:'User Number',
template_coding : 'Template Coding', template_coding:'Template Coding',
sender_number : 'Sender Number', sender_number:'Sender Number',
template_content : 'Template Content', template_content:'Template Content',
template_parameters : 'Template Parameters', template_parameters:'Template Parameters',
template_type : 'Template Type', template_type:'Template Type',
read : 'Read', read:'Read',
read_time : 'Read Time', read_time:'Read Time',
create_time : 'Create Time', create_time:'Create Time',
latest_deduction_details: 'Latest Deduction Details', latest_deduction_details: 'Latest Deduction Details',
title: 'Title', title: 'Title',
publisher: 'Publisher', publisher: 'Publisher',
@ -531,86 +531,91 @@ export default {
creater:'Creater', creater:'Creater',
claim_details_month:'Claim Details for This Month', claim_details_month:'Claim Details for This Month',
batch:'Batch', batch:'Batch',
today_arrival_plan_shipped : 'Today\'s arrival plan(Shipped)', today_arrival_plan_shipped:'Today\'s arrival plan(Shipped)',
material_preparation_plan_today_issued: 'Material preparation plan today(Issued)', material_preparation_plan_today_issued: 'Material preparation plan today(Issued)',
call_material_today_issued : 'Call for material today(Issued)', call_material_today_issued : 'Call for material today(Issued)',
pcs : 'pcs', pcs:'pcs',
free_library_bits_or_total_library_bits : 'Free library bits/Total library bits', free_library_bits_or_total_library_bits:'Free library bits/Total library bits',
slack_stock_warning : 'Slack stock warning', slack_stock_warning:'Slack stock warning',
package_number : 'Package Number', package_number:'Package Number',
appliance_code : 'Appliance Code', appliance_code:'Appliance Code',
location_code : 'Location Code', location_code:'Location Code',
warehouse_code : 'Warehouse Code', warehouse_code:'Warehouse Code',
location_group_code : 'Location Group Code', location_group_code:'Location Group Code',
location_area_code : 'Location Area Code', location_area_code:'Location Area Code',
erp_location_code : 'ERP Location Code', erp_location_code:'ERP Location Code',
arrival_date : 'Arrival Date', arrival_date:'Arrival Date',
production_date : 'Production Date', production_date:'Production Date',
expiry_date : 'Expiry Date', expiry_date:'Expiry Date',
shipper_code : 'Shipper Code', shipper_code:'Shipper Code',
lock_quantity : 'Lock Quantity', lock_quantity:'Lock Quantity',
available_quantity : 'Available Quantity', available_quantity:'Available Quantity',
warehouse_entry_time : 'Warehouse Entry Time', warehouse_entry_time:'Warehouse Entry Time',
overstock_warning : 'Overstock warning', overstock_warning:'Overstock warning',
high_and_low_storage_warning : 'High and low storage warning', high_and_low_storage_warning:'High and low storage warning',
waiting_tasks : 'Waiting Tasks', waiting_tasks:'Waiting Tasks',
purchase_return_tasks : 'Purchase Return Tasks', purchase_return_tasks:'Purchase Return Tasks',
product_putway_tasks : 'Product Putway Tasks', product_putway_tasks:'Product Putway Tasks',
purchase_and_receive_tasks : 'Purchase and Receive Tasks', purchase_and_receive_tasks:'Purchase and Receive Tasks',
production_receipt_tasks : 'Production Receipt Tasks', production_receipt_tasks:'Production Receipt Tasks',
production_return_tasks : 'Production Return Tasks', production_return_tasks:'Production Return Tasks',
supplement_materials_tasks : 'Supplement Materials Tasks', supplement_materials_tasks:'Supplement Materials Tasks',
product_receiving_tasks : 'Product Receiving Tasks', product_receiving_tasks:'Product Receiving Tasks',
send_materials_tasks : 'Send Materials Tasks', send_materials_tasks:'Send Materials Tasks',
today_production_plan : 'Today\'s production plan', today_production_plan:'Today\'s production plan',
sequence : 'Sequence', sequence:'Sequence',
workshop : 'Workshop', workshop:'Workshop',
prouduction_line : 'Prouduction Line', prouduction_line:'Prouduction Line',
schedule : 'Schedule', schedule:'Schedule',
teams_and_groups : 'Teams and Groups', teams_and_groups:'Teams and Groups',
intended_date : 'Intended Date', intended_date:'Intended Date',
start_date : 'Start Date', start_date:'Start Date',
ending_date : 'Ending Date', ending_date:'Ending Date',
business_type : 'Business Type', business_type:'Business Type',
line_side_safety_stock : 'Line side safety stock', line_side_safety_stock:'Line side safety stock',
type : 'Type', type:'Type',
laneway : 'Laneway', laneway:'Laneway',
goods_shelf : 'Goods Shelf', goods_shelf:'Goods Shelf',
line : 'Line', line:'Line',
column : 'Column', column:'Column',
stock_priority : 'Stock Priority', stock_priority:'Stock Priority',
maximum_load_bearing : 'Maximum Load Bearing', maximum_load_bearing:'Maximum Load Bearing',
maximum_area : 'Maximum Area', maximum_area:'Maximum Area',
maximum_volume : 'Maximum Volume', maximum_volume:'Maximum Volume',
user_group_code : 'User Group Code', user_group_code:'User Group Code',
inventory_of_finished_products_waiting_to_be_putway : 'Inventory of finished products waiting to be putway', inventory_of_finished_products_waiting_to_be_putway:'Inventory of finished products waiting to be putway',
source_warehouse_code : 'Source Warehouse Code', source_warehouse_code:'Source Warehouse Code',
apply_time : 'Apply Time', apply_time:'Apply Time',
request_cut_off_time : 'Request cut-off Time', request_cut_off_time:'Request cut-off Time',
state : 'State', state:'State',
department : 'Department', department:'Department',
undertaker_user_name : 'Undertaker User Name', undertaker_user_name:'Undertaker User Name',
undertake_time : 'Undertake Time', undertake_time:'Undertake Time',
source_location_type_range : 'Source Location Type Range', source_location_type_range:'Source Location Type Range',
destination_location_type_range : 'Destination Location Type Range', destination_location_type_range:'Destination Location Type Range',
destination_warehouse_code : 'Destination Warehouse Code', destination_warehouse_code:'Destination Warehouse Code',
source_location_area_code_range : 'Source Location Area Code Range', source_location_area_code_range:'Source Location Area Code Range',
destination_location_area_code_range : 'Destination Location Area Code Range', destination_location_area_code_range:'Destination Location Area Code Range',
auto_ccomplete : 'Auto-complete', auto_ccomplete:'Auto-complete',
modifiable_location : 'Modifiable Location', modifiable_location:'Modifiable Location',
modifiable_amount : 'Modifiable Amount', modifiable_amount:'Modifiable Amount',
allow_greater_than_recommended : 'Allow greater than recommended', allow_greater_than_recommended:'Allow greater than recommended',
allow_less_than_recommended : 'Allow less than recommended', allow_less_than_recommended:'Allow less than recommended',
allow_modify_location_state : 'Allow modify Location state', allow_modify_location_state:'Allow modify Location state',
allow_continuous_scanning : 'Allow continuous scanning', allow_continuous_scanning:'Allow continuous scanning',
allow_partly_completed : 'Allow partly completed', allow_partly_completed:'Allow partly completed',
modifiable_batch : 'Modifiable Batch', modifiable_batch:'Modifiable Batch',
modifiable_casecode : 'Modifiable Casecode', modifiable_casecode:'Modifiable Casecode',
expiration_time: 'Expiration Time', expiration_time: 'Expiration Time',
effective_time : 'Effective Time', effective_time:'Effective Time',
code : 'Code', code:'Code',
name : 'Name', name:'Name',
}, },
ts: { ts: {
:'Code', :'Code',
:'All', :'All',
@ -628,14 +633,14 @@ export default {
:'Document Number', :'Document Number',
:'Order Type', :'Order Type',
:'State', :'State',
:'Purchase Order Number', :'Purchase order number',
:'Schedule', :'Schedule',
:'Discrete', :'Disperse',
:'Get ready', :'Get ready',
:'Punblish', :'Punblish',
:'Close', :'Close',
:'Finished', :'Finished',
:'Invoice number', :'Shipment tracking number',
:'Source Batch', :'Source Batch',
:'Destination Batch', :'Destination Batch',
:'Source Package Number', :'Source Package Number',
@ -653,11 +658,12 @@ export default {
:'Contact Email', :'Contact Email',
:'Bank', :'Bank',
:'Currency Kind', :'Currency Kind',
:'Tax rate', :'Tax Rate',
'税率(%)':'Tax Rate(%)',
:'Effective Time', :'Effective Time',
:'Expiration Time', :'Expiration Time',
:'Supplier material code', :'Supplier material code',
:'Supplier measuring Unit', :'Supplier measuring unit',
:'Conversion Rate', :'Conversion Rate',
:'Default receiving warehouse location', :'Default receiving warehouse location',
:'Creater', :'Creater',
@ -684,10 +690,10 @@ export default {
:'Last update time', :'Last update time',
:'Last Updater', :'Last Updater',
:'Demand plan', :'Demand plan',
:'Request number', :'Application Number',
:'Code from the repository', :'Code from the repository',
:'to the repository code', :'Destination Warehouse Code',
:'to the dock code', :'Destination dock code',
:'Time window', :'Time window',
:'Scheduled arrival time', :'Scheduled arrival time',
:'Carriers', :'Carriers',
@ -696,19 +702,19 @@ export default {
:'The type of outbound transaction', :'The type of outbound transaction',
:'Inbound transaction type', :'Inbound transaction type',
:'Execution time', :'Execution time',
:'Application timeline', :'Application Time',
:'Deadline', :'Deadline',
:'department', :'department',
:'Interface type', :'Interface type',
:'Package number', :'Package Number',
:'Order number', :'Order Number',
:'Order quantity', :'Order quantity',
:'quantity', :'Quantity',
:'Packing quantity', :'Packing quantity',
:'The quantity measured by the supplier', :'The quantity measured by the supplier',
:'vendor', :'Supplier',
:'From the location code', :'Source Location Area Code',
:'to the location code', :'Destination Location Area Code',
:'From the bin location group code', :'From the bin location group code',
:'to the bin location group code', :'to the bin location group code',
:'Code from the depot', :'Code from the depot',
@ -719,10 +725,10 @@ export default {
:'Packing specifications', :'Packing specifications',
:'Document printing', :'Document printing',
:'Itemized list', :'Itemized list',
:'No data yet', :'No Data',
:'supplier Shipping Request', :'supplier Shipping Request',
:'Query Field', :'Query Field',
:'Measuring UnitSupplier batchDate of production', :'Supplier Batch',
:'Production Date', :'Production Date',
:'Number of shipments', :'Number of shipments',
:'Primary data', :'Primary data',
@ -733,75 +739,64 @@ export default {
:'Supplier shipments Repository code', :'Supplier shipments Repository code',
:'Shipping method License plate number', :'Shipping method License plate number',
:'Auto-submit', :'Auto-submit',
:'Automatically passed', :'Auto-execute',
:'Automated', :'Automated',
:'Generate records directly', :'Generate records directly',
:'Details', :'Details',
:'Batch', :'Batch',
:'Date of manufacture',
:'Arrival date', :'Arrival date',
:'Expiration date', :'Expiration date',
:'Supplier unit of measure',
:'Conversion rate',
:'Material Name', :'Material Name',
1:'Material Description1', 1:'Material Description1',
2:'Material Description2', 2:'Material Description2',
:'Item Code', :'Item Code',
:'Quality inspection details', :'Quality inspection details',
:'Add Attachment', :'Add Attachment',
:'Please enter a comment', :'Change Record',
:'Changelog', :'Add Detail',
:'Add details',
:'Upload quality report', :'Upload quality report',
:'Upload the quality inspection report', :'Upload the quality inspection report',
:'Supplier lots',
:'piece', :'piece',
:'sheet', :'sheet',
:'gram', :'g',
:'kg', :'kg',
:'ton', :'t',
:'rice', :'m',
:'square metre', :'',
:'Generate labels', :'Generate label',
:'Create a label', :'Create label',
1:'Packing Specification 1', 1:'Packing Specification1',
2:'Package Specification 2', 2:'Package Specification2',
1:'Package Quantity1', 1:'Package Quantity1',
2:'Package Quantity2', 2:'Package Quantity2',
:'Item packaging information', :'Item packaging information',
:'System prompts', :'System Prompt',
:'Do you generate labels for this data?', :'Do you generate labels for this data?',
:'Do you process the selected data?', :'Do you process the selected data?',
:'shipments', :'shipments',
:'Package number',
:'Label information', :'Label information',
:'Purchase receipt records', :'Purchase receipt record',
:'Form data', :'Form Data',
:'Task ticket number', :'Task order number',
ERP单据号:'ERP document number', ERP单据号:'ERP document number',
:'Inspection requisition number', :'Inspection requisition number',
:'Purchase order number', :'Data Source',
:'The name of the item', :'Source Location Type Range',
:'Data source', :'Destination Location Type Range',
:'From the range of reservoir types', :'Source Location Area Code Range',
:'to the depot type range', :'Destination Location Area Code Range',
:'From the range of depot codes',
:'to the range of codes in the reservoir',
:'Effective Date', :'Effective Date',
:'Receipt details', :'Receipt Detail',
:'Out-of-stock details', :'Stockout Detail',
:'Row type', :'Row Type',
:'The quantity received', :'Quantity Received',
:'to the batch', :'Inventory Status',
:'From the package number', :'Source Location Group',
:'to the package number', :'Destination Location Group',
:'Inventory status', :'Source Location Area',
:'From the bin location group', :'Destination Location Area',
:'to the bin location group', :'Source Shipper',
:'From the reservoir area', :'Destination Shipper',
:'to the reservoir area',
:'from the owner of the goods',
:'to the owner of the goods',
退:'Purchase return records', 退:'Purchase return records',
:'Purchase receipt record number', :'Purchase receipt record number',
qad采购退货记录单号:'QAD purchase return record number', qad采购退货记录单号:'QAD purchase return record number',
@ -809,8 +804,56 @@ export default {
:'Cause', :'Cause',
退:'Number of returns', 退:'Number of returns',
:'unit', :'unit',
:'amount', :'Amount',
:'Customer Code', :'Customer Code',
:'Supplier invoice request',
:'Supplier Name',
:'Tax',
:'After-tax Amount',
:'Discount Amount',
:'Adjusted Tax',
:'Under Coverage',
:'Gold tax ticket number',
:'Invoice Date',
:'Posting Date',
:'Financial Approver',
:'Document Type',
:'Contract Price',
:'Orocurement Price',
:'Untaxed Difference',
:'Difference including tax',
:'Number of tickets available',
:'Procurement Approver',
:'Purchase approval time',
:'Financial approval time',
:'Supplier invoice record',
:'Invoice Number',
:'Total price with tax',
:'Margin',
:'Claim Amount',
:'Invoice Time',
:'Difference',
:'Date of taking the delivery',
:'Invoice Quantity',
:'Financial approval user name',
:'Logistics Audit',
:'Supplier delivery date',
:'Supplier receiving date',
:'Logistics document number',
:'Part Number',
:'Supplier user association management',
ID:'User ID',
:'User Account',
:'User Nickname',
:'Order',
:'Plan',
:'Request',
:'Job',
:'Record',
:'Number',
:'Location Code',
:'Location Group Code',
:'Location Area Code',
:'Query', :'Query',
:'Reset', :'Reset',
:'Add', :'Add',
@ -820,45 +863,206 @@ export default {
:'Filter', :'Filter',
:'Settings', :'Settings',
:'Confirm', :'Confirm',
'确 定':'Confirm',
:'Cancel', :'Cancel',
'取 消':'Cancel',
:'Edit', :'Edit',
:'Delete', :'Delete',
:'Add Filter', :'Add Filter',
:'Go to',
:'Page',
:'Total',
:'Open', :'Open',
:'Save', :'Save',
//-------- :'Please select filter',
// 单据打印:'Document Print', :'Please inputr content',
// 上传质量报告:'Upload Quality Report', :'Attachment',
// 打印标签:'Print Label', '更新:新增并修改':'Update:Add and modify',
// 发货:'Delivery', '追加:只新增,不修改':'Add:Add,no modify',
// 生成标签:'Generate Label', '覆盖:只修改不新增':'Cover:Modify,not add',
// 发送到货检验申请:'Send Arrival Inspection Application', :'Download Template',
// 生成采购上架申请:'Generate Purchase Putaway Application', :'Update',
// 生成生产计划单:'Generate Production Plan', :'Add',
// 提交审批:'Submit Approval', :'Cover',
// 审核通过:'Approve', :'Save Partial',
// 作废:'Invalid', '部分保存:如存在错误数据,正确数据正常导入':'Save Partial :If incorrect data exists, correct data can be imported',
//-------- '全部保存:全部数据正确,才能导入':'Save All:Import only when all data is correct',
// 生成采购收货申请:'Generate Purchase Receiving Application', '将文件拖到此处,或点击上传':'Drag the file here, or click Upload',
// 生成采购退货申请:'Generate Purchase Return Application', '将文件拖到此处,或':'Drag the file here, or',
// 生成生产收货申请:'Generate Production Receiving Application', '点击上传':' click Upload',
// 生成生产退货申请:'Generate Production Return Application', '是否确认导出数据项?':'Are you sure to export data items?',
// 生成生产计划:'Generate Production Plan', '请选择一条数据!':'Please select a piece of data!',
// 上传:'Upload', :'Equal to',
// 打印:'Print', :'Not Equal to',
// 打印预览:'Print Preview', :'Greater than',
// 打印设置:'Print Settings', :'Less than',
// 打印预览设置:'Print Preview :'Greater than or equal to',
// 上传图片:'Upload Image', :'Less than or equal to',
// 上传文件:'Upload File', :'obscure',
// 上传视频:'Upload Video', :'contain',
// 上传音频:'Upload Audio', :'Not included',
// 上传其他:'Upload Other', :'is empty',
// 上传图片:'Upload Image', :'not empty',
// 上传文件:'Upload File', :'is an empty string',
// 上传视频:'Upload Video', :'Not an empty string',
// 上传音频:'Upload Audio', :'Search',
// 上传其他:'Upload Other', :'Start Date',
:'Ending Date',
:'Serial Number',
:'Version',
:'Place',
'影响明细中物料代码,需在供应商物料中维护':'The material code in the details is affected , must be maintained in the supplier\'s material',
:'External resource or not',
:'Import Mode',
:'Please select content',
:'Please select condition',
:'Interval',
'您确定删除吗, 是否继续?':'Are you sure about deleting it? Do you want to continue?',
'必须保留一条筛选条件!':'One filter must be preserved!',
'请填写供应商代码!':'Please fill in the supplier code!',
:'Supplier Integration',
:'Material basic information',
:'Location Information',
:'Purchase order information',
:'Supplier material information',
:'Demand plan information',
:'User Information',
:'Please select a supplier',
:'Please select a vendor code',
:'Please select material code',
:'Please input the supplier material code',
:'Please input the location code',
ERP库位:'ERP Location Code',
:'Unit Price',
'是否发布所选中数据?':'Do you publish the selected data?',
'是否关闭所选中数据?':'Do you want to close the selected data?',
'发布成功!':'Release Successfully!',
'是否下架所选中数据?':'Do you want to remove selected data?',
'下架成功!':'Removed Successfully!',
'采购订单主':'Purchase order master data',
'采购订单主导入模版':'The purchase order leads into the template',
'是否打开所选中数据?':'Open the selected data?',
'打开成功!':'Open Successfully!',
'关闭成功!':'Closed Successfully',
'失效时间要大于生效时间':'The expiration time must be longer than the effective time',
'供应商导入模版':'Supplier import template',
'供应商物料':'Supplier Material',
'供应商物料导入模版':'Supplier material import template',
'采购价格单':'Purchase price sheet',
'采购价格单导入模版':'Purchase price list import template',
:'Planned Quantity',
:'Shipped Quantity',
:'Received Quantity',
退:'Returned Quantity',
:'Stocked Quantity',
:'Start Using',
:'Disable',
:'Terminate',
:'Get',
:'Accomplish',
:'Binding',
:'Readd',
:'Sold Out',
:'Amend',
:'Reject',
:'Accept',
:'Undertake',
:'Abandon',
:'Receiving',
:'Packaging',
:'print Label',
:'Bulk Print',
:'Generate purchase receipt request',
:'Send the arrival inspection request',
:'Generate a purchase listing request',
:'Generate inventory adjustment request',
:'New Inventory',
:'Unfreeze',
:'Update inspection record',
使:'Usage Decision',
'是否接受所选中数据?':'Do you accept the selected data?',
'接受成功!':'Accept Successfully!',
'是否驳回所选中数据?':'Do you reject the selected data?',
'驳回成功!':'Reject Succussfully!',
'要货计划主':'Ask for master data of cargo plan',
'要货计划数量不得大于订单数量-已计划数量':'The planned quantity of the requested goods shall not be greater than the order quantity - the planned quantity',
'子列表数量不能空':'The number of sublists cannot be empty',
'要货计划主导入模版':'The request plan leads into the template',
:'already exists',
:'Refusal',
:'Approve',
:'Demand forecast master data',
:'Create a supplier shipping request',
'是否重新打开所选中数据?':'Do you want to reopen the selected data?',
'请先上传自检报告!':'Please upload the self-test report first!',
'提交审批成功!':'Submitted for approval!',
'是否提交审批所选中数据?':'Do you want to submit the selected data for approval?',
'是否审批通过所选中数据?':'Is the selected data approved?',
'审批通过成功!':'Approval is successful!',
'是否处理所选中数据?':'Do you process the selected data?',
'处理成功!':'Processing success!',
:'Supplier delivery request master data',
'是否为此数据生成标签?':'Are labels generated for this data?',
:'Label created successfully',
:'Please first select the data you want to print',
:'Failed to create label',
:'The production date cannot be longer than the expiration date',
'计划到货时间大于要货计划送达日期是否继续?':'The planned arrival time is greater than the planned delivery date. Do you want to continue?',
'子表明细不能为空!':'Subindicates that the detail cannot be empty!',
:'The purchase request was successfully generated',
'确认生成采购申请吗?':'Confirm to generate purchase application?',
:'Supplier shipment record master data',
'确认生成上架申请吗?':'Are you sure to generate a listing application?',
:'The listing application was successfully generated',
'确认生成到货检验申请吗?':'Is the arrival inspection application confirmed to be generated?',
:'The arrival inspection application was successfully generated',
:'Purchase receipt record master data',
退:'Purchase return record master data',
:'Appendix to the contract',
:'Invoice Attachment',
:'Attachment to the waybill',
:'Other Attachment',
:'Print Detail',
:'Print all invoices',
:'Export Details',
:'Print',
:'Purchase Approval',
:'Purchase Rejection',
:'Supplier Confirmation',
:'Financial Approval',
:'Financial Rejection',
'是否确认发票寄出选中数据?':'Do you confirm that the invoice is sent out with selected data?',
'发票寄出成功!':'Invoice sent successfully!',
:'Supplier invoice request master data',
:'Please provide detailed data',
'明细数据条数已超过最大数量限制【999条】':'The number of detailed data items has exceeded the maximum limit [999 items]',
:'Supplier delivery request is led into the template',
:'Supplier invoice request details',
:'Supplier invoice record master data',
:'Pass the audit',
:'Cancellation',
'是否审批拒绝所选中数据?':'Do you want to approve and reject selected data?',
'审批成功!':'Approval is successful!',
:'To be invoiced',
:'Import template to be invoiced',
:'purchase order',
:'Demand forecast',
:'Supplier shipment record',
:'Supplier invoice',
:'basic data',
router: {
login: 'Login',
home: 'Home',
analysis: 'Analysis',
workplace: 'Workplace'
},
'重置后,字段设置将恢复初始设置,是否继续?':'After reset, the field Settings will be restored to the initial Settings. Do you want to continue?',
:'Tip',
:'voucher number',
:'Purchasing price approver',
:'Supplier\'s invoice number'
},
}
} }

484
src/locales/zh-CN.ts

@ -474,18 +474,18 @@ export default {
number_all_plans: '全部计划数', number_all_plans: '全部计划数',
number_orders_received: '已收货订单数', number_orders_received: '已收货订单数',
single: '单', single: '单',
latest_news : '最新消息', latest_news:'最新消息',
number : '编号', number:'编号',
user_type : '用户类型', user_type:'用户类型',
user_number : '用户编号', user_number:'用户编号',
template_coding : '模板编码', template_coding:'模板编码',
sender_number : '发送人名称', sender_number:'发送人名称',
template_content : '模板内容', template_content:'模板内容',
template_parameters : '模板参数', template_parameters:'模板参数',
template_type : '模板类型', template_type:'模板类型',
read : '是否已读', read:'是否已读',
read_time : '阅读时间', read_time:'阅读时间',
create_time : '创建时间', create_time:'创建时间',
latest_deduction_details: '最新扣分明细', latest_deduction_details: '最新扣分明细',
title: '标题', title: '标题',
@ -528,106 +528,106 @@ export default {
claim_details_month:'本月索赔明细', claim_details_month:'本月索赔明细',
batch:'批次', batch:'批次',
today_arrival_plan_shipped : '今日到货计划(已发货)', today_arrival_plan_shipped:'今日到货计划(已发货)',
material_preparation_plan_today_issued:'今日备料计划(已发料)', material_preparation_plan_today_issued:'今日备料计划(已发料)',
call_material_today_issued:'今日叫料请求(已发料)', call_material_today_issued:'今日叫料请求(已发料)',
'pcs' : '个', 'pcs':'个',
free_library_bits_or_total_library_bits : '空闲库位数/总库位数', free_library_bits_or_total_library_bits:'空闲库位数/总库位数',
slack_stock_warning : '呆滞库存预警', slack_stock_warning:'呆滞库存预警',
package_number : '包装号', package_number:'包装号',
appliance_code : '器具代码', appliance_code:'器具代码',
location_code : '库位代码', location_code:'库位代码',
warehouse_code : '仓库代码', warehouse_code:'仓库代码',
location_group_code : '库位组代码', location_group_code:'库位组代码',
location_area_code : '库区代码', location_area_code:'库区代码',
erp_location_code : 'ERP库位代码', erp_location_code:'ERP库位代码',
arrival_date : '到货日期', arrival_date:'到货日期',
production_date : '生产日期', production_date:'生产日期',
expiry_date : '失效日期', expiry_date:'失效日期',
shipper_code : '货主代码', shipper_code:'货主代码',
lock_quantity : '锁定数量', lock_quantity:'锁定数量',
available_quantity : '可用数量', available_quantity:'可用数量',
warehouse_entry_time : '入库时间', warehouse_entry_time:'入库时间',
overstock_warning : '超期库存预警', overstock_warning:'超期库存预警',
high_and_low_storage_warning : '高低储预警', high_and_low_storage_warning:'高低储预警',
waiting_tasks : '待处理任务', waiting_tasks:'待处理任务',
purchase_return_tasks : '采购退货任务', purchase_return_tasks:'采购退货任务',
product_putway_tasks : '制品上架任务', product_putway_tasks:'制品上架任务',
purchase_and_receive_tasks : '采购收货任务', purchase_and_receive_tasks:'采购收货任务',
production_receipt_tasks : '生产收料任务', production_receipt_tasks:'生产收料任务',
production_return_tasks : '生产退料', production_return_tasks:'生产退料',
supplement_materials_tasks : '补料任务', supplement_materials_tasks:'补料任务',
product_receiving_tasks : '制品收货任务', product_receiving_tasks:'制品收货任务',
send_materials_tasks : '发料任务', send_materials_tasks:'发料任务',
today_production_plan : '今日生产计划', today_production_plan:'今日生产计划',
sequence : '顺序', sequence:'顺序',
workshop : '车间', workshop:'车间',
prouduction_line : '生产线', prouduction_line:'生产线',
schedule : '班次', schedule:'班次',
teams_and_groups : '班组', teams_and_groups:'班组',
intended_date : '计划日期', intended_date:'计划日期',
start_date : '开始日期', start_date:'开始日期',
ending_date : '结束日期', ending_date:'结束日期',
business_type : '业务类型', business_type:'业务类型',
line_side_safety_stock : '线边安全库存', line_side_safety_stock:'线边安全库存',
type : '类型', type:'类型',
laneway : '巷道', laneway:'巷道',
goods_shelf : '货架', goods_shelf:'货架',
line : '行', line:'行',
column : '列', column:'列',
stock_priority : '备货优先级', stock_priority:'备货优先级',
maximum_load_bearing : '最大承重', maximum_load_bearing:'最大承重',
maximum_area : '最大面积', maximum_area:'最大面积',
maximum_volume : '最大体积', maximum_volume:'最大体积',
user_group_code : '用户组代码', user_group_code:'用户组代码',
inventory_of_finished_products_waiting_to_be_putway : '待上架成品库存', inventory_of_finished_products_waiting_to_be_putway:'待上架成品库存',
source_warehouse_code : '从仓库代码', source_warehouse_code:'从仓库代码',
apply_time : '申请时间', apply_time:'申请时间',
request_cut_off_time : '要求截止时间', request_cut_off_time:'要求截止时间',
state : '状态', state:'状态',
department : '部门', department:'部门',
undertaker_user_name : '承接人用户名', undertaker_user_name:'承接人用户名',
undertake_time : '承接时间', undertake_time:'承接时间',
source_location_type_range : '从库位类型范围', source_location_type_range:'从库位类型范围',
destination_location_type_range : '到库位类型范围', destination_location_type_range:'到库位类型范围',
destination_warehouse_code : '到仓库代码', destination_warehouse_code:'到仓库代码',
source_location_area_code_range : '从库区代码范围', source_location_area_code_range:'从库区代码范围',
destination_location_area_code_range : '到库区代码范围', destination_location_area_code_range:'到库区代码范围',
auto_complete : '自动完成', auto_complete:'自动完成',
modifiable_location : '允许修改库位', modifiable_location:'允许修改库位',
modifiable_amount : '允许修改数量', modifiable_amount:'允许修改数量',
allow_greater_than_recommended : '允许大于推荐数量', allow_greater_than_recommended:'允许大于推荐数量',
allow_less_than_recommended : '允许小于推荐数量', allow_less_than_recommended:'允许小于推荐数量',
allow_modify_location_state : '允许修改库存状态', allow_modify_location_state:'允许修改库存状态',
allow_continuous_scanning : '允许连续扫描', allow_continuous_scanning:'允许连续扫描',
allow_partly_completed : '允许部分完成', allow_partly_completed:'允许部分完成',
modifiable_batch : '允许修改批次', modifiable_batch:'允许修改批次',
modifiable_casecode : '允许修改箱码', modifiable_casecode:'允许修改箱码',
expiration_time: '失效时间', expiration_time: '失效时间',
effective_time : '生效时间', effective_time:'生效时间',
code : '代码', code:'代码',
name : '名称', name:'名称',
}, },
ts: { ts: {
: '代码', :'代码',
: 'All', :'全部',
: '标准', :'标准',
: '委外', :'委外',
:'其它', :'其它',
:'其他', :'其他',
: '是否可用', : '是否可用',
: '类型', :'类型',
: '名称', :'名称',
: '是', :'是',
: '否', :'否',
: '供应商代码', : '供应商代码',
:'物料代码', :'物料代码',
:'单据号', :'单据号',
@ -659,6 +659,7 @@ export default {
:'银行', :'银行',
:'币种', :'币种',
:'税率', :'税率',
'税率(%)':'税率(%)',
:'生效时间', :'生效时间',
:'失效时间', :'失效时间',
:'供应商物料代码', :'供应商物料代码',
@ -712,7 +713,6 @@ export default {
:'包装数量', :'包装数量',
:'供应商计量数量', :'供应商计量数量',
:'供应商', :'供应商',
:'从库位代码', :'从库位代码',
:'到库位代码', :'到库位代码',
:'从库位组代码', :'从库位组代码',
@ -742,6 +742,118 @@ export default {
:'自动通过', :'自动通过',
:'自动执行', :'自动执行',
:'直接生成记录', :'直接生成记录',
:'明细',
:'批次',
:'到货日期',
:'过期日期',
:'物料名称',
1:'物料描述1',
2:'物料描述2',
:'项目代码',
:'质检明细',
:'添加附件',
:'变更记录',
:'添加明细',
:'上传质量报告',
:'上传质检报告',
:'个',
:'张',
:'克',
:'公斤',
:'吨',
:'米',
:'平方米',
:'生成标签',
:'创建标签',
1:'包装规格1',
2:'包装规格2',
1:'包装数量1',
2:'包装数量2',
:'物品包装信息',
:'系统提示',
:'是否为此数据生成标签',
:'是否处理所选中数据',
:'发货',
:'标签信息',
:'采购收货记录',
:'表单数据',
:'任务单号',
ERP单据号:'ERP单据号',
:'检验申请单号',
:'数据来源',
:'从库区类型范围',
:'到库区类型范围',
:'从库区代码范围',
:'到库区代码范围',
:'生效日期',
:'收货明细',
:'缺货明细',
:'行类型',
:'收货数量',
:'库存状态',
:'从库位组',
:'到库位组',
:'从库区',
:'到库区',
:'从货主',
:'到货主',
退:'采购退货记录',
:'采购收货记录单号',
qad采购退货记录单号:'qad采购退货记录单号',
:'从月台代码',
:'原因',
退:'退货数量',
:'单位',
:'金额',
:'客户代码',
:'供应商发票申请',
:'供应商名称',
:'税额',
:'税后金额',
:'折扣金额',
:'调整税额',
:'总差额',
:'金税票号',
:'发票日期',
:'过账日期',
:'财务审批人',
:'单据类型',
:'合同价格',
:'采购价格',
:'未税差额',
:'含税差额',
:'可开票数量',
:'采购审批人',
:'采购审批时间',
:'财务审批时间',
:'供应商发票记录',
:'发票号',
:'价税合计',
:'价差',
:'索赔金额',
:'发票时间',
:'差额',
:'收货日期',
:'开票数量',
:'财务审批用户名',
:'物流审核',
:'供应商送货日期',
:'物流收货日期',
:'物流单据号',
:'零件号',
:'供应商用户关联管理',
ID:'用户ID',
:'用户账号',
:'用户昵称',
:'订单',
:'计划',
:'申请',
:'任务',
:'记录',
:'编号',
:'库位代码',
:'库位组代码',
:'库区代码',
:'查询', :'查询',
:'重置', :'重置',
:'新增', :'新增',
@ -751,14 +863,98 @@ export default {
:'筛选', :'筛选',
:'设置', :'设置',
:'确定', :'确定',
'确 定':'确 定',
:'取消', :'取消',
'取 消':'取 消',
:'编辑', :'编辑',
:'删除', :'删除',
:'添加附件',
:'添加筛选条件', :'添加筛选条件',
:'前往',
:'页',
:'共',
:'打开', :'打开',
:'保存', :'保存',
////// :'请选择筛选对象',
:'请输入内容',
:'附件',
'更新:新增并修改':'更新:新增并修改',
'追加:只新增,不修改':'追加:只新增,不修改',
'覆盖:只修改不新增':'覆盖:只修改不新增',
:'下载模板',
:'更新',
:'追加',
:'覆盖',
:'部分保存',
'部分保存:如存在错误数据,正确数据正常导入':'部分保存:如存在错误数据,正确数据正常导入',
'全部保存:全部数据正确,才能导入':'全部保存:全部数据正确,才能导入',
'将文件拖到此处,或点击上传':'将文件拖到此处,或点击上传',
'将文件拖到此处,或':'将文件拖到此处,或',
'点击上传':'点击上传',
'是否确认导出数据项?':'是否确认导出数据项?',
'请选择一条数据!':'请选择一条数据!',
:'等于',
:'不等于',
:'大于',
:'小于',
:'大于等于',
:'小于等于',
:'模糊',
:'包含',
:'不包含',
:'是空',
:'不是空',
:'是空字符串',
:'不是空字符串',
:'搜索',
:'开始日期',
:'结束日期',
:'序号',
:'版本',
:'地点',
'影响明细中物料代码,需在供应商物料中维护':'影响明细中物料代码,需在供应商物料中维护',
:'是否外部资源',
:'导入模式',
:'请选择内容',
:'请选择条件',
:'区间',
'您确定删除吗, 是否继续?':'您确定删除吗, 是否继续?',
'必须保留一条筛选条件!':'必须保留一条筛选条件!',
'请填写供应商代码!':'请填写供应商代码!',
:'供应商信息',
:'物料基础信息',
:'库位信息',
:'采购订单信息',
:'供应商物料信息',
:'要货计划信息',
:'用户信息',
:'请选择供应商',
:'请选择供应商代码',
:'请选择物料代码',
:'请输入供应商物料代码',
:'请选择库位代码',
ERP库位:'ERP库位',
:'单价',
'是否发布所选中数据?':'是否发布所选中数据?',
'是否关闭所选中数据?':'是否关闭所选中数据?',
'发布成功!':'发布成功!',
'是否下架所选中数据?':'是否下架所选中数据?',
'下架成功!':'下架成功!',
'采购订单主':'采购订单主',
'采购订单主导入模版':'采购订单主导入模版',
'是否打开所选中数据?':'是否打开所选中数据?',
'打开成功!':'打开成功!',
'关闭成功!':'关闭成功!',
'失效时间要大于生效时间':'失效时间要大于生效时间',
'供应商导入模版':'供应商导入模版',
'供应商物料':'供应商物料',
'供应商物料导入模版':'供应商物料导入模版',
'采购价格单':'采购价格单',
'采购价格单导入模版':'采购价格单导入模版',
:'已计划数量',
:'已发货数量',
:'已收货数量',
退:'已退货数量',
:'已上架数量',
:'启用', :'启用',
:'禁用', :'禁用',
:'中止', :'中止',
@ -781,13 +977,93 @@ export default {
:'生成采购上架申请', :'生成采购上架申请',
:'生成盘点调整申请', :'生成盘点调整申请',
:'重盘', :'重盘',
:'监盘',
:'解冻', :'解冻',
:'更新检验记录', :'更新检验记录',
使:'使用决策' 使:'使用决策',
'是否接受所选中数据?':'是否接受所选中数据?',
'接受成功!':'接受成功!',
'是否驳回所选中数据?':'是否驳回所选中数据?',
'驳回成功!':'驳回成功!',
'要货计划主':'要货计划主',
'要货计划数量不得大于订单数量-已计划数量':'要货计划数量不得大于订单数量-已计划数量',
'子列表数量不能空':'子列表数量不能空',
'要货计划主导入模版':'要货计划主导入模版',
:'已经存在',
:'驳回',
:'审批通过',
:'要货预测主',
:'创建供应商发货申请',
'是否重新打开所选中数据?':'是否重新打开所选中数据?',
'请先上传自检报告!':'请先上传自检报告!',
'提交审批成功!':'提交审批成功!',
'是否提交审批所选中数据?':'是否提交审批所选中数据?',
'是否审批通过所选中数据?':'是否审批通过所选中数据?',
'审批通过成功!':'审批通过成功!',
'是否处理所选中数据?':'是否处理所选中数据?',
'处理成功!':'处理成功!',
:'供应商发货申请主',
'是否为此数据生成标签?':'是否为此数据生成标签?',
:'创建标签成功',
:'请先选择要打印的数据',
:'创建标签失败',
:'生产日期不可以大于过期日期',
'计划到货时间大于要货计划送达日期是否继续?':'计划到货时间大于要货计划送达日期是否继续?',
'子表明细不能为空!':'子表明细不能为空!',
:'采购申请生成成功',
'确认生成采购申请吗?':'确认生成采购申请吗?',
:'供应商发货记录主',
'确认生成上架申请吗?':'确认生成上架申请吗?',
:'上架申请生成成功',
'确认生成到货检验申请吗?':'确认生成到货检验申请吗?',
:'到货检验申请生成成功',
:'采购收货记录主',
退:'采购退货记录主',
:'合同附件t',
:'发票附件',
:'货运单附件',
:'其他附件',
:'打印明细',
:'打印全部发货单',
:'导出明细',
:'打印',
:'采购通过',
:'采购驳回',
:'供应商确认',
:'财务通过',
:'财务驳回',
'是否确认发票寄出选中数据?':'是否确认发票寄出选中数据?',
'发票寄出成功!':'发票寄出成功!',
:'供应商发票申请主',
:'请添明细数据',
'明细数据条数已超过最大数量限制【999条】':'明细数据条数已超过最大数量限制【999条】',
:'供应商发货申请主导入模版',
:'供应商发票申请明细',
:'供应商发票记录主',
:'审核通过',
:'作废',
'是否审批拒绝所选中数据?':'是否审批拒绝所选中数据?',
'审批成功!':'审批成功!',
:'待开票',
:'待开票导入模版',
:'采购订单',
:'要货预测',
:'供应商发货记录',
:'供应商发票',
:'基础数据',
router: {
login: '登录',
home: '首页',
analysis: '分析页',
workplace: '工作台'
},
'重置后,字段设置将恢复初始设置,是否继续?':'重置后,字段设置将恢复初始设置,是否继续?',
:'提示',
:'凭证号',
:'采购价格审批人',
:'供应商发货单号'
},
}
} }

1
src/utils/dict.ts

@ -334,4 +334,5 @@ export enum DICT_TYPE {
BASIC_TEAM_TYPE='basic_team_type',//班组类型 BASIC_TEAM_TYPE='basic_team_type',//班组类型
TAX_RATE_DICT='tax_rate_dict', //税率 TAX_RATE_DICT='tax_rate_dict', //税率
INTERFACE_STATUS = 'interfaceStatus', // 接口调用信息 接口状态 INTERFACE_STATUS = 'interfaceStatus', // 接口调用信息 接口状态
SYSTEM_DAY = 'system_day', // 系统天数
} }

2
src/views/qms/selectedProject/selectedProject.data.ts

@ -29,7 +29,7 @@ export const SelectedProject = useCrudSchemas(reactive<CrudSchema[]>([
} }
}, },
{ {
label: '字典项', label: '项',
field: 'dictionaryValue', field: 'dictionaryValue',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,

4
src/views/wms/basicDataManage/itemManage/packageunit/packageunit.data.ts

@ -144,7 +144,7 @@ export const Packageunit = useCrudSchemas(reactive<CrudSchema[]>([
isSearch: false, isSearch: false,
form: { form: {
component: 'Switch', component: 'Switch',
value: 'TRUE', value: 'FALSE',
componentProps: { componentProps: {
inactiveValue: 'FALSE', inactiveValue: 'FALSE',
activeValue: 'TRUE' activeValue: 'TRUE'
@ -435,7 +435,7 @@ export const PackageunitCopy = useCrudSchemas(reactive<CrudSchema[]>([
isSearch: false, isSearch: false,
form: { form: {
component: 'Switch', component: 'Switch',
value: 'TRUE', value: 'FALSE',
componentProps: { componentProps: {
inactiveValue: 'FALSE', inactiveValue: 'FALSE',
activeValue: 'TRUE' activeValue: 'TRUE'

8
src/views/wms/basicDataManage/supplierManage/purchaseprice/index.vue

@ -28,7 +28,7 @@
v-model:sort="tableObject.sort" v-model:sort="tableObject.sort"
> >
<template #supplierCode="{row}"> <template #supplierCode="{row}">
<el-button type="primary" link @click="openDetail(row, '供应商代码', row.supplierCode)"> <el-button type="primary" link @click="openDetail(row, t('ts.供应商代码'), row.supplierCode)">
<span>{{ row.supplierCode }}</span> <span>{{ row.supplierCode }}</span>
</el-button> </el-button>
</template> </template>
@ -183,7 +183,7 @@ const formsSuccess = async (formType,data) => {
}); });
if(isHave){ if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){ if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
message.error('失效时间要大于生效时间') message.error(t('ts.失效时间要大于生效时间'))
return; return;
} }
} }
@ -239,7 +239,7 @@ const handleExport = async () => {
// //
exportLoading.value = true exportLoading.value = true
const data = await PurchasepriceApi.exportPurchaseprice(tableObject.params) const data = await PurchasepriceApi.exportPurchaseprice(tableObject.params)
download.excel(data, '采购价格单.xlsx') download.excel(data, `${t('ts.采购价格单')}.xlsx`)
} catch { } catch {
} finally { } finally {
exportLoading.value = false exportLoading.value = false
@ -254,7 +254,7 @@ const handleImport = () => {
// //
const importTemplateData = reactive({ const importTemplateData = reactive({
templateUrl: '', templateUrl: '',
templateTitle: '采购价格单导入模版.xlsx' templateTitle: `${t('ts.采购价格单导入模版')}.xlsx`
}) })
// //
const importSuccess = () => { const importSuccess = () => {

6
src/views/wms/basicDataManage/supplierManage/supplier/index.vue

@ -174,7 +174,7 @@ const formsSuccess = async (formType, data) => {
}) })
if (isHave) { if (isHave) {
if (data.activeTime && data.expireTime && data.activeTime >= data.expireTime) { if (data.activeTime && data.expireTime && data.activeTime >= data.expireTime) {
message.error('失效时间要大于生效时间') message.error(t('ts.失效时间要大于生效时间'))
return return
} }
} }
@ -221,7 +221,7 @@ const handleExport = async () => {
// //
exportLoading.value = true exportLoading.value = true
const data = await SupplierApi.exportSupplier(tableObject.params) const data = await SupplierApi.exportSupplier(tableObject.params)
download.excel(data, '供应商.xlsx') download.excel(data, `${t('ts.供应商')}.xlsx`)
} catch { } catch {
} finally { } finally {
exportLoading.value = false exportLoading.value = false
@ -236,7 +236,7 @@ const handleImport = () => {
// //
const importTemplateData = reactive({ const importTemplateData = reactive({
templateUrl: '', templateUrl: '',
templateTitle: '供应商导入模版.xlsx' templateTitle: `${t('ts.供应商导入模版')}.xlsx`
}) })
// //
const importSuccess = () => { const importSuccess = () => {

8
src/views/wms/basicDataManage/supplierManage/supplieritem/index.vue

@ -28,7 +28,7 @@
v-model:sort="tableObject.sort" v-model:sort="tableObject.sort"
> >
<template #supplierCode="{row}"> <template #supplierCode="{row}">
<el-button type="primary" link @click="openDetail(row, '供应商代码', row.supplierCode)"> <el-button type="primary" link @click="openDetail(row, t('ts.供应商代码'), row.supplierCode)">
<span>{{ row.supplierCode }}</span> <span>{{ row.supplierCode }}</span>
</el-button> </el-button>
</template> </template>
@ -182,7 +182,7 @@ const formsSuccess = async (formType,data) => {
}); });
if(isHave){ if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){ if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
message.error('失效时间要大于生效时间') message.error(t('ts.失效时间要大于生效时间'))
return; return;
} }
} }
@ -238,7 +238,7 @@ const handleExport = async () => {
// //
exportLoading.value = true exportLoading.value = true
const data = await SupplieritemApi.exportSupplieritem(tableObject.params) const data = await SupplieritemApi.exportSupplieritem(tableObject.params)
download.excel(data, '供应商物料.xlsx') download.excel(data, `${t('ts.供应商物料')}.xlsx`)
} catch { } catch {
} finally { } finally {
exportLoading.value = false exportLoading.value = false
@ -253,7 +253,7 @@ const handleImport = () => {
// //
const importTemplateData = reactive({ const importTemplateData = reactive({
templateUrl: '', templateUrl: '',
templateTitle: '供应商物料导入模版.xlsx' templateTitle: `${t('ts.供应商物料导入模版')}.xlsx`
}) })
// //
const importSuccess = () => { const importSuccess = () => {

108
src/views/wms/deliversettlementManage/deliverplan/saleMain/saleMain.data.ts

@ -763,3 +763,111 @@ export const SaleDetailRules = reactive({
{ max: 50, message: '不得超过50个字符', trigger: 'blur' } { max: 50, message: '不得超过50个字符', trigger: 'blur' }
], ],
}) })
/**
* @returns {Array}
*/
export const SaleDetailAndMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '销售订单号',
field: 'number',
sort: 'custom',
table: {
width: 180
},
},
{
label: '销售订单行',
field: 'lineNumber',
sort: 'custom',
table: {
width: 150
},
},
{
label: '物料代码',
field: 'itemCode',
sort: 'custom',
table: {
width: 150
},
tableForm:{
isInpuFocusShow: true,
searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '物料基础信息', // 查询弹窗标题
searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类
searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法
searchCondition: [{
key: 'available',
value: 'TRUE',
isMainValue: false
}]
},
form: {
// labelMessage: '信息提示说明!!!',
componentProps: {
isSearchList: true, // 开启查询弹窗
searchListPlaceholder: '请选择物料代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '物料基础信息', // 查询弹窗标题
searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类
searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法
searchCondition: [{
key: 'available',
value: 'TRUE',
isMainValue: false
}]
}
}
},
{
label: '批次',
field: 'batch',
sort: 'custom',
},
{
label: '客户库位',
field: 'fromLocationCode',
sort: 'custom',
isSearch: true,
isTableForm: true,
table: {
width: 150
},
},
{
label: '数量',
field: 'orderQty',
sort: 'custom',
table: {
width: 150
},
form: {
component: 'InputNumber',
componentProps: {
min: 1,
precision: 6
}
},
tableForm: {
type: 'InputNumber',
min: 1,
precision: 6
}
},
{
label: '计量单位',
field: 'uom',
dictType: DICT_TYPE.UOM,
dictClass: 'string',
isTable: true,
sort: 'custom',
table: {
width: 150
},
tableForm: {
type: 'Select'
}
}
]))

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

@ -150,17 +150,6 @@ const openForm = (type: string, row?: any) => {
// form // form
const formsSuccess = async (formType,data) => { const formsSuccess = async (formType,data) => {
var isHave =SaleShipmentMainRecord.allSchemas.formSchema.some(function (item) {
return item.field === 'activeTime' || item.field === 'expireTime';
});
if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
message.error('失效时间要大于生效时间')
return;
}
}
if(data.activeTime==0)data.activeTime = null;
if(data.expireTime==0)data.expireTime = null;
if (formType === 'create') { if (formType === 'create') {
await SaleShipmentMainRecordApi.createSaleShipmentMainRecord(data) await SaleShipmentMainRecordApi.createSaleShipmentMainRecord(data)
message.success(t('common.createSuccess')) message.success(t('common.createSuccess'))

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

@ -28,7 +28,7 @@
v-model:currentPage="tableObject.currentPage" v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort" v-model:sort="tableObject.sort"
> >
<template #code="{row}"> <template #number="{row}">
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> <el-button type="primary" link @click="openDetail(row, '单据号', row.number)">
<span>{{ row.number }}</span> <span>{{ row.number }}</span>
</el-button> </el-button>
@ -42,7 +42,7 @@
<!-- 表单弹窗添加/修改 --> <!-- 表单弹窗添加/修改 -->
<BasicForm <BasicForm
ref="basicFormRef" ref="basicFormRef"
:isOpenSearchTable="true" :isOpenSearchTable="false"
fieldTableColumn="soLine" fieldTableColumn="soLine"
@success="getList" @success="getList"
:rules="SaleShipmentMainRules" :rules="SaleShipmentMainRules"
@ -213,15 +213,14 @@ const butttondata = (row,$index) => {
return [] return []
} }
return [ return [
defaultButtons.mainListEditBtn({hasPermi:'wms:sale-shipment-main-request:update'}), // defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:sale-shipment-main-request:update'}), //
defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','2','3','4','6']),hasPermi:'wms:sale-shipment-main-request:close'}), // defaultButtons.mainListCloseBtn({hide:isShowMainButton(row,['1','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.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.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'}), // defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:sale-shipment-main-request:refused'}), //
defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:sale-shipment-main-request:agree'}), // defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:sale-shipment-main-request:agree'}), //
defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:sale-shipment-main-request:handle'}), // defaultButtons.mainListHandleBtn({hide:isShowMainButton(row,['3']),hasPermi:'wms:sale-shipment-main-request:handle'}), //
defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:sale-shipment-main-request:update'}), // // defaultButtons.mainListDeleteBtn({hasPermi:'wms:sale-shipment-main-request:delete'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'wms:sale-shipment-main-request:delete'}), //
] ]
} }
const tableData = ref([]) const tableData = ref([])
@ -229,7 +228,73 @@ const tableData = ref([])
// - // -
const buttonTableClick = async (val, row) => { const buttonTableClick = async (val, row) => {
if (val == 'edit') { // if (val == 'mainClose') { //
await message.confirm('确认要关闭吗?')
tableObject.loading = true
SaleShipmentMainApi.close(row.masterId).then(() => {
message.success(t('common.updateSuccess'))
tableObject.loading = false
getList()
}).catch(err => {
tableObject.loading = false
console.log(err)
})
} else if (val == 'mainReAdd') { //
await message.confirm('确认要重新添加吗?')
tableObject.loading = true
SaleShipmentMainApi.reAdd(row.masterId).then(() => {
message.success(t('common.updateSuccess'))
tableObject.loading = false
getList()
}).catch(err => {
tableObject.loading = false
console.log(err)
})
} else if (val == 'mainSubmit') { //
await message.confirm('确认要提交审批吗?')
tableObject.loading = true
SaleShipmentMainApi.submit(row.masterId).then(() => {
message.success(t('common.updateSuccess'))
tableObject.loading = false
getList()
}).catch(err => {
tableObject.loading = false
console.log(err)
})
} else if (val == 'mainTurnDown') { //
await message.confirm('确认要驳回吗?')
tableObject.loading = true
SaleShipmentMainApi.refused(row.masterId).then(() => {
message.success(t('common.updateSuccess'))
tableObject.loading = false
getList()
}).catch(err => {
tableObject.loading = false
console.log(err)
})
} else if (val == 'mainApprove') { //
await message.confirm('确认要审批通过吗?')
tableObject.loading = true
SaleShipmentMainApi.agree(row.masterId).then(() => {
message.success(t('common.updateSuccess'))
tableObject.loading = false
getList()
}).catch(err => {
tableObject.loading = false
console.log(err)
})
} else if (val == 'mainHandle') { //
await message.confirm('确认要 处理吗?')
tableObject.loading = true
SaleShipmentMainApi.handle(row.masterId).then(() => {
message.success(t('common.updateSuccess'))
tableObject.loading = false
getList()
}).catch(err => {
tableObject.loading = false
console.log(err)
})
} else if (val == 'edit') { //
openForm('update', row) openForm('update', row)
} else if (val == 'delete') { // } else if (val == 'delete') { //
handleDelete(row.id) handleDelete(row.id)

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

@ -5,7 +5,9 @@ import * as CustomerApi from '@/api/wms/customer'
import { Customer } from '@/views/wms/basicDataManage/customerManage/customer/customer.data' import { Customer } from '@/views/wms/basicDataManage/customerManage/customer/customer.data'
import * as SaleDetailApi from '@/api/wms/saleDetail' import * as SaleDetailApi from '@/api/wms/saleDetail'
import { SaleDetail } from '@/views/wms/deliversettlementManage/deliverplan/saleMain/saleMain.data' import { SaleDetailAndMain } from '@/views/wms/deliversettlementManage/deliverplan/saleMain/saleMain.data'
import * as LocationApi from '@/api/wms/location'
import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data'
import * as getRequestsettingApi from '@/api/wms/requestsetting/index' import * as getRequestsettingApi from '@/api/wms/requestsetting/index'
// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 // 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值
@ -19,9 +21,34 @@ const queryParams = {
// 表单校验 // 表单校验
export const SaleShipmentMainRules = reactive({ export const SaleShipmentMainRules = reactive({
customerCode: [
{ required: true, message: '请选择客户代码', trigger: 'blur' }
],
}) })
export const SaleShipmentMain = useCrudSchemas(reactive<CrudSchema[]>([ export const SaleShipmentMain = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
isSearch: true,
isForm: false,
table: {
width: 200
},
},
{
label: '状态',
field: 'status',
sort: 'custom',
table: {
width: 150
},
dictType: DICT_TYPE.REQUEST_STATUS,
dictClass: 'string',
isSearch: true,
isForm:false,
},
{ {
label: '客户代码', label: '客户代码',
field: 'customerCode', field: 'customerCode',
@ -48,35 +75,11 @@ export const SaleShipmentMain = useCrudSchemas(reactive<CrudSchema[]>([
} }
} }
}, },
{
label: '单据号',
field: 'number',
sort: 'custom',
isSearch: true,
isForm: false,
table: {
width: 150
},
},
{
label: '业务类型',
field: 'businessType',
sort: 'custom',
isForm: false,
table: {
width: 150
},
},
{
label: '备注',
field: 'remark',
sort: 'custom',
isForm: false,
},
{ {
label: '发票时间', label: '发票时间',
field: 'invoiceTime', field: 'invoiceTime',
sort: 'custom', sort: 'custom',
isSearch: true,
table: { table: {
width: 180 width: 180
}, },
@ -101,26 +104,33 @@ export const SaleShipmentMain = useCrudSchemas(reactive<CrudSchema[]>([
label: '地点', label: '地点',
field: 'siteId', field: 'siteId',
sort: 'custom', sort: 'custom',
isSearch: true, hiddenInMain: true,
hiddenInMain: true,
}, },
{ {
label: '部门', label: '业务类型',
field: 'departmentCode', field: 'businessType',
sort: 'custom', sort: 'custom',
isForm: false, isForm: false,
}, isTableForm: false,
{
label: '状态',
field: 'status',
sort: 'custom',
table: { table: {
width: 150 width: 150
}, },
dictType: DICT_TYPE.REQUEST_STATUS, },
dictClass: 'string', {
isSearch: true, label: '备注',
isForm:false, field: 'remark',
sort: 'custom',
isForm: false,
isTableForm: false,
isTable: false
},
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
isForm: false,
isTableForm: false,
isTable: false
}, },
{ {
label: '自动提交', label: '自动提交',
@ -220,15 +230,20 @@ export const SaleShipmentMain = useCrudSchemas(reactive<CrudSchema[]>([
} }
}, },
isForm: false, isForm: false,
isTableForm: false,
isTable: false
}, },
{ {
label: '操作', label: '操作',
field: 'action', field: 'action',
isDetail: false,
isForm: false, isForm: false,
table: { table: {
width: 150, width: 250,
fixed: 'right' fixed: 'right'
} },
hiddenInMain:true,
isTableForm:false,
} }
])) ]))
@ -237,30 +252,14 @@ export const SaleShipmentDetailRules = reactive({
}) })
export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '单据号',
field: 'number',
sort: 'custom',
isSearch: true,
table: {
width: 180
},
isTable: false,
isTableForm: false,
form: {
componentProps: {
disabled: true
}
}
},
{ {
label: '销售订单号', label: '销售订单号',
field: 'soNumber', field: 'soNumber',
sort: 'custom', sort: 'custom',
isSearch: true,
table: { table: {
width: 150 width: 200
}, },
isSearch: true,
tableForm: { tableForm: {
type: 'Select', type: 'Select',
disabled: true disabled: true
@ -283,12 +282,17 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
searchListPlaceholder: '请选择销售订单行', searchListPlaceholder: '请选择销售订单行',
searchField: 'lineNumber', searchField: 'lineNumber',
searchTitle: '销售订单信息', searchTitle: '销售订单信息',
searchAllSchemas: SaleDetail.allSchemas, searchAllSchemas: SaleDetailAndMain.allSchemas,
searchPage: SaleDetailApi.getSaleDetailPage, searchPage: SaleDetailApi.getSaleDetailPage,
searchCondition: [{ searchCondition: [{
key: 'available', key: 'available',
value: 'TRUE', value: 'TRUE',
isMainValue: false isMainValue: false
},
{
key: 'customerCode',
value: 'customerCode',
isMainValue: true
}] }]
}, },
form: { form: {
@ -298,7 +302,7 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
searchListPlaceholder: '请选择销售订单行', searchListPlaceholder: '请选择销售订单行',
searchField: 'lineNumber', searchField: 'lineNumber',
searchTitle: '销售订单信息', searchTitle: '销售订单信息',
searchAllSchemas: SaleDetail.allSchemas, searchAllSchemas: SaleDetailAndMain.allSchemas,
searchPage: SaleDetailApi.getSaleDetailPage, searchPage: SaleDetailApi.getSaleDetailPage,
searchCondition: [{ searchCondition: [{
key: 'available', key: 'available',
@ -314,7 +318,7 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
} }
}, },
{ {
label: '物代码', label: '物代码',
field: 'itemCode', field: 'itemCode',
sort: 'custom', sort: 'custom',
isSearch: true, isSearch: true,
@ -326,29 +330,63 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
componentProps: { componentProps: {
disabled: true disabled: true
} }
} },
table: {
width: 150
},
}, },
{ {
label: '批次', label: '批次',
field: 'batch', field: 'batch',
sort: 'custom', sort: 'custom',
isSearch: true, },
{
label: '客户库位',
field: 'fromLocationCode',
tableForm:{
isInpuFocusShow: true, // 开启查询弹窗
searchListPlaceholder: '请选择客户库位代码',
searchField: 'code',
searchTitle: '库位基础信息',
searchAllSchemas: Location.allSchemas,
searchPage: LocationApi.selectConfigToLocation,
searchCondition: [{
key: 'available',
value: 'TRUE',
isMainValue: false
}]
},
form: {
componentProps: {
isSearchList: true,
searchListPlaceholder: '请选择客户库位代码',
searchField: 'code',
searchTitle: '库位基础信息',
searchAllSchemas: Location.allSchemas,
searchPage: LocationApi.selectConfigToLocation,
searchCondition: [{
key: 'available',
value: 'TRUE',
isMainValue: false
}]
}
},
}, },
{ {
label: '从货主代码', label: '从货主代码',
field: 'fromOwnerCode', field: 'fromOwnerCode',
sort: 'custom', sort: 'custom',
isSearch: true,
isForm: false, isForm: false,
isTableForm: false isTableForm: false,
isTable: false,
}, },
{ {
label: '包装号', label: '包装号',
field: 'packingNumber', field: 'packingNumber',
sort: 'custom', sort: 'custom',
isSearch: true,
isForm: false, isForm: false,
isTableForm: false isTableForm: false,
isTable: false,
}, },
{ {
@ -356,7 +394,7 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
field: 'inventoryStatus', field: 'inventoryStatus',
// dictType: DICT_TYPE.INVENTORY_STATUS, // dictType: DICT_TYPE.INVENTORY_STATUS,
// dictClass: 'string', // dictClass: 'string',
isTable: true, isTable: false,
sort: 'custom', sort: 'custom',
table: { table: {
width: 150 width: 150
@ -365,14 +403,6 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
hiddenInMain: true, hiddenInMain: true,
isForm: false, isForm: false,
}, },
{
label: '客户库位',
field: 'fromLocationCode',
sort: 'custom',
isSearch: true,
isTableForm: true
},
{ {
label: '物品名称', label: '物品名称',
field: 'itemName', field: 'itemName',
@ -391,7 +421,8 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
width: 150 width: 150
}, },
isForm: false, isForm: false,
isTableForm: false isTableForm: false,
isTable: false,
}, },
{ {
label: '物品描述2', label: '物品描述2',
@ -401,13 +432,13 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
width: 150 width: 150
}, },
isForm: false, isForm: false,
isTableForm: false isTableForm: false,
isTable: false,
}, },
{ {
label: '项目代码', label: '项目代码',
field: 'projectCode', field: 'projectCode',
sort: 'custom', sort: 'custom',
isSearch: true,
isTableForm: false, isTableForm: false,
hiddenInMain: true, hiddenInMain: true,
}, },
@ -415,7 +446,9 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
label: '开票数量', label: '开票数量',
field: 'qty', field: 'qty',
sort: 'custom', sort: 'custom',
isSearch: true, table: {
width: 150
},
}, },
{ {
label: '计量单位', label: '计量单位',
@ -441,7 +474,7 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
label: '备注', label: '备注',
field: 'remark', field: 'remark',
sort: 'custom', sort: 'custom',
isSearch: true, isTable: false,
isTableForm: false isTableForm: false
}, },
{ {
@ -449,7 +482,6 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
field: 'createTime', field: 'createTime',
sort: 'custom', sort: 'custom',
formatter: dateFormatter, formatter: dateFormatter,
isSearch: true,
search: { search: {
component: 'DatePicker', component: 'DatePicker',
componentProps: { componentProps: {
@ -459,11 +491,13 @@ export const SaleShipmentDetail = useCrudSchemas(reactive<CrudSchema[]>([
} }
}, },
isForm: false, isForm: false,
isTableForm: false isTableForm: false,
isTable: false,
}, },
{ {
label: '操作', label: '操作',
field: 'action', field: 'action',
isDetail: false,
isForm: false, isForm: false,
table: { table: {
width: 150, width: 150,

1
src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRecordMain/productreceiptscrapRecordMain.data.ts

@ -509,6 +509,7 @@ export const ProductreceiptRecordDetail = useCrudSchemas(reactive<CrudSchema[]>(
label: '单据号', label: '单据号',
field: 'number', field: 'number',
sort: 'custom', sort: 'custom',
hiddenInMain:true,
table: { table: {
width: 180 width: 180
}, },

63
src/views/wms/productionManage/productreceiptscrap/productreceiptscrapRequestMain/index.vue

@ -113,6 +113,8 @@
<!-- 导入 --> <!-- 导入 -->
<ImportForm ref="importFormRef" url="/wms/productreceipt-request-main/import" :importTemplateData="importTemplateData" <ImportForm ref="importFormRef" url="/wms/productreceipt-request-main/import" :importTemplateData="importTemplateData"
@success="importSuccess" :updateIsDisable="true" :coverIsDisable="true" :mode="2" /> @success="importSuccess" :updateIsDisable="true" :coverIsDisable="true" :mode="2" />
<!-- 标签打印 -->
<SearchTable style="width:905px" ref="searchTableRef" @searchTableSuccess="searchTableSuccess1" />
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@ -129,6 +131,9 @@ import * as ItembasicApi from '@/api/wms/itembasic'
import * as PackageApi from '@/api/wms/package' import * as PackageApi from '@/api/wms/package'
import { formatTime } from '@/utils/index' import { formatTime } from '@/utils/index'
import { getAccessToken } from '@/utils/auth' import { getAccessToken } from '@/utils/auth'
import {
SupplierdeliverRequestPackage
} from '../../../purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data.ts'
// //
defineOptions({ name: 'ProductreceiptRequestMain' }) defineOptions({ name: 'ProductreceiptRequestMain' })
@ -636,6 +641,7 @@ const detailValidate = (data) => {
} }
const BASE_URL = import.meta.env.VITE_JMREPORT_BASE_URL const BASE_URL = import.meta.env.VITE_JMREPORT_BASE_URL
// //
const handlePoint = async (row) => { const handlePoint = async (row) => {
// //
@ -658,18 +664,61 @@ const handlePoint = async (row) => {
}) })
// //
if (isCreateLabel.value) { if (isCreateLabel.value) {
if (labelType.value == 'cg') { labelPrint(row)
const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAccessToken())
window.open(src.value+'&request_number='+row.number)
} else {
const src = ref(BASE_URL + '/jmreport/view/922734157577715712?token=' + getAccessToken())
window.open(src.value+'&request_number='+row.number)
}
} else { } else {
message.warning('请先创建标签') message.warning('请先创建标签')
} }
} }
const searchTableRef = ref()
//
const labelPrint = async (row) => {
tableObject.loading = true
const defaultParams = {'moduleName':'productreceipt_predict','recordNumber':row.number}
const {tableObject:tableObjectPrint ,tableMethods} = useTable({
defaultParams,
getListApi: PackageApi.getLabelDetailPage //
})
//
const { getList:getListPrint } = tableMethods
getListPrint()
tableObject.loading = false
const tableColumns = SupplierdeliverRequestPackage.allSchemas.tableFormColumns
tableColumns.forEach((item) => {
item.width = item.table?.width || 150
})
searchTableRef.value.openData("标签信息",tableObjectPrint,{tableColumns},true)
}
// --
const searchTableSuccess1 = async (formField, searchField, val, formRef, type, row) => {
console.log('批量打印',val)
// let rows:any = []
// val.forEach(item=>{
// rows = [...rows,...item.selectionRows.map(item1=>item1.number)]
// })
if(val.length == 0){
message.warning("请先选择要打印的数据!")
return
}
// window.open(src.value + '&asn_number=' + val.map(item1=>item1.number).join(','))
await PackageApi.batchPrintingLable(val.map(item1=>item1.number).join(',')).then(res => {
console.log(res)
if (labelType.value == 'cg') {
const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAccessToken())
window.open(src.value+'&asn_number='+res)
} else {
const src = ref(BASE_URL + '/jmreport/view/922734157577715712?token=' + getAccessToken())
window.open(src.value+'&asn_number='+res)
}
}).catch(err => {
console.log(err)
message.error('创建标签失败')
})
}
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
getList() getList()

4
src/views/wms/purchasereceiptManage/inspect/inspectRecordMain/index.vue

@ -151,10 +151,10 @@ const buttonTableClick = async (val, row) => {
/** 生成采购上架申请按钮操作 */ /** 生成采购上架申请按钮操作 */
const handlePutawayRequest = async (number:string) => { const handlePutawayRequest = async (number:string) => {
try{ try{
await message.confirm(t('确认生成上架申请吗?')) await message.confirm(t('ts.确认生成上架申请吗?'))
tableObject.loading = true tableObject.loading = true
await InspectRecordMainApi.createPutAwayRequest(number) await InspectRecordMainApi.createPutAwayRequest(number)
message.success(t('上架申请生成成功')) message.success(t('ts.上架申请生成成功'))
await getList() await getList()
}catch{}finally{ }catch{}finally{
tableObject.loading = false tableObject.loading = false

12
src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue

@ -177,10 +177,10 @@ const buttonTableClick = async (val, row) => {
/** 生成采购上架申请按钮操作 */ /** 生成采购上架申请按钮操作 */
const handleCreatePutawayRequest = async (number:string) => { const handleCreatePutawayRequest = async (number:string) => {
try{ try{
await message.confirm(t('确认生成上架申请吗?')) await message.confirm(t('ts.确认生成上架申请吗?'))
tableObject.loading = true tableObject.loading = true
await PurchasereceiptRecordMainApi.createPutawayRequest(number) await PurchasereceiptRecordMainApi.createPutawayRequest(number)
message.success(t('上架申请生成成功')) message.success(t('ts.上架申请生成成功'))
await getList() await getList()
}catch{}finally{ }catch{}finally{
tableObject.loading = false tableObject.loading = false
@ -190,10 +190,10 @@ const handleCreatePutawayRequest = async (number:string) => {
/** 生成到货检验申请按钮操作 */ /** 生成到货检验申请按钮操作 */
const handleCreateInspectRequest = async (number:string) => { const handleCreateInspectRequest = async (number:string) => {
try{ try{
await message.confirm(t('确认生成到货检验申请吗?')) await message.confirm(t('ts.确认生成到货检验申请吗?'))
tableObject.loading = true tableObject.loading = true
await PurchasereceiptRecordMainApi.createInspectRequest(number) await PurchasereceiptRecordMainApi.createInspectRequest(number)
message.success(t('到货检验申请生成成功')) message.success(t('ts.到货检验申请生成成功'))
await getList() await getList()
}catch{}finally{ }catch{}finally{
tableObject.loading = false tableObject.loading = false
@ -227,7 +227,7 @@ const openDetail = (row: any, titleName: any, titleValue: any) => {
// table // table
const buttondataTable = ref([{ const buttondataTable = ref([{
label: '查看其他包装规格', label: t('ts.查看其他包装规格'),
name: 'viewParentPickingNumber', name: 'viewParentPickingNumber',
hide: false, hide: false,
type: 'primary', type: 'primary',
@ -268,7 +268,7 @@ const handleExport = async () => {
// //
exportLoading.value = true exportLoading.value = true
const data = await PurchasereceiptRecordMainApi.exportPurchasereceiptRecordMain(tableObject.params) const data = await PurchasereceiptRecordMainApi.exportPurchasereceiptRecordMain(tableObject.params)
download.excel(data, '采购收货记录主.xlsx') download.excel(data, `${t('ts.采购收货记录主')}.xlsx`)
} catch { } catch {
} finally { } finally {
exportLoading.value = false exportLoading.value = false

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

@ -402,7 +402,7 @@ const submitFormLabel = async (formType, data) => {
console.log("data==",data) console.log("data==",data)
data.subList = detatableData.tableList data.subList = detatableData.tableList
console.log("detatableData",detatableData) console.log("detatableData",detatableData)
await message.confirm('是否为此数据生成标签?') await message.confirm(t('ts.是否为此数据生成标签?'))
await PurchasereceiptRequestMainApi.genLabel(data) //genLabelId.value await PurchasereceiptRequestMainApi.genLabel(data) //genLabelId.value
isCreateLabel.value = true isCreateLabel.value = true
message.success('创建标签成功') message.success('创建标签成功')

2
src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/index.vue

@ -168,7 +168,7 @@ const handleExport = async () => {
// //
exportLoading.value = true exportLoading.value = true
const data = await PurchasereturnRecordMainApi.exportPurchasereturnRecordMain(tableObject.params) const data = await PurchasereturnRecordMainApi.exportPurchasereturnRecordMain(tableObject.params)
download.excel(data, '采购退货记录主.xlsx') download.excel(data, `${t('ts.采购退货记录主')}.xlsx`)
} catch { } catch {
} finally { } finally {
exportLoading.value = false exportLoading.value = false

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

@ -407,7 +407,7 @@ const { getList:getDetailList } = detatableMethods
// //
const submitFormLabel = async (formType, data) => { const submitFormLabel = async (formType, data) => {
try { try {
await message.confirm('是否为此数据生成标签?') await message.confirm(t('ts.是否为此数据生成标签?'))
await PurchasereceiptRequestMainApi.genLabel(genLabelId.value) await PurchasereceiptRequestMainApi.genLabel(genLabelId.value)
isCreateLabel.value = true isCreateLabel.value = true
message.success('创建标签成功') message.success('创建标签成功')

20
src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/index.vue

@ -234,11 +234,11 @@ const openForm =async (type: string, row?: number) => {
const handleClose = async (id : number) => { const handleClose = async (id : number) => {
try { try {
// //
await message.confirm('是否关闭所选中数据?') await message.confirm(t('ts.是否关闭所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await DemandforecastingMainApi.closePurchaseMain(id) await DemandforecastingMainApi.closePurchaseMain(id)
message.success(t('关闭成功!')) message.success(t('ts.关闭成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -251,11 +251,11 @@ const handleClose = async (id : number) => {
const handleOpen = async (id : number) => { const handleOpen = async (id : number) => {
try { try {
// //
await message.confirm('是否打开所选中数据?') await message.confirm(t('ts.是否打开所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await DemandforecastingMainApi.openPurchaseMain(id) await DemandforecastingMainApi.openPurchaseMain(id)
message.success(t('打开成功!')) message.success(t('ts.打开成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -268,11 +268,11 @@ const handleClose = async (id : number) => {
const handlePublish = async (id : number) => { const handlePublish = async (id : number) => {
try { try {
// //
await message.confirm('是否发布所选中数据?') await message.confirm(t('ts.是否发布所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await DemandforecastingMainApi.publishPurchaseMain(id) await DemandforecastingMainApi.publishPurchaseMain(id)
message.success(t('发布成功!')) message.success(t('ts.发布成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -285,11 +285,11 @@ const handleClose = async (id : number) => {
const handleWit = async (id : number) => { const handleWit = async (id : number) => {
try { try {
// //
await message.confirm('是否下架所选中数据?') await message.confirm(t('ts.是否下架所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await DemandforecastingMainApi.witPurchaseMain(id) await DemandforecastingMainApi.witPurchaseMain(id)
message.success(t('下架成功!')) message.success(t('ts.下架成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -330,7 +330,7 @@ const handleExport = async () => {
// //
exportLoading.value = true exportLoading.value = true
const data = await DemandforecastingMainApi.exportDemandforecastingMain(tableObject.params) const data = await DemandforecastingMainApi.exportDemandforecastingMain(tableObject.params)
download.excel(data, '要货预测主.xlsx') download.excel(data, `${t('ts.要货预测主')}.xlsx`)
} catch { } catch {
} finally { } finally {
exportLoading.value = false exportLoading.value = false
@ -383,7 +383,7 @@ const handleImport = () => {
// //
const importTemplateData = reactive({ const importTemplateData = reactive({
templateUrl: '', templateUrl: '',
templateTitle: '要货预测主导入模版.xlsx' templateTitle: `${t('ts.要货预测主导入模版')}.xlsx`
}) })
// //

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

@ -44,7 +44,7 @@
<BasicForm ref="formRef" <BasicForm ref="formRef"
@success="getList" @success="getList"
:isOpenSearchTable="true" :isOpenSearchTable="true"
fieldTableColumn="lineNumber" fieldTableColumn="itemCode"
:rules="PurchaseMainRules" :rules="PurchaseMainRules"
:formAllSchemas="PurchaseMain.allSchemas" :formAllSchemas="PurchaseMain.allSchemas"
:tableAllSchemas="PurchaseDetail.allSchemas" :tableAllSchemas="PurchaseDetail.allSchemas"
@ -141,7 +141,7 @@ console.log('PurchaseMain.allSchemas.searchSchema',PurchaseMain.allSchemas.searc
}) })
} }
if(repeatCode.length>0){ if(repeatCode.length>0){
message.warning(`物料代码${repeatCode.join(',')}已经存在`); message.warning(`${t('ts.物料代码')}${repeatCode.join(',')}${t('ts.已经存在')}`);
} }
if(val.length>0){ if(val.length>0){
//frm //frm
@ -367,11 +367,11 @@ console.log('PurchaseMain.allSchemas.searchSchema',PurchaseMain.allSchemas.searc
const handleClose = async (id : number) => { const handleClose = async (id : number) => {
try { try {
// //
await message.confirm('是否关闭所选中数据?') await message.confirm(t('ts.是否关闭所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchaseMainApi.closePurchaseMain(id) await PurchaseMainApi.closePurchaseMain(id)
message.success(t('关闭成功!')) message.success(t('ts.关闭成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -384,11 +384,11 @@ console.log('PurchaseMain.allSchemas.searchSchema',PurchaseMain.allSchemas.searc
const handleOpen = async (id : number) => { const handleOpen = async (id : number) => {
try { try {
// //
await message.confirm('是否打开所选中数据?') await message.confirm(t('ts.是否打开所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchaseMainApi.openPurchaseMain(id) await PurchaseMainApi.openPurchaseMain(id)
message.success(t('打开成功!')) message.success(t('ts.打开成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -401,11 +401,11 @@ console.log('PurchaseMain.allSchemas.searchSchema',PurchaseMain.allSchemas.searc
const handlePublish = async (id : number) => { const handlePublish = async (id : number) => {
try { try {
// //
await message.confirm('是否发布所选中数据?') await message.confirm(t('ts.是否发布所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchaseMainApi.publishPurchaseMain(id) await PurchaseMainApi.publishPurchaseMain(id)
message.success(t('发布成功!')) message.success(t('ts.发布成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -418,11 +418,11 @@ console.log('PurchaseMain.allSchemas.searchSchema',PurchaseMain.allSchemas.searc
const handleWit = async (id : number) => { const handleWit = async (id : number) => {
try { try {
// //
await message.confirm('是否下架所选中数据?') await message.confirm(t('ts.是否下架所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchaseMainApi.witPurchaseMain(id) await PurchaseMainApi.witPurchaseMain(id)
message.success(t('下架成功!')) message.success(t('ts.下架成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -440,7 +440,7 @@ console.log('PurchaseMain.allSchemas.searchSchema',PurchaseMain.allSchemas.searc
// //
exportLoading.value = true exportLoading.value = true
const data = await PurchaseMainApi.exportPurchaseMain(tableObject.params) const data = await PurchaseMainApi.exportPurchaseMain(tableObject.params)
download.excel(data, '采购订单主.xlsx') download.excel(data, `${t('ts.采购订单主')}.xlsx`)
} catch { } catch {
} finally { } finally {
exportLoading.value = false exportLoading.value = false
@ -493,7 +493,7 @@ console.log('PurchaseMain.allSchemas.searchSchema',PurchaseMain.allSchemas.searc
// //
const importTemplateData = reactive({ const importTemplateData = reactive({
templateUrl: '', templateUrl: '',
templateTitle: '采购订单主导入模版.xlsx' templateTitle: `${t(`ts.采购订单主导入模版`)}.xlsx`
}) })
// //

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

@ -589,7 +589,7 @@ export const PurchaseDetail = useCrudSchemas(reactive<CrudSchema[]>([
isForm: false, isForm: false,
}, },
{ {
label: '已计划数量', label: t('ts.已计划数量'),
field: 'plannedQty', field: 'plannedQty',
table: { table: {
width: 150 width: 150
@ -607,7 +607,7 @@ export const PurchaseDetail = useCrudSchemas(reactive<CrudSchema[]>([
isForm: false, isForm: false,
}, },
{ {
label: '已发货数量', label: t('ts.已发货数量'),
field: 'shippedQty', field: 'shippedQty',
table: { table: {
width: 150 width: 150
@ -625,7 +625,7 @@ export const PurchaseDetail = useCrudSchemas(reactive<CrudSchema[]>([
isForm: false, isForm: false,
}, },
{ {
label: '已收货数量', label: t('ts.已收货数量'),
field: 'receivedQty', field: 'receivedQty',
table: { table: {
width: 150 width: 150
@ -643,7 +643,7 @@ export const PurchaseDetail = useCrudSchemas(reactive<CrudSchema[]>([
isForm: false isForm: false
}, },
{ {
label: '已退货数量', label: t('ts.已退货数量'),
field: 'returnedQty', field: 'returnedQty',
table: { table: {
width: 150 width: 150
@ -661,7 +661,7 @@ export const PurchaseDetail = useCrudSchemas(reactive<CrudSchema[]>([
isForm: false isForm: false
}, },
{ {
label: '已上架数量', label: t('ts.已上架数量'),
field: 'putawayQty', field: 'putawayQty',
table: { table: {
width: 150 width: 150
@ -679,7 +679,7 @@ export const PurchaseDetail = useCrudSchemas(reactive<CrudSchema[]>([
isForm: false isForm: false
}, },
{ {
label: '单价', label: t('ts.单价'),
field: 'singlePrice', field: 'singlePrice',
table: { table: {
width: 150 width: 150

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

@ -29,7 +29,7 @@
<!-- 表单弹窗添加/修改 --> <!-- 表单弹窗添加/修改 -->
<BasicForm ref="formRef" @success="getList" <BasicForm ref="formRef" @success="getList"
:isOpenSearchTable="true" :isOpenSearchTable="true"
fieldTableColumn="poNumber" fieldTableColumn="poLine"
:rules="PurchasePlanMainRules" :rules="PurchasePlanMainRules"
:formAllSchemas="PurchasePlanMain.allSchemas" :formAllSchemas="PurchasePlanMain.allSchemas"
:tableAllSchemas="PurchasePlanDetail.allSchemas" :tableAllSchemas="PurchasePlanDetail.allSchemas"
@ -292,9 +292,9 @@ const getSearchTableData = async (number,formField,searchField)=>{
// defaultButtons.mainListEditBtn({ hide: isShowMainButton(row, ['1']), hasPermi: 'wms:purchase-plan-main:update' }), // // defaultButtons.mainListEditBtn({ hide: isShowMainButton(row, ['1']), hasPermi: 'wms:purchase-plan-main:update' }), //
// defaultButtons.mainListDeleteBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:purchase-plan-main:delete'}), // // defaultButtons.mainListDeleteBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:purchase-plan-main:delete'}), //
{ {
label: '创建供应商发货申请', label: t('ts.创建供应商发货申请'),
name: 'supplierdeliver', name: 'supplierdeliver',
hide: isShowMainButton(row, ['1']), hide: isShowMainButton(row, ['3']),
type: 'primary', type: 'primary',
icon: '', icon: '',
color: '', color: '',
@ -376,10 +376,10 @@ const { wsCache } = useCache()
const handleClose = async (id : number) => { const handleClose = async (id : number) => {
try { try {
// //
await message.confirm('是否关闭所选中数据?') await message.confirm(t('ts.是否关闭所选中数据?'))
// //
await PurchasePlanMainApi.closePurchasePlanMain(id) await PurchasePlanMainApi.closePurchasePlanMain(id)
message.success(t('关闭成功!')) message.success(t('ts.关闭成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -392,11 +392,11 @@ const { wsCache } = useCache()
const handleOpen = async (id : number) => { const handleOpen = async (id : number) => {
try { try {
// //
await message.confirm('是否打开所选中数据?') await message.confirm(t('ts.是否打开所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchasePlanMainApi.openPurchasePlanMain(id) await PurchasePlanMainApi.openPurchasePlanMain(id)
message.success(t('打开成功!')) message.success(t('ts.打开成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -410,11 +410,11 @@ const { wsCache } = useCache()
const handleReOpen = async (id : number) => { const handleReOpen = async (id : number) => {
try { try {
// //
await message.confirm('是否重新打开所选中数据?') await message.confirm(t('ts.是否重新打开所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchasePlanMainApi.openPurchasePlanMain(id) await PurchasePlanMainApi.openPurchasePlanMain(id)
message.success(t('打开成功!')) message.success(t('ts.打开成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -427,11 +427,11 @@ const { wsCache } = useCache()
const handlePublish = async (id : number) => { const handlePublish = async (id : number) => {
try { try {
// //
await message.confirm('是否发布所选中数据?') await message.confirm(t('ts.是否发布所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchasePlanMainApi.publishPurchasePlanMain(id) await PurchasePlanMainApi.publishPurchasePlanMain(id)
message.success(t('发布成功!')) message.success(t('ts.发布成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -444,11 +444,11 @@ const { wsCache } = useCache()
const handleWit = async (id : number) => { const handleWit = async (id : number) => {
try { try {
// //
await message.confirm('是否下架所选中数据?') await message.confirm(t('ts.是否下架所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchasePlanMainApi.witPurchasePlanMain(id) await PurchasePlanMainApi.witPurchasePlanMain(id)
message.success(t('下架成功!')) message.success(t('ts.下架成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -461,11 +461,11 @@ const { wsCache } = useCache()
const handleAcc = async (id : number) => { const handleAcc = async (id : number) => {
try { try {
// //
await message.confirm('是否接受所选中数据?') await message.confirm(t('ts.是否接受所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchasePlanMainApi.accPurchasePlanMain(id) await PurchasePlanMainApi.accPurchasePlanMain(id)
message.success(t('接受成功!')) message.success(t('ts.接受成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -478,11 +478,11 @@ const { wsCache } = useCache()
const handleRej = async (id : number) => { const handleRej = async (id : number) => {
try { try {
// //
await message.confirm('是否驳回所选中数据?') await message.confirm(t('ts.是否驳回所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchasePlanMainApi.rejPurchasePlanMain(id) await PurchasePlanMainApi.rejPurchasePlanMain(id)
message.success(t('驳回成功!')) message.success(t('ts.驳回成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -500,7 +500,7 @@ const { wsCache } = useCache()
// //
exportLoading.value = true exportLoading.value = true
const data = await PurchasePlanMainApi.exportPurchasePlanMain(tableObject.params) const data = await PurchasePlanMainApi.exportPurchasePlanMain(tableObject.params)
download.excel(data, '要货计划主.xlsx') download.excel(data, `${t('ts.要货计划主')}.xlsx`)
} catch { } catch {
} finally { } finally {
exportLoading.value = false exportLoading.value = false
@ -538,7 +538,7 @@ const { wsCache } = useCache()
if(res.list[0].type == 'DISCRETE'){// if(res.list[0].type == 'DISCRETE'){//
if (item.planQty > res.list[0].orderQty - res.list[0].plannedQty) { if (item.planQty > res.list[0].orderQty - res.list[0].plannedQty) {
flag = true; flag = true;
message.error('要货计划数量不得大于订单数量-已计划数量') message.error(t('ts.要货计划数量不得大于订单数量-已计划数量'))
return return
}else{ }else{
data.subList.push(item) // data.subList.push(item) //
@ -556,7 +556,7 @@ const { wsCache } = useCache()
try { try {
if (formType === 'create') { if (formType === 'create') {
if(data.subList.length == 0){ if(data.subList.length == 0){
message.error('子列表数量不能空') message.error(t('ts.子列表数量不能空'))
return return
} }
await PurchasePlanMainApi.createPurchasePlanMain(data) await PurchasePlanMainApi.createPurchasePlanMain(data)
@ -584,7 +584,7 @@ const { wsCache } = useCache()
}).then(res => { }).then(res => {
if(res.list[0].type == 'DISCRETE'){// if(res.list[0].type == 'DISCRETE'){//
if (data.planQty > res.list[0].orderQty - res.list[0].plannedQty) { if (data.planQty > res.list[0].orderQty - res.list[0].plannedQty) {
message.error('要货计划数量不得大于订单数量-已计划数量') message.error(t('ts.要货计划数量不得大于订单数量-已计划数量'))
tag = false tag = false
} else { } else {
tag = true tag = true
@ -607,7 +607,7 @@ const { wsCache } = useCache()
// //
const importTemplateData = reactive({ const importTemplateData = reactive({
templateUrl: '', templateUrl: '',
templateTitle: '要货计划主导入模版.xlsx' templateTitle: `${t('ts.要货计划主导入模版')}.xlsx`
}) })
// //

8
src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/index.vue

@ -196,10 +196,10 @@ const buttonTableClick = async (val, row) => {
/** 生成采购收货申请按钮操作 */ /** 生成采购收货申请按钮操作 */
const handlerCreatePurchasereceiptRequest = async (number:string) => { const handlerCreatePurchasereceiptRequest = async (number:string) => {
try{ try{
await message.confirm(t('确认生成采购申请吗?')) await message.confirm(t('ts.确认生成采购申请吗?'))
tableObject.loading = true tableObject.loading = true
await SupplierdeliverRecordMainApi.createPurchasereceiptRequest(number) await SupplierdeliverRecordMainApi.createPurchasereceiptRequest(number)
message.success(t('采购申请生成成功')) message.success(t('ts.采购申请生成成功'))
await getList() await getList()
}catch{}finally{ }catch{}finally{
tableObject.loading = false tableObject.loading = false
@ -241,7 +241,7 @@ const openDetail = async (row: any, titleName: any, titleValue: any) => {
// table // table
const buttondataTable = ref([{ const buttondataTable = ref([{
label: '查看其他包装规格', label: t('ts.查看其他包装规格'),
name: 'viewParentPickingNumber', name: 'viewParentPickingNumber',
hide: false, hide: false,
type: 'primary', type: 'primary',
@ -273,7 +273,7 @@ const handleExport = async () => {
// //
exportLoading.value = true exportLoading.value = true
const data = await SupplierdeliverRecordMainApi.exportSupplierdeliverRecordMain(tableObject.params) const data = await SupplierdeliverRecordMainApi.exportSupplierdeliverRecordMain(tableObject.params)
download.excel(data, '供应商发货记录主.xlsx') download.excel(data, `${t('ts.供应商发货记录主')}.xlsx`)
} catch { } catch {
} finally { } finally {
exportLoading.value = false exportLoading.value = false

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

@ -153,9 +153,11 @@
</BasicForm> </BasicForm>
<!-- 标签打印 --> <!-- 标签打印 -->
<SearchTable style="width:905px" ref="searchTableRef" @searchTableSuccess="searchTableSuccess1" /> <SearchTable style="width:905px" ref="searchTableRef" @searchTableSuccess="searchTableSuccess1" >
<!-- <template #actions>
<el-button type="primary" @click="printAllClick">打印全部</el-button>
</template> -->
</SearchTable>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@ -438,7 +440,7 @@ const butttondata = (row,$index) => {
}), // }), //
// defaultButtons.mainListDeleteBtn({ hasPermi: 'wms:supplierdeliver-request-main:delete' }), // // defaultButtons.mainListDeleteBtn({ hasPermi: 'wms:supplierdeliver-request-main:delete' }), //
{ {
label: '生成标签', label: t('ts.生成标签'),
name: 'ssbq', name: 'ssbq',
hide: isShowMainButtonLabel(row, ['3']), hide: isShowMainButtonLabel(row, ['3']),
type: 'primary', type: 'primary',
@ -451,7 +453,7 @@ const butttondata = (row,$index) => {
//defaultButtons.mainListDocumentPrintBtn({ hide: isShowMainButton(row, ['3','8']) }), // //defaultButtons.mainListDocumentPrintBtn({ hide: isShowMainButton(row, ['3','8']) }), //
// //
{ {
label: '发货', label: t('ts.发货'),
name: 'genRecords', name: 'genRecords',
hide: isShowMainButton(row, ['3']), hide: isShowMainButton(row, ['3']),
type: 'primary', type: 'primary',
@ -496,7 +498,7 @@ const buttonTableClick = async (val, row) => {
} else if (val == 'ssbq') { } else if (val == 'ssbq') {
await SupplierdeliverRequestMainApi.selfCheckReport(row.masterId).then(async (res) => { await SupplierdeliverRequestMainApi.selfCheckReport(row.masterId).then(async (res) => {
if(!res){ if(!res){
message.warning("请先上传自检报告!") message.warning(t('ts.请先上传自检报告!'))
return return
}else{ }else{
// //
@ -591,11 +593,11 @@ const handleDelete = async (id: number) => {
const handleClo = async (id: number) => { const handleClo = async (id: number) => {
try { try {
// //
await message.confirm('是否关闭所选中数据?') await message.confirm(t('ts.是否关闭所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierdeliverRequestMainApi.cloSupplierdeliverRequestMain(id) await SupplierdeliverRequestMainApi.cloSupplierdeliverRequestMain(id)
message.success(t('关闭成功!')) message.success(t('ts.关闭成功!'))
// //
await getList() await getList()
} catch {}finally{ } catch {}finally{
@ -607,11 +609,11 @@ const handleClo = async (id: number) => {
const handleOpe = async (id: number) => { const handleOpe = async (id: number) => {
try { try {
// //
await message.confirm('是否打开所选中数据?') await message.confirm(t('ts.是否打开所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierdeliverRequestMainApi.opeSupplierdeliverRequestMain(id) await SupplierdeliverRequestMainApi.opeSupplierdeliverRequestMain(id)
message.success(t('打开成功!')) message.success(t('ts.打开成功!'))
// //
await getList() await getList()
} catch {}finally{ } catch {}finally{
@ -642,7 +644,7 @@ const handleUploadQualityReport = async (row) => {
if(uploadFile){ if(uploadFile){
uploadFile['componentProps']['upData']['tableId'] = row.masterId uploadFile['componentProps']['upData']['tableId'] = row.masterId
} }
ploadQualityReportRef.value.open('create', null, {masterId:row.masterId},'上传质检报告','上传质检报告')// createLabel ploadQualityReportRef.value.open('create', null, {masterId:row.masterId},t('ts.上传质检报告'),t('ts.上传质检报告'))// createLabel
const tableFormKeys = {} const tableFormKeys = {}
SupplierdeliverInspectionDetail.allSchemas.tableFormColumns.forEach((item) => { SupplierdeliverInspectionDetail.allSchemas.tableFormColumns.forEach((item) => {
@ -675,11 +677,11 @@ const submitFormUploadQualityReport = async (formType, data) => {
const handleSub = async (id: number) => { const handleSub = async (id: number) => {
try { try {
// //
await message.confirm('是否提交审批所选中数据?') await message.confirm(t('ts.是否提交审批所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierdeliverRequestMainApi.subSupplierdeliverRequestMain(id) await SupplierdeliverRequestMainApi.subSupplierdeliverRequestMain(id)
message.success(t('提交审批成功!')) message.success(t('ts.提交审批成功!'))
// //
await getList() await getList()
} catch {}finally{ } catch {}finally{
@ -691,11 +693,11 @@ const handleSub = async (id: number) => {
const handleApp = async (id: number) => { const handleApp = async (id: number) => {
try { try {
// //
await message.confirm('是否审批通过所选中数据?') await message.confirm(t('ts.是否审批通过所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierdeliverRequestMainApi.appSupplierdeliverRequestMain(id) await SupplierdeliverRequestMainApi.appSupplierdeliverRequestMain(id)
message.success(t('审批通过成功!')) message.success(t('ts.审批通过成功!'))
// //
await getList() await getList()
} catch {}finally{ } catch {}finally{
@ -707,11 +709,11 @@ const handleApp = async (id: number) => {
const handleTur = async (id: number) => { const handleTur = async (id: number) => {
try { try {
// //
await message.confirm('是否驳回所选中数据?') await message.confirm(t('ts.是否驳回所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierdeliverRequestMainApi.rejSupplierdeliverRequestMain(id) await SupplierdeliverRequestMainApi.rejSupplierdeliverRequestMain(id)
message.success(t('驳回成功!')) message.success(t('ts.驳回成功!'))
// //
await getList() await getList()
} catch {}finally{ } catch {}finally{
@ -725,11 +727,11 @@ const genRecords = async (id: number) => {
try { try {
await SupplierdeliverRequestMainApi.selfCheckReport(id).then(async res => { await SupplierdeliverRequestMainApi.selfCheckReport(id).then(async res => {
if(!res){ if(!res){
message.warning("请先上传自检报告!") message.warning(t('ts.请先上传自检报告!'))
return return
}else{ }else{
// //
await message.confirm('是否处理所选中数据?') await message.confirm(t('ts.是否处理所选中数据?'))
getLoading = ElLoading.service({ getLoading = ElLoading.service({
lock: true, lock: true,
text: 'loading...', text: 'loading...',
@ -737,7 +739,7 @@ const genRecords = async (id: number) => {
}) })
// //
SupplierdeliverRequestMainApi.genRecordsSupplierdeliverRequestMain(id).then(res => { SupplierdeliverRequestMainApi.genRecordsSupplierdeliverRequestMain(id).then(res => {
message.success(t('处理成功!')) message.success(t('ts.处理成功!'))
// //
getList() getList()
// //
@ -763,7 +765,7 @@ const handleExport = async () => {
const data = await SupplierdeliverRequestMainApi.exportSupplierdeliverRequestMain( const data = await SupplierdeliverRequestMainApi.exportSupplierdeliverRequestMain(
tableObject.params tableObject.params
) )
download.excel(data, '供应商发货申请主.xlsx') download.excel(data, `${'ts.供应商发货申请主'}.xlsx`)
} catch { } catch {
} finally { } finally {
exportLoading.value = false exportLoading.value = false
@ -786,10 +788,10 @@ const submitFormLabel = async (formType, data) => {
console.log("data==",data) console.log("data==",data)
data.subList = detatableData.tableList data.subList = detatableData.tableList
console.log("detatableData",detatableData) console.log("detatableData",detatableData)
await message.confirm('是否为此数据生成标签?') await message.confirm(t('ts.是否为此数据生成标签?'))
await SupplierdeliverRequestMainApi.genLabel(data) await SupplierdeliverRequestMainApi.genLabel(data)
isCreateLabel.value = true isCreateLabel.value = true
message.success('创建标签成功') message.success(t('ts.创建标签成功'))
getList() getList()
} finally { } finally {
formLabelRef.value.formLoading = false formLabelRef.value.formLoading = false
@ -820,7 +822,12 @@ const labelPrint = async (row) => {
tableColumns.forEach((item) => { tableColumns.forEach((item) => {
item.width = item.table?.width || 150 item.width = item.table?.width || 150
}) })
searchTableRef.value.openData("标签信息",tableObjectPrint,{tableColumns},true) searchTableRef.value.openData(t('ts.标签信息'),tableObjectPrint,{tableColumns},true)
}
//
const printAllClick = ()=>{
} }
// -- // --
@ -831,7 +838,7 @@ const searchTableSuccess1 = async (formField, searchField, val, formRef, type, r
// rows = [...rows,...item.selectionRows.map(item1=>item1.number)] // rows = [...rows,...item.selectionRows.map(item1=>item1.number)]
// }) // })
if(val.length == 0){ if(val.length == 0){
message.warning("请先选择要打印的数据!") message.warning(t('ts.请先选择要打印的数据'))
return return
} }
// window.open(src.value + '&asn_number=' + val.map(item1=>item1.number).join(',')) // window.open(src.value + '&asn_number=' + val.map(item1=>item1.number).join(','))
@ -841,7 +848,7 @@ const searchTableSuccess1 = async (formField, searchField, val, formRef, type, r
window.open(src.value + '&asn_number=' + res) window.open(src.value + '&asn_number=' + res)
}).catch(err => { }).catch(err => {
console.log(err) console.log(err)
message.error('创建标签失败') message.error(t('ts.创建标签失败'))
}) })
} }
@ -884,7 +891,7 @@ const submitForm = async (formType, data) => {
} }
}) })
if (isHave) { if (isHave) {
message.error('生产日期不可以大于过期日期') message.error(t('ts.生产日期不可以大于过期日期'))
formRef.value.formLoading = false formRef.value.formLoading = false
return return
} }
@ -893,7 +900,7 @@ const submitForm = async (formType, data) => {
let planArriveStr = formatDate(data.planArriveTime); let planArriveStr = formatDate(data.planArriveTime);
if(planArriveStr > planArriveTimeStr.value){ if(planArriveStr > planArriveTimeStr.value){
let confirmFlag = false; let confirmFlag = false;
await message.confirm("计划到货时间大于要货计划送达日期是否继续?").then(() => { await message.confirm(t('ts.计划到货时间大于要货计划送达日期是否继续?')).then(() => {
console.log("选择了OK") console.log("选择了OK")
//OK //OK
}).catch(() => { }).catch(() => {
@ -908,7 +915,7 @@ const submitForm = async (formType, data) => {
} }
} }
if(tableData.value.length <= 0){ if(tableData.value.length <= 0){
message.warning(`子表明细不能为空!`) message.warning(t('ts.子表明细不能为空!'))
formRef.value.formLoading = false formRef.value.formLoading = false
return; return;
} }
@ -935,7 +942,7 @@ const handleImport = () => {
// //
const importTemplateData = reactive({ const importTemplateData = reactive({
templateUrl: '', templateUrl: '',
templateTitle: '供应商发货申请主导入模版.xlsx' templateTitle: `${t('ts.供应商发货申请主导入模版')}.xlsx`
}) })
// //

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

@ -267,7 +267,7 @@ const submitForm = async (formType, data) => {
} }
}) })
if (isHave) { if (isHave) {
message.error('生产日期不可以大于过期日期') message.error(t('ts.生产日期不可以大于过期日期'))
formRef.value.formLoading = false formRef.value.formLoading = false
return return
} }
@ -276,7 +276,7 @@ const submitForm = async (formType, data) => {
let planArriveStr = formatDate(data.planArriveTime); let planArriveStr = formatDate(data.planArriveTime);
if(planArriveStr > planArriveTimeStr.value){ if(planArriveStr > planArriveTimeStr.value){
let confirmFlag = false; let confirmFlag = false;
await message.confirm("计划到货时间大于要货计划送达日期是否继续?").then(() => { await message.confirm(t('ts.计划到货时间大于要货计划送达日期是否继续?')).then(() => {
console.log("选择了OK") console.log("选择了OK")
//OK //OK
}).catch(() => { }).catch(() => {

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

@ -1638,74 +1638,6 @@ export const SupplierdeliverRequestDetailLabel = useCrudSchemas(reactive<CrudSch
}, },
])) ]))
export const UploadQualityReport = useCrudSchemas(reactive<CrudSchema[]>([
{
label: '上传质检报告',
field: 'uploadFile',
sort: 'custom',
isTable:false,
isTableForm:false,
form: {
component: 'UploadFile',
componentProps: {
upData:{
tableId: '',
tableName: 'UploadQualityReport',
fileType:['apk'],
fileSize:100
},
limit:1,
}
},
},
{
label: '物料代码',
field: 'itemCode',
sort: 'custom',
isForm:false,
isTableForm:true,
table: {
width: 150,
},
},
{
label: '计量单位',
field: 'uom',
dictType: DICT_TYPE.UOM,
dictClass: 'string',
isTable: true,
isForm:false,
sort: 'custom',
table: {
width: 150
},
tableForm: {
type: 'Select'
}
},
{
label: '供应商批次',
field: 'batch',
sort: 'custom',
isForm:false,
table: {
width: 150
},
},
{
label: '发货数量',
field: 'planQty',
table: {
width: 150
},
isForm:false,
tableForm: {
type: 'InputNumber',
min: 0,
precision: 6
}
},
]))
export const SupplierdeliverRequestPackage = useCrudSchemas(reactive<CrudSchema[]>([ export const SupplierdeliverRequestPackage = useCrudSchemas(reactive<CrudSchema[]>([
{ {
label: '包装号', label: '包装号',

252
src/views/wms/supplierManage/invoicingcalendar/index.vue

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

110
src/views/wms/supplierManage/invoicingcalendar/invoicingcalendar.data.ts

@ -0,0 +1,110 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter } from '@/utils/formatTime'
import { fa } from 'element-plus/es/locale'
// 表单校验
export const InvoicingcalendarRules = reactive({
beginDay: [required],
endDay: [required],
concurrencyStamp: [required],
})
export const Invoicingcalendar = useCrudSchemas(reactive<CrudSchema[]>([
{
label: 'id',
field: 'id',
sort: 'custom',
isForm: false,
isTable: false
},
{
label: '开始日期',
field: 'beginDay',
sort: 'custom',
dictType: DICT_TYPE.SYSTEM_DAY,
dictClass: 'string',
},
{
label: '结束日期',
field: 'endDay',
sort: 'custom',
dictType: DICT_TYPE.SYSTEM_DAY,
dictClass: 'string',
},
{
label: '描述',
field: 'descriiption',
sort: 'custom',
},
{
label: '是否可用',
field: 'available',
sort: 'custom',
isSearch: true,
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string',
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
},
},
{
label: '备注',
field: 'remark',
sort: 'custom',
},
{
label: '创建时间',
field: 'createTime',
sort: 'custom',
formatter: dateFormatter,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD HH:mm:ss',
type: 'daterange',
defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
}
},
isForm: false,
isTable: false,
},
{
label: '扩展属性',
field: 'extraProperties',
sort: 'custom',
isTable: false,
isForm:false,
},
{
label: '并发乐观锁',
field: 'concurrencyStamp',
sort: 'custom',
isTable: false,
isForm:false,
form: {
component: 'InputNumber',
value: 0
},
},
{
label: '地点ID',
field: 'siteId',
sort: 'custom',
isTable: false,
isForm:false,
},
{
label: '操作',
field: 'action',
isForm: false,
table: {
width: 150,
fixed: 'right'
}
}
]))

24
src/views/wms/supplierManage/purchaseclaim/purchaseclaimRequestMain/index.vue

@ -305,11 +305,11 @@
const handleClo = async (id : number) => { const handleClo = async (id : number) => {
try { try {
// //
await message.confirm('是否关闭所选中数据?') await message.confirm(t('ts.是否关闭所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchaseclaimRequestMainApi.cloPurchaseclaimRequestMain(id) await PurchaseclaimRequestMainApi.cloPurchaseclaimRequestMain(id)
message.success(t('关闭成功!')) message.success(t('ts.关闭成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -322,11 +322,11 @@
const handleOpe = async (id : number) => { const handleOpe = async (id : number) => {
try { try {
// //
await message.confirm('是否打开所选中数据?') await message.confirm(t('ts.是否打开所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchaseclaimRequestMainApi.opePurchaseclaimRequestMain(id) await PurchaseclaimRequestMainApi.opePurchaseclaimRequestMain(id)
message.success(t('打开成功!')) message.success(t('ts.打开成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -339,11 +339,11 @@
const handleSub = async (id : number) => { const handleSub = async (id : number) => {
try { try {
// //
await message.confirm('是否提交审批所选中数据?') await message.confirm(t('ts.是否提交审批所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchaseclaimRequestMainApi.subPurchaseclaimRequestMain(id) await PurchaseclaimRequestMainApi.subPurchaseclaimRequestMain(id)
message.success(t('提交审批成功!')) message.success(t('ts.提交审批成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -356,11 +356,11 @@
const handleApp = async (id : number) => { const handleApp = async (id : number) => {
try { try {
// //
await message.confirm('是否审批通过所选中数据?') await message.confirm(t('ts.是否审批通过所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchaseclaimRequestMainApi.appPurchaseclaimRequestMain(id) await PurchaseclaimRequestMainApi.appPurchaseclaimRequestMain(id)
message.success(t('审批通过成功!')) message.success(t('ts.审批通过成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -373,11 +373,11 @@
const handleTur = async (id : number) => { const handleTur = async (id : number) => {
try { try {
// //
await message.confirm('是否驳回所选中数据?') await message.confirm(t('ts.是否驳回所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchaseclaimRequestMainApi.rejPurchaseclaimRequestMain(id) await PurchaseclaimRequestMainApi.rejPurchaseclaimRequestMain(id)
message.success(t('驳回成功!')) message.success(t('ts.驳回成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -390,11 +390,11 @@
const genRecords = async (id : number) => { const genRecords = async (id : number) => {
try { try {
// //
await message.confirm('是否处理所选中数据?') await message.confirm(t('ts.是否处理所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await PurchaseclaimRequestMainApi.genRecordsPurchaseclaimRequestMain(id) await PurchaseclaimRequestMainApi.genRecordsPurchaseclaimRequestMain(id)
message.success(t('处理成功!')) message.success(t('ts.处理成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()

12
src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/index.vue

@ -29,7 +29,7 @@
v-model:sort="tableObject.sort" v-model:sort="tableObject.sort"
> >
<template #number="{row}"> <template #number="{row}">
<el-button type="primary" link @click="openDetail(row, '单据号', row.number)"> <el-button type="primary" link @click="openDetail(row, t('ts.单据号'), row.number)">
<span>{{ row.number }}</span> <span>{{ row.number }}</span>
</el-button> </el-button>
</template> </template>
@ -54,26 +54,26 @@
<Detail <Detail
ref="detailRef" ref="detailRef"
:annexTable="[{ :annexTable="[{
label: '合同附件', label: t('ts.合同附件'),
prop: 'Annex', prop: 'Annex',
tableName:'contract', tableName:'contract',
showDownload:true, showDownload:true,
hiddenDelete:true, hiddenDelete:true,
},{ },{
label: '发票附件', label: t('ts.发票附件'),
prop: 'Annex', prop: 'Annex',
tableName:'invoice', tableName:'invoice',
showDownload:true, showDownload:true,
hiddenDelete:true, hiddenDelete:true,
},{ },{
label: '货运单附件', label: t('ts.货运单附件'),
prop: 'Annex', prop: 'Annex',
tableName:'waybill', tableName:'waybill',
showDownload:true, showDownload:true,
hiddenDelete:true, hiddenDelete:true,
}]" }]"
:annexAlias="{ :annexAlias="{
label:'其他附件', label:t('ts.其他附件'),
showDownload:true, showDownload:true,
hiddenDelete:true hiddenDelete:true
}" }"
@ -179,7 +179,7 @@ const handleExport = async () => {
// //
exportLoading.value = true exportLoading.value = true
const data = await SupplierinvoiceRecordMainApi.exportSupplierinvoiceRecordMain(tableObject.params) const data = await SupplierinvoiceRecordMainApi.exportSupplierinvoiceRecordMain(tableObject.params)
download.excel(data, '供应商发票记录主.xlsx') download.excel(data, `${t('ts.供应商发票记录主')}.xlsx`)
} catch { } catch {
} finally { } finally {
exportLoading.value = false exportLoading.value = false

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

@ -75,23 +75,23 @@
<Detail <Detail
ref="detailRef" ref="detailRef"
:annexTable="[{ :annexTable="[{
label: '合同附件', label: t('ts.合同附件'),
prop: 'Annex', prop: 'Annex',
tableName:'contract' tableName:'contract'
},{ },{
label: '发票附件', label: t('ts.发票附件'),
prop: 'Annex', prop: 'Annex',
tableName:'invoice' tableName:'invoice'
},{ },{
label: '货运单附件', label: t('ts.货运单附件'),
prop: 'Annex', prop: 'Annex',
tableName:'waybill' tableName:'waybill'
}]" }]"
:annexAlias="{ :annexAlias="{
label:'其他附件' label:t('ts.其他附件')
}" }"
:otherHeadButttonData="[{ :otherHeadButttonData="[{
label: '打印明细', label: t('ts.打印明细'),
name: 'printing', name: 'printing',
hide: false, hide: false,
type: 'primary', type: 'primary',
@ -100,7 +100,7 @@
float:'left', float:'left',
hasPermi: '' hasPermi: ''
},{ },{
label: '打印全部发货单', label: t('ts.打印全部发货单'),
name: 'printing-all', name: 'printing-all',
hide: false, hide: false,
type: 'primary', type: 'primary',
@ -109,7 +109,7 @@
float:'left', float:'left',
hasPermi: '' hasPermi: ''
},{ },{
label: '导出明细', label: t('ts.导出明细'),
name: 'export-detail', name: 'export-detail',
hide: false, hide: false,
type: 'primary', type: 'primary',
@ -119,7 +119,7 @@
hasPermi: '' hasPermi: ''
}]" }]"
:buttondataTable = "[{ :buttondataTable = "[{
label: '打印', label: t('ts.打印'),
name: 'print', name: 'print',
hide: false, hide: false,
type: 'primary', type: 'primary',
@ -192,7 +192,7 @@
const searchTableParams = ref([ const searchTableParams = ref([
{ {
formField: 'supplierCode', formField: 'supplierCode',
searchTableTitle: '供应商信息', searchTableTitle: t('ts.供应商信息'),
searchTableAllSchemas: Supplier.allSchemas, searchTableAllSchemas: Supplier.allSchemas,
searchTablePage: SupplierApi.getSupplierPage searchTablePage: SupplierApi.getSupplierPage
} }
@ -298,7 +298,7 @@
defaultButtons.mainListPurchasePlanOpeBtn({ hide: isShowMainButton(row, ['1','6']) ,hasPermi: 'wms:supplierinvoice-request-main:open'}), // defaultButtons.mainListPurchasePlanOpeBtn({ hide: isShowMainButton(row, ['1','6']) ,hasPermi: 'wms:supplierinvoice-request-main:open'}), //
defaultButtons.mainListPlanSubBtn({ hide: isShowMainButton(row, ['1','6']),hasPermi: 'wms:supplierinvoice-request-main:sub' }), // defaultButtons.mainListPlanSubBtn({ hide: isShowMainButton(row, ['1','6']),hasPermi: 'wms:supplierinvoice-request-main:sub' }), //
{ {
label: '采购通过', label: t('ts.采购通过'),
name: 'purchase_mainPlanSub', name: 'purchase_mainPlanSub',
hide: isShowMainButton(row, ['2','7']), hide: isShowMainButton(row, ['2','7']),
type: 'primary', type: 'primary',
@ -307,7 +307,7 @@
hasPermi: 'wms:supplierinvoice-request-main:app', hasPermi: 'wms:supplierinvoice-request-main:app',
link: true, // link: true, //
},{ },{
label: '采购驳回', label: t('ts.采购驳回'),
name: 'purchase_mainPlanTur', name: 'purchase_mainPlanTur',
hide: isShowMainButton(row, ['2','7']), hide: isShowMainButton(row, ['2','7']),
type: 'danger', type: 'danger',
@ -316,7 +316,7 @@
hasPermi: 'wms:supplierinvoice-request-main:rej' hasPermi: 'wms:supplierinvoice-request-main:rej'
}, },
{ {
label: '供应商确认', label: t('ts.供应商确认'),
name: 'invoice_sent_out', name: 'invoice_sent_out',
hide: isShowMainButton(row, ['8']), hide: isShowMainButton(row, ['8']),
type: 'danger', type: 'danger',
@ -325,7 +325,7 @@
hasPermi: 'wms:supplierinvoice-request-main:invoiceSentOut' hasPermi: 'wms:supplierinvoice-request-main:invoiceSentOut'
}, },
{ {
label: '财务通过', label: t('ts.财务通过'),
name: 'finance_mainPlanSub', name: 'finance_mainPlanSub',
hide: isShowMainButton(row, ['4']), hide: isShowMainButton(row, ['4']),
type: 'primary', type: 'primary',
@ -334,7 +334,7 @@
hasPermi: 'wms:supplierinvoice-request-main:financeApp', hasPermi: 'wms:supplierinvoice-request-main:financeApp',
link: true, // link: true, //
},{ },{
label: '财务驳回', label: t('ts.财务驳回'),
name: 'finance_mainPlanTur', name: 'finance_mainPlanTur',
hide: isShowMainButton(row, ['4']), hide: isShowMainButton(row, ['4']),
type: 'danger', type: 'danger',
@ -346,7 +346,7 @@
defaultButtons.mainListPurchasePlanCloBtn({ hasPermi: 'wms:supplierinvoice-request-main:close' ,hide: isShowMainButton(row, ['1','8','6']) }), // defaultButtons.mainListPurchasePlanCloBtn({ hasPermi: 'wms:supplierinvoice-request-main:close' ,hide: isShowMainButton(row, ['1','8','6']) }), //
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:supplierinvoice-request-main:delete'}), // // defaultButtons.mainListDeleteBtn({hasPermi:'wms:supplierinvoice-request-main:delete'}), //
{ {
label: '打印', label: t('ts.打印'),
name: 'mian_print', name: 'mian_print',
hide: null, hide: null,
type: 'primary', type: 'primary',
@ -395,8 +395,15 @@ const handleImport = () => {
/** 添加/修改操作 */ /** 添加/修改操作 */
const formRef = ref() const formRef = ref()
const openForm = async (type : string, row ?: number) => { const openForm = async (type : string, row ?: number) => {
tableData.value = [] // //
formRef.value.open(type, row) SupplierinvoiceRequestMainApi.checkInvoicingCalendar({}).then(res => {
if(res.flag){
message.alertWarning(res.msg)
return
}
tableData.value = [] //
formRef.value.open(type, row)
})
} }
// //
@ -432,11 +439,11 @@ const handleImport = () => {
const handleClo = async (id : number) => { const handleClo = async (id : number) => {
try { try {
// //
await message.confirm('是否关闭所选中数据?') await message.confirm(t('ts.是否关闭所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierinvoiceRequestMainApi.cloSupplierinvoiceRequestMain(id) await SupplierinvoiceRequestMainApi.cloSupplierinvoiceRequestMain(id)
message.success(t('关闭成功!')) message.success(t('ts.关闭成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -449,11 +456,11 @@ const handleImport = () => {
const handleOpe = async (id : number) => { const handleOpe = async (id : number) => {
try { try {
// //
await message.confirm('是否打开所选中数据?') await message.confirm(t('ts.是否打开所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierinvoiceRequestMainApi.opeSupplierinvoiceRequestMain(id) await SupplierinvoiceRequestMainApi.opeSupplierinvoiceRequestMain(id)
message.success(t('打开成功!')) message.success(t('ts.打开成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -466,11 +473,11 @@ const handleImport = () => {
const handleSub = async (id : number) => { const handleSub = async (id : number) => {
try { try {
// //
await message.confirm('是否提交审批所选中数据?') await message.confirm(t('ts.是否提交审批所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierinvoiceRequestMainApi.subSupplierinvoiceRequestMain(id) await SupplierinvoiceRequestMainApi.subSupplierinvoiceRequestMain(id)
message.success(t('提交审批成功!')) message.success(t('ts.提交审批成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -483,11 +490,11 @@ const handleImport = () => {
const handleApp = async (id : number) => { const handleApp = async (id : number) => {
try { try {
// //
await message.confirm('是否审批通过所选中数据?') await message.confirm(t('ts.是否审批通过所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierinvoiceRequestMainApi.appSupplierinvoiceRequestMain(id) await SupplierinvoiceRequestMainApi.appSupplierinvoiceRequestMain(id)
message.success(t('审批通过成功!')) message.success(t('ts.审批通过成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -501,11 +508,11 @@ const handleImport = () => {
const handleFinanceApp = async (id : number) => { const handleFinanceApp = async (id : number) => {
try { try {
// //
await message.confirm('是否审批通过所选中数据?') await message.confirm(t('ts.是否审批通过所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierinvoiceRequestMainApi.financeappSupplierinvoiceRequestMain(id) await SupplierinvoiceRequestMainApi.financeappSupplierinvoiceRequestMain(id)
message.success(t('审批通过成功!')) message.success(t('ts.审批通过成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -518,11 +525,11 @@ const handleImport = () => {
const handleTur = async (id : number) => { const handleTur = async (id : number) => {
try { try {
// //
await message.confirm('是否驳回所选中数据?') await message.confirm(t('ts.是否驳回所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierinvoiceRequestMainApi.rejSupplierinvoiceRequestMain(id) await SupplierinvoiceRequestMainApi.rejSupplierinvoiceRequestMain(id)
message.success(t('驳回成功!')) message.success(t('ts.驳回成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -535,11 +542,11 @@ const handleImport = () => {
const handleInvoiceSentOut = async (id : number) => { const handleInvoiceSentOut = async (id : number) => {
try { try {
// //
await message.confirm('是否确认发票寄出选中数据?') await message.confirm(t('ts.是否确认发票寄出选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierinvoiceRequestMainApi.invoiceSentOutSupplierinvoiceRequestMain(id) await SupplierinvoiceRequestMainApi.invoiceSentOutSupplierinvoiceRequestMain(id)
message.success(t('发票寄出成功!')) message.success(t('ts.发票寄出成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -552,11 +559,11 @@ const handleImport = () => {
const handleFinaceTur = async (id : number) => { const handleFinaceTur = async (id : number) => {
try { try {
// //
await message.confirm('是否驳回所选中数据?') await message.confirm(t('ts.是否驳回所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierinvoiceRequestMainApi.financerejSupplierinvoiceRequestMain(id) await SupplierinvoiceRequestMainApi.financerejSupplierinvoiceRequestMain(id)
message.success(t('驳回成功!')) message.success(t('ts.驳回成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -569,11 +576,11 @@ const handleImport = () => {
const genRecords = async (id : number) => { const genRecords = async (id : number) => {
try { try {
// //
await message.confirm('是否处理所选中数据?') await message.confirm(t('ts.是否处理所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierinvoiceRequestMainApi.genRecordsSupplierinvoiceRequestMain(id) await SupplierinvoiceRequestMainApi.genRecordsSupplierinvoiceRequestMain(id)
message.success(t('处理成功!')) message.success(t('ts.处理成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -591,7 +598,7 @@ const handleImport = () => {
// //
exportLoading.value = true exportLoading.value = true
const data = await SupplierinvoiceRequestMainApi.exportSupplierinvoiceRequestMain(tableObject.params) const data = await SupplierinvoiceRequestMainApi.exportSupplierinvoiceRequestMain(tableObject.params)
download.excel(data, '供应商发票申请主.xlsx') download.excel(data, `${t('ts.供应商发票申请主')}.xlsx`)
} catch { } catch {
} finally { } finally {
exportLoading.value = false exportLoading.value = false
@ -627,11 +634,11 @@ const handleImport = () => {
try { try {
if (formType === 'create') { if (formType === 'create') {
if(data.subList.length == 0){ if(data.subList.length == 0){
message.warning("请添明细数据") message.warning(t('ts.请添明细数据'))
return; return;
} }
if(data.subList.length > 999){ if(data.subList.length > 999){
message.warning("明细数据条数已超过最大数量限制【999条】") message.warning(t('ts.明细数据条数已超过最大数量限制【999条】'))
return; return;
} }
await SupplierinvoiceRequestMainApi.createSupplierinvoiceRequestMain(data) await SupplierinvoiceRequestMainApi.createSupplierinvoiceRequestMain(data)
@ -651,7 +658,7 @@ const handleImport = () => {
// //
const importTemplateData = reactive({ const importTemplateData = reactive({
templateUrl: '', templateUrl: '',
templateTitle: '供应商发货申请主导入模版.xlsx' templateTitle: `${t('ts.供应商发货申请主导入模版')}.xlsx`
}) })
// //
@ -707,7 +714,7 @@ const importSuccess = () => {
masterId: masterId masterId: masterId
} }
const data = await SupplierinvoiceRequestMainApi.exportSupplierinvoiceRequestDetail(params) const data = await SupplierinvoiceRequestMainApi.exportSupplierinvoiceRequestDetail(params)
download.excel(data, '供应商发票申请明细.xlsx') download.excel(data, `${t('ts.供应商发票申请明细')}.xlsx`)
} catch { } catch {
} finally { } finally {
exportLoadingDetail.value = false exportLoadingDetail.value = false

20
src/views/wms/supplierManage/supplierinvoiceInvoiced/index.vue

@ -28,7 +28,7 @@
v-model:sort="tableObject.sort" v-model:sort="tableObject.sort"
> >
<template #code="{row}"> <template #code="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)"> <el-button type="primary" link @click="openDetail(row, t('ts.代码'), row.code)">
<span>{{ row.code }}</span> <span>{{ row.code }}</span>
</el-button> </el-button>
</template> </template>
@ -146,7 +146,7 @@ const butttondata = (row) =>{
// defaultButtons.mainListDeleteBtn({hasPermi:'wms:supplierinvoice-invoiced:delete'}), // // defaultButtons.mainListDeleteBtn({hasPermi:'wms:supplierinvoice-invoiced:delete'}), //
// defaultButtons.mainListEditBtn({hasPermi:'wms:supplierinvoice-invoiced:update'}), // defaultButtons.mainListEditBtn({hasPermi:'wms:supplierinvoice-invoiced:update'}),
{ {
label: '审核通过', label: t('ts.审核通过'),
name: 'agree', name: 'agree',
hide: isShowMainButton(row, ['1']), hide: isShowMainButton(row, ['1']),
type: 'primary', type: 'primary',
@ -155,7 +155,7 @@ const butttondata = (row) =>{
hasPermi: 'wms:supplierinvoice-invoiced:agree' hasPermi: 'wms:supplierinvoice-invoiced:agree'
}, },
{ {
label: '作废', label: t('ts.作废'),
name: 'refuse', name: 'refuse',
hide: isShowMainButton(row, ['1']), hide: isShowMainButton(row, ['1']),
type: 'danger', type: 'danger',
@ -192,7 +192,7 @@ const formsSuccess = async (formType,data) => {
}); });
if(isHave){ if(isHave){
if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){ if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){
message.error('失效时间要大于生效时间') message.error(t('ts.失效时间要大于生效时间'))
return; return;
} }
} }
@ -232,11 +232,11 @@ const handleDelete = async (id: number) => {
const handleAgree = async (id : number) => { const handleAgree = async (id : number) => {
try { try {
// //
await message.confirm('是否审批通过所选中数据?') await message.confirm(t('ts.是否审批通过所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierinvoiceInvoicedApi.agreeSupplierinvoiceInvoiced(id) await SupplierinvoiceInvoicedApi.agreeSupplierinvoiceInvoiced(id)
message.success(t('审批通过成功!')) message.success(t('ts.审批通过成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -250,11 +250,11 @@ const handleAgree = async (id : number) => {
const handleRefuse = async (id : number) => { const handleRefuse = async (id : number) => {
try { try {
// //
await message.confirm('是否审批拒绝所选中数据?') await message.confirm(t('ts.是否审批拒绝所选中数据?'))
tableObject.loading = true tableObject.loading = true
// //
await SupplierinvoiceInvoicedApi.refuseSupplierinvoiceInvoiced(id) await SupplierinvoiceInvoicedApi.refuseSupplierinvoiceInvoiced(id)
message.success(t('审批成功!')) message.success(t('ts.审批成功!'))
tableObject.loading = false tableObject.loading = false
// //
await getList() await getList()
@ -272,7 +272,7 @@ const handleExport = async () => {
// //
exportLoading.value = true exportLoading.value = true
const data = await SupplierinvoiceInvoicedApi.exportSupplierinvoiceInvoiced(tableObject.params) const data = await SupplierinvoiceInvoicedApi.exportSupplierinvoiceInvoiced(tableObject.params)
download.excel(data, '待开票.xlsx') download.excel(data, `${t('ts.待开票')}.xlsx`)
} catch { } catch {
} finally { } finally {
exportLoading.value = false exportLoading.value = false
@ -287,7 +287,7 @@ const handleImport = () => {
// //
const importTemplateData = reactive({ const importTemplateData = reactive({
templateUrl: '', templateUrl: '',
templateTitle: '待开票导入模版.xlsx' templateTitle: `${t('ts.待开票导入模版')}.xlsx`
}) })
// //
const importSuccess = () => { const importSuccess = () => {

Loading…
Cancel
Save