fix: bug#12763

This commit is contained in:
xieyonghong 2023-05-04 15:30:13 +08:00
parent 3fb2b4b956
commit d66ea9c8a8
6 changed files with 30 additions and 21 deletions

View File

@ -1,3 +1,3 @@
#!/usr/bin/env bash #!/usr/bin/env bash
docker build -t registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-ui-vue:1.0.0 . docker build -t registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-ui-vue:2.1 .
docker push registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-ui-vue:1.0.0 docker push registry.cn-shenzhen.aliyuncs.com/jetlinks/jetlinks-ui-vue:2.1

View File

@ -154,8 +154,8 @@ const getLoginUser = async (data?: any) => {
if (res.success) { if (res.success) {
userName.value = res.result?.user.name userName.value = res.result?.user.name
isLogin.value = true isLogin.value = true
getApplication(data.client_id || params.value.client_id) getApplication(data?.client_id || params.value.client_id)
if (data.internal === 'true' || internal.value === 'true') { // oauth2 if (data?.internal === 'true' || internal.value === 'true') { // oauth2
goOAuth2Fn(data) goOAuth2Fn(data)
} }
} else if (res.status === 401) { } else if (res.status === 401) {
@ -163,14 +163,14 @@ const getLoginUser = async (data?: any) => {
spinning.value = false spinning.value = false
}) })
getCode() getCode()
getApplication(data.client_id || params.value.client_id) getApplication(data?.client_id || params.value.client_id)
} else { } else {
setTimeout(() => { setTimeout(() => {
spinning.value = false spinning.value = false
}) })
} }
} else { } else {
getApplication(data.client_id || params.value.client_id) getApplication(data?.client_id || params.value.client_id)
setTimeout(() => { setTimeout(() => {
spinning.value = false spinning.value = false
}) })

View File

@ -1,6 +1,6 @@
<template> <template>
<j-menu class='scene-dropdown-menus' @click='click' :selectedKeys='[myValue]'> <j-menu class='scene-dropdown-menus' @click='click' :selectedKeys='[myValue]'>
<j-menu-item v-for='item in myOptions' :key='item.value' :title='item.label'> <j-menu-item v-for='item in myOptions' :key='item[valueName]' :value='item.value' :title='item.label'>
<div> <div>
<Ellipsis > <Ellipsis >
{{ item.label }} {{ item.label }}
@ -63,12 +63,11 @@ const handleBoolean = (key: string) => {
} }
const click = (e: any) => { const click = (e: any) => {
let _key = ['true', 'false'].includes(e.key) ? handleBoolean(e.key) : e.key let _key = ['true', 'false'].includes(e.item?.value) ? handleBoolean(e.item?.value) : e.item?.value
if (isString(_key) && _key.startsWith('[') && _key.endsWith(']')) { const findKeyValue = e.key
_key = JSON.parse(_key) const findKey = ['true', 'false'].includes(findKeyValue) ? handleBoolean(findKeyValue) : findKeyValue
} const option = getOption(myOptions.value, findKey, props.valueName)
const option = getOption(myOptions.value, _key, props.valueName) myValue.value = findKeyValue
myValue.value = e.key
emit('update:value', _key) emit('update:value', _key)
emit('click', _key, { emit('click', _key, {
key: _key, key: _key,

View File

@ -39,7 +39,7 @@
v-if='(["metric", "upper"].includes(item.key) ? metricOptions : options).length' v-if='(["metric", "upper"].includes(item.key) ? metricOptions : options).length'
:options='["metric", "upper"].includes(item.key) ? metricOptions : options' :options='["metric", "upper"].includes(item.key) ? metricOptions : options'
:value='myValue' :value='myValue'
:valueName='valueName' :valueName='props.source === "metric" ? "id" : valueName'
@click='onSelect' @click='onSelect'
/> />
<div class='scene-select-empty' v-else> <div class='scene-select-empty' v-else>
@ -114,7 +114,7 @@ const visible = ref(false)
nextTick(() => { nextTick(() => {
mySource.value = props.source mySource.value = props.source
myValue.value = props.value myValue.value = props.source === 'metric' ? props.metric : props.value
}) })
const tabsChange = (e: string) => { const tabsChange = (e: string) => {
@ -143,6 +143,7 @@ const valueItemChange = (e: string) => {
const onSelect = (e: string, option: any) => { const onSelect = (e: string, option: any) => {
visible.value = false visible.value = false
label.value = option[props.labelName] label.value = option[props.labelName]
console.log(e, option)
emit('update:value', e) emit('update:value', e)
emit('select', e, label.value, { 0: label.value }, option) emit('select', e, label.value, { 0: label.value }, option)
} }
@ -160,18 +161,22 @@ const visibleChange = (v: boolean) => {
watchEffect(() => { watchEffect(() => {
const _options = ['metric', 'upper'].includes(props.source) ? props.metricOptions : props.options const _options = ['metric', 'upper'].includes(props.source) ? props.metricOptions : props.options
const option = getOption(_options, props.value as string, props.valueName) // label const isMetric = props.source === 'metric' //
myValue.value = props.value const _value = isMetric ? props.metric : props.value
const _valueName = isMetric ? 'id' : props.valueName
const option = getOption(_options, _value as string, _valueName) // label
myValue.value = isMetric ? props.metric : props.value
mySource.value = props.source mySource.value = props.source
console.log(option)
if (option) { if (option) {
label.value = option[props.labelName] || option.name label.value = option[props.labelName] || option.name
treeOpenKeys.value = openKeysByTree(_options, props.value, props.valueName) treeOpenKeys.value = openKeysByTree(_options, props.value, props.valueName)
} else { } else {
let doubleNull = false if (isMetric) { //
if (isArray(props.value)) { label.value = props.metric !== undefined ? props.value : props.placeholder
doubleNull = !!props.value.filter(item => !!item).length } else {
label.value = props.value !== undefined ? props.value : props.placeholder
} }
label.value = props.value !== undefined && !doubleNull ? props.value : props.placeholder
} }
}) })

View File

@ -53,5 +53,9 @@ export const defaultSetting = {
tabsOptions: { tabsOptions: {
type: Array as PropType<Array<TabsOption>>, type: Array as PropType<Array<TabsOption>>,
default: () => [] default: () => []
},
metric: {
type: String,
default: undefined
} }
} }

View File

@ -54,6 +54,7 @@
:options='valueOptions' :options='valueOptions'
:metricOptions='metricOption' :metricOptions='metricOption'
:tabsOptions='tabsOptions' :tabsOptions='tabsOptions'
:metric='paramsValue.value?.metric'
v-model:value='paramsValue.value.value' v-model:value='paramsValue.value.value'
v-model:source='paramsValue.value.source' v-model:source='paramsValue.value.source'
@select='valueSelect' @select='valueSelect'