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

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全局 */
.padding{
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 {
width: 100%;

View File

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

View File

@ -86,7 +86,8 @@
}, {
"path": "pages/project/details",
"style": {
"navigationBarTitleText": ""
"navigationBarTitleText": "",
"navigationStyle": "custom" //
}
},
@ -102,6 +103,26 @@
, {
"path": "pages/feedback/feedback",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom", //
"enablePullDownRefresh": false
}
}
,{
"path" : "pages/workOrder/workOrder",
"style" :
{
"navigationBarTitleText": "",
"navigationStyle": "custom", //
"enablePullDownRefresh": false
}
}
,{
"path" : "pages/workOrder/workorderTwo",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}

View File

@ -1,11 +1,12 @@
<template>
<view>
<view class="content">
<statusNav navBarTitle="意见反馈"></statusNav>
<view class="opinion-type">
意见类型
</view>
<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}}
</view>
</view>
@ -26,18 +27,45 @@
</view>
<view class="feedback-approach">
<view class="feedback-tel">
<view class="feedback-con">
<image class="icon" src="../../static/iocn/tel.png" mode=""></image>
<view class="feedback-tel-con">
<view class="text">
服务监督电话
</view>
<view class="tel">
156 1566 0510
</view>
</view>
</view>
<view class="feedback-date">
<view class="feedback-con">
<image class="icon" src="../../static/iocn/date.png" mode=""></image>
</view>
<view class="feedback-tel-con">
<view class="text">
反馈受理时间
</view>
<view class="tel">
9:00 - 18:00
</view>
</view>
</view>
</view>
<button class="submit-button" type="default">提交反馈</button>
<footTabOne :current="3"></footTabOne>
</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 {
typeData: [{
@ -68,7 +96,12 @@
}
},
methods: {
opinionType(index){
for (var i = 0; i < this.typeData.length; i++) {
this.typeData[i].state=false
}
this.typeData[index].state=true
}
}
}
</script>
@ -77,7 +110,9 @@
page {
background-color: #F7F7F7;
}
.content{
padding-top: 76rpx;
}
.opinion-type {
width: 100%;
height: 80rpx;
@ -159,4 +194,46 @@
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>

View File

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

View File

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