Browse Source

关联表单-数据填充规则-v0.27

lwx_v6
liwenxuan 1 year ago
parent
commit
d779df0857
  1. 8
      src/components/DesignForm/assembly/index.ts
  2. 25
      src/components/DesignForm/formControlPropertiNew.vue
  3. 48
      src/widget/associatedforms/associatedFormsChildFillRole.vue

8
src/components/DesignForm/assembly/index.ts

@ -927,7 +927,13 @@ export default [
mathsString:'',
},
},
childRoles:[]
childRoles:[
{
leftValue: '',
rightValue: '',
id: '',
},
]
},
],
},

25
src/components/DesignForm/formControlPropertiNew.vue

@ -2618,7 +2618,7 @@ function addChildFillRole(){
//
//currentChildTableCount
//controlData.value.control.fillRoles.child.length
if(controlData.value.control.fillRoles.child.length<currentChildTableCount){
if(controlData.value.control.fillRoles.child.length<currentChildTableCount){
let onlyNumber = uuidv4().replaceAll('-','').toString(); //
controlData.value.control.fillRoles.child.push({
id: onlyNumber,
@ -4515,13 +4515,13 @@ const radioChangeSet = (val:any) => {
<el-dialog v-model="associatedFormsFillRolesDialogFlag" title="数据填充规则" top="150px" :close-on-click-modal="false" :show-close="false" style="margin-top:70px ;min-height: 300px;max-height:800px" width="80%" >
<el-dialog v-model="associatedFormsFillRolesDialogFlag" title="数据填充规则" top="150px" :close-on-click-modal="false" :show-close="false" style="margin-top:70px ;min-height: 300px;max-height:900px" width="80%" >
<template v-if="controlData.type=='associatedForms'">
<div style="height:300px;border:1px solid white;overflow-y:auto;">
<el-button style="font-size: large;margin-top: 10px;margin-bottom: 15px;" type="primary" link append-to-body="true" modal="true" @click="addFillRole"> 主表填充规则</el-button>
<div style="background-color: #E6F3FE;padding: 12px;border-radius: 10px;padding-left:45px;margin-bottom:20px;padding-bottom: 1px;"><!-- #F5F7FA -->
<el-button style="font-size: large;margin-top: 10px;margin-bottom: 15px;" type="primary" link append-to-body="true" modal="true" @click="addFillRole"> 主表填充规则</el-button>
<div style="max-height:230px;border:1px solid white;overflow-y:auto;">
<div style="background-color: #F0F0F0;padding: 12px;border-radius: 10px;padding-left:45px;padding-bottom: 1px;margin-right: 10px;"><!-- #F5F7FA #E6F3FE #F0F0F0 #F5F7FA-->
<template v-for="(item, index) in controlData.control.fillRoles.master" :key="controlData.control.fillRoles.master[index].id">
<AssociatedFormsFillRole
v-model:left-value="controlData.control.fillRoles.master[index].leftValue"
@ -4537,19 +4537,23 @@ const radioChangeSet = (val:any) => {
</div>
<el-popover
v-if="currentChildTableCount>0"
placement="right-end"
placement="right-start"
title=""
:width="200"
trigger="hover"
content="【关联表单子表字段】暂不支持填充至【当前表单主表字段】; 若【设置筛选条件】,则仅填充满足筛选条件的子表数据"
>
<template #reference>
<el-button style="font-size: large;margin-top: 3px;margin-bottom: 15px;" type="primary" link append-to-body="true" modal="true" @click="addChildFillRole"> 子表填充规则</el-button>
<el-button style="font-size: large;margin-top: 23px;margin-bottom: 15px;" type="primary" link append-to-body="true" modal="true" @click="addChildFillRole"> 子表填充规则</el-button>
</template>
</el-popover>
<div v-if="currentChildTableCount>0">
<div v-if="currentChildTableCount>0" style="max-height: 330px;overflow-y:auto;padding-top: 7px;">
<template v-for="(item, index) in controlData.control.fillRoles.child" :key="controlData.control.fillRoles.child[index].id">
<AssociatedFormsChildFillRole
v-model:selected-child-table="controlData.control.fillRoles.child[index].tableKey"
@ -4571,13 +4575,12 @@ const radioChangeSet = (val:any) => {
:associated-forms-current-form-field-tree= "associatedFormsCurrentFormFieldTree"
:current-key="controlData.control.fillRoles.child[index].id"
:child-table-list="asfasfChildTableList"
:child-roles = "controlData.control.fillRoles.child[index].childRoles"
@del-role = "delChildRole"
>
</AssociatedFormsChildFillRole>
</template>
</div>
</div>
</template>
<template #footer>
<div class="dialog-footer">

48
src/widget/associatedforms/associatedFormsChildFillRole.vue

@ -2,7 +2,7 @@
<template>
<div
style="background-color: #E6F3FE;padding: 12px;border-radius: 10px;padding-left:45px;margin-bottom:20px;margin-right:11px;min-height: 65px;padding-top: 16px;">
style="background-color: #F0F0F0;padding: 12px;border-radius: 5px;padding-left:45px;margin-bottom:20px;margin-right:11px;min-height: 65px;padding-top: 16px;color: black;">
<el-button
:icon="Close" size="small" circle type="info" plain
style="float: right;margin-top: -22px;margin-right: -22px" @click="delRole" />
@ -11,15 +11,47 @@
v-model="selectedChildTable1" style="width: 290px;margin-bottom: -1px" :data="childTableList"
placeholder="请选择关联表单子表" check-strictly :render-after-expand="false" filterable
@change="selectedChildTableChanged" />
<el-popover
placement="top-end"
title=""
:width="200"
trigger="hover"
content="若【设置筛选条件】,则仅填充满足筛选条件的子表数据"
>
<template #reference>
<el-button
v-if="selectedChildTable1 !== '' && filterCondition1.conditionHtml === ''"
style="padding-top: 8px; width: 290px;margin-left: 85px;height: 30px;" type="primary" plain append-to-body="true"
modal="true" @click="filterConditionDialogFlag = true">设置筛选条件选填</el-button>
</template>
</el-popover>
<el-button
v-if="selectedChildTable1 === '' || filterCondition1.conditionHtml === ''"
style="padding-top: 8px; width: 290px;margin-left: 85px;height: 30px;" type="info" plain append-to-body="true"
modal="true" @click="filterConditionDialogFlag = true">设置筛选条件选填</el-button>
<div
v-if="selectedChildTable1 !== '' && filterCondition1.conditionHtml !== ''"
style="padding-top: 5px; width: auto;margin-left: 85px;height: 30px;cursor: pointer;display: inline-block;margin-top: 3px;"
@click="filterConditionDialogHandle" v-html="filterCondition1.conditionHtml"></div>
<el-divider v-if="selectedChildTable1 !== ''" />
<div v-if="selectedChildTable1 !== ''" style="background-color: #F0F0F0;padding: 12px;border-radius: 10px;padding-left:45px;margin-bottom:20px;padding-bottom: 1px;margin-right: 10px;"><!-- #F5F7FA #E6F3FE #F0F0F0 #F5F7FA-->
<template v-for="(item, index) in childRoles" :key="childRoles[index].id">
{{ item }}
<!-- <AssociatedFormsFillRole
v-model:left-value="controlData.control.fillRoles.master[index].leftValue"
v-model:right-value="controlData.control.fillRoles.master[index].rightValue"
:left-tree-source = "asfasfMasterFieldTree"
:right-tree-source = "associatedFormsCurrentFormFieldTree"
:current-key="controlData.control.fillRoles.master[index].id"
@del-role = "delRole"
>
</AssociatedFormsFillRole> -->
</template>
</div>
</div>
@ -169,6 +201,12 @@ const props = defineProps({
return {}
}
},
childRoles:{
type: Object,
default() {
return {}
}
},
})
//AssociatedFormsTinyace

Loading…
Cancel
Save