Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
weiqiao-vue
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
金民
weiqiao-vue
Commits
b5c09c01
Commit
b5c09c01
authored
Dec 30, 2025
by
史雅文
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
生产计划显示字段
parent
ac30f4d4
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
211 additions
and
211 deletions
+211
-211
xjrsoft-vue3/src/views/scgl/scjh/components/Form.vue
+211
-211
No files found.
xjrsoft-vue3/src/views/scgl/scjh/components/Form.vue
View file @
b5c09c01
...
@@ -6,232 +6,232 @@
...
@@ -6,232 +6,232 @@
:formProps=
"data.formDataProps"
:formProps=
"data.formDataProps"
:formModel=
"state.formModel"
:formModel=
"state.formModel"
:isWorkFlow=
"props.fromPage!=FromPageType.MENU"
:isWorkFlow=
"props.fromPage!=FromPageType.MENU"
:isCamelCase=
"true"
:isCamelCase=
"true"
@
model-change=
"handleChange"
@
model-change=
"handleChange"
/>
/>
</div>
</div>
</
template
>
</
template
>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
reactive
,
ref
,
onMounted
,
nextTick
,
watch
}
from
'vue'
;
import
{
reactive
,
ref
,
onMounted
,
nextTick
,
watch
}
from
'vue'
;
import
{
formProps
,
formEventConfigs
}
from
'./config'
;
import
{
formProps
,
formEventConfigs
}
from
'./config'
;
import
SimpleForm
from
'/@/components/SimpleForm/src/SimpleForm.vue'
;
import
SimpleForm
from
'/@/components/SimpleForm/src/SimpleForm.vue'
;
import
{
addMesProductionPlan
,
getMesProductionPlan
,
updateMesProductionPlan
}
from
'/@/api/scgl/scjh'
;
import
{
addMesProductionPlan
,
getMesProductionPlan
,
updateMesProductionPlan
}
from
'/@/api/scgl/scjh'
;
import
{
cloneDeep
,
isString
}
from
'lodash-es'
;
import
{
cloneDeep
,
isString
}
from
'lodash-es'
;
import
{
FormDataProps
}
from
'/@/components/Designer/src/types'
;
import
{
FormDataProps
}
from
'/@/components/Designer/src/types'
;
import
{
usePermission
}
from
'/@/hooks/web/usePermission'
;
import
{
usePermission
}
from
'/@/hooks/web/usePermission'
;
import
CustomButtonModal
from
'/@/components/Form/src/components/CustomButtonModal.vue'
;
import
CustomButtonModal
from
'/@/components/Form/src/components/CustomButtonModal.vue'
;
import
{
FromPageType
}
from
'/@/enums/workflowEnum'
;
import
{
FromPageType
}
from
'/@/enums/workflowEnum'
;
import
{
createFormEvent
,
getFormDataEvent
,
loadFormEvent
,
submitFormEvent
,}
from
'/@/hooks/web/useFormEvent'
;
import
{
createFormEvent
,
getFormDataEvent
,
loadFormEvent
,
submitFormEvent
,}
from
'/@/hooks/web/useFormEvent'
;
import
{
changeWorkFlowForm
,
changeSchemaDisabled
}
from
'/@/hooks/web/useWorkFlowForm'
;
import
{
changeWorkFlowForm
,
changeSchemaDisabled
}
from
'/@/hooks/web/useWorkFlowForm'
;
import
{
WorkFlowFormParams
}
from
'/@/model/workflow/bpmnConfig'
;
import
{
WorkFlowFormParams
}
from
'/@/model/workflow/bpmnConfig'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
useRouter
}
from
'vue-router'
;
const
{
filterFormSchemaAuth
}
=
usePermission
();
const
RowKey
=
'id'
;
const
{
filterFormSchemaAuth
}
=
usePermission
();
const
emits
=
defineEmits
([
'changeUploadComponentIds'
,
'loadingCompleted'
,
'update:value'
]);
const
props
=
defineProps
({
fromPage
:
{
type
:
Number
,
default
:
FromPageType
.
MENU
,
},
});
const
systemFormRef
=
ref
();
const
data
:
{
formDataProps
:
FormDataProps
}
=
reactive
({
formDataProps
:
cloneDeep
(
formProps
),
});
const
state
=
reactive
({
formModel
:
{},
formInfo
:{
formId
:
''
,
formName
:
''
}
});
const
{
currentRoute
}
=
useRouter
();
watch
(
()
=>
state
.
formModel
,
(
val
)
=>
{
emits
(
'update:value'
,
val
);
},
{
deep
:
true
,
},
);
onMounted
(
async
()
=>
{
try
{
if
(
props
.
fromPage
==
FromPageType
.
MENU
)
{
setMenuPermission
();
if
(
currentRoute
.
value
.
meta
){
state
.
formInfo
.
formName
=
currentRoute
.
value
.
meta
.
title
&&
isString
(
currentRoute
.
value
.
meta
.
title
)?
currentRoute
.
value
.
meta
.
title
:
''
;
state
.
formInfo
.
formId
=
currentRoute
.
value
.
meta
.
formId
&&
isString
(
currentRoute
.
value
.
meta
.
formId
)?
currentRoute
.
value
.
meta
.
formId
:
''
;
}
await
createFormEvent
(
formEventConfigs
,
state
.
formModel
,
systemFormRef
.
value
,
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:初始化表单
await
nextTick
();
await
loadFormEvent
(
formEventConfigs
,
state
.
formModel
,
systemFormRef
.
value
,
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:加载表单
}
else
if
(
props
.
fromPage
==
FromPageType
.
FLOW
)
{
emits
(
'loadingCompleted'
);
//告诉系统表单已经加载完毕
// loadingCompleted后 工作流页面直接利用Ref调用setWorkFlowForm方法
}
else
if
(
props
.
fromPage
==
FromPageType
.
PREVIEW
)
{
// 预览 无需权限,表单事件也无需执行
}
else
if
(
props
.
fromPage
==
FromPageType
.
DESKTOP
)
{
// 桌面设计 表单事件需要执行
emits
(
'loadingCompleted'
);
//告诉系统表单已经加载完毕
await
createFormEvent
(
formEventConfigs
,
state
.
formModel
,
systemFormRef
.
value
,
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:初始化表单
await
loadFormEvent
(
formEventConfigs
,
state
.
formModel
,
systemFormRef
.
value
,
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:加载表单
}
}
catch
(
error
)
{}
});
// 根据菜单页面权限,设置表单属性(必填,禁用,显示)
function
setMenuPermission
()
{
data
.
formDataProps
.
schemas
=
filterFormSchemaAuth
(
data
.
formDataProps
.
schemas
!
);
}
// 校验form 通过返回表单数据
const
RowKey
=
'id'
;
async
function
validate
()
{
const
emits
=
defineEmits
([
'changeUploadComponentIds'
,
'loadingCompleted'
,
'update:value'
]);
let
values
=
[];
const
props
=
defineProps
({
try
{
fromPage
:
{
values
=
await
systemFormRef
.
value
?.
validate
();
type
:
Number
,
//添加隐藏组件
default
:
FromPageType
.
MENU
,
if
(
data
.
formDataProps
.
hiddenComponent
?.
length
)
{
},
data
.
formDataProps
.
hiddenComponent
.
forEach
((
component
)
=>
{
});
values
[
component
.
bindField
]
=
component
.
value
;
const
systemFormRef
=
ref
();
});
const
data
:
{
formDataProps
:
FormDataProps
}
=
reactive
({
}
formDataProps
:
cloneDeep
(
formProps
),
}
finally
{
});
}
const
state
=
reactive
({
return
values
;
formModel
:
{},
}
formInfo
:{
formId
:
''
,
formName
:
''
}
// 根据行唯一ID查询行数据,并设置表单数据 【编辑】
});
async
function
setFormDataFromId
(
rowId
)
{
const
{
currentRoute
}
=
useRouter
();
try
{
watch
(
const
record
=
await
getMesProductionPlan
(
rowId
);
()
=>
state
.
formModel
,
// 处理 mesProductionPlanProductList 字段映射
(
val
)
=>
{
if
(
record
.
mesProductionPlanProductList
&&
Array
.
isArray
(
record
.
mesProductionPlanProductList
))
{
emits
(
'update:value'
,
val
);
record
.
mesProductionPlanProductList
=
record
.
mesProductionPlanProductList
.
map
((
item
)
=>
{
},
return
{
{
...
item
,
deep
:
true
,
wuLiaoBianHao8001
:
item
.
cpbh
||
item
.
wuLiaoBianHao8001
,
// 物料编号
},
naBuDaiMa1765
:
item
.
nbdm
||
item
.
naBuDaiMa1765
,
// 内部代码
);
xingHao5094
:
item
.
xh
||
item
.
xingHao5094
,
// 型号
heJinZhuangTai4056
:
item
.
hjzt
||
item
.
heJinZhuangTai4056
,
// 合金状态 (兼容 hzjt 和 hjzt)
onMounted
(
async
()
=>
{
'guiGe(ChiCun)9562'
:
item
.
gg
||
item
[
'guiGe(ChiCun)9562'
],
// 规格(尺寸)
try
{
};
if
(
props
.
fromPage
==
FromPageType
.
MENU
)
{
});
setMenuPermission
();
if
(
currentRoute
.
value
.
meta
){
state
.
formInfo
.
formName
=
currentRoute
.
value
.
meta
.
title
&&
isString
(
currentRoute
.
value
.
meta
.
title
)?
currentRoute
.
value
.
meta
.
title
:
''
;
state
.
formInfo
.
formId
=
currentRoute
.
value
.
meta
.
formId
&&
isString
(
currentRoute
.
value
.
meta
.
formId
)?
currentRoute
.
value
.
meta
.
formId
:
''
;
}
}
setFieldsValue
(
record
);
await
createFormEvent
(
formEventConfigs
,
state
.
formModel
,
state
.
formModel
=
record
;
systemFormRef
.
value
,
await
getFormDataEvent
(
formEventConfigs
,
state
.
formModel
,
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:初始化表单
await
nextTick
();
await
loadFormEvent
(
formEventConfigs
,
state
.
formModel
,
systemFormRef
.
value
,
systemFormRef
.
value
,
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:获取表单数据
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:加载表单
}
catch
(
error
)
{
}
else
if
(
props
.
fromPage
==
FromPageType
.
FLOW
)
{
emits
(
'loadingCompleted'
);
//告诉系统表单已经加载完毕
// loadingCompleted后 工作流页面直接利用Ref调用setWorkFlowForm方法
}
else
if
(
props
.
fromPage
==
FromPageType
.
PREVIEW
)
{
// 预览 无需权限,表单事件也无需执行
}
else
if
(
props
.
fromPage
==
FromPageType
.
DESKTOP
)
{
// 桌面设计 表单事件需要执行
emits
(
'loadingCompleted'
);
//告诉系统表单已经加载完毕
await
createFormEvent
(
formEventConfigs
,
state
.
formModel
,
systemFormRef
.
value
,
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:初始化表单
await
loadFormEvent
(
formEventConfigs
,
state
.
formModel
,
systemFormRef
.
value
,
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:加载表单
}
}
}
}
catch
(
error
)
{}
// 辅助返回表单数据
});
async
function
getFieldsValue
()
{
// 根据菜单页面权限,设置表单属性(必填,禁用,显示)
let
values
=
[];
function
setMenuPermission
()
{
try
{
data
.
formDataProps
.
schemas
=
filterFormSchemaAuth
(
data
.
formDataProps
.
schemas
!
);
values
=
await
systemFormRef
.
value
?.
getFieldsValue
();
}
//添加隐藏组件
if
(
data
.
formDataProps
.
hiddenComponent
?.
length
)
{
// 校验form 通过返回表单数据
data
.
formDataProps
.
hiddenComponent
.
forEach
((
component
)
=>
{
async
function
validate
()
{
values
[
component
.
bindField
]
=
component
.
value
;
let
values
=
[];
});
try
{
}
values
=
await
systemFormRef
.
value
?.
validate
();
}
finally
{
//添加隐藏组件
if
(
data
.
formDataProps
.
hiddenComponent
?.
length
)
{
data
.
formDataProps
.
hiddenComponent
.
forEach
((
component
)
=>
{
values
[
component
.
bindField
]
=
component
.
value
;
});
}
}
return
values
;
}
finally
{
}
// 辅助设置表单数据
function
setFieldsValue
(
record
)
{
systemFormRef
.
value
.
setFieldsValue
(
record
);
}
// 重置表单数据
async
function
resetFields
()
{
await
systemFormRef
.
value
.
resetFields
();
}
// 设置表单数据全部为Disabled 【查看】
async
function
setDisabledForm
(
)
{
data
.
formDataProps
.
schemas
=
changeSchemaDisabled
(
cloneDeep
(
data
.
formDataProps
.
schemas
));
}
}
// 获取行键值
return
values
;
function
getRowKey
()
{
}
return
RowKey
;
// 根据行唯一ID查询行数据,并设置表单数据 【编辑】
}
async
function
setFormDataFromId
(
rowId
)
{
// 更新api表单数据
try
{
async
function
update
({
values
,
rowId
})
{
const
record
=
await
getMesProductionPlan
(
rowId
);
try
{
// 处理 mesProductionPlanProductList 字段映射
values
[
RowKey
]
=
rowId
;
if
(
record
.
mesProductionPlanProductList
&&
Array
.
isArray
(
record
.
mesProductionPlanProductList
))
{
state
.
formModel
=
values
;
record
.
mesProductionPlanProductList
=
record
.
mesProductionPlanProductList
.
map
((
item
)
=>
{
let
saveVal
=
await
updateMesProductionPlan
(
values
);
return
{
await
submitFormEvent
(
formEventConfigs
,
state
.
formModel
,
...
item
,
systemFormRef
.
value
,
wuLiaoBianHao8001
:
item
.
cpbh
||
item
.
wuLiaoBianHao8001
,
// 物料编号
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:提交表单
naBuDaiMa1765
:
item
.
nbdm
||
item
.
naBuDaiMa1765
,
// 内部代码
return
saveVal
;
xingHao5094
:
item
.
xh
||
item
.
xingHao5094
,
// 型号
}
catch
(
error
)
{}
heJinZhuangTai4056
:
item
.
hjzt
||
item
.
heJinZhuangTai4056
,
// 合金状态 (兼容 hzjt 和 hjzt)
'guiGe(ChiCun)9562'
:
item
.
gg
||
item
[
'guiGe(ChiCun)9562'
],
// 规格(尺寸)
};
});
}
setFieldsValue
(
record
);
state
.
formModel
=
record
;
await
getFormDataEvent
(
formEventConfigs
,
state
.
formModel
,
systemFormRef
.
value
,
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:获取表单数据
}
catch
(
error
)
{
}
}
// 新增api表单数据
}
async
function
add
(
values
)
{
// 辅助返回表单数据
try
{
async
function
getFieldsValue
()
{
state
.
formModel
=
values
;
let
values
=
[];
let
saveVal
=
await
addMesProductionPlan
(
values
);
try
{
await
submitFormEvent
(
formEventConfigs
,
state
.
formModel
,
values
=
await
systemFormRef
.
value
?.
getFieldsValue
();
systemFormRef
.
value
,
//添加隐藏组件
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:提交表单
if
(
data
.
formDataProps
.
hiddenComponent
?.
length
)
{
return
saveVal
;
data
.
formDataProps
.
hiddenComponent
.
forEach
((
component
)
=>
{
}
catch
(
error
)
{}
values
[
component
.
bindField
]
=
component
.
value
;
});
}
}
finally
{
}
}
// 根据工作流页面权限,设置表单属性(必填,禁用,显示)
return
values
;
async
function
setWorkFlowForm
(
obj
:
WorkFlowFormParams
)
{
}
try
{
// 辅助设置表单数据
if
(
obj
.
formId
)
state
.
formInfo
.
formId
=
obj
.
formId
;
function
setFieldsValue
(
record
)
{
if
(
obj
.
formName
)
state
.
formInfo
.
formName
=
obj
.
formName
;
systemFormRef
.
value
.
setFieldsValue
(
record
);
let
flowData
=
await
changeWorkFlowForm
(
cloneDeep
(
formProps
),
obj
);
}
let
{
buildOptionJson
,
uploadComponentIds
,
formModels
,
isViewProcess
}
=
flowData
;
// 重置表单数据
data
.
formDataProps
=
buildOptionJson
;
async
function
resetFields
()
{
emits
(
'changeUploadComponentIds'
,
uploadComponentIds
);
//工作流中必须保存上传组件id【附件汇总需要】
await
systemFormRef
.
value
.
resetFields
();
if
(
isViewProcess
)
{
}
setDisabledForm
();
//查看
// 设置表单数据全部为Disabled 【查看】
}
async
function
setDisabledForm
(
)
{
state
.
formModel
=
formModels
;
data
.
formDataProps
.
schemas
=
changeSchemaDisabled
(
cloneDeep
(
data
.
formDataProps
.
schemas
));
setFieldsValue
(
formModels
);
}
}
catch
(
error
)
{}
// 获取行键值
await
createFormEvent
(
formEventConfigs
,
state
.
formModel
,
function
getRowKey
()
{
return
RowKey
;
}
// 更新api表单数据
async
function
update
({
values
,
rowId
})
{
try
{
values
[
RowKey
]
=
rowId
;
state
.
formModel
=
values
;
let
saveVal
=
await
updateMesProductionPlan
(
values
);
await
submitFormEvent
(
formEventConfigs
,
state
.
formModel
,
systemFormRef
.
value
,
systemFormRef
.
value
,
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:初始化表单
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:提交表单
await
loadFormEvent
(
formEventConfigs
,
state
.
formModel
,
return
saveVal
;
}
catch
(
error
)
{}
}
// 新增api表单数据
async
function
add
(
values
)
{
try
{
state
.
formModel
=
values
;
let
saveVal
=
await
addMesProductionPlan
(
values
);
await
submitFormEvent
(
formEventConfigs
,
state
.
formModel
,
systemFormRef
.
value
,
systemFormRef
.
value
,
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:加载表单
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:提交表单
}
return
saveVal
;
function
handleChange
(
val
)
{
}
catch
(
error
)
{}
emits
(
'update:value'
,
val
);
}
}
// 根据工作流页面权限,设置表单属性(必填,禁用,显示)
async
function
sendMessageForAllIframe
()
{
async
function
setWorkFlowForm
(
obj
:
WorkFlowFormParams
)
{
try
{
try
{
if
(
systemFormRef
.
value
&&
systemFormRef
.
value
.
sendMessageForAllIframe
)
{
if
(
obj
.
formId
)
state
.
formInfo
.
formId
=
obj
.
formId
;
systemFormRef
.
value
.
sendMessageForAllIframe
();
if
(
obj
.
formName
)
state
.
formInfo
.
formName
=
obj
.
formName
;
}
let
flowData
=
await
changeWorkFlowForm
(
cloneDeep
(
formProps
),
obj
);
}
catch
(
error
)
{}
let
{
buildOptionJson
,
uploadComponentIds
,
formModels
,
isViewProcess
}
=
flowData
;
}
data
.
formDataProps
=
buildOptionJson
;
defineExpose
({
emits
(
'changeUploadComponentIds'
,
uploadComponentIds
);
//工作流中必须保存上传组件id【附件汇总需要】
setFieldsValue
,
if
(
isViewProcess
)
{
resetFields
,
setDisabledForm
();
//查看
validate
,
}
add
,
state
.
formModel
=
formModels
;
update
,
setFieldsValue
(
formModels
);
setFormDataFromId
,
}
catch
(
error
)
{}
setDisabledForm
,
await
createFormEvent
(
formEventConfigs
,
state
.
formModel
,
setMenuPermission
,
systemFormRef
.
value
,
setWorkFlowForm
,
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:初始化表单
getRowKey
,
await
loadFormEvent
(
formEventConfigs
,
state
.
formModel
,
getFieldsValue
,
systemFormRef
.
value
,
sendMessageForAllIframe
formProps
.
schemas
,
true
,
state
.
formInfo
.
formName
,
state
.
formInfo
.
formId
);
//表单事件:加载表单
});
}
function
handleChange
(
val
)
{
emits
(
'update:value'
,
val
);
}
async
function
sendMessageForAllIframe
()
{
try
{
if
(
systemFormRef
.
value
&&
systemFormRef
.
value
.
sendMessageForAllIframe
)
{
systemFormRef
.
value
.
sendMessageForAllIframe
();
}
}
catch
(
error
)
{}
}
defineExpose
({
setFieldsValue
,
resetFields
,
validate
,
add
,
update
,
setFormDataFromId
,
setDisabledForm
,
setMenuPermission
,
setWorkFlowForm
,
getRowKey
,
getFieldsValue
,
sendMessageForAllIframe
});
</
script
>
</
script
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment