diff --git a/package.json b/package.json
index 4c6370f..4f68624 100644
--- a/package.json
+++ b/package.json
@@ -45,6 +45,8 @@
"postcss-url": "^10.1.3",
"postcss-viewport-units": "^0.1.6",
"postcss-write-svg": "^3.0.1",
+ "simple-keyboard": "^3.8.71",
+ "simple-keyboard-layouts": "^3.4.114",
"vue": "^3.5.13",
"vue-router": "^4.5.0",
"ws": "^8.18.1"
diff --git a/src/assets/images/solutionSelect.svg b/src/assets/images/solutionSelect.svg
new file mode 100644
index 0000000..3b9d54a
--- /dev/null
+++ b/src/assets/images/solutionSelect.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/components/common/FTInput/index.vue b/src/components/common/FTInput/index.vue
index 0c234c8..8da82da 100644
--- a/src/components/common/FTInput/index.vue
+++ b/src/components/common/FTInput/index.vue
@@ -1,10 +1,9 @@
div.home-container(v-loading="loading")
- el-card(v-for="item in channelList.sort((a,b)=>a.channelCode.localeCompare(b.channelCode))" :key="item.channelCode")
+ el-card(v-for="item in channelList" :key="item.channelCode" :class="{'card-selected': item.selected }" @click.stop="() => cardClick(item)")
div.top-box
p.title {{channelMap[item.channelCode]}}
div.solution-box(@click="() => receiveHandle(item)")
@@ -82,7 +96,7 @@ const receiveOkHandle = async (data: Log.LogItem & { channelCode: 'CHANNEL_1' |
div.input-box
p.label
- img(:src="solutionIcon" alt="")
+ img(:src="item.selected ? solutionSelectIcon: solutionIcon" alt="")
span 每次加液体积
div.solution-box
el-select(v-model="item.targetVolume" placeholder="请选择" no-data-text="无数据, 请添加对应配方" :disabled="!item.solutionName")
@@ -107,6 +121,11 @@ const receiveOkHandle = async (data: Log.LogItem & { channelCode: 'CHANNEL_1' |
display grid
grid-template-columns 1fr 1fr 1fr 1fr
gap 20px
+ .el-card
+ transform: all 0.3s;
+ .card-selected
+ background-color #1778D2
+ color #fff
:deep(.el-card__body)
height 100%
display flex
@@ -120,41 +139,42 @@ const receiveOkHandle = async (data: Log.LogItem & { channelCode: 'CHANNEL_1' |
font-size 18px
font-weight 500
margin-bottom 30px
- .solution-box
+ .solution-box
+ width 100%
+ height 50px
+ background: #F8F8F8;
+ box-shadow: inset 1px 2px 6px 0 rgba(210, 210, 210, 0.3);
+ display flex
+ align-items center
+ .el-select
+ width 100%
+ height 100%
+ .unit
+ height 40px
+ line-height 40px
+ font-size 18px
+ font-weight 500
+ color: #3C445C;
+ padding 0 15px
+ border-left 1px solid #D1D1D1;
+ .content
+ width 100%
+ color: #3C445C;
+ text-align center
+ font-weight bold
+ font-size 18px
+ .input-box
+ width 100%
+
+ .label
width 100%
- height 50px
- background: #F8F8F8;
- box-shadow: inset 1px 2px 6px 0 rgba(210, 210, 210, 0.3);
display flex
align-items center
- .el-select
- width 100%
- height 100%
- .unit
- height 40px
- line-height 40px
- font-size 18px
- font-weight 500
- color: #3C445C;
- padding 0 15px
- border-left 1px solid #D1D1D1;
- .content
- width 100%
- text-align center
- font-weight bold
- font-size 18px
- .input-box
- width 100%
-
- .label
- width 100%
- display flex
- align-items center
- justify-content flex-start
- padding 10px
- img
- width 10px
- margin-right 10px
+ justify-content flex-start
+ padding 10px
+ img
+ width 10px
+ margin-right 10px
:deep(.el-select__wrapper) {
height 100%
line-height 100%
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index a233bac..71666ed 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -50,12 +50,12 @@ const loginHandle = async () => {
el-form(ref="formRef", :model="sys.loginForm", :rules="rules", style="width: 100%")
.input-title 用户名
el-form-item
- el-input(v-model="sys.loginForm.username", size="large", placeholder="请输入用户名")
+ ft-input(v-model="sys.loginForm.username", size="large", placeholder="请输入用户名")
template(#prepend)
img.input-icon(:src="user", alt="")
.input-title 密码
el-form-item
- el-input(v-model="sys.loginForm.password", size="large", placeholder="请输入密码", type="password")
+ ft-input(v-model="sys.loginForm.password", size="large", placeholder="请输入密码", type="password")
template(#prepend)
img.input-icon(:src="password", alt="")
el-form-item