Browse Source

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

intex_online20241228
ljlong_2630 3 months ago
parent
commit
415ffd9d7c
  1. 14
      src/api/system/post/index.ts
  2. 12
      src/api/wms/warehouse/index.ts
  3. 381
      src/components/ImportForm/src/ImportFormPlanCSV.vue
  4. 179
      src/views/system/post/PostAreaPermissionForm.vue
  5. 13
      src/views/system/post/index.vue
  6. 2
      src/views/system/role/RoleAssignMenuForm.vue
  7. 17
      src/views/wms/countManage/count/countRecordMain/countRecordMain.data.ts
  8. 18
      src/views/wms/countManage/count/countRequestMain/countRequestMain.data.ts
  9. 3
      src/views/wms/inventoryjobManage/scrap/scrapRequestMain/index.vue
  10. 24
      src/views/wms/inventoryjobManage/scrap/scrapRequestMain/scrapRequestMain.data.ts
  11. 9
      src/views/wms/inventoryjobManage/unplannedissue/unplannedissueRecordMain/unplannedissueRecordMain.data.ts
  12. 28
      src/views/wms/inventoryjobManage/unplannedreceipt/unplannedreceiptRecordMain/unplannedreceiptRecordMain.data.ts
  13. 3
      src/views/wms/moveManage/inventorymove/inventorymoveRequestMainOKHOLD/index.vue
  14. 6
      src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue
  15. 11
      src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts

14
src/api/system/post/index.ts

@ -44,3 +44,17 @@ export const deletePost = async (id: number) => {
export const exportPost = async (params) => {
return await request.download({ url: '/system/post/export', params })
}
// 库位树状图
export const getPostAreaTreeList = async () => {
return await request.get({ url: '/wms/warehouse/treeLocation' })
}
// 根据id获取已选择节点
export const getByPostId = async (id) => {
return await request.get({ url: '/system/post-location/getByPostId?postId=' + id })
}
//提交选择的节点
export const updatePostLocation = async (data) => {
return await request.post({ url: '/system/post-location/updatePostLocation',data})
}

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

@ -22,6 +22,18 @@ export const getWarehousePage = async (params) => {
}
}
// 查询仓库列表
export const getWarehouseByBusinessTypeSenior = async (params) => {
delete params.isSearch
const data = {...params}
return request.post({ url: '/wms/warehouse/getWarehouseByBusinessTypeSenior', data })
}
// 查询仓库列表
export const getWarehouseByBusinessTypePage = async (params) => {
return await request.get({ url: `/wms/warehouse/getWarehouseByBusinessTypePage`, params })
}
// 校验仓库
export const verifyWarehouse = async (params) => {
return await request.get({ url: `/wms/warehouse/ListByCode`, params })

381
src/components/ImportForm/src/ImportFormPlanCSV.vue

@ -0,0 +1,381 @@
<!-- 导入组件 -->
<template>
<Dialog v-model="dialogVisible" :title="t('ts.导入')" width="600" :close-on-click-modal="false">
<el-upload
ref="uploadRef"
v-model:file-list="fileList"
:action="
importUrl +
'?mode=' +
mode +
'&file=' +
file +
'&updatePart=' +
updatePart +
'&outFile=' +
outFile +
'&extend=' + extend +
'&fromInventoryStatus=' + fromInventoryStatus +
'&toInventoryStatus=' + toInventoryStatus +
dataType
"
:auto-upload="false"
:disabled="formLoading"
:headers="uploadHeaders"
:limit="1"
:on-error="submitFormError"
:on-exceed="handleExceed"
:on-success="submitFormSuccess"
:accept="accept"
drag
style="width: 300px; margin: 0 auto"
v-loading="formLoading"
>
<Icon icon="ep:upload-filled" color="#c0c4cc" :size="60" />
<div class="el-upload__text">{{t('ts.将文件拖到此处,或')}}<em>{{t('ts.点击上传')}}</em></div>
<template #tip>
<div class="el-upload__tip ml--126px mr--80px">
<div class="flex" v-if="announcements&&announcements.length>0">
<div
class="label h-32px ml-22px mr-26px color-#acaeb3 font-size-14px w-100px text-right mt-2px"
style="line-height: 32px;"
>{{t('ts.注意事项')}}</div
>
<div class="">
<div class="notice color-#acaeb3 font-size-14px text-red">
<div class="mt-2" v-for="item in announcements">{{ item }}</div>
</div>
</div>
</div>
<div class="flex">
<div
class="label h-32px mr-26px color-#acaeb3 font-size-14px w-100px text-right"
style="line-height: 32px"
>{{t('ts.导入模式')}}</div
>
<div class="">
<div class="radio">
<el-radio-group v-model="mode">
<el-radio :label="1" v-show="updateIsShow" :disabled="updateIsDisable">{{ t('ts.更新')}}</el-radio>
<el-radio :label="2" v-show="appendIsShow" :disabled="appendIsDisable">{{ t('ts.追加') }}</el-radio>
<el-radio :label="3" v-show="coverIsShow" :disabled="coverIsDisable">{{ t('ts.覆盖') }}</el-radio>
</el-radio-group>
</div>
<div class="tips color-#acaeb3 font-size-14px">
<div class="mt-2">{{t('ts.更新:新增并修改')}}</div>
<div class="mt-2">{{ t('ts.追加:只新增,不修改') }}</div>
<div class="mt-2">{{ t('ts.覆盖:只修改不新增') }}</div>
</div>
</div>
</div>
<div class="flex mt-16px">
<div
class="label h-32px mr-26px color-#acaeb3 font-size-14px w-100px text-right"
style="line-height: 32px"
>{{ t('ts.部分保存') }}</div
>
<div class="">
<div class="switch">
<el-switch v-model="updatePart" />
</div>
<div class="tips color-#acaeb3 font-size-14px">
<div class="mt-2">{{ t('ts.部分保存:如存在错误数据,正确数据正常导入') }}</div>
<div class="mt-2">{{ t('ts.全部保存:全部数据正确,才能导入') }}</div>
</div>
</div>
</div>
<div class="flex mt-16px" v-if="isShowOut">
<div
class="label h-32px mr-26px color-#acaeb3 font-size-14px w-100px text-right"
style="line-height: 32px"
>是否外部资源</div
>
<div class="">
<div class="switch">
<el-switch v-model="outFile" />
</div>
</div>
</div>
</div>
</template>
</el-upload>
<template #footer>
<div class="flex items-center">
<div class="flex-1 text-left">
<!-- <el-button type="primary" plain @click="importTemplate">
<Icon icon="ep:download" />
{{ t('ts.下载模板') }}
</el-button> -->
</div>
<el-button :disabled="formLoading" type="primary" @click="submitForm">{{ t('ts.确 ') }}</el-button>
<el-button @click="dialogVisible = false">{{ t('ts.取 消') }}</el-button>
</div>
</template>
</Dialog>
</template>
<script lang="ts" setup>
import { getAccessToken, getTenantId } from '@/utils/auth'
import download from '@/utils/download'
import { getBaseUrl } from '@/utils/systemParam'
defineOptions({ name: 'ImportForm' })
const { t } = useI18n()
const message = useMessage() //
const dialogVisible = ref(false) //
const formLoading = ref(false) //
const uploadRef = ref()
const uploadHeaders = ref() // Header
const fileList = ref([]) //
const file = ref('')
const props = defineProps({
importTemplateData: {
type: Object,
required: true
},
//
accept: {
type: String,
required: false,
default: '.xlsx,.xls'
},
// .1
mode: {
type: Number,
required: false,
default: 1
},
// ,
updateIsDisable: {
type: Boolean,
required: false,
default: false
},
//
updateIsShow: {
type: Boolean,
required: false,
default: true
},
// ,
appendIsDisable: {
type: Boolean,
required: false,
default: false
},
//
appendIsShow: {
type: Boolean,
required: false,
default: true
},
// ,
coverIsDisable: {
type: Boolean,
required: false,
default: false
},
//
coverIsShow: {
type: Boolean,
required: false,
default: true
},
// ,
updatePart: {
type: Boolean,
required: false,
default: false
},
url: {
type: String,
required: false
},
//
isShowOut: {
type: Boolean,
required: false,
default: false
},
outFile: {
type: Boolean,
required: false,
default: false
},
//
extend: {
type: String,
required: false,
default: ''
},
// TODO: cxm
fromInventoryStatus: {
type: String,
required: false,
default: ''
},
// TODO: cxm
toInventoryStatus: {
type: String,
required: false,
default: ''
},
announcements:{
type: Array,
required: false,
default: []
}
})
const importTemplateData = ref(props.importTemplateData)
const dataType = ref('')
dataType.value = props.importTemplateData.dataType ?'&dataType=' + props.importTemplateData.dataType :''
const accept = ref(props.accept)
const mode = ref(props.mode) //.1
const updateIsDisable = ref(props.updateIsDisable) //,
const appendIsDisable = ref(props.appendIsDisable) //,
const coverIsDisable = ref(props.coverIsDisable) //,
const updatePart = ref(props.updatePart) //
const outFile = ref(props.outFile) //
const importUrl = getBaseUrl() + import.meta.env.VITE_API_URL + props.url
/** 打开弹窗 */
const open = () => {
dialogVisible.value = true
resetForm()
}
defineExpose({ open }) // open
/** 提交表单 */
const submitForm = async () => {
if (fileList.value.length == 0) {
message.error('请上传文件')
return
}
file.value = fileList.value[0].name
//
uploadHeaders.value = {
Authorization: 'Bearer ' + getAccessToken(),
'tenant-id': getTenantId()
}
formLoading.value = true
uploadRef.value!.submit()
}
/** 文件上传成功 */
const emits = defineEmits(['success'])
const submitFormSuccess = (response: any) => {
formLoading.value = true
console.log(response)
if (response) {
if (response.code == 500) {
uploadRef.value!.clearFiles()
message.error('导入失败')
formLoading.value = false
return
} else if (response.code == 0) {
if (response.data.errorCount > 0) {
message.confirm('文件中有部分数据导入失败,是否下载失败数据?').then(() => {
// download.excel(file, 'file_' + new Date().getTime())
// url
// const downloadElement = document.createElement('a')
// console.log(172, getBaseUrl() + import.meta.env.VITE_API_URL + '/' + response.data.errorFile)
// console.log(172, getBaseUrl() + '/admin-api/opt/profile/' + response.data.errorFile)
window.open(
getBaseUrl() + '/admin-api' + response.data.errorFile,
'222'
)
// downloadElement.setAttribute('href', getBaseUrl() + import.meta.env.VITE_API_URL + response.data.errorFile )
//
// downloadElement.click()
})
} else {
message.success('导入成功')
}
}else if(response.data == null){
message.error(response.msg)
}
}
// if (response.code !== 0) {
// message.error(response.msg)
// formLoading.value = false
// return
// }
// //
// const data = response.data
// const create = response.data.importResult[0]
// const update = response.data.importResult[1]
// const failure = response.data.importResult[2]
// let text = '' + data[create].length + ';'
// for (let name of data[create]) {
// text += '< ' + name + ' >'
// }
// text += '' + data[update].length + ';'
// for (const name of data[update]) {
// text += '< ' + name + ' >'
// }
// text += '' + Object.keys(data[failure]).length + ';'
// for (const name in data[failure]) {
// text += '< ' + name + ': ' + data[failure][name] + ' >'
// }
// message.alert(text)
//
formLoading.value = false
emits('success')
dialogVisible.value = false
}
/** 上传错误提示 */
const submitFormError = (): void => {
message.error('上传失败,请您重新上传!')
formLoading.value = false
}
/** 重置表单 */
const resetForm = () => {
//
formLoading.value = false
uploadRef.value?.clearFiles()
fileList.value = []
}
/** 文件数超出提示 */
const handleExceed = (): void => {
message.error('最多只能上传一个文件!')
}
/** 下载模板操作 */
const importTemplate = () => {
const res = importTemplateData.value.templateUrl
download.excel(res, importTemplateData.value.templateTitle)
}
</script>
<style scoped lang="scss">
.text-red{
color: var(--el-color-danger);
}
.tips {
div {
position: relative;
padding-left: 22px;
&::before {
width: 4px;
height: 4px;
border-radius: 50%;
content: '';
background: #c2c2c2;
position: absolute;
top: 50%;
margin-top: -2px;
left: 4px;
}
}
}
</style>

179
src/views/system/post/PostAreaPermissionForm.vue

@ -0,0 +1,179 @@
<template>
<Dialog v-model="dialogVisible" title="菜单权限">
<el-form ref="formRef" v-loading="formLoading" :model="formData" label-width="80px">
<el-form-item label="岗位名称">
<el-tag>{{ formData.name }}</el-tag>
</el-form-item>
<el-form-item label="菜单权限">
<el-card class="cardHeight">
<template #header>
全选/全不选:
<el-switch
v-model="treeNodeAll"
active-text="是"
inactive-text="否"
inline-prompt
@change="handleCheckedTreeNodeAll"
/>
全部展开/折叠:
<el-switch
v-model="menuExpand"
active-text="展开"
inactive-text="折叠"
inline-prompt
@change="handleCheckedTreeExpand"
/>
</template>
<el-tree
ref="treeRef"
:data="areaOptions"
:props="defaultProps"
empty-text="加载中,请稍候"
node-key="id"
show-checkbox
/>
</el-card>
</el-form-item>
</el-form>
<template #footer>
<el-button :disabled="formLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script lang="ts" setup>
import { defaultProps, handleTree } from '@/utils/tree'
// import * as RoleApi from '@/api/system/role'
// import * as MenuApi from '@/api/system/menu'
// import * as PermissionApi from '@/api/system/permission'
import * as PostApi from '@/api/system/post'
defineOptions({ name: 'SystemRoleAssignMenuForm' })
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const formLoading = ref(false) // 12
const formData = reactive({
id: 0,
name: '',
code: '',
menuIds: []
})
const formRef = ref() // Ref
const areaOptions = ref<any[]>([]) //
const menuExpand = ref(false) // /
const treeRef = ref() // Ref
const treeNodeAll = ref(false) // /
/** 打开弹窗 */
const open = async (row: any) => {
dialogVisible.value = true
resetForm()
// Menu setChecked
let array = await PostApi.getPostAreaTreeList()
array.forEach(item=>item.name =item.code + '-' + item.name )
areaOptions.value = handleTree(array)
// menuOptions.value = await MenuApi.getSimpleMenusList())
//
formData.id = row.id
formData.name = row.name
formData.code = row.code
formLoading.value = true
try {
formData.value.menuIds = await PostApi.getByPostId(row.id)
//
formData.value.menuIds.forEach((menuId: number) => {
treeRef.value.setChecked(menuId, true, false)
})
} 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 = {
// roleId: formData.id,
// menuIds: [
// ...(treeRef.value.getCheckedKeys(false) as unknown as Array<number>), //
// ...(treeRef.value.getHalfCheckedKeys() as unknown as Array<number>) //
// ]
// }
let arr = treeRef.value.getCheckedNodes(false).filter(item => item.type == 4)
let array = []
if (arr && arr.length > 0) {
array = arr.map(item => {
return {
postId:formData.id,
locationId:item.id,
locationCode:item.code,
}
})
} else {
array = [{
postId:formData.id,
locationId:-1,
locationCode:'',
}]
}
await PostApi.updatePostLocation(array)
message.success(t('common.updateSuccess'))
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
//
treeNodeAll.value = false
menuExpand.value = false
//
formData.value = {
id: 0,
name: '',
code: '',
menuIds: []
}
treeRef.value?.setCheckedNodes([])
formRef.value?.resetFields()
}
/** 全选/全不选 */
const handleCheckedTreeNodeAll = () => {
treeRef.value.setCheckedNodes(treeNodeAll.value ? areaOptions.value : [])
}
/** 展开/折叠全部 */
const handleCheckedTreeExpand = () => {
const nodes = treeRef.value?.store.nodesMap
for (let node in nodes) {
if (nodes[node].expanded === menuExpand.value) {
continue
}
nodes[node].expanded = menuExpand.value
}
}
</script>
<style lang="scss" scoped>
.cardHeight {
width: 100%;
max-height: 400px;
overflow-y: scroll;
}
</style>

13
src/views/system/post/index.vue

@ -46,8 +46,12 @@
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="180" :formatter="dateFormatter" />
<el-table-column label="操作" align="center" fixed="right" width="180">
<el-table-column label="操作" align="center" fixed="right" width="250">
<template #default="scope">
<el-button link type="primary" @click="openAreaPermission(scope.row)" v-hasPermi="['system:post:area-permission']">
<Icon icon="ep:view" />
库区权限
</el-button>
<el-button link type="primary" @click="openForm('update', scope.row.id)" v-hasPermi="['system:post:update']">
<Icon icon="ep:edit" />
编辑
@ -66,6 +70,7 @@
<!-- 表单弹窗添加/修改 -->
<PostForm ref="formRef" @success="getList" />
<PostAreaPermissionForm ref="postAreaPermissionFormRef" />
</template>
<script lang="ts" setup>
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
@ -73,6 +78,7 @@ import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import * as PostApi from '@/api/system/post'
import PostForm from './PostForm.vue'
import PostAreaPermissionForm from './PostAreaPermissionForm.vue'
import { usePageLoading } from '@/hooks/web/usePageLoading'
const { loadStart, loadDone } = usePageLoading()
defineOptions({ name: 'SystemPost' })
@ -150,7 +156,10 @@ const handleExport = async () => {
loadDone()
}
}
const postAreaPermissionFormRef = ref()
const openAreaPermission = (row) =>{
postAreaPermissionFormRef.value.open(row)
}
/** 初始化 **/
onMounted(() => {
getList()

2
src/views/system/role/RoleAssignMenuForm.vue

@ -75,6 +75,7 @@ const open = async (row: RoleApi.RoleVO) => {
resetForm()
// Menu setChecked
menuOptions.value = handleTree(await MenuApi.getSimpleMenusList())
console.log(333,menuOptions.value)
//
formData.id = row.id
formData.name = row.name
@ -143,6 +144,7 @@ const handleCheckedTreeNodeAll = () => {
/** 展开/折叠全部 */
const handleCheckedTreeExpand = () => {
const nodes = treeRef.value?.store.nodesMap
console.log(88,treeRef.value?.store.nodesMap)
for (let node in nodes) {
if (nodes[node].expanded === menuExpand.value) {
continue

17
src/views/wms/countManage/count/countRecordMain/countRecordMain.data.ts

@ -541,23 +541,6 @@ export const CountRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([
width: 150
},
},
{
label: '货主代码',
field: 'ownerCode',
sort: 'custom',
table: {
width: 150
},
},
{
label: '项目代码',
field: 'projectCode',
sort: 'custom',
table: {
width: 150
},
},
{
label: '备注',
field: 'remark',

18
src/views/wms/countManage/count/countRequestMain/countRequestMain.data.ts

@ -556,24 +556,6 @@ export const CountRequestDetail = useCrudSchemas(reactive<CrudSchema[]>([
type: 'Select'
}
},
{
label: '货主代码',
field: 'ownerCode',
sort: 'custom',
table: {
width: 150
},
},
{
label: '项目代码',
field: 'projectCode',
sort: 'custom',
table: {
width: 150
},
isTableForm: false,
isForm: false,
},
{
label: '备注',
field: 'remark',

3
src/views/wms/inventoryjobManage/scrap/scrapRequestMain/index.vue

@ -568,14 +568,13 @@ const openForm = async (type: string, row?: any) => {
by: 'ASC',
filters: [
{ column: 'available', action: '==', value: 'TRUE' },
{ column: 'type', action: '==', value: 'SCRAP' }
],
pageNo: 1,
pageSize: 500,
sort: ''
}
params.isSearch = true
WarehouseApi.getWarehousePage(params).then((res) => {
WarehouseApi.getWarehouseByBusinessTypeSenior(params).then((res) => {
if (res.list?.length > 0) {
nextTick(() => {
formRef.value.formRef.setValues({

24
src/views/wms/inventoryjobManage/scrap/scrapRequestMain/scrapRequestMain.data.ts

@ -635,18 +635,18 @@ export const ScrapRequestMain = useCrudSchemas(
searchField: 'code',
searchTitle: '仓库信息',
searchAllSchemas: Warehouse.allSchemas,
searchPage: WarehouseApi.getWarehousePage,
searchPage: WarehouseApi.getWarehouseByBusinessTypePage,
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'type',
value: Scrap.outAreaTypes,
isMainValue: false
}
// {
// key: 'type',
// value: Scrap.outAreaTypes,
// isMainValue: false
// }
],
verificationParams: [
{
@ -668,18 +668,18 @@ export const ScrapRequestMain = useCrudSchemas(
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '仓库信息', // 查询弹窗标题
searchAllSchemas: Warehouse.allSchemas, // 查询弹窗所需类
searchPage: WarehouseApi.getWarehousePage, // 查询弹窗所需分页方法
searchPage: WarehouseApi.getWarehouseByBusinessTypePage, // 查询弹窗所需分页方法
searchCondition: [
{
key: 'available',
value: 'TRUE',
isMainValue: false
},
{
key: 'type',
value: Scrap.outAreaTypes,
isMainValue: false
}
// {
// key: 'type',
// value: Scrap.outAreaTypes,
// isMainValue: false
// }
],
verificationParams: [
{

9
src/views/wms/inventoryjobManage/unplannedissue/unplannedissueRecordMain/unplannedissueRecordMain.data.ts

@ -10,6 +10,12 @@ import * as QadProjectApi from '@/api/wms/qadProject'
import * as SubjectAccountApi from '@/api/wms/subjectAccount'
import { SubjectAccount } from '@/views/wms/basicDataManage/subject/subjectAccount/subjectAccount.data'
import { useUserStore } from '@/store/modules/user'
const userStore = useUserStore()
const userDept = userStore.userSelfInfo.dept
// id 转str 否则form回显匹配不到
userDept.id = userDept.id.toString()
const userDeptArray: any = [userDept]
/**
* @returns {Array}
@ -369,6 +375,9 @@ export const UnplannedissueRecordMain = useCrudSchemas(reactive<CrudSchema[]>([
table: {
width: 150
},
formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
return userDeptArray.find((account) => account.id == cellValue)?.name
},
},
{
label: '接口类型',

28
src/views/wms/inventoryjobManage/unplannedreceipt/unplannedreceiptRecordMain/unplannedreceiptRecordMain.data.ts

@ -12,6 +12,15 @@ import * as QadProjectApi from '@/api/wms/qadProject'
import * as SubjectAccountApi from '@/api/wms/subjectAccount'
import { SubjectAccount } from '@/views/wms/basicDataManage/subject/subjectAccount/subjectAccount.data'
// 获取当前操作人的部门
import { useUserStore } from '@/store/modules/user'
import { TableColumn } from '@/types/table'
const userStore = useUserStore()
const userDept = userStore.userSelfInfo.dept
// id 转str 否则form回显匹配不到
userDept.id = userDept.id.toString()
const userDeptArray: any = [userDept]
/**
* @returns {Array}
*/
@ -338,14 +347,17 @@ export const UnplannedreceiptRecordMain = useCrudSchemas(reactive<CrudSchema[]>(
width: 150
},
},
// {
// label: '部门',
// field: 'departmentCode',
// sort: 'custom',
// table: {
// width: 150
// },
// },
{
label: '部门',
field: 'departmentCode',
sort: 'custom',
table: {
width: 150
},
formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
return userDeptArray.find((account) => account.id == cellValue)?.name
},
},
{
label: '接口类型',
field: 'interfaceType',

3
src/views/wms/moveManage/inventorymove/inventorymoveRequestMainOKHOLD/index.vue

@ -76,6 +76,9 @@
:apiDelete="InventorymoveRequestDetailApi.deleteInventorymoveRequestDetail"
@searchTableSuccessDetail="searchTableSuccessDetail"
@detailOpenForm="detailOpenForm"
:detailButtonIsShowEdit="false"
:detailButtonIsShowDelete="false"
:detailButtonIsShowAdd="false"
/>
<!-- 导入 -->

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

@ -102,7 +102,7 @@
/>
<!-- 导入 -->
<ImportForm ref="importFormRef" url="/wms/purchase-plan-main/import" :importTemplateData="importTemplateData" :announcements = "announcements"
<ImportFormPlanCSV ref="importFormRef" url="/wms/purchase-plan-main/importCSV" :importTemplateData="importTemplateData" :announcements = "announcements"
@success="importSuccess" :updateIsDisable="false" :appendIsDisable="true" :coverIsDisable="true" :mode="1" :coverIsShow="false" :appendIsShow="false"/>
<!-- 创建供应商发货申请 -->
<supplierdeliverBasicForm ref="supplierdeliverFormRef" @getList="getList" ></supplierdeliverBasicForm>
@ -132,7 +132,7 @@ const { loadStart, loadDone } = usePageLoading()
announcements.value = ["1. The total number of data items of the quantity of goods in the template does not exceed 1000 data (row × column).","2. All data content in the template is in text format, and formula content cannot be used as import data","3. The delivery date is in YYYY-MM-DD format, no hours, minutes and seconds are required"]
}else{
announcements.value = ["1. 模板中要货数量数据项总数不超过1000个数据(行×列)","2. 模板中全部数据内容格式为文本格式,不能使用公式内容作为导入数据","3. 要货日期为YYYY-MM-DD格式,不需填写时分秒"]
//announcements.value = ["1. 1000×","2. 使","3. YYYY-MM-DD"]
}
//
defineOptions({ name: 'PurchasePlanMain' })
@ -375,7 +375,7 @@ const getSearchTableData = async (number,formField,searchField)=>{
//
const HeadButttondata = [
defaultButtons.defaultAddBtn({ hasPermi: 'wms:purchase-plan-main:create' }), //
// defaultButtons.defaultImportBtn({ hasPermi: 'wms:purchase-plan-main:import' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'wms:purchase-plan-main:import' }), //
// defaultButtons.defaultExportBtn({ hasPermi: 'wms:purchase-plan-main:export' }), //
defaultButtons.defaultExportDetailsBtn({ hasPermi: 'wms:purchase-plan-main:export' }), //
//defaultButtons.defaultExportTableBtn({ hasPermi: 'wms:purchase-plan-main:export' }), //

11
src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts

@ -268,6 +268,17 @@ export const PurchasePlanMain = useCrudSchemas(
width: 150
},
},
{
label: '便次',
field: 'deliNo',
sort: 'custom',
isTable: true,
isForm: false,
sortTableDefault: 13,
table: {
width: 150
},
},
{
label: '收货人',
field: 'contacts',

Loading…
Cancel
Save