新增模块

This commit is contained in:
xiaokangsix 2024-04-26 22:41:50 +08:00
parent 5a114f5567
commit 0d439c842f
7 changed files with 1487 additions and 1029 deletions

View File

@ -1405,6 +1405,29 @@
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
},
{
"path": "pages/projectEnd/ukashManage/lookDetails",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
},
{
"path" : "pages/projectEnd/visitorsManage/visitorsManage",
"style" :
{
"navigationBarTitleText" : "访客管理",
"enablePullDownRefresh" : true
}
},
{
"path" : "pages/projectEnd/visitorsManage/visitorsDetails",
"style" :
{
"navigationBarTitleText" : "",
"enablePullDownRefresh" : false
}
}
],
// "subPackages":[{

View File

@ -140,16 +140,16 @@
</template>
<script>
import headers from '../../../components/headers/headers.vue'
import footers from '../../../components/footers/footers.vue'
import {
import headers from '../../../components/headers/headers.vue'
import footers from '../../../components/footers/footers.vue'
import {
closeBle
} from '@/static/js/BLEConn.js'
import {
} from '@/static/js/BLEConn.js'
import {
getBottomLevelData
} from "@/utils/tool.js"
} from "@/utils/tool.js"
export default {
export default {
components: {
headers,
footers
@ -330,7 +330,7 @@ export default {
// return false
var that = this
//
plus.runtime.getProperty(plus.runtime.appid, function (widgetInfo) {
plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
// console.log('', widgetInfo.version);//
console.log('应用版本名称', widgetInfo.version);
that.versionName = widgetInfo.version
@ -447,7 +447,7 @@ export default {
geocode: true,
isHighAccuracy: "true",
accuracy: "best", // 20m
success: function (res) {
success: function(res) {
console.log('当前位置的经度:' + res.longitude);
console.log('当前位置的纬度:' + res.latitude);
var location = res.longitude + ',' + res.latitude
@ -493,7 +493,7 @@ export default {
}
})
},
fail: function (msg) {
fail: function(msg) {
console.log("获取位置失败", msg)
}
});
@ -648,6 +648,11 @@ export default {
url: '../../projectEnd/ukashManage/ukashManage'
})
break
case 'visitorsManage':
uni.navigateTo({
url: '../../projectEnd/visitorsManage/visitorsManage'
})
break
case 'betonManage':
uni.navigateTo({
url: '../betonManage/index'
@ -678,7 +683,7 @@ export default {
// let that = this;
uni.scanCode({
scanType: ['qrCode'],
success: function (res) {
success: function(res) {
console.log('扫一扫得到的数据:' + res.result)
uni.navigateTo({
url: '../scan/saoSao?data=' + res.result
@ -821,11 +826,11 @@ export default {
}
}
}
}
}
</script>
<style lang="scss" scoped>
.qrcodeItem {
.qrcodeItem {
padding: 40rpx 30rpx;
width: 480rpx;
@ -836,9 +841,9 @@ export default {
text-align: center;
margin-bottom: 12rpx;
}
}
}
.topBoxContent {
.topBoxContent {
color: white;
font-size: 14px;
// background: linear-gradient(360deg, #A59FFF 0%, #3258FF 100%);
@ -862,9 +867,9 @@ export default {
// border-right: 1px dashed white;
}
}
}
}
.progressBox {
.progressBox {
width: 150px;
height: 150px;
position: relative;
@ -904,9 +909,9 @@ export default {
width: 100%;
height: 100%;
}
}
}
.weatherBox {
.weatherBox {
position: absolute;
top: 15px;
right: 15px;
@ -926,16 +931,16 @@ export default {
.bottom {
font-size: 10px;
}
}
}
.projectIndexPage {
.projectIndexPage {
/deep/ .headerBox {
background-color: transparent;
border-bottom: none;
}
}
}
.progressBox {
.progressBox {
width: 150px;
height: 150px;
position: relative;
@ -975,9 +980,9 @@ export default {
width: 100%;
height: 100%;
}
}
}
.weatherBox {
.weatherBox {
position: absolute;
top: 10px;
right: 15px;
@ -997,18 +1002,18 @@ export default {
.bottom {
font-size: 10px;
}
}
}
.moudleBox2 {
.moudleBox2 {
opacity: 0.6;
}
}
.moudleBox {
.moudleBox {
overflow: hidden;
// margin: 20px 11px;
}
}
.moudleItem {
.moudleItem {
float: left;
width: 33.33%;
font-size: 13px;
@ -1032,34 +1037,34 @@ export default {
margin-top: 6px;
color: rgba(38, 45, 71, 0.77);
}
}
}
.moudleTitle {
.moudleTitle {
color: rgba(42, 43, 91, 0.5);
font-size: 13px;
margin: 0px 0 15px;
text-align: center;
}
}
.smallHeight {
.smallHeight {
// padding-bottom: 63px;
height: calc(100% - 63px);
}
}
.moudleContent {
.moudleContent {
box-shadow: 0px 4px 16px 0px rgba(212, 220, 236, 0.59);
border-radius: 8px;
padding: 15px 15px;
margin: 55px 15px 15px;
position: relative;
z-index: 2;
}
}
.projectIndexBG {
.projectIndexBG {
width: 100%;
height: 357px;
position: absolute;
top: 0;
left: 0;
}
}
</style>

View File

@ -6,7 +6,30 @@
</view>
</headers>
<view class="details">
<view class="details-item">
<span>材料名称</span>
<span>{{result.name}}</span>
</view>
<view class="details-item">
<span>型号</span>
<span>{{result.model}}</span>
</view>
<view class="details-item">
<span>规格</span>
<span>{{result.specifications}}</span>
</view>
<view class="details-item">
<span>单位</span>
<span>{{result.unit}}</span>
</view>
<view class="details-item">
<span>数量</span>
<span>{{result.num}}</span>
</view>
<view class="details-item" style="height: 100px;">
<span>备注</span>
<span class="details-remark">{{result.remark}}</span>
</view>
</view>
</view>
</template>
@ -17,13 +40,15 @@
export default {
data() {
return {
id: '',
result:{}
}
},
onShow() {
this.getDetails()
},
onLoad(vai) {
this.id = vai.itemS
},
onReachBottom() {
@ -32,19 +57,53 @@
},
methods: {
getDetails() {
let data = {
id: this.id
}
let _this = this
this.sendRequest({
url: 'xmgl/xzMaterialDetail/queryById',
method: 'post',
data: data,
success: res => {
console.log(res);
this.result = res.result
}
})
}
}
}
</script>
<style lang="scss" scoped>
.projectList{
.projectList {
min-height: 100%;
background: #f4f5fd;
.details{
.details {
margin: 10px;
background-color: #fff;
height: 380px;
border-radius: 4px;
.details-item {
height: 50px;
border-bottom: 1px solid #e4e6ef;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 15px;
.details-remark{
width: 150px;
height: 70px;
border: 1px solid #e4e6ef;
overflow: auto;
word-wrap: break-word; /* 允许在单词内换行 */
overflow-wrap: break-word; /* 另一个允许换行的属性,用于更好的浏览器兼容性 */
white-space: normal; /* 确保文本正常换行,而不是保持在一行 */
}
}
}
}
}
</style>

View File

@ -5,18 +5,24 @@
材料入场管理
</view>
</headers>
<view>
<view class="ukashList">
<view v-if="dataList.length > 0">
<view class="ukashList" v-for="item in dataList" :key="item.id">
<!-- @click="jobLookDetails(item.id)" 暂时不跳详情页 -->
<view class="ukashList-what">
<span style="font-size: 14px;font-weight: 700;">0000</span>
<span style="font-size: 14px;font-weight: 700;">材料名称: {{item.name}}</span>
<span class="ukashList-look">查看明细</span>
</view>
<view class="ukashList-time">型号: 2222s</view>
<view class="ukashList-time">规格: 2222s</view>
<view class="ukashList-time">单位: 2222s</view>
<view class="ukashList-time">数量: 2222s</view>
<view class="ukashList-time">型号: {{item.model}}</view>
<view class="ukashList-time">规格: {{item.specifications}}</view>
<view class="ukashList-time">单位: {{item.unit}}</view>
<view class="ukashList-time">数量: {{item.num}}</view>
<view class="ukashList-time">备注: {{item.remark}}</view>
</view>
</view>
<view class="no-data" v-else>
<image class="img" src="/static/noData.png"></image>
<text class="txt">暂无数据</text>
</view>
</view>
</template>
@ -58,29 +64,34 @@
methods: {
queryList() {
let data = {
id:this.id
materialId: this.id
}
let _this = this
this.sendRequest({
url: 'xmgl/xzMaterialDetail/queryById',
url: 'xmgl/xzMaterialDetail/list',
method: 'post',
data: data,
success: res => {
console.log(res);
// this.dataList =res.result.records
// if (res.result.records.length < this.pageSize) {
// //
// this.isLoadMore = true
// this.loadStatus = 'nomore'
// } else {
// this.isLoadMore = false
// // that.loadStatus='more'
// }
// uni.stopPullDownRefresh()
// // console.log(res.result)
this.dataList = res.result
if (res.result.length < this.pageSize) {
//
this.isLoadMore = true
this.loadStatus = 'nomore'
} else {
this.isLoadMore = false
// that.loadStatus='more'
}
uni.stopPullDownRefresh()
// console.log(res.result)
}
})
},
jobLookDetails(id){
uni.navigateTo({
url: './lookDetails?itemS=' + id
})
}
}
}
</script>
@ -101,7 +112,7 @@
}
.ukashList {
height: 163px;
height: 193px;
background-color: #fff;
margin: 10px 10px;
border-radius: 15px;
@ -129,5 +140,22 @@
color: #b9bbc9;
}
}
.no-data {
text-align: center;
.img {
display: block;
height: 200rpx;
width: 200rpx;
margin: 0 auto;
margin-top: 60rpx;
margin-bottom: 60rpx;
}
.txt {
color: #C0C4CC;
}
}
}
</style>

View File

@ -5,8 +5,8 @@
材料入场管理
</view>
</headers>
<input class="uni-input" name="searchName" v-model="search" placeholder="请搜索" />
<view>
<input class="uni-input" name="searchName" v-model="search" placeholder="请搜索" @input="handleInput" />
<view v-if="dataList.length > 0">
<view class="ukashList" v-for="item in dataList" :key="item.id" @click="jobMaterials(item.id)">
<view class="ukashList-what">
<span style="font-size: 14px;font-weight: 700;">{{item.name}}</span>
@ -15,6 +15,10 @@
<view class="ukashList-time">入场时间: {{item.entryTime}}</view>
</view>
</view>
<view class="no-data" v-else>
<image class="img" src="/static/noData.png"></image>
<text class="txt">暂无数据</text>
</view>
</view>
</template>
@ -36,10 +40,11 @@
},
onReachBottom() {
console.log(99999);
// this.pageNo += 1
// this.queryList()
if (!this.isLoadMore) {
this.isLoadMore = true
this.pageNo + 1
this.queryList()
this.pageNo += 1;
this.queryList();
}
},
onPullDownRefresh() {
@ -49,10 +54,11 @@
this.queryList()
},
methods: {
queryList() {
queryList(name = null) {
let data = {
pageNo: this.pageNo,
pageSize: this.pageSize
pageSize: this.pageSize,
name: name ? name : null
}
let _this = this
this.sendRequest({
@ -61,7 +67,8 @@
data: data,
success: res => {
console.log(res);
this.dataList = res.result.records
this.dataList=this.dataList.concat(res.result.records)
// this.dataList = res.result.records
if (res.result.records.length < this.pageSize) {
//
this.isLoadMore = true
@ -79,6 +86,11 @@
uni.navigateTo({
url: './materials?itemS=' + id
})
},
handleInput(e) {
console.log(e);
this.dataList = null
this.queryList(e.detail.value)
}
}
}
@ -128,5 +140,22 @@
color: #b9bbc9;
}
}
.no-data {
text-align: center;
.img {
display: block;
height: 200rpx;
width: 200rpx;
margin: 0 auto;
margin-top: 60rpx;
margin-bottom: 60rpx;
}
.txt {
color: #C0C4CC;
}
}
}
</style>

View File

@ -0,0 +1,129 @@
<template>
<view class="projectList">
<headers class="fixedheader" :themeType="true" :showBack="true">
<view class="headerName">
查看明细
</view>
</headers>
<view class="details">
<view class="details-item">
<span>访客姓名</span>
<span>{{result.name}}</span>
</view>
<view class="details-item">
<span>访客身份证号</span>
<span>{{result.model}}</span>
</view>
<view class="details-item">
<span>预约人姓名</span>
<span>{{result.specifications}}</span>
</view>
<view class="details-item">
<span>预约结果</span>
<span>{{result.unit}}</span>
</view>
<view class="details-item">
<span>预约有效开始时间</span>
<span>{{result.num}}</span>
</view>
<view class="details-item">
<span>预约有效结束时间</span>
<span>{{result.num}}</span>
</view>
<view class="details-state" style="height: 100px;">
<span>当前状态</span>
<span>{{result.remark}}</span>
</view>
</view>
<view class="delete">删除</view>
</view>
</template>
<script>
import headers from '../../../components/headers/headers.vue'
export default {
data() {
return {
id: '',
result: {}
}
},
onShow() {
this.getDetails()
},
onLoad(vai) {
this.id = vai.itemS
},
onReachBottom() {
},
onPullDownRefresh() {
},
methods: {
getDetails() {
let data = {
id: this.id
}
let _this = this
this.sendRequest({
url: 'xmgl/xzMaterialDetail/queryById',
method: 'post',
data: data,
success: res => {
console.log(res);
this.result = res.result
}
})
}
}
}
</script>
<style lang="scss" scoped>
.projectList {
min-height: 100%;
background: #f4f5fd;
position: relative;
.details {
margin: 10px;
background-color: #fff;
height: 380px;
border-radius: 4px;
.details-item {
height: 50px;
border-bottom: 1px solid #e4e6ef;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 15px;
}
}
.details-state {
display: flex;
justify-content: space-between;
padding: 0 15px;
margin-top: 15px;
}
.delete{
position: absolute;
bottom: 60px;
left: 0;
height: 50px;
background-color: #eb3b43;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
color: #fff;
font-size: 16px;
}
}
</style>

View File

@ -0,0 +1,185 @@
<template>
<view class="projectList">
<headers class="fixedheader" :themeType="true" :showBack="true">
<view class="headerName">
访客管理
</view>
</headers>
<input class="uni-input" name="searchName" v-model="search" placeholder="请搜索访客姓名" @input="handleInput" />
<view>
<view class="visitors" @click="jobMaterials('ooooooo')">
<view class="ukashList-what">
<span>访客姓名:浏览</span>
<span :class="['ukashList-look',state === 0 ? 'green' : 'red']">访客姓名:浏览</span>
</view>
<view class="ukashList-time">访客身份证号:</view>
<view class="ukashList-time">预约人姓名:</view>
<view class="ukashList-time">预约开始时间:</view>
<view class="ukashList-what" style="font-size: 12px;color: #b9bbc9;">
<span>预约结束时间:</span>
<span :class="['ukashList-look',isBrowsing === 0 ? 'blue' : 'grey']">访客姓名:浏览</span>
</view>
</view>
</view>
<!-- <view class="no-data" v-else>
<image class="img" src="/static/noData.png"></image>
<text class="txt">暂无数据</text>
</view> -->
</view>
</template>
<script>
import headers from '../../../components/headers/headers.vue'
export default {
data() {
return {
search: '',
pageNo: 1,
pageSize: 10,
isLoadMore: false,
dataList: [],
state: 1,
isBrowsing : 0
}
},
onShow() {
this.queryList()
},
onReachBottom() {
console.log(99999);
if (!this.isLoadMore) {
this.isLoadMore = true
this.queryList()
}
},
onPullDownRefresh() {
console.log(222);
this.pageNo = 1
this.dataList = []
this.queryList()
},
methods: {
queryList(name = null) {
let data = {
pageNo: this.pageNo,
pageSize: this.pageSize,
visitName: name ? name : null
}
let _this = this
this.sendRequest({
url: 'xmgl/visitorManageRecord/list',
method: 'post',
data: data,
success: res => {
console.log(res);
this.dataList = res.result.records
if (res.result.records.length < this.pageSize) {
//
this.isLoadMore = true
this.loadStatus = 'nomore'
} else {
this.isLoadMore = false
// that.loadStatus='more'
}
uni.stopPullDownRefresh()
// console.log(res.result)
}
})
},
jobMaterials(id) {
uni.navigateTo({
url: './visitorsDetails?itemS=' + id
})
},
handleInput(e) {
console.log(e);
this.dataList = null
this.queryList(e.detail.value)
}
}
}
</script>
<style lang="scss" scoped>
.projectList {
min-height: 100%;
background: #f4f5fd;
.uni-input {
border-radius: 10px;
margin: 10px 10px;
background-color: #e6e7ef;
height: 35px;
line-height: 30px;
padding: 0 20px;
font-size: 14px;
}
.visitors {
height: 150px;
background-color: #fff;
border-radius: 5px;
margin: 10px;
.ukashList-what {
display: flex;
justify-content: space-between;
margin: 0 20px;
padding-top: 10px;
.ukashList-look {
// background-color: #5081f7;
border-radius: 10px;
padding: 0 4px 2px 4px;
font-size: 12px;
text-align: center;
color: #fff;
}
}
.ukashList-time {
margin-top: 10px;
margin-left: 20px;
font-size: 12px;
color: #b9bbc9;
}
}
.no-data {
text-align: center;
.img {
display: block;
height: 200rpx;
width: 200rpx;
margin: 0 auto;
margin-top: 60rpx;
margin-bottom: 60rpx;
}
.txt {
color: #C0C4CC;
}
}
}
.green {
background-color: #10b12a;
}
.blue {
background-color: #5081f7;
}
.red {
background-color: #eb3b43;
}
.grey {
background-color: #a3a5b0;
}
</style>