diff --git a/src/components/BasicForm/src/BasicForm.vue b/src/components/BasicForm/src/BasicForm.vue
index 01f94218b..4d039ba7b 100644
--- a/src/components/BasicForm/src/BasicForm.vue
+++ b/src/components/BasicForm/src/BasicForm.vue
@@ -1,5 +1,10 @@
-
-
+
-
+
+
@@ -53,6 +73,7 @@ import { SearchTable } from '@/components/SearchTable'
import * as defaultButtons from '@/utils/disposition/defaultButtons'
import ButtonBase from '@/components/XButton/src/ButtonBase.vue'
import TableForm from '@/components/TableForm/src/TableForm.vue'
+import TableFormCountPlan from '@/components/TableFormCountPlan/src/TableFormCountPlan.vue'
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
const props = defineProps({
@@ -143,6 +164,11 @@ const props = defineProps({
type: String,
required: false,
default: ''
+ },
+ countScopeType: {
+ type: Array,
+ required: false,
+ default: null
}
})
@@ -156,7 +182,9 @@ const formType = ref('') // 表单的类型:create - 新增;update - 修改
const formRef = ref() // 表单 Ref
const formSchema = ref(props.formAllSchemas?.formSchema)
-console.log('props.formAllSchemas',props.formAllSchemas)
+const tableAllSchemas = ref(props.tableAllSchemas)
+const tableFormRules = ref(props.tableFormRules)
+console.log('tableAllSchemas', tableAllSchemas.value)
/** 弹层操作 */
// formField form表单中的字段
@@ -179,7 +207,7 @@ const opensearchTable = (
// 判断查询条件中,是否存在指向主表的数据
if (searchCondition && searchCondition.length > 0) {
// 转换筛选条件所需
- let filters:any[] = []
+ let filters: any[] = []
searchCondition.forEach((item) => {
// 查询条件为主表某字段,需要赋值主表数据,数据来源是详情的,赋值需要从row中获取
// 20231127 row[item.value]?row[item.value] 修改为 row?row[item.value] 返回'null' 为了查询不到任何数据
@@ -348,14 +376,15 @@ const emit = defineEmits([
'searchTableSuccess',
'opensearchTable',
'submitForm',
- 'selectChange'
+ 'selectChange',
+ 'tableFormChange'
])
//普通下拉改变事件
-const formSelectChange = (field, val,row) => {
- emit('formSelectChange', field, val,row)
+const formSelectChange = (field, val, row) => {
+ emit('formSelectChange', field, val, row)
}
-const formSelectvVisibleChange = (field, val,row) => {
- emit('formSelectvVisibleChange', field, val,row)
+const formSelectvVisibleChange = (field, val, row) => {
+ emit('formSelectvVisibleChange', field, val, row)
}
// 点击selection框
const tableSelectionChange = (val) => {
@@ -385,8 +414,6 @@ const handleAddTable = () => {
}
// 输入框聚焦
const inpuFocus = (headerItem, row, index) => {
- console.log(headerItem.tableForm.multiple)
-
opensearchTable(
headerItem.field,
headerItem.tableForm.searchField,
@@ -399,16 +426,56 @@ const inpuFocus = (headerItem, row, index) => {
row
)
}
+
// 修改盘点类型
-const selectChange=((field,val)=>{
-emit('selectChange',field,val)
-})
+const selectChange = (field, val) => {
+ emit('selectChange', field, val)
+}
+
+const tableFormChange = (field, val, row) => {
+ emit('tableFormChange', field, val, row)
+}
diff --git a/src/components/Detail/src/Detail.vue b/src/components/Detail/src/Detail.vue
index a221dd247..0eddf4f7d 100644
--- a/src/components/Detail/src/Detail.vue
+++ b/src/components/Detail/src/Detail.vue
@@ -46,7 +46,7 @@
:columns="2"
/>
+
@@ -180,7 +181,13 @@ const props = defineProps({
type: Function,
required: false,
default: null
- }
+ },
+ // 来源 countPlan盘点计划进入
+ fromeWhere: {
+ type: String,
+ required: false,
+ default: ''
+ },
})
const isShowDrawer = ref(false)
const detailLoading = ref(false)
diff --git a/src/components/DetailCountPlan/index.ts b/src/components/DetailCountPlan/index.ts
new file mode 100644
index 000000000..2acd32a21
--- /dev/null
+++ b/src/components/DetailCountPlan/index.ts
@@ -0,0 +1,3 @@
+import DetailCountPlan from './src/DetailCountPlan.vue'
+
+export { DetailCountPlan }
diff --git a/src/components/DetailCountPlan/src/DetailCountPlan.vue b/src/components/DetailCountPlan/src/DetailCountPlan.vue
new file mode 100644
index 000000000..80a59f6e2
--- /dev/null
+++ b/src/components/DetailCountPlan/src/DetailCountPlan.vue
@@ -0,0 +1,499 @@
+
+
+
+
+
+ {{ titleValueRef }} {{ titleNameRef }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/TableForm/src/TableForm.vue b/src/components/TableForm/src/TableForm.vue
index 527d2ad9e..2fbdd83eb 100644
--- a/src/components/TableForm/src/TableForm.vue
+++ b/src/components/TableForm/src/TableForm.vue
@@ -112,8 +112,7 @@
:allow-create="headerItem?.tableForm.allowCreate"
style="width: 100%"
:placeholder="headerItem?.tableForm?.placeholder || '请选择' + headerItem.label"
- @change="formSelectChange(headerItem.field, $event,row)"
- @visible-change="formSelectvVisibleChange(headerItem.field, $event,row)">
+ @change="formSelectChange(headerItem.field, $event,row)">
{
const formSelectChange = (field, val,row) => {
emit('formSelectChange', field, val,row)
}
-const formSelectvVisibleChange = (field, val,row) => {
- emit('formSelectvVisibleChange', field, val,row)
-}
+
// 点击selection框
const tableSelectionChange = (val) => {
emit('tableSelectionChange', val)
@@ -381,6 +377,7 @@ const TableBaseForm_Ref = ref()
*/
const validateForm = () => {
+ console.log(TableBaseForm_Ref.value)
let _lists = TableBaseForm_Ref.value?.map(v => v.validate())
return Promise.all(_lists).then(() => {
return true
diff --git a/src/components/TableFormCountPlan/index.ts b/src/components/TableFormCountPlan/index.ts
new file mode 100644
index 000000000..2f51d1abc
--- /dev/null
+++ b/src/components/TableFormCountPlan/index.ts
@@ -0,0 +1,3 @@
+import TableFormCountPlan from './src/TableFormCountPlan.vue'
+
+export { TableFormCountPlan }
diff --git a/src/components/TableFormCountPlan/src/TableFormCountPlan.vue b/src/components/TableFormCountPlan/src/TableFormCountPlan.vue
new file mode 100644
index 000000000..12bc0bf5a
--- /dev/null
+++ b/src/components/TableFormCountPlan/src/TableFormCountPlan.vue
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/wms/countManage/count/countPlanMain/countPlanMain.data.ts b/src/views/wms/countManage/count/countPlanMain/countPlanMain.data.ts
index 92dd2e5d5..22be31675 100644
--- a/src/views/wms/countManage/count/countPlanMain/countPlanMain.data.ts
+++ b/src/views/wms/countManage/count/countPlanMain/countPlanMain.data.ts
@@ -648,7 +648,6 @@ export const CountPlanDetail = useCrudSchemas(([
width: 300
},
tableForm: {
- type: 'InputString',
width: '300',
}
},
@@ -665,19 +664,10 @@ export const CountPlanDetail = useCrudSchemas(([
}
]))
export const CountPlanDetailRules = reactive({
- available: [
- { required: true, message: '请选择是否可用', trigger: 'change' }
- ],
- uom: [
- { required: true, message: '请选择计量单位', trigger: 'change' }
- ],
- planQty: [
- { required: true, message: '请输入计划数量', trigger: 'blur' }
- ],
- number: [
- { required: true, message: '请输入单据号', trigger: 'blur' }
+ type: [
+ { required: true, message: '请选择盘点范围类型', trigger: 'change' }
],
- itemCode: [
- { required: true, message: '请选择物品代码', trigger: 'change' }
+ value: [
+ { required: true, message: '请选择盘点范围值', trigger: 'change' }
],
})
\ No newline at end of file
diff --git a/src/views/wms/countManage/count/countPlanMain/index.vue b/src/views/wms/countManage/count/countPlanMain/index.vue
index ab9350ad8..c5363524f 100644
--- a/src/views/wms/countManage/count/countPlanMain/index.vue
+++ b/src/views/wms/countManage/count/countPlanMain/index.vue
@@ -57,6 +57,7 @@
:apiUpdate="CountPlanMainApi.updateCountPlanMain"
:apiCreate="CountPlanMainApi.createCountPlanMain"
fromeWhere="countPlan"
+ :countScopeType="getStrDictOptions(DICT_TYPE.COUNT_SCOPE_TYPE)"
@handleAddTable="handleAddTable"
@handleDeleteTable="handleDeleteTable"
@searchTableSuccess="searchTableSuccess"
@@ -64,6 +65,7 @@
@formSelectChange="formSelectChange"
@formSelectvVisibleChange="formSelectvVisibleChange"
@selectChange="selectChange"
+ @tableFormChange="tableFormChange"
/>
@@ -79,6 +81,7 @@
:apiPage="CountPlanDetailApi.getCountPlanDetailPage"
:apiDelete="CountPlanDetailApi.deleteCountPlanDetail"
:Echo="Echo"
+ fromeWhere="countPlan"
/>
@@ -112,6 +115,7 @@ import * as defaultButtons from '@/utils/disposition/defaultButtons'
import * as ItembasicApi from '@/api/wms/itembasic'
import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data'
import { DICT_TYPE, getIntDictOptions, getStrDictOptions } from '@/utils/dict'
+console.log('CountPlanDetail.allSchemas', CountPlanDetail.allSchemas)
// 盘点计划主
defineOptions({ name: 'CountPlanMain' })
@@ -290,7 +294,10 @@ const buttonTableClick = async (val, row) => {
/** 添加/修改操作 */
const formRef = ref()
const openForm = async (type: string, row?: number) => {
- tableData.value = [] // 重置明细数据
+ tableData.value = [ {
+ type: '',
+ value: ''
+ }] // 重置明细数据
formRef.value.open(type, row)
getOwnerAllList()
@@ -341,16 +348,22 @@ const handleExport = async () => {
/**
* tableForm方法
*/
-const tableFormKeys = {}
+let tableFormKeys = {}
CountPlanDetail.allSchemas.tableFormColumns.forEach((item) => {
tableFormKeys[item.field] = item.default ? item.default : ''
})
-const tableData = ref([])
+const tableData = ref([{
+ type: '',
+ value: ''
+ }])
// 添加明细
const handleAddTable = () => {
- console.log(tableFormKeys)
- tableFormKeys.formType = 'Select'
+ // tableFormKeys.formType=''
+ tableFormKeys = {
+ type: '',
+ value: ''
+ }
tableData.value.push(JSON.parse(JSON.stringify(tableFormKeys)))
}
// 删除明细
@@ -360,7 +373,13 @@ const handleDeleteTable = (item, index) => {
// 主子数据 提交
const submitForm = async (formType, data) => {
- data.subList = tableData.value // 拼接子表数据参数
+ data.subList = tableData.value.map(item=>{
+ return{
+ type:item.type,
+ value:item.value,
+ }
+ }) // 拼接子表数据参数
+ console.log(tableData.value)
try {
if (formType === 'create') {
await CountPlanMainApi.createCountPlanMain(data)
@@ -404,7 +423,6 @@ const searchFormClick = (searchData) => {
}
// 选择盘点类型的时候针对限值的操作
const selectChange = (field, val) => {
- console.log(val)
if (field == 'type') {
if (val == 'DYNAMIC') {
CountPlanMain.allSchemas.formSchema[3].label = '限值(%)'
@@ -421,74 +439,71 @@ const selectChange = (field, val) => {
}
}
}
-let valueList = []
// 选择盘点范围类型
-const formSelectChange = async (field, val, row) => {
- console.log(row[field])
+const tableFormChange = async (field, val, row) => {
console.log(field)
console.log(val)
if (field == 'type') {
row.value = ''
- if (row.type == 'OWNER' || row.type == 'SUPPLIER'|| row.type == 'CUSTOMER'|| row.type == 'ABC'|| row.type == 'ITEMS_TYPE'|| row.type == 'ITEMS_GROUP'||row.type == 'ITEMS_CODE'||row.type == 'WAREHOUSE_CODE'||row.type == 'AREABASIC_CODE'||row.type == 'LOCATIONGROUP_CODE'||row.type == 'LOCATION_CODE') {
+ if (
+ row.type == 'OWNER' ||
+ row.type == 'SUPPLIER' ||
+ row.type == 'CUSTOMER' ||
+ row.type == 'ABC' ||
+ row.type == 'ITEMS_TYPE' ||
+ row.type == 'ITEMS_GROUP' ||
+ row.type == 'ITEMS_CODE' ||
+ row.type == 'WAREHOUSE_CODE' ||
+ row.type == 'AREABASIC_CODE' ||
+ row.type == 'LOCATIONGROUP_CODE' ||
+ row.type == 'LOCATION_CODE'
+ ) {
+ row.formType = 'Select'
+ switch (row.type) {
+ case 'OWNER':
+ row.initOptions = ownerAllList.value
+ break
+ case 'SUPPLIER':
+ row.initOptions = supplierAllList.value
+ break
+ case 'CUSTOMER':
+ row.initOptions = customerAllList.value
+ break
+ case 'ABC':
+ row.initOptions = getStrDictOptions(DICT_TYPE.ABC_CLASS)
+ break
+ case 'ITEMS_TYPE':
+ row.initOptions = getStrDictOptions(DICT_TYPE.ITEM_TYPE)
+ break
+ case 'ITEMS_GROUP':
+ row.initOptions = getStrDictOptions(DICT_TYPE.ITEM_GROUP)
+ break
+ case 'ITEMS_CODE':
+ row.initOptions = itembasicAllList.value
+ break
+ case 'WAREHOUSE_CODE':
+ row.initOptions = warehouseAllList.value
+ break
+ case 'AREABASIC_CODE':
+ row.initOptions = areaAllList.value
+ break
+ case 'LOCATIONGROUP_CODE':
+ row.initOptions = locationgroupAllList.value
+ break
+ case 'LOCATION_CODE':
+ row.initOptions = locationAllList.value
+ break
+ }
+ } else if (row.type == 'PROJECT') {
row.formType = 'InputString'
- // row.initOptions = valueList
- }else if(row.type == 'PROJECT'){
- // row = {
- // type: 'InputString',
- // width: '300',
- // initOptions: valueList
- // }
}
}
}
-const formSelectvVisibleChange = async (field, val, row) => {
- console.log(getStrDictOptions(DICT_TYPE.ABC_CLASS))
- switch (row.type) {
- case 'OWNER':
- valueList = ownerAllList.value
- break;
- case 'SUPPLIER':
- valueList = supplierAllList.value
- break;
- case 'CUSTOMER':
- valueList = customerAllList.value
- break;
- case 'ABC':
- valueList = getStrDictOptions(DICT_TYPE.ABC_CLASS)
- break;
- case 'ITEMS_TYPE':
- valueList = getStrDictOptions(DICT_TYPE.ITEM_TYPE)
- break;
- case 'ITEMS_GROUP':
- valueList = getStrDictOptions(DICT_TYPE.ITEM_GROUP)
- break;
- case 'ITEMS_CODE':
- valueList = itembasicAllList.value
- break;
- case 'WAREHOUSE_CODE':
- valueList = warehouseAllList.value
- break
- case 'AREABASIC_CODE':
- valueList = areaAllList.value
- break
- case 'LOCATIONGROUP_CODE':
- valueList = locationgroupAllList.value
- break
- case 'LOCATION_CODE':
- valueList = locationAllList.value
- break
- }
- CountPlanDetail.allSchemas.tableFormColumns[1].tableForm = {
- type: 'Select',
- width: '300',
- initOptions: valueList
- }
-}
const ownerAllList = ref()
const supplierAllList = ref()
const customerAllList = ref()
-const itembasicAllList = ref()
+const itembasicAllList = ref()
const warehouseAllList = ref()
const areaAllList = ref()
const locationgroupAllList = ref()
@@ -535,7 +550,7 @@ const getItembasicAllList = async () => {
}
// 获取仓库列表
const getWarehouseAllList = async () => {
- await WarehouseApi.getWarehouseList({available:'TRUE'}).then((res) => {
+ await WarehouseApi.getWarehouseList({ available: 'TRUE' }).then((res) => {
res.forEach((element) => {
element.value = element.code
element.label = element.name
@@ -545,7 +560,7 @@ const getWarehouseAllList = async () => {
}
// 获取库区列表
const getAreaAllList = async () => {
- await AreaApi.getAreaList({available:'TRUE'}).then((res) => {
+ await AreaApi.getAreaList({ available: 'TRUE' }).then((res) => {
res.forEach((element) => {
element.value = element.code
element.label = element.name
@@ -555,7 +570,7 @@ const getAreaAllList = async () => {
}
// 获取库位组列表
const getLocationgroupAllList = async () => {
- await LocationgroupApi.getLocationgroupList({available:'TRUE'}).then((res) => {
+ await LocationgroupApi.getLocationgroupList({ available: 'TRUE' }).then((res) => {
res.forEach((element) => {
element.value = element.code
element.label = element.name
@@ -565,7 +580,7 @@ const getLocationgroupAllList = async () => {
}
// 获取库位列表
const getLocationAllList = async () => {
- await LocationpApi.getLocationList({available:'TRUE'}).then((res) => {
+ await LocationpApi.getLocationList({ available: 'TRUE' }).then((res) => {
res.forEach((element) => {
element.value = element.code
element.label = element.name