Browse Source

优化加液样式

master
LiLongLong 2 weeks ago
parent
commit
4e4242bf3a
  1. 11
      package-lock.json
  2. 9
      src/app.vue
  3. 12
      src/components/common/DatePicker/index.vue
  4. 1
      src/components/formula/FormulaConfig.vue
  5. 4
      src/components/formula/FormulaTable.vue
  6. 2
      src/components/home/HomeSetting.vue
  7. 9
      src/components/liquid/LiquidLevel.vue
  8. 84
      src/components/liquid/ScaleRuler.vue
  9. 14
      src/components/setting/SystemDate.vue
  10. 9
      src/lang/en.ts
  11. 9
      src/lang/zh.ts
  12. 31
      src/layouts/default.vue
  13. 4
      src/libs/utils.ts
  14. 11
      src/stores/formulaStore.ts
  15. 14
      src/stores/systemStore.ts
  16. 5
      src/types/liquid.d.ts
  17. 1
      src/views/formula/index.vue
  18. 2
      src/views/home/chart.vue
  19. 89
      src/views/seal/index.vue
  20. 2
      vite.config.ts
  21. 1
      webdist-v0.0.1-anywhere/assets/FormulaConfig-BKVsODea.css
  22. 1
      webdist-v0.0.1-anywhere/assets/HomeFormula-BORLQ-Gb.css
  23. 1
      webdist-v0.0.1-anywhere/assets/background-login-BT83STvJ.svg
  24. 1
      webdist-v0.0.1-anywhere/assets/background-logo-BiYD8c3Z.svg
  25. 1
      webdist-v0.0.1-anywhere/assets/chart-CkznWhh8.css
  26. 1
      webdist-v0.0.1-anywhere/assets/config-C7YUynLv.css
  27. 1
      webdist-v0.0.1-anywhere/assets/default-CRp7iiW0.css
  28. BIN
      webdist-v0.0.1-anywhere/assets/default-CRp7iiW0.css.gz
  29. 1
      webdist-v0.0.1-anywhere/assets/element-plus-CM8UrFiZ.css
  30. BIN
      webdist-v0.0.1-anywhere/assets/element-plus-CM8UrFiZ.css.gz
  31. 1
      webdist-v0.0.1-anywhere/assets/index-9QuJDPnt.css
  32. 1
      webdist-v0.0.1-anywhere/assets/index-CGcAjSVH.css
  33. 1
      webdist-v0.0.1-anywhere/assets/index-C_LZ3iaC.css
  34. 1
      webdist-v0.0.1-anywhere/assets/index-Cb5jIE5L.css
  35. 1
      webdist-v0.0.1-anywhere/assets/index-Csn56yeC.css
  36. 1
      webdist-v0.0.1-anywhere/assets/index-D3lxSg1x.css
  37. 1
      webdist-v0.0.1-anywhere/assets/index-D7MyUMcJ.css
  38. 1
      webdist-v0.0.1-anywhere/assets/index-DRUttz4C.css
  39. 1
      webdist-v0.0.1-anywhere/assets/index-DXy7vYdu.css
  40. 2
      webdist-v0.0.1-anywhere/assets/index-FZ48n_d9.js
  41. BIN
      webdist-v0.0.1-anywhere/assets/index-FZ48n_d9.js.gz
  42. 1
      webdist-v0.0.1-anywhere/assets/index-HhKFIjor.css
  43. 1
      webdist-v0.0.1-anywhere/assets/liquid-scale-DMtMCxmK.svg
  44. 1
      webdist-v0.0.1-anywhere/assets/logo-xwi68D73.svg
  45. 1
      webdist-v0.0.1-anywhere/assets/n-disinfect-BzXI2EVH.svg
  46. 1
      webdist-v0.0.1-anywhere/assets/s-disinfect-BhCWntgD.svg
  47. BIN
      webdist-v0.0.1-anywhere/favicon.ico
  48. 37
      webdist-v0.0.1-anywhere/index.html
  49. 1
      webdist-v0.0.1-anywhere/js/@ctrl/@ctrl.r5W6hzzQ.1751277099553.js
  50. BIN
      webdist-v0.0.1-anywhere/js/@ctrl/@ctrl.r5W6hzzQ.1751277099553.js.gz
  51. 1
      webdist-v0.0.1-anywhere/js/@element-plus/@element-plus.C01e5HIG.1751277099553.js
  52. BIN
      webdist-v0.0.1-anywhere/js/@element-plus/@element-plus.C01e5HIG.1751277099553.js.gz
  53. 1
      webdist-v0.0.1-anywhere/js/@floating-ui/@floating-ui.DwceP2Gb.1751277099553.js
  54. BIN
      webdist-v0.0.1-anywhere/js/@floating-ui/@floating-ui.DwceP2Gb.1751277099553.js.gz
  55. 15
      webdist-v0.0.1-anywhere/js/@intlify/@intlify.Bpjdt8ji.1751277099553.js
  56. BIN
      webdist-v0.0.1-anywhere/js/@intlify/@intlify.Bpjdt8ji.1751277099553.js.gz
  57. 1
      webdist-v0.0.1-anywhere/js/@popperjs/@popperjs.D_chPuIy.1751277099553.js
  58. BIN
      webdist-v0.0.1-anywhere/js/@popperjs/@popperjs.D_chPuIy.1751277099553.js.gz
  59. 17
      webdist-v0.0.1-anywhere/js/@vue/@vue.B_jFLcBm.1751277099553.js
  60. BIN
      webdist-v0.0.1-anywhere/js/@vue/@vue.B_jFLcBm.1751277099553.js.gz
  61. 1
      webdist-v0.0.1-anywhere/js/@vueuse/@vueuse.VzzCFLRY.1751277099553.js
  62. 1
      webdist-v0.0.1-anywhere/js/FormulaConfig/FormulaConfig.DWjnEYue.1751277099553.js
  63. 1
      webdist-v0.0.1-anywhere/js/HomeFormula/HomeFormula.CH2dWXQd.1751277099553.js
  64. 12
      webdist-v0.0.1-anywhere/js/async-validator/async-validator.CDKkdPIV.1751277099553.js
  65. BIN
      webdist-v0.0.1-anywhere/js/async-validator/async-validator.CDKkdPIV.1751277099553.js.gz
  66. 1
      webdist-v0.0.1-anywhere/js/audit/index.DRPZtofH.1751277099553.js
  67. 1
      webdist-v0.0.1-anywhere/js/birpc/birpc.l0sNRNKZ.1751277099553.js
  68. 1
      webdist-v0.0.1-anywhere/js/countdownTimer/countdownTimer.DjcHpc3B.1751277099553.js
  69. 1
      webdist-v0.0.1-anywhere/js/dayjs/dayjs.CWsDMI8D.1751277099553.js
  70. BIN
      webdist-v0.0.1-anywhere/js/dayjs/dayjs.CWsDMI8D.1751277099553.js.gz
  71. 1
      webdist-v0.0.1-anywhere/js/debug/index.DU4AAs3o.1751277099553.js
  72. 1
      webdist-v0.0.1-anywhere/js/deep-pick-omit/deep-pick-omit.CegYQlcN.1751277099553.js
  73. 1
      webdist-v0.0.1-anywhere/js/destr/destr.Ctyiwlcu.1751277099553.js
  74. 1
      webdist-v0.0.1-anywhere/js/deviceComm/deviceComm.DAoxdyzs.1751277099553.js
  75. 43
      webdist-v0.0.1-anywhere/js/echarts/echarts.CoO2sT-h.1751277099553.js
  76. BIN
      webdist-v0.0.1-anywhere/js/echarts/echarts.CoO2sT-h.1751277099553.js.gz
  77. 13
      webdist-v0.0.1-anywhere/js/element-plus/element-plus.DC0PKXec.1751277099553.js
  78. BIN
      webdist-v0.0.1-anywhere/js/element-plus/element-plus.DC0PKXec.1751277099553.js.gz
  79. 1
      webdist-v0.0.1-anywhere/js/formula/index.BNUbY95k.1751277099553.js
  80. 1
      webdist-v0.0.1-anywhere/js/home-finish/home-finish.DR4cSfoU.1751277099553.js
  81. 1
      webdist-v0.0.1-anywhere/js/home-start/home-start.DkzYmnJr.1751277099553.js
  82. 1
      webdist-v0.0.1-anywhere/js/home/chart.CtKpKZg0.1751277099553.js
  83. 1
      webdist-v0.0.1-anywhere/js/home/config.8m4GpftL.1751277099553.js
  84. 1
      webdist-v0.0.1-anywhere/js/home/index.CtFTitm1.1751277099553.js
  85. BIN
      webdist-v0.0.1-anywhere/js/home/index.CtFTitm1.1751277099553.js.gz
  86. 1
      webdist-v0.0.1-anywhere/js/hookable/hookable.l0sNRNKZ.1751277099553.js
  87. 1
      webdist-v0.0.1-anywhere/js/index/index.DTZj_65S.1751277099553.js
  88. BIN
      webdist-v0.0.1-anywhere/js/index/index.DTZj_65S.1751277099553.js.gz
  89. 1
      webdist-v0.0.1-anywhere/js/layouts/default.BjW1jcuw.1751277099553.js
  90. BIN
      webdist-v0.0.1-anywhere/js/layouts/default.BjW1jcuw.1751277099553.js.gz
  91. 1
      webdist-v0.0.1-anywhere/js/liquid/index.x3osuUJG.1751277099553.js
  92. 1
      webdist-v0.0.1-anywhere/js/lodash-es/lodash-es.S0Y0Up6J.1751277099553.js
  93. BIN
      webdist-v0.0.1-anywhere/js/lodash-es/lodash-es.S0Y0Up6J.1751277099553.js.gz
  94. 1
      webdist-v0.0.1-anywhere/js/lodash-unified/lodash-unified.l0sNRNKZ.1751277099553.js
  95. 27
      webdist-v0.0.1-anywhere/js/lodash/lodash.Cz9E_6Pa.1751277099553.js
  96. BIN
      webdist-v0.0.1-anywhere/js/lodash/lodash.Cz9E_6Pa.1751277099553.js.gz
  97. 1
      webdist-v0.0.1-anywhere/js/login/index.BG-zSPxX.1751277099553.js
  98. 1
      webdist-v0.0.1-anywhere/js/logo/logo.BEfjoRN6.1751277099553.js
  99. 1
      webdist-v0.0.1-anywhere/js/memoize-one/memoize-one.BdPwpGay.1751277099553.js
  100. 1
      webdist-v0.0.1-anywhere/js/nanoid/nanoid.OxPLOBIU.1751277099553.js

11
package-lock.json

@ -58,6 +58,7 @@
"eslint": "^9.21.0",
"eslint-config-prettier": "^10.0.2",
"eslint-plugin-prettier": "^5.2.3",
"eslint-plugin-simple-import-sort": "^12.1.1",
"eslint-plugin-vue": "^9.32.0",
"husky": "^9.1.7",
"lint-staged": "^15.4.3",
@ -4369,6 +4370,16 @@
"eslint": ">=8.44.0"
}
},
"node_modules/eslint-plugin-simple-import-sort": {
"version": "12.1.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.1.tgz",
"integrity": "sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==",
"dev": true,
"license": "MIT",
"peerDependencies": {
"eslint": ">=5.0.0"
}
},
"node_modules/eslint-plugin-toml": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-toml/-/eslint-plugin-toml-0.12.0.tgz",

9
src/app.vue

@ -2,6 +2,7 @@
import { useDeviceStore } from 'stores/deviceStore'
import { useHomeStore } from 'stores/homeStore'
import { useLiquidStore } from 'stores/liquidStore'
import { useSystemStore } from 'stores/systemStore'
import { onBeforeMount, ref } from 'vue'
import { sendCmd } from '@/apis/system'
@ -18,6 +19,7 @@ const deviceStore = useDeviceStore()
const homeStore = useHomeStore()
const formulaStore = useFormulaStore()
const liquidStore = useLiquidStore()
const systemStore = useSystemStore()
//
const progress = ref(0) //
@ -34,8 +36,14 @@ onBeforeMount(async () => {
setInterval(async () => {
await readH2o2Data()
}, 10 * 1000)
//
getSystemTime()
})
const getSystemTime = () => {
systemStore.getSystemTime()
}
/**
* @function 初始化设备信息
* @desc 从服务端获取设备信息并更新到状态存储
@ -44,7 +52,6 @@ const initDeviceInfo = async () => {
const deviceParams = {
className: 'DeviceInfoMgrService',
fnName: 'getDeviceInfo',
params: {},
}
const res = await sendCmd(deviceParams)
deviceStore.updateDeviceInfo(res)

12
src/components/common/DatePicker/index.vue

@ -41,14 +41,12 @@ const displayValue = () => {
if (!selectedDate.value) {
return ''
}
console.log('---selectedDate--', selectedDate.value)
const year = selectedDate.value.getFullYear()
const month = (selectedDate.value.getMonth() + 1).toString().padStart(2, '0')
const date = selectedDate.value.getDate().toString().padStart(2, '0')
const hour = selectedDate.value.getHours().toString().padStart(2, '0')
const minute = selectedDate.value.getMinutes().toString().padStart(2, '0')
const second = selectedDate.value.getSeconds().toString().padStart(2, '0')
dateText.value = `${year}-${month}-${date} ${hour}:${minute}:${second}`
}
@ -97,7 +95,7 @@ const daysInMonth: any = computed(() => {
//
onMounted(() => {
const initialDate = new Date()
const initialDate = props.modelValue ? new Date(Number(props.modelValue)) : new Date()
selectedDate.value = initialDate
currentYear.value = initialDate.getFullYear()
currentMonth.value = initialDate.getMonth()
@ -109,7 +107,7 @@ onMounted(() => {
// props
watch(() => props.modelValue, (newVal) => {
if (newVal) {
const date = new Date(newVal)
const date = new Date(Number(newVal))
if (!Number.isNaN(date.getTime())) {
selectedDate.value = date
currentYear.value = date.getFullYear()
@ -122,7 +120,7 @@ watch(() => props.modelValue, (newVal) => {
else {
selectedDate.value = null
}
})
}, { deep: true })
//
const prevMonth = () => {
@ -186,7 +184,7 @@ const updateTime = () => {
const confirmSelection = () => {
if (selectedDate.value) {
const dateValue = formatDate(selectedDate.value, props.format)
emits('update:modelValue', dateValue)
// emits('update:modelValue', dateValue)
emits('change', dateValue)
}
isDropdownVisible.value = false
@ -204,8 +202,6 @@ const formatDate = (date: Date, format: string): string => {
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()
console.log('---year--', year)
console.log('---month--', month)
return format
.replace('YYYY', year.toString())
.replace('MM', month.toString().padStart(2, '0'))

1
src/components/formula/FormulaConfig.vue

@ -134,6 +134,7 @@ watchEffect(() => {
isFlip.value = formulaStore.flip
// int.
formData.value = convertValuesToInt(formData.value)
options.value = formulaStore.logLevelOptions
})
/**

4
src/components/formula/FormulaTable.vue

@ -20,7 +20,7 @@ onMounted(() => {
watchEffect(() => {
recipes.value = formulaStore.formulaList
if (formulaStore.formulaList) {
selectedIndex.value = formulaStore.formulaList.length - 1
selectedIndex.value = formulaStore.selectedIndex || formulaStore.formulaList.length - 1
}
})
@ -34,6 +34,7 @@ const initFormulaList = () => {
}
const selectRecipe = (item: Formula.FormulaItem, index: number) => {
formulaStore.updateSelectedIndex(index)
selectedIndex.value = selectedIndex.value === index ? null : index
console.log('selectedIndex--', selectedIndex)
item = convertValuesToInt(item) as Formula.FormulaItem
@ -84,6 +85,7 @@ const deleteRecipe = (item: Formula.FormulaItem) => {
}
syncSendCmd(delParams).then(() => {
FtMessage.success('操作成功')
formulaStore.updateSelectedIndex(0)
formulaStore.initFormulaList()
})
}

2
src/components/home/HomeSetting.vue

@ -3,7 +3,7 @@ import { sendCmd, syncSendCmd } from 'apis/system'
// import homeChart from 'assets/images/home/home-chart.svg'
import BtButton from 'components/common/BTButton/index.vue'
import CascadingSelectModal from 'components/common/CascadingSelectModal/index.vue'
import Config from 'components/home/Config.vue'
import Config from 'components/home/config.vue'
import { compareJSON } from 'libs/utils'
import { cloneDeep } from 'lodash'
import { computed, onMounted, provide, ref, watchEffect } from 'vue'

9
src/components/liquid/LiquidLevel.vue

@ -1,6 +1,7 @@
<script lang="ts" setup>
import liquidLevelSvg from 'assets/images/liquid/liquid-container.svg'
import liquidScaleSvg from 'assets/images/liquid/liquid-scale.svg'
import ScaleRuler from 'components/liquid/ScaleRuler.vue'
// import liquidScaleSvg from 'assets/images/liquid/liquid-scale.svg'
import { roundNumber } from 'libs/utils'
import { computed, ref, watchEffect } from 'vue'
@ -21,17 +22,17 @@ const nowLiquid = computed(() => {
// 200px
const liquidHeight = computed(() => {
return (Number(nowLiquid.value) / Number(liquidTotal.value)) * 200
return ((Number(nowLiquid.value) / Number(liquidTotal.value)) * 100).toFixed(2)
})
</script>
<template>
<div class="liquid-level-main">
<img :src="liquidScaleSvg" alt="刻度" class="liquid-level-img">
<ScaleRuler :max-scale="liquidTotal" />
<div class="liquid-level-contailner">
<img :src="liquidLevelSvg" alt="液位图" class="liquid-level-img">
<!-- <div class="liquid-level-middle" :style="{ height: `${liquidHeight}px` }" /> -->
<div class="liquid-level" :style="{ height: `${liquidHeight}px` }" />
<div class="liquid-level" :style="{ height: `${liquidHeight}%` }" />
<div class="current-level">
<span>当前液位</span>
<span class="text">{{ nowLiquid }}</span>

84
src/components/liquid/ScaleRuler.vue

@ -0,0 +1,84 @@
<script lang="ts" setup>
import { computed } from 'vue'
// 30005000
const props = defineProps<{
maxScale: {
type: number
default: 2500
} // 30005000
}>()
//
const baseInterval = 200 //
const smallInterval = 20 //
const totalHeight = 430 // px
const markHeight = 2 // 线px
//
const renderedMarks = computed(() => {
const marks: Liquid.Marks[] = []
for (let value = 0; value <= Number(props.maxScale); value += smallInterval) {
const showText = value % baseInterval === 0
// 线
const startY = (value / Number(props.maxScale)) * totalHeight
marks.push({ value, startY, showText })
}
return marks
})
const rulerWidth = (mark) => {
console.log('mark--', mark)
if (mark.value % 100 === 0) {
return 80
}
if (mark.value % 5 === 0) {
return 40
}
return 20
}
</script>
<template>
<div class="scale-ruler-container" :style="{ height: `${totalHeight}px` }">
<div
v-for="(mark, index) in renderedMarks"
:key="index"
class="scale-mark"
:style="{
height: `${markHeight}px`,
top: `${totalHeight - mark.startY}` + 'px',
width: `${rulerWidth(mark)}%`,
}"
>
<div
v-if="mark.showText"
class="mark-text"
:style="{ transform: `translateX(-50%) translateY(-100%)` }"
>
<div style="margin-left: -2.5rem">{{ mark.value }}g</div>
</div>
</div>
</div>
</template>
<style scoped lang="scss">
.scale-ruler-container {
position: relative;
width: 40px; /* 刻度容器宽度,可按需调整 */
border-left: 1px solid #000; /* 刻度标尺边框 */
margin-left: 20px; /* 给文字留出显示空间,可按需调整 */
}
.scale-mark {
position: absolute;
background-color: #000;
}
.mark-text {
position: absolute;
font-size: 12px;
white-space: nowrap;
}
</style>

14
src/components/setting/SystemDate.vue

@ -1,8 +1,13 @@
<script lang="ts" setup>
import { onMounted, ref } from 'vue'
import { syncSendCmd } from '@/apis/system'
import DatePicker from '@/components/common/DatePicker/index.vue'
import { FtMessage } from '@/libs/message'
import { useSystemStore } from '@/stores/systemStore'
const systemStore = useSystemStore()
const systemTime = ref<string>(`${systemStore.systemTime}`)
const onChangeDate = async (value: string) => {
if (value) {
const splitDate = value.split(' ') //
@ -39,18 +44,25 @@ const onChangeDate = async (value: string) => {
syncSendCmd(timeParams).then((res) => {
if (res.ackcode === 0) {
FtMessage.success('日期设置成功')
systemStore.getSystemTime()
}
})
}
}
onMounted(() => {
console.log('systemTime--', systemTime.value)
})
</script>
<template>
<div>
<div class="date-main">
<div class="date-com">
设置日期
日期设置
<DatePicker
:key="systemTime"
v-model="systemTime"
format="YYYY-MM-DD HH:mm:ss"
@change="(val) => onChangeDate(val)"
/>

9
src/lang/en.ts

@ -1,15 +1,6 @@
// src/lang/en.ts
export default {
message: {
welcome: 'Welcome to Vue 3 + TypeScript Internationalization Demo',
switch: 'Switch Language',
greeting: 'Hello!',
content: 'This is a demonstration of implementing internationalization in Vue3 + TypeScript.',
features: 'Features',
feature1: 'Language switching between Chinese and English',
feature2: 'Automatically save user language preferences',
feature3: 'Supports dynamic language switching without page refresh',
footer: '© 2025 Vue3 Internationalization Demo',
disinfectant: 'Disinfectant',
},
}

9
src/lang/zh.ts

@ -1,15 +1,6 @@
// src/lang/zh.ts
export default {
message: {
welcome: '欢迎来到 Vue 3 + TypeScript 国际化演示',
switch: '切换语言',
greeting: '你好!',
content: '这是一个在 Vue3 + TypeScript 中实现国际化的演示。',
features: '功能特点',
feature1: '中英文语言切换',
feature2: '自动保存用户语言偏好',
feature3: '支持动态切换语言无需刷新页面',
footer: '© 2025 Vue3 国际化演示',
disinfectant: '消毒液',
},
}

31
src/layouts/default.vue

@ -8,7 +8,7 @@ import NetReconnection from 'components/system/NetReconnection.vue'
import { formatDateTime, openFullscreen } from 'libs/utils'
import { authRoutes } from 'router/routes'
import { useDeviceStore } from 'stores/deviceStore'
import { onMounted, onUnmounted, ref, watchEffect } from 'vue'
import { onMounted, onUnmounted, ref, watch, watchEffect } from 'vue'
import { useI18n } from 'vue-i18n'
import { useRouter } from 'vue-router'
@ -27,12 +27,10 @@ const homeStore = useHomeStore()
const deviceStore = useDeviceStore()
const systemStore = useSystemStore()
const languages = systemStore.languages
const currentTime = ref(formatDateTime())
const currentTime = ref(formatDateTime('YYYY-MM-DD HH:mm:ss'))
const timeInterval = ref()
const languageType = ref('zh-cn')
const deviceInfo = ref<Device.DeviceInfo>(deviceStore.deviceInfo)
const timeInterval = setInterval(() => {
currentTime.value = formatDateTime()
}, 1000)
const workStateName = ref<string>('空闲')
const disinfectState = ref(homeStore.disinfectionState.state)
const liquidAddState = ref(liquidStore.liquidAddWorkState)
@ -88,6 +86,10 @@ const showDeviceStateName = () => {
}
}
onMounted(() => {
runSystemTime(systemStore.systemTime)
})
watchEffect(() => {
deviceInfo.value = deviceStore.deviceInfo
websocketConnected.value = systemStore.websocketConnected
@ -103,8 +105,25 @@ watchEffect(() => {
isLowCost.value = deviceStore.isLowCost
})
watch(() => systemStore.systemTime, (newVal) => {
if (timeInterval.value) {
clearInterval(timeInterval.value)
}
runSystemTime(newVal)
}, { deep: true })
const runSystemTime = (time: number) => {
if (time) {
let sysTime = time
timeInterval.value = setInterval(() => {
sysTime = sysTime + 1000
currentTime.value = formatDateTime('YYYY-MM-DD HH:mm:ss', sysTime)
}, 1000)
}
}
onUnmounted(() => {
clearInterval(timeInterval)
clearInterval(timeInterval.value)
})
// const showErrorModal = () => {
// ErrorBox.alert('')

4
src/libs/utils.ts

@ -1,5 +1,5 @@
export function formatDateTime(template: string = 'YYYY-MM-DD HH:mm:ss'): string {
const now = new Date()
export function formatDateTime(template: string = 'YYYY-MM-DD HH:mm:ss', timestamp?: number): string {
const now = timestamp ? new Date(timestamp) : new Date()
const tokens: Record<string, string> = {
YYYY: String(now.getFullYear()),
MM: String(now.getMonth() + 1).padStart(2, '0'),

11
src/stores/formulaStore.ts

@ -46,6 +46,7 @@ export const useFormulaStore = defineStore('formula', () => {
const formulaList = ref<Formula.FormulaItem[]>([])
const loglevel = ref<string>('1')
const flip = ref(true)
const selectedIndex = ref(0)
watch(defaultFormulaInfo, (newVal) => {
currentSelectedFormulaInfo.value = cloneDeep(newVal)
@ -134,6 +135,7 @@ export const useFormulaStore = defineStore('formula', () => {
* @desc
*/
const updateSelectedFormulaData = (formulaItem: Formula.FormulaItem) => {
console.log('formulaItem--', formulaItem)
currentSelectedFormulaInfo.value = cloneDeep(formulaItem)
}
@ -161,7 +163,8 @@ export const useFormulaStore = defineStore('formula', () => {
if (res.rely) {
formulaList.value = res.rely
if (res.rely.length) {
currentSelectedFormulaInfo.value = res.rely[res.rely.length - 1]
console.log('selectedIndex.value--', selectedIndex.value)
currentSelectedFormulaInfo.value = selectedIndex.value ? res.rely[selectedIndex.value] : res.rely[res.rely.length - 1]
}
}
else {
@ -217,6 +220,10 @@ export const useFormulaStore = defineStore('formula', () => {
flip.value = data
}
const updateSelectedIndex = (index: number) => {
selectedIndex.value = index
}
return {
// 属性
logEnums,
@ -231,6 +238,7 @@ export const useFormulaStore = defineStore('formula', () => {
defaultFormulaInfo,
isDefaultFormula,
flip,
selectedIndex,
// 方法
updatePressurList,
updateSelectedFormulaData,
@ -243,5 +251,6 @@ export const useFormulaStore = defineStore('formula', () => {
resetToDefaultFormula,
getFormualDefaultData,
updateFlip,
updateSelectedIndex,
}
})

14
src/stores/systemStore.ts

@ -1,7 +1,7 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
import { syncSendCmd } from '@/apis/system'
import { sendCmd, syncSendCmd } from '@/apis/system'
export const useSystemStore = defineStore('system', () => {
const websocketConnected = ref(true)
@ -27,6 +27,7 @@ export const useSystemStore = defineStore('system', () => {
const streamVisible = false
const systemList = ref([])
const loading = ref(false)
const systemTime = ref(Date.now())
const updateLoading = (loadVal: boolean) => {
loading.value = loadVal
@ -91,6 +92,15 @@ export const useSystemStore = defineStore('system', () => {
syncSendCmd(subParams)
}
const getSystemTime = async () => {
const timeParams = {
className: 'OsMgrService',
fnName: 'getTime',
}
const res = await sendCmd(timeParams)
systemTime.value = res.time
}
return {
systemUser,
loginForm,
@ -101,6 +111,7 @@ export const useSystemStore = defineStore('system', () => {
systemList,
loading,
websocketConnected,
systemTime,
updateLoading,
updateConnected,
@ -108,5 +119,6 @@ export const useSystemStore = defineStore('system', () => {
subscribeAddLiquidEvent,
subscribeDrainLiquidEvent,
subscribeSealEvent,
getSystemTime,
}
})

5
src/types/liquid.d.ts

@ -14,4 +14,9 @@ declare namespace Liquid {
maxLiquid: number
updatePeriod: number
}
interface Marks {
value: number
startY: number
showText: boolean
}
}

1
src/views/formula/index.vue

@ -16,6 +16,7 @@ const onAddFormula = () => {
syncSendCmd(params).then((res) => {
if (res.ackcode === 0) {
FtMessage.success('新增成功')
formulaStore.updateSelectedIndex(0)
formulaStore.initFormulaList()
formulaStore.updateFlip(true)
}

2
src/views/home/chart.vue

@ -2,7 +2,7 @@
import { syncSendCmd } from 'apis/system'
import homeFinish from 'assets/images/home/home-finish.svg'
import homeSettingSvg from 'assets/images/home/home-setting.svg'
import Config from 'components/home/Config.vue'
import Config from 'components/home/config.vue'
import HomeFormula from 'components/home/HomeFormula.vue'
import LineChart from 'components/home/LineChart.vue'
import { stopTimer } from 'libs/countdownTimer'

89
src/views/seal/index.vue

@ -1,5 +1,5 @@
<script lang="ts" setup>
import { subscribeEvent, syncSendCmd } from 'apis/system'
import { sendCmd, subscribeEvent, syncSendCmd } from 'apis/system'
import homeFinish from 'assets/images/home/home-finish.svg'
import homeStart from 'assets/images/home/home-start.svg'
import SealInstrumentSvg from 'assets/images/seal/seal-instrument.svg'
@ -34,14 +34,20 @@ onMounted(() => {
// initData()
systemStore.subscribeSealEvent()
subscribeSealState()
initAirLeakConfig()
})
const getFirstPressure = () => {
// leakTesting6
if (sealInfo.value.workState === 'leakTesting' && !currentPressure.value) {
setTimeout(() => {
if (sealInfo.value.workState === 'leakTesting') {
//
startPosityveTimer((time) => {
sealRemainTimeS.value = time
})
loading.value = false
if (!currentPressure.value) {
currentPressure.value = realTimePressure.value
}, 6000)
}
}
}
@ -60,6 +66,19 @@ watch(inputValue, (newVal: string | number) => {
// }
})
/**
* @function 初始化打压配置
* @desc 获取打压配置
*/
const initAirLeakConfig = async () => {
const params = {
className: 'AirLeakDetectTest',
fnName: 'getServiceConfig',
}
const res = await sendCmd(params)
inflationTime.value = res.inflationTimeMs
}
const subscribeSealState = () => {
//
subscribeEvent('stateUpdate', (data: Socket.WebSocketResponse<Seal.SealStateItem>) => {
@ -74,16 +93,8 @@ const stopText = computed(() => {
return sealInfo.value.workState === 'stopping' ? '停止中...' : '停止测试'
})
const openKeyboard = () => {
keyboardVisible.value = true
}
// const pressure = ref()
const onStartTest = () => {
if (!inflationTime.value) {
FtMessage.warning('请输入测试时间')
return
}
const statusName = getDeviceStatus()
if (statusName) {
FtMessageBox.error(statusName)
@ -93,24 +104,18 @@ const onStartTest = () => {
className: 'AirLeakDetectTest',
fnName: 'start',
params: {
inflationTimeMs: Number(inflationTime.value * 1000), // ms
inflationTimeMs: 0,
},
}
loading.value = true
syncSendCmd(params).then((res) => {
loading.value = false
if (res.ackcode === 0) {
FtMessage.success('开始执行密封测试')
//
startPosityveTimer((time) => {
sealRemainTimeS.value = time
})
}
else {
FtMessage.error('指令发送失败,请稍候再试')
}
}).catch(() => {
loading.value = false
FtMessage.error('指令发送失败,请稍候再试')
})
}
@ -141,6 +146,10 @@ const handleConfirm = (value: string) => {
const stopDisabled = computed(() => {
return sealInfo.value.workState === 'stopping' || sealInfo.value.workState === 'idle'
})
const diffPressure = computed(() => {
return Number(currentPressure.value) - Number(realTimePressure.value)
})
</script>
<template>
@ -166,13 +175,13 @@ const stopDisabled = computed(() => {
</div>
<div class="seal-status">
<div class="seal-diff-text">
实时值
测试前气压
</div>
<div v-if="sealInfo.workState === 'idle'" class="seal-diff-statue seal-diff-text">
未开始
</div>
<div v-else class="seal-test-time">
{{ realTimePressure }}
{{ currentPressure }}
</div>
</div>
</div>
@ -183,42 +192,15 @@ const stopDisabled = computed(() => {
<div class="title-text-test">
<img :src="SealInstrumentSvg" alt="仪表盘">
<div class="title-text">
测试前气压
气压差值
</div>
<div class="title-text title-text-kpa">
<span>{{ currentPressure }}</span>
<span>{{ diffPressure }}</span>
<span class="title-kpa-pl">Kp</span>
</div>
</div>
</div>
<div class="seal-right-btn">
<div class="seal-input">
<div class="inflation-time">
打压时间
</div>
<el-input
v-model="inflationTime"
v-prevent-keyboard
class="input"
name="inflation"
placeholder="请输入"
style="height: 4rem"
@focus="openKeyboard"
>
<template #append>
<bt-button
type="primary"
button-text="秒"
border-radius="0"
bg-color="#2892F3"
text-color="#ffffff"
height="4rem"
text-size="24px"
min-height="4rem"
/>
</template>
</el-input>
</div>
<div>
<div class="seal-add-btn">
<bt-button
@ -340,12 +322,11 @@ const stopDisabled = computed(() => {
.seal-right{
background: $gradient-color;
display: grid;
grid-template-rows: repeat(3, 1fr);
grid-template-rows: repeat(2, 1fr);
.left-title{
//padding-top: 3.5vw;
padding-left: 2.5vw;
display: flex;
height: 25vh;
.title-text-test{
display: flex;
justify-content: center;
@ -366,7 +347,7 @@ const stopDisabled = computed(() => {
.seal-right-btn{
height: 30vh;
grid-row: 2 / 4;
margin-top: -4rem;
margin-top: -6rem;
.seal-input{
padding-left: 2rem;
height: 8rem;
@ -384,7 +365,7 @@ const stopDisabled = computed(() => {
}
.seal-add-btn{
width: 25vw;
height: 8vh;
height: 12vh;
border-radius: 12px;
color: #FFFFFF;
display: flex;

2
vite.config.ts

@ -23,7 +23,7 @@ export default defineConfig(({ mode }) => {
},
build: {
sourcemap: false,
outDir: `dist`,
outDir: `dist-v${packageJson.version}`,
rollupOptions: {
output: {
manualChunks(id) {

1
webdist-v0.0.1-anywhere/assets/FormulaConfig-BKVsODea.css
File diff suppressed because it is too large
View File

1
webdist-v0.0.1-anywhere/assets/HomeFormula-BORLQ-Gb.css

@ -0,0 +1 @@
.home-right-title[data-v-4e12b783]{display:grid;font-size:1.5rem;grid-template-columns:1fr 1fr}.home-right-title .title-formula[data-v-4e12b783]{justify-self:start}.home-right-title .title-formula[data-v-4e12b783],.home-right-title .title-spend[data-v-4e12b783]{align-items:center;content:"viewport-units-buggyfill; gap: 0.446vw; padding: 0.893vw";display:flex;font-size:1.5rem;gap:.446vw;padding:.893vw}.home-right-title .title-spend[data-v-4e12b783]{justify-self:end}

1
webdist-v0.0.1-anywhere/assets/background-login-BT83STvJ.svg
File diff suppressed because it is too large
View File

1
webdist-v0.0.1-anywhere/assets/background-logo-BiYD8c3Z.svg
File diff suppressed because it is too large
View File

1
webdist-v0.0.1-anywhere/assets/chart-CkznWhh8.css

@ -0,0 +1 @@
.main-content[data-v-1707c43a]{background:#fff;content:"viewport-units-buggyfill; height: 83vh";height:83vh;overflow:hidden}.main-content .line-chart-formula[data-v-1707c43a]{align-items:center;background:#e0f0ff;border:1px solid #e0f0ff;border-radius:.893vw;content:"viewport-units-buggyfill; width: 30vw; border-radius: 0.893vw";display:flex;height:3.5rem;justify-content:center;margin-left:2rem;width:30vw}.main-content .line-chart-set[data-v-1707c43a]{align-items:center;content:"viewport-units-buggyfill; width: 65vw";display:flex;justify-content:end;width:65vw}.main-content .line-chart-title[data-v-1707c43a]{align-items:center;display:flex;height:15%}.main-content .line-chart-content[data-v-1707c43a]{display:grid;height:65%}.main-content .line-chart-bottom[data-v-1707c43a]{content:"viewport-units-buggyfill; padding-right: 1.786vw";display:flex;height:15%;padding-right:1.786vw}.main-content .line-chart-bottom .home-chart-btn[data-v-1707c43a]{display:flex;justify-content:end;width:65%}.main-content .line-chart-bottom .home-chart-time[data-v-1707c43a]{width:35%}.main-content .line-chart-bottom .home-chart-time .home-remain-time[data-v-1707c43a]{align-items:center;background:#f6fafe;border-radius:1.071vw;content:"viewport-units-buggyfill; width: 27vw; height: 8vh; border-radius: 1.071vw; font-size: 2.143vw; gap: 0.893vw";display:flex;font-size:2.143vw;gap:.893vw;height:8vh;justify-content:center;margin-left:1rem;width:27vw}.main-content .line-chart-bottom .home-chart-time .home-remain-time .home-chart-value[data-v-1707c43a]{color:#2892f3}

1
webdist-v0.0.1-anywhere/assets/config-C7YUynLv.css

@ -0,0 +1 @@
.main-content[data-v-645a3e91]{content:"viewport-units-buggyfill; height: 83vh; padding: 1.339vw";height:83vh;overflow:hidden;padding:1.339vw}.main-content .formula-config[data-v-645a3e91]{content:"viewport-units-buggyfill; padding: 0.893vw";display:grid;padding:.893vw;width:100%}.main-content .formula-config-form[data-v-645a3e91]{content:"viewport-units-buggyfill; gap: 0.446vw";display:grid;gap:.446vw;grid-template-columns:1fr 1fr}.main-content .formdata-input[data-v-645a3e91]{content:"viewport-units-buggyfill; width: 10vw";width:10vw}

1
webdist-v0.0.1-anywhere/assets/default-CRp7iiW0.css
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/assets/default-CRp7iiW0.css.gz

1
webdist-v0.0.1-anywhere/assets/element-plus-CM8UrFiZ.css
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/assets/element-plus-CM8UrFiZ.css.gz

1
webdist-v0.0.1-anywhere/assets/index-9QuJDPnt.css

@ -0,0 +1 @@
.main-content[data-v-dda3fcff]{background:#fff;content:"viewport-units-buggyfill; height: 83vh; padding-top: 4vh; padding-left: 2.679vw; font-size: 1.786vw";font-size:1.786vw;height:83vh;overflow:hidden;padding-left:2.679vw;padding-top:4vh}.main-content .debug-upper[data-v-dda3fcff]{grid-template-rows:auto auto}.main-content .debug-lower[data-v-dda3fcff],.main-content .debug-upper[data-v-dda3fcff]{display:grid;grid-template-columns:repeat(2,1fr)}.main-content .debug-left .debug-inside[data-v-dda3fcff]{display:flex;gap:1rem}.debug-env[data-v-dda3fcff]{display:grid;grid-template-columns:repeat(2,1fr)}.debug-left-lh[data-v-dda3fcff]{content:"viewport-units-buggyfill; height: 12vh";display:flex;gap:1rem;height:12vh}.debug-left-lh .debug-env-content[data-v-dda3fcff]{display:flex}.debug-left-lh .debug-env-content .env-content-p[data-v-dda3fcff]{content:"viewport-units-buggyfill; padding: 0.446vw";padding:.446vw}.env-lh[data-v-dda3fcff]{content:"viewport-units-buggyfill; height: 10vh";height:10vh}.debug-bw[data-v-dda3fcff],.debug-label[data-v-dda3fcff]{content:"viewport-units-buggyfill; width: 13vw";width:13vw}.debug-label[data-v-dda3fcff]{text-align:end}.debug-text[data-v-dda3fcff]{color:#2892f3;content:"viewport-units-buggyfill; padding: 0.446vw";padding:.446vw}

1
webdist-v0.0.1-anywhere/assets/index-CGcAjSVH.css

@ -0,0 +1 @@
canvas{content:"viewport-units-buggyfill; width: 60vw; height: 70vh";height:70vh!important;width:60vw!important}.main-content[data-v-7691915c]{content:"viewport-units-buggyfill; height: 83vh; gap: 0.893vw";display:grid;gap:.893vw;grid-template-columns:repeat(3,1fr);height:83vh}.main-content .seal-left[data-v-7691915c]{background:#fff;box-shadow:0 1px .446vw #09273e26;content:"viewport-units-buggyfill; box-shadow: 0px 1px 0.446vw 0px rgba(9, 39, 62, 0.15)";grid-column:1/3}.main-content .seal-left .chart-ml[data-v-7691915c]{height:32rem;margin:2rem}.seal-opt[data-v-7691915c]{display:flex;gap:2rem;margin-left:9rem;margin-top:-2rem}.seal-opt .seal-status[data-v-7691915c]{align-items:center;background:#f6fafe;border-radius:1.339vw;content:"viewport-units-buggyfill; border-radius: 1.339vw";display:flex;height:5rem;justify-content:center;width:16rem}.seal-opt .seal-time-text[data-v-7691915c]{font-size:1.5rem;font-weight:500;padding-left:.5rem}.seal-opt .seal-test-time[data-v-7691915c]{color:#2892f3;content:"viewport-units-buggyfill; font-size: 2.143vw";font-size:2.143vw}.seal-opt .seal-time-statue[data-v-7691915c]{align-items:center;display:flex;font-weight:600;height:3rem;justify-content:center;width:5rem}.seal-opt .seal-diff-text[data-v-7691915c]{font-size:1.5rem;font-weight:500;padding-left:.5rem}.seal-opt .seal-diff-statue[data-v-7691915c]{align-items:center;display:flex;font-weight:600;height:3rem;justify-content:center;width:5rem}.seal-right[data-v-7691915c]{background:#fff;display:grid;grid-template-rows:repeat(3,1fr)}.seal-right .left-title[data-v-7691915c]{content:"viewport-units-buggyfill; padding-left: 2.5vw; height: 25vh";display:flex;height:25vh;padding-left:2.5vw}.seal-right .left-title .title-text-test[data-v-7691915c]{align-items:center;display:flex;gap:1rem;justify-content:center}.seal-right .left-title .title-text-test .title-text[data-v-7691915c]{content:"viewport-units-buggyfill; font-size: 1.786vw";font-size:1.786vw}.seal-right .left-title .title-text-test .title-text-kpa[data-v-7691915c]{color:#409eff}.seal-right .left-title .title-text-test .title-kpa-pl[data-v-7691915c]{content:"viewport-units-buggyfill; padding-left: 0.446vw";font-weight:700;padding-left:.446vw}.seal-right .seal-right-btn[data-v-7691915c]{content:"viewport-units-buggyfill; height: 30vh";grid-row:2/4;height:30vh;margin-top:-4rem}.seal-right .seal-right-btn .seal-input[data-v-7691915c]{content:"viewport-units-buggyfill; font-size: 2.143vw";font-size:2.143vw;font-weight:400;height:8rem;padding-left:2rem}.seal-right .seal-right-btn .seal-input .inflation-time[data-v-7691915c],.seal-right .seal-right-btn .seal-input .seal-diff-text[data-v-7691915c]{height:4rem}.seal-right .seal-right-btn .seal-input .input[data-v-7691915c]{content:"viewport-units-buggyfill; width: 25vw";width:25vw}.seal-right .seal-right-btn .seal-add-btn[data-v-7691915c]{align-items:center;border-radius:1.071vw;color:#fff;content:"viewport-units-buggyfill; width: 25vw; height: 8vh; border-radius: 1.071vw; font-size: 2.143vw; gap: 0.893vw";display:flex;font-size:2.143vw;gap:.893vw;height:8vh;justify-content:center;margin:2rem;width:25vw}

1
webdist-v0.0.1-anywhere/assets/index-C_LZ3iaC.css

@ -0,0 +1 @@
.main-content[data-v-b28b3e62]{background:#fff;box-shadow:0 1px .446vw #09273e26;content:"viewport-units-buggyfill; height: 83vh; box-shadow: 0px 1px 0.446vw 0px rgba(9, 39, 62, 0.15)";height:83vh;overflow:hidden}.main-content .audit-export[data-v-b28b3e62]{align-items:center;content:"viewport-units-buggyfill; padding: 2vw";display:flex;height:12%;padding:2vw}.main-content .audit-table[data-v-b28b3e62]{content:"viewport-units-buggyfill; max-height: 67vh";height:76%;max-height:67vh;overflow:auto}.main-content .audit-pagination[data-v-b28b3e62]{align-items:center;display:flex;float:right;height:12%}

1
webdist-v0.0.1-anywhere/assets/index-Cb5jIE5L.css

@ -0,0 +1 @@
.recipe-management[data-v-3821569f]{border:1px solid #ccc;border-radius:.446vw;content:"viewport-units-buggyfill; padding: 0.893vw; border-radius: 0.446vw; width: 30vw";font-family:serif;overflow:auto;padding:.893vw;width:30vw}.add-recipe-button[data-v-3821569f]{background-color:#e6f7ff;border:none;border-radius:.268vw;color:#1890ff;content:"viewport-units-buggyfill; padding: 0.536vw 1.071vw; border-radius: 0.268vw; margin-bottom: 0.893vw";cursor:pointer;margin-bottom:.893vw;padding:.536vw 1.071vw;transition:all .3s}.add-recipe-button[data-v-3821569f]:hover{background-color:#1890ff;color:#fff}.recipe-list[data-v-3821569f]{list-style:none;margin:0;padding:0}.recipe-list .formula-name[data-v-3821569f]{color:var(--el-text-color-regular);font-size:1.5rem;width:8rem}.recipe-list li[data-v-3821569f]{align-items:center;border-radius:.357vw;content:"viewport-units-buggyfill; padding: 0.893vw; border-radius: 0.357vw; margin-bottom: 0.714vw";cursor:pointer;display:flex;justify-content:space-between;margin-bottom:.714vw;padding:.893vw;transition:all .2s}.recipe-list li[data-v-3821569f]:hover{background-color:#f5f7fa}.recipe-list li.selected[data-v-3821569f]{background-color:#e6f7ff}.actions[data-v-3821569f]{align-items:center;display:flex}.delete-button[data-v-3821569f],.view-button[data-v-3821569f]{border:none;border-radius:.268vw;content:"viewport-units-buggyfill; padding: 0.357vw 0.714vw; border-radius: 0.268vw; margin-right: 0.446vw";cursor:pointer;font-family:serif;margin-right:.446vw;padding:.357vw .714vw;transition:all .3s}.view-button[data-v-3821569f]{background-color:#e6f0ff;color:#1890ff}.view-button[data-v-3821569f]:hover{background-color:#1890ff;color:#fff}.delete-button[data-v-3821569f]{background-color:#ffe6e6;color:#ff4d4f}.delete-button[data-v-3821569f]:hover{background-color:#ff4d4f;color:#fff}.selected-icon[data-v-3821569f]{color:#1890ff}.main-content[data-v-440b6ae6]{content:"viewport-units-buggyfill; height: 83vh; gap: 0.446vw";display:grid;gap:.446vw;grid-template-columns:repeat(3,1fr);height:83vh;overflow:hidden}.main-content .formula-left[data-v-440b6ae6]{background:#fff;box-shadow:0 1px .446vw #09273e26;content:"viewport-units-buggyfill; box-shadow: 0px 1px 0.446vw 0px rgba(9, 39, 62, 0.15)"}.main-content .formula-left .formula-add[data-v-440b6ae6]{content:"viewport-units-buggyfill; margin: 0.893vw";margin:.893vw}.main-content .formula-left .formula-add-btn[data-v-440b6ae6]{align-items:center;border-radius:.446vw;content:"viewport-units-buggyfill; border-radius: 0.446vw";display:flex;height:3rem}.main-content .formula-left .formula-list[data-v-440b6ae6]{content:"viewport-units-buggyfill; height: 74vh; max-height: 74vh";display:flex;height:74vh;justify-content:center;max-height:74vh}.main-content .formula-right[data-v-440b6ae6]{background:#fff;box-shadow:0 1px .446vw #09273e26;content:"viewport-units-buggyfill; box-shadow: 0px 1px 0.446vw 0px rgba(9, 39, 62, 0.15)";grid-column:2/4;position:relative}

1
webdist-v0.0.1-anywhere/assets/index-Csn56yeC.css
File diff suppressed because it is too large
View File

1
webdist-v0.0.1-anywhere/assets/index-D3lxSg1x.css
File diff suppressed because it is too large
View File

1
webdist-v0.0.1-anywhere/assets/index-D7MyUMcJ.css

@ -0,0 +1 @@
.soft-keyboard[data-v-f833d6db]{background-color:#f5f5f5;border-top:1px solid #ddd;bottom:-26.786vw;content:"viewport-units-buggyfill; bottom: -26.786vw; padding: 0.893vw";left:0;padding:.893vw;right:0;transition:bottom .3s ease;-webkit-user-select:none;user-select:none;z-index:9999}.keyboard-open[data-v-f833d6db]{bottom:0}.keyboard-header[data-v-f833d6db]{content:"viewport-units-buggyfill; margin-bottom: 0.893vw";float:right;margin-bottom:.893vw;position:absolute}.keyboard-header button[data-v-f833d6db]{background-color:#e0e0e0;border:none;border-radius:.446vw;content:"viewport-units-buggyfill; padding: 0.714vw 1.339vw; border-radius: 0.446vw";cursor:pointer;padding:.714vw 1.339vw}.keyboard-body[data-v-f833d6db]{content:"viewport-units-buggyfill; gap: 0.714vw";display:flex;flex-direction:column;gap:.714vw}.keyboard-body .pinyin-container[data-v-f833d6db]{display:flex;height:4rem;padding-left:2rem;width:80%}.keyboard-body .pinyin-container .pinyin-cn[data-v-f833d6db]{color:#1890ff;content:"viewport-units-buggyfill; gap: 0.446vw";display:flex;gap:.446vw;padding-left:1rem;position:relative;width:1rem}.keyboard-body .pinyin-container .pinyin-cn .cn-name[data-v-f833d6db]{font-size:2.5rem}.keyboard-row[data-v-f833d6db]{content:"viewport-units-buggyfill; gap: 0.446vw";display:flex;gap:.446vw;justify-content:center}.keyboard-row button[data-v-f833d6db]{background-color:#fff;border:none;border-radius:.446vw;box-shadow:0 1px .268vw #0000001a;content:"viewport-units-buggyfill; min-width: 4.464vw; font-size: 1.607vw; border-radius: 0.446vw; box-shadow: 0 1px 0.268vw rgba(0, 0, 0, 0.1); height: 10vh";cursor:pointer;font-size:1.607vw;height:10vh;min-width:4.464vw;transition:all .2s}.keyboard-row button[data-v-f833d6db]:active{transform:scale(.95)}.key-space[data-v-f833d6db]{content:"viewport-units-buggyfill; margin-top: 0.313vw; width: 75vw";margin-top:.313vw;width:75vw}.key-special[data-v-f833d6db]{background-color:#e0e0e0}.key-active[data-v-f833d6db]{background-color:#a0c4ff;transform:scale(.95)}.key-number[data-v-f833d6db]{content:"viewport-units-buggyfill; width: 30vw; height: 6vh; margin: 0.446vw";height:6vh;margin:.446vw;width:30vw}.key-text[data-v-f833d6db]{content:"viewport-units-buggyfill; width: 8vw; height: 5vh; margin: 0.446vw";height:5vh;margin:.446vw;width:8vw}.input-w[data-v-f833d6db]{font-size:2rem;height:4rem;margin-left:3rem;width:20%}.keyboard-container[data-v-f833d6db]{background:#c8c8c8;border-radius:1.429vw;bottom:0;box-shadow:0 -.357vw 1.071vw #0000001a;content:"viewport-units-buggyfill; border-radius: 1.429vw; box-shadow: 0 -0.357vw 1.071vw rgba(0, 0, 0, 0.1)";left:0;overflow:hidden;position:fixed;touch-action:none;width:90%;will-change:transform;z-index:9999}.input-box[data-v-f833d6db]{background:#f5f5f5;content:"viewport-units-buggyfill; padding: 1.429vw";padding:1.429vw}.input-field[data-v-f833d6db]{background:#fff;border:1px solid #ddd;border-radius:.714vw;content:"viewport-units-buggyfill; padding: 1.071vw; font-size: 1.607vw; border-radius: 0.714vw";font-size:1.607vw;padding:1.071vw;text-align:right;width:100%}.keys[data-v-f833d6db]{display:grid;grid-template-columns:repeat(3,1fr)}.key[data-v-f833d6db]{align-items:center;background:#fff;border:1px solid #eee;content:"viewport-units-buggyfill; height: 5.357vw; font-size: 1.786vw";display:flex;font-size:1.786vw;height:5.357vw;justify-content:center;touch-action:manipulation}.key[data-v-f833d6db]:active{background:#f8f8f8}

1
webdist-v0.0.1-anywhere/assets/index-DRUttz4C.css

@ -0,0 +1 @@
.login-box[data-v-7f0ed7d1]{background:url(./background-login-BT83STvJ.svg) no-repeat 50%}.login-box[data-v-7f0ed7d1],.login-box .login-box-content[data-v-7f0ed7d1]{align-items:center;display:flex;justify-content:center}.login-box .login-box-content[data-v-7f0ed7d1]{background:linear-gradient(180deg,#fafcff82,#ffffff85);border-radius:.893vw;box-shadow:0 0 .893vw #0000000d;content:"viewport-units-buggyfill; padding: 4.464vw 4.464vw; border-radius: 0.893vw; box-shadow: 0 0 0.893vw rgba(0, 0, 0, 0.05)";flex-direction:column;padding:4.464vw}.login-box .login-box-content img[data-v-7f0ed7d1]{content:"viewport-units-buggyfill; width: 4.464vw";width:4.464vw}.login-box .login-box-content .title[data-v-7f0ed7d1]{color:#8799ab;content:"viewport-units-buggyfill; font-size: 1.607vw; margin: 1.339vw 0 2.679vw";font-size:1.607vw;font-weight:500;margin:1.339vw 0 2.679vw}.input-icon[data-v-7f0ed7d1]{content:"viewport-units-buggyfill; width: 1.339vw";width:1.339vw!important}.input-username[data-v-7f0ed7d1]{margin-top:3rem}.input-title[data-v-7f0ed7d1],.input-username[data-v-7f0ed7d1]{color:#2c3e59;content:"viewport-units-buggyfill; font-size: 1.25vw";font-size:1.25vw}.input-title[data-v-7f0ed7d1],.login-btn[data-v-7f0ed7d1]{margin-top:4rem}.login-btn[data-v-7f0ed7d1]{align-items:center;content:"viewport-units-buggyfill; height: 2.5vh";display:flex;height:2.5vh}

1
webdist-v0.0.1-anywhere/assets/index-DXy7vYdu.css

@ -0,0 +1 @@
.liquid-level-main[data-v-b9c184fe]{content:"viewport-units-buggyfill; gap: 0.446vw";display:flex;gap:.446vw}.liquid-level-contailner[data-v-b9c184fe]{position:relative}.liquid-level-contailner[data-v-b9c184fe],.liquid-level-img[data-v-b9c184fe]{content:"viewport-units-buggyfill; height: 60vh";height:60vh}.liquid-level[data-v-b9c184fe]{background:linear-gradient(0deg,#09f,#e6f7ff);border-radius:.893vw;bottom:0;content:"viewport-units-buggyfill; border-radius: 0.893vw";left:0;min-height:1.5rem;position:absolute;width:100%}.liquid-level-middle[data-v-b9c184fe]{background:linear-gradient(352deg,#0093f5,#effafe);bottom:0;left:0;margin-left:23%;position:absolute;width:50%;z-index:1}.current-level[data-v-b9c184fe]{font-size:1.3rem;font-weight:700;left:50%;position:absolute;top:2rem;transform:translate(-50%)}.current-level .text[data-v-b9c184fe]{color:#007bff;content:"viewport-units-buggyfill; padding: 0.268vw";padding:.268vw}.main-content[data-v-3cc85c32]{content:"viewport-units-buggyfill; height: 83vh; gap: 0.893vw";display:grid;gap:.893vw;grid-template-columns:repeat(3,1fr);height:83vh;overflow:hidden}.main-content .liquid-left[data-v-3cc85c32]{align-items:center;content:"viewport-units-buggyfill; box-shadow: 0px 1px 0.446vw 0px rgba(9, 39, 62, 0.15)";display:flex;grid-column:1/3;justify-content:center}.main-content .liquid-left[data-v-3cc85c32],.main-content .liquid-right[data-v-3cc85c32]{background:#fff;box-shadow:0 1px .446vw #09273e26}.main-content .liquid-right[data-v-3cc85c32]{content:"viewport-units-buggyfill; box-shadow: 0px 1px 0.446vw 0px rgba(9, 39, 62, 0.15); padding-top: 15vh";padding-top:15vh;width:100%}.main-content .liquid-right .liquid-surplus-title[data-v-3cc85c32]{align-items:center;content:"viewport-units-buggyfill; height: 13vh; font-size: 2.143vw";display:flex;font-size:2.143vw;font-weight:400;height:13vh;padding-left:2.5rem}.main-content .liquid-right .liquid-surplus-title .liquid-title-g[data-v-3cc85c32]{color:#2892f3;font-weight:700}.main-content .liquid-right .liquid-input[data-v-3cc85c32]{align-items:center;display:flex;justify-content:center}.main-content .liquid-right .liquid-input .input[data-v-3cc85c32]{content:"viewport-units-buggyfill; width: 25vw";width:25vw}.main-content .liquid-right .liquid-opt[data-v-3cc85c32]{content:"viewport-units-buggyfill; margin-top: 4vh";display:flex;justify-content:center;margin-top:4vh}.main-content .liquid-right .liquid-add-btn[data-v-3cc85c32]{align-items:center;border-radius:1.071vw;color:#fff;content:"viewport-units-buggyfill; width: 25vw; height: 8vh; border-radius: 1.071vw; font-size: 2.143vw; gap: 0.893vw";display:flex;font-size:2.143vw;gap:.893vw;height:8vh;justify-content:center;width:25vw}.main-content .liquid-right .liquid-drain[data-v-3cc85c32]{margin-top:1.5rem}

2
webdist-v0.0.1-anywhere/assets/index-FZ48n_d9.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/assets/index-FZ48n_d9.js.gz

1
webdist-v0.0.1-anywhere/assets/index-HhKFIjor.css
File diff suppressed because it is too large
View File

1
webdist-v0.0.1-anywhere/assets/liquid-scale-DMtMCxmK.svg
File diff suppressed because it is too large
View File

1
webdist-v0.0.1-anywhere/assets/logo-xwi68D73.svg
File diff suppressed because it is too large
View File

1
webdist-v0.0.1-anywhere/assets/n-disinfect-BzXI2EVH.svg
File diff suppressed because it is too large
View File

1
webdist-v0.0.1-anywhere/assets/s-disinfect-BhCWntgD.svg
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/favicon.ico

37
webdist-v0.0.1-anywhere/index.html

@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="./favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>消毒机</title>
<style>body,html{margin:0;padding:0}#app,body,html{height:100%;width:100%}#app{overflow:hidden;position:relative}</style>
<script type="module" crossorigin src="./assets/index-FZ48n_d9.js"></script>
<link rel="modulepreload" crossorigin href="./js/@vue/@vue.B_jFLcBm.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/lodash-es/lodash-es.S0Y0Up6J.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/@vueuse/@vueuse.VzzCFLRY.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/@element-plus/@element-plus.C01e5HIG.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/@popperjs/@popperjs.D_chPuIy.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/@ctrl/@ctrl.r5W6hzzQ.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/dayjs/dayjs.CWsDMI8D.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/async-validator/async-validator.CDKkdPIV.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/memoize-one/memoize-one.BdPwpGay.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/normalize-wheel-es/normalize-wheel-es.BQoi3Ox2.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/@floating-ui/@floating-ui.DwceP2Gb.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/element-plus/element-plus.DC0PKXec.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/pinia/pinia.Col4Kkvr.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/destr/destr.Ctyiwlcu.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/deep-pick-omit/deep-pick-omit.CegYQlcN.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/pinia-plugin-persistedstate/pinia-plugin-persistedstate.BUYkM9Wd.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/@intlify/@intlify.Bpjdt8ji.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/vue-i18n/vue-i18n.DKgOWBxc.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/nanoid/nanoid.OxPLOBIU.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/lodash/lodash.Cz9E_6Pa.1751277099553.js">
<link rel="modulepreload" crossorigin href="./js/vue-router/vue-router.DaQm0NVE.1751277099553.js">
<link rel="stylesheet" crossorigin href="./assets/element-plus-CM8UrFiZ.css">
<link rel="stylesheet" crossorigin href="./assets/index-HhKFIjor.css">
</head>
<body>
<div id="app"></div>
</body>
</html>

1
webdist-v0.0.1-anywhere/js/@ctrl/@ctrl.r5W6hzzQ.1751277099553.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/js/@ctrl/@ctrl.r5W6hzzQ.1751277099553.js.gz

1
webdist-v0.0.1-anywhere/js/@element-plus/@element-plus.C01e5HIG.1751277099553.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/js/@element-plus/@element-plus.C01e5HIG.1751277099553.js.gz

1
webdist-v0.0.1-anywhere/js/@floating-ui/@floating-ui.DwceP2Gb.1751277099553.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/js/@floating-ui/@floating-ui.DwceP2Gb.1751277099553.js.gz

15
webdist-v0.0.1-anywhere/js/@intlify/@intlify.Bpjdt8ji.1751277099553.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/js/@intlify/@intlify.Bpjdt8ji.1751277099553.js.gz

1
webdist-v0.0.1-anywhere/js/@popperjs/@popperjs.D_chPuIy.1751277099553.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/js/@popperjs/@popperjs.D_chPuIy.1751277099553.js.gz

17
webdist-v0.0.1-anywhere/js/@vue/@vue.B_jFLcBm.1751277099553.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/js/@vue/@vue.B_jFLcBm.1751277099553.js.gz

1
webdist-v0.0.1-anywhere/js/@vueuse/@vueuse.VzzCFLRY.1751277099553.js
File diff suppressed because it is too large
View File

1
webdist-v0.0.1-anywhere/js/FormulaConfig/FormulaConfig.DWjnEYue.1751277099553.js
File diff suppressed because it is too large
View File

1
webdist-v0.0.1-anywhere/js/HomeFormula/HomeFormula.CH2dWXQd.1751277099553.js

@ -0,0 +1 @@
import{u as _,_ as d}from"../../assets/index-FZ48n_d9.js";import{d as p,r as f,w as v,ag as l,c as s,o as a,a as t,J as r,P as c,H as F,M as u,L as S}from"../@vue/@vue.B_jFLcBm.1751277099553.js";const h={class:"home-right-title"},x={key:0,class:"title-formula"},y={key:0,class:"title-spend"},C={style:{color:"#31CB7A"}},g=p({__name:"HomeFormula",setup(k){const n=_(),e=f();return v(()=>{e.value=n.selectedFormulaInfo||n.currentSelectedFormulaInfo}),(B,o)=>{const i=l("SuccessFilled"),m=l("el-icon");return a(),s("div",h,[t("div",null,[e.value&&e.value.name?(a(),s("div",x,[c(m,{style:{color:"#31cb7a","font-size":"1.5rem"}},{default:F(()=>[c(i)]),_:1}),t("div",null,u(e.value.name),1)])):r("",!0)]),e.value&&e.value.injection_pump_speed?(a(),s("div",y,[o[0]||(o[0]=t("span",null,"速率",-1)),t("span",C,u(e.value.injection_pump_speed),1),o[1]||(o[1]=S("g/分钟 "))])):r("",!0)])}}}),N=d(g,[["__scopeId","data-v-4e12b783"]]);export{N as H};

12
webdist-v0.0.1-anywhere/js/async-validator/async-validator.CDKkdPIV.1751277099553.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/js/async-validator/async-validator.CDKkdPIV.1751277099553.js.gz

1
webdist-v0.0.1-anywhere/js/audit/index.DRPZtofH.1751277099553.js

@ -0,0 +1 @@
import{e as C,F as m,g as x,_ as y}from"../../assets/index-FZ48n_d9.js";import{d as N,r as a,h as S,ag as s,c as w,o as k,a as r,P as o,H as M}from"../@vue/@vue.B_jFLcBm.1751277099553.js";import"../element-plus/element-plus.DC0PKXec.1751277099553.js";import"../lodash-es/lodash-es.S0Y0Up6J.1751277099553.js";import"../@vueuse/@vueuse.VzzCFLRY.1751277099553.js";import"../@element-plus/@element-plus.C01e5HIG.1751277099553.js";import"../@popperjs/@popperjs.D_chPuIy.1751277099553.js";import"../@ctrl/@ctrl.r5W6hzzQ.1751277099553.js";import"../dayjs/dayjs.CWsDMI8D.1751277099553.js";import"../async-validator/async-validator.CDKkdPIV.1751277099553.js";import"../memoize-one/memoize-one.BdPwpGay.1751277099553.js";import"../normalize-wheel-es/normalize-wheel-es.BQoi3Ox2.1751277099553.js";import"../@floating-ui/@floating-ui.DwceP2Gb.1751277099553.js";import"../pinia/pinia.Col4Kkvr.1751277099553.js";import"../pinia-plugin-persistedstate/pinia-plugin-persistedstate.BUYkM9Wd.1751277099553.js";import"../destr/destr.Ctyiwlcu.1751277099553.js";import"../deep-pick-omit/deep-pick-omit.CegYQlcN.1751277099553.js";import"../vue-i18n/vue-i18n.DKgOWBxc.1751277099553.js";import"../@intlify/@intlify.Bpjdt8ji.1751277099553.js";import"../nanoid/nanoid.OxPLOBIU.1751277099553.js";import"../lodash/lodash.Cz9E_6Pa.1751277099553.js";import"../vue-router/vue-router.DaQm0NVE.1751277099553.js";const A={class:"dashboard-container"},B={class:"main-content"},z={class:"audit-export"},D={class:"audit-table"},E={class:"audit-pagination"},F=N({__name:"index",setup(L){const i=a(1),d=a(10),c=a(0),p=a([]),_=a([]);S(()=>{l()});const l=async()=>{const t={className:"AuditMgrService",fnName:"getRecords",params:{page:i.value,pageSize:d.value}};try{const e=await C(t);p.value=e.items||[],c.value=e.total||0}catch{m.error("获取日志列表失败")}},u=()=>{x({className:"AuditMgrService",fnName:"exportData"}).then(e=>{e.ackcode===0&&m.success("导出成功")}).catch(e=>{})},h=t=>{i.value=t,l()},g=t=>{_.value=t};return(t,e)=>{const b=s("bt-button"),n=s("el-table-column"),v=s("el-table"),f=s("el-pagination");return k(),w("div",A,[r("main",B,[r("div",z,[o(b,{type:"primary","button-text":"导出",onClick:u})]),r("div",D,[o(v,{data:p.value,stripe:"",style:{width:"100%"},onSelectionChange:g},{default:M(()=>[o(n,{type:"selection",width:"55"}),o(n,{prop:"usrName",label:"操作人",width:"250"}),o(n,{prop:"behaviorinfo",label:"操作内容"}),o(n,{prop:"date",label:"操作时间",width:"250"})]),_:1},8,["data"])]),r("div",E,[o(f,{layout:"prev, pager, next",total:c.value,onCurrentChange:h},null,8,["total"])])])])}}}),at=y(F,[["__scopeId","data-v-b28b3e62"]]);export{at as default};

1
webdist-v0.0.1-anywhere/js/birpc/birpc.l0sNRNKZ.1751277099553.js

@ -0,0 +1 @@

1
webdist-v0.0.1-anywhere/js/countdownTimer/countdownTimer.DjcHpc3B.1751277099553.js

@ -0,0 +1 @@
var l=Object.defineProperty;var o=(e,t,i)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;var s=(e,t,i)=>o(e,typeof t!="symbol"?t+"":t,i);class m{constructor(t,i){s(this,"endTime");s(this,"timer",null);s(this,"callback");this.endTime=t,this.callback=i}init(){this.initDiaplay(),this.updateDisplay()}formatTime(t){const i=Math.floor(t/3600),n=Math.floor(t%3600/60),r=t%60;return[i.toString().padStart(2,"0"),n.toString().padStart(2,"0"),r.toString().padStart(2,"0")].join(":")}initDiaplay(){const t=Math.floor(this.endTime/1e3),i=this.formatTime(t);this.endTime===0||this.endTime<1e3?(this.callback&&this.callback("0"),this.stopTimer()):(this.callback&&this.callback(i),this.endTime-=1e3)}updateDisplay(){this.timer=window.setInterval(()=>{this.initDiaplay()},1e3)}startTimer(){this.timer=window.setInterval(()=>{this.updateDisplay()},1e3)}stopTimer(){this.timer&&(clearInterval(this.timer),this.timer=null,this.endTime=0)}}let a=null;const T=(e,t)=>{a=new m(e,t),a.init()},p=()=>{a&&a.stopTimer()};export{p as a,T as s};

1
webdist-v0.0.1-anywhere/js/dayjs/dayjs.CWsDMI8D.1751277099553.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/js/dayjs/dayjs.CWsDMI8D.1751277099553.js.gz

1
webdist-v0.0.1-anywhere/js/debug/index.DU4AAs3o.1751277099553.js
File diff suppressed because it is too large
View File

1
webdist-v0.0.1-anywhere/js/deep-pick-omit/deep-pick-omit.CegYQlcN.1751277099553.js

@ -0,0 +1 @@
function u(e,n){if(e==null)return;let r=e;for(let t=0;t<n.length;t++){if(r==null||r[n[t]]==null)return;r=r[n[t]]}return r}function i(e,n,r){if(r.length===0)return n;const t=r[0];return r.length>1&&(n=i(typeof e!="object"||e===null||!Object.prototype.hasOwnProperty.call(e,t)?Number.isInteger(Number(r[1]))?[]:{}:e[t],n,Array.prototype.slice.call(r,1))),Number.isInteger(Number(t))&&Array.isArray(e)?e.slice()[t]:Object.assign({},e,{[t]:n})}function l(e,n){if(e==null||n.length===0)return e;if(n.length===1){if(e==null)return e;if(Number.isInteger(n[0])&&Array.isArray(e))return Array.prototype.slice.call(e,0).splice(n[0],1);const r={};for(const t in e)r[t]=e[t];return delete r[n[0]],r}if(e[n[0]]==null){if(Number.isInteger(n[0])&&Array.isArray(e))return Array.prototype.concat.call([],e);const r={};for(const t in e)r[t]=e[t];return r}return i(e,l(e[n[0]],Array.prototype.slice.call(n,1)),[n[0]])}function s(e,n){return n.map(r=>r.split(".")).map(r=>[r,u(e,r)]).filter(r=>r[1]!==void 0).reduce((r,t)=>i(r,t[1],t[0]),{})}function c(e,n){return n.map(r=>r.split(".")).reduce((r,t)=>l(r,t),e)}export{c as a,s as d};

1
webdist-v0.0.1-anywhere/js/destr/destr.Ctyiwlcu.1751277099553.js

@ -0,0 +1 @@
const o=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,s=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,u=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function i(r,t){if(r==="__proto__"||r==="constructor"&&t&&typeof t=="object"&&"prototype"in t){return}return t}function c(r,t={}){if(typeof r!="string")return r;if(r[0]==='"'&&r[r.length-1]==='"'&&r.indexOf("\\")===-1)return r.slice(1,-1);const n=r.trim();if(n.length<=9)switch(n.toLowerCase()){case"true":return!0;case"false":return!1;case"undefined":return;case"null":return null;case"nan":return Number.NaN;case"infinity":return Number.POSITIVE_INFINITY;case"-infinity":return Number.NEGATIVE_INFINITY}if(!u.test(r)){if(t.strict)throw new SyntaxError("[destr] Invalid JSON");return r}try{if(o.test(r)||s.test(r)){if(t.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(r,i)}return JSON.parse(r)}catch(e){if(t.strict)throw e;return r}}export{c as d};

1
webdist-v0.0.1-anywhere/js/deviceComm/deviceComm.DAoxdyzs.1751277099553.js

@ -0,0 +1 @@
import{a as n,i as S}from"../../assets/index-FZ48n_d9.js";import{d}from"../pinia/pinia.Col4Kkvr.1751277099553.js";import{r as t,w as f}from"../@vue/@vue.B_jFLcBm.1751277099553.js";const c=d("seal",()=>{const e=t("idle"),o=t({pressure:"0",workState:"idle",workStateDisplay:"空闲"});return{sealState:e,sealInfo:o,updateSealInfo:u=>{o.value=u}}}),k=n(),a=S(),r=c(),s=t(a.liquidStateData),i=t(a.liquidStateData),l=t(r.sealInfo);f(()=>{s.value=a.liquidAddWorkState,i.value=a.liquidDrainWorkState,l.value=r.sealInfo});const I=()=>{let e="";return k.isDeviceIdle?s.value.workState!=="idle"?(e="正在进行加液操作...",e):((i.value.workState!=="idle"||l.value.workState!=="idle")&&(e="正在进行排液操作..."),e):(e="正在进行消毒,不可操作",e)};export{I as g,c as u};

43
webdist-v0.0.1-anywhere/js/echarts/echarts.CoO2sT-h.1751277099553.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/js/echarts/echarts.CoO2sT-h.1751277099553.js.gz

13
webdist-v0.0.1-anywhere/js/element-plus/element-plus.DC0PKXec.1751277099553.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/js/element-plus/element-plus.DC0PKXec.1751277099553.js.gz

1
webdist-v0.0.1-anywhere/js/formula/index.BNUbY95k.1751277099553.js

@ -0,0 +1 @@
import{u as C,j as B,c as I,g,F as b,_ as y}from"../../assets/index-FZ48n_d9.js";import{F as M}from"../FormulaConfig/FormulaConfig.DWjnEYue.1751277099553.js";import{d as L,r as h,h as D,w as T,ag as i,c as r,o as c,a as s,O as V,a6 as E,D as P,M as z,P as a,J as R,V as k,H as m,L as x}from"../@vue/@vue.B_jFLcBm.1751277099553.js";import{E as j}from"../element-plus/element-plus.DC0PKXec.1751277099553.js";import"../@element-plus/@element-plus.C01e5HIG.1751277099553.js";import"../pinia/pinia.Col4Kkvr.1751277099553.js";import"../pinia-plugin-persistedstate/pinia-plugin-persistedstate.BUYkM9Wd.1751277099553.js";import"../destr/destr.Ctyiwlcu.1751277099553.js";import"../deep-pick-omit/deep-pick-omit.CegYQlcN.1751277099553.js";import"../vue-i18n/vue-i18n.DKgOWBxc.1751277099553.js";import"../@intlify/@intlify.Bpjdt8ji.1751277099553.js";import"../nanoid/nanoid.OxPLOBIU.1751277099553.js";import"../lodash/lodash.Cz9E_6Pa.1751277099553.js";import"../dayjs/dayjs.CWsDMI8D.1751277099553.js";import"../vue-router/vue-router.DaQm0NVE.1751277099553.js";import"../lodash-es/lodash-es.S0Y0Up6J.1751277099553.js";import"../@vueuse/@vueuse.VzzCFLRY.1751277099553.js";import"../@popperjs/@popperjs.D_chPuIy.1751277099553.js";import"../@ctrl/@ctrl.r5W6hzzQ.1751277099553.js";import"../async-validator/async-validator.CDKkdPIV.1751277099553.js";import"../memoize-one/memoize-one.BdPwpGay.1751277099553.js";import"../normalize-wheel-es/normalize-wheel-es.BQoi3Ox2.1751277099553.js";import"../@floating-ui/@floating-ui.DwceP2Gb.1751277099553.js";import"../index/index.DTZj_65S.1751277099553.js";const A={key:0,class:"recipe-management"},H={class:"recipe-list"},J=["onClick"],O={class:"formula-name"},W={class:"actions"},q={key:0,class:"selected-icon"},G={key:1},K=L({__name:"FormulaTable",setup(N){const t=C(),n=h(null),l=h([]),u=h();D(()=>{f()}),T(()=>{l.value=t.formulaList,t.formulaList&&(n.value=t.selectedIndex||t.formulaList.length-1)});const f=()=>{t.formulaList&&t.formulaList.length?l.value=t.formulaList:t.initFormulaList()},v=(o,e)=>{t.updateSelectedIndex(e),n.value=n.value===e?null:e,o=B(o),t.updateSelectedFormulaData(o)},F=o=>{t.updateSelectedFormulaData(o),I.warning("请确认是否使用此配方进行消毒?").then(()=>{if(u.value=o,o.formula_id){const e={className:"DisinfectionCtrlServiceExt",fnName:"startWithFormula",params:{formulaid:o.formula_id}};g(e).then(d=>{d.ackcode===0&&(t.updateSelectedFormulaDataByList(o),b.success("已开始消毒"))})}})},$=o=>{j.confirm("请确认是否删除?","删除",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"}).then(()=>{if(o.formula_id){const e={className:"SettingMgrService",fnName:"delFormula",params:{formula_id:o.formula_id}};g(e).then(()=>{b.success("操作成功"),t.updateSelectedIndex(0),t.initFormulaList()})}})};return(o,e)=>{const d=i("el-button"),w=i("el-empty");return l.value.length?(c(),r("div",A,[s("ul",H,[(c(!0),r(V,null,E(l.value,(p,_)=>(c(),r("li",{key:_,class:P({selected:n.value===_}),onClick:S=>v(p,_)},[s("span",O,z(p.name),1),s("div",W,[a(d,{class:"view-button",onClick:k(S=>F(p),["stop"])},{default:m(()=>e[0]||(e[0]=[x(" 执行配方 ")])),_:2},1032,["onClick"]),a(d,{class:"delete-button",onClick:k(S=>$(p),["stop"])},{default:m(()=>e[1]||(e[1]=[x(" 删除 ")])),_:2},1032,["onClick"]),n.value===_?(c(),r("span",q,e[2]||(e[2]=[s("i",{class:"fa fa-check-circle"},null,-1)]))):R("",!0)])],10,J))),128))])])):(c(),r("div",G,[a(w,{description:"description"},{description:m(()=>e[3]||(e[3]=[s("span",{style:{color:"#ababab"}},"未配置配方",-1)])),_:1})]))}}}),Q=y(K,[["__scopeId","data-v-3821569f"]]),U={class:"dashboard-container"},X={class:"main-content"},Y={class:"formula-left"},Z={class:"formula-add"},tt={class:"formula-list"},et={class:"formula-right"},ot=L({__name:"index",setup(N){const t=C(),n=()=>{const l={className:"SettingMgrService",fnName:"addNewFormula"};t.updateFlip(!1),g(l).then(u=>{u.ackcode===0&&(b.success("新增成功"),t.updateSelectedIndex(0),t.initFormulaList(),t.updateFlip(!0))})};return(l,u)=>{const f=i("Plus"),v=i("el-icon"),F=i("bt-button");return c(),r("div",U,[s("main",X,[s("div",Y,[s("div",Z,[a(F,{type:"primary","button-text":"新增配方","text-size":"1.5rem",class:"formula-add-btn",onClick:n},{icon:m(()=>[a(v,null,{default:m(()=>[a(f)]),_:1})]),_:1})]),s("div",tt,[a(Q)])]),s("div",et,[a(M,{type:"formula"})])])])}}}),Nt=y(ot,[["__scopeId","data-v-440b6ae6"]]);export{Nt as default};

1
webdist-v0.0.1-anywhere/js/home-finish/home-finish.DR4cSfoU.1751277099553.js

@ -0,0 +1 @@
const e="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='none'%20version='1.1'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%3e%3cg%3e%3cpath%20d='M11.997,0.0000239992C18.6317,-0.013506,24.0135,5.36833,24,12.003C24,18.6084,18.604,23.9327,11.9955,23.9998C8.80965,24.0184,5.74927,22.7593,3.49887,20.5042C1.24307,18.2521,-0.0169475,15.1905,0.000172199,12.003C-0.00709523,8.81724,1.25657,5.76019,3.51107,3.5094C5.76054,1.25776,8.81426,-0.00510978,11.997,0.0000239992ZM11.997,1.40926C6.14726,1.40926,1.40604,6.15321,1.40941,12.003C1.38137,17.8624,6.13757,22.62,11.997,22.5936C17.8826,22.5936,22.6563,17.8184,22.6563,12.003C22.6563,6.17841,17.8826,1.40926,11.997,1.40926ZM15.2061,15.8677C15.6255,15.8677,15.9687,15.5246,15.9687,15.1051L15.9687,8.89473C15.9687,8.47531,15.6255,8.13215,15.2061,8.13215L8.79588,8.13215C8.37472,8.13215,8.0333,8.47357,8.0333,8.89473L8.0333,15.1051C8.0333,15.5263,8.37472,15.8677,8.79588,15.8677L15.2061,15.8677Z'%20fill-rule='evenodd'%20fill='%23FFFFFF'%20fill-opacity='1'/%3e%3c/g%3e%3c/svg%3e";export{e as h};

1
webdist-v0.0.1-anywhere/js/home-start/home-start.DkzYmnJr.1751277099553.js

@ -0,0 +1 @@
const e="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20fill='none'%20version='1.1'%20width='18.59552764892578'%20height='24.000713348388672'%20viewBox='0%200%2018.59552764892578%2024.000713348388672'%3e%3cg%3e%3cpath%20d='M0,2.40124L0.0174376,2.11924C0.214362,0.408434,2.04161,-0.537293,3.4875,0.32324L3.56888,0.37324L17.6351,10.0572C18.9342,11.0466,18.9115,13.0593,17.5906,14.0172L3.60181,23.6052C3.23175,23.8692,2.78806,24.0172,2.325,23.9992C1.04625,23.9512,0.00000138581,22.9192,0.00000138581,21.5992L0,2.40124Z'%20fill='%23FFFFFF'%20fill-opacity='1'%20style='mix-blend-mode:passthrough'/%3e%3c/g%3e%3c/svg%3e";export{e as h};

1
webdist-v0.0.1-anywhere/js/home/chart.CtKpKZg0.1751277099553.js
File diff suppressed because it is too large
View File

1
webdist-v0.0.1-anywhere/js/home/config.8m4GpftL.1751277099553.js

@ -0,0 +1 @@
import{F as b,S as w}from"../FormulaConfig/FormulaConfig.DWjnEYue.1751277099553.js";import{u as x,a as y,F as D,j as I,_ as B}from"../../assets/index-FZ48n_d9.js";import{d as V,r as i,h as E,w as M,k as N,ag as l,c as f,o as m,J as _,a as O,G as P,P as t,H as c}from"../@vue/@vue.B_jFLcBm.1751277099553.js";import"../index/index.DTZj_65S.1751277099553.js";import"../lodash/lodash.Cz9E_6Pa.1751277099553.js";import"../dayjs/dayjs.CWsDMI8D.1751277099553.js";import"../element-plus/element-plus.DC0PKXec.1751277099553.js";import"../lodash-es/lodash-es.S0Y0Up6J.1751277099553.js";import"../@vueuse/@vueuse.VzzCFLRY.1751277099553.js";import"../@element-plus/@element-plus.C01e5HIG.1751277099553.js";import"../@popperjs/@popperjs.D_chPuIy.1751277099553.js";import"../@ctrl/@ctrl.r5W6hzzQ.1751277099553.js";import"../async-validator/async-validator.CDKkdPIV.1751277099553.js";import"../memoize-one/memoize-one.BdPwpGay.1751277099553.js";import"../normalize-wheel-es/normalize-wheel-es.BQoi3Ox2.1751277099553.js";import"../@floating-ui/@floating-ui.DwceP2Gb.1751277099553.js";import"../pinia/pinia.Col4Kkvr.1751277099553.js";import"../pinia-plugin-persistedstate/pinia-plugin-persistedstate.BUYkM9Wd.1751277099553.js";import"../destr/destr.Ctyiwlcu.1751277099553.js";import"../deep-pick-omit/deep-pick-omit.CegYQlcN.1751277099553.js";import"../vue-i18n/vue-i18n.DKgOWBxc.1751277099553.js";import"../@intlify/@intlify.Bpjdt8ji.1751277099553.js";import"../nanoid/nanoid.OxPLOBIU.1751277099553.js";import"../vue-router/vue-router.DaQm0NVE.1751277099553.js";const H={class:"main-content"},T={key:0},j={class:"formula-config"},G=V({__name:"config",setup(J){const o=x(),u=y(),h=i([]),r=i(!1),v=i(),p=i(u.isDeviceIdle);E(()=>{(!o.formulaList||!o.formulaList.length)&&o.initFormulaList()}),M(()=>{h.value=[...o.formulaList],p.value=u.isDeviceIdle});const C=N(()=>{const n=o.formulaList,e=[];return n.forEach(a=>{e.push({label:a.name.toString(),value:a.formula_id})}),e}),F=n=>{if(!n){D.error("请选择配方");return}r.value=!1;let e={};o.formulaList.forEach(s=>{s.formula_id===n&&(e=s)});const a=I(e);o.updateSelectedFormulaDataByList(a)},g=()=>{r.value=!1},k=()=>{r.value=!0},L=()=>{o.initFormulaData()};return(n,e)=>{const a=l("Plus"),s=l("el-icon"),d=l("bt-button"),S=l("Operation");return m(),f("div",H,[p.value?(m(),f("div",T,[t(d,{type:"primary","button-text":"选择配方",width:"12vw",height:"5vh",onClick:k},{icon:c(()=>[t(s,null,{default:c(()=>[t(a)]),_:1})]),_:1}),t(d,{"button-text":"默认配置",height:"5vh",width:"12vw",onClick:L},{icon:c(()=>[t(s,null,{default:c(()=>[t(S)]),_:1})]),_:1})])):_("",!0),O("div",j,[t(b,{type:"home"})]),r.value?(m(),P(w,{key:1,options:C.value,"selected-value":v.value,placeholder:"请选择",onConfirm:F,onCancel:g},null,8,["options","selected-value"])):_("",!0)])}}}),po=B(G,[["__scopeId","data-v-645a3e91"]]);export{po as default};

1
webdist-v0.0.1-anywhere/js/home/index.CtFTitm1.1751277099553.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/js/home/index.CtFTitm1.1751277099553.js.gz

1
webdist-v0.0.1-anywhere/js/hookable/hookable.l0sNRNKZ.1751277099553.js

@ -0,0 +1 @@

1
webdist-v0.0.1-anywhere/js/index/index.DTZj_65S.1751277099553.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/js/index/index.DTZj_65S.1751277099553.js.gz

1
webdist-v0.0.1-anywhere/js/layouts/default.BjW1jcuw.1751277099553.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/js/layouts/default.BjW1jcuw.1751277099553.js.gz

1
webdist-v0.0.1-anywhere/js/liquid/index.x3osuUJG.1751277099553.js
File diff suppressed because it is too large
View File

1
webdist-v0.0.1-anywhere/js/lodash-es/lodash-es.S0Y0Up6J.1751277099553.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/js/lodash-es/lodash-es.S0Y0Up6J.1751277099553.js.gz

1
webdist-v0.0.1-anywhere/js/lodash-unified/lodash-unified.l0sNRNKZ.1751277099553.js

@ -0,0 +1 @@

27
webdist-v0.0.1-anywhere/js/lodash/lodash.Cz9E_6Pa.1751277099553.js
File diff suppressed because it is too large
View File

BIN
webdist-v0.0.1-anywhere/js/lodash/lodash.Cz9E_6Pa.1751277099553.js.gz

1
webdist-v0.0.1-anywhere/js/login/index.BG-zSPxX.1751277099553.js
File diff suppressed because it is too large
View File

1
webdist-v0.0.1-anywhere/js/logo/logo.BEfjoRN6.1751277099553.js

@ -0,0 +1 @@
const s=""+new URL("../../assets/logo-xwi68D73.svg",import.meta.url).href;export{s as _};

1
webdist-v0.0.1-anywhere/js/memoize-one/memoize-one.BdPwpGay.1751277099553.js

@ -0,0 +1 @@
var s=Number.isNaN||function(r){return typeof r=="number"&&r!==r};function f(e,r){return!!(e===r||s(e)&&s(r))}function i(e,r){if(e.length!==r.length)return!1;for(var t=0;t<e.length;t++)if(!f(e[t],r[t]))return!1;return!0}function o(e,r){r===void 0&&(r=i);var t=null;function u(){for(var n=[],a=0;a<arguments.length;a++)n[a]=arguments[a];if(t&&t.lastThis===this&&r(n,t.lastArgs))return t.lastResult;var l=e.apply(this,n);return t={lastResult:l,lastArgs:n,lastThis:this},l}return u.clear=function(){t=null},u}export{o as m};

1
webdist-v0.0.1-anywhere/js/nanoid/nanoid.OxPLOBIU.1751277099553.js

@ -0,0 +1 @@
const l="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let r=(t=21)=>{let e="",n=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+=l[n[t]&63];return e};export{r as n};

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save