tada: 🎉 新增盘点抽屉样式调整,待完善
This commit is contained in:
parent
056672e443
commit
fd0e324bc9
3
src/api/material/api.d.ts
vendored
3
src/api/material/api.d.ts
vendored
@ -146,6 +146,9 @@ declare namespace material {
|
|||||||
/** 物料ids */
|
/** 物料ids */
|
||||||
ids?: Array<string>
|
ids?: Array<string>
|
||||||
|
|
||||||
|
/** 物料类型 */
|
||||||
|
types?: Array<string>
|
||||||
|
|
||||||
/** 审核意见 */
|
/** 审核意见 */
|
||||||
reviewRemark?: string
|
reviewRemark?: string
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { FormItem, FormConfig } from '@/components/form-render/form-render-types'
|
import { FormItem, FormConfig } from '@/components/form-render/form-render-types'
|
||||||
|
import { TreeDataNode } from 'ant-design-vue/es/vc-tree-select/interface'
|
||||||
|
|
||||||
export const config: FormConfig = {
|
export const config: FormConfig = {
|
||||||
layout: 'horizontal',
|
layout: 'horizontal',
|
||||||
@ -17,6 +18,7 @@ export const formItems = (
|
|||||||
materialOptions: Array<{ value: string | undefined; label: string | undefined }>,
|
materialOptions: Array<{ value: string | undefined; label: string | undefined }>,
|
||||||
required: boolean,
|
required: boolean,
|
||||||
persons: Array<{ value: string | undefined; label: string | undefined }>,
|
persons: Array<{ value: string | undefined; label: string | undefined }>,
|
||||||
|
types: Array<TreeDataNode>,
|
||||||
): FormItem[] => [
|
): FormItem[] => [
|
||||||
{
|
{
|
||||||
group: 'form',
|
group: 'form',
|
||||||
@ -32,14 +34,30 @@ export const formItems = (
|
|||||||
size: 'default',
|
size: 'default',
|
||||||
optionType: 'button',
|
optionType: 'button',
|
||||||
buttonStyle: 'solid',
|
buttonStyle: 'solid',
|
||||||
defaultValue: 'ALL',
|
defaultValue: 'SCAN',
|
||||||
options: [
|
options: [
|
||||||
{ value: 'ALL', label: '全部盘点' },
|
{ value: 'SCAN', label: '扫码盘点' },
|
||||||
{ value: 'PARTIAL', label: '部分盘点' },
|
{ value: 'PARTIAL', label: '人工盘点' },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
rules: [],
|
rules: [],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
type: 'tree-select',
|
||||||
|
group: 'form',
|
||||||
|
config: {
|
||||||
|
label: '物料类型选择',
|
||||||
|
name: 'types',
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
properties: {
|
||||||
|
size: 'default',
|
||||||
|
placeholder: '请选择物料类型',
|
||||||
|
multiple: true,
|
||||||
|
treeData: types,
|
||||||
|
},
|
||||||
|
rules: [],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
group: 'form',
|
group: 'form',
|
||||||
type: 'select',
|
type: 'select',
|
||||||
@ -49,6 +67,7 @@ export const formItems = (
|
|||||||
hasFeedback: false,
|
hasFeedback: false,
|
||||||
label: '物料选择',
|
label: '物料选择',
|
||||||
name: 'ids',
|
name: 'ids',
|
||||||
|
required: true,
|
||||||
},
|
},
|
||||||
properties: {
|
properties: {
|
||||||
size: 'default',
|
size: 'default',
|
||||||
|
@ -78,7 +78,6 @@
|
|||||||
v-model="applyForm"
|
v-model="applyForm"
|
||||||
:form-items="items"
|
:form-items="items"
|
||||||
:config="formConfig"
|
:config="formConfig"
|
||||||
:disabled-fields="disabledFields"
|
|
||||||
title="扫码盘点"
|
title="扫码盘点"
|
||||||
@ok="doSave"
|
@ok="doSave"
|
||||||
/>
|
/>
|
||||||
@ -121,6 +120,7 @@
|
|||||||
import { useUserStore } from '@/stores/user'
|
import { useUserStore } from '@/stores/user'
|
||||||
import scanForm from '../component/scan-form.vue'
|
import scanForm from '../component/scan-form.vue'
|
||||||
import resultForm from './result-form.vue'
|
import resultForm from './result-form.vue'
|
||||||
|
import { TreeDataNode } from 'ant-design-vue/es/vc-tree-select/interface'
|
||||||
|
|
||||||
const searchKey = ref('')
|
const searchKey = ref('')
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
@ -135,6 +135,7 @@
|
|||||||
applyDate: dayjs() + '',
|
applyDate: dayjs() + '',
|
||||||
confirm: false,
|
confirm: false,
|
||||||
reviewResult: 'WAIT_SCAN',
|
reviewResult: 'WAIT_SCAN',
|
||||||
|
types: [],
|
||||||
})
|
})
|
||||||
const msg = ref()
|
const msg = ref()
|
||||||
const totalValue = ref(0) // 盘点总值
|
const totalValue = ref(0) // 盘点总值
|
||||||
@ -147,14 +148,6 @@
|
|||||||
const materialList = ref<Array<{ value: string | undefined; label: string | undefined }>>([])
|
const materialList = ref<Array<{ value: string | undefined; label: string | undefined }>>([])
|
||||||
const personList = ref<Array<{ value: string | undefined; label: string | undefined }>>([])
|
const personList = ref<Array<{ value: string | undefined; label: string | undefined }>>([])
|
||||||
const required = ref(true)
|
const required = ref(true)
|
||||||
api.materialApi.material.all({}, (data) => {
|
|
||||||
materialList.value = data.map((item) => {
|
|
||||||
return {
|
|
||||||
value: item?.id + '',
|
|
||||||
label: item?.name,
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
api.aclApi.user.all((data) => {
|
api.aclApi.user.all((data) => {
|
||||||
personList.value = data.map((item) => {
|
personList.value = data.map((item) => {
|
||||||
return {
|
return {
|
||||||
@ -164,19 +157,48 @@
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
//是否必填
|
// //是否必填
|
||||||
const disabledFields = computed(() => {
|
// const disabledFields = computed(() => {
|
||||||
return applyForm.value?.auditType === 'ALL' ? ['ids'] : []
|
// return applyForm.value?.auditType === 'ALL' ? ['ids'] : []
|
||||||
})
|
// })
|
||||||
|
|
||||||
// 监听盘点类型是否时部分盘点,部分盘点时必填
|
// 监听选择类型后查询物料
|
||||||
watch(applyForm, () => {
|
watch(
|
||||||
if (applyForm.value && applyForm.value.auditType === 'ALL') {
|
applyForm,
|
||||||
required.value = false
|
() => {
|
||||||
} else {
|
if (applyForm.value && applyForm.value.types && applyForm.value.types.length > 0) {
|
||||||
required.value = true
|
getMaterialList()
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
immediate: true,
|
||||||
|
deep: true,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
// 物料类型树
|
||||||
|
const types = ref<Array<TreeDataNode>>([])
|
||||||
|
api.materialApi.type.trees((data) => {
|
||||||
|
types.value = children(data)
|
||||||
})
|
})
|
||||||
|
const children = (res: Array<material.TypeTree>): Array<TreeDataNode> => {
|
||||||
|
return res.map((areaTree) => ({
|
||||||
|
label: areaTree.label,
|
||||||
|
value: areaTree.value,
|
||||||
|
children: areaTree.children ? children(areaTree.children) : [],
|
||||||
|
key: areaTree.value,
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
const getMaterialList = async () => {
|
||||||
|
await api.materialApi.material.all({ type: '' }, (data) => {
|
||||||
|
materialList.value = data.map((item) => {
|
||||||
|
return {
|
||||||
|
value: item?.id + '',
|
||||||
|
label: item?.name,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
//抽屉组件
|
//抽屉组件
|
||||||
const formDrawer = ref<typeof FormDrawer>()
|
const formDrawer = ref<typeof FormDrawer>()
|
||||||
@ -186,7 +208,7 @@
|
|||||||
//表单配置
|
//表单配置
|
||||||
const items = computed(() => {
|
const items = computed(() => {
|
||||||
//required 参数未生效
|
//required 参数未生效
|
||||||
return formItems(materialList.value, required.value, personList.value)
|
return formItems(materialList.value, required.value, personList.value, types.value)
|
||||||
})
|
})
|
||||||
// 加载数据的方法
|
// 加载数据的方法
|
||||||
const loadData = async (page = 1, size = 10) => {
|
const loadData = async (page = 1, size = 10) => {
|
||||||
|
@ -59,8 +59,8 @@ export default defineConfig(({ mode }) => {
|
|||||||
open: true,
|
open: true,
|
||||||
proxy: {
|
proxy: {
|
||||||
'/api': {
|
'/api': {
|
||||||
// target: 'https://ims.riemann.tech/api/',
|
target: 'https://ims.riemann.tech/api/',
|
||||||
target: 'http://127.0.0.1:8888',
|
// target: 'http://127.0.0.1:8888',
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
rewrite: (path) => path.replace(/^\/api/, ''),
|
rewrite: (path) => path.replace(/^\/api/, ''),
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user