Browse Source

穿梭框提交无值----bug修改

lwx_v10
liwenxuan 1 year ago
parent
commit
d37ce26dd6
  1. 2
      src/components/DesignForm/assembly/index.ts
  2. 1
      src/widget/associatedforms/index.vue
  3. 93
      src/widget/lowcodetransfer/index.vue
  4. 147
      src/widget/lowcodetransfer/lowcodeTransfer.vue

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

@ -813,7 +813,7 @@ export default [
icon: '',
iconFont: 'fa-arrows-h',
control: {
modelValue: '',
modelValue: [],
fixedOptions: [{
id: 'thefirstrootnode',
label: '根节点1',

1
src/widget/associatedforms/index.vue

@ -68,6 +68,7 @@ const value = computed({
}
})
const updateModel = (val: any) => {
console.log("dfsasdfasdf")
let controlAttribute = ""
if(props.data.control){
if(props.data.control.type){

93
src/widget/lowcodetransfer/index.vue

@ -14,7 +14,7 @@
<input v-model="value" type="hidden" >
</el-form-item>
<LowcodeTransfer :data="props.data"></LowcodeTransfer>
<LowcodeTransfer :data="props.data" :selected-value="value" @checked-id-list-changed="checkedIdListChangedIndex" @update-model="updateModel" ></LowcodeTransfer>
</template>
<script lang='ts' setup>
import LowcodeTransfer from './lowcodeTransfer.vue';
@ -34,10 +34,15 @@ const props = withDefaults(
}>(),
{}
)
const emits = defineEmits<{
(e: 'update:modelValue', numVal: any): void
}>()
function checkedIdListChangedIndex(val:any){
//console.log(val)
value.value = val
}
const formProps = inject(constFormProps, {}) as any
const type = computed(() => {
return formProps.value.type
@ -48,23 +53,107 @@ const config = computed(() => {
const changeEvent = inject(constControlChange, '') as any
const parsedData = ref<any[]>([])
const value = computed({
get() {
if (props.tProp) {
//console.log("a")
//
return props.modelValue
} else {
return formProps.value.model[props.data.name]
/* console.log(formProps.value.model)
console.log(props.data.name)
console.log(formProps.value.model[props.data.name]) */
nextTick(()=>{
if(formProps.value.model[props.data.name]&&formProps.value.model[props.data.name] != ""&&parsedData.value.length==0){
parsedData.value = JSON.parse(formProps.value.model[props.data.name]);
}
})
// eslint-disable-next-line vue/no-side-effects-in-computed-properties
// parsedData.value = arr
return parsedData.value
//return formProps.value.model[props.data.name]
}
},
set(newVal: any) {
//console.log(newVal)
if (props.tProp) {
emits('update:modelValue', newVal)
}
updateModel(newVal)
}
})
function waitModelHasValue(){
//console.log("waitModelHasValue")
setTimeout(()=>{
if(formProps.value.model&&formProps.value.model.creater){
/* console.log(formProps.value.model[props.data.name])
console.log(formProps.value.model)
console.log(props.data.name) */
/* nextTick(()=>{
if(formProps.value.model[props.data.name]&&formProps.value.model[props.data.name] != ""&&parsedData.value.length==0){
parsedData.value = JSON.parse(formProps.value.model[props.data.name]);
}
}) */
if(formProps.value.model[props.data.name]){
//console.log(formProps.value.model[props.data.name])
parsedData.value = JSON.parse(formProps.value.model[props.data.name]);
}
//console.log(""+parsedData.value)
value.value = parsedData.value
}else{
waitModelHasValue()
}
},500)
}
onMounted(() => {
/* console.log(formProps.value.model[props.data.name])
console.log(formProps.value)
console.log(props.data.name) */
//nextTick(()=>{
if(formProps.value.model&&formProps.value.model.creater){
/* console.log(formProps.value.model[props.data.name])
console.log(formProps.value.model)
console.log(props.data.name) */
nextTick(()=>{
if(formProps.value.model[props.data.name]&&formProps.value.model[props.data.name] != ""&&parsedData.value.length==0){
parsedData.value = JSON.parse(formProps.value.model[props.data.name]);
}
})
value.value = parsedData.value
}else{
waitModelHasValue()
}
//})
/* setTimeout(()=>{
nextTick(()=>{
if(formProps.value.model[props.data.name]&&formProps.value.model[props.data.name] != ""&&parsedData.value.length==0){
parsedData.value = JSON.parse(formProps.value.model[props.data.name]);
}
})
checkedIdListChangedIndex(parsedData.value)
},500) */
})
/* watch(value, (newValue, oldValue) => {
},{deep:true}); */
const updateModel = (val: any) => {
/* console.log("updateModel")
console.log(typeof(val))
console.log(val) */
let controlAttribute = ""
if(props.data.control){
if(props.data.control.type){

147
src/widget/lowcodetransfer/lowcodeTransfer.vue

@ -1,6 +1,6 @@
<template>
<div v-if="dataFinished" class="transfer">
<div class="leftArea">
<div v-if="dataFinished" class="transfer"><!-- {{props.selectedValue}} -->
<div class="leftArea"><!-- {{ selectedValueCompu }}{{checkedIdList}} -->
<div class="transferName">{{ transferConfig.transferName }}</div>
<div style="padding-left: 15px; padding-right: 25px;margin-top: 10px;margin-bottom: 8px;">
<ElInput v-model="keyword" placeholder="搜索">
@ -51,8 +51,20 @@ const props = defineProps({
// eslint-disable-next-line vue/require-default-prop
data: {
type: Object,
}
default() {
return {};
},
},
selectedValue: {
type: Array,
default() {
return [];
},
},
})
const emits = defineEmits(['checkedIdListChanged','updateModel']);
const fixedOptions = props.data?.control.fixedOptions
const transferConfig = props.data?.config
const treeProps = {
@ -67,10 +79,69 @@ const isExpandAll = ref(false) // 是否全展开
const keyword = ref('') //
const checkList = ref([]) // list
const userList = ref([])
let checkedIdList = ["302697","ceshi","301625"];
checkedIdList = [];
let checkedIdList = ref([]);
let count = 0
function waitAndReGet(){
/* console.log("waitAndReGet")
console.log(props.selectedValue)
console.log(props.selectedValue.value) */
setTimeout(()=>{
let values = props.selectedValue.map(item => {
//
return item;
});
if(props.selectedValue&&values){
/* console.log("")
console.log(props.selectedValue)
console.log(values) */
//return props.selectedValue.value
checkedIdList.value = values
}else{
if(count<3){
count++
waitAndReGet()
}
/* console.log("waitAndReGet---else") */
}
},2000)
}
const selectedValueCompu = computed({
get() {
//console.log("get")
//nextTick(()=>{
let values = props.selectedValue.map(item => {
//
return item;
});
if(props.selectedValue&&values){
/* console.log(props.selectedValue.value)
console.log("computed---if") */
return values
}else{
waitAndReGet()
/* console.log("computed---else") */
return []
}
//})
},
set(){}
})
/* console.log(props.selectedValue) */
const url = transferConfig.apiUrl;/* '/javasys/lowCode/transfer/getOrgAndManTree' */
function getDetail() {
//console.log(11111)
if(transferConfig.transferDataSource==="数据源"){
@ -90,9 +161,9 @@ if(transferConfig.transferDataSource==="数据源"){
label: '全选',
children: [...resData.value]
}]
treeRef.value.setCheckedKeys(checkedIdList,true)
treeRef.value.setCheckedKeys(checkedIdList.value,true)
setTimeout(() => {
checkedIdList.forEach(element => {
checkedIdList.value.forEach(element => {
const _node = treeRef?.value?.getNode(element)
if (!_node) return
const _checkList = checkList.value
@ -116,7 +187,7 @@ if(transferConfig.transferDataSource==="数据源"){
});
}
const getCheckedList = () => {
checkedIdList = treeRef.value.getCheckedKeys(true)
checkedIdList.value = treeRef.value.getCheckedKeys(true)
}
@ -303,10 +374,10 @@ if(transferConfig.transferDataSource==="固定选项"){
children: fixedOptions
}]
//console.log(treeRef)
treeRef.value.setCheckedKeys(checkedIdList,true)
/* console.log(checkedIdList.value) */
treeRef.value.setCheckedKeys(checkedIdList.value,true)
setTimeout(() => {
checkedIdList.forEach(element => {
checkedIdList.value.forEach(element => {
const _node = treeRef?.value?.getNode(element)
if (!_node) return
const _checkList = checkList.value
@ -337,6 +408,60 @@ onMounted(() => {
})
// checkedIdList
watch(checkedIdList, (newValue, oldValue) => {
//console.log('checkedIdList ', newValue);
emits('checkedIdListChanged',newValue);
},{deep:true});
watch(selectedValueCompu, (newValue, oldValue) => {
//console.log('selectedValueCompu ', newValue);
checkedIdList.value = selectedValueCompu.value
//
if(transferConfig.transferDataSource==="固定选项"){
setTimeout(() => {
// 2: node
userList.value = [{
id: '全选',
label: '全选',
children: fixedOptions
}]
//console.log(treeRef)
/* console.log(checkedIdList.value) */
treeRef.value.setCheckedKeys(checkedIdList.value,true)
setTimeout(() => {
checkedIdList.value.forEach(element => {
const _node = treeRef?.value?.getNode(element)
if (!_node) return
const _checkList = checkList.value
if (_node.checked) { //
if (_node.checked && _node.childNodes.length === 0) {
_checkList.push(_node)
}
// new Set()
checkList.value = Array.from(new Set(_checkList))
// ,,
if (_node.childNodes.length > 0) {
_node.childNodes.map(item => handleCheckList(item.data))
}
} else if (!_node.checked) { //
checkList.value = checkList.value.filter(item => item.checked)
}
});
}, 50);
}, 50);
dataFinished = true
}else{
getDetail
dataFinished = true
}
//emits('updateModel',newValue);
},{deep:true});
</script>

Loading…
Cancel
Save