UI修改2.0

RS2508
wangsiyang 2025-09-24 15:23:05 +08:00
parent db4f073e1f
commit ff407379cd
14 changed files with 593 additions and 255 deletions

View File

@ -10,7 +10,7 @@
<!-- 双按钮 --> <!-- 双按钮 -->
<view class="buttons" v-else-if="isDouble"> <view class="buttons" v-else-if="isDouble">
<view class="buttonLeft button" @click="onCancel()">{{ texts[0] }}</view> <view class="buttonLeft button" :style="{backgroundColor:cancelBtnColor}" @click="onCancel()">{{ texts[0] }}</view>
<view class="buttonRight button" @click="onSubmit()">{{ texts[1] }}</view> <view class="buttonRight button" @click="onSubmit()">{{ texts[1] }}</view>
</view> </view>
@ -36,6 +36,10 @@
type: Boolean, type: Boolean,
default: false default: false
}, },
cancelBtnColor:{
type: String,
default: '#165DFF'
},
isWhite: { isWhite: {
type: Boolean, type: Boolean,
default: true default: true

View File

@ -1,42 +1,45 @@
<template> <template>
<view class="normal-login-container"> <view class="normal-login-container">
<view class="logo-content align-center justify-center flex">
<image style="width: 100rpx;height: 100rpx;" :src="globalConfig.appInfo.logo" mode="widthFix"> <cu-custom :isBack="true">
</image> <block slot="backText"></block>
<text class="title">修改配置信息</text> <block slot="content">修改配置信息</block>
</cu-custom>
<view class="menu">
<view class="item" style="border-bottom: 1px solid #C4C4C4;">
<view class="content ">
<view class="title">
<view class="titlemes">
当前系统连接信息
</view> </view>
<view class="cu-list menu-avatar"> <view class="btn" @click="connectTestHander(changeUrlForm.baseUrl)">
<view class="cu-item"> 连通性测试
<view class="content flex-sub"> </view>
<view class="text-grey">当前系统连接信息</view> </view>
<view class="text-gray text-sm flex justify-between"> <view class="text">
<view class="text-gray text-sm">
{{changeUrlForm.baseUrl}} {{changeUrlForm.baseUrl}}
</view> </view>
<view class="text-gray text-sm"> </view>
<button @click="connectTestHander(changeUrlForm.baseUrl)" </view>
class="changeUrl-btn cu-btn block bg-blue md round">连通性测试</button> <view class="item">
<view class="content ">
<view class="title">
<view class="titlemes">
项目实际连接信息
</view>
<view class="btn" @click="connectTestHander(changeUrlForm.practicalUrl)" v-if="changeUrlForm.practicalUrl.length>0">
连通性测试
</view>
</view>
<view class="text">
{{changeUrlForm.practicalUrl?changeUrlForm.practicalUrl:"未设置"}}
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="cu-item"> <view class="login-form-content menu">
<view class="content flex-sub">
<view class="text-grey">项目实际连接信息</view>
<view class="text-gray text-sm flex justify-between">
<view class="text-gray text-sm">
{{changeUrlForm.practicalUrl?changeUrlForm.practicalUrl:"未设置"}}
</view>
<view class="text-gray text-sm" v-if="changeUrlForm.practicalUrl.length>0">
<button @click="connectTestHander(changeUrlForm.practicalUrl)"
class="changeUrl-btn cu-btn block bg-blue md round">连通性测试</button>
</view>
</view>
</view>
</view>
</view>
<view class="login-form-content">
<view class="cu-form-group input-item flex align-center"> <view class="cu-form-group input-item flex align-center">
<view class="title">新IP </view> <view class="title">新IP </view>
<input v-model="changeUrlForm.ip" class="input" type="text" placeholder="请输入IP" maxlength="30" /> <input v-model="changeUrlForm.ip" class="input" type="text" placeholder="请输入IP" maxlength="30" />
@ -45,18 +48,20 @@
<view class="title">新端口 </view> <view class="title">新端口 </view>
<input v-model="changeUrlForm.port" type="text" class="input" placeholder="请输入端口" maxlength="20" /> <input v-model="changeUrlForm.port" type="text" class="input" placeholder="请输入端口" maxlength="20" />
</view> </view>
<view class="flex action-btn"> <!-- <view class="flex action-btn">
<view class="flex-sub padding-sm margin-xs radius"> <view class="flex-sub padding-sm margin-xs radius">
<button @click="testConnection()" class=" cu-btn block bg-yellow md round">测试</button> <button @click="testConnection()" class=" cu-btn block bg-yellow md round">测试</button>
</view> </view>
<view class="flex-sub padding-sm margin-xs radius"> <view class="flex-sub padding-sm margin-xs radius">
<button @click="saveUrl()" class=" cu-btn block bg-blue md round">保存</button> <button @click="saveUrl()" class=" cu-btn block bg-blue md round">保存</button>
</view> </view>
</view> -->
</view> </view>
</view> <!-- <view class="xieyi text-center">
<view class="xieyi text-center">
<text @click="handleUserLogin" class="text-blue">跳转到登录页</text> <text @click="handleUserLogin" class="text-blue">跳转到登录页</text>
</view> </view> -->
<bottomBtn :isSubmit="true" :isDouble="true" cancelBtnColor="#FF7D00" :isWhite="false" position="fixed" :texts="['测试','保存']" @onCancel='testConnection'
@onSubmit="saveUrl"></bottomBtn>
</view> </view>
</template> </template>
@ -65,6 +70,9 @@
getCodeImg, getCodeImg,
register register
} from '@/api/login'; } from '@/api/login';
import {
bottomBtn
} from '@/components/bottomBtn/bottomBtn.vue'
import config from '@/config'; import config from '@/config';
import errorCode from '@/utils/errorCode'; import errorCode from '@/utils/errorCode';
import store from '@/store' import store from '@/store'
@ -95,6 +103,9 @@
created() { created() {
//this.getCode() //this.getCode()
}, },
component: {
bottomBtn
},
methods: { methods: {
// //
handleUserLogin() { handleUserLogin() {
@ -248,7 +259,40 @@
.normal-login-container { .normal-login-container {
width: 100%; width: 100%;
background: rgb(242, 243, 245);
height: 100vh;
.menu{
width: 702rpx;
border-radius: 24rpx;
background: rgb(255, 255, 255);
padding: 12rpx 24rpx;
margin:24rpx auto;
.item{
.content{
padding: 12px 0;
.title{
display: flex;
align-items: center;
justify-content: space-between;
.titlemes{
color: rgb(78, 89, 105);
font-size: 28rpx;
font-weight: 400;
}
.btn{
color: rgb(22, 93, 255);
font-size: 28rpx;
font-weight: 400;
}
}
.text{
padding: 16rpx 0;
}
}
}
}
.logo-content { .logo-content {
width: 100%; width: 100%;
font-size: 21px; font-size: 21px;
@ -260,15 +304,19 @@
} }
.title { .title {
color: rgb(29, 33, 41);
font-size: 32rpx;
font-weight: 700;
margin-left: 10px; margin-left: 10px;
} }
} }
.login-form-content { .login-form-content {
text-align: center; width: 702rpx;
margin: 20px auto; border-radius: 24rpx;
margin-top: 15%; background: rgb(255, 255, 255);
width: 80%; padding: 12rpx 24rpx;
margin:24rpx auto;
.input-item { .input-item {
margin: 20px auto; margin: 20px auto;

View File

@ -1,8 +1,8 @@
<template> <template>
<view class="mine-container" :style="{height: `${windowHeight}px`}"> <view class="mine-container" :style="{height: `${windowHeight}px`}">
<!--顶部个人信息栏--> <!--顶部个人信息栏-->
<view class="header-section bg-gradual-green"> <view class="header-section ">
<view class="flex padding justify-between"> <view class="flex justify-between">
<view class="flex align-center"> <view class="flex align-center">
<view v-if="!avatar" class="cu-avatar xl round bg-white"> <view v-if="!avatar" class="cu-avatar xl round bg-white">
<view class="iconfont icon-people text-gray icon"></view> <view class="iconfont icon-people text-gray icon"></view>
@ -15,63 +15,58 @@
</view> </view>
<view v-if="name" @click="handleToInfo" class="user-info"> <view v-if="name" @click="handleToInfo" class="user-info">
<view class="u_title"> <view class="u_title">
用户名{{ name }} {{ name }}
</view> </view>
</view> </view>
</view> </view>
<view @click="handleToInfo" class="flex align-center"> <view @click="handleToInfo" class="flex align-center peopleMes">
<text>个人信息</text> <text>个人信息</text>
<view class="iconfont icon-right"></view> <view class="iconfont icon-right" style="font-size: 12px;"></view>
</view> </view>
</view> </view>
</view> </view>
<view class="content-section"> <view class="content-section">
<view class="mine-actions grid col-1 text-center"> <view class="mine-actions ">
<!-- <view class="action-item" @click="handleJiaoLiuQun">
<view class="iconfont icon-friendfill text-pink icon"></view>
<text class="text">交流群</text>
</view> -->
<view class="action-item" @click="handleBuilding"> <view class="action-item" @click="handleBuilding">
<view class="iconfont icon-community text-blue icon"></view>
<text class="text">{{warehouseinfo}}</text> <text class="text">{{warehouseinfo}}</text>
</view> </view>
<view class="house">
<image src="/static/images/house.png" mode=""></image>
</view>
</view> </view>
<view class="menu-list"> <view class="mainbox">
<view class="menu-item-box" @click="handleHelp">
<view class="list-cell list-cell-arrow" @click="handleHelp"> <view class="leftbox">
<view class="menu-item-box"> <image src="/static/images/icon1.png" class="icon" mode=""></image>
<view class="iconfont icon-help menu-icon"></view>
<view>常见问题</view> <view>常见问题</view>
</view> </view>
<image src="/static/images/right.png" class="right" mode=""></image>
</view> </view>
<view class="list-cell list-cell-arrow" @click="handleAbout"> <view class="menu-item-box" @click="handleAbout">
<view class="menu-item-box"> <view class="leftbox">
<view class="iconfont icon-aixin menu-icon"></view> <image src="/static/images/icon2.png" class="icon" mode=""></image>
<view>关于我们</view> <view>关于我们</view>
</view> </view>
<image src="/static/images/right.png" class="right" mode=""></image>
</view> </view>
<view class="list-cell list-cell-arrow" @click="handleToSetting"> <view class="menu-item-box" @click="handleToSetting">
<view class="menu-item-box"> <view class="leftbox">
<view class="iconfont icon-setting menu-icon"></view> <image src="/static/images/icon3.png" class="icon" mode=""></image>
<view>应用设置</view> <view>应用设置</view>
</view> </view>
<image src="/static/images/right.png" class="right" mode=""></image>
</view> </view>
</view> </view>
<view class="bottombtn" @click="handleLogout">
<view class="btn">
退出登录
</view>
<view class="menu-list round">
<view class="list-cell list-cell ">
<view class="cu-item item-box">
<view class="content text-center" @click="handleLogout">
<text class="text-black iconfont icon-logout menu-icon xl ">退出登录</text>
</view>
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
</template> </template>
@ -84,7 +79,7 @@
return { return {
name: this.$store.state.user.name, name: this.$store.state.user.name,
version: getApp().globalData.config.appInfo.version, version: getApp().globalData.config.appInfo.version,
warehouse:this.$store.state.user.warehouse, warehouse: this.$store.state.user.warehouse,
} }
}, },
computed: { computed: {
@ -94,9 +89,9 @@
windowHeight() { windowHeight() {
return uni.getSystemInfoSync().windowHeight - 50 return uni.getSystemInfoSync().windowHeight - 50
}, },
warehouseinfo(){ warehouseinfo() {
if(Array.isArray(this.warehouse) && this.warehouse.length > 0 ){ if (Array.isArray(this.warehouse) && this.warehouse.length > 0) {
return '【'+this.warehouse[0].warehouseCode+'】' + this.warehouse[0].warehouseName return '【' + this.warehouse[0].warehouseCode + '】' + this.warehouse[0].warehouseName
} }
} }
}, },
@ -145,14 +140,51 @@
} }
.mine-container { .mine-container {
background: linear-gradient(180.00deg, rgb(181, 202, 245) 0%, rgb(184, 204, 245) 40.449%, rgba(213, 227, 249, 0) 87.96%);
width: 100%; width: 100%;
height: 100%; height: 90vh;
overflow: hidden;
.bottombtn {
position: fixed;
width: 100%;
bottom: 140rpx;
.btn {
margin: 0 auto;
width: 686rpx;
height: 90rpx;
display: flex;
justify-content: center;
align-items: center;
border: 2rpx solid rgb(22, 93, 255);
border-radius: 24rpx;
background: rgb(22, 93, 255);
color: rgb(255, 255, 255);
font-size: 32rpx;
font-weight: 400;
}
}
.header-section { .header-section {
padding: 15px 15px 45px 15px; padding: 40rpx 32rpx;
background-color: #3c96f3;
color: white; color: white;
position: relative;
.peopleMes {
/* 矩形 668 */
position: absolute;
width: 186rpx;
height: 56rpx;
right: 0;
top: 54rpx;
box-sizing: border-box;
background: linear-gradient(137.70deg, rgb(73, 137, 255) 8.068%, rgba(98, 150, 246, 0.7) 100%);
border-radius: 28rpx 0 0 28rpx;
padding-left: 24rpx;
display: flex;
align-items: center;
}
.login-tip { .login-tip {
font-size: 18px; font-size: 18px;
@ -160,7 +192,10 @@
} }
.cu-avatar { .cu-avatar {
width: 80rpx;
height: 80rpx;
border: 2px solid #eaeaea; border: 2px solid #eaeaea;
border-radius: 24rpx;
.icon { .icon {
font-size: 40px; font-size: 40px;
@ -168,34 +203,102 @@
} }
.user-info { .user-info {
margin-left: 15px; margin-left: 36rpx;
.u_title { .u_title {
font-size: 18px;
line-height: 30px; color: rgb(255, 255, 255);
font-family: 苹方-;
font-size: 42rpx;
font-weight: 500;
line-height: 59rpx;
letter-spacing: 0%;
text-align: left;
}
.s_text {
color: rgb(255, 255, 255);
font-family: 苹方-;
font-size: 24rpx;
font-weight: 400;
line-height: 34rpx;
letter-spacing: 0%;
text-align: left;
margin-top: 10rpx;
} }
} }
} }
.mainbox {
border-radius: 24rpx;
background-color: #fff;
width: 686rpx;
margin: 16rpx auto;
padding: 0 24rpx;
.menu-item-box {
display: flex;
align-items: center;
justify-content: space-between;
padding: 24rpx 0;
border-bottom: 1rpx solid #C4C4C4;
}
.menu-item-box:last-child {
border: none;
}
.leftbox {
display: flex;
align-items: center;
.icon {
width: 44rpx;
height: 44rpx;
margin-right: 24rpx;
}
}
.right {
width: 28rpx;
height: 28rpx;
}
}
.content-section { .content-section {
position: relative; position: relative;
top: -50px;
.mine-actions { .mine-actions {
margin: 15px 15px; width: 686rpx;
padding: 20px 0px; height: 194rpx;
border-radius: 8px; margin: 24rpx auto;
background-color: white; box-sizing: border-box;
border: 2rpx solid rgb(255, 255, 255);
border-radius: 24rpx;
backdrop-filter: blur(23rpx);
background: linear-gradient(127.75deg, rgb(243, 248, 255) 5.474%, rgba(231, 239, 254, 0.78) 97.238%);
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 40rpx;
margin-top: 0;
.house {
width: 152rpx;
height: 152rpx;
.action-item { image {
.icon { width: 152rpx;
font-size: 28px; height: 152rpx;
}
} }
.action-item {
.text { .text {
display: block; color: rgb(85, 105, 141);
font-size: 13px; font-size: 28rpx;
margin: 8px 0px; font-weight: 400;
} }
} }
} }

View File

@ -32,7 +32,7 @@
<swiper class="work-swiper" :class="dotStyle?'square-dot':'round-dot'" :indicator-dots="true" :circular="true" <swiper class="work-swiper" :class="dotStyle?'square-dot':'round-dot'" :indicator-dots="true" :circular="true"
:autoplay="true" interval="5000" duration="500"> :autoplay="true" interval="5000" duration="500">
<swiper-item v-for="(item,index) in swiperList" :key="index"> <swiper-item v-for="(item,index) in swiperList" :key="index">
<image :src="item.url" v-if="item.type=='image'"></image> <image :src="item.url" v-if="item.type=='image'" ></image>
<video :src="item.url" autoplay loop muted :show-play-btn="false" :controls="false" objectFit="cover" <video :src="item.url" autoplay loop muted :show-play-btn="false" :controls="false" objectFit="cover"
v-if="item.type=='video'"></video> v-if="item.type=='video'"></video>
</swiper-item> </swiper-item>
@ -346,7 +346,7 @@
margin: 32rpx auto; margin: 32rpx auto;
box-shadow: 0px 4rpx 11rpx 0px rgba(111, 150, 198, 0.09), 0px 4px 84px 0px rgba(130, 154, 190, 0.11); box-shadow: 0px 4rpx 11rpx 0px rgba(111, 150, 198, 0.09), 0px 4px 84px 0px rgba(130, 154, 190, 0.11);
background: rgb(255, 255, 255); background: rgb(255, 255, 255);
padding-bottom: 64rpx;
.bodytitle { .bodytitle {
color: rgb(29, 33, 41); color: rgb(29, 33, 41);
font-family: 苹方-; font-family: 苹方-;

View File

@ -1,7 +1,7 @@
<template> <template>
<view class="container"> <view class="container">
<cu-custom bgColor="bg-gradual-pink" :isBack="true"> <cu-custom :isBack="true">
<block slot="backText">返回</block> <block slot="backText"></block>
<block slot="content">空容器入库</block> <block slot="content">空容器入库</block>
</cu-custom> </cu-custom>
<view class="example"> <view class="example">
@ -22,10 +22,12 @@
</uni-forms-item> </uni-forms-item>
</uni-forms> </uni-forms>
<view class="button-group"> <!-- <view class="button-group">
<button :disabled="isButtonDisabled" style="width: 100px;" @click="callAgv"></button> <button :disabled="isButtonDisabled" style="width: 100px;" @click="callAgv"></button>
</view> -->
</view> </view>
</view> <bottomBtn :isSubmit="true" :isWhite="false" position="fixed" :disable="isButtonDisabled"
:texts="['确认入库']" @onSubmit="callAgv"></bottomBtn>
<view class="cu-modal" :class="msgModalName=='Modal'?'show':''"> <view class="cu-modal" :class="msgModalName=='Modal'?'show':''">
<view class="cu-dialog"> <view class="cu-dialog">
<view class="cu-bar bg-white justify-end"> <view class="cu-bar bg-white justify-end">
@ -57,6 +59,7 @@
import { import {
formatDate formatDate
} from 'tough-cookie'; } from 'tough-cookie';
import {bottomBtn} from '@/components/bottomBtn/bottomBtn.vue'
export default { export default {
data() { data() {
return { return {
@ -183,6 +186,9 @@
msg: null msg: null
}; };
}, },
component:{
bottomBtn
},
onLoad() { onLoad() {
// //
this.getSkuTypes(); this.getSkuTypes();
@ -488,31 +494,64 @@
} }
</script> </script>
<style lang="scss"> <style scoped lang="scss">
.sku-dropdown { .container {
position: absolute; background: rgb(242, 243, 245);
z-index: 1000; height: 100vh;
background: white; }
border: 1px solid #ddd;
border-radius: 4px; .uni-forms-item {
max-height: 200px; border-bottom: 1px solid #E5E6EB;
overflow-y: auto; margin-bottom: 0;
padding: 24rpx 0;
}
::v-deep .uni-forms-item__label {
color: #1D2129;
font-size: 28rpx;
font-weight: 400;
}
::v-deep .uni-select {
border: 0px;
}
::v-deep.uni-select__input-placeholder {
font-size: 28rpx;
font-weight: 400;
color: #86909C;
}
.textarea{
background-color: #F2F3F5;
width: 100%; width: 100%;
box-shadow: 0 2px 12px rgba(0,0,0,0.1);
} }
.dropdown-item { ::v-deep.full-width-textarea{
padding: 8px 12px; width: 100%!important;
font-size: 14px; border: unset!important;
color: #333;
border-bottom: 1px solid #eee;
} }
::v-deep .is-input-border{
.dropdown-item:last-child { border: unset;
border-bottom: none;
} }
::v-deep .uni-easyinput__placeholder-class{
.dropdown-item:hover { font-size: 28rpx;
background-color: #f5f5f5; color: #86909C;
}
::v-deep .uni-input-input{
font-size: 28rpx;
}
::v-deep .uni-select__input-placeholder{
font-size: 28rpx;
color: #86909C;
}
::v-deep .uniui-bottom{
display: none;
}
::v-deep .uniui-top{
display: none;
}
.fromItem{
display: flex;
align-items: center;
} }
.cu-form-group .title { .cu-form-group .title {
min-width: calc(4em + 15px); min-width: calc(4em + 15px);
@ -523,8 +562,12 @@
} }
.example { .example {
padding: 15px; padding: 0 24rpx;
background-color: #fff; background-color: #fff;
width: 702rpx;
border-radius: 24rpx;
margin: 24rpx auto;
} }
.segmented-control { .segmented-control {
@ -550,6 +593,7 @@
line-height: 35px; line-height: 35px;
margin-left: 10px; margin-left: 10px;
} }
.switch-item { .switch-item {
display: flex; display: flex;
align-items: center; align-items: center;
@ -557,18 +601,4 @@
padding: 10px; padding: 10px;
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
} }
/* 输入框样式 */
.full-width-textarea {
width: calc(100vw - 260rpx); /* 直接扣除边距 */
padding: 20rpx;
box-sizing: border-box;
border: 2rpx solid #e5e5e5;
border-radius: 8rpx;
min-height: 200rpx;
font-size: 28rpx;
line-height: 1.5;
}
</style> </style>

View File

@ -1,7 +1,6 @@
<template> <template>
<view class="container"> <view class="container">
<cu-custom bgColor="bg-gradual-pink" :isBack="true"> <cu-custom :isBack="true">
<block slot="backText">返回</block>
<block slot="content">Mes工位库库存变更</block> <block slot="content">Mes工位库库存变更</block>
</cu-custom> </cu-custom>
<view class="example"> <view class="example">
@ -13,8 +12,11 @@
<uni-easyinput v-model="this.skuCode" disabled/> <uni-easyinput v-model="this.skuCode" disabled/>
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="物料描述" name="skuName"> <uni-forms-item label="物料描述" name="skuName">
<textarea class="full-width-textarea" v-model="this.skuName" disabled/>
</uni-forms-item> </uni-forms-item>
<view class="textarea">
<textarea class="full-width-textarea" v-model="this.skuName" disabled/>
</view>
<uni-forms-item label="工位" name="locCode"> <uni-forms-item label="工位" name="locCode">
<uni-easyinput v-model="this.locCode" disabled/> <uni-easyinput v-model="this.locCode" disabled/>
</uni-forms-item> </uni-forms-item>
@ -28,11 +30,13 @@
<uni-easyinput v-model="formData.amount" type="number" placeholder="请输入变更数量"/> <uni-easyinput v-model="formData.amount" type="number" placeholder="请输入变更数量"/>
</uni-forms-item> </uni-forms-item>
</uni-forms> </uni-forms>
<view class="button-group"> <!-- <view class="button-group">
<button :disabled="isButtonDisabled" style="width: 100px;" @click="callAgv"></button> <button :disabled="isButtonDisabled" style="width: 100px;" @click="callAgv"></button>
</view> </view> -->
</view> </view>
<bottomBtn :isSubmit="true" :isWhite="false" position="fixed" :disable="isButtonDisabled"
:texts="['确认变更']" @onSubmit="callAgv"></bottomBtn>
<view class="cu-modal" :class="msgModalName=='Modal'?'show':''"> <view class="cu-modal" :class="msgModalName=='Modal'?'show':''">
<view class="cu-dialog"> <view class="cu-dialog">
<view class="cu-bar bg-white justify-end"> <view class="cu-bar bg-white justify-end">
@ -65,6 +69,7 @@
import { import {
formatDate formatDate
} from 'tough-cookie'; } from 'tough-cookie';
import {bottomBtn} from '@/components/bottomBtn/bottomBtn.vue'
export default { export default {
data() { data() {
return { return {
@ -195,6 +200,9 @@
msg: null msg: null
}; };
}, },
component:{
bottomBtn
},
onLoad() { onLoad() {
// //
this.getSkuTypes() this.getSkuTypes()
@ -504,7 +512,101 @@
} }
</script> </script>
<style lang="scss"> <style scoped lang="scss">
.container {
background: rgb(242, 243, 245);
height: 100vh;
}
.uni-forms-item {
border-bottom: 1px solid #E5E6EB;
margin-bottom: 0;
padding: 24rpx 0;
}
::v-deep .uni-forms-item__label {
color: #1D2129;
font-size: 28rpx;
font-weight: 400;
}
::v-deep .uni-select {
border: 0px;
}
::v-deep.uni-select__input-placeholder {
font-size: 28rpx;
font-weight: 400;
color: #86909C;
}
.textarea{
background-color: #F2F3F5;
width: 100%;
}
::v-deep.full-width-textarea{
width: 100%!important;
border: unset!important;
}
::v-deep .is-input-border{
border: unset;
}
::v-deep .uni-easyinput__placeholder-class{
font-size: 28rpx;
color: #86909C;
}
::v-deep .uni-input-input{
font-size: 28rpx;
}
::v-deep .uni-select__input-placeholder{
font-size: 28rpx;
color: #86909C;
}
::v-deep .uniui-bottom{
display: none;
}
::v-deep .uniui-top{
display: none;
}
.fromItem{
display: flex;
align-items: center;
}
.example {
padding: 0 24rpx;
background-color: #fff;
width: 702rpx;
border-radius: 24rpx;
margin: 24rpx auto;
}
// /-#86909C
.sku-dropdown {
position: absolute;
z-index: 1000;
background: white;
border: 1px solid #ddd;
border-radius: 4px;
max-height: 200px;
overflow-y: auto;
width: 100%;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
}
.dropdown-item {
padding: 8px 12px;
font-size: 14px;
color: #333;
border-bottom: 1px solid #eee;
}
.dropdown-item:last-child {
border-bottom: none;
}
.dropdown-item:hover {
background-color: #f5f5f5;
}
.cu-form-group .title { .cu-form-group .title {
min-width: calc(4em + 15px); min-width: calc(4em + 15px);
} }
@ -513,10 +615,7 @@
background-color: #ffffff; background-color: #ffffff;
} }
.example {
padding: 15px;
background-color: #fff;
}
.segmented-control { .segmented-control {
margin-bottom: 15px; margin-bottom: 15px;
@ -541,6 +640,7 @@
line-height: 35px; line-height: 35px;
margin-left: 10px; margin-left: 10px;
} }
.switch-item { .switch-item {
display: flex; display: flex;
align-items: center; align-items: center;
@ -548,9 +648,11 @@
padding: 10px; padding: 10px;
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
} }
/* 输入框样式 */ /* 输入框样式 */
.full-width-textarea { .full-width-textarea {
width: calc(100vw - 260rpx); /* 直接扣除边距 */ width: calc(100vw - 260rpx);
/* 直接扣除边距 */
padding: 20rpx; padding: 20rpx;
box-sizing: border-box; box-sizing: border-box;

View File

@ -11,7 +11,6 @@
</uni-data-select> </uni-data-select>
<image style="width: 28rpx;" src="/static/images/right.png" mode="widthFix"></image> <image style="width: 28rpx;" src="/static/images/right.png" mode="widthFix"></image>
</view> </view>
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="物料类型" name="skuType"> <uni-forms-item label="物料类型" name="skuType">
@ -35,13 +34,11 @@
</view> </view>
<image style="width: 28rpx;" src="/static/images/right.png" mode="widthFix"></image> <image style="width: 28rpx;" src="/static/images/right.png" mode="widthFix"></image>
</view> </view>
</uni-forms-item> </uni-forms-item>
<view class="textarea"> <view class="textarea">
<textarea class="full-width-textarea" v-model="skuInfo"> <textarea class="full-width-textarea" v-model="skuInfo">
</textarea> </textarea>
</view> </view>
<uni-forms-item label="托盘编号" name="palletCode"> <uni-forms-item label="托盘编号" name="palletCode">
<view class="fromItem"> <view class="fromItem">
<uni-easyinput v-model="formData.palletCode" placeholder="请扫描托盘号" @blur="trimPalletInput" /> <uni-easyinput v-model="formData.palletCode" placeholder="请扫描托盘号" @blur="trimPalletInput" />
@ -63,11 +60,13 @@
<uni-forms-item label="批次" name="batch"> <uni-forms-item label="批次" name="batch">
<!-- <uni-section :title="'日期用法:' + formData.batch" type="line"></uni-section> --> <!-- <uni-section :title="'日期用法:' + formData.batch" type="line"></uni-section> -->
<!-- <view class="example-body"> --> <!-- <view class="example-body"> -->
<uni-datetime-picker type="date" :clear-icon="false" v-model="formData.batch" @maskClick="maskClick" /> <uni-datetime-picker type="date" :clear-icon="false" v-model="formData.batch"
@maskClick="maskClick" />
<!-- </view> --> <!-- </view> -->
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="库区" name="warehouseArea" v-if="showWarehouseArea"> <uni-forms-item label="库区" name="warehouseArea" v-if="showWarehouseArea">
<uni-data-select v-model="formData.warehouseArea" :localdata="warehouseAreaList" placeholder="请选择库区" /> <uni-data-select v-model="formData.warehouseArea" :localdata="warehouseAreaList"
placeholder="请选择库区" />
</uni-forms-item> </uni-forms-item>
</uni-forms> </uni-forms>
<view class="switch-item"> <view class="switch-item">
@ -106,7 +105,9 @@
getSkuTypes, getSkuTypes,
getLineCodes getLineCodes
} from "@/api/wms/sku.js" } from "@/api/wms/sku.js"
import{queryAreaByLocCode} from "@/api/wms/palletDetailUnBind.js" import {
queryAreaByLocCode
} from "@/api/wms/palletDetailUnBind.js"
import { import {
createPalletBySku, createPalletBySku,
callAgvIn callAgvIn
@ -117,7 +118,9 @@
import { import {
formatDate formatDate
} from 'tough-cookie'; } from 'tough-cookie';
import {bottomBtn} from '@/components/bottomBtn/bottomBtn.vue' import {
bottomBtn
} from '@/components/bottomBtn/bottomBtn.vue'
export default { export default {
data() { data() {
return { return {
@ -279,7 +282,7 @@
onReady() { onReady() {
this.$refs.form.setRules(this.rules) this.$refs.form.setRules(this.rules)
}, },
component:{ component: {
bottomBtn bottomBtn
}, },
watch: { watch: {
@ -309,7 +312,7 @@
} }
}, },
methods: { methods: {
maskClick(e){ maskClick(e) {
console.log('maskClick事件:', e); console.log('maskClick事件:', e);
}, },
onSkuInput(value) { onSkuInput(value) {
@ -343,7 +346,7 @@
async trimLocInput(event) { async trimLocInput(event) {
this.formData.locCode = event.target.value.trim(); this.formData.locCode = event.target.value.trim();
if(!this.formData.locCode) { if (!this.formData.locCode) {
// //
this.$modal.msgError("请扫描货位编号") this.$modal.msgError("请扫描货位编号")
return; return;
@ -539,7 +542,7 @@
var data = { var data = {
locCode: this.formData.locCode, locCode: this.formData.locCode,
palletCode: this.formData.palletCode, palletCode: this.formData.palletCode,
warehouseArea:this.formData.warehouseArea, warehouseArea: this.formData.warehouseArea,
autoCall: this.autoCall, autoCall: this.autoCall,
userCode: this.userCode, userCode: this.userCode,
warehouseCode: this.whCode warehouseCode: this.whCode
@ -616,38 +619,48 @@
font-weight: 400; font-weight: 400;
color: #86909C; color: #86909C;
} }
.textarea{
.textarea {
background-color: #F2F3F5; background-color: #F2F3F5;
width: 100%; width: 100%;
} }
::v-deep.full-width-textarea{
width: 100%!important; ::v-deep.full-width-textarea {
border: unset!important; width: 100% !important;
border: unset !important;
} }
::v-deep .is-input-border{
::v-deep .is-input-border {
border: unset; border: unset;
} }
::v-deep .uni-easyinput__placeholder-class{
::v-deep .uni-easyinput__placeholder-class {
font-size: 28rpx; font-size: 28rpx;
color: #86909C; color: #86909C;
} }
::v-deep .uni-input-input{
::v-deep .uni-input-input {
font-size: 28rpx; font-size: 28rpx;
} }
::v-deep .uni-select__input-placeholder{
::v-deep .uni-select__input-placeholder {
font-size: 28rpx; font-size: 28rpx;
color: #86909C; color: #86909C;
} }
::v-deep .uniui-bottom{
::v-deep .uniui-bottom {
display: none; display: none;
} }
::v-deep .uniui-top{
::v-deep .uniui-top {
display: none; display: none;
} }
.fromItem{
.fromItem {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.example { .example {
padding: 0 24rpx; padding: 0 24rpx;
background-color: #fff; background-color: #fff;
@ -656,6 +669,7 @@
margin: 24rpx auto; margin: 24rpx auto;
} }
// /-#86909C // /-#86909C
.sku-dropdown { .sku-dropdown {
position: absolute; position: absolute;

View File

@ -1,7 +1,7 @@
<template> <template>
<view class="container"> <view class="container">
<cu-custom bgColor="bg-gradual-pink" :isBack="true"> <cu-custom :isBack="true">
<block slot="backText">返回</block> <block slot="backText"></block>
<block slot="content">一码通组盘 AGV入库</block> <block slot="content">一码通组盘 AGV入库</block>
</cu-custom> </cu-custom>
<view class="example"> <view class="example">
@ -29,10 +29,10 @@
<uni-forms-item label="物料编号" name="skuCode"> <uni-forms-item label="物料编号" name="skuCode">
<uni-easyinput v-model="formData.skuCode" disabled/> <uni-easyinput v-model="formData.skuCode" disabled/>
</uni-forms-item> </uni-forms-item>
<uni-forms-item label="" name=""> <view class="textarea">
<textarea class="full-width-textarea" v-model="skuInfo" disabled > <textarea class="full-width-textarea" v-model="skuInfo" disabled>
</textarea > </textarea>
</uni-forms-item> </view>
<uni-forms-item label="物料数量" name="skuQty"> <uni-forms-item label="物料数量" name="skuQty">
<uni-easyinput v-model="formData.skuQty" type="number" disabled /> <uni-easyinput v-model="formData.skuQty" type="number" disabled />
</uni-forms-item> </uni-forms-item>
@ -53,14 +53,15 @@
<view class="uni-list-cell-db">{{callStatus}}</view> <view class="uni-list-cell-db">{{callStatus}}</view>
<switch :checked="autoCall" color="#0055ff" @change="switchChange" /> <switch :checked="autoCall" color="#0055ff" @change="switchChange" />
</view> </view>
<view class="button-group"> <!-- <view class="button-group">
<!-- <button type="warn" @click="toStart"></button> -->
<button type="primary" style="width: 100px;" :disabled="isButtonDisabled" <button type="primary" style="width: 100px;" :disabled="isButtonDisabled"
@click="submitPallet">组盘</button> @click="submitPallet">组盘</button>
<button :disabled="isButtonDisabled" style="width: 100px;" @click="callAgv"></button> <button :disabled="isButtonDisabled" style="width: 100px;" @click="callAgv"></button>
</view> </view> -->
</view> </view>
<bottomBtn :isDouble="true" :isSubmit="true" :isWhite="false" position="fixed" :disable="isButtonDisabled"
:texts="['组盘', '确认入库']" @onCancel="submitPallet" @onSubmit="callAgv"></bottomBtn>
<view class="cu-modal" :class="msgModalName=='Modal'?'show':''" > <view class="cu-modal" :class="msgModalName=='Modal'?'show':''" >
<view class="cu-dialog"> <view class="cu-dialog">
<view class="cu-bar bg-white justify-end"> <view class="cu-bar bg-white justify-end">
@ -98,6 +99,7 @@
import { import {
debounce debounce
} from 'lodash'; } from 'lodash';
import {bottomBtn} from '@/components/bottomBtn/bottomBtn.vue'
export default { export default {
data() { data() {
return { return {
@ -230,6 +232,9 @@
msg: null msg: null
}; };
}, },
component:{
bottomBtn
},
onLoad() { onLoad() {
// //
this.getSkuTypes(); this.getSkuTypes();
@ -551,7 +556,65 @@
} }
</script> </script>
<style lang="scss"> <style scoped lang="scss">
.container {
background: rgb(242, 243, 245);
height: 100vh;
}
.uni-forms-item {
border-bottom: 1px solid #E5E6EB;
margin-bottom: 0;
padding: 24rpx 0;
}
::v-deep .uni-forms-item__label {
color: #1D2129;
font-size: 28rpx;
font-weight: 400;
}
::v-deep .uni-select {
border: 0px;
}
::v-deep.uni-select__input-placeholder {
font-size: 28rpx;
font-weight: 400;
color: #86909C;
}
.textarea{
background-color: #F2F3F5;
width: 100%;
}
::v-deep.full-width-textarea{
width: 100%!important;
border: unset!important;
}
::v-deep .is-input-border{
border: unset;
}
::v-deep .uni-easyinput__placeholder-class{
font-size: 28rpx;
color: #86909C;
}
::v-deep .uni-input-input{
font-size: 28rpx;
}
::v-deep .uni-select__input-placeholder{
font-size: 28rpx;
color: #86909C;
}
::v-deep .uniui-bottom{
display: none;
}
::v-deep .uniui-top{
display: none;
}
.fromItem{
display: flex;
align-items: center;
}
.cu-form-group .title { .cu-form-group .title {
min-width: calc(4em + 15px); min-width: calc(4em + 15px);
} }
@ -561,8 +624,12 @@
} }
.example { .example {
padding: 15px; padding: 0 24rpx;
background-color: #fff; background-color: #fff;
width: 702rpx;
border-radius: 24rpx;
margin: 24rpx auto;
} }
.segmented-control { .segmented-control {
@ -596,33 +663,4 @@
padding: 10px; padding: 10px;
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
} }
.barcode {
width: 750rpx;
height: 700rpx;
background-color: #808080;
}
.btn {
top: 20rpx;
width: 730rpx;
margin-left: 10rpx;
margin-top: 10rpx;
background-color: #458B00;
border-radius: 10rpx;
}
/* 输入框样式 */
.full-width-textarea {
width: calc(100vw - 260rpx); /* 直接扣除边距 */
padding: 20rpx;
box-sizing: border-box;
border: 2rpx solid #e5e5e5;
border-radius: 8rpx;
min-height: 200rpx;
font-size: 28rpx;
line-height: 1.5;
}
</style> </style>

View File

@ -7,7 +7,6 @@
<view class="example"> <view class="example">
<uni-forms ref="form" :model="formData" labelWidth="80px"> <uni-forms ref="form" :model="formData" labelWidth="80px">
<uni-card>注意余料出库后请人工拉走系统会自动清除托盘信息</uni-card> <uni-card>注意余料出库后请人工拉走系统会自动清除托盘信息</uni-card>
<uni-forms-item label="货位编号" name="locCode"> <uni-forms-item label="货位编号" name="locCode">
<view class="fromItem"> <view class="fromItem">
<uni-easyinput v-model="formData.locCode" placeholder="请扫描货位编号" @blur="trimLocInput" /> <uni-easyinput v-model="formData.locCode" placeholder="请扫描货位编号" @blur="trimLocInput" />

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -61,28 +61,28 @@
"name": "surplusOut", "name": "surplusOut",
"title": "余料出库", "title": "余料出库",
"color": "red", "color": "red",
"icon": "cuIcon-forward" "icon": "/static/images/work/组合 1762.png"
}, },
{ {
"path": "/pages/work/wms/skuCreatePalletByCode", "path": "/pages/work/wms/skuCreatePalletByCode",
"name": "skuCreatePalletByCode", "name": "skuCreatePalletByCode",
"title": "一码通入库APP", "title": "一码通入库APP",
"color": "red", "color": "red",
"icon": "cuIcon-qr_code" "icon": "/static/images/work/组合 1752.png"
}, },
{ {
"path": "/pages/work/wms/mesStockChange", "path": "/pages/work/wms/mesStockChange",
"name": "mesStockChange", "name": "mesStockChange",
"title": "Mes工位库库存变更", "title": "Mes工位库库存变更",
"color": "red", "color": "red",
"icon": "cuIcon-exit" "icon": "/static/images/work/组合 1763.png"
}, },
{ {
"path": "/pages/work/wms/emptyPalletIn", "path": "/pages/work/wms/emptyPalletIn",
"name": "emptyPalletIn", "name": "emptyPalletIn",
"title": "空容器入库", "title": "空容器入库",
"color": "red", "color": "red",
"icon": "cuIcon-forwardfill" "icon": "/static/images/work/组合 1758.png"
} }
], ],
"msg": "成功" "msg": "成功"