UNPKG

tav-ui

Version:
1 lines 28.2 kB
{"version":3,"file":"member-select2.mjs","sources":["../../../../../../../packages/components/member-select/src/member-select.vue"],"sourcesContent":["<template>\n <div ref=\"memberSelectElRef\" class=\"ta-member-select\">\n <div v-if=\"!noSelect\">\n <template v-if=\"type == 'user'\">\n <Select\n ref=\"userSelectRef\"\n v-model:value=\"selectedData[0]\"\n show-search\n dropdown-class-name=\"ta-member-select-option\"\n option-filter-prop=\"label\"\n :allow-clear=\"allowClear\"\n :options=\"userList\"\n :filter-option=\"filterHandle\"\n :max-tag-count=\"maxTagCount\"\n :max-tag-placeholder=\"maxTagPlaceholder\"\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :mode=\"multiple ? 'multiple' : undefined\"\n :autofocus=\"autofocus\"\n :default-open=\"defaultOpen\"\n :get-popup-container=\"getPopupContainer\"\n @change=\"emitHandle\"\n @blur=\"handleBlur\"\n >\n <!-- @inputKeyDown=\"preventInnerKeydownTriggerOuterKeydown\" -->\n\n <template #tagRender=\"{ label, option }\">\n <Tag color=\"blue\" closable @close.prevent=\"removeItem(option)\"> {{ label }}</Tag>\n </template>\n <template #option=\"item\">\n <div class=\"ta-member-select-option-item\">\n <span>\n {{ item.label }}\n <template v-if=\"item.status === 0\"> ({{ tavI18n('Tav.member.4') }}) </template>\n </span>\n <span>\n <template v-if=\"item.userOrgs && item.userOrgs.length > 0\">\n <Tooltip>\n <template #title>\n <span>{{ item.userOrgs.map((v) => v.organizationName).join('、') }}</span>\n </template>\n {{ item.userOrgs[0]?.organizationName }}\n </Tooltip>\n </template>\n <template v-else> - </template>\n </span>\n <span :title=\"item.phone\">{{ item.phone }}</span>\n </div>\n </template>\n <template #dropdownRender=\"{ menuNode: menu }\">\n <v-nodes :vnodes=\"menu\" />\n <div\n v-if=\"userList.length > 0\"\n class=\"ta-member-select-option-more\"\n @mousedown=\"(e) => e.preventDefault()\"\n @click=\"userShowMore\"\n >\n <a href=\"javascript:;\">{{ tavI18n('Tav.common.moreText') }}</a>\n </div>\n </template>\n </Select>\n </template>\n <template v-else>\n <TreeSelect\n v-model:value=\"selectedData[0]\"\n dropdown-class-name=\"ta-member-select-tree\"\n tree-node-filter-prop=\"title\"\n show-search\n tree-icon\n :tree-default-expanded-keys=\"orgExpandedKey\"\n :allow-clear=\"allowClear\"\n :max-tag-count=\"maxTagCount\"\n :max-tag-placeholder=\"maxTagPlaceholder\"\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :multiple=\"multiple\"\n :tree-data=\"orgList\"\n :field-names=\"orgFileds\"\n :autofocus=\"autofocus\"\n :default-open=\"defaultOpen\"\n :get-popup-container=\"getPopupContainer\"\n show-checked-strategy=\"SHOW_ALL\"\n @change=\"emitHandle\"\n >\n <!-- @inputKeyDown=\"preventInnerKeydownTriggerOuterKeydown\" -->\n\n <!-- :treeDefaultExpandedKeys=\"orgExpandedKey\" -->\n <!-- 自己循环得递归,暂时不这样写 -->\n <!-- <TreeSelectNode v-for=\"item in orgList\" :key=\"item.id\">\n {{item.name}}\n </TreeSelectNode> -->\n </TreeSelect>\n </template>\n </div>\n <BasicModal\n :title=\"title || tavI18n('Tav.member.3')\"\n :width=\"850\"\n :destroy-on-close=\"true\"\n :get-container=\"getPopupContainer\"\n @register=\"registerMemberModal\"\n >\n <div style=\"min-height: 360px\">\n <MemberModal v-if=\"modalIsShow\" :selected-data=\"selectedData\" @change=\"modalChange\" />\n </div>\n\n <template #footer>\n <Button type=\"primary\" @click=\"modalSubmit\">{{ tavI18n('Tav.common.okText') }}</Button>\n <Button @click=\"hideModal\">{{ tavI18n('Tav.common.cancelText') }}</Button>\n </template>\n </BasicModal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, nextTick, provide, reactive, ref, toRefs, watch } from 'vue'\nimport { Select, Tag, Tooltip, TreeSelect } from 'ant-design-vue'\nimport { isEqual, pull } from 'lodash-es'\nimport pinyin from 'js-pinyin'\nimport Button from '@tav-ui/components/button'\nimport BasicModal from '@tav-ui/components/modal'\nimport { useModal } from '@tav-ui/components/modal/src/hooks/useModal'\nimport { useGlobalConfig } from '@tav-ui/hooks/global/useGlobalConfig'\nimport { tavI18n } from '@tav-ui/locales'\nimport { isNullOrUnDef } from '@tav-ui/utils'\nimport MemberModal from './components/member-modal.vue'\nimport { memberSelectProps } from './types'\nimport type { Ref } from 'vue'\nimport type { Options, UserItem } from './types'\nexport default defineComponent({\n name: 'TaMemberSelect',\n components: {\n VNodes: (_, { attrs }) => {\n return attrs.vnodes\n },\n Tooltip,\n Tag,\n BasicModal,\n MemberModal,\n Button,\n Select,\n TreeSelect,\n },\n props: memberSelectProps,\n emits: ['change', 'update:value', 'blur'],\n setup(props, { emit }) {\n const memberSelectElRef = ref<HTMLDivElement>()\n const userSelectRef = ref<any>(null)\n const state = reactive({\n modalIsShow: false,\n searchValue: '',\n selectedData: [] as any[], //组件里面选中的数据\n catchData: [] as any[],\n userList: [] as UserItem[],\n orgList: [] as any, //组织树下用的数据\n orgExpandedKey: [] as any[], //默认展开的数据\n orgFileds: { label: 'name', value: 'id' },\n })\n provide(\n 'propsData',\n computed(() => props)\n )\n provide(\n 'userList',\n computed(() => state.userList)\n )\n provide(\n 'orgList',\n computed(() => state.orgList)\n )\n const globalConfig = useGlobalConfig('components') as Ref<Record<string, any>>\n const orgApi = globalConfig.value?.TaMemberSelect?.orgApi || props.orgApi\n const allUserList = globalConfig.value?.TaMemberSelect?.allUserList || []\n const userListApi = props.userListApi || globalConfig.value?.TaMemberSelect?.userListApi\n const [registerMemberModal, { openModal: openMemberModal, closeModal: closeMemberModal }] =\n useModal()\n const showModal = () => {\n // 如果是用户选择器,打开弹窗时候 也请求下组织列表,可以根据组织选择用户\n if (props.type == 'user') {\n getUserList()\n if (!props.noOrg) {\n getOrgList()\n }\n }\n if (props.type == 'org') {\n getOrgList()\n }\n if (userSelectRef.value) {\n userSelectRef.value.blur()\n }\n // 某些情况下直接拉起弹窗,那么就需要重置下数据和请求用户列表\n setBaseData()\n // 延迟出现,防止互相覆盖\n openMemberModal()\n state.modalIsShow = true\n }\n const hideModal = () => {\n state.modalIsShow = false\n nextTick(() => {\n closeMemberModal()\n })\n }\n\n // 这块是用户基础数据,更多选项里面也有用\n const getTrueUserList = (userList = [] as UserItem[]) => {\n // 非ignoreUser的用户才能选择\n const list: Options[] = userList\n .filter((v) => !props.ignoreUser.includes(v.id))\n .map((v) => {\n const fullCharts = pinyin.getFullChars(v.name).toLowerCase()\n const obj = { ...v, label: v.name, value: v.id, fullCharts }\n if (!Reflect.has(obj, 'disabled')) {\n obj.disabled = props.useDisabledUser ? false : obj.status === 0\n }\n return obj\n })\n .sort((a) => {\n if (isNullOrUnDef(a.status)) {\n return -1\n } else {\n return a.status === 1 ? -1 : 1\n }\n })\n return list\n }\n // 获取用户数据\n const getUserList = async () => {\n if (Array.isArray(props.options)) {\n // 将其处理成 人员的数据格式\n // let data = JSON.parse(JSON.stringify(props.options));\n state.userList = getTrueUserList(props.options)\n } else {\n userListApi(props.userListParams).then((res: any) => {\n state.userList = getTrueUserList(res.data)\n })\n }\n checkUserIsExist()\n }\n // 获取组织数据\n const getOrgList = (): void => {\n orgApi({}).then((res: any) => {\n state.orgList = res.data\n })\n }\n // 弹窗里面的数据变化\n const modalChange = (value: any[]) => {\n state.catchData = value\n }\n // 弹窗下面的确定事件\n const modalSubmit = (): void => {\n const data = state.catchData\n const submit = () => {\n // 多选第一位为数组,单选第一位为字符串\n state.selectedData[0] = data\n emitHandle()\n hideModal()\n }\n if (props.modalSubmit) {\n props.modalSubmit(data, submit)\n } else {\n submit()\n }\n }\n const emitHandle = (): void => {\n const userMap = allUserList.filter((v: UserItem) => {\n if (props.multiple) {\n return state.selectedData[0].includes(v.id)\n } else {\n return state.selectedData[0] == v.id\n }\n })\n emit('update:value', state.selectedData[0])\n emit('change', state.selectedData[0], userMap)\n }\n\n const handleBlur = () => {\n emit('blur', state.selectedData[0])\n }\n\n // 将传入的value保存为组件使用的数据\n const setBaseData = (): void => {\n if (props.multiple) {\n if (!Array.isArray(props.value)) {\n console.warn('多选默认值请传入数组')\n state.selectedData = [[]]\n } else {\n state.selectedData = [[...props.value]]\n checkUserIsExist()\n }\n } else {\n state.selectedData = props.value ? [props.value] : [null]\n checkUserIsExist()\n }\n }\n // 检查用户在当前的用户列表中是否存在,不存在就去全部用户列表中匹配,匹配到后塞到现有用户列表中去\n const checkUserIsExist = () => {\n if (props.multiple) {\n state.selectedData[0].forEach((userId: string) => {\n getUserItem(userId)\n })\n } else {\n getUserItem(state.selectedData[0])\n }\n function getUserItem(userId: string) {\n // 如果当前用户列表中查不到该用户就在所用用户中去匹配,匹配到后插入当当前用户列表中\n if (!state.userList.some((v) => v.id == userId)) {\n const item = allUserList.find((v: UserItem) => v.id === userId)\n if (item) {\n state.userList.push(item)\n }\n }\n }\n }\n const filterHandle = (keyword: string, user: UserItem) => {\n if (!keyword) {\n return true\n } else {\n return (\n user.fullCharts.indexOf(keyword) > -1 ||\n user.name.indexOf(keyword) > -1 ||\n user.userOrgs[0]?.organizationName.indexOf(keyword) > -1\n )\n }\n }\n // 下拉列表中的查看更多点击事件\n const userShowMore = () => {\n setTimeout(() => {\n showModal()\n }, 200)\n }\n const orgVisibleChange = () => {\n // console.log(v);\n }\n const removeItem = (item: UserItem) => {\n pull(state.selectedData[0], item.id)\n emitHandle()\n }\n\n watch(\n () => state.orgList,\n (newData) => {\n if (props.multiple) {\n state.orgExpandedKey =\n state.selectedData[0].length > 0 ? state.selectedData[0] : [newData[0].id]\n } else {\n state.orgExpandedKey = state.selectedData[0] ? state.selectedData : [newData[0].id]\n }\n },\n {\n deep: true,\n }\n )\n watch(\n () => props.ignoreUser,\n (a, b) => {\n if (!isEqual(a, b)) {\n getUserList()\n }\n }\n )\n watch(\n () => props.options,\n (data) => {\n if (data) {\n getUserList()\n }\n },\n {\n deep: true,\n }\n )\n watch(\n () => props.value,\n () => {\n // 组件绑定的是 selectedData第一位\n setBaseData()\n }\n )\n // 页面初始化\n const pageInit = (): void => {\n setBaseData()\n if (props.type == 'user') {\n // 如果默认不显示select就不请求用户\n if (props.noSelect) {\n return\n }\n getUserList()\n } else {\n getOrgList()\n }\n }\n pageInit()\n\n /**\n * 劫持组件内部的回车事件,暂时不用。勿删\n * @param event\n */\n // function preventInnerKeydownTriggerOuterKeydown(event: KeyboardEvent) {\n // event.stopPropagation()\n // const evt = new Event('keydown')\n // memberSelectElRef.value?.dispatchEvent(evt)\n // }\n\n return {\n ...toRefs(state),\n memberSelectElRef,\n userSelectRef,\n removeItem,\n filterHandle,\n tavI18n,\n userShowMore,\n orgVisibleChange,\n showModal,\n hideModal,\n modalChange,\n modalSubmit,\n emitHandle,\n handleBlur,\n registerMemberModal,\n // preventInnerKeydownTriggerOuterKeydown,\n }\n },\n})\n</script>\n"],"names":["BasicModal","Button","_createTextVNode","_resolveComponent","_openBlock","_createElementBlock","_createBlock","_createVNode","_withModifiers","_withCtx","_toDisplayString","_createElementVNode","_Fragment","_createCommentVNode"],"mappings":"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"}