Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
yanshouyi-Minipro
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xinzhedeai
yanshouyi-Minipro
Commits
37781e55
Commit
37781e55
authored
Dec 26, 2024
by
xinzhedeai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
操作日志
parent
4954326f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
620 additions
and
0 deletions
+620
-0
operateLog.vue
pages/home/operateLog.vue
+620
-0
No files found.
pages/home/operateLog.vue
0 → 100644
View file @
37781e55
<
template
>
<view
class=
"pageWrapper"
>
<CustomNavbar
:title=
"navBarTitle"
goBackUrl=
"/pages/home/home"
@
gobackDeal=
"gobackDeal"
>
</CustomNavbar>
<view
class=
"body-wrapper"
>
<view
class=
"demo-uni-row"
>
<uni-row>
<uni-col
:span=
"7"
class=
"_title"
>
<view>
工程名称
</view>
</uni-col>
<uni-col
:span=
"15"
>
<uni-data-select
v-model=
"form.productName"
:localdata=
"selectListLv1"
:clear=
"false"
@
change=
"changeLv1"
></uni-data-select>
</uni-col>
</uni-row>
</view>
<view
class=
"demo-uni-row"
>
<uni-row
class=
"demo-uni-row mb-10"
>
<uni-col
:span=
"7"
class=
"_title"
>
<view>
爆区名称
</view>
</uni-col>
<uni-col
:span=
"15"
>
<uni-data-select
v-model=
"form.artilleryAreaName"
:localdata=
"selectListLv2"
:clear=
"false"
@
change=
"changeLv2"
></uni-data-select>
</uni-col>
</uni-row>
</view>
<view
class=
"demo-uni-row"
>
<uni-row
class=
"demo-uni-row mb-10"
>
<uni-col
:span=
"7"
class=
"_title"
>
<view>
记录时间
</view>
</uni-col>
<uni-col
:span=
"15"
>
<uni-data-select
v-model=
"form.artilleryAreaName"
:localdata=
"selectListLv2"
:clear=
"false"
@
change=
"changeLv2"
></uni-data-select>
</uni-col>
</uni-row>
</view>
</view>
<view
class=
"footer-wrapper"
>
<view
class=
"funcBtn end"
@
tap=
"resetForm"
>
搜索
</view>
</view>
<view
class=
""
v-show=
"!connected"
style=
"text-align: center; color: darkgray; margin-top:20rpx;"
>
{{
pageLoadText
}}
</view>
</view>
</
template
>
<
script
>
import
CustomNavbar
from
'
@/pages/component/CustomNavbar.vue
'
;
import
{
blueToothMixin
}
from
'
../../common/mixin.js
'
import
{
getCurrentTime
,
showCustomToast
,
showCustomModal
}
from
'
../../common/util.js
'
import
{
getSelectList
,
getDetailInfo
,
saveData
,
getDict
}
from
'
../../api/blueToothMeasure.js
'
export
default
{
mixins
:
[
blueToothMixin
],
components
:
{
CustomNavbar
,
},
data
()
{
return
{
navBarTitle
:
'
炮孔测量
'
,
redirectUrl
:
'
/pages/home/blueSearch?refer=blueMeasure
'
,
// 表单数据相关
zhuangyaoDict
:
[],
form
:
{
'
productName
'
:
''
,
'
artilleryAreaName
'
:
''
,
'
cannonHoleArrayNum
'
:
''
,
'
cannonHoleNum
'
:
''
,
'
status
'
:
''
,
'
expectedDepth
'
:
''
,
'
actualDepth
'
:
''
,
'
actualWaterLevel
'
:
''
},
dataList
:
[],
selectListLv1
:
[],
selectListLv2
:
[],
selectListLv3
:
[],
selectListLv4
:
[],
selectListLv5
:
[],
};
},
/**
* 生命周期函数--监听页面加载
*/
onLoad
:
function
(
options
)
{
uni
.
hideLoading
()
// this.dataList = uni.getStorageSync('importDataList') || []
// console.log('this.dataList',JSON.stringify(this.dataList));
this
.
getDictInfo
()
this
.
getSelectListLv1
()
// this.initLink()
},
methods
:
{
async
getDictInfo
()
{
let
res
=
await
getDict
({
type
:
'
zhuangyao_type
'
})
if
(
res
)
{
this
.
zhuangyaoDict
=
res
.
map
((
item
)
=>
{
return
{
text
:
item
.
dictLabel
,
value
:
item
.
dictValue
}
})
}
},
changeLvCommonReset
(
lvNum
)
{
// 下拉列表值改变,清空级联数据公共方法
let
newFildArr
=
[]
let
newDataListSelectArr
=
[]
let
formFieldArr
=
[
'
productName
'
,
'
artilleryAreaName
'
,
'
cannonHoleArrayNum
'
,
'
cannonHoleNum
'
,
'
status
'
,
'
expectedDepth
'
,
'
actualDepth
'
,
'
actualWaterLevel
'
]
let
dataListSelectArr
=
[
'
selectListLv1
'
,
'
selectListLv2
'
,
'
selectListLv3
'
,
'
selectListLv4
'
,
'
selectListLv5
'
]
// [1, 2, 3, 4, 5]; lvNum:2 => [3, 4, 5]
newFildArr
=
formFieldArr
.
slice
(
lvNum
);
newFildArr
.
forEach
((
key
)
=>
{
this
[
'
form
'
][
key
]
=
''
});
newDataListSelectArr
=
dataListSelectArr
.
slice
(
lvNum
);
newDataListSelectArr
.
forEach
((
key
)
=>
{
this
[
key
]
=
[]
});
},
async
getSelectListLv1
()
{
// const dataArr = JSON.parse(JSON.stringify(this.dataList))
// // 获取第一个数据列表
// this.selectListLv1 = getCascadeList(dataArr, {
// productName: null
// }).map((item) => {
// return {
// text: item.productName,
// value: item.productName
// }
// })
const
res
=
await
getSelectList
({
productName
:
''
,
artilleryAreaName
:
''
,
cannonHoleArrayNum
:
''
,
cannonHoleNum
:
''
})
console
.
log
(
'
响应res
'
,
res
)
this
.
selectListLv1
=
res
.
map
((
item
)
=>
{
return
{
text
:
item
,
value
:
item
}
})
},
changeLv1
(
e
)
{
// console.log("e:", e);
this
.
changeLvCommonReset
(
1
)
this
.
getSelectListLv2
(
e
)
},
async
getSelectListLv2
(
prevLvVal
)
{
// const dataArr = JSON.parse(JSON.stringify(this.dataList))
// this.selectListLv2 = getCascadeList(dataArr, {
// productName: prevLvVal,
// }).map((item) => {
// return {
// text: item.artilleryAreaName,
// value: item.artilleryAreaName
// }
// })
// //console.log('this.selectListLv2', this.selectListLv2)
const
res
=
await
getSelectList
({
productName
:
prevLvVal
,
artilleryAreaName
:
''
,
cannonHoleArrayNum
:
''
,
cannonHoleNum
:
''
})
console
.
log
(
'
响应res
'
,
res
)
this
.
selectListLv2
=
res
.
map
((
item
)
=>
{
return
{
text
:
item
,
value
:
item
}
})
},
changeLv2
(
e
)
{
//console.log("e:", e);
this
.
changeLvCommonReset
(
2
)
this
.
getSelectListLv3
(
e
)
},
async
getSelectListLv3
(
prevLvVal
)
{
// const dataArr = JSON.parse(JSON.stringify(this.dataList))
// this.selectListLv3 = getCascadeList(dataArr, {
// productName: this.form.productName,
// artilleryAreaName: prevLvVal
// }).map((item) => {
// return {
// text: item.cannonHoleArrayNum,
// value: item.cannonHoleArrayNum
// }
// })
const
res
=
await
getSelectList
({
productName
:
this
.
form
.
productName
,
artilleryAreaName
:
prevLvVal
,
cannonHoleArrayNum
:
''
,
cannonHoleNum
:
''
})
console
.
log
(
'
响应res
'
,
res
)
this
.
selectListLv3
=
res
.
map
((
item
)
=>
{
return
{
text
:
item
,
value
:
item
}
})
},
changeLv3
(
e
)
{
//console.log("e:", e);
this
.
changeLvCommonReset
(
3
)
this
.
getSelectListLv4
(
e
)
},
async
getSelectListLv4
(
prevLvVal
)
{
// const dataArr = JSON.parse(JSON.stringify(this.dataList))
// this.selectListLv4 = getCascadeList(dataArr, {
// productName: this.form.productName,
// artilleryAreaName: this.form.artilleryAreaName,
// cannonHoleArrayNum: prevLvVal
// }).map((item) => {
// return {
// text: item.cannonHoleNum,
// value: item.cannonHoleNum
// }
// })
const
res
=
await
getSelectList
({
productName
:
this
.
form
.
productName
,
artilleryAreaName
:
this
.
form
.
artilleryAreaName
,
cannonHoleArrayNum
:
prevLvVal
,
cannonHoleNum
:
''
})
console
.
log
(
'
响应res
'
,
res
)
this
.
selectListLv4
=
res
.
map
((
item
)
=>
{
return
{
text
:
item
,
value
:
item
}
})
},
changeLv4
(
e
)
{
// this.changeLvCommonReset(4)
// //console.log("e:", e);
// this.getSelectListLv5(e)
this
.
getDetailInfo
(
e
)
},
// getSelectListLv5(prevLvVal) {
// const dataArr = JSON.parse(JSON.stringify(this.dataList))
// this.selectListLv5 = getCascadeList(dataArr, {
// productName: this.form.productName,
// artilleryAreaName: this.form.artilleryAreaName,
// cannonHoleArrayNum: this.form.cannonHoleArrayNum,
// cannonHoleNum: prevLvVal,
// }).map((item) => {
// return {
// text: item.boreholeNumber,
// value: item.boreholeNumber
// }
// })
// },
// changeLv5(e) {
// //console.log("e:", e);
// this.getDetailInfo(e)
// },
async
getDetailInfo
()
{
let
res
=
await
getDetailInfo
()
if
(
res
)
{
this
.
form
[
'
status
'
]
=
res
[
'
status
'
]
this
.
form
[
'
expectedDepth
'
]
=
res
[
'
expectedDepth
'
]
this
.
form
[
'
designInclination
'
]
=
res
[
'
designInclination
'
]
return
}
showCustomToast
({
title
:
'
暂无详情信息
'
})
},
async
saveData
()
{
// 保存当前表单数据到本地
let
formFieldArr
=
[
'
productName
'
,
'
artilleryAreaName
'
,
'
cannonHoleArrayNum
'
,
'
cannonHoleNum
'
,
'
boreholeNumber
'
]
var
validFlag
=
true
for
(
var
i
=
0
;
i
<
formFieldArr
.
length
;
i
++
)
{
console
.
log
(
'
this.form[formFieldArr[i]]
'
,
i
,
this
.
form
[
formFieldArr
[
i
]])
if
(
!
this
.
form
[
formFieldArr
[
i
]])
{
validFlag
=
false
break
;
}
}
if
(
!
validFlag
)
{
showCustomModal
({
content
:
`手动填写数据不可为空`
})
return
}
// const index = this.dataList.findIndex((item) => {
// return item.productName === this.form.productName &&
// item.artilleryAreaName === this.form.artilleryAreaName &&
// item.cannonHoleArrayNum === this.form.cannonHoleArrayNum &&
// item.cannonHoleNum === this.form.cannonHoleNum &&
// item.boreholeNumber === this.form.boreholeNumber
// })
if
(
this
.
form
.
measureDepth
&&
this
.
form
.
shuiwei
)
{
let
res
=
await
saveData
({
...
this
.
form
})
// this.$set(this.dataList[index], 'actualWaterLevel', this.form.actualWaterLevel);
// this.$set(this.dataList[index], 'actualDepth', this.form.actualDepth);
// this.$set(this.dataList[index], 'remark', getCurrentTime());
// uni.setStorageSync('importDataList', JSON.parse(JSON.stringify(this.dataList)))
if
(
res
)
{
uni
.
showToast
({
title
:
'
保存成功
'
,
icon
:
false
})
this
.
resetForm
()
}
return
}
showCustomModal
({
content
:
'
孔深水位不能为空
'
,
})
},
}
};
/**
* 处理级联数据方法
*/
function
getCascadeList
(
originArr
=
[],
paramObj
)
{
let
sonArr
=
new
Array
()
// let sonArr = new Set()
if
(
paramObj
.
artilleryAreaName
&&
paramObj
.
productName
&&
paramObj
.
cannonHoleArrayNum
&&
paramObj
.
cannonHoleNum
)
{
// 返回第5级
const
tempArr
=
originArr
.
filter
((
item
)
=>
{
return
item
.
productName
===
paramObj
.
productName
&&
item
.
artilleryAreaName
===
paramObj
.
artilleryAreaName
&&
item
.
cannonHoleArrayNum
===
paramObj
.
cannonHoleArrayNum
&&
item
.
cannonHoleNum
===
paramObj
.
cannonHoleNum
})
const
uniqueArray
=
Array
.
from
(
new
Map
(
tempArr
.
map
(
item
=>
[
item
.
boreholeNumber
,
item
])).
values
());
return
uniqueArray
}
if
(
paramObj
.
artilleryAreaName
&&
paramObj
.
productName
&&
paramObj
.
cannonHoleArrayNum
)
{
// 返回第4级
const
tempArr
=
originArr
.
filter
((
item
)
=>
{
return
item
.
productName
===
paramObj
.
productName
&&
item
.
artilleryAreaName
===
paramObj
.
artilleryAreaName
&&
item
.
cannonHoleArrayNum
===
paramObj
.
cannonHoleArrayNum
})
const
uniqueArray
=
Array
.
from
(
new
Map
(
tempArr
.
map
(
item
=>
[
item
.
cannonHoleNum
,
item
])).
values
());
return
uniqueArray
}
if
(
paramObj
.
artilleryAreaName
&&
paramObj
.
productName
)
{
// 返回第三级
const
tempArr
=
originArr
.
filter
((
item
)
=>
{
return
item
.
productName
===
paramObj
.
productName
&&
item
.
artilleryAreaName
===
paramObj
.
artilleryAreaName
})
const
uniqueArray
=
Array
.
from
(
new
Map
(
tempArr
.
map
(
item
=>
[
item
.
cannonHoleArrayNum
,
item
])).
values
());
return
uniqueArray
}
if
(
paramObj
.
productName
)
{
// 返回2级列表
const
tempArr
=
originArr
.
filter
((
item
)
=>
{
// 二级列表基于1级选择后的值进行过滤
return
item
.
productName
===
paramObj
.
productName
})
const
uniqueArray
=
Array
.
from
(
new
Map
(
tempArr
.
map
(
item
=>
[
item
.
artilleryAreaName
,
item
])).
values
());
return
uniqueArray
}
if
(
!
paramObj
.
productName
)
{
// 返回1级列表
const
uniqueArray
=
Array
.
from
(
new
Map
(
originArr
.
map
(
item
=>
[
item
.
productName
,
item
])).
values
());
return
uniqueArray
}
}
</
script
>
<
style
lang=
"scss"
>
::v-deep
.uni-select__input-placeholder
{
// placeholder样式调整
font-size
:
30rpx
!
important
;
}
.inputEle
{
height
:
110rpx
;
display
:
flex
;
align-items
:
center
;
}
.uni-col-7
{
font-size
:
32rpx
;
font-weight
:
bold
;
color
:
#000000
;
line-height
:
110rpx
;
}
.demo-uni-row
{
line-height
:
70rpx
;
padding-left
:
15rpx
;
.uni-select
{
height
:
108rpx
;
}
}
.only-read-row
{
background
:
#E3E6EC
!
important
;
height
:
108rpx
;
align-items
:
center
;
display
:
flex
;
line-height
:
70rpx
;
position
:
relative
;
padding-left
:
13rpx
;
&
:after
{
content
:
'米'
;
width
:
70rpx
;
height
:
70rpx
;
position
:
absolute
;
right
:
48rpx
;
top
:
50%
;
transform
:
translateY
(
-50%
);
text-align
:
center
;
line-height
:
70rpx
;
font-size
:
29rpx
;
color
:
#000000
;
}
}
::v-deep
.uni-row
::after
{
clear
:
both
;
width
:
608rpx
;
border-bottom
:
1rpx
solid
#E3E6EC
;
transform
:
translateX
(
18rpx
);
}
.pageWrapper
{
width
:
100vw
;
height
:
calc
(
100vh-44rpx
);
padding-top
:
44rpx
;
background
:
linear-gradient
(
180deg
,
#007AFF
0%
,
#419AFF
16%
,
#EFF1F4
43%
);
}
.body-wrapper
{
margin
:
0
auto
;
width
:
690rpx
;
padding-top
:
20rpx
;
padding-left
:
15rpx
;
padding-right
:
15rpx
;
background
:
#FFFFFF
;
border-radius
:
10rpx
;
.sumary-title
{
position
:
relative
;
padding-left
:
50rpx
;
font-size
:
32rpx
;
color
:
#007AFF
;
margin-top
:
20rpx
;
margin-bottom
:
20rpx
;
&
:before
{
content
:
''
;
width
:
16rpx
;
height
:
16rpx
;
background
:
#007AFF
;
border-radius
:
50%
;
position
:
absolute
;
left
:
20rpx
;
top
:
50%
;
transform
:
translateY
(
-50%
);
}
}
}
.logo-wrapper
{
display
:
flex
;
justify-content
:
center
;
image
{
width
:
366rpx
;
height
:
432rpx
;
margin
:
0
auto
;
}
}
// ._title {
// // border: 1px solid lightgray;
// height: 70rpx;
// text-align: center;
// line-height: 70rpx;
// margin-right: 10rpx;
// font-size: 32rpx;
// font-weight: bold;
// color: #000000;
// }
._content
{
// border: 1px solid lightgray;
height
:
70rpx
;
line-height
:
70rpx
;
padding-left
:
20rpx
;
position
:
relative
;
// &:after {
// content: 'm';
// width: 70rpx;
// height: 70rpx;
// // border-left: 1px solid lightgray;
// position: absolute;
// right: -12rpx;
// top: 0;
// text-align: center;
// line-height: 70rpx;
// font-size: 29rpx;
// color: #000000;
// }
}
.funcBtn
{
width
:
280rpx
;
height
:
70rpx
;
line-height
:
70rpx
;
background
:
#007AFF
;
border-radius
:
35rpx
;
text-align
:
center
;
font-size
:
29rpx
;
color
:
#FFFFFF
;
border
:
2px
solid
#007AFF
;
&
.end
{
background
:
#FFFFFF
;
;
color
:
#007AFF
;
}
&
.loading
{
opacity
:
0
.5
;
}
}
.footer-wrapper
{
display
:
flex
;
justify-content
:
space-around
;
margin-top
:
50rpx
;
}
.unaffix
{
&
:after
{
display
:
none
;
}
}
/**
* 蓝牙连接互动相关
*/
page
{
color
:
#333
;
}
/*划线 */
.line
{
background-color
:
blue
;
height
:
5px
;
width
:
100%
;
}
.div
{
background-color
:
white
;
height
:
10px
;
width
:
10px
;
}
.blank
{
height
:
150rpx
;
}
</
style
>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment