调用接口

master
chen 2022-07-25 18:26:45 +08:00
parent a838d4e8cc
commit 2ae75d60bd
18 changed files with 399 additions and 199 deletions

View File

@ -1,4 +1,4 @@
<script>
330606<script>
export default {
globalData:{
projectname:'', //

View File

@ -43,7 +43,7 @@ uni-radio .uni-radio-input {border: 1rpx solid #444444;}
position: absolute;right: 0;
top: 50%;
transform: translateY(-50%);
z-index: 1;
z-index: 10;
}
.clear-close {
position: relative;

17
package-lock.json generated
View File

@ -6,7 +6,22 @@
"packages": {
"": {
"name": "轮播视频和图片",
"version": "1.0.1"
"version": "1.0.1",
"dependencies": {
"@hyoga/uni-socket.io": "^3.0.4"
}
},
"node_modules/@hyoga/uni-socket.io": {
"version": "3.0.4",
"resolved": "https://registry.npmmirror.com/@hyoga/uni-socket.io/-/uni-socket.io-3.0.4.tgz",
"integrity": "sha512-m04M/ALXpTWcKoJGPDMzJosmzuopyAXF51DFN/qxLyXnbCFeQwsWOXT/XNLl4aWoBVGwQ7IptECFFRCA6z5C8A=="
}
},
"dependencies": {
"@hyoga/uni-socket.io": {
"version": "3.0.4",
"resolved": "https://registry.npmmirror.com/@hyoga/uni-socket.io/-/uni-socket.io-3.0.4.tgz",
"integrity": "sha512-m04M/ALXpTWcKoJGPDMzJosmzuopyAXF51DFN/qxLyXnbCFeQwsWOXT/XNLl4aWoBVGwQ7IptECFFRCA6z5C8A=="
}
}
}

View File

@ -7,5 +7,8 @@
"vue",
"swiper",
"zhuge"
]
}
],
"dependencies": {
"@hyoga/uni-socket.io": "^3.0.4"
}
}

View File

@ -319,6 +319,11 @@
"packages": ["pagesA"]
}
},
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示" //
}
},
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarBackgroundColor": "#FFFFFF", //

View File

@ -1,7 +1,7 @@
<template>
<view :style="{height: windowHeight+'px'}" style="overflow: hidden;">
<image :src="ad_img" mode="widthFix" style="width: 100%;"></image>
<view @tap="closeEv" class="disjcac count-box colf fon28 radius10" :style="{top:statuHeigh+10+'px'}">{{count}} 关闭</view>
<view @tap="closeEv" class="disjcac count-box colf fon28 radius10" :class="ifH5?'app-h5-count-box' :'wx-count-box'" :style="{top:ifH5 ? statuHeigh+10+'px' :''}">{{count}} 关闭</view>
</view>
</template>
@ -17,27 +17,46 @@
timeNum:3000,//
countTimer:null,//
timeNumTimer:null,//
omg:0//0 1
omg:0,//0 1
ifH5:0
}
},
onLoad() {
// #ifdef APP-PLUS || H5
this.ifH5 = true;
// #endif
// #ifdef MP-WEIXIN
this.ifH5 = false;
// #endif
this.checkContext();
this.$requst.get('/universal/api.other/advertise').then(res=>{
if(res.code) {
this.ad_img = res.data.ad_img;
this.countTimer = setInterval(()=>{
if(this.count > 1){
this.count--
}
},1000)
this.timeNumTimer = setTimeout(()=>{
this.goPage();
},this.timeNum)
// uni.setStorageSync('adImg',this.ad_img);
}
})
if(uni.getStorageSync('guideImg')){
this.ad_img = uni.getStorageSync('guideImg');
//
this.countDownEv();
} else {
this.$requst.get('/universal/api.other/advertise').then(res=>{
if(res.code) {
this.ad_img = res.data.ad_img;
uni.setStorageSync('guideImg',this.ad_img);
//
this.countDownEv();
// uni.setStorageSync('adImg',this.ad_img);
}
})
}
},
methods: {
//
countDownEv(){
this.countTimer = setInterval(()=>{
if(this.count > 1){
this.count--
}
},1000)
this.timeNumTimer = setTimeout(()=>{
this.goPage();
},this.timeNum)
},
//
closeEv(){
clearInterval(this.countTimer);
@ -85,7 +104,15 @@
.count-box{
background-color: rgba(0, 0, 0, .3);
padding: 16rpx 30rpx;
}
.app-h5-count-box{
position: fixed;
right: 20rpx;
}
.wx-count-box{
position: fixed;
bottom: 40rpx;
left: 50%;
transform: translateX(-50%);
}
</style>

View File

@ -19,19 +19,30 @@
richText:''//
}
},
onLoad(options) {
options.type*1 ? this.title = '飞猴隐私政策' : this.title = '飞猴用户服务协议';
this.checkAgreement(options.type);
onLoad(op) {
if(op.title){
this.title = op.title;
this.setAgreement(op.id);
} else {
op.type*1 ? this.title = '飞猴隐私政策' : this.title = '飞猴用户服务协议';
this.checkAgreement(op.type);
}
},
methods:{
checkAgreement(type){
console.log(type,26);
let url = type*1 ? '/universal/api.login/register_privacy_agreement' : '/universal/api.login/register_user_agreement';
this.$requst.post(url).then(res=>{
if(res.code==1) {
this.richText = this.$toolAll.tools.escape2Html(res.data.protocol);
} else this.$toolAll.tools.showToast(res.msg);
})
},
setAgreement(id){
this.$requst.get('/universal/api.settings/protocol',{id}).then(res=>{
if(res.code==1) {
this.richText = this.$toolAll.tools.escape2Html(res.data);
} else this.$toolAll.tools.showToast(res.msg);
})
}
}
}

View File

@ -248,14 +248,30 @@
'/pagesB/personal-information/personal-information',
'/pagesB/electronic-certificate/electronic-certificate',
'/pagesB/service-range/service-range',
'/pagesA/workOrder/workOrderLlsit?status=已完成&statusId=8',
'/pagesA/workOrder/workOrderLlsit?is_evaluate=1',
'/pagesB/my-account/my-account?index=0',
'/pagesB/set-up/set-up',
];
uni.navigateTo({
url: urls[index]
})
if(index==3){
if(uni.getStorageSync('type_id')==1 || uni.getStorageSync('type_id')==2){
uni.navigateTo({
url: urls[index]
})
} else {
this.$toolAll.tools.showToast('暂无权限');
}
} else {
uni.navigateTo({
url: urls[index]
})
}
},
//
goSetUp(){
uni.navigateTo({
url: '/pagesB/set-up/set-up'
})
}
}
}
</script>

View File

@ -239,6 +239,10 @@
import footTabOne from '@/components/foot-tabs/foot-tab-one.vue';
import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue';
import {getPlanType} from '@/jsFile/public-api.js';
// import io from '@hyoga/uni-socket.io';
// const socket = io('http://7and5.cn:2120', {
// transports: [ 'websocket']
// });
export default {
components:{
pitera,
@ -294,7 +298,7 @@
workOrderList:[
{imgsrc:'/static/public/icon-home-abnormalSingle.png',title:'异常单',num:0,id:100},
{imgsrc:'/static/public/icon-home-overdueSingle.png',title:'逾期单',num:0,id:101},
{imgsrc:'/static/public/icon-home-overtime.png',title:'超时单 ',num:0,id:0},
// {imgsrc:'/static/public/icon-home-overtime.png',title:' ',num:0,id:0},
{imgsrc:'/static/public/icon-home-workOrderPool.png',title:'工单池',num:0,id:0},
],
//
@ -357,21 +361,40 @@
this.project_count = homeObj.project_count;//
this.project_error_count = homeObj.project_error_count;//
this.projectRepairList[0].num = homeObj.pending_order_count; //
this.projectRepairList[1].num = homeObj.pending_count; //
this.projectRepairList[2].num = homeObj.under_repair_count; //
this.workOrderList[0].num = homeObj.abnormal_order_count; //
this.workOrderList[1].num = homeObj.overdue_order_count; //
this.workOrderList[2].num = homeObj.time_out_order_count; //
this.workOrderList[3].num = homeObj.work_order_count; //
this.settlementList[0].num = homeObj.pending_payment_count; //
this.settlementList[1].num = homeObj.paid_for_count; //
this.stayEventList[0].num = homeObj.approval_count; //
this.stayEventList[1].num = homeObj.pending_payment_count; //
switch (this.role){
// ||
case 1 || 2:
this.repairList[1].num = homeObj.upcoming_count;
break;
//
case 3:
//
this.stayWorkOrderList[1].num = homeObj.pending_designate_count;
this.stayWorkOrderList[2].num = homeObj.pending_repair_count;
this.stayWorkOrderList[3].num = homeObj.pending_return_visit_count;
//
this.stayEventList[0].num = homeObj.approval_count;
this.stayEventList[1].num = homeObj.pending_payment_count;
//
this.workOrderList[0].num = homeObj.abnormal_order_count;
this.workOrderList[1].num = homeObj.overdue_order_count;
this.workOrderList[2].num = homeObj.work_order_count;
break;
//
case 4:
//
this.projectRepairList[0].num = homeObj.pending_order_count; //
this.projectRepairList[1].num = homeObj.pending_count; //
this.projectRepairList[2].num = homeObj.under_repair_count; //
//
this.workOrderList[0].num = homeObj.abnormal_order_count; //
this.workOrderList[1].num = homeObj.overdue_order_count; //
this.workOrderList[2].num = homeObj.work_order_count; //
//
this.settlementList[0].num = homeObj.pending_payment_count; //
this.settlementList[1].num = homeObj.paid_for_count; //
break;
}
//
// if(homeObj.notice.length) {
// homeObj.notice.forEach(item=>{
@ -439,7 +462,10 @@
url:faultRepairUrls[index]
})
} else {
this.$toolAll.tools.showToast('已催单成功')
// this.$toolAll.tools.showToast('')
uni.navigateTo({
url:`/pagesA/workOrder/workOrderLlsit`
})
}
},
//

View File

@ -11,11 +11,13 @@
<view class="peopleManagement-content pad-x50">
<view class="li" v-for="(item,index) in dataList">
<view class="head">
<view class="name" @click="listStateFun(item)">
<!-- 选中 -->
<view class="icon" v-if="!item.state"></view>
<!-- 未选中 -->
<image class="iconImg" v-else src="../../static/iocn/pxz.png" mode=""></image>
<view class="name">
<view class="" v-if="order_id" @click="listStateFun(item)">
<!-- 选中 -->
<view class="icon" v-if="!item.state"></view>
<!-- 未选中 -->
<image class="iconImg" v-else src="../../static/iocn/pxz.png" mode=""></image>
</view>
<view class="">
{{item.name}}<text :class="item.isJob ? 'cor' : 'cor1'">({{item.isJob ? '正在作业' : '空闲中'}})</text>
</view>
@ -23,13 +25,13 @@
<view class="state">{{['未审核','已审核'][item.is_check]}}</view>
</view>
<view class="con">
<image class="img" :src="item.imgsrc" mode="aspectFill"></image>
<image class="img" :src="item.avatar" mode="aspectFill"></image>
<view class="text scal09">
<view class="code">
<view class="">编号: {{item.number}}</view>
<view class="iconCon">
<view v-for="(item1,index) in 5">
<image class="icon" v-if="index < item.rate" src="../../static/iocn/6.png" mode="aspectFill" ></image>
<image class="icon" v-if="index < item.starlevel*1" src="../../static/iocn/6.png" mode="aspectFill" ></image>
<image class="icon" v-else src="../../static/iocn/7.png" mode="aspectFill" ></image>
</view>
</view>
@ -53,7 +55,7 @@
</view>
<pitera v-if="total == dataList.length && dataList.length" textStr="暂无更多人员列表"></pitera>
<nothing-page v-if="!dataList.length" content="暂无人员状态数据"></nothing-page>
<button class="submit-button" type="default" :style="{display: tianxuan ? 'flex' : 'none'}">派发工单</button>
<button class="submit-button" type="default" @click="sellEv" :style="{display: tianxuan ? 'flex' : 'none'}">派发工单</button>
</view>
</container-subgroup-two>
</view>
@ -80,7 +82,8 @@
page:1,
list_rows:20,
total:0,
tianxuan:''
tianxuan:'',
order_id:'',//id
}
},
onReachBottom() {
@ -89,7 +92,10 @@
this.checkList();
}
},
onLoad() {
onLoad(op) {
if(op.orderId){
this.order_id = op.orderId;
}
this.checkList();
},
methods: {
@ -128,6 +134,19 @@
}
})
},
//
sellEv(){
this.$requst.post('/universal/api.order/dispatch',{order_id:this.order_id,uid:this.tianxuan}).then(res=>{
if(res.code){
this.$toolAll.tools.showToast('派单成功');
setTimeout(()=>{
uni.navigateBack({
delta:1
})
},1000)
}
})
},
//
callEv() {
this.page = 1;
@ -138,7 +157,6 @@
this.dataList.forEach(item1=>{item1.state = false})
item.state = !item.state;
item.state ? this.tianxuan = item.id : '';
console.log(this.tianxuan);
}
}
}

View File

@ -17,34 +17,34 @@
<view id="swi1">
<view class="work-order-from">
<view class="state" :style="{backgroundColor: statusColor}">状态{{statusText}}</view>
<view class="li" style="margin-top: 20rpx;">
<view class="li disac" style="margin-top: 20rpx;">
<view class="title">工单编号</view>
<input type="text" disabled class="input" :value="detailObj.order_number" />
</view>
<view class="li">
<view class="li disac">
<view class="title">项目编号</view>
<input type="text" disabled class="input" :value="detailObj.project_number" />
</view>
<view class="li">
<view class="li disac">
<view class="title">项目名称</view>
<input type="text" disabled class="input input-black"
:value="detailObj.project_name" />
</view>
<view class="li">
<view class="li disac">
<view class="title">产品类型</view>
<input type="text" disabled class="input" :value="detailObj.product_type" />
</view>
<view class="li">
<view class="li disac">
<view class="title">安装位置</view>
<input type="text" disabled class="input"
:value="detailObj.installation_location" />
</view>
<view class="li">
<view class="li disac">
<view class="title">维保类型</view>
<input type="text" disabled class="input" :value="detailObj.fault_type" />
</view>
<view class="li">
<view class="li disac">
<view class="title">紧急程度</view>
<input type="text" disabled class="input"
:value="detailObj.emergency_level_view" />
@ -62,20 +62,20 @@
</view>
</view>
<view class="work-order-from">
<view class="li">
<view class="li disac">
<view class="title"> </view>
<input type="text" disabled class="input" :value="detailObj.order_contact" />
</view>
<view class="li">
<view class="li disac">
<view class="title">报单时间</view>
<input type="text" disabled class="input" :value="detailObj.order_times" />
</view>
<view class="li">
<view class="li disac">
<view class="title">服务方式</view>
<input type="text" disabled class="input input-black"
:value="detailObj.service_method_view" />
</view>
<view class="li">
<view class="li disac">
<view class="title">定位地址</view>
<input type="text" disabled class="input" :value="detailObj.service_address" />
</view>
@ -91,35 +91,35 @@
<view id="swi2">
<view class="work-order-from">
<view class="state" :style="{backgroundColor: statusColor}">状态{{statusText}}</view>
<view class="li" style="margin-top: 20rpx;">
<view class="li disac" style="margin-top: 20rpx;">
<view class="title">开始时间</view>
<input type="text" disabled class="input " :value="handleDetail.start_times" />
</view>
<view class="li">
<view class="li disac">
<view class="title">结束时间</view>
<input type="text" disabled class="input "
:value="handleDetail.completion_times" />
</view>
<view class="li">
<view class="li disac">
<view class="title">维保用时 </view>
<input type="text" disabled class="input input-black"
:value="handleDetail.maintenance_time" />
</view>
<view class="li">
<view class="li disac">
<view class="title">维保费用</view>
<input type="text" disabled class="input "
:value="`¥${handleDetail.pay_price}元`" />
</view>
<view class="li">
<view class="li disac">
<view class="title">等待时长</view>
<input type="text" disabled class="input " :value="handleDetail.waiting_time" />
</view>
<view class="li">
<view class="li disac">
<view class="title">主维保人</view>
<input type="text" disabled class="input "
:value="handleDetail.maintenance_name" />
</view>
<view class="li">
<view class="li disac">
<view class="title">更换配件</view>
<view class="rideo">
<view class="isrideo">
@ -151,12 +151,12 @@
</view>
</view>
</view>
<view class="li">
<view class="li disac">
<view class="title">维保原因</view>
<textarea auto-height disabled class="input "
:value="handleDetail.failure_reason" />
</view>
<view class="li">
<view class="li disac">
<view class="title">维保人员 </view>
<input type="text" disabled class="input "
:value="handleDetail.maintenance_more" />
@ -307,6 +307,8 @@
this.$requst.get('/universal/api.order/order_info', params).then(res => {
console.log(res.data,'工单详情')
if (res.code) {
this.statusText = res.data.btn.attributes.text;
this.statusColor = res.data.btn.attributes.color;
switch (type) {
case 1:
this.detailObj = res.data;

View File

@ -18,37 +18,37 @@
</view>
</view>
<view class="work-order-from">
<view class="li">
<view class="li disac">
<view class="title flexs">工单编号</view>
<input type="text" disabled class="input" :value="targetObj.workOrderNo" />
</view>
<view class="li">
<view class="li disac">
<view class="title flexs">项目编号</view>
<input type="text" disabled class="input" :value="targetObj.projectNo" />
</view>
<view class="li">
<view class="li disac">
<view class="title flexs">项目名称</view>
<input type="text" disabled class="input input-black" :value="targetObj.projectName" />
</view>
<view class="li">
<view class="li disac">
<view class="title flexs">产品类型</view>
<!-- <input type="text" disabled class="input" v-model="targetObj.productType" placeholder="请填写产品类型" :style="{color: targetObj.productType!='' ? '#000' : ''}" /> -->
<picker class="input input-black" mode="selector" :value="productIndex" :range="productTypeList" :range-key="'name'" @change="changePicker(0,$event)">
<view>{{productTypeList[productIndex].name}}</view>
</picker>
</view>
<view class="li">
<view class="li disac">
<view class="title flexs">安装位置</view>
<input type="text" class="input" v-model="targetObj.installLocation" placeholder="请填写安装位置(例:详细地址+某某栋11楼会议室)" :style="{color: targetObj.installLocation!='' ? '#000' : ''}" />
</view>
<view class="li">
<view class="li disac">
<view class="title flexs">维保类型</view>
<!-- <input type="text" disabled class="input" v-model="targetObj.faultType" placeholder="请填写维保类型(例:供电不足)" :style="{color: targetObj.faultType!='' ? '#000' : ''}" /> -->
<picker class="input input-black" mode="selector" :value="faultIndex" :range="faultTypeList" :range-key="'name'" @change="changePicker(1,$event)">
<view>{{faultTypeList[faultIndex].name}}</view>
</picker>
</view>
<view class="li">
<view class="li disac">
<view class="title flexs">紧急程度</view>
<input type="text" disabled class="input" placeholder="" :value="targetObj.urgentDegree" />
</view>
@ -69,22 +69,22 @@
</view>
</view>
<view class="work-order-from">
<view class="li">
<view class="li disac">
<view class="title flexs"> </view>
<input type="text" style="margin-left: 14rpx;" disabled class="input" placeholder="" :value="targetObj.reporter" />
</view>
<view class="li">
<view class="li disac">
<view class="title flexs">报单时间</view>
<input type="text" disabled disabled class="input" placeholder="" :value="targetObj.declarationTime" />
</view>
<view class="li">
<view class="li disac">
<view class="title flexs">服务方式</view>
<!-- <input type="text" disabled v-model="targetObj.serviceMode" class="input input-black" placeholder="请填写服务方式(例:上门服务)" :style="{color: targetObj.serviceMode!='' ? '#000' : ''}" /> -->
<picker class="input input-black" mode="selector" :value="serviceModeIndex" :range="serviceModeList" :range-key="'name'" @change="changePicker(2,$event)">
<view>{{serviceModeList[serviceModeIndex].name}}</view>
</picker>
</view>
<view class="li" @tap="getAddress">
<view class="li disac" @tap="getAddress">
<view class="title flexs">定位地址</view>
<input type="text" disabled class="input" :value="targetObj.address" />
</view>

View File

@ -4,24 +4,24 @@
<container-subgroup-two>
<view slot="content" style="margin: 0 -30rpx;" class="bacf">
<view class="work-order-audit">
<view class="item">
<view class="item disac">
<view class="title">工单编号</view>
<input type="text" disabled class="input" :value="auditData.order_number" />
</view>
<view class="item">
<view class="item disac">
<view class="title">项目名称</view>
<input type="text" disabled class="input input-black" :value="auditData.project_name" />
</view>
<view class="item">
<view class="item disac">
<view class="title">客户名称</view>
<input type="text" disabled class="input input-black" :value="auditData.member_name" />
</view>
<view class="item">
<view class="son">
<view class="son disac">
<view class="title">结算方式</view>
<input type="text" disabled class="input" :value="auditData.settlement_type" />
</view>
<view class="son">
<view class="son disac">
<view class="title">支付方式</view>
<input type="text" disabled class="input" :value="auditData.pay_type" />
</view>
@ -29,19 +29,19 @@
</view>
<view class="work-order-cost">
<view class="list">
<view class="item">
<view class="item disac">
<view class="title">上门费</view>
<input type="text" disabled class="input" :value="auditData.artificial_price" />
</view>
<view class="item">
<view class="item disac">
<view class="title">税金</view>
<input type="text" disabled class="input" :value="auditData.tax_price" />
</view>
<view class="item">
<view class="item disac">
<view class="title">材料费</view>
<input type="text" disabled class="input" :value="auditData.material_price" />
</view>
<view class="item">
<view class="item disac">
<view class="title">其他费用</view>
<input type="text" disabled class="input" :value="auditData.other_price" />
</view>
@ -82,7 +82,7 @@
</view>
</view>
<view class="item">
<view class="title">提交时间</view>
<view class="title disac">提交时间</view>
<input type="text" disabled class="input" :value="setTime" />
</view>
<view class="item item-textarea">
@ -116,11 +116,6 @@
},
data() {
return {
swiperCurrent: 0,
swiHeight: 0,
statusBarHeight: uni.getSystemInfoSync().statusBarHeight + 40,
ifInvoicing:false, //
ifCollection:false, //
remarksMsg:'', //
auditData:[], //
setTime:'', //
@ -128,10 +123,7 @@
}
},
mounted() {
const query = uni.createSelectorQuery().in(this);
query.select('#swi1').boundingClientRect(data => {
this.swiHeight = data.height - 100
}).exec();
},
onLoad(op) {
if (op.orderId != undefined) {
@ -180,9 +172,12 @@
if (res.code == 0) {
this.$toolAll.tools.showToast('提交成功');
setTimeout(()=>{
uni.navigateTo({
url:`/pagesA/workOrder/workOrderLlsit?status='待审批'&statusId=6`
uni.navigateBack({
delta:1
})
// uni.navigateTo({
// url:`/pagesA/workOrder/workOrderLlsit?status=''&statusId=6`
// })
},500)
}
})

View File

@ -60,8 +60,10 @@
<view class="text">{{item.address}}</view>
</view>
<!-- 订单不等于已完成和待回访并且访问人不是工程师 -->
<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="" lazy-load></image>
<view class="" v-if="role==1 || role==2">
<view @tap.stop="hurryUpEv(item.order_id)" class="date" v-if="item.order_status!=5 && item.order_status!=6 && item.order_status!=7 && item.order_status!=8">
催一催 <image class="img" src="../../static/iocn/ld.png" mode="" lazy-load></image>
</view>
</view>
</view>
</view>
@ -102,16 +104,17 @@
page:1,
order_status:"",
order_times:"",
keyword:""
keyword:"",
is_evaluate:0//01
},
total:0,
dataList:[],
statusId:0,
ifLoading:true
ifLoading:true,
orderType:[],//
}
},
onReachBottom() {
console.log(this.total,this.dataList.length,114);
if(this.total!=this.dataList.length) {
this.dataPage.page++;
this.getDatalist();
@ -123,15 +126,48 @@
},
onLoad(op) {
if(op.statusId!=undefined) this.statusId = op.statusId;
if(op.is_evaluate){this.dataPage.is_evaluate = op.is_evaluate} else {delete this.dataPage.is_evaluate}
switch (uni.getStorageSync('type_id')*1){
case 1:
case 2:
//
this.orderType = ['待指派','待接单','待维修','维修中','待付款','待评价'];
break;
case 3:
//
this.orderType = ['待指派','待接单','待维修','维修中','待收款','待审批','已收款','待回访','异常单','逾期单'];
break;
case 4:
//
this.orderType = ['待接单','待维修','维修中','待收款','待审批','异常单','逾期单'];
break;
case 5:
//
this.orderType = [];
break;
}
},
methods: {
//
getType(){
this.array = [];
this.$requst.get('/universal/api.order/order_type').then(res => {
// this.$toolAll.tools.showToast(res.msg);
if (res.code) {
this.array=[...res.data];
if(uni.getStorageSync('type_id')!=5){
if(res.data.length){
this.orderType.forEach(item=>{
res.data.forEach(item1=>{
if(item==item1.name){
this.array.push(item1);
}
})
})
}
} else {
this.array=[...res.data];
}
console.log(this.array,777777);
if(this.statusId){
this.workeOrderStatusIndex = this.array.findIndex(item=>item.id==this.statusId);
if(this.workeOrderStatusIndex!=-1) {
@ -139,6 +175,7 @@
this.dataPage.order_status = this.array[this.workeOrderStatusIndex].id;
}
}
// 1
if(this.dataPage.page==1) {
//
@ -154,7 +191,6 @@
title:'加载中...'
})
this.$requst.get('/universal/api.order/order_list',this.dataPage).then(res => {
console.log(res,'工单列表')
if (res.code==1) {
this.total = res.data.total;
if(this.dataPage.page==1) this.dataList = [];
@ -168,7 +204,11 @@
},
//
hurryUpEv(id) {
this.$toolAll.tools.showToast(`已催单成功`);
this.$requst.post('/universal/api.order/urge',{order_id:id}).then(res=>{
if(res.code){
this.$toolAll.tools.showToast(`已催单成功`);
}
})
},
//
projectDetailsFun(status,id,statusText,statusColor) {
@ -196,10 +236,30 @@
}
})
}else if(uni.getStorageSync('type_id')==5){
//
uni.navigateTo({
url: `/pagesA/workOrder/workOrderAudit?orderId=${id}&status=${status}&statusText=${statusText}&statusColor=${statusColor}`
})
if(status==6){
//
uni.navigateTo({
url: `/pagesA/workOrder/workOrderAudit?orderId=${id}&status=${status}&statusText=${statusText}&statusColor=${statusColor}`
})
} else {
//
uni.navigateTo({
url: `/pagesA/workOrder/details?orderId=${id}&status=${status}&statusText=${statusText}&statusColor=${statusColor}`
})
}
} else if(uni.getStorageSync('type_id')==3){
if(status==1){
//
uni.navigateTo({
url: `/pagesA/peopleManagement/peopleManagement?orderId=${id}`
})
}
if(status==8){
//
uni.navigateTo({
url: `/pagesA/workOrder/payReturnVisit?order_id=${id}`
})
}
} else {
//
uni.navigateTo({
@ -212,7 +272,7 @@
this.workeOrderStatus = '';
this.workeOrderStatusIndex = data.detail.value;
this.dataPage.order_status=this.array[data.detail.value].id-0
console.log( this.dataPage.order_status,123)
this.statusId = this.dataPage.order_status;
this.getDatalist()
},
@ -282,6 +342,7 @@
right: 43rpx;
top: 50%;
margin-top: -14rpx;
z-index: 10;
}
.screen {

View File

@ -238,6 +238,7 @@
//
// this.conversionEv();
if(op.id!=undefined) {
console.log(op,7777);
this.orderId = op.id;
//
this.handleWorkOrderGet(this.orderId);
@ -302,11 +303,14 @@
}
handleWorkOrderSubmit(params).then(res=>{
if(res.code) {
this.$toolAll.tools.showToast('提交成功,即将返回工单列表');
this.$toolAll.tools.showToast('提交审核成功');
setTimeout(()=>{
uni.navigateTo({
url: `/pagesA/workOrder/workOrderLlsit`
uni.navigateBack({
delta:3
})
// uni.navigateTo({
// url: `/pagesA/workOrder/workOrderLlsit`
// })
},2000)
} else {
this.$toolAll.tools.showToast(res.msg);
@ -439,7 +443,6 @@
uni.canvasToTempFilePath({
canvasId: 'firstCanvas',
success:(res)=> {
// base64
// #ifdef APP-PLUS
uni.saveImageToPhotosAlbum({
filePath: res.tempFilePath,

View File

@ -18,31 +18,31 @@
</view>
</view>
<view class="work-order-from">
<view class="li">
<view class="li disac">
<view class="title">工单编号</view>
<input type="text" class="input" disabled :value="targetObj.workOrderNo" />
</view>
<view class="li">
<view class="li disac">
<view class="title">项目编号</view>
<input type="text" class="input" disabled :value="targetObj.projectNo" />
</view>
<view class="li">
<view class="li disac">
<view class="title">项目名称</view>
<input type="text" class="input input-black" disabled :value="targetObj.projectName" />
</view>
<view class="li">
<view class="li disac">
<view class="title">产品类型</view>
<input type="text" class="input input-black" disabled :value="targetObj.productType" />
</view>
<view class="li">
<view class="li disac">
<view class="title">安装位置</view>
<input type="text" class="input input-black" disabled :value="targetObj.installLocation" />
</view>
<view class="li">
<view class="li disac">
<view class="title">维保类型</view>
<input type="text" class="input input-black" disabled :value="targetObj.faultType" />
</view>
<view class="li">
<view class="li disac">
<view class="title">服务方式</view>
<input type="text" class="input input-black" disabled :value="targetObj.serviceMode" />
</view>
@ -61,28 +61,28 @@
</view> -->
</view>
</view>
<view class="li">
<view class="li disac">
<view class="title">开始时间</view>
<input type="text" disabled class="input" :value="targetObj.startTime" />
</view>
<view class="li">
<view class="li disac">
<view class="title">结束时间</view>
<input type="text" @tap="openDatetimePicker" disabled class="input input-black" :value="targetObj.endTime" placeholder="请选择结束时间" />
<yy-mm-dd-hh-ss ref="myPicker" @submit="handleSubmit" :start-year="2022" :end-year="2122"></yy-mm-dd-hh-ss>
</view>
<view class="li">
<view class="li disac">
<view class="title">维保用时</view>
<input type="text" disabled class="input" :value="targetObj.maintenanceTime" placeholder="请选择结束时间,进行结算" />
</view>
<view class="li">
<view class="li disac">
<view class="title">维保费用</view>
<input type="text" disabled class="input input-black" placeholder="" v-model="maintenanceFee" />
</view>
<view class="li">
<view class="li disac">
<view class="title">等待时长</view>
<input type="text" disabled class="input" :value="targetObj.waitingTime" placeholder="请选择结束时间,进行结算" />
</view>
<view class="li">
<view class="li disac">
<view class="title">主维保人</view>
<input type="text" disabled class="input input-black" :value="targetObj.maintainer" />
</view>
@ -125,7 +125,7 @@
<view class="title">维保原因</view>
<textarea maxlength="-1" v-model="targetObj.faultReason" class="input input-black line-h36" placeholder="请填写维保原因" style="height: 110rpx;" />
</view>
<view class="li">
<view class="li disac">
<view class="title">维保人员</view>
<input type="text" v-model="targetObj.maintenancePersonnel" class="input input-black" placeholder="请填写维保人员" />
</view>

View File

@ -47,10 +47,10 @@
<view>工单日期</view>
</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 class="clips1">{{item.amount}}</view>
<view class="clips1">{{item.order_number}}</view>
<view>{{item.amount_type}}</view>
<view class="clips1">{{item.order_time}}</view>
</view>
<view class="mar-s180">
<pitera v-if="incomeExpensesList.length==0" textStr="暂无更多收支明细"></pitera>
@ -85,7 +85,7 @@
{{item.address}}
</view>
<view class="dis fe">
<view class="unsettled-btn" @tap="goSettlementEv(item.id)"></view>
<view class="unsettled-btn" @tap="goSettlementEv(item.id)"></view>
</view>
</view>
<nothing-page v-if="!total && !ifLoading" content="暂无更多未结算工单数据"></nothing-page>
@ -114,12 +114,9 @@
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:'xx10016-12',priceo:'260.0'},
],
incomeExpensesList:[],
//
unsettledList:[],
ifDetail:false,
size:10,
page:1,
@ -141,12 +138,26 @@
if(this.current) {
//
this.getMyAccountInfo();
//
this.checkSZDetail();
} else {
//
this.workWordEv();
}
},
methods: {
//
checkSZDetail(){
let params = {
list_rows:this.size,
page:this.page
}
this.$requst.get('/universal/api.account/income_expenditure_info',params).then(res=>{
if(res.code){
this.incomeExpensesList = res.data.data;
}
})
},
//
workWordEv(){
uni.showLoading({
@ -160,7 +171,7 @@
if(res.data.data.length) {
res.data.data.forEach(item=>{
let obj = {
id:item.project_id,//id
id:item.order_id,//id
title:item.project_name,//
name:item.username,//
number:item.order_number,//
@ -181,7 +192,7 @@
//
goSettlementEv(id) {
uni.navigateTo({
url:`/pagesA/workOrder/workOrderThree?id=${id}`
url:`/pagesA/workOrder/details?orderId=${id}`
})
},
//
@ -191,17 +202,6 @@
this.capitalDetail.totalPrice = this.$toolAll.tools.addXiaoShu(res.data.total_amount) //
this.capitalDetail.workOrderCost = this.$toolAll.tools.addXiaoShu(res.data.order_price) //
this.capitalDetail.technicalCommission = this.$toolAll.tools.addXiaoShu(res.data.money) //
// if(res.data.amount_record.length) {
// res.data.amount_record.forEach(item=>{
// let obj = {
// prices:'1088',//
// workOrderNum:'GD20220112-1001',//
// way:'',//
// date:'2019-7-24',//
// }
// this.incomeExpensesList.push(obj);
// })
// }
} else {
this.$toolAll.tools.showToast(res.msg);
}

View File

@ -3,16 +3,14 @@
<status-nav navBarTitle="设置" returnColor="#c2c2c2"></status-nav>
<container-subgroup>
<view slot="content" style="margin: 0 -30rpx;" class="fon28">
<!-- #ifdef APP-PLUS -->
<view class="bacf pad30 disjbac bbot">
<view>开启语音提醒</view>
<view><evan-switch v-model="voiceStatus" @change="voiceEv" :size="18" inactive-color="#b3b3b3" active-color="#fd8956"></evan-switch></view>
</view>
<view class="bacf pad30 disjbac mar-x20">
<view>接受新消息通知</view>
<view><evan-switch v-model="newsStatus" @change="newsEv" :size="18" inactive-color="#b3b3b3" active-color="#fd8956"></evan-switch></view>
</view>
<!-- #endif -->
<view class="bacf pad30 disjbac bbot">
<view>开启语音提醒</view>
<view><evan-switch v-model="voiceStatus" @change="voiceNewsEv($event,1)" :size="18" inactive-color="#b3b3b3" active-color="#fd8956"></evan-switch></view>
</view>
<view class="bacf pad30 disjbac mar-x20">
<view>接受新消息通知</view>
<view><evan-switch v-model="newsStatus" @change="voiceNewsEv" :size="18" inactive-color="#b3b3b3" active-color="#fd8956"></evan-switch></view>
</view>
<view @tap="updatePassword" class="bacf pad30 disjbac bbot">
<view>修改登录密码</view>
<i class="icon icon-next col9" style="font-size: 26rpx;"></i>
@ -25,32 +23,32 @@
<!-- #endif -->
<view @tap="gopageEv(0)" class="bacf pad30 disjbac mar-s20 bbot">
<view>上门服务条款</view>
<view class="disac col9">
V3.0<i class="icon icon-next col9 mar-z10" style="font-size: 26rpx;"></i>
<view class="disac col9" v-if="agreementArr.length">
{{agreementArr[0].version}}<i class="icon icon-next col9 mar-z10" style="font-size: 26rpx;"></i>
</view>
</view>
<view @tap="gopageEv(1)" class="bacf pad30 disjbac bbot">
<view>用户服务协议</view>
<view class="disac col9">
V1.1<i class="icon icon-next col9 mar-z10" style="font-size: 26rpx;"></i>
<view class="disac col9" v-if="agreementArr.length">
{{agreementArr[1].version}}<i class="icon icon-next col9 mar-z10" style="font-size: 26rpx;"></i>
</view>
</view>
<view @tap="gopageEv(2)" class="bacf pad30 disjbac bbot">
<view>飞猴云服务隐私政策</view>
<view class="disac col9">
V1.2<i class="icon icon-next col9 mar-z10" style="font-size: 26rpx;"></i>
<view class="disac col9" v-if="agreementArr.length">
{{agreementArr[2].version}}<i class="icon icon-next col9 mar-z10" style="font-size: 26rpx;"></i>
</view>
</view>
<view @tap="gopageEv(3)" class="bacf pad30 disjbac bbot">
<view>技术服务合作协议</view>
<view class="disac col9">
V1.1<i class="icon icon-next col9 mar-z10" style="font-size: 26rpx;"></i>
<view class="disac col9" v-if="agreementArr.length">
{{agreementArr[3].version}}<i class="icon icon-next col9 mar-z10" style="font-size: 26rpx;"></i>
</view>
</view>
<view @tap="gopageEv(4)" class="bacf pad30 disjbac bbot">
<view>关于飞猴云服务</view>
<view class="disac col9">
V1.1<i class="icon icon-next col9 mar-z10" style="font-size: 26rpx;"></i>
<view class="disac col9" v-if="agreementArr.length">
{{agreementArr[4].version}}<i class="icon icon-next col9 mar-z10" style="font-size: 26rpx;"></i>
</view>
</view>
<!-- #ifdef APP-PLUS -->
@ -75,12 +73,14 @@
voiceStatus:false,//
newsStatus:false,//
cacheSize:'754.72 KB',//
agreementArr:[],//
}
},
onLoad() {
//
this.getStorageDataNum();
this.getSettings()
//
this.getSettings();
},
methods: {
//
@ -99,13 +99,18 @@
});
// #endif
},
//
voiceEv(status){
console.log(status);
},
//
newsEv(status){
console.log(status);
// \
voiceNewsEv(status,num=0){
num ? this.voiceStatus = status : this.newsStatus = status;
let params = {
voice_reminder:this.voiceStatus?1:0,
receive_message:this.newsStatus?1:0
}
this.$requst.post('/universal/api.settings/settings',params).then(res=>{
if(res.code){
// uni.navigateBack({delta:1})
}
})
},
//
updatePassword(){
@ -113,14 +118,27 @@
url:'/pages/forget/forget'
})
},
//
//
getSettings(){
this.$requst.post('/universal/api.settings/settings').then(res=>{
console.log(res,'调用成功')
let params = {
voice_reminder:'',
receive_message:''
}
this.$requst.get('/universal/api.settings/settings',params).then(res=>{
if(res.code){
this.voiceStatus = [false,true][res.data.voice_reminder];
this.newsStatus = [false,true][res.data.receive_message];
for (let key in res.data) {
if(res.data[key]!=1&&res.data[key]!=0){
let obj = {
...res.data[key],
title:key
}
this.agreementArr.push(obj)
}
}
console.log(this.agreementArr,77777);
// uni.navigateBack({delta:1})
}
})
},
@ -202,7 +220,7 @@
//
gopageEv(index) {
uni.navigateTo({
url:'/pages/login/agreement'
url:`/pages/login/agreement?title=${this.agreementArr[index].title}&id=${this.agreementArr[index].id}`
})
}
}