tangyi 2022-03-30 18:04:57 +08:00
commit 6cd2a00552
8 changed files with 869 additions and 1143 deletions

View File

@ -33,6 +33,8 @@
.width46{width: 46%;}
.width45{width: 45%;}
.width33{width: 33%;}
.width32{width: 32%;}
.width31{width: 31%;}
.width30{width: 30%;}
.width29{width: 29%;}
.width28{width: 28%;}
@ -48,6 +50,7 @@
.posixzy{position: fixed;left: 0;right: 0;z-index: 2;bottom: 0;}
.posia-op{position: absolute;top: 0;right: 0;left: 0;bottom: 0;opacity: 0;}
.syxzo{top: 0;left: 0;right: 0;bottom: 0;opacity: 0;}
.position-sticky{position: sticky;top: 40px;z-index: 2;}
.dis{display: flex;}

View File

@ -113,7 +113,7 @@ const tools = {
str = str.toFixed(2);
str = str+'';
}
return str.includes('.') ? str*1 : str = num + '.00';
return str.includes('.') ? str : str = num + '.00';
},
// type:+加、-减、*乘、/除
// len:小数后保留几位
@ -523,7 +523,7 @@ const tools = {
const res = uni.getSystemInfoSync();
if(res.platform=='ios'){
uni.makePhoneCall({
phoneNumber:phone,
phoneNumber:phone*1,
success: () => {},
fail: () => {}
})

View File

@ -77,7 +77,7 @@
this.$requst.post('/universal/api.login/password_find',params).then(res=>{
if(res.code==1) {
this.$toolAll.tools.showToast('找回成功');
setTimeout(()=>{uni.navigateBack({delta:1})},1000)
setTimeout(()=>{uni.navigateTo({url:'/pages/login/login'})},1000)
} else {
this.$toolAll.tools.showToast(res.msg);
}

View File

@ -437,9 +437,7 @@
},
//
callEv(){
uni.makePhoneCall({
phoneNumber: '15616330510'
})
this.$toolAll.tools.countCustomer('15616330510');
}
}
}

View File

@ -1,10 +1,10 @@
<template>
<view class="content" >
<statusNav returnColor="#c2c2c2" :navBarTitle="textTitle"></statusNav>
<statusNav returnColor="#c2c2c2" navBarTitle="工单详情"></statusNav>
<container-subgroup-two>
<view slot="content" style="margin:0rpx -25rpx; " :style="{paddingTop:statusBarHeight + 'px'}">
<view class="details-nav" :style="{top:statusBarHeighta + 'px'}">
<view class="li" @click="detailsNavpa(index)" :class="item.state?'on':''"
<view slot="content" style="margin:-30rpx -30rpx 0 -30rpx;">
<view class="details-nav" :style="{top:statusBarHeight + 'px'}">
<view class="li pad-sx36" @click="detailsNavpa(index)" :class="item.state?'on':''"
v-for="(item,index) in detailsNav">
{{item.title}}
</view>
@ -15,455 +15,258 @@
<view class="swiper-item uni-bg-red">
<view id="swi1">
<view class="work-order-from">
<view class="state">
状态待维修
</view>
<view class="state" :style="{backgroundColor: statusColor}">状态{{statusText}}</view>
<view class="li">
<view class="title">
工单编号
</view>
<input type="text" class="input" placeholder="" value="GD20211203-001" />
<view class="title">工单编号</view>
<input type="text" disabled class="input" placeholder="" value="GD20211203-001" />
</view>
<view class="li">
<view class="title">
项目编号
</view>
<input type="text" class="input" placeholder="" value="GD20211203-001" />
<view class="title">项目编号</view>
<input type="text" disabled class="input" placeholder="" value="GD20211203-001" />
</view>
<view class="li">
<view class="title">
项目名称
</view>
<input type="text" class="input input-black" placeholder=""
value="湖南省林业科学院11楼会议室P2.5" />
<view class="title">项目名称</view>
<input type="text" disabled class="input input-black" placeholder="" value="湖南省林业科学院11楼会议室P2.5" />
</view>
<view class="li">
<view class="title">
产品类型
</view>
<input type="text" class="input" placeholder="" value="Q2.5-E" />
<view class="title">产品类型</view>
<input type="text" disabled class="input" placeholder="" value="Q2.5-E" />
</view>
<view class="li">
<view class="title">
安装位置
</view>
<input type="text" class="input" placeholder="" value="详细地址+某某栋11楼会议室" />
<view class="title">安装位置</view>
<input type="text" disabled class="input" placeholder="" value="详细地址+某某栋11楼会议室" />
</view>
<view class="li">
<view class="title">
故障类型
</view>
<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 class="title">紧急程度</view>
<input type="text" disabled class="input" placeholder="" value="紧急" />
</view>
<view class="li">
<view class="title">
故障说明
</view>
<textarea auto-height class="input"
<view class="title">故障说明</view>
<textarea auto-height disabled class="input"
value="*********************************************************************************************************"
placeholder="" />
</view>
<view class="li">
<view class="title">
故障图片
</view>
<view class="title">故障图片</view>
<view class="input">
<image class="img" src="../../static/del/img001.png" mode="aspectFill">
</image>
<image class="img" src="../../static/del/img001.png" mode="aspectFill">
</image>
<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>
</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 class="title"> </view>
<input type="text" disabled class="input" placeholder="" value="林某" />
</view>
<view class="li">
<view class="title">
服务方式
</view>
<input type="text" class="input input-black" placeholder="" value="上门服务" />
<view class="title">报单时间</view>
<input type="text" disabled class="input" placeholder="" value="2021/12/3 12:00:05" />
</view>
<view class="li">
<view class="title">
定位地址
<view class="title">服务方式</view>
<input type="text" disabled class="input input-black" placeholder="" value="上门服务" />
</view>
<input type="text" class="input" placeholder=""
value="*******************************" />
<view class="li">
<view class="title">定位地址</view>
<input type="text" disabled class="input" placeholder="" value="*******************************" />
</view>
</view>
</view>
</view>
</swiper-item>
<swiper-item>
<view class="swiper-item uni-bg-green">
<view id="swi2">
<view class="work-order-from">
<view class="state" style="background-image: url(../../static/iocn/swi2.png);">
状态已完成
<view class="state" :style="{backgroundColor: statusColor}">状态{{statusText}}</view>
<view class="li">
<view class="title">开始时间</view>
<input type="text" disabled class="input " placeholder="" value="2022-01-25 09:39" />
</view>
<view class="li">
<view class="title">
开始时间
</view>
<input type="text" class="input " placeholder="" value="2022-01-25 09:39" />
<view class="title">结束时间</view>
<input type="text" disabled class="input " placeholder="" value="2022-01-25 15:30" />
</view>
<view class="li">
<view class="title">
结束时间
</view>
<input type="text" class="input " placeholder="" value="2022-01-25 15:30" />
<view class="title">维保用时 </view>
<input type="text" disabled class="input input-black" placeholder="" value="5小时51分钟" />
</view>
<view class="li">
<view class="title">
维保用时
</view>
<input type="text" class="input input-black" placeholder="" value="5小时51分钟" />
</view>
<view class="li">
<view class="title">
维保费用
</view>
<input type="text" class="input " placeholder="" value="¥500.00元" />
<view class="title">维保费用</view>
<input type="text" disabled class="input " placeholder="" value="¥500.00元" />
</view>
<view class="li">
<view class="title">
等待时长
</view>
<input type="text" class="input " placeholder="" value="1天6小时35分钟" />
<view class="title">等待时长</view>
<input type="text" disabled class="input " placeholder="" value="1天6小时35分钟" />
</view>
<view class="li">
<view class="title">
主维保人
</view>
<input type="text" class="input " placeholder="" value="陈志远" />
<view class="title">主维保人</view>
<input type="text" disabled class="input " placeholder="" value="陈志远" />
</view>
<view class="li">
<view class="title">
更换配件
</view>
<view class="title">更换配件</view>
<view class="rideo">
<view class="isrideo" @click="isrideoFun(true)">
<view class="isrideo">
<view class="icon " :class="isrideo?'on':''">
<view class="icon-content">
<view class="icon-content"></view>
</view>
<view class=""></view>
</view>
<view class="">
</view>
</view>
<view class="isrideo" @click="isrideoFun(false)">
<view class="isrideo">
<view class="icon" :class="isrideo?'':'on'">
<view class="icon-content">
<view class="icon-content"></view>
</view>
</view>
<view class="">
<view class=""></view>
</view>
</view>
</view>
</view>
<view class="li">
<view class="title">
工作描述
</view>
<textarea auto-height class="input "
<view class="title">工作描述</view>
<textarea auto-height disabled class="input "
value="*********************************************************************************************************"
placeholder="" />
</view>
<view class="li">
<view class="title">
维保图片
</view>
<view class="title">维保图片</view>
<view class="input add-display">
<view class="">
<image class="img" src="../../static/del/img001.png" mode="aspectFill">
</image>
<image class="img" src="../../static/del/img001.png" mode="aspectFill">
</image>
<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>
</view>
<view class="li">
<view class="title">
故障原因
</view>
<textarea auto-height class="input "
<view class="title">故障原因</view>
<textarea auto-height disabled class="input "
value="*********************************************************************************************************"
placeholder="" />
</view>
<view class="li">
<view class="title">
维保人员
</view>
<input type="text" class="input " placeholder="" value="罗帅 陈志远" />
<view class="title">维保人员 </view>
<input type="text" disabled class="input " placeholder="" value="罗帅 陈志远" />
</view>
</view>
</view>
</view>
</swiper-item>
<swiper-item>
<view class="swiper-item uni-bg-blue">
<view id="swi3">
<view class="change-accessory">
<view class="state" style="background-image: url(../../static/iocn/siw3.png);">
状态待结算
</view>
<view class="state" :style="{backgroundColor: statusColor}">状态{{statusText}}</view>
<view class="list">
<view class="li">
<image class="img" src="../../static/del/img001.png" mode="aspectFill">
</image>
<image class="img" src="../../static/del/img001.png" mode="aspectFill" lazy-load></image>
<view class="text-content">
<view class="title">
<view class="text clips1">
全彩LED显示屏电源
</view>
<view class="date">
1011-1
</view>
</view>
<view class="text">
配件品牌华鑫电源
</view>
<view class="text">
规格型号5A-75B
</view>
<view class="text">
使用数量1
<view class="text clips1">全彩LED显示屏电源</view>
<view class="date">1011-1</view>
</view>
<view class="text">配件品牌华鑫电源</view>
<view class="text">规格型号5A-75B</view>
<view class="text">使用数量1</view>
</view>
</view>
<view class="li">
<image class="img" src="../../static/del/img001.png" mode="aspectFill">
<image class="img" src="../../static/del/img001.png" mode="aspectFill" lazy-load>
</image>
<view class="text-content">
<view class="title">
<view class="text clips1">
全彩LED显示屏电源
</view>
<view class="date">
1011-1
</view>
</view>
<view class="text">
配件品牌华鑫电源
</view>
<view class="text">
规格型号5A-75B
</view>
<view class="text">
使用数量1
<view class="text clips1">全彩LED显示屏电源</view>
<view class="date">1011-1</view>
</view>
<view class="text">配件品牌华鑫电源</view>
<view class="text">规格型号5A-75B</view>
<view class="text">使用数量1</view>
</view>
</view>
<view class="li">
<image class="img" src="../../static/del/img001.png" mode="aspectFill">
</image>
<image class="img" src="../../static/del/img001.png" mode="aspectFill" lazy-load></image>
<view class="text-content">
<view class="title">
<view class="text clips1">
全彩LED显示屏电源
<view class="text clips1">全彩LED显示屏电源</view>
<view class="date">1011-1</view>
</view>
<view class="date">
1011-1
</view>
</view>
<view class="text">
配件品牌华鑫电源
</view>
<view class="text">
规格型号5A-75B
</view>
<view class="text">
使用数量1
<view class="text">配件品牌华鑫电源</view>
<view class="text">规格型号5A-75B</view>
<view class="text">使用数量1</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</swiper-item>
<swiper-item>
<view class="swiper-item uni-bg-blue">
<view id="swi4">
<view class="course-nav">
<view class="state">
状态待维修
</view>
<view class="date">
报修时间2022年02月10日
</view>
<view class="state" :style="{backgroundColor: statusColor}">状态{{statusText}}</view>
<view class="date">报修时间2022年02月10日</view>
<view class="code">
<view class="">
工单编号1254635996212345
</view>
<view class="btn" @click="copy('1254635996212345')">
复制
<view class="">工单编号1254635996212345</view>
<view class="btn" @click="copy('1254635996212345')"></view>
</view>
</view>
</view>
<view class="course-content">
<view class="record-content">
<view class="title">
过程追踪
</view>
<view class="title">过程追踪</view>
<view class="list">
<view class="li on">
<view class="icon">
<view class="icon-con">
</view>
<view class="icon-con"></view>
</view>
<view class="con">
<view class="text clips2">
维修中工号00234工程师将于16:00到达现场为您 服务
</view>
<view class="date">
2020-06-15 1530
</view>
<view class="text clips2">维修中工号00234工程师将于16:00到达现场为您 服务</view>
<view class="date">2020-06-15 1530</view>
</view>
</view>
<view class="li">
<view class="icon">
</view>
<view class="icon"></view>
<view class="con">
<view class="text clips1">
工程师已接单工号00234工程师已接单
</view>
<view class="date">
2020-06-15 14:30
</view>
<view class="text clips1">工程师已接单工号00234工程师已接单</view>
<view class="date">2020-06-15 14:30 </view>
</view>
</view>
<view class="li">
<view class="icon">
</view>
<view class="icon"></view>
<view class="con">
<view class="text">
黑屏故障 某某已处理
</view>
<view class="date">
2020-05-15 16:00
</view>
<view class="text"> 黑屏故障 某某已处理</view>
<view class="date"> 2020-05-15 16:00</view>
</view>
</view>
<view class="li">
<view class="icon">
</view>
<view class="icon"></view>
<view class="con">
<view class="text">
黑屏故障 某某已处理
</view>
<view class="date">
2020-05-15 16:00
</view>
<view class="text">黑屏故障 某某已处理</view>
<view class="date">2020-05-15 16:00</view>
</view>
</view>
<view class="li">
<view class="icon">
</view>
<view class="icon"></view>
<view class="con">
<view class="text">
黑屏故障 某某已处理
</view>
<view class="date">
2020-05-15 16:00
</view>
<view class="text">黑屏故障 某某已处理</view>
<view class="date">2020-05-15 16:00</view>
</view>
</view>
<view class="li">
<view class="icon">
</view>
<view class="icon"></view>
<view class="con">
<view class="text">
黑屏故障 某某已处理
</view>
<view class="date">
2020-05-15 16:00
</view>
<view class="text">黑屏故障 某某已处理</view>
<view class="date">2020-05-15 16:00</view>
</view>
</view>
<view class="li">
<view class="icon">
</view>
<view class="icon"></view>
<view class="con">
<view class="text">
黑屏故障 某某已处理
</view>
<view class="date">
2020-05-15 16:00
</view>
<view class="text">黑屏故障 某某已处理</view>
<view class="date">2020-05-15 16:00</view>
</view>
</view>
</view>
@ -494,9 +297,8 @@
return {
swiperCurrent: 0,
swiHeight:0,
statusBarHeight:uni.getSystemInfoSync().statusBarHeight + 30,
statusBarHeighta:uni.getSystemInfoSync().statusBarHeight + 30,
textTitle: "工单详情",
statusBarHeight:uni.getSystemInfoSync().statusBarHeight + 40,
statusText:'',
isrideo: true,
detailsNav: [{
title: "基础信息",
@ -522,11 +324,15 @@
mounted() {
const query = uni.createSelectorQuery().in(this);
query.select('#swi1').boundingClientRect(data => {
this.swiHeight = data.height - 100
}).exec();
this.detailsNavFun(0)
},
onLoad(op) {
console.log(op,333);
this.statusText = op.statusText;
this.statusColor = op.statusColor;
},
methods: {
isrideoFun(is) {
@ -556,28 +362,24 @@
console.log(data.detail.current)
if (data.detail.current == 0) {
this.textTitle = "工单详情"
const query = uni.createSelectorQuery().in(this);
query.select('#swi1').boundingClientRect(data => {
this.swiHeight = data.height
}).exec();
} else if (data.detail.current == 1) {
this.textTitle = "处理详情"
const query = uni.createSelectorQuery().in(this);
query.select('#swi2').boundingClientRect(data => {
this.swiHeight = data.height
}).exec();
} else if (data.detail.current == 2) {
this.textTitle = "工单详情"
const query = uni.createSelectorQuery().in(this);
query.select('#swi3').boundingClientRect(data => {
this.swiHeight = data.height
}).exec();
} else if (data.detail.current == 3) {
this.textTitle = "工单详情"
const query = uni.createSelectorQuery().in(this);
query.select('#swi4').boundingClientRect(data => {
@ -659,17 +461,15 @@
}
.state {
/* background-color:
*/
text-align: center;
line-height: 48rpx;
width: 164rpx;
height: 54rpx;
background-image: url(../../static/iocn/sta.png);
border-radius: 0 20rpx 20rpx 0;
background-size: 100% 100%;
display: inline-block;
padding: 2rpx 20rpx 2rpx 16rpx;
height: 52rpx;
line-height: 52rpx;
border-radius: 0 25rpx 25rpx 0;
font-size: 24rpx;
color: #ffffff;
background-color: #dddddd;
box-shadow: 0rpx 6rpx 6rpx #999999;
}
.work-order-from .li .input-black {
@ -683,7 +483,7 @@
padding: 0 24rpx;
position: fixed;
position: sticky;
z-index: 2;
box-sizing: border-box;
width: 100%;
@ -694,9 +494,7 @@
.details-nav .li {
width: 130rpx;
padding-top: 60rpx;
font-size: 30rpx;
padding-bottom: 35rpx;
}
.details-nav .on {

View File

@ -10,6 +10,7 @@
<view class="xian"></view>
</view>
<view class="screen">
<!-- 筛选状态查询日期查询 -->
<picker @change="bindPickerChange" :value="workeOrderStatusIndex" :range="array" :range-key="'title'">
<view class="li">
<view class="text" v-if="workeOrderStatus!=''">{{workeOrderStatus}}</view>
@ -29,7 +30,8 @@
</view>
</view>
<view class="project-list">
<view class="li" @click="projectDetailsFun()" v-for="(item,index) in dataList" :key="index">
<!-- 列表循环体 -->
<view class="li" @click="projectDetailsFun(item.status,item.id,item.statusText,item.backgroundColor)" v-for="(item,index) in dataList" :key="index">
<view class="work-order-code">工单编号{{item.orderNum}}</view>
<view class="message">
<image class="img" src="../../static/del/img001.png" mode="aspectFill"></image>
@ -56,120 +58,13 @@
<image class="img" src="../../static/iocn/dz2.png" mode="aspectFill"></image>
<view class="text">{{item.address}}</view>
</view>
<view class="date" v-if="item.status!=8 && item.status!=9">
<!-- 订单不等于已完成和待回访并且访问人不是工程师 -->
<view @tap.stop="hurryUpEv(item.id)" class="date" v-if="item.status!=8 && item.status!=9 && role!=4">
催一催 <image class="img" src="../../static/iocn/ld.png" mode=""></image>
</view>
</view>
</view>
<!-- <view class="li" @click="projectDetailsFun()">
<view class="work-order-code">
工单编号222226666558
</view>
<view class="message">
<image class="img" src="../../static/del/img001.png" mode="aspectFill"></image>
<view class="text">
<view class="title">
<view class="text clips1">
长沙市望城区xxxxxx项目名称
</view>
<view class="icon icon1">
已完成
</view>
</view>
<view class="serial-number">
<view class="type">
#网络故障#
</view>
<view class="date">
已故障2小时37分
</view>
</view>
<view class="specification">
紧急程度<view class="text"> 加急
</view>
</view>
<view class="specification">
主负责人陈志远
</view>
<view class="installation-site clips2">
故障描述LED显示屏开机后闪屏不显示内容主控电
脑提示网络不通
</view>
</view>
</view>
<view class="project-list-address">
<view class="address clips2">
<image class="img" src="../../static/iocn/dz2.png" mode="aspectFill"></image>
<view class="text">
湖南省长沙市高新开发区谷园路109号像素大厦1205
</view>
</view>
<view class="date">
催一催 <image class="img" src="../../static/iocn/ld.png" mode=""></image>
</view>
</view>
</view>
<view class="li" @click="projectDetailsFun()">
<view class="work-order-code">
工单编号222226666558
</view>
<view class="message">
<image class="img" src="../../static/del/img001.png" mode="aspectFill"></image>
<view class="text">
<view class="title">
<view class="text clips1">
长沙市望城区xxxxxx项目名称
</view>
<view class="icon icon3">
等待派工
</view>
</view>
<view class="serial-number">
<view class="type">
#网络故障#
</view>
<view class="date">
已故障2小时37分
</view>
</view>
<view class="specification">
紧急程度<view class="text"> 加急
</view>
</view>
<view class="specification">
主负责人陈志远
</view>
<view class="installation-site clips2">
故障描述LED显示屏开机后闪屏不显示内容主控电
脑提示网络不通
</view>
</view>
</view>
<view class="project-list-address">
<view class="address clips2">
<image class="img" src="../../static/iocn/dz2.png" mode="aspectFill"></image>
<view class="text">
湖南省长沙市高新开发区谷园路109号像素大厦1205
</view>
</view>
<view class="date">
催一催 <image class="img" src="../../static/iocn/ld.png" mode=""></image>
</view>
</view>
</view>
-->
</view>
</view>
</container-subgroup-two>
@ -192,7 +87,7 @@
})
return {
statusBarHeight: uni.getSystemInfoSync().statusBarHeight + 40,
role: 4, // 1 2: 3: 4
role: 1, // 1 2: 3: 4
date: currentDate,
workeOrderStatus:'工单状态',
array: [
@ -216,6 +111,7 @@
orderNum:'222226666558',
title:'长沙市望城区xxxxxx项目名称',
status:1,
statusText:'待受理',
backgroundColor:'#ff0000',
faultType:'#网络故障#',
faultTime:'2小时37分',
@ -229,6 +125,7 @@
orderNum:'222226666558',
title:'长沙市望城区xxxxxx项目名称',
status:2,
statusText:'待指派',
backgroundColor:'#112233',
faultType:'#网络故障#',
faultTime:'2小时37分',
@ -242,6 +139,7 @@
orderNum:'222226666558',
title:'长沙市望城区xxxxxx项目名称',
status:3,
statusText:'待接单',
backgroundColor:'#ff00ff',
faultType:'#网络故障#',
faultTime:'2小时37分',
@ -255,6 +153,7 @@
orderNum:'222226666558',
title:'长沙市望城区xxxxxx项目名称',
status:4,
statusText:'待维修',
backgroundColor:'#303545',
faultType:'#网络故障#',
faultTime:'2小时37分',
@ -268,6 +167,7 @@
orderNum:'222226666558',
title:'长沙市望城区xxxxxx项目名称',
status:5,
statusText:'维修中',
backgroundColor:'#006677',
faultType:'#网络故障#',
faultTime:'2小时37分',
@ -281,6 +181,7 @@
orderNum:'222226666558',
title:'长沙市望城区xxxxxx项目名称',
status:6,
statusText:'待收款',
backgroundColor:'#669955',
faultType:'#网络故障#',
faultTime:'2小时37分',
@ -294,6 +195,7 @@
orderNum:'222226666558',
title:'长沙市望城区xxxxxx项目名称',
status:7,
statusText:'待审批',
backgroundColor:'#558899',
faultType:'#网络故障#',
faultTime:'2小时37分',
@ -307,6 +209,7 @@
orderNum:'222226666558',
title:'长沙市望城区xxxxxx项目名称',
status:8,
statusText:'已完成',
backgroundColor:'#336655',
faultType:'#网络故障#',
faultTime:'2小时37分',
@ -320,6 +223,7 @@
orderNum:'222226666558',
title:'长沙市望城区xxxxxx项目名称',
status:9,
statusText:'待回访',
backgroundColor:'#224455',
faultType:'#网络故障#',
faultTime:'2小时37分',
@ -337,18 +241,34 @@
if(this.workeOrderStatusIndex!=-1) this.workeOrderStatus = '';
},
methods: {
projectDetailsFun() {
if (this.role == 4) {
//
hurryUpEv(id) {
this.$toolAll.tools.showToast(`已催单成功`);
},
//
projectDetailsFun(status,id,statusText,statusColor) {
if (uni.getStorageSync('type_id')==4 && status == 3) {
//
uni.showModal({
cancelText:'取消',
cancelColor:'#999999',
confirmColor:'#03affb',
confirmText:'确认',
content:'确认接单',
success: (res) => {
if(res.confirm){
uni.navigateTo({
url: "/pages/workOrder/workOrder"
})
} else {
uni.navigateTo({
url: "/pages/workOrder/details"
url: `/pages/workOrder/workOrder?id=${id}`
})
}
}
})
} else {
//
uni.navigateTo({
url: `/pages/workOrder/details?id=${id}&status=${status}&statusText=${statusText}&statusColor=${statusColor}`
})
}
},
bindPickerChange(data) {
console.log(data)

View File

@ -1,221 +1,130 @@
<template>
<view class="content">
<statusNav returnColor="#c2c2c2" navBarTitle="处理工单"></statusNav>
<container-subgroup-two>
<view slot="content" 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 class="icon icon-after">1</view>
<view class="text">签到执行</view>
</view>
<view class="li">
<view class="icon icon-after">
2
</view>
<view class="text">
填写维保单
</view>
<view class="icon icon-after">2</view>
<view class="text">填写维保单</view>
</view>
<view class="li">
<view class="icon on">
3
</view>
<view class="text">
结算审核
<view class="icon on">3</view>
<view class="text">结算审核</view>
</view>
</view>
</view>
<view class="clearing-form">
<view class="title">
结算方式
</view>
<view class="title">结算方式</view>
<view class="clearing-form-content">
<view class="li" @click="clearingFormFun(index)" v-for="(item,index) in clearingForm">
<image class="icon" v-if="item.state" src="../../static/iocn/xuanz.png" mode=""></image>
<image class="icon" v-else src="../../static/iocn/xuan.png" mode=""></image>
<view class="li" @click="clearingFormFun(index)" v-for="(item,index) in clearingForm" :key="index">
<image class="icon" v-if="item.state" src="../../static/iocn/xuanz.png" mode="" lazy-load></image>
<image class="icon" v-else src="../../static/iocn/xuan.png" mode="" lazy-load></image>
{{item.title}}
</view>
</view>
</view>
<view class="work-order-from">
<picker mode="date" :value="date" @change="serveDate">
<picker mode="date" @change="serveDate">
<view class="serve-date">
<view class="text">
请选择服务时间
</view>
<view class="text" v-if="serviceTime==''"></view>
<view class="text" style="color: #000000;" v-else>{{serviceTime}}</view>
<image class="icon" src="../../static/iocn/jt.png" mode=""></image>
</view>
</picker>
<view class="total-cost">
<view class="li">
<view class="text">
上门费
</view>
<view class="price">
120.00
</view>
</view>
<view class="li">
<view class="text on">
税金
</view>
<view class="price">
120.00
</view>
<view class="text">上门费</view>
<view class="price">{{detailObj.doorToDoorFee}}</view>
</view>
<view class="li">
<view class="text">
材料费
</view>
<view class="price">
120.00
</view>
<view class="text on">税金</view>
<view class="price">{{detailObj.taxes}}</view>
</view>
<view class="li">
<view class="text">
其他费用
<view class="text">材料费</view>
<view class="price">{{detailObj.materialCost}}</view>
</view>
<view class="price">
120.00
<view class="li">
<view class="text">其他费用</view>
<view class="price">{{detailObj.otherCost}}</view>
</view>
</view>
</view>
<view class="total-price">
费用合计<text class="money">580.00</text>
费用合计<text class="money">{{totalPrice}}</text>
</view>
<picker @change="bindPickerChange" :value="index" :range="array">
<picker @change="bindPickerChange" :value="paymentModeIndex" :range="array">
<view class="serve-date">
<view class="text">
请选择付款方式
</view>
<image class="icon" src="../../static/iocn/jt.png" mode=""></image>
<view class="text" v-if="paymentMode==''"></view>
<view class="text" v-else style="color: #000000;">{{paymentMode}}</view>
<image class="icon" src="../../static/iocn/jt.png" mode="" lazy-load></image>
</view>
</picker>
<view class="is-invoice">
<view class="text">
是否开票
</view>
<view class="text">是否开票</view>
<view class="radio" @click="isInvoiceFun(true)">
<image v-if="isInvoice" src="../../static/iocn/xz.png" class="icon" mode=""></image>
<view v-else class="icon1">
</view>
<image v-if="isInvoice" src="../../static/iocn/xz.png" class="icon" mode="" lazy-load></image>
<view v-else class="icon1"></view>
<text></text>
</view>
<view class="radio" @click="isInvoiceFun(false)">
<image v-if="!isInvoice" src="../../static/iocn/xz.png" class="icon" mode=""></image>
<view v-else class="icon1">
</view>
<image v-if="!isInvoice" src="../../static/iocn/xz.png" class="icon" mode="" lazy-load></image>
<view v-else class="icon1"></view>
<text></text>
</view>
</view>
<view class="is-invoice">
<view class="text">
是否收款
</view>
<view class="text">是否收款</view>
<view class="radio" @click="isMoneyFun(true)">
<image v-if="isMoney" src="../../static/iocn/xz.png" class="icon" mode=""></image>
<view v-else class="icon1">
</view>
<image v-if="isMoney" src="../../static/iocn/xz.png" class="icon" mode="" lazy-load></image>
<view v-else class="icon1"></view>
<text></text>
</view>
<view class="radio" @click="isMoneyFun(false)">
<image v-if="!isMoney" src="../../static/iocn/xz.png" class="icon" mode=""></image>
<view v-else class="icon1">
</view>
<image v-if="!isMoney" src="../../static/iocn/xz.png" class="icon" mode="" lazy-load></image>
<view v-else class="icon1"></view>
<text></text>
</view>
</view>
<view class="customerSignature">
<view class="title">
客户签名
</view>
<view class="title">客户签名</view>
<view class='contents'>
<canvas class='firstCanvas' canvas-id="firstCanvas" @touchmove='move' @touchstart='start($event)'
@touchend='end' @touchcancel='cancel' @longtap='tap' disable-scroll='true' @error='error'>
<canvas class='firstCanvas' canvas-id="firstCanvas" @touchmove='move'
@touchstart='start($event)' @touchend='end' @touchcancel='cancel' @longtap='tap'
disable-scroll='true' @error='error'>
</canvas>
<!-- <button @click='clearClick'>清除</button> -->
<!-- <button @click='saveClick'>保存图片</button> -->
</view>
<view class="text" v-if="isCanvas">
请在此签名
<view class="text" v-if="isCanvas"></view>
</view>
</view>
<view class="money-receiving-code">
<view class="money-receiving-code" @tap="openCollectionCodeEv">
<view class="title">
<image src="../../static/iocn/shoukuan.png" class="icon" mode=""></image>
<view class="text">
微信支付宝等收款码
<image src="../../static/iocn/shoukuan.png" class="icon" mode="" lazy-load></image>
<view class="text">微信支付宝等收款码</view>
</view>
<image src="../../static/iocn/jt.png" mode="" class="img" lazy-load></image>
</view>
<view v-if="ifCollectionCode" :class="detailObj.collectionCode.length >= 3 ? 'disjbac' :'disac'" style="margin: 15rpx 0;">
<view class="width32 radius10" style="overflow: hidden;" :class="detailObj.collectionCode.length >= 3 ? '' :'mar-y20'" v-for="(item,index) in detailObj.collectionCode" :key="index">
<image :src="item" mode="aspectFill" class="width100" lazy-load style="vertical-align: middle;height: 240rpx;"></image>
</view>
</view>
<image src="../../static/iocn/jt.png" mode="" class="img"></image>
</view>
<view class="address">
<image class="icon" src="../../static/iocn/dizi.png" mode=""></image>
<view class="text ">
湖南省株洲市荷塘区红旗中路456号(五矿二十三冶)
<image class="icon" src="../../static/iocn/dizi.png" mode="" lazy-load></image>
<view class="text ">{{detailObj.address}}</view>
</view>
</view>
<view class="remark">
<view class="title">
备注内容
</view>
<textarea class="textarea" value="" placeholder="请输入备注内容" />
<view class="title">备注内容</view>
<textarea class="textarea" v-model="remarkText" placeholder="请输入备注内容" />
</view>
</view>
<button class="submit-button" type="default">提交审核</button>
<button class="submit-button" type="default" @tap="submitEv"></button>
</view>
</container-subgroup-two>
</view>
</template>
@ -223,6 +132,7 @@
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';
import {base64ToPath} from '@/jsFile/base64-src.js';
var content = null;
var touchs = [];
var canvasw = 0;
@ -242,32 +152,45 @@
},
data() {
return {
signImage: '',
date: "",
clearingForm: [{
title: '单次付费',
state: true,
},
{
title: '质保免费',
state: false,
},
{
title: '验收扫尾',
state: false,
},
{
title: '包年签单',
state: false,
},
clearingForm: [
{title: '单次付费',state: true,},
{title: '质保免费',state: false,},
{title: '验收扫尾',state: false,},
{title: '包年签单',state: false,},
],
isCanvas: true,
array: ['微信', '支付宝', '现金', '类型'],
isInvoice: true,
isMoney: true,
paymentModeIndex:0,
serviceTime:'' ,//
detailObj:{
doorToDoorFee:'120.09',
taxes:'120.20',
materialCost:'120.02',
otherCost:'121.03',
address:'湖南省株洲市荷塘区红旗中路456号(五矿二十三冶)',
collectionCode:[
'/static/del/500478055.png',
'/static/del/img001.png',
'/static/del/500478055.png',
]
},
paymentMode:'',//
isInvoice: true,//
isMoney: true,//
isCanvas: true,
signImage: '',//
ifCollectionCode:false,//
remarkText:'',//
saveTimer:null,//
flag:true//
}
},
computed:{
totalPrice() {
let prices = 0;
prices = this.$toolAll.tools.operationEv(this.detailObj.doorToDoorFee,this.detailObj.taxes,'+',2);
prices = this.$toolAll.tools.operationEv(prices,this.detailObj.materialCost,'+',2);
prices = this.$toolAll.tools.operationEv(prices,this.detailObj.otherCost,'+',2);
return this.$toolAll.tools.addXiaoShu(prices);
}
},
onLoad: function(options) {
@ -283,26 +206,68 @@
content.setLineJoin('round')
},
methods: {
//
submitEv() {
if(this.checkEmpty()) {
if(this.flag) {
this.flag = false;
let exist = this.clearingForm.findIndex(item=>item.state==true);
let params = {
a:this.clearingForm[exist].title,
b:this.serviceTime,
c:this.detailObj.doorToDoorFee,
d:this.detailObj.taxes,
e:this.detailObj.materialCost,
f:this.detailObj.otherCost,
g:this.totalPrice,
h:this.paymentMode,
i:this.isInvoice,
j:this.isMoney,
k:this.signImage,
m:this.remarkText
}
console.log(params);
}
}
},
//
checkEmpty(){
let result = false;
if(!this.serviceTime) {
this.$toolAll.tools.showToast('请选择服务时间');
} else if(!this.paymentMode) {
this.$toolAll.tools.showToast('请选择付款方式');
} else if(!this.signImage) {
this.$toolAll.tools.showToast('请签名');
} else {
result = true;
}
return result;
},
//
openCollectionCodeEv(){
this.ifCollectionCode = !this.ifCollectionCode;
},
clearingFormFun(index) {
for (var i = 0; i < this.clearingForm.length; i++) {
this.clearingForm[i].state = false
}
this.clearingForm[index].state = true
},
bindPickerChange(){
bindPickerChange(data) {
this.paymentModeIndex = data.detail.value;
this.paymentMode = this.array[this.paymentModeIndex];
},
serveDate(data) {
console.log(data)
this.serviceTime = data.detail.value;
},
isInvoiceFun(is) {
this.isInvoice = is
},
isMoneyFun(is) {
this.isMoney = is
},
//
//
start: function(e) {
@ -311,9 +276,8 @@
x: e.touches[0].x,
y: e.touches[0].y,
}
touchs.push(point);
clearTimeout(this.saveTimer);
},
//
move: function(e) {
@ -326,7 +290,6 @@
this.draw(touchs)
}
},
//
end: function(e) {
console.log("触摸结束" + e)
@ -334,23 +297,21 @@
for (let i = 0; i < touchs.length; i++) {
touchs.pop()
}
this.saveTimer = setTimeout(()=>{
this.saveClick();
},3000)
},
//
cancel: function(e) {
console.log("触摸取消" + e)
},
//
tap: function(e) {
console.log("长按手势" + e)
},
error: function(e) {
console.log("画布触摸错误" + e)
},
//
draw: function(touchs) {
let point1 = touchs[0]
@ -372,26 +333,20 @@
var that = this
uni.canvasToTempFilePath({
canvasId: 'firstCanvas',
success: function(res) {
//
console.log(res.tempFilePath)
//
that.signImage = res.tempFilePath
// base64
base64ToPath(res.tempFilePath).then(path => {
that.signImage = path;
console.log(that.signImage,308);
}).catch(error => {})
}
})
}
}
}
</script>
<style>
.submit-button {
width: 686rpx;
border-radius: 50rpx;
@ -514,7 +469,7 @@
}
.total-cost .li {
width: 355rpx;
width: 49%;
height: 80rpx;
padding: 0 14rpx;
background-color: #FFFFFF;
@ -624,7 +579,7 @@
.firstCanvas {
background-color: #FFFFFF;
width: 100%;
height: 250rpx;
height: 320rpx;
}
.contents image {

View File

@ -2,75 +2,81 @@
<view>
<status-nav navBarTitle="我的账户" returnColor="#c2c2c2"></status-nav>
<container-subgroup>
<view slot="content" style="margin: 0 -30rpx;">
<view class="disja tcenter bbot fon32">
<view slot="content" style="margin: -30rpx;">
<view class="disja tcenter bbot fon32 position-sticky pad-s30" style="background-color: #F5F5F5;">
<view @tap="switchStatus(true)" class="width50 pad-x30" :class="current ? 'account-active' : ''">我的账户</view>
<view @tap="switchStatus(false)" class="width50 pad-x30" :class="!current ? 'account-active' : ''">未结算工单</view>
</view>
<!-- 我的账户 -->
<view v-if="current">
<view class="bacf pad-sx30 mar-s20 mar-zy20 radius10" style="box-shadow: 0 5rpx 20rpx rgba(0,0,0,.2);">
<view class="bbot mar-zy20 disjbac pad-x30">
<view class="bacf pad-sx30 mar-s30 mar-zy20 radius10" style="box-shadow: 0 5rpx 20rpx rgba(0,0,0,.2);">
<view class="bbot mar-zy20 pad-x30 disjbac">
<view class="disjcac fc">
<view class="fon22 col9">账户总额()</view>
<view class="fon42 bold mar-s20">266.00</view>
<view class="fon42 bold mar-s20">{{capitalDetail.totalPrice}}</view>
</view>
<view class="disjcac fc">
<view class="fon22 col9">联系客服?</view>
<view class="fon26 mar-s10 account-btn">查看明细</view>
<view class="fon22 col9" @tap="callPhone">?</view>
<view @tap="checkDetailedEv" class="fon26 mar-s10 account-btn">查看明细</view>
</view>
</view>
<view class=" mar-zy20 disjbac pad-s30">
<view class="disjcac fc">
<view class="fon22 col9">工单费用()</view>
<view class="fon42 bold mar-s20">266.00</view>
<view class="fon42 bold mar-s20">{{capitalDetail.workOrderCost}}</view>
</view>
<view style="width: 2rpx;height: 120rpx;background-color: #dddddd;margin-top: -10rpx;margin-bottom: -10rpx;"></view>
<view class="disjcac fc">
<view class="fon22 col9">技术佣金()</view>
<view class="fon42 bold mar-s20">266.00</view>
<view class="fon42 bold mar-s20">{{capitalDetail.technicalCommission}}</view>
</view>
</view>
</view>
<!-- 收支明细 -->
<view class="pad-zy30">
<view class="account-detailed mar-s50 mar-x30">收支明细</view>
<view class="account-detailed mar-s50 mar-x30" :style="{color: ifDetail ? '#00a2e9' : '#000000'}">收支明细</view>
<view class="fon28 disjbac bold account-detailed-item" style="color: #222222;">
<view>金额</view>
<view>工单编号</view>
<view>方式</view>
<view>工单日期</view>
</view>
<view class="fon24 disjbac account-detailed-item mar-s20" v-for="(item,index) in 20" :key="index" style="color: #4c4c4c;">
<view class="clips1">-¥1088</view>
<view class="clips1">GD20220112-1001</view>
<view>现金</view>
<view class="clips1">2019-7-24</view>
<view class="fon24 disjbac account-detailed-item mar-s20" v-for="(item,index) in incomeExpensesList" :key="index" style="color: #4c4c4c;">
<view class="clips1">-¥{{item.prices}}</view>
<view class="clips1">{{item.workOrderNum}}</view>
<view>{{item.way}}</view>
<view class="clips1">{{item.date}}</view>
</view>
</view>
</view>
<!-- 未结算工单 -->
<view v-else class="mar-s20 pad-zy10">
<view class="bacf pad-sx20 pad-zy30 radius10 mar-x10" v-for="(item,index) in 10" :key="index">
<view v-else class="mar-s30 pad-zy10">
<view class="bacf pad-sx20 pad-zy30 radius10 mar-x10" v-for="(item,index) in unsettledList" :key="index">
<view class="fon28 disjbac">
<view class="col3">株洲市XXX项目名称</view>
<view class="col9">林小雨</view>
<view class="col3">{{item.title}}</view>
<view class="col9">{{item.name}}</view>
</view>
<view class="fon24 disjbac mar-sx10">
<view class="col9">工单编号GD20220112-1001</view>
<view style="color: #00a2e9;">故障类型模组故障</view>
<view class="col9">工单编号{{item.number}}</view>
<view style="color: #00a2e9;">故障类型{{item.type}}</view>
</view>
<view class="fon24">
<view class="col9 disac width100"><image src="/static/public/icon-account-time.png" mode="scaleToFill" style="width: 23rpx;height: 23rpx;" lazy-load class="pad-y10 flexs"></image>2022-01-12 13:25:16</view>
<view class="col9 disac width100">
<image src="/static/public/icon-account-time.png" mode="scaleToFill" style="width: 23rpx;height: 23rpx;" lazy-load class="pad-y10 flexs"></image>
{{item.date}}
</view>
</view>
<view class="fon26 disjbac mar-s10">
<view class="" style="color: #ff0000;">维保已完成</view>
<view class="fon36"><text style="font-size: 24rpx;"></text>260.0</view>
<view class="" style="color: #ff0000;">{{item.status}}</view>
<view class="fon36"><text style="font-size: 24rpx;"></text>{{item.priceo}}</view>
</view>
<view class="bbot" style="margin: 20rpx -30rpx;"></view>
<view class="fon24 col9 disac"><image src="/static/public/icon-account-address.png" mode="scaleToFill" style="width: 19rpx;height: 25rpx;" class="flexs mar-y10"></image>湖南省长沙市xx区1001栋6-12</view>
<view class="fon24 col9 disac">
<image src="/static/public/icon-account-address.png" mode="scaleToFill" style="width: 19rpx;height: 25rpx;" class="flexs mar-y10"></image>
{{item.address}}
</view>
<view class="dis fe">
<view class="unsettled-btn">去结算</view>
<view class="unsettled-btn" @tap="goSettlementEv(item.id)"></view>
</view>
</view>
</view>
@ -84,16 +90,62 @@
data() {
return {
current:true,
detailedList:[]
detailedList:[],
capitalDetail:{
totalPrice:'0.00', //
workOrderCost:'0.00', //
technicalCommission:'0.00' //
},
//
incomeExpensesList:[
{prices:'1088',workOrderNum:'GD20220112-1001',way:'现金',date:'2019-7-24'},
],
unsettledList:[
{id:1,title:'株洲市XXX项目名称',name:'林小雨',number:'GD20220112-1001',date:'2022-01-12 13:25:16',type:'模组故障',status:'维保已完成',address:'湖南省长沙市xx区1001栋6-12',priceo:'260.0'},
{id:2,title:'株洲市XXX项目名称',name:'林小雨',number:'GD20220112-1001',date:'2022-01-12 13:25:16',type:'模组故障',status:'维保已完成',address:'湖南省长沙市xx区1001栋6-12',priceo:'260.0'},
{id:3,title:'株洲市XXX项目名称',name:'林小雨',number:'GD20220112-1001',date:'2022-01-12 13:25:16',type:'模组故障',status:'维保已完成',address:'湖南省长沙市xx区1001栋6-12',priceo:'260.0'},
{id:4,title:'株洲市XXX项目名称',name:'林小雨',number:'GD20220112-1001',date:'2022-01-12 13:25:16',type:'模组故障',status:'维保已完成',address:'湖南省长沙市xx区1001栋6-12',priceo:'260.0'},
],
ifDetail:false
}
},
onLoad(op) {
op.index*1 ? this.current = false : this.current = true;
},
methods: {
//
goSettlementEv(id) {
uni.navigateTo({
url:`/pages/workOrder/workOrderThree?id=${id}`
})
},
//
switchStatus(status){
this.current = status;
uni.pageScrollTo({
scrollTop: 0,
duration:0
})
},
//
checkDetailedEv(){
this.ifDetail = true;
setTimeout(()=>{
this.ifDetail = false;
},2000)
const query = uni.createSelectorQuery().in(this);
query.select('.account-detailed').boundingClientRect(data => {
// console.log(data)
let targetLocation = data.top*1 - 102;
uni.pageScrollTo({
scrollTop: targetLocation,
duration:100
})
}).exec();
},
//
callPhone() {
this.$toolAll.tools.countCustomer('15616330510');
}
}
}