工单签到 工单填写 工单列表 意见反馈

master
tangyi 2022-03-17 18:26:34 +08:00
parent df78a7b946
commit 12403e2091
12 changed files with 734 additions and 15 deletions

View File

@ -65,9 +65,21 @@ uni-radio .uni-radio-input {border: 1rpx solid #444444;}
/* panding全局 */ /* panding全局 */
.padding{ .padding{
padding: 0 27rpx; padding: 0 27rpx;
} }
/* 按钮全局 */
.submit-button {
width: 686rpx;
border-radius: 50rpx;
height: 90rpx;
background-color: #02A2ea;
line-height: 90rpx;
color: #FFFFFF;
text-align: center;
font-size: 30rpx;
}
/* 登录 */ /* 登录 */
.login-img { .login-img {
width: 100%; width: 100%;

View File

@ -11,7 +11,7 @@
<view class="return-box" @tap="backEv" v-if="ifReturn" <view class="return-box" @tap="backEv" v-if="ifReturn"
:style="{height: navBarHeight+'px'}"> :style="{height: navBarHeight+'px'}">
<slot name="leftContent"> <slot name="leftContent">
<i class="icon icon-return" style="font-size: 40rpx;" <i class="icon icon-return" style="font-size: 32rpx;"
:style="{color: returnColor}"></i> :style="{color: returnColor}"></i>
</slot> </slot>
</view> </view>
@ -47,7 +47,7 @@
// //
navBarHeight: { navBarHeight: {
type:Number, type:Number,
default:50 default:40
}, },
// //
ifReturn:{ ifReturn:{
@ -180,8 +180,9 @@
.return-box i {font-size: 56rpx;} .return-box i {font-size: 56rpx;}
.tab-title{ .tab-title{
width: 100%; width: 100%;
font-size: 38rpx; font-size: 32rpx;
display: flex; display: flex;
font-weight: bold;
} }
.tab-title .title-box{margin-top: -4rpx;} .tab-title .title-box{margin-top: -4rpx;}
</style> </style>

View File

@ -86,7 +86,8 @@
}, { }, {
"path": "pages/project/details", "path": "pages/project/details",
"style": { "style": {
"navigationBarTitleText": "" "navigationBarTitleText": "",
"navigationStyle": "custom" //
} }
}, },
@ -103,10 +104,30 @@
"path": "pages/feedback/feedback", "path": "pages/feedback/feedback",
"style": { "style": {
"navigationBarTitleText": "", "navigationBarTitleText": "",
"navigationStyle": "custom", //
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
} }
,{
"path" : "pages/workOrder/workOrder",
"style" :
{
"navigationBarTitleText": "",
"navigationStyle": "custom", //
"enablePullDownRefresh": false
}
}
,{
"path" : "pages/workOrder/workorderTwo",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
], ],
"subPackages": [{ //A "subPackages": [{ //A
"root": "pagesA", "root": "pagesA",

View File

@ -1,11 +1,12 @@
<template> <template>
<view> <view class="content">
<statusNav navBarTitle="意见反馈"></statusNav>
<view class="opinion-type"> <view class="opinion-type">
意见类型 意见类型
</view> </view>
<view class="opinion-type-content"> <view class="opinion-type-content">
<view class="li" :class="item.state?'on':''" v-for="(item,index) in typeData"> <view class="li" @click="opinionType(index)" :class="item.state?'on':''" v-for="(item,index) in typeData">
{{item.title}} {{item.title}}
</view> </view>
</view> </view>
@ -26,18 +27,45 @@
</view> </view>
<view class="feedback-approach"> <view class="feedback-approach">
<view class="feedback-tel"> <view class="feedback-con">
<image class="icon" src="../../static/iocn/tel.png" mode=""></image>
</view>
<view class="feedback-date">
<view class="feedback-tel-con">
<view class="text">
服务监督电话
</view>
<view class="tel">
156 1566 0510
</view>
</view>
</view> </view>
<view class="feedback-con">
<image class="icon" src="../../static/iocn/date.png" mode=""></image>
<view class="feedback-tel-con">
<view class="text">
反馈受理时间
</view>
<view class="tel">
9:00 - 18:00
</view>
</view>
</view>
</view> </view>
<button class="submit-button" type="default">提交反馈</button>
<footTabOne :current="3"></footTabOne>
</view> </view>
</template> </template>
<script> <script>
import statusNav from '../../components/status-nav.vue';
import footTabOne from "../../components/foot-tabs/foot-tab-one.vue"
export default { export default {
components:{
footTabOne,
statusNav
},
data() { data() {
return { return {
typeData: [{ typeData: [{
@ -68,7 +96,12 @@
} }
}, },
methods: { methods: {
opinionType(index){
for (var i = 0; i < this.typeData.length; i++) {
this.typeData[i].state=false
}
this.typeData[index].state=true
}
} }
} }
</script> </script>
@ -77,7 +110,9 @@
page { page {
background-color: #F7F7F7; background-color: #F7F7F7;
} }
.content{
padding-top: 76rpx;
}
.opinion-type { .opinion-type {
width: 100%; width: 100%;
height: 80rpx; height: 80rpx;
@ -159,4 +194,46 @@
color: #9f9898; color: #9f9898;
} }
.feedback-con{
width: 320rpx;
height: 100rpx;
border-radius: 8rpx;
background-color: #ffe5e5;
display: flex;
align-items: center;
box-sizing: border-box;
padding-left: 26rpx;
}
.feedback-con .icon{
width: 40rpx;
height: 40rpx;
margin-right: 18rpx;
}
.feedback-tel-con .text{
font-size: 24rpx;
margin-bottom: 10rpx;
}
.feedback-tel-con .tel{
font-size: 28rpx;
}
.feedback-approach{
padding: 0 40rpx;
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 14rpx;
}
.submit-button {
width: 686rpx;
margin-top: 58rpx;
border-radius: 50rpx;
height: 90rpx;
background-color: #02A2ea;
line-height: 90rpx;
color: #FFFFFF;
text-align: center;
font-size: 30rpx;
}
</style> </style>

View File

@ -1,5 +1,6 @@
<template> <template>
<view class="content"> <view class="content">
<statusNav navBarTitle="项目详情"></statusNav>
<view class="details-head"> <view class="details-head">
<view class="swiper-head"> <view class="swiper-head">
<swiper class="swiper" @change="changeAutoplay" :autoplay="autoplay" :interval="interval" <swiper class="swiper" @change="changeAutoplay" :autoplay="autoplay" :interval="interval"
@ -219,7 +220,11 @@
</template> </template>
<script> <script>
export default { import statusNav from "../../components/status-nav.vue"
export default {
components:{
statusNav
},
data() { data() {
return { return {
autoplay: true, autoplay: true,

View File

@ -37,7 +37,7 @@
</view> </view>
<view class="project-list"> <view class="project-list">
<view class="li"> <view class="li" @click="projectDetailsFun()">
<view class="message"> <view class="message">
<image class="img" src="../../static/del/项目图片.png" mode="aspectFill"></image> <image class="img" src="../../static/del/项目图片.png" mode="aspectFill"></image>
@ -138,6 +138,11 @@
} }
}, },
methods: { methods: {
projectDetailsFun(){
uni.navigateTo({
url:"/pages/project/details"
})
},
bindPickerChange(data){ bindPickerChange(data){
console.log(data) console.log(data)
}, },
@ -168,7 +173,10 @@
page { page {
background-color: #F7F7F7; background-color: #F7F7F7;
} }
.content{
padding-top: 76rpx;
}
.project-list-input { .project-list-input {
width: 100%; width: 100%;
height: 114rpx; height: 114rpx;

View File

@ -0,0 +1,247 @@
<template>
<view class="content">
<statusNav navBarTitle="处理工单"></statusNav>
<view class="work-order-schedule">
<view class="li">
<view class="icon on icon-after">
1
</view>
<view class="text">
签到执行
</view>
</view>
<view class="li">
<view class="icon icon-after">
2
</view>
<view class="text">
填写维保单
</view>
</view>
<view class="li">
<view class="icon">
3
</view>
<view class="text">
结算审核
</view>
</view>
</view>
<view class="work-order-from">
<view class="li">
<view class="title">
工单编号
</view>
<input type="text" class="input" placeholder="" value="GD20211203-001" />
</view>
<view class="li">
<view class="title">
项目编号
</view>
<input type="text" class="input" placeholder="" value="GD20211203-001" />
</view>
<view class="li">
<view class="title">
项目名称
</view>
<input type="text" class="input" placeholder="" value="湖南省林业科学院11楼会议室P2.5" />
</view>
<view class="li">
<view class="title">
产品类型
</view>
<input type="text" class="input" placeholder="" value="Q2.5-E" />
</view>
<view class="li">
<view class="title">
安装位置
</view>
<input type="text" class="input" placeholder="" value="详细地址+某某栋11楼会议室" />
</view>
<view class="li">
<view class="title">
故障类型
</view>
<input type="text" class="input" placeholder="" value="供电不足" />
</view>
<view class="li">
<view class="title">
紧急程度
</view>
<input type="text" class="input" placeholder="" value="紧急" />
</view>
<view class="li">
<view class="title">
故障说明
</view>
<textarea auto-height class="input" value="*********************************************************************************************************" placeholder="" />
</view>
<view class="li">
<view class="title">
故障图片
</view>
<view class="input">
<image class="img" src="../../static/del/微信图片_20220113152400.png" mode="aspectFill"></image>
<image class="img" src="../../static/del/微信图片_20220113152400.png" mode="aspectFill"></image>
</view>
</view>
</view>
<view class="work-order-from">
<view class="li">
<view class="title">
</view>
<input type="text" class="input" placeholder="" value="林某" />
</view>
<view class="li">
<view class="title">
报单时间
</view>
<input type="text" class="input" placeholder="" value="2021/12/3 12:00:05" />
</view>
<view class="li">
<view class="title">
服务方式
</view>
<input type="text" class="input" placeholder="" value="上门服务" />
</view>
<view class="li">
<view class="title">
定位地址
</view>
<input type="text" class="input" placeholder="" value="*******************************" />
</view>
</view>
<button class="submit-button" type="default">签到</button>
</view>
</template>
<script>
import statusNav from '../../components/status-nav.vue';
import footTabOne from "../../components/foot-tabs/foot-tab-one.vue"
export default {
components: {
footTabOne,
statusNav
},
data() {
return {
}
},
methods: {
}
}
</script>
<style>
.content {
padding-top: 80rpx;
}
.submit-button {
width: 686rpx;
border-radius: 50rpx;
height: 90rpx;
background-color: #02A2ea;
line-height: 90rpx;
color: #FFFFFF;
margin-top: 60rpx;
text-align: center;
font-size: 30rpx;
}
.work-order-schedule {
display: flex;
padding: 22rpx 29rpx;
margin-top: 10rpx;
background-color: #FFFFFF;
justify-content: space-between;
}
.work-order-schedule .icon {
width: 38rpx;
height: 38rpx;
color: #FFFFFF;
margin: auto;
position: relative;
font-size: 24rpx;
margin-bottom: 10rpx;
text-align: center;
line-height: 38rpx;
background-color: #999999;
border-radius: 50%;
}
.work-order-schedule .on {
background-color: #5391F3
}
.work-order-schedule .text {
font-size: 24rpx;
color: #333333;
}
.work-order-schedule .icon-after::after {
content: "";
width: 265rpx;
height: 2rpx;
background-color: #999999;
position: absolute;
top: 19rpx;
left: 38rpx;
}
.work-order-from {
margin-top: 10rpx;
background-color: #FFFFFF;
}
.work-order-from .li {
display: flex;
padding: 20rpx 40rpx;
border-bottom: 2rpx solid #ececec;
}
.work-order-from .li .title {
font-size: 26rpx;
width: 133rpx;
}
.work-order-from .li .input {
font-size: 24rpx;
color: #8b8b8b;
flex: 1;
padding-left: 15rpx;
}
.work-order-from .li .input .img{
width: 169rpx;
height: 127rpx;
margin-right: 10rpx;
}
</style>

View File

@ -0,0 +1,348 @@
<template>
<view class="content">
<statusNav navBarTitle="处理工单"></statusNav>
<view class="work-order-schedule">
<view class="li">
<view class="icon icon-after">
1
</view>
<view class="text">
签到执行
</view>
</view>
<view class="li">
<view class="icon on icon-after">
2
</view>
<view class="text">
填写维保单
</view>
</view>
<view class="li">
<view class="icon">
3
</view>
<view class="text">
结算审核
</view>
</view>
</view>
<view class="work-order-from">
<view class="li">
<view class="title">
工单编号
</view>
<input type="text" class="input" placeholder="" value="GD20211203-001" />
</view>
<view class="li">
<view class="title">
项目编号
</view>
<input type="text" class="input" placeholder="" value="XM20211203-001" />
</view>
<view class="li">
<view class="title">
项目名称
</view>
<input type="text" class="input input-black" placeholder="" value="湖南省林业科学院11楼会议室P2.5" />
</view>
<view class="li">
<view class="title">
产品类型
</view>
<input type="text" class="input input-black" placeholder="" value="Q2.5-E" />
</view>
<view class="li">
<view class="title">
安装位置
</view>
<input type="text" class="input input-black" placeholder="" value="详细地址+某某栋11楼会议室" />
</view>
<view class="li">
<view class="title">
故障类型
</view>
<input type="text" class="input input-black" placeholder="" value="供电不足" />
</view>
<view class="li">
<view class="title">
服务方式
</view>
<input type="text" class="input input-black" placeholder="" value="上门服务" />
</view>
<view class="li">
<view class="title">
故障说明
</view>
<textarea auto-height class="input input-black"
value="*********************************************************************************************************"
placeholder="" />
</view>
<view class="li">
<view class="title">
故障图片
</view>
<view class="input add-display">
<view class="">
<image class="img" src="../../static/del/微信图片_20220113152400.png" mode="aspectFill"></image>
<image class="img" src="../../static/del/微信图片_20220113152400.png" mode="aspectFill"></image>
</view>
<view class="add-img">
<image class="icon" src="../../static/iocn/jia.png" mode=""></image>
</view>
</view>
</view>
<view class="li">
<view class="title">
开始时间
</view>
<input type="text" class="input " placeholder="" value="2022-01-25 09:39" />
</view>
<view class="li">
<view class="title">
结束时间
</view>
<input type="text" class="input input-black" placeholder="" value="2022-01-25 15:30" />
</view>
<view class="li">
<view class="title">
维保用时
</view>
<input type="text" class="input " placeholder="" value="5小时51分钟" />
</view>
<view class="li">
<view class="title">
维保费用
</view>
<input type="text" class="input input-black" placeholder="" value="¥500.00元" />
</view>
<view class="li">
<view class="title">
等待时长
</view>
<input type="text" class="input " placeholder="" value="1天6小时35分钟" />
</view>
<view class="li">
<view class="title">
主维保人
</view>
<input type="text" class="input input-black" placeholder="" value="陈志远" />
</view>
<view class="li">
<view class="title">
更换配件
</view>
<view class="rideo">
</view>
</view>
</view>
<view class="work-order-from">
<view class="li">
<view class="title">
工作描述
</view>
<textarea auto-height class="input input-black"
value="*********************************************************************************************************"
placeholder="" />
</view>
<view class="li">
<view class="title">
维保图片
</view>
<view class="input add-display">
<view class="">
<image class="img" src="../../static/del/微信图片_20220113152400.png" mode="aspectFill"></image>
<image class="img" src="../../static/del/微信图片_20220113152400.png" mode="aspectFill"></image>
</view>
<view class="add-img">
<image class="icon" src="../../static/iocn/jia.png" mode=""></image>
</view>
</view>
</view>
<view class="li">
<view class="title">
故障原因
</view>
<textarea auto-height class="input input-black"
value="*********************************************************************************************************"
placeholder="" />
</view>
<view class="li">
<view class="title">
主维保人
</view>
<input type="text" class="input input-black" placeholder="" value="罗帅 陈志远" />
</view>
</view>
<button class="submit-button" type="default">签到</button>
</view>
</template>
<script>
import statusNav from '../../components/status-nav.vue';
import footTabOne from "../../components/foot-tabs/foot-tab-one.vue"
export default {
components: {
footTabOne,
statusNav
},
data() {
return {
}
},
methods: {
}
}
</script>
<style>
.content {
padding-top: 80rpx;
}
.submit-button {
width: 686rpx;
border-radius: 50rpx;
height: 90rpx;
background-color: #02A2ea;
line-height: 90rpx;
color: #FFFFFF;
margin-top: 60rpx;
text-align: center;
font-size: 30rpx;
}
.work-order-schedule {
display: flex;
padding: 22rpx 29rpx;
margin-top: 10rpx;
background-color: #FFFFFF;
justify-content: space-between;
}
.work-order-schedule .icon {
width: 38rpx;
height: 38rpx;
color: #FFFFFF;
margin: auto;
position: relative;
font-size: 24rpx;
margin-bottom: 10rpx;
text-align: center;
line-height: 38rpx;
background-color: #999999;
border-radius: 50%;
}
.work-order-schedule .on {
background-color: #5391F3
}
.work-order-schedule .text {
font-size: 24rpx;
color: #333333;
}
.work-order-schedule .icon-after::after {
content: "";
width: 265rpx;
height: 2rpx;
background-color: #999999;
position: absolute;
top: 19rpx;
left: 38rpx;
}
.work-order-from {
margin-top: 10rpx;
background-color: #FFFFFF;
}
.work-order-from .li {
display: flex;
padding: 20rpx 40rpx;
border-bottom: 2rpx solid #ececec;
}
.work-order-from .li .title {
font-size: 26rpx;
width: 133rpx;
}
.work-order-from .li .input {
font-size: 24rpx;
color: #8b8b8b;
flex: 1;
padding-left: 15rpx;
}
.work-order-from .li .input .img {
width: 169rpx;
height: 127rpx;
margin-right: 10rpx;
}
.work-order-from .li .input .add-img {
width: 136rpx;
height: 127rpx;
display: flex;
justify-content: center;
background-color: #DCDCDC;
align-items: center;
}
.work-order-from .li .input .add-img .icon {
width: 64rpx;
height: 64rpx;
}
.work-order-from .li .add-display {
display: flex;
}
.work-order-from .li .input-black {
color: #292929;
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
static/iocn/date.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
static/iocn/jia.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

BIN
static/iocn/tel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB