|
@@ -1,8 +1,8 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <a-cascader
|
|
|
|
|
|
|
+ <Cascader
|
|
|
:value="innerValue"
|
|
:value="innerValue"
|
|
|
:options="getDepartTree"
|
|
:options="getDepartTree"
|
|
|
- :placeholder="placeholder"
|
|
|
|
|
|
|
+ placeholder="全部"
|
|
|
:field-names="{
|
|
:field-names="{
|
|
|
label: 'departName',
|
|
label: 'departName',
|
|
|
value: 'id',
|
|
value: 'id',
|
|
@@ -16,20 +16,22 @@
|
|
|
<template #displayRender="{ labels }">
|
|
<template #displayRender="{ labels }">
|
|
|
{{ labels[labels.length - 1] }}
|
|
{{ labels[labels.length - 1] }}
|
|
|
</template>
|
|
</template>
|
|
|
- </a-cascader>
|
|
|
|
|
|
|
+ </Cascader>
|
|
|
<!-- <a-input>{{ shownText }}</a-input> -->
|
|
<!-- <a-input>{{ shownText }}</a-input> -->
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script lang="ts">
|
|
<script lang="ts">
|
|
|
import { last } from 'lodash';
|
|
import { last } from 'lodash';
|
|
|
- import { defineComponent, computed, onUnmounted } from 'vue';
|
|
|
|
|
|
|
+ import { defineComponent, onUnmounted, h, ref } from 'vue';
|
|
|
// import { useMessage } from '/@/hooks/web/useMessage';
|
|
// import { useMessage } from '/@/hooks/web/useMessage';
|
|
|
import { propTypes } from '/@/utils/propTypes';
|
|
import { propTypes } from '/@/utils/propTypes';
|
|
|
- import { useMineStore } from '/@/store/modules/mine';
|
|
|
|
|
|
|
+ import { useMineDepartmentStore } from '/@/store/modules/mine';
|
|
|
import { storeToRefs } from 'pinia';
|
|
import { storeToRefs } from 'pinia';
|
|
|
|
|
+ import { Cascader } from 'ant-design-vue';
|
|
|
|
|
|
|
|
export default defineComponent({
|
|
export default defineComponent({
|
|
|
name: 'MineCascader',
|
|
name: 'MineCascader',
|
|
|
|
|
+ components: { Cascader },
|
|
|
props: {
|
|
props: {
|
|
|
value: propTypes.string.def(''),
|
|
value: propTypes.string.def(''),
|
|
|
placeholder: propTypes.string.def('全部'),
|
|
placeholder: propTypes.string.def('全部'),
|
|
@@ -38,25 +40,24 @@
|
|
|
showSearch: propTypes.bool.def(true),
|
|
showSearch: propTypes.bool.def(true),
|
|
|
allowClear: propTypes.bool.def(true),
|
|
allowClear: propTypes.bool.def(true),
|
|
|
changeOnSelect: propTypes.bool.def(true),
|
|
changeOnSelect: propTypes.bool.def(true),
|
|
|
- resetOnDestroy: propTypes.bool.def(true),
|
|
|
|
|
|
|
+ // clearOnDestroy: propTypes.bool.def(false),
|
|
|
},
|
|
},
|
|
|
emits: ['change', 'update:value'],
|
|
emits: ['change', 'update:value'],
|
|
|
setup(props, { emit }) {
|
|
setup(props, { emit }) {
|
|
|
// const { createMessage } = useMessage();
|
|
// const { createMessage } = useMessage();
|
|
|
- const mineStore = useMineStore();
|
|
|
|
|
- const { getDepartPath, getDepartTree, getDepartId, getMineCode } = storeToRefs(mineStore);
|
|
|
|
|
|
|
+ const mineStore = useMineDepartmentStore();
|
|
|
|
|
+ const { getDepartTree, getMineCode } = storeToRefs(mineStore);
|
|
|
|
|
|
|
|
- if (props.resetOnDestroy) {
|
|
|
|
|
- const rawID = getDepartId.value;
|
|
|
|
|
- onUnmounted(() => {
|
|
|
|
|
- mineStore.clearDepart();
|
|
|
|
|
- mineStore.setDepartById(rawID);
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // if (props.clearOnDestroy) {
|
|
|
|
|
+ // const raw = getDepartId.value;
|
|
|
|
|
+ // onUnmounted(() => {
|
|
|
|
|
+ // mineStore.setDepartById(raw);
|
|
|
|
|
+ // });
|
|
|
|
|
+ // }
|
|
|
|
|
|
|
|
if (props.rootId) {
|
|
if (props.rootId) {
|
|
|
- mineStore.filterDepartTree((e) => e.id === props.rootId);
|
|
|
|
|
mineStore.clearDepart();
|
|
mineStore.clearDepart();
|
|
|
|
|
+ mineStore.filterDepartTree((e) => e.parentId === props.rootId);
|
|
|
|
|
|
|
|
onUnmounted(() => {
|
|
onUnmounted(() => {
|
|
|
mineStore.restoreDepartTree();
|
|
mineStore.restoreDepartTree();
|
|
@@ -64,7 +65,8 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// const shownText = computed(() => getDepart.value.departName || '-');
|
|
// const shownText = computed(() => getDepart.value.departName || '-');
|
|
|
- const innerValue = computed(() => getDepartPath.value.map((e) => e.id));
|
|
|
|
|
|
|
+ const innerValue = ref<string[]>([]);
|
|
|
|
|
+ // const innerValue = computed(() => getDepartPath.value.map((e) => e.id));
|
|
|
const options = getDepartTree;
|
|
const options = getDepartTree;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -72,22 +74,26 @@
|
|
|
* @param e
|
|
* @param e
|
|
|
*/
|
|
*/
|
|
|
function handleChange(value: any[]) {
|
|
function handleChange(value: any[]) {
|
|
|
- console.log('debug change', value, getMineCode.value);
|
|
|
|
|
|
|
+ innerValue.value = value;
|
|
|
mineStore.setDepartById(last(value));
|
|
mineStore.setDepartById(last(value));
|
|
|
- console.log('debug aftter', value, getMineCode.value);
|
|
|
|
|
|
|
|
|
|
const val = getMineCode.value;
|
|
const val = getMineCode.value;
|
|
|
emit('update:value', val);
|
|
emit('update:value', val);
|
|
|
emit('change', val);
|
|
emit('change', val);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- handleChange([getDepartId.value]);
|
|
|
|
|
|
|
+ handleChange([]);
|
|
|
|
|
+
|
|
|
|
|
+ onUnmounted(() => {
|
|
|
|
|
+ mineStore.clearDepart();
|
|
|
|
|
+ });
|
|
|
|
|
|
|
|
return {
|
|
return {
|
|
|
innerValue,
|
|
innerValue,
|
|
|
options,
|
|
options,
|
|
|
getDepartTree,
|
|
getDepartTree,
|
|
|
handleChange,
|
|
handleChange,
|
|
|
|
|
+ h,
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
});
|
|
});
|