flying-monkey/pages/workOrder/workorderTwo.vue

480 lines
16 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view class="content">
<statusNav navBarTitle="处理工单"></statusNav>
<container-subgroup-two>
<view slot="content" returnColor="#c2c2c2" style="margin: -20rpx -25rpx 0rpx;">
<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" disabled value="GD20211203-001" />
</view>
<view class="li">
<view class="title">项目编号</view>
<input type="text" class="input" disabled value="XM20211203-001" />
</view>
<view class="li">
<view class="title">项目名称</view>
<input type="text" class="input input-black" disabled value="湖南省林业科学院11楼会议室P2.5" />
</view>
<view class="li">
<view class="title">产品类型</view>
<input type="text" class="input input-black" disabled value="Q2.5-E" />
</view>
<view class="li">
<view class="title">安装位置</view>
<input type="text" class="input input-black" disabled value="详细地址+某某栋11楼会议室" />
</view>
<view class="li">
<view class="title">故障类型</view>
<input type="text" class="input input-black" disabled value="供电不足" />
</view>
<view class="li">
<view class="title">服务方式</view>
<input type="text" class="input input-black" disabled value="上门服务" />
</view>
<view class="li">
<view class="title">故障说明</view>
<textarea auto-height disabled class="input input-black" value="确实供电不足" />
</view>
<view class="li">
<view class="title">故障图片</view>
<view class="input add-display">
<view class="">
<image class="img" src="../../static/del/img001.png" mode="aspectFill" lazy-load></image>
<image class="img" src="../../static/del/img001.png" mode="aspectFill" lazy-load></image>
</view>
<!-- <view class="add-img">
<image class="icon" src="../../static/iocn/jia.png" mode="" lazy-load></image>
</view> -->
</view>
</view>
<view class="li">
<view class="title">开始时间</view>
<input type="text" disabled class="input" placeholder="请选择开始时间" />
</view>
<view class="li">
<view class="title">结束时间</view>
<input type="text" class="input input-black" placeholder="请选择结束时间" />
</view>
<view class="li">
<view class="title">维保用时</view>
<input type="text" disabled class="input " placeholder="(例:5小时51分钟)" />
</view>
<view class="li">
<view class="title">维保费用</view>
<input type="digit" disabled class="input input-black" placeholder="" />
</view>
<view class="li">
<view class="title">等待时长</view>
<input type="text" disabled class="input" placeholder="请填写等待时长" />
</view>
<view class="li">
<view class="title">主维保人</view>
<input type="text" disabled class="input input-black" value="陈志远" />
</view>
<view class="li">
<view class="title">更换配件</view>
<view class="rideo" style="margin-left: 14rpx;">
<view class="isrideo" @click="isrideoFun(true)">
<view class="icon " :class="isrideo?'on':''">
<view class="icon-content"></view>
</view>
<view class=""></view>
</view>
<view class="isrideo" @click="isrideoFun(false)">
<view class="icon" :class="isrideo?'':'on'">
<view class="icon-content"></view>
</view>
<view class=""></view>
</view>
</view>
</view>
</view>
<view class="work-order-from">
<view class="li">
<view class="title">工作描述</view>
<textarea maxlength="-1" class="input input-black line-h36" placeholder="请填写工作描述" style="height: 110rpx;" />
</view>
<view class="li">
<view class="title">维保图片</view>
<view class="input add-display">
<view class="posir" v-if="maintenanceImgList.length!=0" v-for="(item,index) in maintenanceImgList" :key="index">
<image class="img" :src="item" mode="aspectFill" lazy-load></image>
<i @tap="delImg(index)" class="icon icon-del-white posia" style="font-size: 24rpx;top: 10rpx;right: 20rpx;"></i>
</view>
<view class="add-img" @tap="chooseImg">
<image class="icon" src="../../static/iocn/jia.png" mode=""></image>
</view>
</view>
</view>
<view class="li">
<view class="title">故障原因</view>
<textarea maxlength="-1" class="input input-black line-h36" placeholder="请填写故障原因" style="height: 110rpx;" />
</view>
<view class="li">
<view class="title">维保人员</view>
<input type="text" class="input input-black" placeholder="请填写维保人员" />
</view>
</view>
<view class="cost-breakdown">
<view class="cost-breakdown-title">
<view class="title">费用明细</view>
<view @click="addMountingsList()" class="btn">添加配件</view>
</view>
</view>
<view class="cost-breakdown-content">
<view class="title">
<view class="li">序号</view>
<view class="li">配件名称</view>
<view class="li">数量</view>
<view class="li">价格</view>
</view>
<view class="text" v-for="(item,index) in accessoriesData">
<view class="li">{{item.id}}</view>
<view class="li">{{item.title}}</view>
<view class="li">{{item.num}}</view>
<view class="li">{{item.price}}元</view>
</view>
</view>
<button class="submit-button" @click="goWorkorderTwo()" type="default"></button>
</view>
</container-subgroup-two>
</view>
</template>
<script>
import statusNav from '../../components/status-nav.vue';
import footTabOne from "../../components/foot-tabs/foot-tab-one.vue"
import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue';
export default {
components: {
footTabOne,
statusNav,
containerSubgroupTwo
},
data() {
return {
isrideo: true,
accessoriesData: [{
id: 1,
title: "全彩LED显示屏接收卡",
num: 1,
price: "430"
},
{
id: 1,
title: "上门服务费",
num: 1,
price: "4310"
},
{
id: 1,
title: "全彩LED显示屏接收卡",
num: 1,
price: "430"
},
],
maintenanceImgList:[]
}
},
methods: {
// 维保图片选择
chooseImg(){
uni.chooseImage({
count:9,
sourceType:['album','camera'],
success: (res) => {
let imgsrc = res.tempFilePaths;
imgsrc.forEach(item=>{
this.maintenanceImgList.push(item);
})
}
})
},
// 删除维保图片
delImg(index) {
this.maintenanceImgList.splice(index,1);
},
isrideoFun(is) {
this.isrideo = is
},
goWorkorderTwo(){
uni.navigateTo({
url: "/pages/workOrder/workOrderThree"
})
},
addMountingsList() {
uni.navigateTo({
url: "/pages/mountingsList/mountingsList"
})
}
}
}
</script>
<style>
.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; */
width: 160rpx;
height: 127rpx;
margin-right: 10rpx;
}
.work-order-from .li .input .add-img {
/* width: 136rpx; */
width: 160rpx;
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;
flex-wrap: wrap;
}
.work-order-from .li .input-black {
color: #292929;
}
.cost-breakdown-title {
padding: 0rpx 40rpx;
display: flex;
justify-content: space-between;
margin-top: 40rpx;
}
.cost-breakdown-title .title {
font-size: 30rpx;
color: #222222;
display: flex;
margin-bottom: 28rpx;
align-items: center;
}
.cost-breakdown-title .title::before {
content: "";
display: block;
width: 4rpx;
height: 30rpx;
margin-right: 22rpx;
background-color: #00a2e9;
}
.cost-breakdown-title .btn {
color: #00a2e9;
text-align: center;
width: 118rpx;
height: 50rpx;
border-radius: 14rpx;
line-height: 50rpx;
text-align: center;
font-size: 26rpx;
border: 2rpx solid #00a2e9;
}
.cost-breakdown-content {
padding: 0rpx 40rpx;
}
.cost-breakdown-content .title {
display: flex;
margin-bottom: 40rpx;
justify-content: space-between;
}
.cost-breakdown-content .title .li {
font-size: 28rpx;
font-weight: bold;
color: #222222;
text-align: center;
}
.cost-breakdown-content .text {
display: flex;
margin-bottom: 40rpx;
justify-content: space-between;
}
.cost-breakdown-content .text .li {
color: #4c4c4c;
font-size: 28rpx;
text-align: center;
}
.cost-breakdown-content .text .li:nth-child(1) {
width: 80rpx;
}
.cost-breakdown-content .text .li:nth-child(2) {
flex: 1;
}
.cost-breakdown-content .text .li:nth-child(3) {
width: 80rpx;
}
.cost-breakdown-content .text .li:nth-child(4) {
width: 120rpx;
}
.cost-breakdown-content .title .li:nth-child(1) {
width: 80rpx;
}
.cost-breakdown-content .title .li:nth-child(2) {
flex: 1;
}
.cost-breakdown-content .title .li:nth-child(3) {
width: 80rpx;
}
.cost-breakdown-content .title .li:nth-child(4) {
width: 120rpx;
}
.work-order-from .rideo {
display: flex;
}
.work-order-from .isrideo {
display: flex;
align-items: center;
margin-right: 41rpx;
}
.work-order-from .isrideo .icon {
width: 26rpx;
border: 2rpx solid #818181;
border-radius: 50%;
height: 26rpx;
margin-right: 10rpx;
display: flex;
justify-content: center;
align-items: center;
}
.work-order-from .isrideo .icon .icon-content {
width: 19rpx;
height: 19rpx;
background-color: #818181;
border-radius: 50%;
}
.work-order-from .isrideo .on {
border: 2rpx solid #D81E06;
}
.work-order-from .isrideo .on .icon-content {
background-color: #D81E06
}
</style>