@@ -85,6 +85,16 @@ | |||||
"style": { | "style": { | ||||
"navigationBarTitleText": "关于" | "navigationBarTitleText": "关于" | ||||
} | } | ||||
},{ | |||||
"path": "pages/main/my/page2/global-set", | |||||
"style": { | |||||
"navigationBarTitleText": "全局设置" | |||||
} | |||||
},{ | |||||
"path": "pages/main/my/page2/set/material-set", | |||||
"style": { | |||||
"navigationBarTitleText": "物料统计设置" | |||||
} | |||||
} | } | ||||
], | ], | ||||
@@ -154,7 +154,7 @@ | |||||
<script> | <script> | ||||
import Task from './main/task/task.vue'; | import Task from './main/task/task.vue'; | ||||
import Message from './main/message/message.vue'; | import Message from './main/message/message.vue'; | ||||
import Home from './main/home/home.vue'; | |||||
import home from './main/home/home.vue'; | |||||
import Plan from './main/plan/plan.vue'; | import Plan from './main/plan/plan.vue'; | ||||
import my from './main/my/my.vue'; | import my from './main/my/my.vue'; | ||||
@@ -170,7 +170,7 @@ | |||||
components: { | components: { | ||||
Task, | Task, | ||||
Message, | Message, | ||||
Home, | |||||
home, | |||||
Plan, | Plan, | ||||
my | my | ||||
}, | }, | ||||
@@ -185,7 +185,21 @@ | |||||
oldScrollTop: 0, | oldScrollTop: 0, | ||||
} | } | ||||
}, | }, | ||||
onLoad(options) { | onLoad(options) { | ||||
const list =uni.getStorageSync("materialList") | |||||
if(!list || list.length === 0 ){ | |||||
uni.setStorageSync("materialList",[{ | |||||
name:'生抽', | |||||
id:'001xxxxxxasssssssssssssssssssssssssssssssssss' | |||||
},{ | |||||
name:'盐', | |||||
id:'002' | |||||
},{ | |||||
name:'味精', | |||||
id:'003' | |||||
}]) | |||||
} | |||||
const index = Number(options.index || 2) | const index = Number(options.index || 2) | ||||
console.log('onLoad index='+index) | console.log('onLoad index='+index) | ||||
@@ -251,6 +265,8 @@ | |||||
// this.$refs.my.onFresh() | // this.$refs.my.onFresh() | ||||
} else if (index === 1) { | } else if (index === 1) { | ||||
// this.$refs.message.onShow() | // this.$refs.message.onShow() | ||||
}else if (index === 0) { | |||||
this.$refs.home.refresh() | |||||
} | } | ||||
}) | }) | ||||
}, | }, | ||||
@@ -50,6 +50,20 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="split_line"></view> | |||||
<view class="friend_operate"> | |||||
<title-bar title="物料使用占比" /> | |||||
<view v-if="delayload" class="charts-box"> | |||||
<qiun-data-charts | |||||
type="ring" | |||||
canvasId="four_d" | |||||
:canvas2d="isCanvas2d" | |||||
:resshow="delayload" | |||||
:opts="{legend:{position: 'bottom'},title:{name: '',},subtitle: {name: ''}}" | |||||
:chartData="MaterialRateData"/> | |||||
</view> | |||||
</view> | |||||
<view class="split_line"></view> | <view class="split_line"></view> | ||||
<view class="friend_operate"> | <view class="friend_operate"> | ||||
@@ -94,11 +108,19 @@ | |||||
}, | }, | ||||
components:{ | components:{ | ||||
ProgressBar | ProgressBar | ||||
}, | |||||
onLoad(){ | |||||
}, | |||||
onShow(){ | |||||
}, | }, | ||||
data(){ | data(){ | ||||
return { | return { | ||||
CircleData, | CircleData, | ||||
ProductRateData, | ProductRateData, | ||||
MaterialRateData:{ | |||||
}, | |||||
RankData, | RankData, | ||||
MatrialData, | MatrialData, | ||||
isRank:false, | isRank:false, | ||||
@@ -108,11 +130,7 @@ | |||||
}, | }, | ||||
methods:{ | methods:{ | ||||
refresh(){ | refresh(){ | ||||
uni.showLoading(); | |||||
setTimeout(() => { | |||||
this.delayload = true; | |||||
uni.hideLoading(); | |||||
}, 1000) | |||||
this.getData(); | |||||
}, | }, | ||||
finishProcess(totalNum,finishNum){ | finishProcess(totalNum,finishNum){ | ||||
if(totalNum==0){ | if(totalNum==0){ | ||||
@@ -128,7 +146,48 @@ | |||||
await setTimeout(() => { | await setTimeout(() => { | ||||
this.delayload = true; | this.delayload = true; | ||||
uni.hideLoading(); | uni.hideLoading(); | ||||
console.log(" 1 list "+list) | |||||
const list = uni.getStorageSync("materialList") | |||||
let data = [] | |||||
const that = this | |||||
list.forEach((item, index)=>{ | |||||
let bean = { | |||||
name: "计划1xxx", | |||||
data: 500, | |||||
color: "#2fc25b" | |||||
} | |||||
bean.name = item.name | |||||
if(index === 0){ | |||||
bean.color = "#2fc25b" | |||||
bean.data = 500 | |||||
}else if(index === 1){ | |||||
bean.color = "#facc14" | |||||
bean.data = 300 | |||||
}else if(index === 2){ | |||||
bean.color = "#f04864" | |||||
bean.data = 125 | |||||
}else if(index === 3){ | |||||
bean.color = "#8543e0" | |||||
bean.data = 255 | |||||
}else if(index === 4){ | |||||
bean.color = "#51c2d5" | |||||
bean.data = 480 | |||||
}else if(index === 5){ | |||||
bean.color = "#ffaaff" | |||||
bean.data = 450 | |||||
} | |||||
data.push(bean) | |||||
}) | |||||
console.log(" 2 list "+list) | |||||
let newObject = { | |||||
series: data | |||||
} | |||||
let jsonObjectString = JSON.stringify(newObject); | |||||
this.MaterialRateData = newObject | |||||
}, 1000) | }, 1000) | ||||
} | } | ||||
}, | }, | ||||
mounted() { | mounted() { | ||||
@@ -69,9 +69,9 @@ | |||||
<!-- 项目信息 --> | <!-- 项目信息 --> | ||||
<view class="project-info tn-white_bg"> | <view class="project-info tn-white_bg"> | ||||
<view | <view | ||||
class="item-container" | |||||
class="item-container" @tap.stop="clickChangeLog" | |||||
> | > | ||||
<view class="item" @tap.stop="clickChangeLog"> | |||||
<view class="item" > | |||||
<view class="left"> | <view class="left"> | ||||
<view class="left-icon tn-main-gradient-orange"> | <view class="left-icon tn-main-gradient-orange"> | ||||
<text class="tn-icon-set-fill tn-color-white"/> | <text class="tn-icon-set-fill tn-color-white"/> | ||||
@@ -83,8 +83,8 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="item-container"> | |||||
<view class="item" @tap.stop="copyGithubUrl"> | |||||
<view class="item-container" @tap.stop="clickVersion"> | |||||
<view class="item"> | |||||
<view class="left"> | <view class="left"> | ||||
<view class="left-icon tn-main-gradient-yellow"> | <view class="left-icon tn-main-gradient-yellow"> | ||||
<text class="tn-icon-tip tn-color-white"/> | <text class="tn-icon-tip tn-color-white"/> | ||||
@@ -96,21 +96,20 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<!-- #ifndef MP-ALIPAY --> | |||||
<view class="item-container"> | |||||
<view class="item"> | |||||
<view class="item-container" @tap.stop="checkNetWork"> | |||||
<view class="item" > | |||||
<view class="left"> | <view class="left"> | ||||
<view class="left-icon tn-main-gradient-yellowgreen"> | <view class="left-icon tn-main-gradient-yellowgreen"> | ||||
<text class="tn-icon-wifi tn-color-white"/> | <text class="tn-icon-wifi tn-color-white"/> | ||||
</view> | </view> | ||||
<view class="left-text">网络自检</view> | |||||
<view class="left-text">网络检测</view> | |||||
</view> | </view> | ||||
<view class="right"> | <view class="right"> | ||||
<text class="tn-icon-right tn-color-gray"/> | |||||
<text class=" tn-color-gray"> {{network}}</text> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="item-container"> | |||||
<view class="item-container" @tap.stop="globalSet"> | |||||
<view class="item"> | <view class="item"> | ||||
<view class="left"> | <view class="left"> | ||||
<view class="left-icon tn-main-gradient-teal"> | <view class="left-icon tn-main-gradient-teal"> | ||||
@@ -149,13 +148,12 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<!-- #endif --> | |||||
</view> | </view> | ||||
<view class="my-bottom"></view> | <view class="my-bottom"></view> | ||||
</view> | </view> | ||||
<w-loading text="正在检测..." mask="true" click="true" ref="loading"></w-loading> | |||||
<tn-toast ref="toast"></tn-toast> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -169,7 +167,7 @@ export default { | |||||
}, | }, | ||||
data() { | data() { | ||||
return { | return { | ||||
network:'', | |||||
}; | }; | ||||
}, | }, | ||||
@@ -182,7 +180,6 @@ export default { | |||||
}, | }, | ||||
onHide() { | onHide() { | ||||
}, | }, | ||||
methods: { | methods: { | ||||
@@ -204,6 +201,25 @@ export default { | |||||
clickChangeLog(){ | clickChangeLog(){ | ||||
this.$u.route('/pages/main/my/page2/change-log'); | this.$u.route('/pages/main/my/page2/change-log'); | ||||
}, | }, | ||||
clickVersion(){ | |||||
this.$u.route('/pages/main/my/page2/version'); | |||||
}, | |||||
globalSet(){ | |||||
this.$u.route('/pages/main/my/page2/global-set'); | |||||
}, | |||||
checkNetWork(){ | |||||
//网络请求 | |||||
this.$refs.loading.open() | |||||
setTimeout(()=>{ | |||||
this.network = '网络异常' | |||||
this.network = '网络正常' | |||||
this.$refs.loading.close() | |||||
this.$refs.toast.show({ | |||||
title: '网络正常', | |||||
duration: 1000, | |||||
}) | |||||
},500) | |||||
}, | |||||
btnLogin(){ | btnLogin(){ | ||||
if(this.vuex_user.hasLogin){ | if(this.vuex_user.hasLogin){ | ||||
this.loginText = "登录" | this.loginText = "登录" | ||||
@@ -178,6 +178,9 @@ page { | |||||
} | } | ||||
.page{ | .page{ | ||||
width: 100%; | width: 100%; | ||||
width: 100%; | |||||
height: 100vh; | |||||
background-color: #ededed; | |||||
} | } | ||||
.font-size{ | .font-size{ | ||||
@@ -268,6 +268,9 @@ page { | |||||
} | } | ||||
.page{ | .page{ | ||||
width: 100%; | width: 100%; | ||||
width: 100%; | |||||
height: 100vh; | |||||
background-color: #ededed; | |||||
} | } | ||||
.tn-classify { | .tn-classify { | ||||
@@ -0,0 +1,249 @@ | |||||
<template> | |||||
<view class="page"> | |||||
<!-- 顶部自定义导航 --> | |||||
<tn-nav-bar fixed :bottomShadow="true" :beforeBack="beforeBack"> | |||||
<view class="font-size"> | |||||
全局设置 | |||||
</view> | |||||
</tn-nav-bar> | |||||
<view class="tn-classify__wrap" :style="{paddingTop: vuex_custom_bar_height + 'px'}"></view> | |||||
<!-- 项目信息 --> | |||||
<view class="project-info white_bg" :style="{marginBottom: 50 + 'px'}"> | |||||
<view | |||||
class="item-container" @tap.stop="materialTypeSet" | |||||
> | |||||
<view class="item" style="margin-bottom: 10rpx;" > | |||||
<view class="left"> | |||||
<text class="title">设置物料使用统计种类</text> | |||||
<view class="left-text content"></view> | |||||
</view> | |||||
<view class="right"> | |||||
<text class="tn-icon-right tn-color-gray"/> | |||||
</view> | |||||
</view> | |||||
<view v-for="(item, index) in materialList" | |||||
:key="item.id" style="margin-left: 20rpx"> | |||||
<view class="left" > | |||||
<view class="left-text content">{{index+1}}.{{item.name}} {{item.id}}</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view style="height: 1rpx;" /> | |||||
<tn-toast ref="toast"></tn-toast> | |||||
</view> | |||||
</template> | |||||
<script> | |||||
export default { | |||||
computed: { | |||||
// 假设你已经在 store 中映射了 vuex_user 状态 | |||||
vuex_user() { | |||||
return this.$store.state.vuex_user; | |||||
} | |||||
}, | |||||
data() { | |||||
return { | |||||
materialList:[ | |||||
{ | |||||
name:'生抽', | |||||
id:'001xxxxxxasssssssssssssssssssssssssssssssssss' | |||||
},{ | |||||
name:'盐', | |||||
id:'002' | |||||
},{ | |||||
name:'味精', | |||||
id:'003' | |||||
} | |||||
] | |||||
}; | |||||
}, | |||||
watch: { | |||||
}, | |||||
onLoad(option) { | |||||
}, | |||||
onShow() { | |||||
this.materialList = uni.getStorageSync("materialList") | |||||
}, | |||||
onHide() { | |||||
}, | |||||
methods: { | |||||
beforeBack(){ | |||||
console.log("beforeBack") | |||||
uni.navigateBack({ | |||||
}); | |||||
}, | |||||
materialTypeSet(){ | |||||
this.$u.route('/pages/main/my/page2/set/material-set'); | |||||
} | |||||
} | |||||
}; | |||||
</script> | |||||
<style lang="scss" scoped> | |||||
page { | |||||
background-color: #ededed; | |||||
} | |||||
.page{ | |||||
width: 100%; | |||||
width: 100%; | |||||
height: 100vh; | |||||
background-color: #ededed; | |||||
} | |||||
.font-size{ | |||||
font-size: 36rpx; | |||||
font-weight: bold; | |||||
} | |||||
.text-box { | |||||
justify-content: center; | |||||
align-items: center; | |||||
text-align: center; | |||||
font-size: 32rpx; | |||||
color: #909090 | |||||
} | |||||
.button{ | |||||
display: flex; | |||||
margin: 60rpx 20rpx 20rpx 20rpx; | |||||
flex-wrap: nowrap; | |||||
align-items:center; | |||||
position: flex; | |||||
background-color: transparent; | |||||
border-radius: 15rpx; | |||||
} | |||||
.group-content{ | |||||
padding: 20rpx; | |||||
display: flex; | |||||
margin: 40rpx 20rpx 20rpx 20rpx; | |||||
background-color: white; | |||||
position: flex; | |||||
border-radius: 15rpx; | |||||
flex-wrap: nowrap; | |||||
box-shadow: 0rpx 0rpx 50rpx 0rpx rgba(85, 170, 255, 0.2); | |||||
align-items:center; | |||||
} | |||||
.content{ | |||||
flex: 1; | |||||
width: 100vw; | |||||
} | |||||
.icon-size{ | |||||
height: 100rpx; | |||||
width: 100rpx; | |||||
font-size: 60rpx; | |||||
} | |||||
.icon-padding{ | |||||
padding-left: 10rpx; | |||||
padding-right: 10rpx; | |||||
} | |||||
.input-bg{ | |||||
height: 80rpx; | |||||
border: 1rpx solid #C6D1D8; | |||||
border-radius: 15rpx; | |||||
padding-left: 15rpx; | |||||
padding-right: 15rpx; | |||||
} | |||||
.flex-container { | |||||
&--fix-height { | |||||
height: 360rpx; | |||||
} | |||||
&--has-height { | |||||
height: 140rpx; | |||||
padding: 20rpx; | |||||
} | |||||
} | |||||
.flex-item { | |||||
display: inline-block; // 消除共享margin属性 | |||||
height: 74rpx; | |||||
border-radius: 15rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: center; | |||||
font-size: 40rpx; | |||||
} | |||||
$animation-time: 0.15s; | |||||
$animation-delay: 0s; | |||||
$top-container-height: 500rpx; | |||||
@keyframes project-info-item-enter-animation { | |||||
0% { | |||||
transform: translateX(-100%); | |||||
} | |||||
100% { | |||||
transform: translateX(0%); | |||||
} | |||||
} | |||||
/* 项目信息 start */ | |||||
.project-info { | |||||
position: relative; | |||||
width: calc(100% - 60rpx); | |||||
margin: 0rpx auto; | |||||
border-radius: 30rpx; | |||||
margin-top: 30rpx; | |||||
margin-bottom: 30rpx; | |||||
overflow: hidden; | |||||
background-color: white; | |||||
height: auto; | |||||
padding: 20rpx 0rpx 20rpx 0rpx; | |||||
.item-container { | |||||
position: relative; | |||||
padding: 20rpx 30rpx 20rpx 30rpx; | |||||
transform: translateX(-100%); | |||||
@for $i from 1 through 11 { | |||||
&:nth-child(#{$i}) { | |||||
animation: project-info-item-enter-animation | |||||
$animation-time | |||||
ease | |||||
forwards; | |||||
animation-delay: $animation-delay + $i * 0s; | |||||
background-color: #ffffff; | |||||
} | |||||
} | |||||
} | |||||
.item { | |||||
position: relative; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: space-between; | |||||
color: var(--tn-text-color-primary); | |||||
.left { | |||||
display: flex; | |||||
align-items: center; | |||||
.left-text { | |||||
margin-left: 26rpx; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
/* 项目信息 end */ | |||||
.title{ | |||||
font-size: 32rpx; | |||||
font-weight: bold; | |||||
} | |||||
.content{ | |||||
font-size: 30rpx; | |||||
color: gray; | |||||
text-overflow: ellipsis; | |||||
overflow: hidden; | |||||
white-space: nowrap; | |||||
padding-right: 5rpx; | |||||
width: 550rpx; | |||||
} | |||||
</style> |
@@ -12,7 +12,7 @@ | |||||
<view class="tn-classify__wrap" :style="{paddingTop: vuex_custom_bar_height + 'px'}"></view> | <view class="tn-classify__wrap" :style="{paddingTop: vuex_custom_bar_height + 'px'}"></view> | ||||
<!-- 项目信息 --> | <!-- 项目信息 --> | ||||
<view class="project-info tn-white_bg" :style="{marginBottom: 50 + 'px'}"> | |||||
<view class="project-info white_bg" :style="{marginBottom: 50 + 'px',background:'#ffffff'}"> | |||||
<view | <view | ||||
class="item-container" | class="item-container" | ||||
> | > | ||||
@@ -121,47 +121,16 @@ export default { | |||||
}, | }, | ||||
data() { | data() { | ||||
return { | return { | ||||
focus1: false, | |||||
focus2: false, | |||||
siloCode: '', | |||||
siloCodeValue: '', | |||||
materialCode: '', | |||||
materialCodeValue: '', | |||||
resultList: [ | |||||
// { | |||||
// code:300, | |||||
// message:'xxx任务xxx流程,复核失败' | |||||
// }, | |||||
// { | |||||
// code:200, | |||||
// message:'xxx任务xxx流程,复核成功' | |||||
// },{ | |||||
// code:200, | |||||
// message:'xxx任务xxxxxxxxxxxxxxxxxxxxxxxxxx流程,复核成功' | |||||
// }, | |||||
] | |||||
}; | }; | ||||
}, | }, | ||||
watch: { | |||||
siloCode(val) { | |||||
this.siloCodeValue = val | |||||
}, | |||||
materialCode(val) { | |||||
this.materialCodeValue = val | |||||
}, | |||||
}, | |||||
onLoad(option) { | onLoad(option) { | ||||
}, | }, | ||||
onShow() { | onShow() { | ||||
//#ifdef APP-PLUS | |||||
// this.barCode = nfcinit(); | |||||
//#endif | |||||
}, | }, | ||||
onHide() { | onHide() { | ||||
//#ifdef APP-PLUS | |||||
// nfcclose(); | |||||
//#endif | |||||
}, | }, | ||||
methods: { | methods: { | ||||
@@ -171,57 +140,6 @@ export default { | |||||
}); | }); | ||||
}, | }, | ||||
scanCode(typ) { | |||||
var st = new Array(); | |||||
st[0] = 'barCode'; | |||||
st[1] = 'qrCode'; | |||||
// st[2] = 'datamatrix'; | |||||
// st[3] = 'pdf417'; | |||||
uni.scanCode({ | |||||
scanType: st, | |||||
success: res => { | |||||
if (typ == 1) { | |||||
this.siloCode = res.result; | |||||
} else { | |||||
this.materialCode = res.result; | |||||
} | |||||
} | |||||
}); | |||||
}, | |||||
btnConfirm() { | |||||
console.log("btnConfirm") | |||||
if(this.siloCode.length>0 && this.materialCode.length>0){ | |||||
this.$refs.loading.open() | |||||
setTimeout(()=>{ | |||||
this.$refs.loading.close() | |||||
if(this.siloCode === '1'){ | |||||
this.resultList.unshift({ | |||||
code:300, | |||||
message:'xxx任务xxxxxxx流程,复核失败' | |||||
}) | |||||
}else{ | |||||
this.resultList.unshift({ | |||||
code:200, | |||||
message:'xxx任务xxxxxxxxxxxxxxxxxxxxxxxxxx流程,复核成功' | |||||
}) | |||||
} | |||||
},1000) | |||||
}else{ | |||||
this.$refs.toast.show({ | |||||
title: '请填写编码', | |||||
duration: 1000 | |||||
}) | |||||
} | |||||
}, | |||||
changLocal() { | |||||
this.model.localCode = this.localCode; | |||||
this.$nextTick(() => { | |||||
this.localCode = ''; | |||||
}); | |||||
this.focus1 = false; | |||||
this.focus2 = true; | |||||
} | |||||
} | } | ||||
}; | }; | ||||
</script> | </script> | ||||
@@ -232,6 +150,8 @@ page { | |||||
} | } | ||||
.page{ | .page{ | ||||
width: 100%; | width: 100%; | ||||
height: 100vh; | |||||
background-color: #ededed; | |||||
} | } | ||||
.font-size{ | .font-size{ | ||||
@@ -306,8 +226,8 @@ page { | |||||
justify-content: center; | justify-content: center; | ||||
font-size: 40rpx; | font-size: 40rpx; | ||||
} | } | ||||
$animation-time: 0.25s; | |||||
$animation-delay: 0.15s; | |||||
$animation-time: 0.15s; | |||||
$animation-delay: 0.05s; | |||||
$top-container-height: 500rpx; | $top-container-height: 500rpx; | ||||
@keyframes project-info-item-enter-animation { | @keyframes project-info-item-enter-animation { | ||||
0% { | 0% { | ||||
@@ -0,0 +1,368 @@ | |||||
<template> | |||||
<view class="page"> | |||||
<!-- 顶部自定义导航 --> | |||||
<tn-nav-bar fixed :bottomShadow="true" :beforeBack="beforeBack"> | |||||
<view class="font-size"> | |||||
物料统计设置 | |||||
</view> | |||||
</tn-nav-bar> | |||||
<view class="tn-classify__wrap" :style="{paddingTop: vuex_custom_bar_height + 'px'}"></view> | |||||
<view class="" style="font-weight: bold;margin-left: 30rpx; margin-top: 30rpx;">需要统计的物料</view> | |||||
<!-- 项目信息 --> | |||||
<view class="project-info tn-white_bg" :style="{marginBottom: 10 + 'px'}"> | |||||
<view | |||||
class="item-container" | |||||
> | |||||
<view v-for="(item, index) in materialList" | |||||
:key="item.id" class=""> | |||||
<view class="item" style="margin-bottom: 20rpx;" > | |||||
<view class="left" > | |||||
<view class="left-text content">{{index+1}}.{{item.name}} {{item.id}}</view> | |||||
</view> | |||||
<view class="right" @click="deleteMat(item,index)"> | |||||
<text class="tn-icon-close tn-color-red" | |||||
style="font-size: 32rpx;">删除</text> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view class="btn-box tn-flex" @tap.stop="save"> | |||||
保 存 | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view class="" style="font-weight: bold;margin-left: 30rpx;"> | |||||
所有物料</view> | |||||
<!-- 项目信息 --> | |||||
<view class="project-info tn-white_bg" :style="{marginBottom: 50 + 'px'}"> | |||||
<view | |||||
class="item-container" | |||||
> | |||||
<view v-for="(item, index) in materialAllList" | |||||
:key="item.id" class=""> | |||||
<view class="item" style="margin-bottom: 20rpx;" > | |||||
<view class="left" > | |||||
<view class="left-text content">{{index+1}}.{{item.name}} {{item.id}}</view> | |||||
</view> | |||||
<view class="right " @click="addMat(item,index)"> | |||||
<text class="tn-icon-add-square-fill" | |||||
style="font-size: 32rpx;color: #55aaff;">添加</text> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view style="height: 1rpx;" /> | |||||
<tn-toast ref="toast"></tn-toast> | |||||
</view> | |||||
</template> | |||||
<script> | |||||
export default { | |||||
computed: { | |||||
// 假设你已经在 store 中映射了 vuex_user 状态 | |||||
vuex_user() { | |||||
return this.$store.state.vuex_user; | |||||
} | |||||
}, | |||||
data() { | |||||
return { | |||||
materialList:[ | |||||
{ | |||||
name:'生抽', | |||||
id:'001xxxxxxasssssssssssssssssssssssssssssssssss' | |||||
},{ | |||||
name:'盐', | |||||
id:'002' | |||||
},{ | |||||
name:'味精', | |||||
id:'003' | |||||
} | |||||
], | |||||
materialAllList:[ | |||||
{ | |||||
name:'生抽', | |||||
id:'001xxxxxxasssssssssssssssssssssssssssssssssss' | |||||
},{ | |||||
name:'盐', | |||||
id:'002' | |||||
},{ | |||||
name:'味精', | |||||
id:'003' | |||||
},{ | |||||
name:'老抽', | |||||
id:'004xxxxxxas' | |||||
},{ | |||||
name:'香油', | |||||
id:'005' | |||||
},{ | |||||
name:'花椒油', | |||||
id:'006' | |||||
},{ | |||||
name:'老抽', | |||||
id:'004xxxxxxas' | |||||
},{ | |||||
name:'香油', | |||||
id:'005' | |||||
},{ | |||||
name:'花椒油', | |||||
id:'006' | |||||
},{ | |||||
name:'老抽', | |||||
id:'007xxxxxxas' | |||||
},{ | |||||
name:'香油', | |||||
id:'008' | |||||
},{ | |||||
name:'花椒油', | |||||
id:'009' | |||||
} | |||||
], | |||||
}; | |||||
}, | |||||
watch: { | |||||
}, | |||||
onLoad(option) { | |||||
}, | |||||
onShow() { | |||||
this.materialList = uni.getStorageSync("materialList") | |||||
}, | |||||
onHide() { | |||||
}, | |||||
methods: { | |||||
addMat(item,index){ | |||||
if(this.materialList.length>=6){ | |||||
this.$refs.toast.show({ | |||||
title: '最多不能超过6个', | |||||
duration: 1000, | |||||
}) | |||||
return | |||||
} | |||||
const num = this.materialList.findIndex(v => v.id === item.id); | |||||
if (num === -1) { | |||||
// 元素不存在,添加新元素 | |||||
this.materialList.push(item); | |||||
this.$refs.toast.show({ | |||||
title: '添加成功', | |||||
duration: 500, | |||||
}) | |||||
} else{ | |||||
this.$refs.toast.show({ | |||||
title: '已存在', | |||||
duration: 1000, | |||||
}) | |||||
} | |||||
}, | |||||
deleteMat(item,index){ | |||||
this.$refs.toast.show({ | |||||
title: '移出成功', | |||||
duration: 500, | |||||
}) | |||||
// 使用 filter 方法创建一个新数组,不包含要删除的元素 | |||||
this.materialList = this.materialList.filter(v => v !== item); | |||||
}, | |||||
beforeBack(){ | |||||
console.log("beforeBack") | |||||
uni.navigateBack({ | |||||
}); | |||||
}, | |||||
save(){ | |||||
uni.setStorageSync("materialList",this.materialList) | |||||
this.$refs.toast.show({ | |||||
title: '保存成功', | |||||
duration: 1000, | |||||
}) | |||||
uni.navigateBack({ | |||||
}); | |||||
} | |||||
} | |||||
}; | |||||
</script> | |||||
<style lang="scss" scoped> | |||||
page { | |||||
background-color: #ededed; | |||||
} | |||||
.btn-box{ | |||||
border-radius: 20rpx; | |||||
margin: 0rpx auto; | |||||
margin-top: 20rpx; | |||||
width: 450rpx; | |||||
height: 80rpx; | |||||
background-color: #55aaff; | |||||
overflow: hidden; | |||||
font-size: 32rpx; | |||||
font-weight: bold; | |||||
align-items: center; | |||||
justify-content: space-evenly; | |||||
text-align: center; | |||||
color: #ffffff; | |||||
} | |||||
.page{ | |||||
width: 100%; | |||||
width: 100%; | |||||
height: 100vh; | |||||
background-color: #ededed; | |||||
} | |||||
.font-size{ | |||||
font-size: 36rpx; | |||||
font-weight: bold; | |||||
} | |||||
.text-box { | |||||
justify-content: center; | |||||
align-items: center; | |||||
text-align: center; | |||||
font-size: 32rpx; | |||||
color: #909090 | |||||
} | |||||
.button{ | |||||
display: flex; | |||||
margin: 60rpx 20rpx 20rpx 20rpx; | |||||
flex-wrap: nowrap; | |||||
align-items:center; | |||||
position: flex; | |||||
background-color: transparent; | |||||
border-radius: 15rpx; | |||||
} | |||||
.group-content{ | |||||
padding: 20rpx; | |||||
display: flex; | |||||
margin: 40rpx 20rpx 20rpx 20rpx; | |||||
background-color: white; | |||||
position: flex; | |||||
border-radius: 15rpx; | |||||
flex-wrap: nowrap; | |||||
box-shadow: 0rpx 0rpx 50rpx 0rpx rgba(85, 170, 255, 0.2); | |||||
align-items:center; | |||||
} | |||||
.content{ | |||||
flex: 1; | |||||
width: 100vw; | |||||
} | |||||
.icon-size{ | |||||
height: 100rpx; | |||||
width: 100rpx; | |||||
font-size: 60rpx; | |||||
} | |||||
.icon-padding{ | |||||
padding-left: 10rpx; | |||||
padding-right: 10rpx; | |||||
} | |||||
.input-bg{ | |||||
height: 80rpx; | |||||
border: 1rpx solid #C6D1D8; | |||||
border-radius: 15rpx; | |||||
padding-left: 15rpx; | |||||
padding-right: 15rpx; | |||||
} | |||||
.flex-container { | |||||
&--fix-height { | |||||
height: 360rpx; | |||||
} | |||||
&--has-height { | |||||
height: 140rpx; | |||||
padding: 20rpx; | |||||
} | |||||
} | |||||
.flex-item { | |||||
display: inline-block; // 消除共享margin属性 | |||||
height: 74rpx; | |||||
border-radius: 15rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: center; | |||||
font-size: 40rpx; | |||||
} | |||||
$animation-time: 0.15s; | |||||
$animation-delay: 0s; | |||||
$top-container-height: 500rpx; | |||||
@keyframes project-info-item-enter-animation { | |||||
0% { | |||||
transform: translateX(-100%); | |||||
} | |||||
100% { | |||||
transform: translateX(0%); | |||||
} | |||||
} | |||||
/* 项目信息 start */ | |||||
.project-info { | |||||
position: relative; | |||||
width: calc(100% - 60rpx); | |||||
margin: 0rpx auto; | |||||
border-radius: 30rpx; | |||||
margin-top: 10rpx; | |||||
margin-bottom: 10rpx; | |||||
overflow: hidden; | |||||
background-color: white; | |||||
height: auto; | |||||
padding: 20rpx 0rpx 20rpx 0rpx; | |||||
.item-container { | |||||
position: relative; | |||||
padding: 20rpx 30rpx 20rpx 30rpx; | |||||
justify-content: space-between; | |||||
align-items: center; | |||||
flex-direction: column; | |||||
position: relative; | |||||
transform: translateX(-100%); | |||||
@for $i from 1 through 11 { | |||||
&:nth-child(#{$i}) { | |||||
animation: project-info-item-enter-animation | |||||
$animation-time | |||||
ease | |||||
forwards; | |||||
animation-delay: $animation-delay + $i * 0s; | |||||
background-color: #ffffff; | |||||
} | |||||
} | |||||
} | |||||
.item { | |||||
position: relative; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: space-between; | |||||
color: var(--tn-text-color-primary); | |||||
.left { | |||||
display: flex; | |||||
align-items: center; | |||||
.left-text { | |||||
margin-left: 26rpx; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
/* 项目信息 end */ | |||||
.title{ | |||||
font-size: 32rpx; | |||||
font-weight: bold; | |||||
} | |||||
.content{ | |||||
font-size: 30rpx; | |||||
color: gray; | |||||
text-overflow: ellipsis; | |||||
overflow: hidden; | |||||
white-space: nowrap; | |||||
padding-right: 5rpx; | |||||
width: 500rpx; | |||||
} | |||||
</style> |
@@ -15,6 +15,8 @@ | |||||
<view class="content-bg" > | <view class="content-bg" > | ||||
<view class="text">当前版本:{{this.$store.state.vuex_version}}</view> | <view class="text">当前版本:{{this.$store.state.vuex_version}}</view> | ||||
<view class="text" style="margin-top: 100rpx;color: gray;">{{this.tip}}</view> | |||||
<view class="btn-box tn-flex" @tap.stop="update"> | <view class="btn-box tn-flex" @tap.stop="update"> | ||||
检查更新 | 检查更新 | ||||
</view> | </view> | ||||
@@ -32,6 +34,7 @@ | |||||
name: 'help', | name: 'help', | ||||
data(){ | data(){ | ||||
return { | return { | ||||
tip:'', | |||||
windowHeight: 50, | windowHeight: 50, | ||||
windowWidth: 50, | windowWidth: 50, | ||||
actionTimer: null, | actionTimer: null, | ||||
@@ -62,8 +65,9 @@ | |||||
this.$refs.loading.close() | this.$refs.loading.close() | ||||
this.$refs.toast.show({ | this.$refs.toast.show({ | ||||
title: '已是最新版', | title: '已是最新版', | ||||
duration: 1000 | |||||
}) | |||||
duration: 1000, | |||||
}), | |||||
this.tip = '已是最新版' | |||||
},500) | },500) | ||||
} | } | ||||
} | } | ||||
@@ -79,19 +83,22 @@ | |||||
.text{ | .text{ | ||||
color: black; | color: black; | ||||
font-size: 32rpx; | font-size: 32rpx; | ||||
margin-top: 50rpx; | |||||
font-weight: bold; | |||||
} | } | ||||
.btn-box{ | .btn-box{ | ||||
border-radius: 20rpx; | border-radius: 20rpx; | ||||
margin: 50rpx; | margin: 50rpx; | ||||
margin-top: 200rpx; | |||||
margin-top: 100rpx; | |||||
width: 450rpx; | width: 450rpx; | ||||
height: 100rpx; | height: 100rpx; | ||||
background-color: #0055ff; | |||||
background-color: #55aaff; | |||||
overflow: hidden; | overflow: hidden; | ||||
font-size: 32rpx; | font-size: 32rpx; | ||||
font-weight: bold; | font-weight: bold; | ||||
align-items: center; | align-items: center; | ||||
justify-content: space-evenly; | justify-content: space-evenly; | ||||
color: #ffffff; | |||||
} | } | ||||
.tn-custom-nav-bar__back { | .tn-custom-nav-bar__back { | ||||
width: 100%; | width: 100%; | ||||
@@ -19,7 +19,7 @@ | |||||
<!-- 页面内容 --> | <!-- 页面内容 --> | ||||
<view class="tn-padding" :style="{marginTop: vuex_custom_bar_height+optionHeight+50 + 'rpx'}"> | <view class="tn-padding" :style="{marginTop: vuex_custom_bar_height+optionHeight+50 + 'rpx'}"> | ||||
<view v-show="isLogin" style="position: relative;" @click="handleMessageClick(item, index)" | |||||
<view v-show="isLogin" style="position: relative;" @click="itemClick(item, index)" | |||||
class="article-shadow tn-bg-white tn-padding tn-margin-bottom" v-for="(item, index) in dataStatusList" | class="article-shadow tn-bg-white tn-padding tn-margin-bottom" v-for="(item, index) in dataStatusList" | ||||
:key="item.id"> | :key="item.id"> | ||||
@@ -137,6 +137,9 @@ | |||||
// }).catch((e) => {}) | // }).catch((e) => {}) | ||||
}, | }, | ||||
methods: { | methods: { | ||||
itemClick(){ | |||||
}, | |||||
getStatusText(status,finishNum,totalNum){ | getStatusText(status,finishNum,totalNum){ | ||||
if(status==0){ | if(status==0){ | ||||
return '进行中' | return '进行中' | ||||
@@ -146,6 +146,11 @@ | |||||
margin-left: auto; | margin-left: auto; | ||||
} | } | ||||
.white_bg{ | |||||
background-color: white; | |||||
background: white; | |||||
} | |||||
.cover { | .cover { | ||||
background-color: rgba(0, 0, 0, 0.5); | background-color: rgba(0, 0, 0, 0.5); | ||||
z-index: 10; | z-index: 10; | ||||
@@ -144,7 +144,7 @@ | |||||
.tn-toast { | .tn-toast { | ||||
height: auto; | height: auto; | ||||
background-color: rgba(0, 0, 0, 0.4); | |||||
background-color: rgba(85, 170, 255, 0.8); | |||||
border-radius: 10rpx; | border-radius: 10rpx; | ||||
opacity: 0; | opacity: 0; | ||||
position: fixed; | position: fixed; | ||||
@@ -179,8 +179,8 @@ | |||||
} | } | ||||
&__text { | &__text { | ||||
font-size: 36rpx; | |||||
line-height: 36rpx; | |||||
font-size: 32rpx; | |||||
line-height: 32rpx; | |||||
color: #ffffff; | color: #ffffff; | ||||
text-align: center; | text-align: center; | ||||
} | } | ||||
@@ -1,8 +1,8 @@ | |||||
var isReady=false;var onReadyCallbacks=[]; | var isReady=false;var onReadyCallbacks=[]; | ||||
var isServiceReady=false;var onServiceReadyCallbacks=[]; | var isServiceReady=false;var onServiceReadyCallbacks=[]; | ||||
var __uniConfig = {"pages":["pages/index","pages/main/home/home","pages/main/task/task","pages/main/message/message","pages/main/plan/plan","pages/main/task/page2/scan_review","pages/login/login","pages/main/my/my","pages/main/my/page2/change-log","pages/main/my/page2/my-info","pages/main/my/page2/about"],"window":{"navigationStyle":"custom","navigationBarTextStyle":"black","navigationBarTitleText":"uni-app","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8"},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"TestApp","compilerVersion":"4.42","entryPagePath":"pages/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}}; | |||||
var __uniRoutes = [{"path":"/pages/index","meta":{"isQuit":true},"window":{"navigationBarTitleText":"主页","onReachBottomDistance":50}},{"path":"/pages/main/home/home","meta":{},"window":{"navigationBarTitleText":"统计页","onReachBottomDistance":50}},{"path":"/pages/main/task/task","meta":{},"window":{"navigationBarTitleText":"任务"}},{"path":"/pages/main/message/message","meta":{},"window":{"navigationBarTitleText":"消息"}},{"path":"/pages/main/plan/plan","meta":{},"window":{"navigationBarTitleText":"计划"}},{"path":"/pages/main/task/page2/scan_review","meta":{},"window":{"navigationBarTitleText":"扫码复核"}},{"path":"/pages/login/login","meta":{},"window":{"navigationBarTitleText":"登录"}},{"path":"/pages/main/my/my","meta":{},"window":{"navigationBarTitleText":"我的"}},{"path":"/pages/main/my/page2/change-log","meta":{},"window":{"navigationBarTitleText":"更新日志"}},{"path":"/pages/main/my/page2/my-info","meta":{},"window":{"navigationBarTitleText":"个人信息"}},{"path":"/pages/main/my/page2/about","meta":{},"window":{"navigationBarTitleText":"关于"}}]; | |||||
var __uniConfig = {"pages":["pages/index","pages/main/home/home","pages/main/task/task","pages/main/message/message","pages/main/plan/plan","pages/main/task/page2/scan_review","pages/login/login","pages/main/my/my","pages/main/my/page2/change-log","pages/main/my/page2/my-info","pages/main/my/page2/company-info","pages/main/my/page2/device-info","pages/main/my/page2/help","pages/main/my/page2/version","pages/main/my/page2/about","pages/main/my/page2/global-set","pages/main/my/page2/set/material-set"],"window":{"navigationStyle":"custom","navigationBarTextStyle":"black","navigationBarTitleText":"uni-app","navigationBarBackgroundColor":"#F8F8F8","backgroundColor":"#F8F8F8"},"darkmode":false,"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"TestApp","compilerVersion":"4.42","entryPagePath":"pages/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}}; | |||||
var __uniRoutes = [{"path":"/pages/index","meta":{"isQuit":true},"window":{"navigationBarTitleText":"主页","onReachBottomDistance":50}},{"path":"/pages/main/home/home","meta":{},"window":{"navigationBarTitleText":"统计页","onReachBottomDistance":50}},{"path":"/pages/main/task/task","meta":{},"window":{"navigationBarTitleText":"任务"}},{"path":"/pages/main/message/message","meta":{},"window":{"navigationBarTitleText":"消息"}},{"path":"/pages/main/plan/plan","meta":{},"window":{"navigationBarTitleText":"计划"}},{"path":"/pages/main/task/page2/scan_review","meta":{},"window":{"navigationBarTitleText":"扫码复核"}},{"path":"/pages/login/login","meta":{},"window":{"navigationBarTitleText":"登录"}},{"path":"/pages/main/my/my","meta":{},"window":{"navigationBarTitleText":"我的"}},{"path":"/pages/main/my/page2/change-log","meta":{},"window":{"navigationBarTitleText":"更新日志"}},{"path":"/pages/main/my/page2/my-info","meta":{},"window":{"navigationBarTitleText":"个人信息"}},{"path":"/pages/main/my/page2/company-info","meta":{},"window":{"navigationBarTitleText":"公司信息"}},{"path":"/pages/main/my/page2/device-info","meta":{},"window":{"navigationBarTitleText":"设备信息"}},{"path":"/pages/main/my/page2/help","meta":{},"window":{"navigationBarTitleText":"反馈问题"}},{"path":"/pages/main/my/page2/version","meta":{},"window":{"navigationBarTitleText":"版本"}},{"path":"/pages/main/my/page2/about","meta":{},"window":{"navigationBarTitleText":"关于"}},{"path":"/pages/main/my/page2/global-set","meta":{},"window":{"navigationBarTitleText":"全局设置"}},{"path":"/pages/main/my/page2/set/material-set","meta":{},"window":{"navigationBarTitleText":"物料统计设置"}}]; | |||||
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); | __uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); | ||||
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); | __uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); | ||||
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}}); | service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}}); |
@@ -146,6 +146,11 @@ | |||||
margin-left: auto; | margin-left: auto; | ||||
} | } | ||||
.white_bg{ | |||||
background-color: white; | |||||
background: white; | |||||
} | |||||
.cover { | .cover { | ||||
background-color: rgba(0, 0, 0, 0.5); | background-color: rgba(0, 0, 0, 0.5); | ||||
z-index: 10; | z-index: 10; | ||||