bug 78523

This commit is contained in:
赵霄
2023-11-20 13:42:33 +08:00
parent 559c0d9dee
commit 813fd009a6
6 changed files with 121 additions and 49 deletions
+95
View File
@@ -0,0 +1,95 @@
<template>
<a-tree-select
v-bind="$attrs"
v-on="$listeners"
:value="treeValue"
:getPopupContainer="(node) => node.parentNode"
style="width: 100%"
:tree-checkable="treeCheckable"
:show-search="canSearch"
:search-value.sync="searchValue"
:filterTreeNode="filterTreeOption"
@change="handleChange"
@search="handleSearch">
</a-tree-select>
</template>
<script>
export default {
name: 'STreeSelect',
props: {
value: {
required: false
},
// 是否可以搜索
canSearch: {
type: Boolean,
required: false,
default: true
},
// 是否多选
treeCheckable: {
type: Boolean,
required: false,
default: false
}
},
watch: {
value: {
handler () {
if (this.value) {
this.treeValue = JSON.parse(JSON.stringify(this.value))
}
},
immediate: true,
deep: true
}
},
data () {
return {
treeValue: null, // 选中的数据
searchValue: null // 查询的字符串
}
},
mounted () {
if (this.treeCheckable) {
this.$nextTick(() => {
document.addEventListener('click', this.clearSearchValue)
})
}
},
methods: {
filterTreeOption (input, option) {
const text = option.componentOptions.propsData.title || option.componentOptions.propsData.label
return text.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
handleChange (value) {
this.treeValue = value
this.$emit('change', value)
},
handleSearch (value) {
this.searchValue = value
},
clearSearchValue (event) {
event.stopPropagation()
this.searchValue = null
}
},
beforeDestroy () {
if (this.treeCheckable) {
document.removeEventListener('click', this.clearSearchValue)
}
},
model: {
prop: 'value',
event: 'change'
}
}
</script>
<style scoped lang="less">
/deep/ .ant-select-tree-dropdown {
max-height: 50vh !important;
}
</style>
+8 -12
View File
@@ -101,20 +101,15 @@
:type="'select'" :type="'select'"
:triggerChange="false" :triggerChange="false"
:options="optionsData[item.dbFieldName]" :options="optionsData[item.dbFieldName]"
:dictCode="item.fieldHref ? null : item.dictField"/> :dictCode="item.fieldHref ? null : item.dictField" />
<!-- 12, 树选择 --> <!-- 12, 树选择 -->
<a-tree-select <s-tree-select
v-else-if="item.fieldShowType === FieldType.TREE.value" v-else-if="item.fieldShowType === FieldType.TREE.value"
v-model="formInline[item.dbFieldName]" v-model="formInline[item.dbFieldName]"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
style="width: 100%"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" :disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:tree-data="optionsData[item.dbFieldName]" :tree-data="optionsData[item.dbFieldName]"
tree-checkable tree-checkable
treeCheckStrictly treeCheckStrictly
:label-in-value="false"
show-search
:filterTreeNode="filterTreeOption"
:placeholder="$t('pleaseSelect')+item.dbFieldTxt" /> :placeholder="$t('pleaseSelect')+item.dbFieldTxt" />
<!-- 14, 年份选择 --> <!-- 14, 年份选择 -->
<j-date v-else-if="item.fieldShowType === FieldType.YEAR_PICKER.value" <j-date v-else-if="item.fieldShowType === FieldType.YEAR_PICKER.value"
@@ -125,15 +120,13 @@
date-format="YYYY" date-format="YYYY"
:placeholder="$t('pleaseSelect')+item.dbFieldTxt" /> :placeholder="$t('pleaseSelect')+item.dbFieldTxt" />
<!-- 15, 树选择(单选) --> <!-- 15, 树选择(单选) -->
<a-tree-select v-else-if="item.fieldShowType === FieldType.TREE_SINGLE.value" <s-tree-select v-else-if="item.fieldShowType === FieldType.TREE_SINGLE.value"
v-model="formInline[item.dbFieldName]" v-model="formInline[item.dbFieldName]"
:getPopupContainer="triggerNode=> triggerNode.parentNode" :getPopupContainer="triggerNode=> triggerNode.parentNode"
style="width: 100%" style="width: 100%"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" :disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:tree-data="optionsData[item.dbFieldName]" :tree-data="optionsData[item.dbFieldName]"
:label-in-value="false" :label-in-value="false"
show-search
:filterTreeNode="filterTreeOption"
:placeholder="$t('pleaseSelect')+item.dbFieldTxt" /> :placeholder="$t('pleaseSelect')+item.dbFieldTxt" />
<!--16、树形弹框选择--> <!--16、树形弹框选择-->
<tree-selection v-else-if="item.fieldShowType === FieldType.TREE_MODAL_SELECT.value" <tree-selection v-else-if="item.fieldShowType === FieldType.TREE_MODAL_SELECT.value"
@@ -177,6 +170,7 @@ import { getAction } from '../../api/manage.js'
import { getFormDictTreeList } from '../../api/api.js' import { getFormDictTreeList } from '../../api/api.js'
import TreeSelection from '../selection/TreeSelection' import TreeSelection from '../selection/TreeSelection'
import { getStandardGradeClassification } from '../../api/enterpriseStandardLibraryApi' import { getStandardGradeClassification } from '../../api/enterpriseStandardLibraryApi'
import STreeSelect from '../STreeSelect'
export default { export default {
name: 'AddForm', name: 'AddForm',
@@ -187,7 +181,8 @@ export default {
JDictSelectTag, JDictSelectTag,
JMultiSelectTag, JMultiSelectTag,
UploadFile, UploadFile,
TreeSelection TreeSelection,
STreeSelect
}, },
props: { props: {
url: { url: {
@@ -472,6 +467,7 @@ export default {
} }
} }
this.formInline[field.dbFieldName] = valueArr this.formInline[field.dbFieldName] = valueArr
console.log(this.formInline[field.dbFieldName])
} else { } else {
this.formInline[field.dbFieldName] = undefined this.formInline[field.dbFieldName] = undefined
} }
@@ -674,7 +670,7 @@ export default {
filterTreeOption (input, option) { filterTreeOption (input, option) {
const text = option.componentOptions.propsData.title || option.componentOptions.propsData.label const text = option.componentOptions.propsData.title || option.componentOptions.propsData.label
return text.toLowerCase().indexOf(input.toLowerCase()) >= 0 return text.toLowerCase().indexOf(input.toLowerCase()) >= 0
} },
} }
} }
</script> </script>
@@ -125,19 +125,15 @@
:triggerChange="false" :triggerChange="false"
:dictCode="item.dictField" /> :dictCode="item.dictField" />
<!-- 12, 树选择 --> <!-- 12, 树选择 -->
<a-tree-select <s-tree-select
v-else-if="item.fieldShowType === FieldType.TREE.value" v-else-if="item.fieldShowType === FieldType.TREE.value"
v-model="formInline[item.dbFieldName]" v-model="formInline[item.dbFieldName]"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
style="width: 100%"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" :disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:tree-data="optionsData[item.dbFieldName]" :tree-data="optionsData[item.dbFieldName]"
tree-checkable tree-checkable
treeCheckStrictly treeCheckStrictly
:label-in-value="false" :label-in-value="false"
@change="updateDom" @change="updateDom"
show-search
:filterTreeNode="filterTreeOption"
:placeholder="$t('pleaseSelect')+item.dbFieldTxt" /> :placeholder="$t('pleaseSelect')+item.dbFieldTxt" />
<!-- 14, 年份选择 --> <!-- 14, 年份选择 -->
<j-date v-else-if="item.fieldShowType === FieldType.YEAR_PICKER.value" <j-date v-else-if="item.fieldShowType === FieldType.YEAR_PICKER.value"
@@ -148,16 +144,12 @@
date-format="YYYY" date-format="YYYY"
:placeholder="$t('pleaseSelect')+item.dbFieldTxt" /> :placeholder="$t('pleaseSelect')+item.dbFieldTxt" />
<!-- 15, 树选择(单选) --> <!-- 15, 树选择(单选) -->
<a-tree-select v-else-if="item.fieldShowType === FieldType.TREE_SINGLE.value" <s-tree-select v-else-if="item.fieldShowType === FieldType.TREE_SINGLE.value"
v-model="formInline[item.dbFieldName]" v-model="formInline[item.dbFieldName]"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
style="width: 100%"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" :disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:tree-data="optionsData[item.dbFieldName]" :tree-data="optionsData[item.dbFieldName]"
:label-in-value="false" :label-in-value="false"
@change="updateDom" @change="updateDom"
show-search
:filterTreeNode="filterTreeOption"
:placeholder="$t('pleaseSelect')+item.dbFieldTxt" /> :placeholder="$t('pleaseSelect')+item.dbFieldTxt" />
</a-form-model-item> </a-form-model-item>
</div> </div>
@@ -232,6 +224,7 @@ import JMultipleDatePicker from '../../../../components/JMultipleDatePicker.vue'
import { FieldType, TypeOfClauseItem, YesOrNoEnum } from '../../../../enums/commonEnums' import { FieldType, TypeOfClauseItem, YesOrNoEnum } from '../../../../enums/commonEnums'
import { getAction } from '../../../../api/manage' import { getAction } from '../../../../api/manage'
import { getFormDictTreeList } from '../../../../api/api' import { getFormDictTreeList } from '../../../../api/api'
import STreeSelect from '../../../../components/STreeSelect'
export default { export default {
name: 'SplitAddForm', name: 'SplitAddForm',
@@ -240,7 +233,8 @@ export default {
SplitDetailAddTable, SplitDetailAddTable,
UploadFile, UploadFile,
StandardSelection, StandardSelection,
SplitDetailAddTypeCheck SplitDetailAddTypeCheck,
STreeSelect
}, },
data () { data () {
return { return {
@@ -120,18 +120,14 @@
:triggerChange="false" :triggerChange="false"
:dictCode="item.dictField"/> :dictCode="item.dictField"/>
<!-- 12, 树选择 --> <!-- 12, 树选择 -->
<a-tree-select <s-tree-select
v-else-if="item.fieldShowType === FieldType.TREE.value" v-else-if="item.fieldShowType === FieldType.TREE.value"
v-model="formInline[item.dbFieldName]" v-model="formInline[item.dbFieldName]"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
style="width: 100%"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" :disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:tree-data="optionsData[item.dbFieldName]" :tree-data="optionsData[item.dbFieldName]"
tree-checkable tree-checkable
treeCheckStrictly treeCheckStrictly
:label-in-value="false" :label-in-value="false"
show-search
:filterTreeNode="filterTreeOption"
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"/> :placeholder="$t('pleaseSelect')+item.dbFieldTxt"/>
<!-- 14, 年份选择 --> <!-- 14, 年份选择 -->
<j-date v-else-if="item.fieldShowType === FieldType.YEAR_PICKER.value" <j-date v-else-if="item.fieldShowType === FieldType.YEAR_PICKER.value"
@@ -142,15 +138,13 @@
date-format="YYYY" date-format="YYYY"
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"/> :placeholder="$t('pleaseSelect')+item.dbFieldTxt"/>
<!-- 15, 树选择(单选) --> <!-- 15, 树选择(单选) -->
<a-tree-select v-else-if="item.fieldShowType === FieldType.TREE_SINGLE.value" <s-tree-select v-else-if="item.fieldShowType === FieldType.TREE_SINGLE.value"
v-model="formInline[item.dbFieldName]" v-model="formInline[item.dbFieldName]"
:getPopupContainer="triggerNode=> triggerNode.parentNode" :getPopupContainer="triggerNode=> triggerNode.parentNode"
style="width: 100%" style="width: 100%"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" :disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:tree-data="optionsData[item.dbFieldName]" :tree-data="optionsData[item.dbFieldName]"
:label-in-value="false" :label-in-value="false"
show-search
:filterTreeNode="filterTreeOption"
:placeholder="$t('pleaseSelect')+item.dbFieldTxt"/> :placeholder="$t('pleaseSelect')+item.dbFieldTxt"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
@@ -179,10 +173,11 @@ import { getDocSplitEditForm, editBatchEditClause } from '../../../../api/docume
import { FieldType, YesOrNoEnum } from '../../../../enums/commonEnums' import { FieldType, YesOrNoEnum } from '../../../../enums/commonEnums'
import { getFormDictTreeList } from '../../../../api/api' import { getFormDictTreeList } from '../../../../api/api'
import { getAction } from '../../../../api/manage' import { getAction } from '../../../../api/manage'
import STreeSelect from '../../../../components/STreeSelect'
export default { export default {
name: 'SplitDetailBatchEditDrawer', name: 'SplitDetailBatchEditDrawer',
components: { UserSelection, StandardSelection, UploadFile, JMultipleDatePicker }, components: { UserSelection, StandardSelection, UploadFile, JMultipleDatePicker, STreeSelect },
data () { data () {
return { return {
FieldType, FieldType,
@@ -453,10 +448,6 @@ export default {
width: 100%; width: 100%;
} }
/deep/ .ant-select-tree-dropdown {
max-height: 50vh !important;
}
.unscramble-item { .unscramble-item {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@@ -34,15 +34,12 @@
<a-form-model-item :label="$t('projectLibrary.vehicleItemLibrary.responsibleDepartment')" <a-form-model-item :label="$t('projectLibrary.vehicleItemLibrary.responsibleDepartment')"
:labelCol="labelCol" :labelCol="labelCol"
:wrapperCol="wrapperCol"> :wrapperCol="wrapperCol">
<a-tree-select <s-tree-select
tree-node-filter-prop="title" tree-node-filter-prop="title"
v-model="queryParam.responsibleDepartment" v-model="queryParam.responsibleDepartment"
:maxTagCount="1" :maxTagCount="1"
:show-search="true" can-search
:filterTreeNode="filterTreeOption"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input" class="box-input"
style="width: 100%"
:tree-data="departList" :tree-data="departList"
:placeholder="$t('pleaseSelect') + $t('projectLibrary.vehicleItemLibrary.responsibleDepartment')" :placeholder="$t('pleaseSelect') + $t('projectLibrary.vehicleItemLibrary.responsibleDepartment')"
@change="handleDepartsChange" @change="handleDepartsChange"
@@ -125,10 +122,11 @@ import JTable from '../../../components/jero/JTable'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { StandardSource } from '../../../enums/commonEnums' import { StandardSource } from '../../../enums/commonEnums'
import { filterObj } from '../../../utils/util' import { filterObj } from '../../../utils/util'
import STreeSelect from '../../../components/STreeSelect'
export default { export default {
name: 'StandardWarningList', name: 'StandardWarningList',
components: { JTable }, components: { JTable, STreeSelect },
mixins: [JeroListMixin], mixins: [JeroListMixin],
data () { data () {
return { return {
@@ -223,11 +223,9 @@
:triggerChange="false" :triggerChange="false"
:dictCode="item.dictField" /> :dictCode="item.dictField" />
<!-- 12, 树选择 --> <!-- 12, 树选择 -->
<a-tree-select <s-tree-select
v-else-if="item.fieldShowType === FieldType.TREE.value" v-else-if="item.fieldShowType === FieldType.TREE.value"
v-model="formInline[item.dbFieldName]" v-model="formInline[item.dbFieldName]"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
style="width: 100%"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" :disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:tree-data="optionsData[item.dbFieldName]" :tree-data="optionsData[item.dbFieldName]"
tree-checkable tree-checkable
@@ -243,10 +241,8 @@
date-format="YYYY" date-format="YYYY"
:placeholder="$t('pleaseSelect')+item.dbFieldTxt" /> :placeholder="$t('pleaseSelect')+item.dbFieldTxt" />
<!-- 15, 树选择(单选) --> <!-- 15, 树选择(单选) -->
<a-tree-select v-else-if="item.fieldShowType === FieldType.TREE_SINGLE.value" <s-tree-select v-else-if="item.fieldShowType === FieldType.TREE_SINGLE.value"
v-model="formInline[item.dbFieldName]" v-model="formInline[item.dbFieldName]"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
style="width: 100%"
:disabled="disabled || disabledFieldList.includes(item.dbFieldName)" :disabled="disabled || disabledFieldList.includes(item.dbFieldName)"
:tree-data="optionsData[item.dbFieldName]" :tree-data="optionsData[item.dbFieldName]"
:label-in-value="false" :label-in-value="false"
@@ -358,6 +354,7 @@ import {
agreeStandardECProcess, rejectStandardECProcess agreeStandardECProcess, rejectStandardECProcess
} from '../../../api/workCenter' } from '../../../api/workCenter'
import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin' import { WorkCenterMixin } from '../../../mixins/WorkCenterMixin'
import STreeSelect from '../../../components/STreeSelect'
export default { export default {
name: 'StandardEntryOrChangeProcess', name: 'StandardEntryOrChangeProcess',
@@ -370,7 +367,8 @@ export default {
InternalDetailPage, InternalDetailPage,
ProcessDetailList, ProcessDetailList,
UserSelectModal, UserSelectModal,
TreeSelection TreeSelection,
STreeSelect
}, },
mixins: [WorkCenterMixin], mixins: [WorkCenterMixin],
data () { data () {