优化配方维护功能-增加简写首字母自动填充,优化车间大屏和设备大屏界面
| | |
| | | "ant-design-vue": "^3.2.12", |
| | | "axios": "^0.26.1", |
| | | "china-area-data": "^5.0.1", |
| | | "chinese-to-pinyin": "^1.3.1", |
| | | "clipboard": "^2.0.8", |
| | | "codemirror": "^5.65.3", |
| | | "cron-parser": "^3.5.0", |
| | |
| | | export const BigEqp: AppRouteRecordRaw = { |
| | | path: '/bigEqp', |
| | | name: 'BigEqp', |
| | | component: () => import('/src/views/dry/bigScreen/BigEqp-tjt.vue'), |
| | | component: () => import('/@/views/dry/bigScreen/BigEqp-tjt.vue'), |
| | | meta: { |
| | | title: t('big.screen.eqp'), |
| | | }, |
| | |
| | | import { filterMultiDictText } from '/@/utils/dict/JDictSelectUtil.js'; |
| | | import { isEmpty } from '/@/utils/is'; |
| | | import { useMessage } from '/@/hooks/web/useMessage'; |
| | | import pinyin from 'chinese-to-pinyin'; |
| | | |
| | | const { createMessage } = useMessage(); |
| | | |
| | | const render = { |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * è·å䏿å符串çå
¨æ¼ |
| | | * @param str 䏿å符串 |
| | | * @returns æ¼é³å符串 |
| | | */ |
| | | export function getFullWordSpell(str: string): string { |
| | | if (!str) return ''; |
| | | return pinyin(str, { toneToNumber: true }); |
| | | } |
| | | |
| | | /** |
| | | * è·å䏿å符串çé¦åæ¯ |
| | | * @param str 䏿å符串 |
| | | * @returns é¦åæ¯ç»æçå符串 |
| | | */ |
| | | export function getFirstWordSpell(str: string): string { |
| | | if (!str) return ''; |
| | | // è·åæ¯ä¸ªåçæ¼é³é¦åæ¯å¹¶è¿æ¥ |
| | | return pinyin(str, { keepRest: true, firstCharacter: true, removeSpace: true }); |
| | | } |
| | | |
| | | export { render, downloadFile }; |
| | |
| | | <div class="leftEqp"> |
| | | <div style="width: 373px"> |
| | | <div class="herbInfo"> |
| | | <dv-border-box7 class="curEqp"> |
| | | <dv-border-box13 class="curEqp"> |
| | | <div style="display: flex"> |
| | | <div style="padding-top: 20px; padding-left: 10px" @click="back"> |
| | | <Icon style="color: powderblue" icon="ion:caret-back-sharp" :size="35" /> |
| | | </div> |
| | | <div class="eqpName" style="text-align: right" @click="changeEqp"> |
| | | <div class="mainInfo" style="font-size: 26px">{{ eqp?.name }}</div> |
| | | <div class="mainInfo" style="font-size: 31px">{{ eqp?.name }}</div> |
| | | <div class="subhead">{{ eqp?.type }}</div> |
| | | <dv-decoration-1 style="width: 240px; height: 90px; margin-left: 20px" /> |
| | | <!-- 设å¤ï¼{{ eqp.name }}</div> |
| | | <div class="eqpName">åå·ï¼{{ eqp.type }}</div> --> |
| | | </div> |
| | | </div> |
| | | </dv-border-box7> |
| | | <dv-border-box7 class="curHerb" :style="{ 'background-image': 'url(' + getHerbImageUrl(realData?.herbImage) + ')' }"> |
| | | </dv-border-box13> |
| | | <dv-border-box13 class="curHerb" :style="{ 'background-image': 'url(' + getHerbImageUrl(realData?.herbImage) + ')' }"> |
| | | <div class="eqpName" style="margin-left: 156px; height: 190px"> |
| | | <div class="mainInfo" style="font-size: 26px">{{ realData?.herbName }}</div> |
| | | <div class="mainInfo" style="font-size: 31px">{{ realData?.herbName }}</div> |
| | | <div class="subhead">å¹²ç¥é
æ¹</div> |
| | | </div> |
| | | <div class="formula"> |
| | | <div class="formulaItem"> |
| | | <Icon style="color: powderblue" icon="la:box" :size="38" /> |
| | | <div> |
| | | <div class="mainInfo2">{{ realData?.feed || 0 }} ç</div> |
| | | <div class="subhead2">ææé</div> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="formulaItem">--> |
| | | <!-- <Icon style="color: powderblue" icon="la:box" :size="38" />--> |
| | | <!-- <div>--> |
| | | <!-- <div class="mainInfo2">{{ realData?.feed || 0 }} ç</div>--> |
| | | <!-- <div class="subhead2">ææé</div>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <div class="formulaItem"> |
| | | <Icon style="color: red" icon="bx:wind" :size="35" /> |
| | | <div> |
| | | <div class="mainInfo2">{{ realData?.windTemp || 0 }} °C</div> |
| | | <div class="subhead2">çé£</div> |
| | | <div class="subhead2">ç飿¸©åº¦</div> |
| | | </div> |
| | | </div> |
| | | <div class="formulaItem"> |
| | | <Icon style="color: green" icon="tabler:target-arrow" :size="35" /> |
| | | <div> |
| | | <div class="mainInfo2">{{ realData?.target || 0 }} %</div> |
| | | <div class="subhead2">ç®æ </div> |
| | | <div class="subhead2">ç®æ 嫿°´ç</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="eqpName">{{ realData?.herbName }}</div> |
| | | <div class="eqpName">{{ realData?.feed }} ç</div> --> |
| | | </dv-border-box7> |
| | | </dv-border-box13> |
| | | </div> |
| | | <!-- <dv-border-box7 class="infoChart" style="margin-left: 0px;"> |
| | | <!-- <dv-border-box13 class="infoChart" style="margin-left: 0px;"> |
| | | <div class="chartTittle">飿ºé¢ç</div> |
| | | <div class="outDiv" style="padding-top: 10px"> |
| | | <div id="fanFreq" style="width: 240px; height: 240px"></div> |
| | | </div> |
| | | </dv-border-box7> --> |
| | | <dv-border-box7 class="infoChart" style="margin-left: 0px"> |
| | | </dv-border-box13> --> |
| | | <dv-border-box13 class="infoChart" style="margin-left: 0px"> |
| | | <div class="chartTittle">嫿°´ç</div> |
| | | <div class="outDiv" style="padding-top: 20px"> |
| | | <div class="leftData"> |
| | |
| | | </div> |
| | | <div id="moisture" style="width: 170px; height: 170px"></div> |
| | | </div> |
| | | <div class="subhead2" style="margin-top: -37px; padding-left: 205px; font-weight: bold">宿¶å«æ°´ç</div> |
| | | </dv-border-box7> |
| | | <div class="subhead2" style="margin-top: -54px; padding-left: 205px; font-weight: bold">宿¶å«æ°´ç</div> |
| | | </dv-border-box13> |
| | | </div> |
| | | <dv-border-box7 class="leftTop"> |
| | | <dv-border-box13 class="leftTop"> |
| | | <div class="leftTop0"> |
| | | <div class="leftTop1"> |
| | | <Icon icon="emojione:hourglass-with-flowing-sand" :size="50" /> |
| | |
| | | <div class="outDiv eqpStatus"> |
| | | <div |
| | | style=" |
| | | font-size: 28px; |
| | | font-size: 33px; |
| | | |
| | | color: white; |
| | | background-color: #1595ea; |
| | |
| | | </div> |
| | | |
| | | </div> |
| | | </dv-border-box7> |
| | | <dv-border-box7 class="infoChart" style="margin-left: 0px; margin-right: 10px"> |
| | | </dv-border-box13> |
| | | <dv-border-box13 class="infoChart" style="margin-left: 0px; margin-right: 10px"> |
| | | <div class="chartTittle">é£ç®±æ¸©åº¦</div> |
| | | <div class="outDiv"> |
| | | <div id="bellowsTemp" style="width: 230px; height: 230px"> |
| | | <Icon icon="emojione:hourglass-with-flowing-sand" :size="50" /> |
| | | |
| | | </div> |
| | | </div> |
| | | </dv-border-box7> |
| | | <dv-border-box7 class="leftMid"> |
| | | </dv-border-box13> |
| | | <dv-border-box13 class="leftMid"> |
| | | <div class="chartTittle">宿¶è¿åº¦</div> |
| | | <div id="efficiencyLine" style="width: 907px; height: 180px; margin-top: -10px"></div> |
| | | <div style="height: 10px; display: flex; width: 907px; padding: 0 60px; justify-content: space-between"> |
| | | <div style="height: 10px; font-size: 16px; display: flex; width: 907px; padding: 0 60px; justify-content: space-between"> |
| | | <div style="width: 100px; height: 20px">{{ realData?.dryTime | 0 }} min</div> |
| | | <div style="width: 100px; height: 20px; text-align: right">{{ realData?.totalTime | 0 }} min</div> |
| | | </div> |
| | | <div id="progressBar" style="width: 907px; height: 80px"></div> |
| | | </dv-border-box7> |
| | | </dv-border-box13> |
| | | |
| | | <!-- <div class="outDiv"> |
| | | <div style="height: 100px; width: 400px"> |
| | |
| | | </div> |
| | | <div class="rightInfo"> |
| | | <div class="rightTop"> |
| | | <dv-border-box7 class="tempMoisChart"> |
| | | <dv-border-box13 class="tempMoisChart"> |
| | | <div :id="'moisChart'" style="width: 690px; height: 420px"></div> |
| | | </dv-border-box7> |
| | | </dv-border-box13> |
| | | </div> |
| | | <div class="rightTwo"> |
| | | <dv-border-box7 class="infoChart"> |
| | | <dv-border-box13 class="infoChart"> |
| | | <div class="chartTittle"> |
| | | å¹²ç¥æç(kg/h) |
| | | <div class="rightLabel"> |
| | | <div class="label good">>{{ realData?.efficAvg?.toFixed(2) }} ä¼ </div> |
| | | <div class="label bad"><{{ ((realData?.efficAvg|0) * 0.9)?.toFixed(2) }} å·®</div> |
| | | <div class="label good"> ä¼ </div> |
| | | <div class="label bad"> å·®</div> |
| | | </div> |
| | | </div> |
| | | <div class="outDiv" style="padding-top: 20px"> |
| | |
| | | <div class="barBack"> |
| | | <div class="barDiv" :style="{ height: realData?.xlsHeight }"></div> |
| | | </div> |
| | | <div style="line-height: 20px"> |
| | | <div class="barBottom" > |
| | | é¢å® |
| | | <br /> |
| | | æç |
| | |
| | | > |
| | | </div> |
| | | </div> |
| | | <div style="line-height: 20px"> |
| | | <div class="barBottom"> |
| | | 宿¶ |
| | | <br /> |
| | | æç |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </dv-border-box7> |
| | | </dv-border-box13> |
| | | |
| | | <dv-border-box7 class="infoChart"> |
| | | <dv-border-box13 class="infoChart"> |
| | | <div class="chartTittle" |
| | | >è¸æ±½æ¶è(m³/kg) |
| | | <div class="rightLabel"> |
| | | <div class="label bad">>{{ realData?.steamAvg?.toFixed(2) }} å·®</div> |
| | | <div class="label good"><{{ ((realData?.steamAvg|0) * 0.9).toFixed(2) }} ä¼</div> |
| | | |
| | | <div class="label good"> ä¼</div> |
| | | <div class="label bad"> å·®</div> |
| | | </div> |
| | | </div> |
| | | <div class="outDiv" style="padding-top: 20px"> |
| | |
| | | <div class="barBack"> |
| | | <div class="barDiv" :style="{ height: realData?.zqsHeight }"></div> |
| | | </div> |
| | | <div style="line-height: 20px"> |
| | | <div class="barBottom"> |
| | | é¢å® |
| | | <br /> |
| | | æ¶è |
| | |
| | | > |
| | | </div> |
| | | </div> |
| | | <div style="line-height: 20px"> |
| | | <div class="barBottom"> |
| | | 宿¶ |
| | | <br /> |
| | | æ¶è |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </dv-border-box7> |
| | | <dv-border-box7 class="infoChart"> |
| | | </dv-border-box13> |
| | | <dv-border-box13 class="infoChart"> |
| | | <div class="chartTittle">æç对æ¯</div> |
| | | <div class="outDiv" style="padding-top: 10px"> |
| | | <div id="compare" style="width: 300px; height: 250px"></div> |
| | | </div> |
| | | </dv-border-box7> |
| | | <dv-border-box7 class="infoChart"> |
| | | </dv-border-box13> |
| | | <dv-border-box13 class="infoChart"> |
| | | <div class="chartTittle"> |
| | | <div> çµè½æ¶è(kWh/kg)</div> |
| | | <div class="rightLabel"> |
| | | <div class="label bad">>{{ realData?.wattAvg?.toFixed(3) }} å·®</div> |
| | | <div class="label good"><{{ ((realData?.wattAvg|0) * 0.9).toFixed(3) }} ä¼</div> |
| | | |
| | | <div class="label good"> ä¼</div> |
| | | <div class="label bad"> å·®</div> |
| | | </div> |
| | | </div> |
| | | <div class="outDiv" style="padding-top: 20px"> |
| | |
| | | <div class="barBack"> |
| | | <div class="barDiv" :style="{ height: realData?.dnsHeight }"></div> |
| | | </div> |
| | | <div style="line-height: 20px"> |
| | | <div class="barBottom"> |
| | | é¢å® |
| | | <br /> |
| | | æ¶è |
| | |
| | | :style="[realData?.dnrHeight && { height: realData?.dnrHeight }]" |
| | | ></div> |
| | | </div> |
| | | <div style="line-height: 20px"> |
| | | <div class="barBottom"> |
| | | 宿¶ |
| | | <br /> |
| | | æ¶è |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </dv-border-box7> |
| | | </dv-border-box13> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | text: '嫿°´ç/温度è¶å¿', |
| | | textStyle: { |
| | | color: '#fff', |
| | | fontSize: 15, |
| | | fontSize: 18, |
| | | }, |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | |
| | | }, |
| | | grid: { |
| | | left: 50, |
| | |
| | | right: 60, |
| | | textStyle: { |
| | | color: '#fff', |
| | | fontSize: 16, |
| | | }, |
| | | }, |
| | | // toolbox: { |
| | |
| | | type: 'value', |
| | | axisLabel: { |
| | | color: '#fff', |
| | | fontSize: 16, |
| | | }, |
| | | //boundaryGap: false, |
| | | // data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], |
| | |
| | | boundaryGap: ['10%', '10%'], |
| | | axisLabel: { |
| | | color: '#fff', |
| | | fontSize: 16, |
| | | }, |
| | | splitLine: { |
| | | lineStyle: { |
| | |
| | | max: 80, |
| | | splitNumber: 8, |
| | | itemStyle: { |
| | | color: '#FFAB91', |
| | | color: '#973535', |
| | | }, |
| | | progress: { |
| | | show: true, |
| | | width: 10, |
| | | width: 14, |
| | | }, |
| | | pointer: { |
| | | show: false, |
| | | }, |
| | | axisLine: { |
| | | lineStyle: { |
| | | width: 10, |
| | | width: 14, |
| | | }, |
| | | }, |
| | | axisTick: { |
| | | distance: -15, |
| | | distance: -20, |
| | | splitNumber: 5, |
| | | length: 3, |
| | | length: 4, |
| | | lineStyle: { |
| | | width: 1, |
| | | color: '#999', |
| | | color: '#973535', |
| | | }, |
| | | }, |
| | | splitLine: { |
| | | distance: -18, |
| | | length: 6, |
| | | distance: -24, |
| | | length: 7, |
| | | lineStyle: { |
| | | width: 2, |
| | | color: '#999', |
| | | color: '#973535', |
| | | }, |
| | | }, |
| | | axisLabel: { |
| | | distance: -13, |
| | | distance: -24, |
| | | color: '#fff', |
| | | fontSize: 12, |
| | | fontSize: 20, |
| | | }, |
| | | anchor: { |
| | | show: false, |
| | |
| | | lineHeight: 40, |
| | | borderRadius: 8, |
| | | offsetCenter: [0, '0%'], |
| | | fontSize: 20, |
| | | fontSize: 24, |
| | | fontWeight: 'bolder', |
| | | formatter: '{value}°C', |
| | | color: 'inherit', |
| | |
| | | min: 0, |
| | | max: 80, |
| | | itemStyle: { |
| | | color: '#FD7347', |
| | | color: '#973535', |
| | | }, |
| | | progress: { |
| | | show: true, |
| | |
| | | // } |
| | | |
| | | const progressBarOption = { |
| | | // tooltip: { |
| | | // trigger: 'axis', |
| | | // axisPointer: { |
| | | // // Use axis to trigger tooltip |
| | | // type: 'shadow', // 'shadow' as default; can also be 'line' or 'shadow' |
| | | // }, |
| | | // }, |
| | | // color: [ |
| | | // '#0653F6', |
| | | // // '#1B61E7', |
| | | // '#3673D5', |
| | | // // '#4A80C8', |
| | | // '#608FB8', |
| | | // // '#719BAD', |
| | | // '#82A6A1', |
| | | // // '#8DAD9A', |
| | | // '#9CB790', |
| | | // // '#A7BE88', |
| | | // '#B3C681', |
| | | // '#CAD671', |
| | | // '#DBE165', |
| | | // ], |
| | | |
| | | animation: false, // å
³éå¨ç» |
| | | color: ['#397FD7', '#2D8CDE', '#239CE5', '#1DA4E8', '#14B2EF', '#0BC4FA', '#02D2FF', '#19EEFF', '#33FAFF', '#5EFFF8', '#60FFFE', '#64FAFF', '#70FFFF', '#7BFFFF', '#88FFFD', '#97FFFF', '#A5FFFD', '#B1FFFF', '#BFFFFF', '#CAFFFF'], |
| | | grid: { |
| | |
| | | type: 'category', |
| | | data: ['æ¶é´'], |
| | | }, |
| | | series: [ |
| | | // { |
| | | // name: '第ä¸é¶æ®µ', |
| | | // type: 'bar', |
| | | // stack: 'total', |
| | | // label: { |
| | | // show: true, |
| | | // }, |
| | | // barWidth: 26, |
| | | // emphasis: { |
| | | // focus: 'series', |
| | | // }, |
| | | // data: [30], |
| | | // }, |
| | | // { |
| | | // name: '第äºé¶æ®µ', |
| | | // type: 'bar', |
| | | // stack: 'total', |
| | | // label: { |
| | | // show: true, |
| | | // }, |
| | | // emphasis: { |
| | | // focus: 'series', |
| | | // }, |
| | | // data: [30], |
| | | // }, |
| | | // { |
| | | // name: 'Affiliate Ad', |
| | | // type: 'bar', |
| | | // stack: 'total', |
| | | // label: { |
| | | // show: true, |
| | | // }, |
| | | // emphasis: { |
| | | // focus: 'series', |
| | | // }, |
| | | // data: [20], |
| | | // }, |
| | | // { |
| | | // name: 'Video Ad', |
| | | // type: 'bar', |
| | | // stack: 'total', |
| | | // label: { |
| | | // show: true, |
| | | // }, |
| | | // emphasis: { |
| | | // focus: 'series', |
| | | // }, |
| | | // data: [15], |
| | | // }, |
| | | // { |
| | | // name: 'Search Engine', |
| | | // type: 'bar', |
| | | // stack: 'total', |
| | | // label: { |
| | | // show: true, |
| | | // }, |
| | | // emphasis: { |
| | | // focus: 'series', |
| | | // }, |
| | | // data: [10], |
| | | // }, |
| | | // { |
| | | // name: 'df Engine', |
| | | // type: 'bar', |
| | | // stack: 'total', |
| | | // label: { |
| | | // show: true, |
| | | // }, |
| | | // emphasis: { |
| | | // focus: 'series', |
| | | // }, |
| | | // data: [5], |
| | | // }, |
| | | // { |
| | | // name: 'df Engine', |
| | | // type: 'bar', |
| | | // stack: 'total', |
| | | // label: { |
| | | // show: true, |
| | | // }, |
| | | // emphasis: { |
| | | // focus: 'series', |
| | | // }, |
| | | // data: [5], |
| | | // }, |
| | | // { |
| | | // name: 'df Engine', |
| | | // type: 'bar', |
| | | // stack: 'total', |
| | | // label: { |
| | | // show: true, |
| | | // }, |
| | | // emphasis: { |
| | | // focus: 'series', |
| | | // }, |
| | | // data: [ |
| | | // { |
| | | // value: 35, |
| | | // itemStyle: { |
| | | // color: '#c0c0c0', |
| | | // }, |
| | | // }, |
| | | // ], |
| | | // }, |
| | | ], |
| | | series: [], |
| | | } |
| | | |
| | | const efficiencyLineOption = { |
| | |
| | | right: 60, |
| | | textStyle: { |
| | | color: '#fff', |
| | | fontSize: 16, |
| | | }, |
| | | }, |
| | | xAxis: { |
| | |
| | | name: 'å¹²ç¥æç', |
| | | type: 'line', |
| | | lineStyle: { |
| | | width: 1, |
| | | width: 2, |
| | | }, |
| | | // [[15,10], [15,11], [10,6], [7.5,12], [5,12], [2.5,5], [2.5,9], [1,7]] |
| | | data: [], |
| | |
| | | { type: 'max', name: 'Max' }, |
| | | { type: 'min', name: 'Min' }, |
| | | ], |
| | | // label: { |
| | | // color: '#fff', |
| | | // fontSize: 16, |
| | | // }, |
| | | }, |
| | | markLine: { |
| | | symbol: 'none', |
| | | width: 2, |
| | | data: [ |
| | | { |
| | | name: 'é¢å®', |
| | |
| | | label: { |
| | | formatter: '{b}\n{c}', |
| | | color: '#fff', |
| | | fontSize: 16, |
| | | }, |
| | | }, |
| | | // markLine: { |
| | |
| | | }, |
| | | type: 'category', |
| | | data: ['1#', '2#', '3#', '4#', '5#', '6#'], |
| | | axisLabel: { |
| | | color: '#fff', |
| | | fontSize: 16, |
| | | }, |
| | | }, |
| | | series: [ |
| | | { |
| | | name: '2011', |
| | | type: 'bar', |
| | | barWidth: 10, |
| | | barWidth: 16, |
| | | data: [0, 0, 0, 0, 0, 0], |
| | | label: { |
| | | show: true, |
| | | position: 'right', |
| | | valueAnimation: true, |
| | | |
| | | fontSize: 16, |
| | | color: '#fff', |
| | | }, |
| | | }, |
| | |
| | | // å¨æè¯»åå¾ç |
| | | function getHerbImageUrl(name: string) { |
| | | //return new URL(`/src/assets/images/dry/yaocai/${name}`, import.meta.url).href |
| | | return ""; |
| | | return "/src/assets/images/dry/yaocai/yc3.jpg"; |
| | | } |
| | | |
| | | // å¨æè¯»åå¾ç |
| | |
| | | stack: 'total', |
| | | label: { |
| | | show: true, |
| | | fontSize: 16 |
| | | }, |
| | | emphasis: { |
| | | focus: 'series', |
| | |
| | | stack: 'total', |
| | | label: { |
| | | show: true, |
| | | fontSize: 16 |
| | | }, |
| | | emphasis: { |
| | | focus: 'series', |
| | |
| | | stack: 'total', |
| | | label: { |
| | | show: true, |
| | | fontSize: 16 |
| | | }, |
| | | emphasis: { |
| | | focus: 'series', |
| | |
| | | label: { |
| | | formatter: '{b}\n{c}%', |
| | | color: '#fff', |
| | | fontSize: 16, |
| | | }, |
| | | }, |
| | | }, |
| | |
| | | .mainInfo { |
| | | line-height: 33px; |
| | | padding-left: 10px; |
| | | font-size: 30px; |
| | | font-size: 35px; |
| | | color: white; |
| | | } |
| | | .subhead { |
| | | color: #cdcdcd; |
| | | font-size: 16px; |
| | | color: white; |
| | | font-size: 20px; |
| | | padding-left: 10px; |
| | | } |
| | | |
| | | .mainInfo2 { |
| | | line-height: 20px; |
| | | padding-left: 0px; |
| | | font-size: 16px; |
| | | padding-left: 5px; |
| | | font-size: 24px; |
| | | } |
| | | .subhead2 { |
| | | color: #cdcdcd; |
| | | font-size: 12px; |
| | | color: white; |
| | | font-size: 16px; |
| | | padding-left: 0px; |
| | | } |
| | | .zhengqi { |
| | |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-size: 30px; |
| | | color: #727272; |
| | | font-size: 36px; |
| | | color: white; |
| | | } |
| | | .leftTop2 { |
| | | width: 266px; |
| | |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-size: 30px; |
| | | color: #727272; |
| | | font-size: 36px; |
| | | color: white; |
| | | } |
| | | .leftTop3 { |
| | | width: 363px; |
| | |
| | | border-radius: 10px; |
| | | } |
| | | .chartTittle { |
| | | margin-top:10px; |
| | | width: 362px; |
| | | height: 30px; |
| | | font-size: 16px; |
| | | font-size: 20px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 15px 15px; |
| | |
| | | } |
| | | |
| | | .barTop { |
| | | font-size: 17px; |
| | | width: 55px; |
| | | height: 30px; |
| | | } |
| | |
| | | width: 50px; |
| | | border-radius: 4px; |
| | | height: 20px; |
| | | font-size: 10px; |
| | | font-size: 14px; |
| | | line-height: 21px; |
| | | } |
| | | .good { |
| | |
| | | } |
| | | |
| | | .mainInfo3 { |
| | | font-size: 24px; |
| | | font-size: 28px; |
| | | } |
| | | .herbInfo { |
| | | width: 362px; |
| | |
| | | height: 260px; |
| | | /* background: white; |
| | | border-radius: 10px; */ |
| | | opacity: 0.7; |
| | | background-repeat: no-repeat; |
| | | background-size: 120px; |
| | | background-position: 14px 10px; |
| | |
| | | .fault { |
| | | padding: 10px; |
| | | height: 60px; |
| | | font-size: 26px; |
| | | font-size: 30px; |
| | | width: 100%; |
| | | text-align: right; |
| | | color: red; |
| | |
| | | .formulaItem { |
| | | display: flex; |
| | | justify-content: center; |
| | | width: 85px; |
| | | width: 115px; |
| | | height: 40px; |
| | | } |
| | | |
| | | .eqpInfoText { |
| | | font-size: 18px; |
| | | font-size: 22px; |
| | | font-weight: bold; |
| | | } |
| | | |
| | | :deep() .ant-slider-mark-text { |
| | | padding-left: 15px; |
| | | font-size: 10px; |
| | | font-size: 14px; |
| | | } |
| | | :deep() .ant-slider-mark-text::before { |
| | | content: ''; |
| | |
| | | height: 24px; |
| | | background: gray; border-radius: 5px; font-weight: bold; color: orange; |
| | | } |
| | | |
| | | .barBottom{ |
| | | line-height: 20px; font-size: 16px |
| | | } |
| | | </style> |
| | |
| | | <!-- </div>--> |
| | | </div> |
| | | <div class="feed"> |
| | | <div style="width: 700px; margin-left: 50px; display: flex; flex-direction: column; height: 950px; justify-content: space-between"> |
| | | <div style="width: 800px; margin-left: 50px; display: flex; flex-direction: column; height: 950px; justify-content: space-between"> |
| | | <div style="display: flex; flex-wrap: wrap; justify-content: space-between"> |
| | | <dv-border-box7 style="width: 210px; height: 100px; padding: 10px"> |
| | | <dv-border-box7 class="toptip"> |
| | | <div class="statistics putincolor"> |
| | | <div class="stat_label font16"> æ»ææé </div> |
| | | <div class="stat_value"> |
| | |
| | | </div> |
| | | </div> |
| | | </dv-border-box7> |
| | | <dv-border-box7 style="width: 210px; height: 100px; padding: 10px"> |
| | | <dv-border-box7 class="toptip"> |
| | | <div class="statistics putincolor"> |
| | | <div class="stat_label font16"> çµéæ¶è </div> |
| | | <div class="stat_value"> |
| | |
| | | </div> |
| | | </div> |
| | | </dv-border-box7> |
| | | <dv-border-box7 style="width: 210px; height: 100px; padding: 10px"> |
| | | <dv-border-box7 class="toptip"> |
| | | <div class="statistics putincolor"> |
| | | <div class="stat_label font16"> è¸æ±½æ¶è </div> |
| | | <div class="stat_value"> |
| | |
| | | height: 980px; |
| | | width: 100%; |
| | | margin-top: -100px; |
| | | font-size: 20px; |
| | | font-size: 24px; |
| | | } |
| | | .title { |
| | | height: 200px; |
| | | padding: 20px; |
| | | font-size: 30px; |
| | | font-size: 36px; |
| | | font-weight: bold; |
| | | text-align: center; |
| | | color: white; |
| | |
| | | } |
| | | .down { |
| | | padding-left: 683px; |
| | | margin-top: -823px; |
| | | margin-top: -730px; |
| | | display: flex; |
| | | |
| | | align-content: center; |
| | | justify-content: flex-start; |
| | | } |
| | | .eqpInfoup { |
| | | width: 304px; |
| | | width: 340px; |
| | | height: 400px; |
| | | position: relative; |
| | | display: flex; |
| | |
| | | } |
| | | |
| | | .eqpInfodown { |
| | | width: 313px; |
| | | width: 340px; |
| | | height: 490px; |
| | | position: relative; |
| | | display: flex; |
| | |
| | | } |
| | | |
| | | .one { |
| | | margin: 310px 52px; |
| | | margin: 280px 45px; |
| | | } |
| | | |
| | | .two { |
| | | margin: 248px -45px; |
| | | margin: 218px -45px; |
| | | } |
| | | |
| | | .three { |
| | | margin: 129px 222px; |
| | | margin: 99px 222px; |
| | | } |
| | | |
| | | .four { |
| | | margin: 3px 4px; |
| | | margin: -27px 4px; |
| | | } |
| | | |
| | | .four_down { |
| | |
| | | |
| | | width: 100%; |
| | | |
| | | padding: 10px 20px; |
| | | padding: 10px 10px; |
| | | } |
| | | |
| | | .eqp-name { |
| | |
| | | |
| | | .eqp-info-up { |
| | | flex: 1; |
| | | padding-top: 108px; |
| | | padding-top: 140px; |
| | | display: flex; |
| | | } |
| | | |
| | | .weight { |
| | | flex: 1; |
| | | display: flex; |
| | | margin-left: 36px; |
| | | font-size: 20px; |
| | | margin-left: 45px; |
| | | font-size: 24px; |
| | | } |
| | | |
| | | .eqp-info-down { |
| | |
| | | height: 160px; |
| | | display: flex; |
| | | padding: 10px 20px; |
| | | font-size: 30px; |
| | | font-size: 36px; |
| | | flex-direction: column-reverse; |
| | | align-items: flex-end; |
| | | color: white; |
| | |
| | | } |
| | | |
| | | .stat_value { |
| | | font-size: 28px; |
| | | font-size: 33px; |
| | | } |
| | | |
| | | .herb_weight { |
| | |
| | | background: #a0782e; |
| | | border-radius: 50px; |
| | | /* text-align: center; */ |
| | | font-size: 18px; |
| | | font-size: 22px; |
| | | color: white; |
| | | display: flex; |
| | | justify-content: center; |
| | |
| | | color: sandybrown; |
| | | } |
| | | .font16 { |
| | | font-size: 16px; |
| | | font-size: 20px; |
| | | } |
| | | .stat_avg { |
| | | width: 100%; |
| | | font-size: 16px; |
| | | font-size: 20px; |
| | | display: flex; |
| | | color: rgb(176, 176, 176); |
| | | justify-content: space-between; |
| | |
| | | content: ''; |
| | | position: absolute; |
| | | left: 90px; |
| | | top: 34%; |
| | | top: 39%; |
| | | width: 65px; |
| | | height: 6px; |
| | | background: repeating-linear-gradient(90deg, #5596c7 0 5px, transparent 5px 10px); |
| | |
| | | background-size: 200% 100%; |
| | | animation: flowLight 15s infinite linear; |
| | | } |
| | | .toptip { |
| | | width: 250px; height: 120px; padding: 10px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <BasicModal v-bind="$attrs" @register="registerModal" destroyOnClose :title="title" :width="800" @ok="handleSubmit"> |
| | | <BasicModal v-bind="$attrs" @register="registerModal" destroyOnClose :title="title" :width="1100" @ok="handleSubmit"> |
| | | <BasicForm @register="registerForm" /> |
| | | </BasicModal> |
| | | </template> |
| | |
| | | const isUpdate = ref(true) |
| | | //表åé
ç½® |
| | | const [registerForm, { setProps, resetFields, setFieldsValue, validate }] = useForm({ |
| | | //labelWidth: 150, |
| | | labelWidth: 150, |
| | | schemas: formSchema, |
| | | showActionButtonGroup: false, |
| | | baseColProps: { span: 24 }, |
| | | baseColProps: { span: 11 }, |
| | | }) |
| | | |
| | | //表åèµå¼ |
| | |
| | | import {render} from "/@/utils/common/renderUtils"; |
| | | import {rules} from "/@/utils/helper/validator"; |
| | | import {queryById} from "/@/views/dry/api/DryHerbInfo.api" |
| | | import { getFirstWordSpell } from "/@/utils/common/renderUtils"; |
| | | //åè¡¨æ°æ® |
| | | export const columns: BasicColumn[] = [ |
| | | { |
| | |
| | | dataIndex: 'eqpType_dictText', |
| | | }, |
| | | { |
| | | title: 'é
æ¹åç±»', |
| | | title: '缩å', |
| | | align: 'center', |
| | | dataIndex: 'category', |
| | | customRender: ({ text }) => { |
| | | return render.renderDict(text, 'formula_category'); |
| | | dataIndex: 'abbr', |
| | | }, |
| | | { |
| | | title: 'ç¹ç§ç©æ', |
| | | align: 'center', |
| | | dataIndex: 'special', |
| | | customRender: ({ text }) => { |
| | | return render.renderSwitch(text, [ |
| | | { text: 'æ¯', value: 'true' }, |
| | | { text: 'å¦', value: 'false' }, |
| | | ]) |
| | | }, |
| | | }, |
| | | { |
| | | title: 'è½»è´¨ç©æ', |
| | | align: 'center', |
| | | dataIndex: 'light', |
| | | customRender: ({ text }) => { |
| | | return render.renderSwitch(text, [ |
| | | { text: 'æ¯', value: 'true' }, |
| | | { text: 'å¦', value: 'false' }, |
| | | ]) |
| | | }, |
| | | }, |
| | | { |
| | | title: 'åå§å«æ°´ç', |
| | | align: 'center', |
| | | dataIndex: 'initial', |
| | | }, |
| | | { |
| | | title: 'ç®æ 嫿°´ç', |
| | |
| | | align: 'center', |
| | | dataIndex: 'fanSpeed', |
| | | }, |
| | | // { |
| | | // title: 'ç¯å¢æ¸©åº¦', |
| | | // align: 'center', |
| | | // dataIndex: 'envTemp', |
| | | // }, |
| | | // { |
| | | // title: 'ç¯å¢æ¹¿åº¦', |
| | | // align: 'center', |
| | | // dataIndex: 'envHum', |
| | | // }, |
| | | |
| | | { |
| | | title: 'è¡æå»¶æ¶ms', |
| | | title: 'å¯ç¨ç¿»æçç¥', |
| | | align: 'center', |
| | | dataIndex: 'delay', |
| | | dataIndex: 'strategy', |
| | | customRender: ({ text }) => { |
| | | return render.renderSwitch(text, [ |
| | | { text: 'æ¯', value: 'true' }, |
| | | { text: 'å¦', value: 'false' }, |
| | | ]) |
| | | }, |
| | | // { |
| | | // title: 'ç¿»ææ¬¡æ°', |
| | | // align: 'center', |
| | | // dataIndex: 'turn', |
| | | // }, |
| | | { |
| | | title: '嫿°´çè¡¥å¿', |
| | | align: 'center', |
| | | dataIndex: 'moisOffset', |
| | | }, |
| | | |
| | | { |
| | | title: 'å·é£æ¶é¿', |
| | | align: 'center', |
| | | dataIndex: 'coolingDuration', |
| | | }, |
| | | // { |
| | | // title: 'ç§æ·id', |
| | | // align: 'center', |
| | | // dataIndex: 'tenantId', |
| | | // }, |
| | | |
| | | ] |
| | | //æ¥è¯¢æ°æ® |
| | | export const searchFormSchema: FormSchema[] = [ |
| | |
| | | } |
| | | queryById(param).then(res => { |
| | | formModel.name = res.name |
| | | if (res.name) { |
| | | const abbr = getFirstWordSpell(res.name); |
| | | formModel.abbr = abbr.toUpperCase(); |
| | | } else { |
| | | formModel.abbr = ''; |
| | | } |
| | | }) |
| | | }, |
| | | } |
| | |
| | | dynamicRules: ({ model, schema }) => { |
| | | return [{ required: true, message: '请è¾å
¥é
æ¹åç§°!' }, { ...rules.duplicateCheckRule('dry_herb_formula', 'name', model, schema)[0] }] |
| | | }, |
| | | componentProps: ({ formModel }) => { |
| | | return { |
| | | onChange: (e) => { |
| | | const value = e.target.value; |
| | | // çææ¼é³é¦åæ¯å¹¶èµå¼ç» abbr åæ®µ |
| | | if (value) { |
| | | const abbr = getFirstWordSpell(value); |
| | | formModel.abbr = abbr.toUpperCase(); |
| | | } else { |
| | | formModel.abbr = ''; |
| | | } |
| | | } |
| | | }; |
| | | }, |
| | | }, |
| | | |
| | | { |
| | | label: '设å¤ç±»å', |
| | | field: 'eqpType', |
| | | component: 'JSearchSelect', |
| | | componentProps: { |
| | | dict: 'dry_eqp_type,name,id', |
| | | dict: 'dry_eqp_type,name,id' |
| | | }, |
| | | dynamicRules: ({ model, schema }) => { |
| | | return [{ required: true, message: '请设å¤è®¾å¤ç±»å!' }] |
| | | return [{ required: true, message: 'è¯·éæ©è®¾å¤ç±»å!' }] |
| | | }, |
| | | defaultValue: '1952566592372215810', |
| | | }, |
| | | { |
| | | label: 'é
æ¹åç±»', |
| | | field: 'category', |
| | | component: 'JDictSelectTag', |
| | | componentProps: { |
| | | dictCode: 'formula_category', |
| | | placeholder: 'è¯·éæ©é
æ¹åç±»', |
| | | stringToNumber: true, |
| | | label: 'é¦åæ¯ç¼©å', |
| | | field: 'abbr', |
| | | component: 'Input' |
| | | }, |
| | | { |
| | | label: 'ç¹ç§ç©æ', |
| | | field: 'special', |
| | | component: 'Switch', |
| | | defaultValue: false |
| | | }, |
| | | { |
| | | label: 'è½»è´¨ç©æ', |
| | | field: 'light', |
| | | component: 'Switch', |
| | | defaultValue: false |
| | | }, |
| | | { |
| | | label: 'åå§å«æ°´ç', |
| | | field: 'initial', |
| | | component: 'Input', |
| | | dynamicRules: ({ model, schema }) => { |
| | | return [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '请è¾å
¥æ°å!' }] |
| | | }, |
| | | renderComponentContent: () => { |
| | | return { |
| | | suffix: () => '%', |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | |
| | | } |
| | | }, |
| | | }, |
| | | // { |
| | | // label: 'ç¯å¢æ¸©åº¦', |
| | | // field: 'envTemp', |
| | | // component: 'Input', |
| | | // dynamicRules: ({ model, schema }) => { |
| | | // return [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '请è¾å
¥æ°å!' }] |
| | | // }, |
| | | // renderComponentContent: () => { |
| | | // return { |
| | | // suffix: () => 'â', |
| | | // } |
| | | // }, |
| | | // }, |
| | | // { |
| | | // label: 'ç¯å¢æ¹¿åº¦', |
| | | // field: 'envHum', |
| | | // component: 'Input', |
| | | // dynamicRules: ({ model, schema }) => { |
| | | // return [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '请è¾å
¥æ°å!' }] |
| | | // }, |
| | | // renderComponentContent: () => { |
| | | // return { |
| | | // suffix: () => 'rh', |
| | | // } |
| | | // }, |
| | | // }, |
| | | |
| | | { |
| | | label: 'è¡æå»¶æ¶', |
| | | field: 'delay', |
| | | component: 'Input', |
| | | dynamicRules: ({ model, schema }) => { |
| | | return [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '请è¾å
¥æ°å!' }] |
| | | }, |
| | | renderComponentContent: () => { |
| | | return { |
| | | suffix: () => 'ms', |
| | | } |
| | | }, |
| | | }, |
| | | // { |
| | | // label: 'ç¿»ææ¬¡æ°', |
| | | // field: 'turn', |
| | | // component: 'Input', |
| | | // dynamicRules: ({ model, schema }) => { |
| | | // return [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '请è¾å
¥æ°å!' }] |
| | | // }, |
| | | // renderComponentContent: () => { |
| | | // return { |
| | | // suffix: () => '次', |
| | | // } |
| | | // }, |
| | | // }, |
| | | { |
| | | label: '嫿°´çè¡¥å¿', |
| | | field: 'moisOffset', |
| | | component: 'Input', |
| | | dynamicRules: ({ model, schema }) => { |
| | | return [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '请è¾å
¥æ°å!' }] |
| | | }, |
| | | renderComponentContent: () => { |
| | | return { |
| | | suffix: () => '%', |
| | | } |
| | | }, |
| | | label: 'å¯ç¨ç¿»æçç¥', |
| | | field: 'strategy', |
| | | component: 'Switch', |
| | | defaultValue: false, |
| | | }, |
| | | { |
| | | label: 'å·é£æ¶é¿', |