From 0a1056b015fa66bfee93b15179265d81d4709cac Mon Sep 17 00:00:00 2001
From: yufei0306 <13417315+yufei0306@user.noreply.gitee.com>
Date: Thu, 28 Mar 2024 19:03:56 +0800
Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=95=B0=E6=8D=AE=E2=80=94?=
=?UTF-8?q?=E2=80=94=E7=89=A9=E6=96=99=E7=AE=A1=E7=90=86=E2=80=94=E2=80=94?=
=?UTF-8?q?=E7=89=A9=E6=96=99=E5=BA=93=E5=8C=BA=E9=85=8D=E7=BD=AE=E7=AE=A1?=
=?UTF-8?q?=E7=90=86=E2=80=94=E2=80=94=E8=AF=A6=E6=83=85=E2=80=94=E2=80=94?=
=?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/Detail/src/Detail.vue | 123 +++++++++++++++++-
.../itemManage/itemarea/index.vue | 4 +-
.../itemManage/itemarea/itemarea.data.ts | 1 +
3 files changed, 124 insertions(+), 4 deletions(-)
diff --git a/src/components/Detail/src/Detail.vue b/src/components/Detail/src/Detail.vue
index 899d5fc31..83abb782f 100644
--- a/src/components/Detail/src/Detail.vue
+++ b/src/components/Detail/src/Detail.vue
@@ -117,6 +117,8 @@
+
+
{
+ const model: Recordable = { ...formModel }
+ schema.map((v) => {
+ // 如果是hidden,就删除对应的值
+ if (v.hidden) {
+ delete model[v.field]
+ } else if (v.component && v.component !== 'Divider') {
+ const hasField = Reflect.has(model, v.field)
+ // 如果先前已经有值存在,则不进行重新赋值,而是采用现有的值
+ model[v.field] = hasField ? model[v.field] : v.value !== void 0 ? v.value : ''
+ }
+ })
+ return model
+}
+const searchTableRef = ref()
+// 如果需要直接打开表格数据表单数据
+const searchTableFormModel = ref({})
+if(props.isOpenSearchTable){
+ searchTableFormModel.value = initModel(props.detailAllSchemas.formSchema, unref(searchTableFormModel))
+}
+const searchTableFormType = ref('') // 表单的类型:create - 新增;update - 修改
+
/** 打开弹窗 */
const formRef = ref()
const titleNameRef = ref()
@@ -511,7 +543,26 @@ const { getList } = tableMethodsRef.value
const buttonBaseClick = (val, item) => {
if (val == 'add') {
// 新增
- openForm('create')
+ if(props.isOpenSearchTable){
+ searchTableFormType.value = 'create'
+ // 如果需要直接打开表格数据
+ searchTableFormModel.value = Object.assign(unref(searchTableFormModel), {
+ masterId: masterParmas.value.masterId,
+ number: masterParmas.value.number
+ })
+ const item = props.detailAllSchemas.formSchema[0]
+ opensearchTable(
+ item.field, item?.componentProps?.searchField,
+ item?.componentProps?.searchTitle,
+ item?.componentProps?.searchAllSchemas,
+ item?.componentProps?.searchPage,
+ item?.componentProps?.searchCondition,
+ item?.componentProps?.multiple,
+ undefined,undefined
+ )
+ }else{
+ openForm('create')
+ }
} else if (val == 'import') {
// 导入
handleImport()
@@ -529,6 +580,48 @@ const buttonBaseClick = (val, item) => {
}
}
+// 直接打开表格数据 --> 对应:isOpenSearchTable === true
+const opensearchTable = (
+ formField,
+ searchField,
+ searchTitle,
+ searchAllSchemas,
+ searchPage,
+ searchCondition,
+ multiple,
+ type,
+ row
+) => {
+ const _searchCondition = {}
+ // 判断查询条件中,是否存在指向主表的数据
+ if (searchCondition && searchCondition.length > 0) {
+ // 转换筛选条件所需
+ for (var i=0; i< searchCondition.length; i++ ) {
+ // 查询条件为主表某字段,需要赋值主表数据,数据来源是详情的,赋值需要从row中获取
+ if (searchCondition[i].isMainValue) {
+ _searchCondition[searchCondition[i].key] = detailData
+ ? detailData.value[searchCondition[i].value]
+ : ''
+ }else{
+ _searchCondition[searchCondition[i].key] = searchCondition[i].value
+ }
+ }
+ }
+ console.log(searchCondition)
+ console.log(_searchCondition)
+ searchTableRef.value.open(
+ searchTitle,
+ searchAllSchemas,
+ searchPage,
+ formField,
+ searchField,
+ multiple,
+ type,
+ row,
+ _searchCondition
+ )
+}
+
// 字段设置 更新主列表字段
// const updataTableColumns = (val) => {
// detailAllSchemas.tableColumns.value = val
@@ -538,7 +631,24 @@ const buttonBaseClick = (val, item) => {
const buttonTableClick = async (val, row) => {
if (val == 'edit') {
// 编辑
- openForm('update', row)
+ if(props.isOpenSearchTable){
+ searchTableFormType.value = 'update'
+ if (row?.id || row?.masterId) {
+ searchTableFormModel.value = Object.assign(unref(searchTableFormModel), row)
+ }
+ const item = props.detailAllSchemas.formSchema[0]
+ opensearchTable(
+ item.field, item?.componentProps?.searchField,
+ item?.componentProps?.searchTitle,
+ item?.componentProps?.searchAllSchemas,
+ item?.componentProps?.searchPage,
+ item?.componentProps?.searchCondition,
+ item?.componentProps?.multiple,
+ undefined,undefined
+ )
+ }else{
+ openForm('update', row)
+ }
} else if (val == 'delete') {
// 删除
handleDelete(row.id)
@@ -573,6 +683,13 @@ const submitForm = async (formType, data) => {
}
}
+
+const searchTableSuccess1 = (formField, searchField, val, formRef) => {
+ searchTableFormModel.value[formField] = val.map(item=>item[searchField]).join(',')
+ console.log('searchTableSuccess1',searchTableFormModel)
+ submitForm(searchTableFormType.value,searchTableFormModel.value)
+ emit('searchTableSuccessDetail', formField, searchField, val, formRef)
+}
// 查询页面返回
const searchTableSuccess = (formField, searchField, val, formRef) => {
emit('searchTableSuccessDetail', formField, searchField, val, formRef)
diff --git a/src/views/wms/basicDataManage/itemManage/itemarea/index.vue b/src/views/wms/basicDataManage/itemManage/itemarea/index.vue
index e78f9d9cb..0a4c6c080 100644
--- a/src/views/wms/basicDataManage/itemManage/itemarea/index.vue
+++ b/src/views/wms/basicDataManage/itemManage/itemarea/index.vue
@@ -63,6 +63,7 @@
@@ -145,7 +147,7 @@ const searchTableSuccessDetail = (formField, searchField, val, formRef ) => {
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
- formRef.setValues(setV)
+ formRef?.setValues(setV)
})
}
diff --git a/src/views/wms/basicDataManage/itemManage/itemarea/itemarea.data.ts b/src/views/wms/basicDataManage/itemManage/itemarea/itemarea.data.ts
index 43e97c5fd..2a0e3bb84 100644
--- a/src/views/wms/basicDataManage/itemManage/itemarea/itemarea.data.ts
+++ b/src/views/wms/basicDataManage/itemManage/itemarea/itemarea.data.ts
@@ -690,6 +690,7 @@ export const ItemareaDetail = useCrudSchemas(reactive([
// labelMessage: '信息提示说明!!!',
componentProps: {
isSearchList: true, // 开启查询弹窗
+ multiple:true,//多选
searchListPlaceholder: '请选择库位代码', // 输入框占位文本
searchField: 'code', // 查询弹窗赋值字段
searchTitle: '库位基础信息', // 查询弹窗标题