Commit e2255bd04bf1f025dfae57074c5d7b46083c7c67
Merge branch 'fix/configuration-center' into 'main_dev'
fix: 修复组态权限区分 See merge request yunteng/thingskit-front!982
Showing
6 changed files
with
68 additions
and
46 deletions
| @@ -13,13 +13,14 @@ | @@ -13,13 +13,14 @@ | ||
| 13 | <script lang="ts"> | 13 | <script lang="ts"> |
| 14 | import { defineComponent, ref, computed, unref } from 'vue'; | 14 | import { defineComponent, ref, computed, unref } from 'vue'; |
| 15 | import { BasicForm, useForm } from '/@/components/Form'; | 15 | import { BasicForm, useForm } from '/@/components/Form'; |
| 16 | - import { formSchema, PC_DEFAULT_CONTENT, PHONE_DEFAULT_CONTENT, Platform } from './center.data'; | 16 | + import { formSchema } from './center.data'; |
| 17 | import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; | 17 | import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; |
| 18 | import { useMessage } from '/@/hooks/web/useMessage'; | 18 | import { useMessage } from '/@/hooks/web/useMessage'; |
| 19 | import { saveOrUpdateConfigurationCenter } from '/@/api/configuration/center/configurationCenter'; | 19 | import { saveOrUpdateConfigurationCenter } from '/@/api/configuration/center/configurationCenter'; |
| 20 | import { FileItem } from '/@/components/Form/src/components/ApiUpload.vue'; | 20 | import { FileItem } from '/@/components/Form/src/components/ApiUpload.vue'; |
| 21 | import { buildUUID } from '/@/utils/uuid'; | 21 | import { buildUUID } from '/@/utils/uuid'; |
| 22 | import { getDeviceProfile } from '/@/api/alarm/position'; | 22 | import { getDeviceProfile } from '/@/api/alarm/position'; |
| 23 | + import { PC_DEFAULT_CONTENT, PHONE_DEFAULT_CONTENT, Platform } from '../center/center.data'; | ||
| 23 | 24 | ||
| 24 | export default defineComponent({ | 25 | export default defineComponent({ |
| 25 | name: 'ConfigurationDrawer', | 26 | name: 'ConfigurationDrawer', |
| @@ -5,28 +5,17 @@ import { uploadThumbnail } from '/@/api/configuration/center/configurationCenter | @@ -5,28 +5,17 @@ import { uploadThumbnail } from '/@/api/configuration/center/configurationCenter | ||
| 5 | import { useComponentRegister } from '/@/components/Form'; | 5 | import { useComponentRegister } from '/@/components/Form'; |
| 6 | import { OrgTreeSelect } from '../../common/OrgTreeSelect'; | 6 | import { OrgTreeSelect } from '../../common/OrgTreeSelect'; |
| 7 | import { getDeviceProfile } from '/@/api/alarm/position'; | 7 | import { getDeviceProfile } from '/@/api/alarm/position'; |
| 8 | +import { Platform } from '../center/center.data'; | ||
| 8 | 9 | ||
| 9 | useComponentRegister('OrgTreeSelect', OrgTreeSelect); | 10 | useComponentRegister('OrgTreeSelect', OrgTreeSelect); |
| 10 | -export enum Platform { | ||
| 11 | - PHONE = 'phone', | ||
| 12 | - PC = 'pc', | ||
| 13 | -} | ||
| 14 | 11 | ||
| 15 | -export enum ConfigurationPermission { | ||
| 16 | - CREATE = 'api:yt:configuration:center:post', | ||
| 17 | - UPDATE = 'api:yt:configuration:center:update', | ||
| 18 | - DELETE = 'api:yt:configuration:center:delete', | ||
| 19 | - DESIGN = 'api:yt:configuration:center:get_configuration_info:design', | ||
| 20 | - PREVIEW = 'api:yt:configuration:center:get_configuration_info:preview', | ||
| 21 | - SHARE = 'api:yt:configuration:center:share', | ||
| 22 | - UN_SHARE = 'api:yt:configuration:center:monopoly', | 12 | +export enum ConfigurationTemplatePermission { |
| 13 | + CREATE = 'api:yt:configuration:template:center:post', | ||
| 14 | + UPDATE = 'api:yt:configuration:template:center:update', | ||
| 15 | + DELETE = 'api:yt:configuration:template:center:delete', | ||
| 16 | + DESIGN = 'api:yt:configuration:template:center:get_configuration_info:design', | ||
| 17 | + PREVIEW = 'api:yt:configuration:template:center:get_configuration_info:preview', | ||
| 23 | } | 18 | } |
| 24 | - | ||
| 25 | -export const PC_DEFAULT_CONTENT = | ||
| 26 | - '<mxfile><diagram>dZHBDsIgDIafhvuEzOh5Tr142sEzGXWQsHVhmKFP7xbAidMT5fv/UtoSVrTuZHgvLyhAE5oJR9iBUMrybT4dM3l4stnTzJPGKBHYAir1hACj7a4EDInRImqr+hTW2HVQ24RxY3BMbTfUadWeN7ACVc31ml6VsPK7jVk4g2pkLJ3tgtLy6A5gkFzg+IFYSVhhEK2PWleAnscXB+Pzjn/U988MdPZHwhQsb0+XZEesfAE=</diagram></mxfile>'; | ||
| 27 | - | ||
| 28 | -export const PHONE_DEFAULT_CONTENT = | ||
| 29 | - '<mxfile><diagram>dZHBEoIgEEC/hru6lXU2q0snD50Z2YQZdB2k0fr6dMCMsU4sb9+ysDDI6uFseCuvJFCzJBIDgyNLkjjdw7hM5OnIYRc5UBklvLSAQr3Qw1l7KIFdIFoibVUbwpKaBksbMG4M9aF2Jx12bXmFK1CUXK/pTQkrHd3E24VfUFXSd04hdYmaz65/SCe5oP4LQc4gM0TWRfWQoZ5mN4/F1Z3+ZD/3MtjYHwVjsJw9boIPgvwN</diagram></mxfile>'; | ||
| 30 | // 表格列数据 | 19 | // 表格列数据 |
| 31 | export const columns: BasicColumn[] = [ | 20 | export const columns: BasicColumn[] = [ |
| 32 | { | 21 | { |
| @@ -6,12 +6,11 @@ | @@ -6,12 +6,11 @@ | ||
| 6 | import { | 6 | import { |
| 7 | deleteConfigurationCenter, | 7 | deleteConfigurationCenter, |
| 8 | getPage, | 8 | getPage, |
| 9 | - shareConfiguration, | ||
| 10 | } from '/@/api/configuration/center/configurationCenter'; | 9 | } from '/@/api/configuration/center/configurationCenter'; |
| 11 | import { ConfigurationCenterItemsModal } from '/@/api/configuration/center/model/configurationCenterModal'; | 10 | import { ConfigurationCenterItemsModal } from '/@/api/configuration/center/model/configurationCenterModal'; |
| 12 | import { PageWrapper } from '/@/components/Page'; | 11 | import { PageWrapper } from '/@/components/Page'; |
| 13 | import { BasicForm, useForm } from '/@/components/Form'; | 12 | import { BasicForm, useForm } from '/@/components/Form'; |
| 14 | - import { ConfigurationPermission, Platform, searchFormSchema } from './center.data'; | 13 | + import { searchFormSchema, ConfigurationTemplatePermission } from './center.data'; |
| 15 | import { useMessage } from '/@/hooks/web/useMessage'; | 14 | import { useMessage } from '/@/hooks/web/useMessage'; |
| 16 | import { Authority } from '/@/components/Authority'; | 15 | import { Authority } from '/@/components/Authority'; |
| 17 | import ConfigurationCenterDrawer from './ConfigurationCenterDrawer.vue'; | 16 | import ConfigurationCenterDrawer from './ConfigurationCenterDrawer.vue'; |
| @@ -22,10 +21,10 @@ | @@ -22,10 +21,10 @@ | ||
| 22 | import { usePermission } from '/@/hooks/web/usePermission'; | 21 | import { usePermission } from '/@/hooks/web/usePermission'; |
| 23 | import { AuthIcon, CardLayoutButton } from '/@/components/Widget'; | 22 | import { AuthIcon, CardLayoutButton } from '/@/components/Widget'; |
| 24 | import AuthDropDown from '/@/components/Widget/AuthDropDown.vue'; | 23 | import AuthDropDown from '/@/components/Widget/AuthDropDown.vue'; |
| 25 | - import { ShareModal } from '/@/views/common/ShareModal'; | ||
| 26 | import { useRole } from '/@/hooks/business/useRole'; | 24 | import { useRole } from '/@/hooks/business/useRole'; |
| 27 | import { Icon } from '/@/components/Icon'; | 25 | import { Icon } from '/@/components/Icon'; |
| 28 | import { createScadaPageLink, ScadaModeEnum } from './help'; | 26 | import { createScadaPageLink, ScadaModeEnum } from './help'; |
| 27 | + import { Platform } from '../center/center.data'; | ||
| 29 | 28 | ||
| 30 | const listColumn = ref(5); | 29 | const listColumn = ref(5); |
| 31 | 30 | ||
| @@ -102,11 +101,11 @@ | @@ -102,11 +101,11 @@ | ||
| 102 | const { hasPermission } = usePermission(); | 101 | const { hasPermission } = usePermission(); |
| 103 | 102 | ||
| 104 | const getPreviewFlag = computed(() => { | 103 | const getPreviewFlag = computed(() => { |
| 105 | - return hasPermission(ConfigurationPermission.PREVIEW); | 104 | + return hasPermission(ConfigurationTemplatePermission.PREVIEW); |
| 106 | }); | 105 | }); |
| 107 | 106 | ||
| 108 | const getDesignFlag = computed(() => { | 107 | const getDesignFlag = computed(() => { |
| 109 | - return hasPermission(ConfigurationPermission.DESIGN); | 108 | + return hasPermission(ConfigurationTemplatePermission.DESIGN); |
| 110 | }); | 109 | }); |
| 111 | 110 | ||
| 112 | const handleCreateOrUpdate = (record?: ConfigurationCenterItemsModal) => { | 111 | const handleCreateOrUpdate = (record?: ConfigurationCenterItemsModal) => { |
| @@ -185,7 +184,7 @@ | @@ -185,7 +184,7 @@ | ||
| 185 | > | 184 | > |
| 186 | <template #header> | 185 | <template #header> |
| 187 | <div class="flex gap-3 justify-end"> | 186 | <div class="flex gap-3 justify-end"> |
| 188 | - <Authority v-if="!isCustomerUser" :value="ConfigurationPermission.CREATE"> | 187 | + <Authority v-if="!isCustomerUser" :value="ConfigurationTemplatePermission.CREATE"> |
| 189 | <Button type="primary" @click="handleCreateOrUpdate()">新增模板</Button> | 188 | <Button type="primary" @click="handleCreateOrUpdate()">新增模板</Button> |
| 190 | </Authority> | 189 | </Authority> |
| 191 | <CardLayoutButton v-model:value="listColumn" @change="handleCardLayoutChange" /> | 190 | <CardLayoutButton v-model:value="listColumn" @change="handleCardLayoutChange" /> |
| @@ -225,7 +224,7 @@ | @@ -225,7 +224,7 @@ | ||
| 225 | <template class="ant-card-actions" #actions> | 224 | <template class="ant-card-actions" #actions> |
| 226 | <Tooltip v-if="!isCustomerUser" title="设计"> | 225 | <Tooltip v-if="!isCustomerUser" title="设计"> |
| 227 | <AuthIcon | 226 | <AuthIcon |
| 228 | - :auth="ConfigurationPermission.DESIGN" | 227 | + :auth="ConfigurationTemplatePermission.DESIGN" |
| 229 | class="!text-lg" | 228 | class="!text-lg" |
| 230 | icon="ant-design:edit-outlined" | 229 | icon="ant-design:edit-outlined" |
| 231 | @click="handleDesign(item)" | 230 | @click="handleDesign(item)" |
| @@ -236,14 +235,14 @@ | @@ -236,14 +235,14 @@ | ||
| 236 | :dropMenuList="[ | 235 | :dropMenuList="[ |
| 237 | { | 236 | { |
| 238 | text: '编辑', | 237 | text: '编辑', |
| 239 | - auth: ConfigurationPermission.UPDATE, | 238 | + auth: ConfigurationTemplatePermission.UPDATE, |
| 240 | icon: 'clarity:note-edit-line', | 239 | icon: 'clarity:note-edit-line', |
| 241 | event: '', | 240 | event: '', |
| 242 | onClick: handleCreateOrUpdate.bind(null, item), | 241 | onClick: handleCreateOrUpdate.bind(null, item), |
| 243 | }, | 242 | }, |
| 244 | { | 243 | { |
| 245 | text: '删除', | 244 | text: '删除', |
| 246 | - auth: ConfigurationPermission.DELETE, | 245 | + auth: ConfigurationTemplatePermission.DELETE, |
| 247 | icon: 'ant-design:delete-outlined', | 246 | icon: 'ant-design:delete-outlined', |
| 248 | event: '', | 247 | event: '', |
| 249 | popconfirm: { | 248 | popconfirm: { |
| @@ -281,11 +280,6 @@ | @@ -281,11 +280,6 @@ | ||
| 281 | </List> | 280 | </List> |
| 282 | </section> | 281 | </section> |
| 283 | <ConfigurationCenterDrawer @register="registerDrawer" @success="getListData" /> | 282 | <ConfigurationCenterDrawer @register="registerDrawer" @success="getListData" /> |
| 284 | - <ShareModal | ||
| 285 | - @register="registerShareModal" | ||
| 286 | - :shareApi="shareConfiguration" | ||
| 287 | - @success="getListData" | ||
| 288 | - /> | ||
| 289 | </PageWrapper> | 283 | </PageWrapper> |
| 290 | </template> | 284 | </template> |
| 291 | 285 |
| @@ -15,6 +15,7 @@ export const option: PublicPresetOptions = { | @@ -15,6 +15,7 @@ export const option: PublicPresetOptions = { | ||
| 15 | [ComponentConfigFieldEnum.SHOW_TIME]: false, | 15 | [ComponentConfigFieldEnum.SHOW_TIME]: false, |
| 16 | [ComponentConfigFieldEnum.FONT_SIZE]: 14, | 16 | [ComponentConfigFieldEnum.FONT_SIZE]: 14, |
| 17 | [ComponentConfigFieldEnum.VALUE_SIZE]: 20, | 17 | [ComponentConfigFieldEnum.VALUE_SIZE]: 20, |
| 18 | + [ComponentConfigFieldEnum.MAX_NUMBER]: 120, | ||
| 18 | }; | 19 | }; |
| 19 | 20 | ||
| 20 | export default class Config extends PublicConfigClass implements CreateComponentType { | 21 | export default class Config extends PublicConfigClass implements CreateComponentType { |
| @@ -18,16 +18,38 @@ | @@ -18,16 +18,38 @@ | ||
| 18 | 18 | ||
| 19 | const time = ref<Nullable<number>>(null); | 19 | const time = ref<Nullable<number>>(null); |
| 20 | 20 | ||
| 21 | + const POSITIVE_NUMBER = 6; | ||
| 22 | + | ||
| 23 | + const ALL_PART = 7; | ||
| 24 | + | ||
| 25 | + const DEFAULT_PART_VALUE = 20; | ||
| 26 | + | ||
| 27 | + const partValue = computed(() => { | ||
| 28 | + const { config } = props; | ||
| 29 | + const { option } = config; | ||
| 30 | + const { componentInfo } = option; | ||
| 31 | + const { maxNumber = 120 } = componentInfo || {}; | ||
| 32 | + let value = maxNumber / POSITIVE_NUMBER; | ||
| 33 | + return value % 10 > 0 ? Math.floor(value / 10) * 10 + 10 : value + 10; | ||
| 34 | + }); | ||
| 35 | + | ||
| 36 | + const maxValueScale = computed(() => unref(partValue) / DEFAULT_PART_VALUE); | ||
| 37 | + | ||
| 21 | const getValue = computed(() => { | 38 | const getValue = computed(() => { |
| 22 | const maxHeight = 190; | 39 | const maxHeight = 190; |
| 23 | const minHeight = 15; | 40 | const minHeight = 15; |
| 41 | + | ||
| 24 | const height = maxHeight - minHeight; | 42 | const height = maxHeight - minHeight; |
| 25 | - const rangeNumber = 7; | ||
| 26 | - const itemRange = 20; | ||
| 27 | - const itemHeight = height / (rangeNumber * itemRange); | 43 | + |
| 44 | + const itemHeight = height / (ALL_PART * (DEFAULT_PART_VALUE * unref(maxValueScale))); | ||
| 45 | + | ||
| 28 | const value = unref(currentValue); | 46 | const value = unref(currentValue); |
| 29 | - const transformValue = | ||
| 30 | - maxHeight - (value >= 0 ? value + 20 : itemRange - Math.abs(value)) * itemHeight; | 47 | + let transformValue = |
| 48 | + maxHeight - | ||
| 49 | + (value >= 0 | ||
| 50 | + ? value + unref(DEFAULT_PART_VALUE * unref(maxValueScale)) | ||
| 51 | + : DEFAULT_PART_VALUE * unref(maxValueScale) - Math.abs(value)) * | ||
| 52 | + itemHeight; | ||
| 31 | 53 | ||
| 32 | return transformValue >= maxHeight | 54 | return transformValue >= maxHeight |
| 33 | ? maxHeight | 55 | ? maxHeight |
| @@ -184,7 +206,9 @@ | @@ -184,7 +206,9 @@ | ||
| 184 | style="stroke: rgb(136, 136, 136); shape-rendering: crispEdges; stroke-width: 1px" | 206 | style="stroke: rgb(136, 136, 136); shape-rendering: crispEdges; stroke-width: 1px" |
| 185 | /> | 207 | /> |
| 186 | <foreignObject xmlns="http://www.w3.org/2000/svg" x="-55" y="-10" width="45" height="20"> | 208 | <foreignObject xmlns="http://www.w3.org/2000/svg" x="-55" y="-10" width="45" height="20"> |
| 187 | - <div class="tick-label" xmlns="http://www.w3.org/1999/xhtml">-20</div> | 209 | + <div class="tick-label" xmlns="http://www.w3.org/1999/xhtml"> |
| 210 | + {{ partValue * -1 }} | ||
| 211 | + </div> | ||
| 188 | </foreignObject> | 212 | </foreignObject> |
| 189 | </g> | 213 | </g> |
| 190 | <g class="tick" opacity="1" transform="translate(0,165)"> | 214 | <g class="tick" opacity="1" transform="translate(0,165)"> |
| @@ -204,7 +228,9 @@ | @@ -204,7 +228,9 @@ | ||
| 204 | style="stroke: rgb(136, 136, 136); shape-rendering: crispEdges; stroke-width: 1px" | 228 | style="stroke: rgb(136, 136, 136); shape-rendering: crispEdges; stroke-width: 1px" |
| 205 | /> | 229 | /> |
| 206 | <foreignObject xmlns="http://www.w3.org/2000/svg" x="-55" y="-10" width="45" height="20"> | 230 | <foreignObject xmlns="http://www.w3.org/2000/svg" x="-55" y="-10" width="45" height="20"> |
| 207 | - <div class="tick-label" xmlns="http://www.w3.org/1999/xhtml">20</div> | 231 | + <div class="tick-label" xmlns="http://www.w3.org/1999/xhtml"> |
| 232 | + {{ partValue }} | ||
| 233 | + </div> | ||
| 208 | </foreignObject> | 234 | </foreignObject> |
| 209 | </g> | 235 | </g> |
| 210 | <g class="tick" opacity="1" transform="translate(0,115)"> | 236 | <g class="tick" opacity="1" transform="translate(0,115)"> |
| @@ -214,7 +240,9 @@ | @@ -214,7 +240,9 @@ | ||
| 214 | style="stroke: rgb(136, 136, 136); shape-rendering: crispEdges; stroke-width: 1px" | 240 | style="stroke: rgb(136, 136, 136); shape-rendering: crispEdges; stroke-width: 1px" |
| 215 | /> | 241 | /> |
| 216 | <foreignObject xmlns="http://www.w3.org/2000/svg" x="-55" y="-10" width="45" height="20"> | 242 | <foreignObject xmlns="http://www.w3.org/2000/svg" x="-55" y="-10" width="45" height="20"> |
| 217 | - <div class="tick-label" xmlns="http://www.w3.org/1999/xhtml">40</div> | 243 | + <div class="tick-label" xmlns="http://www.w3.org/1999/xhtml"> |
| 244 | + {{ partValue * 2 }} | ||
| 245 | + </div> | ||
| 218 | </foreignObject> | 246 | </foreignObject> |
| 219 | </g> | 247 | </g> |
| 220 | <g class="tick" opacity="1" transform="translate(0,90)"> | 248 | <g class="tick" opacity="1" transform="translate(0,90)"> |
| @@ -224,7 +252,9 @@ | @@ -224,7 +252,9 @@ | ||
| 224 | style="stroke: rgb(136, 136, 136); shape-rendering: crispEdges; stroke-width: 1px" | 252 | style="stroke: rgb(136, 136, 136); shape-rendering: crispEdges; stroke-width: 1px" |
| 225 | /> | 253 | /> |
| 226 | <foreignObject xmlns="http://www.w3.org/2000/svg" x="-55" y="-10" width="45" height="20"> | 254 | <foreignObject xmlns="http://www.w3.org/2000/svg" x="-55" y="-10" width="45" height="20"> |
| 227 | - <div class="tick-label" xmlns="http://www.w3.org/1999/xhtml">60</div> | 255 | + <div class="tick-label" xmlns="http://www.w3.org/1999/xhtml"> |
| 256 | + {{ partValue * 3 }} | ||
| 257 | + </div> | ||
| 228 | </foreignObject> | 258 | </foreignObject> |
| 229 | </g> | 259 | </g> |
| 230 | <g class="tick" opacity="1" transform="translate(0,65)"> | 260 | <g class="tick" opacity="1" transform="translate(0,65)"> |
| @@ -234,7 +264,9 @@ | @@ -234,7 +264,9 @@ | ||
| 234 | style="stroke: rgb(136, 136, 136); shape-rendering: crispEdges; stroke-width: 1px" | 264 | style="stroke: rgb(136, 136, 136); shape-rendering: crispEdges; stroke-width: 1px" |
| 235 | /> | 265 | /> |
| 236 | <foreignObject xmlns="http://www.w3.org/2000/svg" x="-55" y="-10" width="45" height="20"> | 266 | <foreignObject xmlns="http://www.w3.org/2000/svg" x="-55" y="-10" width="45" height="20"> |
| 237 | - <div class="tick-label" xmlns="http://www.w3.org/1999/xhtml">80</div> | 267 | + <div class="tick-label" xmlns="http://www.w3.org/1999/xhtml"> |
| 268 | + {{ partValue * 4 }} | ||
| 269 | + </div> | ||
| 238 | </foreignObject> | 270 | </foreignObject> |
| 239 | </g> | 271 | </g> |
| 240 | <g class="tick" opacity="1" transform="translate(0,40)"> | 272 | <g class="tick" opacity="1" transform="translate(0,40)"> |
| @@ -244,7 +276,9 @@ | @@ -244,7 +276,9 @@ | ||
| 244 | style="stroke: rgb(136, 136, 136); shape-rendering: crispEdges; stroke-width: 1px" | 276 | style="stroke: rgb(136, 136, 136); shape-rendering: crispEdges; stroke-width: 1px" |
| 245 | /> | 277 | /> |
| 246 | <foreignObject xmlns="http://www.w3.org/2000/svg" x="-55" y="-10" width="45" height="20"> | 278 | <foreignObject xmlns="http://www.w3.org/2000/svg" x="-55" y="-10" width="45" height="20"> |
| 247 | - <div class="tick-label" xmlns="http://www.w3.org/1999/xhtml">100</div> | 279 | + <div class="tick-label" xmlns="http://www.w3.org/1999/xhtml"> |
| 280 | + {{ partValue * 5 }} | ||
| 281 | + </div> | ||
| 248 | </foreignObject> | 282 | </foreignObject> |
| 249 | </g> | 283 | </g> |
| 250 | <g class="tick" opacity="1" transform="translate(0,15)"> | 284 | <g class="tick" opacity="1" transform="translate(0,15)"> |
| @@ -254,7 +288,9 @@ | @@ -254,7 +288,9 @@ | ||
| 254 | style="stroke: rgb(136, 136, 136); shape-rendering: crispEdges; stroke-width: 1px" | 288 | style="stroke: rgb(136, 136, 136); shape-rendering: crispEdges; stroke-width: 1px" |
| 255 | /> | 289 | /> |
| 256 | <foreignObject xmlns="http://www.w3.org/2000/svg" x="-55" y="-10" width="45" height="20"> | 290 | <foreignObject xmlns="http://www.w3.org/2000/svg" x="-55" y="-10" width="45" height="20"> |
| 257 | - <div class="tick-label" xmlns="http://www.w3.org/1999/xhtml">120</div> | 291 | + <div class="tick-label" xmlns="http://www.w3.org/1999/xhtml"> |
| 292 | + {{ partValue * 6 }} | ||
| 293 | + </div> | ||
| 258 | </foreignObject> | 294 | </foreignObject> |
| 259 | </g> | 295 | </g> |
| 260 | </g> | 296 | </g> |
| @@ -10,7 +10,7 @@ export function useSendCommand() { | @@ -10,7 +10,7 @@ export function useSendCommand() { | ||
| 10 | const loading = ref(false); | 10 | const loading = ref(false); |
| 11 | 11 | ||
| 12 | const error = () => { | 12 | const error = () => { |
| 13 | - createMessage.error('下发指令失败'); | 13 | + // createMessage.error('下发指令失败'); |
| 14 | return false; | 14 | return false; |
| 15 | }; | 15 | }; |
| 16 | 16 | ||
| @@ -52,6 +52,7 @@ export function useSendCommand() { | @@ -52,6 +52,7 @@ export function useSendCommand() { | ||
| 52 | createMessage.success('命令下发成功'); | 52 | createMessage.success('命令下发成功'); |
| 53 | return true; | 53 | return true; |
| 54 | } catch (msg) { | 54 | } catch (msg) { |
| 55 | + console.error(msg); | ||
| 55 | return error(); | 56 | return error(); |
| 56 | } finally { | 57 | } finally { |
| 57 | loading.value = false; | 58 | loading.value = false; |