Browse Source

采购索赔申请

master
陈薪名 1 year ago
parent
commit
0cf2e1c093
  1. 5
      src/api/wms/purchaseclaimRequestMain/index.ts
  2. 64
      src/api/wms/supplierdeliverRecordMain/index.ts
  3. 150
      src/views/wms/purchaseclaimRequestMain/index.vue
  4. 381
      src/views/wms/supplierdeliverRecordMain/SupplierdeliverRecordMainForm.vue
  5. 562
      src/views/wms/supplierdeliverRecordMain/index.vue

5
src/api/wms/purchaseclaimRequestMain/index.ts

@ -50,3 +50,8 @@ export const deletePurchaseclaimRequestMain = async (id: number) => {
export const exportPurchaseclaimRequestMain = async (params) => { export const exportPurchaseclaimRequestMain = async (params) => {
return await request.download({ url: `/wms/purchaseclaim-request-main/export-excel`, params }) return await request.download({ url: `/wms/purchaseclaim-request-main/export-excel`, params })
} }
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/wms/purchaseclaim-request-main/get-import-template' })
}

64
src/api/wms/supplierdeliverRecordMain/index.ts

@ -0,0 +1,64 @@
import request from '@/config/axios'
export interface SupplierdeliverRecordMainVO {
requestNumber: string
ppNumber: string
asnNumber: string
supplierCode: string
contactName: string
contactPhone: string
contactEmail: string
fromWarehouseCode: string
toWarehouseCode: string
toDockCode: string
timeWindow: string
planArriveTime: Date
carrierCode: string
transferMode: string
vehiclePlateNumber: string
outTransaction: string
inTransaction: string
executeTime: Date
activeDate: Date
requestTime: Date
dueTime: Date
departmentCode: number
interfaceType: string
number: string
businessType: string
remark: string
createTime: Date
creator: string
serialNumber: string
available: string
}
// 查询供应商发货记录主列表
export const getSupplierdeliverRecordMainPage = async (params) => {
return await request.get({ url: `/wms/supplierdeliver-record-main/page`, params })
}
// 查询供应商发货记录主详情
export const getSupplierdeliverRecordMain = async (id: number) => {
return await request.get({ url: `/wms/supplierdeliver-record-main/get?id=` + id })
}
// 新增供应商发货记录主
export const createSupplierdeliverRecordMain = async (data: SupplierdeliverRecordMainVO) => {
return await request.post({ url: `/wms/supplierdeliver-record-main/create`, data })
}
// 修改供应商发货记录主
export const updateSupplierdeliverRecordMain = async (data: SupplierdeliverRecordMainVO) => {
return await request.put({ url: `/wms/supplierdeliver-record-main/update`, data })
}
// 删除供应商发货记录主
export const deleteSupplierdeliverRecordMain = async (id: number) => {
return await request.delete({ url: `/wms/supplierdeliver-record-main/delete?id=` + id })
}
// 导出供应商发货记录主 Excel
export const exportSupplierdeliverRecordMain = async (params) => {
return await request.download({ url: `/wms/supplierdeliver-record-main/export-excel`, params })
}

150
src/views/wms/purchaseclaimRequestMain/index.vue

@ -5,19 +5,25 @@
<Search :schema="PurchaseclaimRequestMain.allSchemas.searchSchema" @search="setSearchParams" <Search :schema="PurchaseclaimRequestMain.allSchemas.searchSchema" @search="setSearchParams"
@reset="setSearchParams" /> @reset="setSearchParams" />
</ContentWrap> </ContentWrap>
<!-- 列表头部 --> <!-- 列表头部 -->
<TableHead :HeadButttondata="HeadButttondata" @button-base-click="buttonBaseClick" :tableColumns="PurchaseclaimRequestMain.allSchemas.tableColumns"/> <TableHead
:HeadButttondata="HeadButttondata"
@button-base-click="buttonBaseClick"
:routeName="routeName"
@updataTableColumns="updataTableColumns"
/>
<!-- 列表 --> <!-- 列表 -->
<ContentWrap> <ContentWrap>
<Table :columns="PurchaseclaimRequestMain.allSchemas.tableColumns" :data="tableObject.tableList" <Table :columns="tableColumns" :data="tableObject.tableList"
:loading="tableObject.loading" :pagination="{ :loading="tableObject.loading" :pagination="{
total: tableObject.total total: tableObject.total
}" v-model:pageSize="tableObject.pageSize" v-model:currentPage="tableObject.currentPage" }" v-model:pageSize="tableObject.pageSize" v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"> v-model:sort="tableObject.sort">
<template #itemCode="{ row }"> <template #asnNumber="{ row }">
<el-button type="primary" link @click="openDetail(row, '物料代码', row.itemCode)"> <el-button type="primary" link @click="openDetail(row, '物料代码', row.asnNumber)">
<span>{{ row.itemCode }}</span> <span>{{ row.asnNumber }}</span>
</el-button> </el-button>
</template> </template>
<template #action="{ row }"> <template #action="{ row }">
@ -32,6 +38,7 @@
@success="getList" @success="getList"
:rules="PurchaseclaimRequestMainRules" :rules="PurchaseclaimRequestMainRules"
:formAllSchemas="PurchaseclaimRequestMain.allSchemas" :formAllSchemas="PurchaseclaimRequestMain.allSchemas"
:searchTableParams="searchTableParams"
:tableAllSchemas="PurchaseclaimRequestDetail.allSchemas" :tableAllSchemas="PurchaseclaimRequestDetail.allSchemas"
:tableFormRules="PurchaseclaimRequestDetailRules" :tableFormRules="PurchaseclaimRequestDetailRules"
:tableData="tableData" :tableData="tableData"
@ -40,56 +47,67 @@
:isBusiness="true" :isBusiness="true"
@handleAddTable="handleAddTable" @handleAddTable="handleAddTable"
@handleDeleteTable="handleDeleteTable" @handleDeleteTable="handleDeleteTable"
@searchTableSuccess="searchTableSuccess"
/>
<!-- 详情 -->
<Detail
ref="detailRef"
:isBasic="false"
:allSchemas="PurchaseclaimRequestMain.allSchemas"
:detailAllSchemas="PurchaseclaimRequestDetail.allSchemas"
:detailApi="PurchaseclaimRequestMainApi"
/> />
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/wms/purchaseclaim-request-main/import" :importTemplateData="importTemplateData" @success="importSuccess" />
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import download from '@/utils/download' import download from '@/utils/download'
import * as PurchaseclaimRequestMainApi from '@/api/wms/purchaseclaimRequestMain' import * as PurchaseclaimRequestMainApi from '@/api/wms/purchaseclaimRequestMain'
import { PurchaseclaimRequestMain, PurchaseclaimRequestMainRules, PurchaseclaimRequestDetail, PurchaseclaimRequestDetailRules } from '@/utils/disposition/tableColumns' import * as supplierdeliverRecordMainApi from '@/api/wms/supplierdeliverRecordMain'
import { PurchaseclaimRequestMain, PurchaseclaimRequestMainRules, PurchaseclaimRequestDetail, PurchaseclaimRequestDetailRules, SupplierdeliverRecordMain } from '@/utils/disposition/tableColumns'
import * as defaultButtons from '@/utils/disposition/defaultButtons' import * as defaultButtons from '@/utils/disposition/defaultButtons'
import BasicForm from '@/components/BasicForm/src/BasicForm.vue'
import TableHead from '@/components/TableHead/src/TableHead.vue'
defineOptions({ name: 'PurchaseclaimRequestMain' }) defineOptions({ name: 'PurchaseclaimRequestMain' })
const message = useMessage() // const message = useMessage() //
const { t } = useI18n() // const { t } = useI18n() //
const queryParams = reactive({ const route = useRoute() //
pageNo: 1, const routeName = ref()
pageSize: 10, routeName.value = route.name
asnNumber: null, const tableColumns = ref(PurchaseclaimRequestMain.allSchemas.tableColumns)
ppNumber: null,
supplierCode: null, //
number: null, const updataTableColumns = (val) => {
businessType: null, tableColumns.value = val
remark: null, }
createTime: [],
creator: null, //
requestTime: [], const searchTableParams = ref([{
dueTime: [], formField: 'asnNumber',
departmentCode: null, searchTableTitle: '供应商发货记录',
status: null, searchTableAllSchemas: SupplierdeliverRecordMain.allSchemas,
updateTime: [], searchTablePage: supplierdeliverRecordMainApi.getSupplierdeliverRecordMainPage
updater: null, }])
autoCommit: null,
autoAgree: null, //
autoExecute: null, const searchTableSuccess = (formField, searchField, val, formRef) => {
directCreateRecord: null nextTick(() => {
}) const setV = {}
const queryFormRef = ref() // setV[formField] = val[0][searchField]
setV['ppNumber'] = val[0]['ppNumber']
setV['supplierCode'] = val[0]['supplierCode']
formRef.setValues(setV)
})
}
const exportLoading = ref(false) // const exportLoading = ref(false) //
/** 查询列表 */
// const getList = async () => {
// loading.value = true
// try {
// const data = await PurchaseclaimRequestMainApi.getPurchaseclaimRequestMainPage(queryParams)
// list.value = data.list
// total.value = data.total
// } finally {
// loading.value = false
// }
// }
const { tableObject, tableMethods } = useTable({ const { tableObject, tableMethods } = useTable({
getListApi: PurchaseclaimRequestMainApi.getPurchaseclaimRequestMainPage // getListApi: PurchaseclaimRequestMainApi.getPurchaseclaimRequestMainPage //
}) })
@ -98,9 +116,9 @@ const { tableObject, tableMethods } = useTable({
const { getList, setSearchParams } = tableMethods const { getList, setSearchParams } = tableMethods
// //
const HeadButttondata = [ const HeadButttondata = [
defaultButtons.defaultAddBtn({ hasPermi: 'wms:itempackaging:create' }), // defaultButtons.defaultAddBtn({ hasPermi: 'wms:purchaseclaim-request-main:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'wms:itempackaging:import' }), // defaultButtons.defaultImportBtn({ hasPermi: 'wms:purchaseclaim-request-main:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'wms:itempackaging:export' }), // defaultButtons.defaultExportBtn({ hasPermi: 'wms:purchaseclaim-request-main:export' }), //
// defaultButtons.defaultFilterBtn(), // // defaultButtons.defaultFilterBtn(), //
defaultButtons.defaultFreshBtn(null), // defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultSetBtn(null), // defaultButtons.defaultSetBtn(null), //
@ -133,8 +151,8 @@ const buttonBaseClick = (val, item) => {
// - // -
const butttondata = [ const butttondata = [
defaultButtons.mainListEditBtn({ hasPermi: 'wms:itempackaging:update' }), // defaultButtons.mainListEditBtn({ hasPermi: 'wms:purchaseclaim-request-main:update' }), //
defaultButtons.mainListDeleteBtn({ hasPermi: 'wms:itempackaging:delete' }), // defaultButtons.mainListDeleteBtn({ hasPermi: 'wms:purchaseclaim-request-main:delete' }), //
] ]
// - // -
@ -146,24 +164,20 @@ const buttonTableClick = async (val, row) => {
handleDelete(row.id) handleDelete(row.id)
} }
} }
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
/** 添加/修改操作 */ /** 添加/修改操作 */
const formRef = ref() const formRef = ref()
const openForm = (type: string, id?: number) => { const openForm = (type: string, id?: number) => {
tableData.value = [] //
formRef.value.open(type, id) formRef.value.open(type, id)
} }
/** 详情操作 */
const detailRef = ref()
const openDetail = (row: any, titleName: any, titleValue: any) => {
detailRef.value.openDetail(row, titleName, titleValue)
}
/** 删除按钮操作 */ /** 删除按钮操作 */
const handleDelete = async (id: number) => { const handleDelete = async (id: number) => {
try { try {
@ -184,7 +198,7 @@ const handleExport = async () => {
await message.exportConfirm() await message.exportConfirm()
// //
exportLoading.value = true exportLoading.value = true
const data = await PurchaseclaimRequestMainApi.exportPurchaseclaimRequestMain(queryParams) const data = await PurchaseclaimRequestMainApi.exportPurchaseclaimRequestMain(setSearchParams)
download.excel(data, '采购索赔申请主.xls') download.excel(data, '采购索赔申请主.xls')
} catch { } catch {
} finally { } finally {
@ -199,20 +213,34 @@ PurchaseclaimRequestDetail.allSchemas.tableFormColumns.forEach(item => {
tableFormKeys[item.field] = item.default ? item.default : '' tableFormKeys[item.field] = item.default ? item.default : ''
}) })
const tableData = ref([]) const tableData = ref([])
console.log(PurchaseclaimRequestDetail.allSchemas);
console.log(tableFormKeys);
// //
const handleAddTable = () => { const handleAddTable = () => {
tableData.value.push(JSON.parse(JSON.stringify(tableFormKeys))) tableData.value.push(JSON.parse(JSON.stringify(tableFormKeys)))
console.log(tableData.value)
} }
// //
const handleDeleteTable = (item, index) => { const handleDeleteTable = (item, index) => {
tableData.value.splice(index, 1) tableData.value.splice(index, 1)
} }
/** 导入 */
const importFormRef = ref()
const handleImport = () => {
importFormRef.value.open()
}
//
const importTemplateData = reactive({
templateUrl: '',
templateTitle: '采购索赔申请信息导入模版.xls'
})
//
const importSuccess = () => {
getList()
}
/** 初始化 **/ /** 初始化 **/
onMounted(() => { onMounted(async () => {
getList() getList()
importTemplateData.templateUrl = await PurchaseclaimRequestMainApi.importTemplate()
}) })
</script> </script>

381
src/views/wms/supplierdeliverRecordMain/SupplierdeliverRecordMainForm.vue

@ -0,0 +1,381 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<div class="p-20px m--10px" style="max-height: 600px;overflow-y: auto;">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row>
<el-col :span="12">
<el-form-item label="申请单号" prop="requestNumber">
<el-input v-model="formData.requestNumber" placeholder="请输入申请单号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="要货计划单号" prop="ppNumber">
<el-input v-model="formData.ppNumber" placeholder="请输入要货计划单号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="发货单号" prop="asnNumber">
<el-input v-model="formData.asnNumber" placeholder="请输入发货单号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="供应商代码" prop="supplierCode">
<el-input v-model="formData.supplierCode" placeholder="请输入供应商代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人姓名" prop="contactName">
<el-input v-model="formData.contactName" placeholder="请输入联系人姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人电话" prop="contactPhone">
<el-input v-model="formData.contactPhone" placeholder="请输入联系人电话" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人电子邮件" prop="contactEmail">
<el-input v-model="formData.contactEmail" placeholder="请输入联系人电子邮件" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="从仓库代码" prop="fromWarehouseCode">
<el-input v-model="formData.fromWarehouseCode" placeholder="请输入从仓库代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="到仓库代码" prop="toWarehouseCode">
<el-input v-model="formData.toWarehouseCode" placeholder="请输入到仓库代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="到月台代码" prop="toDockCode">
<el-input v-model="formData.toDockCode" placeholder="请输入到月台代码" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="时间窗口" prop="timeWindow">
<el-input v-model="formData.timeWindow" placeholder="请输入时间窗口" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="计划到货时间" prop="planArriveTime">
<el-date-picker
v-model="formData.planArriveTime"
type="date"
value-format="x"
placeholder="选择计划到货时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="承运商" prop="carrierCode">
<el-input v-model="formData.carrierCode" placeholder="请输入承运商" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运输方式" prop="transferMode">
<el-select v-model="formData.transferMode" placeholder="请选择运输方式">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.TRANSFER_MODE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车牌号" prop="vehiclePlateNumber">
<el-select v-model="formData.vehiclePlateNumber" placeholder="请选择车牌号">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.VEHICLE_PLATE_NUMBER)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="出库事务类型" prop="outTransaction">
<el-input v-model="formData.outTransaction" placeholder="请输入出库事务类型" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="入库事务类型" prop="inTransaction">
<el-input v-model="formData.inTransaction" placeholder="请输入入库事务类型" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="执行时间" prop="executeTime">
<el-date-picker
v-model="formData.executeTime"
type="date"
value-format="x"
placeholder="选择执行时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生效日期" prop="activeDate">
<el-date-picker
v-model="formData.activeDate"
type="date"
value-format="x"
placeholder="选择生效日期"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请时间" prop="requestTime">
<el-date-picker
v-model="formData.requestTime"
type="date"
value-format="x"
placeholder="选择申请时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="截止时间" prop="dueTime">
<el-date-picker
v-model="formData.dueTime"
type="date"
value-format="x"
placeholder="选择截止时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="部门" prop="departmentCode">
<el-input v-model="formData.departmentCode" placeholder="请输入部门" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="接口类型" prop="interfaceType">
<el-select v-model="formData.interfaceType" placeholder="请选择接口类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.INTERFACE_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单据号" prop="number">
<el-input v-model="formData.number" placeholder="请输入单据号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="业务类型" prop="businessType">
<el-input v-model="formData.businessType" placeholder="请输入业务类型" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="formData.createTime"
type="date"
value-format="x"
placeholder="选择创建时间"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="创建者id" prop="creator">
<el-input v-model="formData.creator" placeholder="请输入创建者id" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工作流流水号" prop="serialNumber">
<el-input v-model="formData.serialNumber" placeholder="请输入工作流流水号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否可用" prop="available">
<el-input v-model="formData.available" placeholder="请输入是否可用" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
import * as SupplierdeliverRecordMainApi from '@/api/wms/supplierdeliverRecordMain'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
requestNumber: undefined,
ppNumber: undefined,
asnNumber: undefined,
supplierCode: undefined,
contactName: undefined,
contactPhone: undefined,
contactEmail: undefined,
fromWarehouseCode: undefined,
toWarehouseCode: undefined,
toDockCode: undefined,
timeWindow: undefined,
planArriveTime: undefined,
carrierCode: undefined,
transferMode: undefined,
vehiclePlateNumber: undefined,
outTransaction: undefined,
inTransaction: undefined,
executeTime: undefined,
activeDate: undefined,
requestTime: undefined,
dueTime: undefined,
departmentCode: undefined,
interfaceType: undefined,
number: undefined,
businessType: undefined,
remark: undefined,
createTime: undefined,
creator: undefined,
serialNumber: undefined,
available: undefined
})
const formRules = reactive({
requestNumber: [{ required: true, message: '申请单号不能为空', trigger: 'blur' }],
asnNumber: [{ required: true, message: '发货单号不能为空', trigger: 'blur' }],
supplierCode: [{ required: true, message: '供应商代码不能为空', trigger: 'blur' }],
fromWarehouseCode: [{ required: true, message: '从仓库代码不能为空', trigger: 'blur' }],
toWarehouseCode: [{ required: true, message: '到仓库代码不能为空', trigger: 'blur' }],
toDockCode: [{ required: true, message: '到月台代码不能为空', trigger: 'blur' }],
planArriveTime: [{ required: true, message: '计划到货时间不能为空', trigger: 'blur' }],
executeTime: [{ required: true, message: '执行时间不能为空', trigger: 'blur' }],
activeDate: [{ required: true, message: '生效日期不能为空', trigger: 'blur' }],
departmentCode: [{ required: true, message: '部门不能为空', trigger: 'blur' }],
available: [{ required: true, message: '是否可用不能为空', trigger: 'blur' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await SupplierdeliverRecordMainApi.getSupplierdeliverRecordMain(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as SupplierdeliverRecordMainApi.SupplierdeliverRecordMainVO
if (formType.value === 'create') {
await SupplierdeliverRecordMainApi.createSupplierdeliverRecordMain(data)
message.success(t('common.createSuccess'))
} else {
await SupplierdeliverRecordMainApi.updateSupplierdeliverRecordMain(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
requestNumber: undefined,
ppNumber: undefined,
asnNumber: undefined,
supplierCode: undefined,
contactName: undefined,
contactPhone: undefined,
contactEmail: undefined,
fromWarehouseCode: undefined,
toWarehouseCode: undefined,
toDockCode: undefined,
timeWindow: undefined,
planArriveTime: undefined,
carrierCode: undefined,
transferMode: undefined,
vehiclePlateNumber: undefined,
outTransaction: undefined,
inTransaction: undefined,
executeTime: undefined,
activeDate: undefined,
requestTime: undefined,
dueTime: undefined,
departmentCode: undefined,
interfaceType: undefined,
number: undefined,
businessType: undefined,
remark: undefined,
createTime: undefined,
creator: undefined,
serialNumber: undefined,
available: undefined
}
formRef.value?.resetFields()
}
</script>

562
src/views/wms/supplierdeliverRecordMain/index.vue

@ -0,0 +1,562 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
>
<el-form-item label="申请单号" prop="requestNumber">
<el-input
v-model="queryParams.requestNumber"
placeholder="请输入申请单号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="要货计划单号" prop="ppNumber">
<el-input
v-model="queryParams.ppNumber"
placeholder="请输入要货计划单号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="发货单号" prop="asnNumber">
<el-input
v-model="queryParams.asnNumber"
placeholder="请输入发货单号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="供应商代码" prop="supplierCode">
<el-input
v-model="queryParams.supplierCode"
placeholder="请输入供应商代码"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="联系人姓名" prop="contactName">
<el-input
v-model="queryParams.contactName"
placeholder="请输入联系人姓名"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="联系人电话" prop="contactPhone">
<el-input
v-model="queryParams.contactPhone"
placeholder="请输入联系人电话"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="联系人电子邮件" prop="contactEmail">
<el-input
v-model="queryParams.contactEmail"
placeholder="请输入联系人电子邮件"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="从仓库代码" prop="fromWarehouseCode">
<el-input
v-model="queryParams.fromWarehouseCode"
placeholder="请输入从仓库代码"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="到仓库代码" prop="toWarehouseCode">
<el-input
v-model="queryParams.toWarehouseCode"
placeholder="请输入到仓库代码"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="到月台代码" prop="toDockCode">
<el-input
v-model="queryParams.toDockCode"
placeholder="请输入到月台代码"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="时间窗口" prop="timeWindow">
<el-input
v-model="queryParams.timeWindow"
placeholder="请输入时间窗口"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="计划到货时间" prop="planArriveTime">
<el-date-picker
v-model="queryParams.planArriveTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="承运商" prop="carrierCode">
<el-input
v-model="queryParams.carrierCode"
placeholder="请输入承运商"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="运输方式" prop="transferMode">
<el-select
v-model="queryParams.transferMode"
placeholder="请选择运输方式"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.TRANSFER_MODE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="车牌号" prop="vehiclePlateNumber">
<el-select
v-model="queryParams.vehiclePlateNumber"
placeholder="请选择车牌号"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.VEHICLE_PLATE_NUMBER)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="出库事务类型" prop="outTransaction">
<el-input
v-model="queryParams.outTransaction"
placeholder="请输入出库事务类型"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="入库事务类型" prop="inTransaction">
<el-input
v-model="queryParams.inTransaction"
placeholder="请输入入库事务类型"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="执行时间" prop="executeTime">
<el-date-picker
v-model="queryParams.executeTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="生效日期" prop="activeDate">
<el-date-picker
v-model="queryParams.activeDate"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="申请时间" prop="requestTime">
<el-date-picker
v-model="queryParams.requestTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="截止时间" prop="dueTime">
<el-date-picker
v-model="queryParams.dueTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="部门" prop="departmentCode">
<el-input
v-model="queryParams.departmentCode"
placeholder="请输入部门"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="接口类型" prop="interfaceType">
<el-select
v-model="queryParams.interfaceType"
placeholder="请选择接口类型"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.INTERFACE_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="单据号" prop="number">
<el-input
v-model="queryParams.number"
placeholder="请输入单据号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="业务类型" prop="businessType">
<el-input
v-model="queryParams.businessType"
placeholder="请输入业务类型"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="queryParams.remark"
placeholder="请输入备注"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="创建者id" prop="creator">
<el-input
v-model="queryParams.creator"
placeholder="请输入创建者id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="工作流流水号" prop="serialNumber">
<el-input
v-model="queryParams.serialNumber"
placeholder="请输入工作流流水号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="是否可用" prop="available">
<el-input
v-model="queryParams.available"
placeholder="请输入是否可用"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item>
<el-button type="info" plain @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button type="info" plain @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button
type="primary"
@click="openForm('create')"
v-hasPermi="['wms:supplierdeliver-record-main:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="success"
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['wms:supplierdeliver-record-main:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="申请单号" align="center" prop="requestNumber" width="150px" />
<el-table-column label="要货计划单号" align="center" prop="ppNumber" width="150px" />
<el-table-column label="发货单号" align="center" prop="asnNumber" width="150px" />
<el-table-column label="供应商代码" align="center" prop="supplierCode" width="150px" />
<el-table-column label="联系人姓名" align="center" prop="contactName" width="150px" />
<el-table-column label="联系人电话" align="center" prop="contactPhone" width="150px" />
<el-table-column label="联系人电子邮件" align="center" prop="contactEmail" width="150px" />
<el-table-column label="从仓库代码" align="center" prop="fromWarehouseCode" width="150px" />
<el-table-column label="到仓库代码" align="center" prop="toWarehouseCode" width="150px" />
<el-table-column label="到月台代码" align="center" prop="toDockCode" width="150px" />
<el-table-column label="时间窗口" align="center" prop="timeWindow" width="150px" />
<el-table-column
label="计划到货时间"
align="center"
prop="planArriveTime"
:formatter="dateFormatter"
width="150px"
/>
<el-table-column label="承运商" align="center" prop="carrierCode" width="150px" />
<el-table-column label="运输方式" align="center" prop="transferMode" width="150px">
<template #default="scope">
<dict-tag :type="DICT_TYPE.TRANSFER_MODE" :value="scope.row.transferMode" />
</template>
</el-table-column>
<el-table-column label="车牌号" align="center" prop="vehiclePlateNumber" width="150px">
<template #default="scope">
<dict-tag :type="DICT_TYPE.VEHICLE_PLATE_NUMBER" :value="scope.row.vehiclePlateNumber" />
</template>
</el-table-column>
<el-table-column label="出库事务类型" align="center" prop="outTransaction" width="150px" />
<el-table-column label="入库事务类型" align="center" prop="inTransaction" width="150px" />
<el-table-column
label="执行时间"
align="center"
prop="executeTime"
:formatter="dateFormatter"
width="150px"
/>
<el-table-column
label="生效日期"
align="center"
prop="activeDate"
:formatter="dateFormatter"
width="150px"
/>
<el-table-column
label="申请时间"
align="center"
prop="requestTime"
:formatter="dateFormatter"
width="150px"
/>
<el-table-column
label="截止时间"
align="center"
prop="dueTime"
:formatter="dateFormatter"
width="150px"
/>
<el-table-column label="部门" align="center" prop="departmentCode" width="150px" />
<el-table-column label="接口类型" align="center" prop="interfaceType" width="150px">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INTERFACE_TYPE" :value="scope.row.interfaceType" />
</template>
</el-table-column>
<el-table-column label="单据号" align="center" prop="number" width="150px" />
<el-table-column label="业务类型" align="center" prop="businessType" width="150px" />
<el-table-column label="备注" align="center" prop="remark" width="150px" />
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="150px"
/>
<el-table-column label="创建者id" align="center" prop="creator" width="150px" />
<el-table-column label="工作流流水号" align="center" prop="serialNumber" width="150px" />
<el-table-column label="是否可用" align="center" prop="available" width="150px" />
<el-table-column label="操作" align="center" width="150px" fixed="right">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['wms:supplierdeliver-record-main:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['wms:supplierdeliver-record-main:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<SupplierdeliverRecordMainForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import * as SupplierdeliverRecordMainApi from '@/api/wms/supplierdeliverRecordMain'
import SupplierdeliverRecordMainForm from './SupplierdeliverRecordMainForm.vue'
defineOptions({ name: 'SupplierdeliverRecordMain' })
const message = useMessage() //
const { t } = useI18n() //
const loading = ref(true) //
const total = ref(0) //
const list = ref([]) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
requestNumber: null,
ppNumber: null,
asnNumber: null,
supplierCode: null,
contactName: null,
contactPhone: null,
contactEmail: null,
fromWarehouseCode: null,
toWarehouseCode: null,
toDockCode: null,
timeWindow: null,
planArriveTime: [],
carrierCode: null,
transferMode: null,
vehiclePlateNumber: null,
outTransaction: null,
inTransaction: null,
executeTime: [],
activeDate: [],
requestTime: [],
dueTime: [],
departmentCode: null,
interfaceType: null,
number: null,
businessType: null,
remark: null,
createTime: [],
creator: null,
serialNumber: null,
available: null
})
const queryFormRef = ref() //
const exportLoading = ref(false) //
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await SupplierdeliverRecordMainApi.getSupplierdeliverRecordMainPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await SupplierdeliverRecordMainApi.deleteSupplierdeliverRecordMain(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await SupplierdeliverRecordMainApi.exportSupplierdeliverRecordMain(queryParams)
download.excel(data, '供应商发货记录主.xls')
} catch {
} finally {
exportLoading.value = false
}
}
/** 初始化 **/
onMounted(() => {
getList()
})
</script>
Loading…
Cancel
Save