1. 增加 apk 模块;

2. 调整发货通知单
main
GaoF 2024-11-24 17:05:44 +08:00
parent 74bcb3c194
commit e100956037
9 changed files with 575 additions and 261 deletions

View File

@ -5,7 +5,7 @@ NODE_ENV = development
VITE_TITLE = Snowy
# 接口地址
VITE_API_BASEURL = http://localhost:82
VITE_API_BASEURL = http://49.234.181.176:27315/bsx
# 本地端口
VITE_PORT = 81

View File

@ -1,6 +1,6 @@
<template>
<div></div>
<a-modal v-model:open="visible" title="物料选择" width="80%" @ok="handleOk" @cancel="handleClose">
<a-modal v-model:open="visible" title="客户选择" width="80%" @ok="handleOk" @cancel="handleClose">
<a-form ref="searchFormRef" name="advanced_search" :model="searchFormState" class="ant-advanced-search-form">
<a-row :gutter="24">
<a-col :span="6">
@ -36,7 +36,7 @@
treeTitle="物料分类"
:tableRef="tableRef"
:apiModel="{
getTree: customerCategoryApi.customerCategoryTree,
getTree: customerCategoryApi.customerCategoryTree
}"
@selectTree="selectTree"
@treeRefresh="treeRefresh"
@ -82,94 +82,94 @@
</template>
<script setup>
import { useTableManagement } from '@/hook/useTableManagement'
import { message } from 'ant-design-vue'
import customerApi from "@/api/base/customer/customerApi";
import customerCategoryApi from "@/api/base/customer/customerCategoryApi";
import {clientColumn} from "@/views/productionBusiness/basicData/client/columns/clientColumn";
import { useTableManagement } from '@/hook/useTableManagement'
import { message } from 'ant-design-vue'
import customerApi from '@/api/base/customer/customerApi'
import customerCategoryApi from '@/api/base/customer/customerCategoryApi'
import { clientColumn } from '@/views/productionBusiness/basicData/client/columns/clientColumn'
const emits = defineEmits(['ok'])
const emits = defineEmits(['ok'])
//
const visible = ref(false)
//
const dynamicTreeRef = ref(null)
//
const { searchFormState, tableRef, selectedRowKeys, columns, loadData, reset, options, searchFormRef } =
useTableManagement(
{
page: customerApi.customerPage,
},
clientColumn,
[],
false
)
//
const visible = ref(false)
//
const dynamicTreeRef = ref(null)
//
const { searchFormState, tableRef, selectedRowKeys, columns, loadData, reset, options, searchFormRef } =
useTableManagement(
{
page: customerApi.customerPage
},
clientColumn,
[],
false
)
//
const selectTree = (value) => {
searchFormState.value.categoryId = value.id
tableRef.value.refresh()
}
//
const treeRefresh = () => {
searchFormState.value.categoryId = null
tableRef.value.refresh()
}
//
let clientSelectedRowKey = []
let clientSelectedRows = []
const tableRowSelection = {
type: 'radio',
onChange: (selectedRowKey, selectedRows) => {
clientSelectedRowKey = selectedRowKey
clientSelectedRows = selectedRows
}
}
//
const handleOk = () => {
if (clientSelectedRowKey.length === 0) return message.error('请选择物料')
emits('ok', {
clientSelectedRowKey,
clientSelectedRows
})
closeModal()
}
//
const handleClose = () => {
closeModal()
}
//
const closeModal = () => {
//
visible.value = false
// table
tableRef.value.clearSelected()
}
//
const showOpen = () => {
visible.value = true
nextTick(() => {
//
dynamicTreeRef.value.loadTreeData()
//
//
const selectTree = (value) => {
searchFormState.value.categoryId = value.id
tableRef.value.refresh()
})
}
}
//
defineExpose({
showOpen
})
//
const treeRefresh = () => {
searchFormState.value.categoryId = null
tableRef.value.refresh()
}
//
let clientSelectedRowKey = []
let clientSelectedRows = []
const tableRowSelection = {
type: 'radio',
onChange: (selectedRowKey, selectedRows) => {
clientSelectedRowKey = selectedRowKey
clientSelectedRows = selectedRows
}
}
//
const handleOk = () => {
if (clientSelectedRowKey.length === 0) return message.error('请选择物料')
emits('ok', {
clientSelectedRowKey,
clientSelectedRows
})
closeModal()
}
//
const handleClose = () => {
closeModal()
}
//
const closeModal = () => {
//
visible.value = false
// table
tableRef.value.clearSelected()
}
//
const showOpen = () => {
visible.value = true
nextTick(() => {
//
dynamicTreeRef.value.loadTreeData()
//
tableRef.value.refresh()
})
}
//
defineExpose({
showOpen
})
</script>
<style scoped></style>

View File

@ -0,0 +1,173 @@
<template>
<div></div>
<a-modal v-model:open="visible" title="客户选择" width="80%" @ok="handleOk" @cancel="handleClose">
<a-form ref="searchFormRef" name="advanced_search" :model="searchFormState" class="ant-advanced-search-form">
<a-row :gutter="24">
<a-col :span="6">
<a-form-item label="名称" name="name">
<a-input v-model:value="searchFormState.name" placeholder="请输入名称" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-form-item label="编码" name="number">
<a-input v-model:value="searchFormState.number" placeholder="请输入编码" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-form-item label="可用状态" name="enabledState">
<a-select
v-model:value="searchFormState.enabledState"
placeholder="请选择可用状态"
:options="$TOOL.dictList('COMMON_STATUS')"
/>
</a-form-item>
</a-col>
<a-col :span="6">
<a-button type="primary" @click="tableRef.refresh()"></a-button>
<a-button style="margin: 0 8px" @click="reset"></a-button>
</a-col>
</a-row>
</a-form>
<a-row :gutter="24">
<a-col :span="6">
<dynamic-tree
ref="dynamicTreeRef"
treeTitle="仓库分类"
:tableRef="tableRef"
:apiModel="{
getTree: sysStoreApi.sysStoreTree
}"
@selectTree="selectTree"
@treeRefresh="treeRefresh"
:toolConfig="{
plus: false,
edit: false,
delete: false,
refresh: true
}"
></dynamic-tree>
</a-col>
<a-col :span="18">
<s-table
ref="tableRef"
:columns="columns"
:data="loadData"
:alert="options.alert.show"
bordered
:row-key="(record) => record.id"
:tool-config="options.toolConfig"
:row-selection="tableRowSelection"
:scroll="{
x: 100,
y: 500
}"
>
<template #bodyCell="{ column, record }">
<template v-if="column.dataIndex === 'number'">
<a href="#">{{ record.number }}</a>
</template>
<template v-if="column.dataIndex === 'enabledState'">
<a-tag color="#87d068" v-if="record.enabledState === 'ENABLE'"></a-tag>
<a-tag color="#f50" v-if="record.enabledState === 'DISABLED'"></a-tag>
</template>
<template v-if="column.dataIndex === 'type'">
{{ $TOOL.dictTypeData('OFFICIAL_ACCOUNT_TYPE', record.type) }}
</template>
</template>
</s-table>
</a-col>
</a-row>
</a-modal>
</template>
<script setup>
import { useTableManagement } from '@/hook/useTableManagement'
import { message } from 'ant-design-vue'
import { clientColumn } from '@/views/productionBusiness/basicData/client/columns/clientColumn'
import sysStoreApi from '@/api/base/store/sysStoreApi'
const emits = defineEmits(['ok'])
//
const visible = ref(false)
//
const dynamicTreeRef = ref(null)
//
const { searchFormState, tableRef, columns, loadData, reset, options, searchFormRef } = useTableManagement(
{
page: sysStoreApi.page
},
clientColumn,
[],
false
)
//
const selectTree = (value) => {
searchFormState.value.categoryId = value.id
tableRef.value.refresh()
}
//
const treeRefresh = () => {
searchFormState.value.categoryId = null
tableRef.value.refresh()
}
//
let clientSelectedRowKey = []
let clientSelectedRows = []
const tableRowSelection = {
type: 'radio',
onChange: (selectedRowKey, selectedRows) => {
clientSelectedRowKey = selectedRowKey
clientSelectedRows = selectedRows
}
}
//
const handleOk = () => {
if (clientSelectedRowKey.length === 0) return message.error('请选择仓库')
emits('ok', {
clientSelectedRowKey,
clientSelectedRows
})
closeModal()
}
//
const handleClose = () => {
closeModal()
}
//
const closeModal = () => {
//
visible.value = false
// table
tableRef.value.clearSelected()
}
//
const showOpen = () => {
visible.value = true
nextTick(() => {
//
dynamicTreeRef.value.loadTreeData()
//
tableRef.value.refresh()
})
}
//
defineExpose({
showOpen
})
</script>
<style scoped></style>

View File

@ -0,0 +1,18 @@
export const apkColumns = [
{
title: '版本号',
dataIndex: 'versionNumber'
},
{
title: '版本更新介绍',
dataIndex: 'versionIntroduction'
},
{
title: 'apk链接',
dataIndex: 'apkLink'
},
{
title: '状态',
dataIndex: 'state'
}
]

View File

@ -6,18 +6,25 @@
:destroy-on-close="true"
@close="onClose"
>
<a-alert message="注意:新增后默认为第一条是最新安装包!" type="warning" show-icon />
<a-form ref="formRef" :model="formData" :rules="formRules" layout="vertical">
<a-form-item label="版本号:" name="versionNumber">
<a-input v-model:value="formData.versionNumber" placeholder="请输入版本号" allow-clear />
<a-input :min="100" v-model:value="formData.versionNumber" placeholder="版本号范围 100 ~ 100000" allow-clear />
</a-form-item>
<a-form-item label="版本更新介绍:" name="versionIntroduction">
<a-input v-model:value="formData.versionIntroduction" placeholder="请输入版本更新介绍" allow-clear />
<XnEditor v-model:value="formData.versionIntroduction"></XnEditor>
</a-form-item>
<a-form-item label="apk链接" name="apkLink">
<a-input v-model:value="formData.apkLink" placeholder="请输入apk链接" allow-clear />
</a-form-item>
<a-form-item label="状态:" name="state">
<a-input v-model:value="formData.state" placeholder="请输入状态" allow-clear />
<a-upload
@change="handleUploadChange"
action="http://49.234.181.176:27315/bsx/dev/file/uploadLocalReturnUrl"
:multiple="true"
>
<a-button>
<upload-outlined></upload-outlined>
上传APK包
</a-button>
</a-upload>
</a-form-item>
</a-form>
<template #footer>
@ -28,52 +35,57 @@
</template>
<script setup name="pdaChangelogForm">
import { cloneDeep } from 'lodash-es'
import { required } from '@/utils/formRules'
import pdaChangelogApi from '@/api/biz/pdaChangelogApi'
//
const visible = ref(false)
const emit = defineEmits({ successful: null })
const formRef = ref()
//
const formData = ref({})
const submitLoading = ref(false)
import { cloneDeep } from 'lodash-es'
import { required } from '@/utils/formRules'
import pdaChangelogApi from '@/api/biz/pdaChangelogApi'
//
const visible = ref(false)
const emit = defineEmits({ successful: null })
const formRef = ref()
//
const formData = ref({})
const submitLoading = ref(false)
//
const onOpen = (record) => {
visible.value = true
if (record) {
let recordData = cloneDeep(record)
formData.value = Object.assign({}, recordData)
//
const onOpen = (record) => {
visible.value = true
if (record) {
let recordData = cloneDeep(record)
formData.value = Object.assign({}, recordData)
}
}
}
//
const onClose = () => {
formRef.value.resetFields()
formData.value = {}
visible.value = false
}
//
const formRules = {
}
//
const onSubmit = () => {
formRef.value.validate().then(() => {
submitLoading.value = true
const formDataParam = cloneDeep(formData.value)
pdaChangelogApi
.pdaChangelogSubmitForm(formDataParam, formDataParam.id)
.then(() => {
onClose()
emit('successful')
})
.finally(() => {
submitLoading.value = false
})
//
const onClose = () => {
formRef.value.resetFields()
formData.value = {}
visible.value = false
}
const handleUploadChange = (data) => {
if (data.file.status === 'done') {
console.log(data.file.response.data, 'data.file.response.data')
formData.value.apkLink = data.file.response.data
}
}
//
const formRules = {}
//
const onSubmit = () => {
formRef.value.validate().then(() => {
submitLoading.value = true
const formDataParam = cloneDeep(formData.value)
pdaChangelogApi
.pdaChangelogSubmitForm(formDataParam, formDataParam.id)
.then(() => {
onClose()
emit('successful')
})
.finally(() => {
submitLoading.value = false
})
})
}
//
defineExpose({
onOpen
})
}
//
defineExpose({
onOpen
})
</script>

View File

@ -0,0 +1,12 @@
import tool from '@/utils/tool'
export const searchFields = [
{ name: 'name', label: '名称', component: 'a-input', props: { placeholder: '请输入名称' } },
{
name: 'enabledState',
label: '可用状态',
component: 'a-select',
props: { placeholder: '请选择状态', options: tool.dictList('COMMON_STATUS') }
},
{ name: 'number', label: '编码', component: 'a-input', props: { placeholder: '请输入编码' } }
]

168
src/views/biz/app/apk/index.vue 100644 → 100755
View File

@ -1,23 +1,12 @@
<template>
<a-card :bordered="false">
<a-form ref="searchFormRef" name="advanced_search" :model="searchFormState" class="ant-advanced-search-form">
<a-row :gutter="24">
<a-col :span="6">
<a-form-item label="版本号" name="versionNumber">
<a-input v-model:value="searchFormState.versionNumber" placeholder="请输入版本号" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-form-item label="状态" name="state">
<a-input v-model:value="searchFormState.state" placeholder="请输入状态" />
</a-form-item>
</a-col>
<a-col :span="6">
<a-button type="primary" @click="tableRef.refresh()"></a-button>
<a-button style="margin: 0 8px" @click="reset"></a-button>
</a-col>
</a-row>
</a-form>
<AdvancedSearchForm
:formState="searchFormState"
:formFields="searchFields"
@search="tableRef.refresh()"
@reset="tableRef.refresh()"
/>
<a-card :bordered="false" class="mt-4">
<s-table
ref="tableRef"
:columns="columns"
@ -44,11 +33,43 @@
<template #bodyCell="{ column, record }">
<template v-if="column.dataIndex === 'action'">
<a-space>
<a @click="formRef.onOpen(record)" v-if="hasPerm('pdaChangelogEdit')"></a>
<a-divider type="vertical" v-if="hasPerm(['pdaChangelogEdit', 'pdaChangelogDelete'], 'and')" />
<a-popconfirm title="确定要删除吗?" @confirm="deletePdaChangelog(record)">
<a-button type="link" danger size="small" v-if="hasPerm('pdaChangelogDelete')"></a-button>
</a-popconfirm>
<a
@click="
navigateTo('/basicData/brand/detail', {
type: 'SEARCH',
id: record.id
})
"
v-if="hasPerm('customerEdit')"
>
<EyeOutlined />
查看
</a>
<a-divider type="vertical" v-if="hasPerm(['customerEdit', 'customerDelete'], 'and')" />
<a-dropdown>
<a class="ant-dropdown-link" @click.prevent>
更多
<DownOutlined />
</a>
<template #overlay>
<a-menu>
<a-menu-item>
<a-button
type="link"
danger
size="small"
v-if="hasPerm('materialDelete')"
@click="deleteRecord(record)"
>
<DeleteOutlined />
删除
</a-button>
</a-menu-item>
</a-menu>
</template>
</a-dropdown>
</a-space>
</template>
</template>
@ -58,83 +79,30 @@
</template>
<script setup name="changelog">
import { cloneDeep } from 'lodash-es'
import Form from './detail/form.vue'
import { searchFields } from '@/views/biz/app/apk/formFields/searchFields'
import pdaChangelogApi from '@/api/biz/pdaChangelogApi'
const searchFormState = ref({})
const searchFormRef = ref()
const tableRef = ref()
const formRef = ref()
const toolConfig = { refresh: true, height: true, columnSetting: true, striped: false }
const columns = [
import Form from './detail/form.vue'
import { apkColumns } from '@/views/biz/app/apk/columns/apkColumns'
import { useTableManagement } from '@/hook/useTableManagement'
const formRef = ref(null)
const {
searchFormState,
tableRef,
selectedRowKeys,
columns,
loadData,
deleteRecord,
deleteBatchRecords,
options,
navigateTo,
toolConfig
} = useTableManagement(
{
title: '版本号',
dataIndex: 'versionNumber'
page: pdaChangelogApi.pdaChangelogPage,
delete: pdaChangelogApi.pdaChangelogDelete
},
{
title: '版本更新介绍',
dataIndex: 'versionIntroduction'
},
{
title: 'apk链接',
dataIndex: 'apkLink'
},
{
title: '状态',
dataIndex: 'state'
}
]
//
if (hasPerm(['pdaChangelogEdit', 'pdaChangelogDelete'])) {
columns.push({
title: '操作',
dataIndex: 'action',
align: 'center',
width: 150
})
}
const selectedRowKeys = ref([])
//
const options = {
// columns needTotal: true
alert: {
show: true,
clear: () => {
selectedRowKeys.value = ref([])
}
},
rowSelection: {
onChange: (selectedRowKey, selectedRows) => {
selectedRowKeys.value = selectedRowKey
}
}
}
const loadData = (parameter) => {
const searchFormParam = cloneDeep(searchFormState.value)
return pdaChangelogApi.pdaChangelogPage(Object.assign(parameter, searchFormParam)).then((data) => {
return data
})
}
//
const reset = () => {
searchFormRef.value.resetFields()
tableRef.value.refresh(true)
}
//
const deletePdaChangelog = (record) => {
let params = [
{
id: record.id
}
]
pdaChangelogApi.pdaChangelogDelete(params).then(() => {
tableRef.value.refresh(true)
})
}
//
const deleteBatchPdaChangelog = (params) => {
pdaChangelogApi.pdaChangelogDelete(params).then(() => {
tableRef.value.clearRefreshSelected()
})
}
apkColumns,
['sysBrandEdit', 'sysBrandDelete']
)
</script>

View File

@ -1,12 +1,15 @@
<template>
<a-page-header style="padding: 10px; font-size: 20px" @back="handleBack">
<a-page-header style="padding: 10px; font-size: 20px">
<template #extra>
<a-button v-if="route.query.type !== 'SEARCH'" key="1" type="primary" @click="onSubmitForm"></a-button>
<a-button v-if="route.query.type !== 'SEARCH'" type="primary" @click="onSubmitFormBack">退</a-button>
<a-button v-if="route.query.type !== 'SEARCH'" type="primary" @click="onSubmitFormAdd"></a-button>
<a-button @click="handleBack('/inventory/invoice')">退</a-button>
</template>
</a-page-header>
<a-card :bordered="false" title="基本信息">
<DynamicForm
v-if="route.query.type !== 'SEARCH'"
:allDisabled="route.query.type === 'SEARCH'"
:formItems="basicInfoFormItemsRef"
:rules="basicInfoFormRules"
@ -22,10 +25,32 @@
@click="openClient"
></a-input>
</template>
<template #storeSlot="{ model, item }">
<a-input
:disabled="route.query.type === 'SEARCH'"
readonly
v-bind="{ ...item.attrs }"
v-model:value="model[item.name]"
@click="openStore"
></a-input>
</template>
</DynamicForm>
<a-descriptions bordered v-else>
<a-descriptions-item
:span="item.span"
:label="item.label"
v-for="(item, index) in basicInfoViewFormItems"
:key="index"
>
<span v-if="!item.type">{{ detailData[item.name] }}</span>
<span v-if="item.type === 'dict'">{{ tool.dictTypeData(item.attrs.options, detailData[item.name]) }}</span>
</a-descriptions-item>
</a-descriptions>
</a-card>
<a-card
<!-- <a-card
:bordered="false"
class="mt-4"
style="height: 100%"
@ -38,7 +63,7 @@
:model="extendFormData"
v-if="extendData.length > 0"
/>
</a-card>
</a-card>-->
<a-card :bordered="false" class="mt-4" style="height: 100%" title="商品明细信息">
<a-space>
@ -110,6 +135,8 @@
<materiel-selector-plus ref="materielSelectorPlusRef" @ok="materielBackOk"></materiel-selector-plus>
<client-selector-plus ref="clientSelectorPlusRef" @ok="clientBackOk"></client-selector-plus>
<store-selector-plus ref="storeSelectorPlusRef" @ok="storeBackOk"></store-selector-plus>
</template>
<script setup name="taskDetail">
@ -125,11 +152,17 @@
import { useRoute } from 'vue-router'
import MaterielSelectorPlus from '@/components/Selector/materielSelectorPlus.vue'
import ClientSelectorPlus from '@/components/Selector/clientSelectorPlus.vue'
import StoreSelectorPlus from '@/components/Selector/storeSelectorPlus.vue'
import router from '@/router'
import tool from '@/utils/tool'
import { basicInfoViewFormItems } from '@/views/productionBusiness/inventory/invoice/formFields/detailFields'
import dayjs from "dayjs";
const route = useRoute()
const formRef1 = ref(null)
let extendData = ref([])
let detailData = ref({})
const basicInfoFormItemsRef = ref(basicInfoFormItems)
@ -143,19 +176,21 @@
formRefs.value = [formRef1.value]
fetchData(route.query.type).then((res) => {
if (res) {
detailData.value = res
formData.customerId = res.customerId // id
formData.customerName = res.customerName // id
formData.customerNumber = res.customerNumber //
formData.storeId = res.storeId // id
formData.storeName = res.storeName //
formData.storeNumber = res.storeNumber //
formData.businessDate = dayjs(detailData.value.businessDate).format('YYYY-MM-DD HH:mm:ss')
}
})
if (route.query.type === 'EDIT') {
//
productDetailData.value = await inventoryInvoiceApi.inventoryInvoiceDetailList({
invoiceId: formRefs.value.id
invoiceId: route.query.id
})
}
@ -170,11 +205,32 @@
extendData.value = await getExtendField('MATERIAL')
})
const onSubmitForm = () => {
onSubmit({
isDeep: true,
...formData,
detailList: productDetailData.value
const onSubmitFormBack = () => {
onSubmit(
{
isDeep: true,
...formData,
detailList: productDetailData.value,
id: detailData.value?.id,
},
'/inventory/invoice'
)
}
const onSubmitFormAdd = () => {
onSubmit(
{
isDeep: true,
...formData,
detailList: productDetailData.value,
id: detailData.value?.id,
},
'/inventory/invoice'
).then(() => {
//
router.replace({ path: route.path, query: { type: route.type } }).then(() => {
router.go(0) //
})
})
}
@ -184,7 +240,7 @@
record.barcodeType = unitObj.type
record.barcodeTypeNumber = unitObj.number
if(record.planAmount) {
if (record.planAmount) {
record.basicPlanAmount = parseFloat(record.planAmount * parseFloat(unitObj.unitRate)).toFixed(2)
}
}
@ -223,9 +279,6 @@
productDetailData.value[materielIndex].packageProportion = event.materielSelectedRows[0].packageProportion
productDetailData.value[materielIndex].baseUnitName = event.materielSelectedRows[0].baseUnitName
productDetailData.value[materielIndex].baseUnitId = event.materielSelectedRows[0].baseUnitId
// productDetailData.value[materielIndex].basicPlanAmount = event.materielSelectedRows[0].basicPlanAmount //
// productDetailData.value[materielIndex].planAmount = event.materielSelectedRows[0].planAmount
//
productDetailData.value[materielIndex].unitArr = await handleMaterialPackageData(event.materielSelectedRows[0].id)
@ -260,6 +313,20 @@
formData.customerNumber = event.clientSelectedRows[0].number
}
/**
* 仓库选择器
* */
const storeSelectorPlusRef = ref(null)
const openStore = () => {
storeSelectorPlusRef.value.showOpen()
}
const storeBackOk = (event) => {
formData.storeName = event.clientSelectedRows[0].name
formData.storeId = event.clientSelectedRows[0].id
formData.storeNumber = event.clientSelectedRows[0].number
}
/* =================================== 商品明细 ============================*/
const productDetailData = ref([])
let selectedListRowKeys = ref([])

View File

@ -4,7 +4,7 @@ import { required } from '@/utils/formRules'
const basicInfoFormRules = {
type: [required('请选择类型')],
businessDate: [required('请选择业务日期')],
storeId: [required('请选择仓库')],
storeName: [required('请选择仓库')],
customerName: [required('请选择客户')]
}
@ -50,17 +50,12 @@ const basicInfoFormItems = [
},
{
label: '仓库:',
name: 'storeId',
type: 'a-tree-select',
name: 'storeName',
span: 6,
slotName: 'storeSlot',
isUseSlot: true,
attrs: {
placeholder: '请选择仓库',
treeData: [],
fieldNames: {
children: 'children',
label: 'name',
value: 'id'
}
},
defaultValue: ''
},
@ -114,6 +109,7 @@ const basicInfoFormItems = [
label: '交货地址:',
name: 'deliveryAddress',
type: 'a-input',
span: 12,
attrs: {
placeholder: '请输入交货地址',
allowClear: true
@ -131,6 +127,74 @@ const basicInfoFormItems = [
}
]
const basicInfoViewFormItems = [
{
label: '单据号:',
name: 'billNumber',
span: 1
},
{
label: '业务日期:',
name: 'businessDate',
span: 1
},
{
label: '类型:',
name: 'type',
type: 'dict',
span: 1,
attrs: {
options: 'OUTBOUND_TYPE'
}
},
{
label: '客户:',
name: 'customerName',
span: 1,
},
{
label: '仓库:',
name: 'storeName',
span: 1,
},
{
label: '车牌号:',
name: 'carNumber',
span: 1,
},
{
label: '停车位:',
name: 'parkingSpace',
span: 1,
},
{
label: '业务员:',
name: 'salesman',
span: 1
},
{
label: '收货方:',
name: 'receiveParty',
span: 1
},
{
label: '交货日期:',
name: 'deliveryDate',
span: 1
},
{
label: '交货地址:',
name: 'deliveryAddress',
span: 24
},
{
label: '备注:',
name: 'remarks',
span: 24
}
]
const productDetailFormItems = [
{
title: '序号',
@ -184,4 +248,4 @@ const productDetailFormItems = [
}
]
export { basicInfoFormRules, basicInfoFormItems, productDetailFormItems }
export { basicInfoFormRules, basicInfoFormItems, productDetailFormItems, basicInfoViewFormItems}