|
@@ -7,10 +7,11 @@
|
|
:class="{'leftIndexAct': index === leftIndex,'leftSelectedAct': leftEchoIdArr?.length ? leftEchoIdArr.includes(item.id) : false}"
|
|
:class="{'leftIndexAct': index === leftIndex,'leftSelectedAct': leftEchoIdArr?.length ? leftEchoIdArr.includes(item.id) : false}"
|
|
v-for="(item, index) in items" :key="item.id"
|
|
v-for="(item, index) in items" :key="item.id"
|
|
@mouseover="handleMouseOver(item, index)"
|
|
@mouseover="handleMouseOver(item, index)"
|
|
|
|
+ @click="leftHandleClick(item, index)"
|
|
>
|
|
>
|
|
<div class="rowItem d-flex">
|
|
<div class="rowItem d-flex">
|
|
<span class="categoryName">{{ item.nameCn }}</span>
|
|
<span class="categoryName">{{ item.nameCn }}</span>
|
|
- <span class="mdi mdi-menu-right"></span>
|
|
|
|
|
|
+ <span v-if="item.id !== '-1'" class="mdi mdi-menu-right"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -49,6 +50,10 @@ defineOptions({ name:'common-components-jobTypeCard'})
|
|
const emits = defineEmits(['handleJobClick', 'jobClick'])// 定义一个或多个自定义事件
|
|
const emits = defineEmits(['handleJobClick', 'jobClick'])// 定义一个或多个自定义事件
|
|
|
|
|
|
const props = defineProps({
|
|
const props = defineProps({
|
|
|
|
+ clearable: { // 不限
|
|
|
|
+ type: Boolean,
|
|
|
|
+ default: false
|
|
|
|
+ },
|
|
echo: { // 是否回显
|
|
echo: { // 是否回显
|
|
type: Boolean,
|
|
type: Boolean,
|
|
default: false
|
|
default: false
|
|
@@ -104,6 +109,8 @@ let items = ref([])
|
|
getDict('positionTreeData', null, 'positionTreeData').then(({ data }) => {
|
|
getDict('positionTreeData', null, 'positionTreeData').then(({ data }) => {
|
|
data = data?.length && data || []
|
|
data = data?.length && data || []
|
|
items.value = data
|
|
items.value = data
|
|
|
|
+ if (props.clearable) items.value = [{ id: '-1', nameCn: '不限', nameEn: 'Unrestricted' }, ...data]
|
|
|
|
+ else items.value = data
|
|
echoLeft()
|
|
echoLeft()
|
|
})
|
|
})
|
|
|
|
|
|
@@ -121,12 +128,20 @@ const handleClick = async (val) => {
|
|
echoLeft()
|
|
echoLeft()
|
|
emits('handleJobClick', selectItems.value, selectItems.value.length ? val.nameCn : '')
|
|
emits('handleJobClick', selectItems.value, selectItems.value.length ? val.nameCn : '')
|
|
}
|
|
}
|
|
|
|
+// 职位点击
|
|
|
|
+const leftHandleClick = async (val) => {
|
|
|
|
+ if ((val.id + '') === '-1') {
|
|
|
|
+ leftEchoIdArr.value = []; selectItems.value = []
|
|
|
|
+ emits('handleJobClick', selectItems.value, selectItems.value.length ? val.nameCn : '')
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
|
|
// 右侧职位信息
|
|
// 右侧职位信息
|
|
const leftIndex = ref(null)
|
|
const leftIndex = ref(null)
|
|
const rightObj = reactive({ show: false, data: {} })
|
|
const rightObj = reactive({ show: false, data: {} })
|
|
|
|
|
|
const handleMouseOver = (val, index) => { // 鼠标移入
|
|
const handleMouseOver = (val, index) => { // 鼠标移入
|
|
|
|
+ if ((val.id + '') === '-1') return
|
|
leftIndex.value = index
|
|
leftIndex.value = index
|
|
rightObj.data = val
|
|
rightObj.data = val
|
|
rightObj.show = true
|
|
rightObj.show = true
|