Browse Source

1.选择用户去除无用的tree属性

2.解决切换多选单选报错问题
lwx_v27
liwenxuan 2 weeks ago
parent
commit
ae7ddccc2a
  1. 1
      src/components/DesignForm/assembly/index.ts
  2. 37
      src/components/DesignForm/formControlPropertiNew.vue
  3. 41
      src/components/DesignForm/public/expand/rangedUserTree.vue
  4. 11
      src/components/DesignForm/public/form/form.vue

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

@ -1046,6 +1046,7 @@ export default [
control: {
// 组件所有属性
modelValue: '',
multiSelect: '',
orgRange:[],
roleRange:[],
roleCheckDataList:[],

37
src/components/DesignForm/formControlPropertiNew.vue

@ -847,6 +847,14 @@ const attrList = computed(() => {
vIf: state.isSearch,
vShow: ["expand-user"],
},
{
label: "是否多选",
value: config.expandUser,
path: "config.expand-user",
type: "expand-user_MultiSelect",
vIf: state.isSearch,
vShow: ["expand-user"],
},
/* {
label: "表单栅格",
value: config.span,
@ -2053,6 +2061,7 @@ let currentUploadImgid = "";
watch(
() => store.activeKey,
(newVal) => {
//
if (controlData.value.type === "lowcodeCarsusel") {
const carsuselConfigData: CarsuselConfig[] =
@ -2117,7 +2126,14 @@ watch(
}else if(controlData.value.type === "orgCentent"){
haveOrgTreeInfo()
}else if(controlData.value.type === "expand-user"){
if (controlData.value.hasOwnProperty('tree')) {
// tree
setTimeout(()=>{
alert(1)
delete controlData.value.tree
},800)
}
}
// start
// console.log(controlData.value.name)
@ -4116,7 +4132,6 @@ const expandUserComponentsTree = computed(()=>{
})
function findExpandUserNames(data) {
//console.log(data)
const result = [];
@ -4134,6 +4149,11 @@ function findExpandUserNames(data) {
if (node && node.type) {
// expand-user
if (node.type === 'expand-user') {
// multiSelect"1"
if (node.control && node.control.multiSelect && node.control.multiSelect === "1") {
return; //
}
//
const path = [...ancestors];
@ -4235,10 +4255,9 @@ function findExpandUserNames(data) {
}
function filterTreeByExpandUsers(a, b) {
/* console.log(a)
console.log(b) */
//console.log(a)
//console.log(b)
// bexpand-user%^%
const expandUserFields = new Set();
const pathMap = new Map(); //
@ -5011,6 +5030,13 @@ const formatTooltip = (val: number) => {
<el-button @click="handleUserRangeDialogFlag">可选用户设置</el-button>
</el-row>
<el-row v-else-if="item.type === 'expand-user_MultiSelect'">
<el-radio-group v-model="controlData.control.multiSelect">
<el-radio value="1"></el-radio>
<el-radio value=""></el-radio>
</el-radio-group>
</el-row>
<el-row v-else-if="item.type === 'span'" >
<div style="width:190px;margin-left: 10px;">
<el-slider v-model="controlData.config.span" :format-tooltip="formatTooltip" :max="24" />
@ -7250,6 +7276,7 @@ const formatTooltip = (val: number) => {
v-model="controlData.control.connectUserComponent"
style="width: 100%;"
:data="expandUserComponentsTree"
clearable
/>

41
src/components/DesignForm/public/expand/rangedUserTree.vue

@ -1,5 +1,5 @@
<script lang='ts' setup>
import { computed, onMounted, nextTick } from 'vue'
import { computed, onMounted, onBeforeMount,nextTick } from 'vue'
import { criteriaForPeopleList } from '@/api/hr/org/type'
import request from '@/utils/request';
import { useAttrs } from 'vue'
@ -20,7 +20,6 @@ const emits = defineEmits<{
(e: 'update:modelValue', value: string): void
}>()
const value = ref([])
const treeData = ref([]) //
const isDataLoaded = ref(false) //
@ -28,21 +27,43 @@ const loading = ref(false) // 是否正在加载
const treeSelectRef = ref() //
watch(value, (newValue) => {
console.log(newValue)
if (newValue.length > 0) {
let str = ""
let userAry = new Array
if(Array.isArray(newValue)){
newValue.forEach(item => {
userAry.push(item)
})
str = userAry.join(',')
emits('update:modelValue', str)
}else{
let a = new Array
a.push(newValue)
a.forEach(item => {
userAry.push(item)
})
str = userAry.join(',')
emits('update:modelValue', str)
}
newValue.forEach(item => {
userAry.push(item)
})
str = userAry.join(',')
emits('update:modelValue', str)
} else {
let str = ""
emits('update:modelValue', str)
}
}, { deep: true })
const multiSelect = computed(()=>{
if(props.data.control.multiSelect && props.data.control.multiSelect == "1"){
return true
}else{
return false
}
})
function parseStringToArray(str: string) {
try {
const result = JSON.parse(str);
@ -159,15 +180,15 @@ function hasNodesInTree(tree) {
<template>
<div class="tree-select-wrapper" v-if="props.types != 3">
<div class="tree-select-wrapper" >{{ multiSelect }}
<el-tree-select
ref="treeSelectRef"
node-key="number"
v-model="value"
:data="resData"
multiple
multiple
:render-after-expand="false"
show-checkbox
show-checkbox
clearable
collapse-tags
collapse-tags-tooltip

11
src/components/DesignForm/public/form/form.vue

@ -1757,7 +1757,16 @@ function getTree1() {
}
});
});
rangedUserTrees1.value = rangedUsers
rangedUserTrees1.value = JSON.parse(JSON.stringify(rangedUsers))
rangedUsers.forEach((item:any) => {
// tree
if (item.hasOwnProperty('tree')) {
// tree
delete item.tree;
}
})
})
}
function modifyTreeData(treeData, idList) {

Loading…
Cancel
Save