兼容手机号隐藏、调用部分接口
2
App.vue
|
@ -11,7 +11,7 @@
|
|||
// 配置全局域名
|
||||
// #ifdef H5
|
||||
// this.globalData.hostapi = 'https://7and5.cn';
|
||||
this.globalData.hostapi = '/web';
|
||||
// this.globalData.hostapi = '/web';
|
||||
// #endif
|
||||
},
|
||||
onShow: function() {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
@font-face {
|
||||
font-family: "iconfont"; /* Project id 3180711 */
|
||||
src: url('https://at.alicdn.com/t/font_3180711_7fx7wl7itar.woff2?t=1647479558213') format('woff2'),
|
||||
url('https://at.alicdn.com/t/font_3180711_7fx7wl7itar.woff?t=1647479558213') format('woff'),
|
||||
url('https://at.alicdn.com/t/font_3180711_7fx7wl7itar.ttf?t=1647479558213') format('truetype');
|
||||
src: url('https://at.alicdn.com/t/font_3180711_635f9bvlgje.woff2?t=1652863135237') format('woff2'),
|
||||
url('https://at.alicdn.com/t/font_3180711_635f9bvlgje.woff?t=1652863135237') format('woff'),
|
||||
url('https://at.alicdn.com/t/font_3180711_635f9bvlgje.ttf?t=1652863135237') format('truetype');
|
||||
}
|
||||
|
||||
.icon {
|
||||
|
@ -13,6 +13,66 @@
|
|||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-sj-left-top:before {
|
||||
content: "\e603";
|
||||
}
|
||||
|
||||
.icon-sj-top:before {
|
||||
content: "\e604";
|
||||
}
|
||||
|
||||
.icon-sj-right-top:before {
|
||||
content: "\e605";
|
||||
}
|
||||
|
||||
.icon-sj-bottom:before {
|
||||
content: "\e606";
|
||||
}
|
||||
|
||||
.icon-sj-right-bottom:before {
|
||||
content: "\e607";
|
||||
}
|
||||
|
||||
.icon-sj-left:before {
|
||||
content: "\e60d";
|
||||
}
|
||||
|
||||
.icon-zsj:before {
|
||||
content: "\e6bd";
|
||||
}
|
||||
|
||||
.icon-del:before {
|
||||
content: "\e718";
|
||||
}
|
||||
|
||||
.icon-cut:before {
|
||||
content: "\e609";
|
||||
}
|
||||
|
||||
.icon-add:before {
|
||||
content: "\e60a";
|
||||
}
|
||||
|
||||
.icon-add-picture05:before {
|
||||
content: "\e639";
|
||||
}
|
||||
|
||||
.icon-add-picture04:before {
|
||||
content: "\e636";
|
||||
}
|
||||
|
||||
.icon-add-picture03:before {
|
||||
content: "\e642";
|
||||
}
|
||||
|
||||
.icon-add-picture02:before {
|
||||
content: "\e8bc";
|
||||
}
|
||||
|
||||
.icon-add-picture01:before {
|
||||
content: "\e62c";
|
||||
}
|
||||
|
||||
.icon-sandian:before {
|
||||
content: "\e769";
|
||||
}
|
||||
|
@ -93,7 +153,7 @@
|
|||
content: "\e73f";
|
||||
}
|
||||
|
||||
.icon-shopp-cart:before {
|
||||
.icon-shop-cart:before {
|
||||
content: "\e73d";
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<view class="btn-picker cancel" @click="open = false">取消</view>
|
||||
<view class="btn-picker submit" @click="_onSubmit">确定</view>
|
||||
</view>
|
||||
<view class="picker-body">
|
||||
<view class="picker-body" v-if="ifDate">
|
||||
<picker-view :value="value" @change="_onChange">
|
||||
<picker-view-column>
|
||||
<view class="column-item" v-for="item in years" :key="item">
|
||||
|
@ -68,6 +68,7 @@
|
|||
hour: "",
|
||||
minute: "",
|
||||
value: [0, 0, 0, 0, 0],
|
||||
ifDate:false
|
||||
};
|
||||
},
|
||||
|
||||
|
@ -148,6 +149,10 @@
|
|||
}
|
||||
}
|
||||
this.minutes = minutes;
|
||||
// 兼容微信小程序
|
||||
setTimeout(()=>{
|
||||
this.ifDate = true;
|
||||
},1000)
|
||||
},
|
||||
|
||||
show() {
|
||||
|
|
|
@ -126,18 +126,41 @@
|
|||
break;
|
||||
case 2:
|
||||
// #ifdef APP-PLUS || MP-WEIXIN
|
||||
this.$toolAll.tools.showToast(3)
|
||||
uni.scanCode({
|
||||
onlyFromCamera:false, // 是否只能从相机扫码,不允许从相册选择图片
|
||||
scanType: ['qrCode'], // barCode:一维码, qrCode:二维码, datamatrix:Data Matrix 码, pdf417:PDF417 条码
|
||||
autoDecodeCharset:true, // 是否启用自动识别字符编码功能,默认为否
|
||||
success: function (res) {
|
||||
console.log('条码类型:' + res.scanType);
|
||||
console.log('条码内容:' + res.result);
|
||||
// console.log(res);
|
||||
// console.log('条码类型:' + res.scanType);
|
||||
// console.log('条码内容:' + res.result);
|
||||
let project_number = JSON.parse(res.result).project_number;
|
||||
if(project_number) {
|
||||
uni.navigateTo({
|
||||
url:`/pagesA/repairsPage/repairsPage?project_number=${project_number}`
|
||||
})
|
||||
} else {
|
||||
this.$toolAll.tools.showToast('请出示正确的码')
|
||||
}
|
||||
},fail() {
|
||||
this.$toolAll.tools.showToast('扫描失败')
|
||||
}
|
||||
});
|
||||
// #endif
|
||||
// #ifdef H5
|
||||
this.scanCode();
|
||||
uni.showModal({
|
||||
title:'提示',
|
||||
content:'请使用,飞猴云服务APP进行扫一扫,是否马上下载APP?',
|
||||
confirmText:'马上下载',
|
||||
cancelText:'暂不下载',
|
||||
success: (res) => {
|
||||
if(res.confirm) {
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
// this.scanCode();
|
||||
// #endif
|
||||
break;
|
||||
case 3:
|
||||
|
@ -157,12 +180,23 @@
|
|||
sizeType: ['original'],
|
||||
count: 1,
|
||||
success: (res)=> {
|
||||
qrcode.decode(this.getObjectURL(res.tempFiles[0]))
|
||||
// uni.showModal({
|
||||
// title:'进入了'+JSON.stringify(res) ,
|
||||
// content:JSON.stringify(res.tempFilePaths[0])
|
||||
// })
|
||||
qrcode.decode(this.getObjectURL(res.tempFilePaths[0]))
|
||||
qrcode.callback = (codeRes) => {
|
||||
if (codeRes.indexOf('error') >= 0) {
|
||||
this.footList[2].title = 3;
|
||||
// 二维码识别失败
|
||||
console.log('不合法二维码:' + codeRes);
|
||||
uni.showModal({
|
||||
title:'请出示正确的码',
|
||||
content:res
|
||||
})
|
||||
// this.$toolAll.tools.showToast('请出示正确的码')
|
||||
} else {
|
||||
this.footList[2].title = 2;
|
||||
// 二维码识别成功
|
||||
let r = this.decodeStr(codeRes)
|
||||
// this.qrCodeRes = r
|
||||
|
@ -185,6 +219,8 @@
|
|||
// }
|
||||
// }
|
||||
},fail:(err)=> {
|
||||
this.footList[2].title = 1;
|
||||
this.$toolAll.tools.showToast(err)
|
||||
this.$toolAll.tools.checkQx(err.code);
|
||||
}
|
||||
});
|
||||
|
@ -192,13 +228,15 @@
|
|||
// 获取文件地址函数
|
||||
getObjectURL(file) {
|
||||
var url = null
|
||||
if (window.createObjectURL !== undefined) { // basic
|
||||
url = window.createObjectURL(file)
|
||||
} else if (window.URL !== undefined) { // mozilla(firefox)
|
||||
// if (window.createObjectURL !== undefined) { // basic
|
||||
// url = window.createObjectURL(file)
|
||||
// } else if (window.URL !== undefined) { // mozilla(firefox)
|
||||
// url = window.URL.createObjectURL(file)
|
||||
// } else if (window.webkitURL !== undefined) { // webkit or chrome
|
||||
// url = window.webkitURL.createObjectURL(file)
|
||||
// }
|
||||
url = window.URL.createObjectURL(file)
|
||||
} else if (window.webkitURL !== undefined) { // webkit or chrome
|
||||
url = window.webkitURL.createObjectURL(file)
|
||||
}
|
||||
this.footList[2].title = url;
|
||||
return url
|
||||
},
|
||||
// 解码,输出:中文
|
||||
|
|
|
@ -498,8 +498,13 @@ const tools = {
|
|||
return !reg_identity.test(identity);
|
||||
},
|
||||
// 手机号中间四位用"****"带替
|
||||
hideMPhone(phone){
|
||||
hideMPhone(phone,str=''){
|
||||
if(str) {
|
||||
return `${phone.substr(0, 3)}${str.padEnd(4,'x')}${phone.substr(7)}`
|
||||
} else {
|
||||
return `${phone.substr(0, 3)}****${phone.substr(7)}`
|
||||
}
|
||||
|
||||
},
|
||||
// 手机号中间加字符
|
||||
phoneAddChat(phone,startNum=3,endNum=7,character=' '){
|
||||
|
|
|
@ -9,12 +9,7 @@
|
|||
"usingComponents" : true,
|
||||
"compilerVersion" : 3,
|
||||
/* 5+App特有相关 */
|
||||
"modules" : {
|
||||
"Payment" : {},
|
||||
"Share" : {},
|
||||
"Maps" : {},
|
||||
"Geolocation" : {}
|
||||
},
|
||||
"modules" : {},
|
||||
/* 模块配置 */
|
||||
"distribute" : {
|
||||
/* 应用发布信息 */
|
||||
|
@ -23,6 +18,9 @@
|
|||
"permissions" : [
|
||||
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||
|
@ -30,6 +28,7 @@
|
|||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.GET_TASKS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<view :style="{height: windowHeight+'px'}" style="overflow: hidden;">
|
||||
<image src="/static/public/icon-guide.png" mode="widthFix" style="width: 100%;"></image>
|
||||
<image :src="ad_img || '/static/public/icon-guide.png'" mode="widthFix" style="width: 100%;"></image>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
@ -8,11 +8,18 @@
|
|||
export default {
|
||||
data() {
|
||||
return {
|
||||
windowHeight:uni.getSystemInfoSync().windowHeight
|
||||
windowHeight:uni.getSystemInfoSync().windowHeight,
|
||||
ad_img:''
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.checkContext();
|
||||
this.$requst.get('/universal/api.other/advertise').then(res=>{
|
||||
if(res.code) {
|
||||
this.ad_img = res.data.ad_img;
|
||||
uni.setStorageSync('adImg',this.ad_img);
|
||||
}
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
checkContext(){
|
||||
|
@ -45,7 +52,7 @@
|
|||
'/pages/login/login',
|
||||
'/pages/tabbar/pagehome/pagehome'
|
||||
]
|
||||
setTimeout(()=>{uni.reLaunch({url:arr[index]})},3000)
|
||||
setTimeout(()=>{uni.reLaunch({url:arr[index]})},6000)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -94,26 +94,24 @@
|
|||
<view class="title-content">
|
||||
<view class="title">
|
||||
<image class="icon" src="../../static/iocn/xmlb.png" mode=""></image>
|
||||
<view class="text" style="font-size: 28rpx;">
|
||||
项目列表
|
||||
<view class="text" style="font-size: 28rpx;">项目列表</view>
|
||||
</view>
|
||||
</view>
|
||||
<picker mode="date" :value="time" @change="bindTimeChange">
|
||||
<view class="date scal09">
|
||||
选择年份 <image class="icon" src="../../static/iocn/sjx.png" mode=""></image>
|
||||
<picker :value="currentyear" :range="yearArr" @change="bindTimeChange">
|
||||
<view class="date disac" :style="{color: chooseyear ? '#000000' : '#999999',border: chooseyear ? '2rpx solid #000000' : '2rpx solid #999999'}">
|
||||
{{chooseyear ? chooseyear+'年' : '选择年份'}} <i class="icon icon-zsj" style="font-size: 18rpx;"></i>
|
||||
<!-- <image class="icon flexs" src="../../static/iocn/sjx.png" mode=""></image> -->
|
||||
</view>
|
||||
</picker>
|
||||
|
||||
</view>
|
||||
|
||||
<view class="project-list-content" v-for="item in 5">
|
||||
<view class="project-list-box">
|
||||
<view class="project-list-content" v-for="(item,index) in projectList" :key="index">
|
||||
<view class="li">
|
||||
<view class="text">
|
||||
南城校区液晶显示屏
|
||||
<view class="text">{{item.project_name}}</view>
|
||||
<view class="date">{{item.create_time}}</view>
|
||||
</view>
|
||||
<view class="date">
|
||||
2022/3/1
|
||||
</view>
|
||||
<view v-if="!projectList.length" class="disjcac fc" style="height: 120rpx;">
|
||||
<pitera textStr="查询无果"></pitera>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -140,14 +138,15 @@
|
|||
import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue';
|
||||
import statusNav from '../../components/status-nav.vue';
|
||||
import {queryDetail} from '@/jsFile/public-api.js';
|
||||
import pitera from '@/components/nothing/pitera.vue';
|
||||
export default {
|
||||
components: {
|
||||
statusNav,
|
||||
containerSubgroupTwo
|
||||
containerSubgroupTwo,
|
||||
pitera
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
time: '12:01',
|
||||
dataArr:{
|
||||
customerName:"长沙警校",
|
||||
customerCode:"xxxxxxxxx",
|
||||
|
@ -159,8 +158,11 @@
|
|||
area:"长沙",
|
||||
|
||||
},
|
||||
projectList:[],
|
||||
clientId:''//客户id
|
||||
clientId:'',//客户id
|
||||
yearArr:[],//年份
|
||||
currentyear: '',//当前年份
|
||||
chooseyear:'',//选中的年份
|
||||
projectList:[]//项目列表
|
||||
}
|
||||
},
|
||||
onLoad(op){
|
||||
|
@ -170,6 +172,13 @@
|
|||
// 调用查询客户详情信息事件
|
||||
this.queryDetailEv();
|
||||
}
|
||||
let date = new Date();
|
||||
this.currentyear = date.getFullYear();
|
||||
for (let i = this.currentyear-10; i <= this.currentyear; i++) {
|
||||
this.yearArr.push(i);
|
||||
}
|
||||
// 调用项目列表查询
|
||||
this.getProjectList(this.currentyear);
|
||||
},
|
||||
methods: {
|
||||
// 查询客户详情信息
|
||||
|
@ -182,46 +191,58 @@
|
|||
}
|
||||
})
|
||||
},
|
||||
getData(){
|
||||
|
||||
// 选择年份
|
||||
bindTimeChange(data) {
|
||||
let index = data.detail.value;
|
||||
this.chooseyear = this.yearArr[index];
|
||||
// 调用项目列表查询
|
||||
this.getProjectList(this.chooseyear);
|
||||
},
|
||||
// 项目列表查询
|
||||
getProjectList(year) {
|
||||
this.$requst.post('/universal/api.search/project_year',{year}).then(res=>{
|
||||
if(res.code) {
|
||||
this.projectList = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
essentialInformation(classText){
|
||||
uni.createSelectorQuery().select('.'+classText).boundingClientRect(data=>{//目标位置的节点:类或者id
|
||||
uni.createSelectorQuery().select(".arc-content").boundingClientRect(res=>{//最外层盒子的节点:类或者id
|
||||
uni.pageScrollTo({
|
||||
duration: 100,//过渡时间
|
||||
scrollTop:data.top - res.top -uni.getSystemInfoSync().statusBarHeight-50,//到达距离顶部的top值
|
||||
})
|
||||
}).exec()
|
||||
}).exec();
|
||||
},
|
||||
// 复制微信
|
||||
copyWxFun(){
|
||||
uni.setClipboardData({
|
||||
data: 'hello',
|
||||
success: function () {}
|
||||
});
|
||||
},
|
||||
// 拨打电话
|
||||
telFun(){
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: '13608235524' //仅为示例
|
||||
});
|
||||
},
|
||||
// 选择年份
|
||||
bindTimeChange(data) {
|
||||
console.log(data.detail.value)
|
||||
},
|
||||
essentialInformation(classText){
|
||||
|
||||
// uni.createSelectorQuery().select('.'+classText).boundingClientRect(data=>{//目标位置的节点:类或者id
|
||||
// uni.createSelectorQuery().select(".arc-content").boundingClientRect(res=>{//最外层盒子的节点:类或者id
|
||||
// uni.pageScrollTo({
|
||||
// duration: 100,//过渡时间
|
||||
// scrollTop:data.top - res.top -uni.getSystemInfoSync().statusBarHeight-40,//到达距离顶部的top值
|
||||
// })
|
||||
// }).exec()
|
||||
// }).exec();
|
||||
},
|
||||
|
||||
// 复制微信
|
||||
copyWxFun(){
|
||||
uni.setClipboardData({
|
||||
data: 'hello',
|
||||
success: function () {
|
||||
console.log('success');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.project-list-box {
|
||||
min-height: 120rpx;
|
||||
max-height: 520rpx;
|
||||
overflow: hidden;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.project-list-box::-webkit-scrollbar{
|
||||
display: none;
|
||||
}
|
||||
.content {
|
||||
padding-right: 27rpx;
|
||||
padding-left: 27rpx;
|
||||
|
@ -328,15 +349,14 @@
|
|||
justify-content: center;
|
||||
align-items: center;
|
||||
border-radius: 10rpx;
|
||||
border: 2rpx solid #999999;
|
||||
font-size: 24rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.project-list .title-content .date .icon {
|
||||
width: 12rpx;
|
||||
height: 12rpx;
|
||||
/* width: 12rpx;
|
||||
height: 12rpx; */
|
||||
margin-left: 5rpx;
|
||||
}
|
||||
|
||||
|
|
|
@ -34,57 +34,9 @@
|
|||
<view class="text">项目概况</view>
|
||||
</view>
|
||||
<view class="project-message-content">
|
||||
<view class="li">
|
||||
<view class="title-one">客户名称</view>
|
||||
<view class="text">:上海弘焱电子科技有限公司</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title-one">竣工日期</view>
|
||||
<view class="text">:2022/2/26</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title-one">质保年限</view>
|
||||
<view class="text">:1 年</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title-one">产品品类:</view>
|
||||
<view class="text">单色LED屏</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title-one">品牌</view>
|
||||
<view class="text">:海康威视</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title-one">维保次数</view>
|
||||
<view class="text">:4 次</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">规格型号</view>
|
||||
<view class="text">:DS-CK15FI</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">尺寸</view>
|
||||
<view class="text">:4.57m*2.88m</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">合同类型:</view>
|
||||
<view class="text">制作安装</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">合同开始</view>
|
||||
<view class="text">: 2021/02/26</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">合同结束</view>
|
||||
<view class="text">:2021/02/2</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">应用场景 </view>
|
||||
<view class="text">:会议室</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">安装位置</view>
|
||||
<view class="text">:地下负二层总控电机室</view>
|
||||
<view class="li" v-for="(item,index) in projectGK" :key="index">
|
||||
<view class="title-one">{{item.name}}</view>
|
||||
<view class="text">:{{item.value}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="project-message-title">
|
||||
|
@ -100,17 +52,19 @@
|
|||
<view class="text">尺寸</view>
|
||||
<view class="text">数量</view>
|
||||
</view>
|
||||
<view class="project-materials-text">
|
||||
<view class="text">接收卡</view>
|
||||
<view class="text">卡莱特</view>
|
||||
<view class="text">5A-75E</view>
|
||||
<view class="text">1033876</view>
|
||||
<view class="text">*</view>
|
||||
<view class="text">1台</view>
|
||||
<view class="project-material-box">
|
||||
<view class="project-materials-text" v-for="(item,index) in project_material" :key="index">
|
||||
<view class="text clips2">{{item.name}}</view>
|
||||
<view class="text clips2">{{item.brand}}</view>
|
||||
<view class="text clips2">{{item.model}}</view>
|
||||
<view class="text clips2">{{item.batch}}</view>
|
||||
<view class="text clips2">{{item.size}}</view>
|
||||
<view class="text clips2">{{item.quantity}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="record-nav">
|
||||
<view class="li" @click="recordNav(index)" :class="item.state?'on':''"
|
||||
<view class="li" @click="recordNav(index)" :class="item.state?'on':'mo'"
|
||||
v-for="(item,index) in recordState">
|
||||
{{item.title}}
|
||||
</view>
|
||||
|
@ -120,8 +74,8 @@
|
|||
<view class="list">
|
||||
<view class="li pad-z40 fon27 col9" :class="index==0 ? 'activeTrack' : ''" v-for="(item,index) in recordList" :key="index">
|
||||
<view class="disac fw line-h60">
|
||||
<view class="text">{{item.time_line}}</view>
|
||||
<!-- <view class="date">2020-05-15 16:00</view> -->
|
||||
<view class="text">{{item.value}}</view>
|
||||
<view class="date">{{item.time}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<pitera v-if="recordList.length==0" :textStr="nomoreText"></pitera>
|
||||
|
@ -168,6 +122,8 @@
|
|||
recordList:[],//记录列表
|
||||
nomoreText:'',
|
||||
projectId: "",//项目id
|
||||
projectGK:[],//项目概况
|
||||
project_material:[]//项目材料
|
||||
}
|
||||
},
|
||||
onLoad(op) {
|
||||
|
@ -188,11 +144,6 @@
|
|||
}
|
||||
this.$requst.get('/universal/api.project/recording',params).then(res=>{
|
||||
if(res.code) {
|
||||
/**
|
||||
* {
|
||||
* time_line:''
|
||||
* }
|
||||
*/
|
||||
this.recordList = res.data.data;
|
||||
} else {
|
||||
this.nomoreText = res.msg;
|
||||
|
@ -209,6 +160,8 @@
|
|||
if (res.code) {
|
||||
this.projectObj = res.data;
|
||||
this.imgNum = this.projectObj.completed_img.length;
|
||||
this.projectGK = this.projectObj.project_overview_min;//项目概况
|
||||
this.project_material = this.projectObj.project_material;//项目材料
|
||||
} else {
|
||||
|
||||
}
|
||||
|
@ -232,12 +185,14 @@
|
|||
page {
|
||||
background-color: #F7F7F7;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 16rpx 0;
|
||||
|
||||
.project-material-box {
|
||||
max-height: 520rpx;
|
||||
overflow: hidden;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.project-material-box::-webkit-scrollbar{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.swiper {
|
||||
width: 100%;
|
||||
height: 500rpx;
|
||||
|
@ -304,16 +259,16 @@
|
|||
}
|
||||
|
||||
.last-date {
|
||||
width: 100%;
|
||||
/* width: 100%; */
|
||||
padding: 10rpx 13rpx 10rpx;
|
||||
box-shadow: 0rpx 5rpx 3rpx rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.last-date-content {
|
||||
width: 100%;
|
||||
/* width: 100%; */
|
||||
height: 57rpx;
|
||||
display: flex;
|
||||
padding-left: 20rpx;
|
||||
padding: 0 20rpx;
|
||||
align-items: center;
|
||||
border-radius: 10rpx;
|
||||
background: linear-gradient(to right, #FFEBEB, #F7F7F7);
|
||||
|
@ -395,7 +350,7 @@
|
|||
margin-top: 10rpx;
|
||||
background-color: #FFFFFF;
|
||||
justify-content: space-between;
|
||||
border-bottom: 2rpx solid #D5D4D4;
|
||||
border-bottom: 4rpx solid #D5D4D4;
|
||||
}
|
||||
|
||||
.record-nav .li {
|
||||
|
@ -407,18 +362,28 @@
|
|||
}
|
||||
|
||||
.record-nav .on {
|
||||
color: #00b1ff;
|
||||
color: #00B1FF;
|
||||
}
|
||||
|
||||
.record-nav .on::after {
|
||||
.record-nav .mo {
|
||||
color: #000000;
|
||||
}
|
||||
.record-nav .on::after,.record-nav .mo::after {
|
||||
content: "";
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 2rpx;
|
||||
height: 4rpx;
|
||||
position: absolute;
|
||||
background-color: #00B1FF;
|
||||
/* #ifdef APP-PLUS || MP-WEIXIN */
|
||||
top: 68rpx;
|
||||
/* #endif */
|
||||
/* #ifdef H5 */
|
||||
top: 65rpx;
|
||||
/* #endif */
|
||||
left: 0rpx;
|
||||
}
|
||||
.record-nav .on::after{
|
||||
background-color: #00B1FF;
|
||||
}
|
||||
|
||||
.record-content {
|
||||
padding: 0 52rpx;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<view class="queryFunction-head-nav">
|
||||
<view class="li" @click="navIndex(index)"
|
||||
:class="[dataIndex==0?'li1':'',dataIndex==1?'li2':'',dataIndex==2?'li3':'' ]"
|
||||
v-for="(item,index) in dataList">
|
||||
v-for="(item,index) in dataList" :key="index">
|
||||
{{item.title}}
|
||||
</view>
|
||||
</view>
|
||||
|
@ -19,7 +19,7 @@
|
|||
<view class="recently-query-title">最近查询</view>
|
||||
<view class="recently-query-content" v-for="(item,index) in recentlyQuery ">
|
||||
<view class="li" @click="goDetail()">
|
||||
<image class="icon" src="../../static/iocn/jfd.png" mode=""></image>
|
||||
<image class="icon" src="../../static/iocn/jfd.png" mode="widthFix"></image>
|
||||
<view class="text-content">
|
||||
<view class="title clips1">{{item.name}}</view>
|
||||
<view class="text">编号:{{item.code}}</view>
|
||||
|
@ -347,6 +347,7 @@
|
|||
width: 37rpx;
|
||||
height: 37rpx;
|
||||
margin-right: 40rpx;
|
||||
margin-top: 8rpx;
|
||||
}
|
||||
|
||||
.recently-query-content .li .text-content {
|
||||
|
|
|
@ -11,24 +11,23 @@
|
|||
</view>
|
||||
<view class="settlement-type">
|
||||
<view class="settlement-type-title">结算类型</view>
|
||||
|
||||
<view class="settlement-type-content">
|
||||
<view class="li liB">
|
||||
<view class="text">单次收费</view>
|
||||
<view class="num">20</view>
|
||||
<view class="text">{{settlementType[0].title}}</view>
|
||||
<view class="num">{{settlementType[0].num}}</view>
|
||||
</view>
|
||||
|
||||
<view class="li liC">
|
||||
<view class="text">验收扫尾</view>
|
||||
<view class="num">3</view>
|
||||
<view class="text">{{settlementType[2].title}}</view>
|
||||
<view class="num">{{settlementType[2].num}}</view>
|
||||
</view>
|
||||
<view class="li liD">
|
||||
<view class="text">质保免费</view>
|
||||
<view class="num">46</view>
|
||||
<view class="text">{{settlementType[1].title}}</view>
|
||||
<view class="num">{{settlementType[1].num}}</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="text">包年签单</view>
|
||||
<view class="num">10</view>
|
||||
<view class="text">{{settlementType[3].title}}</view>
|
||||
<view class="num">{{settlementType[3].num}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -41,59 +40,16 @@
|
|||
<view class="brand-analysis">
|
||||
<view class="settlement-type-title">品牌分析</view>
|
||||
<view class="brand-analysis-box">
|
||||
<view class="li">
|
||||
<view class="serial-number">1</view>
|
||||
<view class="li" v-for="(item,index) in brandAnalysis" :key="index">
|
||||
<view class="serial-number">{{item.id}}</view>
|
||||
<view class="brand-analysis-center">
|
||||
<view class="title-box">
|
||||
<view class="title">海康威视</view>
|
||||
<view class="cor">10</view>
|
||||
<view class="cor1">23.3%</view>
|
||||
<view class="title">{{item.name}}</view>
|
||||
<view class="cor" v-if="item.project_count">{{item.project_count}}</view>
|
||||
<view class="cor1">{{item.proportion}}%</view>
|
||||
</view>
|
||||
<view class="percentage">
|
||||
<view class="percentage-box" :style="{width:getPercentage(33,900)}"></view>
|
||||
</view>
|
||||
</view>
|
||||
<image class="icon" src="../../static/iocn/xl.png" mode=""></image>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="serial-number">2</view>
|
||||
<view class="brand-analysis-center">
|
||||
<view class="title-box">
|
||||
<view class="title">海康威视</view>
|
||||
<view class="cor">10</view>
|
||||
<view class="cor1">23.3%</view>
|
||||
</view>
|
||||
<view class="percentage">
|
||||
<view class="percentage-box" :style="{width:getPercentage(33,900)}"></view>
|
||||
</view>
|
||||
</view>
|
||||
<image class="icon" src="../../static/iocn/xl.png" mode=""></image>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="serial-number">3</view>
|
||||
<view class="brand-analysis-center">
|
||||
<view class="title-box">
|
||||
<view class="title">海康威视</view>
|
||||
<view class="cor">10</view>
|
||||
<view class="cor1">23.3%</view>
|
||||
</view>
|
||||
<view class="percentage">
|
||||
<view class="percentage-box" :style="{width:getPercentage(33,100)}"></view>
|
||||
</view>
|
||||
</view>
|
||||
<image class="icon" src="../../static/iocn/xl.png" mode=""></image>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="serial-number">4</view>
|
||||
<view class="brand-analysis-center">
|
||||
<view class="title-box">
|
||||
<view class="title">海康威视</view>
|
||||
<view class="cor">10</view>
|
||||
<view class="cor1">23.3%</view>
|
||||
</view>
|
||||
<view class="percentage">
|
||||
<view class="percentage-box percentage-box-ber"
|
||||
:style="{width:getPercentage(33,80)}"></view>
|
||||
<view class="percentage-box" :class="index%2!=0 ? 'percentage-box-ber' : ''" :style="{width:getPercentage(item.proportion,100)}"></view>
|
||||
</view>
|
||||
</view>
|
||||
<image class="icon" src="../../static/iocn/xl.png" mode=""></image>
|
||||
|
@ -135,54 +91,86 @@
|
|||
title: "本月",
|
||||
},
|
||||
],
|
||||
|
||||
|
||||
// 结算类型
|
||||
settlementType: [
|
||||
{title:'单次收费',num:0},
|
||||
{title:'验收扫尾',num:0},
|
||||
{title:'质保免费',num:0},
|
||||
{title:'包年签单',num:0},
|
||||
],
|
||||
// 维保类型
|
||||
chartData: {
|
||||
series: [{
|
||||
|
||||
format: "tooltipDemo1",
|
||||
data: [{
|
||||
name: "网络故障",
|
||||
value: 50,
|
||||
style: "straight",
|
||||
color: "#7F90A4"
|
||||
},
|
||||
{
|
||||
name: "模组故障",
|
||||
value: 30,
|
||||
style: "straight",
|
||||
color: "#67E0FF",
|
||||
style: "straight",
|
||||
},
|
||||
{
|
||||
name: "网络错误",
|
||||
value: 20,
|
||||
style: "straight",
|
||||
color: "#2D8DFE"
|
||||
},
|
||||
{
|
||||
name: "信息错误",
|
||||
value: 18,
|
||||
color: "#44D2C1",
|
||||
style: "straight",
|
||||
},
|
||||
{
|
||||
name: "供电不足",
|
||||
value: 8,
|
||||
style: "straight",
|
||||
color: "#F47936"
|
||||
}
|
||||
]
|
||||
data: []
|
||||
}]
|
||||
},
|
||||
// 品牌分析
|
||||
brandAnalysis:[],
|
||||
timestr:'all'
|
||||
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
console.log(this.getPercentage(33, 66))
|
||||
// console.log(this.getPercentage(33, 66))
|
||||
this.checkTJ();
|
||||
},
|
||||
methods: {
|
||||
// 查询维保统计
|
||||
checkTJ() {
|
||||
this.$requst.get('/universal/api.statistics/statistics_fault',{time:this.timestr}).then(res=>{
|
||||
if(res.code) {
|
||||
this.settlementType = [];
|
||||
// 结算类型
|
||||
for (let key in res.data.settlement_type) {
|
||||
let obj = {
|
||||
title: key,
|
||||
num: res.data.settlement_type[key],
|
||||
}
|
||||
this.settlementType.push(obj)
|
||||
}
|
||||
// 维保类型
|
||||
let fault_type = [];
|
||||
for (let key in res.data.fault_type) {
|
||||
let obj = {
|
||||
name: key,
|
||||
value: parseFloat(res.data.fault_type[key]),
|
||||
style: "straight",
|
||||
color: ""
|
||||
}
|
||||
fault_type.push(obj)
|
||||
}
|
||||
this.chartData.series[0].data = fault_type;
|
||||
this.chartData.series[0].data[0].color = '#56ddff';
|
||||
this.chartData.series[0].data[1].color = '#2d8dfe';
|
||||
this.chartData.series[0].data[2].color = '#7f90a4';
|
||||
this.chartData.series[0].data[3].color = '#44d2c1';
|
||||
this.chartData.series[0].data[4].color = '#2d8dfe';
|
||||
// 品牌分析
|
||||
this.brandAnalysis = res.data.brand_analyze;
|
||||
}
|
||||
})
|
||||
},
|
||||
navlistIndexFun(index) {
|
||||
this.navlistIndex = index
|
||||
this.navlistIndex = index;
|
||||
switch (index){
|
||||
case 0:
|
||||
this.timestr = 'all';
|
||||
break;
|
||||
case 1:
|
||||
this.timestr = 'all';
|
||||
break;
|
||||
case 2:
|
||||
this.timestr = 'yesterday';
|
||||
break;
|
||||
case 3:
|
||||
this.timestr = 'week';
|
||||
break;
|
||||
case 4:
|
||||
this.timestr = 'month';
|
||||
break;
|
||||
}
|
||||
this.checkTJ();
|
||||
},
|
||||
getPercentage(num, max) {
|
||||
return Math.ceil(((num - 0) / (max - 0)) * 100) + "%"
|
||||
|
|
|
@ -4,314 +4,165 @@
|
|||
<container-subgroup-two>
|
||||
<view slot="content" style="margin: 0 -30rpx;">
|
||||
<view class="project-overview">
|
||||
<view class="settlement-type-title">
|
||||
项目概况
|
||||
</view>
|
||||
<view class="settlement-type-title">项目概况</view>
|
||||
<view class="project-gross">
|
||||
<view class="project-gross-title">
|
||||
累计总项目量
|
||||
</view>
|
||||
<view class="project-gross-title">累计总项目量</view>
|
||||
<view class="project-gross-num">
|
||||
<view class="li">
|
||||
0
|
||||
<view class="li">0</view>
|
||||
<view class="li">2</view>
|
||||
<view class="li">9</view>
|
||||
<view class="li">8</view>
|
||||
<view class="li">5</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
2
|
||||
</view>
|
||||
<view class="li">
|
||||
9
|
||||
</view>
|
||||
<view class="li">
|
||||
8
|
||||
</view>
|
||||
<view class="li">
|
||||
5
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="project-gross-box">
|
||||
<view class="li">
|
||||
<view class="date">
|
||||
今日
|
||||
</view>
|
||||
|
||||
<view class="date">今日</view>
|
||||
<view class="date-con">
|
||||
<view class="date-con-li">
|
||||
<view class="text">
|
||||
新增项目量
|
||||
</view>
|
||||
<view class="single-amount">
|
||||
0单
|
||||
</view>
|
||||
<view class="text">新增项目量</view>
|
||||
<view class="single-amount">0单</view>
|
||||
</view>
|
||||
<view class="date-con-li">
|
||||
<view class="text">
|
||||
新增工单量
|
||||
</view>
|
||||
<view class="single-amount">
|
||||
0单
|
||||
</view>
|
||||
<view class="text">新增工单量</view>
|
||||
<view class="single-amount">0单</view>
|
||||
</view>
|
||||
<view class="date-con-li">
|
||||
<view class="text">
|
||||
项目维保率
|
||||
</view>
|
||||
<view class="single-amount">
|
||||
0单
|
||||
<view class="text">项目维保率</view>
|
||||
<view class="single-amount">0单</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="li">
|
||||
<view class="date">
|
||||
本周
|
||||
</view>
|
||||
|
||||
<view class="date">本周</view>
|
||||
<view class="date-con">
|
||||
<view class="date-con-li">
|
||||
<view class="text">
|
||||
新增项目量
|
||||
</view>
|
||||
<view class="single-amount">
|
||||
0单
|
||||
</view>
|
||||
<view class="text">新增项目量</view>
|
||||
<view class="single-amount">0单</view>
|
||||
</view>
|
||||
<view class="date-con-li">
|
||||
<view class="text">
|
||||
新增工单量
|
||||
</view>
|
||||
<view class="single-amount">
|
||||
0单
|
||||
</view>
|
||||
<view class="text">新增工单量</view>
|
||||
<view class="single-amount">0单</view>
|
||||
</view>
|
||||
<view class="date-con-li">
|
||||
<view class="text">
|
||||
项目维保率
|
||||
</view>
|
||||
<view class="single-amount">
|
||||
0单
|
||||
<view class="text">项目维保率</view>
|
||||
<view class="single-amount">0单</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="li">
|
||||
<view class="date">
|
||||
本月
|
||||
</view>
|
||||
|
||||
<view class="date">本月</view>
|
||||
<view class="date-con">
|
||||
<view class="date-con-li">
|
||||
<view class="text">
|
||||
新增项目量
|
||||
</view>
|
||||
<view class="single-amount">
|
||||
0单
|
||||
</view>
|
||||
<view class="text">新增项目量</view>
|
||||
<view class="single-amount">0单</view>
|
||||
</view>
|
||||
<view class="date-con-li">
|
||||
<view class="text">
|
||||
新增工单量
|
||||
</view>
|
||||
<view class="single-amount">
|
||||
0单
|
||||
</view>
|
||||
<view class="text">新增工单量</view>
|
||||
<view class="single-amount">0单</view>
|
||||
</view>
|
||||
<view class="date-con-li">
|
||||
<view class="text">
|
||||
项目维保率
|
||||
</view>
|
||||
<view class="single-amount">
|
||||
0单
|
||||
<view class="text">项目维保率</view>
|
||||
<view class="single-amount">0单</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="data-icon">
|
||||
<view class="settlement-type-title">
|
||||
年度项目数据明细
|
||||
</view>
|
||||
<view class="settlement-type-title">年度项目数据明细</view>
|
||||
<view class="">
|
||||
<view class="charts-box">
|
||||
<qiun-data-charts type="mix" :chartData="chartData" background="none" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
<view class="serve-data">
|
||||
<view class="settlement-type-title">
|
||||
服务数据
|
||||
</view>
|
||||
<view class="settlement-type-title">服务数据</view>
|
||||
<view class="serve-data-box">
|
||||
<view class="serve-data-left">
|
||||
<view class="title">
|
||||
本月服务量
|
||||
</view>
|
||||
<view class="title">本月服务量</view>
|
||||
<view class="text-con">
|
||||
<view class="li">
|
||||
<view class="text">
|
||||
维保工单:
|
||||
</view>
|
||||
<view class="num">
|
||||
3
|
||||
</view>
|
||||
<view class="text">维保工单:</view>
|
||||
<view class="num">3</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="text">
|
||||
巡检服务单:
|
||||
</view>
|
||||
<view class="num">
|
||||
65465
|
||||
</view>
|
||||
|
||||
<view class="text">巡检服务单:</view>
|
||||
<view class="num">65465</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="text">
|
||||
移屏服务单:
|
||||
</view>
|
||||
<view class="num">
|
||||
32132
|
||||
</view>
|
||||
<view class="text">移屏服务单:</view>
|
||||
<view class="num">32132</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="text">
|
||||
拆屏工单:
|
||||
</view>
|
||||
<view class="num">
|
||||
32132
|
||||
</view>
|
||||
<view class="text">拆屏工单:</view>
|
||||
<view class="num">32132</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="serve-data-left">
|
||||
<view class="title">
|
||||
累计服务量
|
||||
</view>
|
||||
<view class="title">累计服务量</view>
|
||||
<view class="text-con">
|
||||
<view class="li">
|
||||
<view class="text">
|
||||
维保工单:
|
||||
</view>
|
||||
<view class="num">
|
||||
3
|
||||
</view>
|
||||
<view class="text">维保工单:</view>
|
||||
<view class="num">3</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="text">
|
||||
巡检服务单:
|
||||
</view>
|
||||
<view class="num">
|
||||
65465
|
||||
</view>
|
||||
|
||||
<view class="text">巡检服务单:</view>
|
||||
<view class="num">65465</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="text">
|
||||
移屏服务单:
|
||||
</view>
|
||||
<view class="num">
|
||||
32132
|
||||
</view>
|
||||
<view class="text">移屏服务单:</view>
|
||||
<view class="num">32132</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="text">
|
||||
拆屏工单:
|
||||
</view>
|
||||
<view class="num">
|
||||
32132
|
||||
<view class="text">拆屏工单:</view>
|
||||
<view class="num">32132</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="data-icon">
|
||||
<view class="settlement-type-title">
|
||||
年度服务数据汇总
|
||||
</view>
|
||||
<view class="settlement-type-title">年度服务数据汇总</view>
|
||||
<view class="">
|
||||
<view class="charts-box">
|
||||
<qiun-data-charts type="mix" :chartData="chartDataA" background="none" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="expire-project">
|
||||
<view class="settlement-type-title settlement-type-titlea">
|
||||
质保即将到期项目
|
||||
</view>
|
||||
|
||||
<view class="settlement-type-title settlement-type-titlea">质保即将到期项目</view>
|
||||
<view class="expire-project-box">
|
||||
<view class="li-title li">
|
||||
<view class="name">
|
||||
项目名称
|
||||
</view>
|
||||
<view class="work-order">
|
||||
工单
|
||||
</view>
|
||||
<view class="date">
|
||||
日期
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="li-text li">
|
||||
<view class="name">
|
||||
1.五岭新天地二期停车场xxxxxxxxxxxxx
|
||||
</view>
|
||||
<view class="work-order">
|
||||
6
|
||||
</view>
|
||||
<view class="date">
|
||||
22/2/24
|
||||
</view>
|
||||
<view class="name">项目名称</view>
|
||||
<view class="work-order">工单</view>
|
||||
<view class="date">日期</view>
|
||||
</view>
|
||||
<view class="li-text li">
|
||||
<view class="name">
|
||||
1.五岭新天地二期停车场xxxxxxxxxxxxx
|
||||
</view>
|
||||
<view class="work-order">
|
||||
6
|
||||
</view>
|
||||
<view class="date">
|
||||
22/2/24
|
||||
</view>
|
||||
<view class="name">1.五岭新天地二期停车场xxxxxxxxxxxxx</view>
|
||||
<view class="work-order">6</view>
|
||||
<view class="date">22/2/24</view>
|
||||
</view>
|
||||
<view class="li-text li">
|
||||
<view class="name">
|
||||
1.五岭新天地二期停车场xxxxxxxxxxxxx
|
||||
</view>
|
||||
<view class="work-order">
|
||||
6
|
||||
</view>
|
||||
<view class="date">
|
||||
22/2/24
|
||||
</view>
|
||||
<view class="name">1.五岭新天地二期停车场xxxxxxxxxxxxx</view>
|
||||
<view class="work-order">6</view>
|
||||
<view class="date">22/2/24</view>
|
||||
</view>
|
||||
<view class="li-text li">
|
||||
<view class="name">
|
||||
1.五岭新天地二期停车场xxxxxxxxxxxxx
|
||||
<view class="name">1.五岭新天地二期停车场xxxxxxxxxxxxx</view>
|
||||
<view class="work-order">6</view>
|
||||
<view class="date">22/2/24</view>
|
||||
</view>
|
||||
<view class="work-order">
|
||||
6
|
||||
</view>
|
||||
<view class="date">
|
||||
22/2/24
|
||||
<view class="li-text li">
|
||||
<view class="name">1.五岭新天地二期停车场xxxxxxxxxxxxx</view>
|
||||
<view class="work-order">6</view>
|
||||
<view class="date">22/2/24</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</container-subgroup-two>
|
||||
</view>
|
||||
</template>
|
||||
|
@ -327,59 +178,25 @@
|
|||
data() {
|
||||
return {
|
||||
chartDataA: {
|
||||
categories: [
|
||||
"1月",
|
||||
"2月",
|
||||
"3月",
|
||||
"4月",
|
||||
"5月",
|
||||
"6月"
|
||||
],
|
||||
categories: ["1月","2月","3月","4月","5月","6月"],
|
||||
series: [
|
||||
|
||||
{
|
||||
name: "",
|
||||
index: 1,
|
||||
data: [
|
||||
40,
|
||||
{
|
||||
value: 30,
|
||||
|
||||
},
|
||||
55,
|
||||
110,
|
||||
24,
|
||||
58
|
||||
],
|
||||
data: [40,30,55,110,24,58],
|
||||
type: "column",
|
||||
"color": "#308de1"
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"name": "",
|
||||
"data": [
|
||||
40,
|
||||
30,
|
||||
55,
|
||||
110,
|
||||
24,
|
||||
58
|
||||
],
|
||||
"data": [40,30,55,110,24,58],
|
||||
"type": "line",
|
||||
"color": "#308de1"
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"index": 2,
|
||||
"data": [
|
||||
40,
|
||||
30,
|
||||
55,
|
||||
110,
|
||||
24,
|
||||
58
|
||||
],
|
||||
"data": [40,30,55,110,24,58],
|
||||
"type": "point",
|
||||
"color": "#308de1"
|
||||
}
|
||||
|
@ -387,80 +204,57 @@
|
|||
]
|
||||
},
|
||||
chartData: {
|
||||
categories: [
|
||||
"1月",
|
||||
"2月",
|
||||
"3月",
|
||||
"4月",
|
||||
"5月",
|
||||
"6月"
|
||||
],
|
||||
categories: ["1月","2月","3月","4月","5月","6月"],
|
||||
series: [
|
||||
|
||||
{
|
||||
name: "",
|
||||
index: 1,
|
||||
data: [
|
||||
40,
|
||||
{
|
||||
value: 30,
|
||||
|
||||
},
|
||||
55,
|
||||
110,
|
||||
24,
|
||||
58
|
||||
],
|
||||
data: [40,30,55,110,24,58],
|
||||
type: "column",
|
||||
"color": "#fe4141"
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"name": "",
|
||||
"data": [
|
||||
40,
|
||||
30,
|
||||
55,
|
||||
110,
|
||||
24,
|
||||
58
|
||||
],
|
||||
"data": [40,30,55,110,24,58],
|
||||
"type": "line",
|
||||
"color": "#fe4141"
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"index": 2,
|
||||
"data": [
|
||||
40,
|
||||
30,
|
||||
55,
|
||||
110,
|
||||
24,
|
||||
58
|
||||
],
|
||||
"data": [40,30,55,110,24,58],
|
||||
"type": "point",
|
||||
"color": "#fe4141"
|
||||
}
|
||||
|
||||
]
|
||||
},
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.checkSJ();
|
||||
},
|
||||
methods: {
|
||||
// 查询数据看板数据
|
||||
checkSJ() {
|
||||
this.$requst.get('/universal/api.statistics/data_kanban').then(res=>{
|
||||
if(res.code) {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.content {
|
||||
padding:0rpx 10rpx;
|
||||
padding: 0rpx 10rpx;
|
||||
}
|
||||
.charts-box{
|
||||
|
||||
.charts-box {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.settlement-type-title {
|
||||
font-size: 32rpx;
|
||||
color: #2c2c2c;
|
||||
|
@ -642,7 +436,8 @@
|
|||
.serve-data-box .serve-data-left:nth-child(2) {
|
||||
padding-left: 32rpx;
|
||||
}
|
||||
.expire-project{
|
||||
|
||||
.expire-project {
|
||||
padding: 26rpx 24rpx;
|
||||
margin-top: 27rpx;
|
||||
box-shadow: 0rpx 10rpx 20rpx rgba(0, 0, 0, 0.1);
|
||||
|
@ -659,29 +454,35 @@
|
|||
border-radius: 50rpx;
|
||||
background: linear-gradient(#2ed5b6, #2fd9cf)
|
||||
}
|
||||
.expire-project-box .li-title{
|
||||
|
||||
.expire-project-box .li-title {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
font-size: 28rpx;
|
||||
color: #a2a2a2;
|
||||
margin-top: 20rpx;
|
||||
width: 100%;
|
||||
font-size: 28rpx;
|
||||
color: #a2a2a2;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
.expire-project-box .li-title .name{
|
||||
|
||||
.expire-project-box .li-title .name {
|
||||
padding-left: 80rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.expire-project-box .li .name{
|
||||
|
||||
.expire-project-box .li .name {
|
||||
width: 455rpx;
|
||||
}
|
||||
.expire-project-box .li .work-order{
|
||||
|
||||
.expire-project-box .li .work-order {
|
||||
width: 80rpx;
|
||||
text-align: center;
|
||||
}
|
||||
.expire-project-box .li .date{
|
||||
|
||||
.expire-project-box .li .date {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
}
|
||||
.expire-project-box .li-text{
|
||||
|
||||
.expire-project-box .li-text {
|
||||
display: flex;
|
||||
padding: 17rpx 0rpx;
|
||||
font-size: 24rpx;
|
||||
|
@ -689,10 +490,11 @@ margin-top: 20rpx;
|
|||
color: #27cdc9;
|
||||
}
|
||||
|
||||
.expire-project-box .li-text .name{
|
||||
.expire-project-box .li-text .name {
|
||||
color: #333333;
|
||||
}
|
||||
.expire-project-box .li-text:last-child{
|
||||
|
||||
.expire-project-box .li-text:last-child {
|
||||
border: none;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -4,53 +4,56 @@
|
|||
<container-subgroup-two>
|
||||
<view slot="content" style="margin: -30rpx;">
|
||||
<view class="peopleManagement-input">
|
||||
<input type="text" class="int" value="" placeholder="请输入关键字" placeholder-style="color:#999999;" />
|
||||
<image class="search" src="../../static/iocn/ss.png" mode=""></image>
|
||||
<input type="text" class="int" @confirm="callEv" v-model="keyword" placeholder="请输入关键字" placeholder-style="color:#999999;" />
|
||||
<image class="search" @tap="callEv" src="../../static/iocn/ss.png" mode=""></image>
|
||||
<view class="xian"></view>
|
||||
</view>
|
||||
<view class="peopleManagement-content">
|
||||
<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>
|
||||
<!-- 选中 -->
|
||||
<view class="icon" v-if="!item.state"></view>
|
||||
<!-- 未选中 -->
|
||||
<image class="iconImg" v-else src="../../static/iocn/pxz.png" mode=""></image>
|
||||
<view class="">
|
||||
{{item.title}}<text class="cor" v-if="item.isJob">(正在作业)</text>
|
||||
<text class="cor1" v-else>(空闲中)</text>
|
||||
{{item.name}}<text :class="item.isJob ? 'cor' : 'cor1'">({{item.isJob ? '正在作业' : '空闲中'}})</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="state">已审核</view>
|
||||
</view>
|
||||
<view class="con">
|
||||
<image class="img" src="../../static/del/500478055.png" mode=""></image>
|
||||
<image class="img" :src="item.imgsrc" mode="aspectFill"></image>
|
||||
<view class="text scal09">
|
||||
<view class="code">
|
||||
<view class="">编号: YG20211207-001</view>
|
||||
<view class="">编号: {{item.number}}</view>
|
||||
<view class="iconCon">
|
||||
<view v-for="(item,index) in 5">
|
||||
<image class="icon" v-if="index<=2" src="../../static/iocn/6.png" ></image>
|
||||
<image class="icon" v-else src="../../static/iocn/7.png" ></image>
|
||||
<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-else src="../../static/iocn/7.png" mode="aspectFill" ></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="p">
|
||||
<view class="one">待处理:1单 </view>
|
||||
<view class="">已处理:1305单 </view>
|
||||
<view class="one">待处理:{{item.num}}单 </view>
|
||||
<view class="">已处理:{{item.allnum}}单 </view>
|
||||
</view>
|
||||
<view class="address">当前定位:湖南省株洲市xxxxxxxx小区1栋202室</view>
|
||||
<view class="address">当前定位:{{item.address}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom">
|
||||
<view class="bottom-content">
|
||||
联系电话: <text class="cor3">157xxxx8279</text>
|
||||
联系电话: <text class="cor3">{{$toolAll.tools.hideMPhone(item.phone,'x')}}</text>
|
||||
</view>
|
||||
<view class="bottom-content">
|
||||
注册时间: <text class="cor3">2018-12-12</text>
|
||||
注册时间: <text class="cor3">{{item.time}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<button class="submit-button" type="default">派发工单</button>
|
||||
<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>
|
||||
</view>
|
||||
</container-subgroup-two>
|
||||
</view>
|
||||
|
@ -59,40 +62,80 @@
|
|||
<script>
|
||||
import statusNav from '../../components/status-nav.vue';
|
||||
import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue';
|
||||
import pitera from '@/components/nothing/pitera.vue';
|
||||
export default {
|
||||
components: {
|
||||
statusNav,
|
||||
containerSubgroupTwo
|
||||
containerSubgroupTwo,
|
||||
pitera
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dataList: [{
|
||||
title: "陈志远",
|
||||
state: true,
|
||||
isJob: true,
|
||||
|
||||
},
|
||||
{
|
||||
title: "瓜皮",
|
||||
state: false,
|
||||
isJob: true,
|
||||
},
|
||||
{
|
||||
title: "瓜娃子",
|
||||
state: true,
|
||||
isJob: false,
|
||||
},
|
||||
{
|
||||
title: "憨批",
|
||||
state: true,
|
||||
isJob: false,
|
||||
},
|
||||
]
|
||||
dataList: [
|
||||
// {id:'1',name: "陈志远",state: false,isJob: false,imgsrc:'https://s6.jpg.cm/2022/02/14/L4oDhy.jpg',number:'YG20211207-001',rate:5,num:2,allnum:2000,address:'湖南省株洲市xxxxxxxx小区1栋202室',phone:'173xxxx1088',time:'2018-12-12'},
|
||||
// {id:'1',name: "陈志远",state: false,isJob: false,imgsrc:'https://s6.jpg.cm/2022/02/14/L4oDhy.jpg',number:'YG20211207-001',rate:3,num:2,allnum:2000,address:'湖南省株洲市xxxxxxxx小区1栋202室',phone:'173xxxx1088',time:'2018-12-12'},
|
||||
// {id:'1',name: "陈志远",state: false,isJob: false,imgsrc:'https://s6.jpg.cm/2022/02/14/L4oDhy.jpg',number:'YG20211207-001',rate:2,num:2,allnum:2000,address:'湖南省株洲市xxxxxxxx小区1栋202室',phone:'173xxxx1088',time:'2018-12-12'},
|
||||
],
|
||||
keyword:'',//关键字
|
||||
page:1,
|
||||
list_rows:20,
|
||||
total:0,
|
||||
tianxuan:''
|
||||
}
|
||||
},
|
||||
onReachBottom() {
|
||||
if(this.total!=this.dataList.length) {
|
||||
this.page++;
|
||||
this.checkList();
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.checkList();
|
||||
},
|
||||
methods: {
|
||||
// 查询人员状态列表
|
||||
checkList() {
|
||||
let params = {
|
||||
list_rows:this.list_rows,
|
||||
page:this.page,
|
||||
keyword:this.keyword
|
||||
}
|
||||
this.$requst.get('/universal/api.user/user_location',params).then(res=>{
|
||||
if(res.code) {
|
||||
this.total = res.data.total;
|
||||
if(this.page==1) this.dataList = [];
|
||||
if(res.data.data.length) {
|
||||
res.data.data.forEach(item=>{
|
||||
let obj = {
|
||||
id:1,
|
||||
name: item.name,
|
||||
imgsrc:'https://s6.jpg.cm/2022/02/14/L4oDhy.jpg',
|
||||
number:'YG20211207-001',
|
||||
rate:5,
|
||||
num:2,
|
||||
allnum:2000,
|
||||
address:item.address,
|
||||
phone:'17366921088',
|
||||
time:item.register_time,
|
||||
state: false,
|
||||
isJob: item.is_working ? true : false,
|
||||
}
|
||||
this.dataList.push(obj);
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 调用查询事件
|
||||
callEv() {
|
||||
this.page = 1;
|
||||
this.checkList();
|
||||
},
|
||||
listStateFun(item){
|
||||
item.state=!item.state
|
||||
this.dataList.forEach(item1=>{item1.state = false})
|
||||
item.state = !item.state;
|
||||
item.state ? this.tianxuan = item.id : '';
|
||||
console.log(this.tianxuan);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -100,6 +143,11 @@
|
|||
|
||||
<style>
|
||||
.submit-button {
|
||||
position: fixed;
|
||||
display: none;
|
||||
bottom: 30rpx;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
width: 686rpx;
|
||||
border-radius: 50rpx;
|
||||
height: 90rpx;
|
||||
|
@ -144,7 +192,6 @@
|
|||
top: 50%;
|
||||
margin-top: -14rpx;
|
||||
}
|
||||
|
||||
.peopleManagement-content .li {
|
||||
background-color: #FFFFFF;
|
||||
padding-right: 30rpx;
|
||||
|
@ -222,8 +269,8 @@
|
|||
}
|
||||
|
||||
.peopleManagement-content .li .con .text .icon {
|
||||
width: 24rpx;
|
||||
height: 24rpx;
|
||||
width: 28rpx;
|
||||
height: 26rpx;
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
|
||||
|
|
|
@ -99,7 +99,7 @@
|
|||
return {
|
||||
autoplay: true,
|
||||
interval: 3000,
|
||||
index: 1,
|
||||
index: 0,
|
||||
projectId: "",
|
||||
recordState: [{
|
||||
title: '维保记录',
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<view class="project-list">
|
||||
<view class="li animated fadeIn" @click="projectDetailsFun(item.project_id)" v-for="(item,index) in dataList.data" :key="index">
|
||||
<view class="message">
|
||||
<image class="img" src="../../static/del/img001.png" mode="aspectFill" lazy-load></image>
|
||||
<image class="img" :src="item.completed_img" mode="aspectFill" lazy-load></image>
|
||||
<view class="text disjb fc" style="height: 180rpx;">
|
||||
<view class="clips1 fon24 bold">{{item.project_name}}</view>
|
||||
<view class="line-h38" style="margin-left: -20rpx;height: 80%;">
|
||||
|
|
|
@ -18,18 +18,21 @@
|
|||
<view class="fault-type-title padding">维保类型:</view>
|
||||
<view class="padding fault-type-content">
|
||||
<view class="li" @click="repairsTypeFun(index)" :class="index==indexType?'on':''"
|
||||
v-for="(item,index) in faultTypeData">
|
||||
v-for="(item,index) in faultTypeData" :key="index">
|
||||
{{item.name}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="padding">
|
||||
<view class="devicename" v-if="current==0">
|
||||
<input type="text" class="fon28 width100 col3" v-model="data.project_number" placeholder="请填写设备编号或扫描二维码" />
|
||||
<image @click="scanCodeFun" class="sm flexs" src="../../static/iocn/sm.png" lazy-load mode=""></image>
|
||||
<input type="text" class="fon28 width100 col3" v-model="data.project_number"
|
||||
placeholder="请填写设备编号或扫描二维码" />
|
||||
<image @click="scanCodeFun" class="sm flexs" src="../../static/iocn/sm.png" lazy-load mode="">
|
||||
</image>
|
||||
</view>
|
||||
<input v-else v-model="data.device_name" class="devicename" placeholder="请填写设备名称和型号(例:华为LED)" />
|
||||
<view class="fault-pictures radius10" @click="chooseImg">
|
||||
<image class="fault-pictures-img" v-if="imgsrcArr.length>=1" :src="imgsrcArr[0]" mode="aspectFill"></image>
|
||||
<image class="fault-pictures-img" v-if="imgsrcArr.length>=1" :src="imgsrcArr[0]"
|
||||
mode="aspectFill"></image>
|
||||
<view class="fault-pictures-con" v-else>
|
||||
<image class="img" src="../../static/iocn/gz.png" lazy-load mode="aspectFill"></image>
|
||||
<view class="text">添加维保图片</view>
|
||||
|
@ -38,13 +41,19 @@
|
|||
<textarea v-model="data.fault_describe" class="fault-description radius10" placeholder="维保情况描述"
|
||||
placeholder-class="fault-description-text" />
|
||||
<view class="detailed-address inputCss">
|
||||
<input type="text" v-model="data.service_address" class="fon26 width100 mar-y20" placeholder="请输入详细的上门服务地址" placeholder-class="inputCss-input" />
|
||||
<image @click="mapFun" src="../../static/iocn/map.png" class="map flexs" mode="aspectFill"></image>
|
||||
<input type="text" v-model="data.service_address" class="fon26 width100 mar-y20"
|
||||
placeholder="请输入详细的上门服务地址" placeholder-class="inputCss-input" />
|
||||
<image @click="mapFun" src="../../static/iocn/map.png" class="map flexs" mode="aspectFill">
|
||||
</image>
|
||||
</view>
|
||||
<input type="text" class="inputCss" v-model="data.username" placeholder="请填写您的姓名" placeholder-class="inputCss-input" />
|
||||
<input type="number" maxlength="11" class="inputCss" v-model="data.phone" placeholder="请填写联系电话" placeholder-class="inputCss-input" />
|
||||
<input type="text" class="inputCss" @tap="openDatetimePicker" disabled v-model="data.visit_time" placeholder="请选择上门时间" placeholder-class="inputCss-input" />
|
||||
<yy-mm-dd-hh-ss ref="myPicker" @submit="handleSubmit" :start-year="2022" :end-year="2122"></yy-mm-dd-hh-ss>
|
||||
<input type="text" class="inputCss" v-model="data.username" placeholder="请填写您的姓名"
|
||||
placeholder-class="inputCss-input" />
|
||||
<input type="number" maxlength="11" class="inputCss" v-model="data.phone" placeholder="请填写联系电话"
|
||||
placeholder-class="inputCss-input" />
|
||||
<input type="text" class="inputCss" @tap="openDatetimePicker" disabled v-model="data.visit_time"
|
||||
placeholder="请选择上门时间" placeholder-class="inputCss-input" />
|
||||
<yy-mm-dd-hh-ss ref="myPicker" @submit="handleSubmit" :start-year="2022" :end-year="2122">
|
||||
</yy-mm-dd-hh-ss>
|
||||
<button class="submit-button" @click="submitButton()" type="default">提交维保申报</button>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -54,12 +63,12 @@
|
|||
|
||||
<script>
|
||||
import yyMmDdHhSs from '@/components/dates/yy-mm-dd-hh-ss.vue';
|
||||
import {getFaultType} from '@/jsFile/public-api.js';
|
||||
import {
|
||||
uploadImg
|
||||
getFaultType,uploadImg
|
||||
} from '@/jsFile/public-api.js';
|
||||
// 引入qrcode.js (必须导出qrcode.js )
|
||||
var qrcode = require('@/jsFile/qrcode.js');
|
||||
// import jweixin from '@/jsFile/index.js';
|
||||
export default {
|
||||
components: {
|
||||
yyMmDdHhSs
|
||||
|
@ -81,19 +90,20 @@
|
|||
},
|
||||
imgsrcArr: [],
|
||||
indexType: 0,
|
||||
navDataState: ["有设备","无设备"],
|
||||
current:0,
|
||||
navDataState: ["有设备", "无设备"],
|
||||
current: 0,
|
||||
faultTypeData: []
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.getType()
|
||||
onLoad(op) {
|
||||
this.getType();
|
||||
if (op.project_number) this.data.project_number = op.project_number;
|
||||
},
|
||||
|
||||
methods: {
|
||||
submitButton() {
|
||||
this.data.fault_type = this.faultTypeData[this.indexType].id
|
||||
if(this.current) {
|
||||
if (this.current) {
|
||||
if (!this.data.device_name) {
|
||||
this.$toolAll.tools.showToast("请填写设备名称或型号");
|
||||
return
|
||||
|
@ -112,13 +122,15 @@
|
|||
this.$toolAll.tools.showToast("请正确填写您的电话");
|
||||
return
|
||||
}
|
||||
this.data.is_device = this.current ? 0 : 1;//0:表示无设备 1:表示有设备
|
||||
this.data.is_device = this.current ? 0 : 1; //0:表示无设备 1:表示有设备
|
||||
this.$requst.post('/universal/api.order/repair', this.data).then(res => {
|
||||
if (res.code) {
|
||||
this.$toolAll.tools.showToast('提交成功');
|
||||
setTimeout(()=>{
|
||||
uni.navigateBack({delta:1})
|
||||
},1000)
|
||||
setTimeout(() => {
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
})
|
||||
}, 1000)
|
||||
} else {
|
||||
this.$toolAll.tools.showToast(res.msg);
|
||||
}
|
||||
|
@ -126,7 +138,7 @@
|
|||
},
|
||||
// 获取维保类型
|
||||
getType() {
|
||||
getFaultType().then(res=>{
|
||||
getFaultType().then(res => {
|
||||
if (res.code) {
|
||||
this.faultTypeData = [...res.data]
|
||||
} else {
|
||||
|
@ -151,13 +163,16 @@
|
|||
imgsrc.forEach(item => {
|
||||
this.imgsrcArr.push(item);
|
||||
})
|
||||
uploadImg({path: res.tempFilePaths[0]}).then(res => {
|
||||
uploadImg({
|
||||
path: res.tempFilePaths[0]
|
||||
}).then(res => {
|
||||
if (res.code) {
|
||||
this.$toolAll.tools.showToast('上传成功');
|
||||
this.data.fault_picture = res.data.id
|
||||
}
|
||||
})
|
||||
},fail:(err)=> {
|
||||
},
|
||||
fail: (err) => {
|
||||
this.$toolAll.tools.checkQx(err.code);
|
||||
}
|
||||
})
|
||||
|
@ -165,12 +180,14 @@
|
|||
scanCodeFun() {
|
||||
// #ifdef APP-PLUS || MP-WEIXIN
|
||||
uni.scanCode({
|
||||
onlyFromCamera:false, // 是否只能从相机扫码,不允许从相册选择图片
|
||||
onlyFromCamera: false, // 是否只能从相机扫码,不允许从相册选择图片
|
||||
scanType: ['qrCode'], // barCode:一维码, qrCode:二维码, datamatrix:Data Matrix 码, pdf417:PDF417 条码
|
||||
autoDecodeCharset:true, // 是否启用自动识别字符编码功能,默认为否
|
||||
success: function (res) {
|
||||
autoDecodeCharset: true, // 是否启用自动识别字符编码功能,默认为否
|
||||
success: (res) => {
|
||||
console.log('条码类型:' + res.scanType);
|
||||
console.log('条码内容:' + res.result);
|
||||
let project_number = JSON.parse(res.result).project_number;
|
||||
if (project_number) this.data.project_number = project_number;
|
||||
}
|
||||
});
|
||||
// #endif
|
||||
|
@ -184,35 +201,25 @@
|
|||
uni.chooseImage({
|
||||
sizeType: ['original'],
|
||||
count: 1,
|
||||
success: (res)=> {
|
||||
qrcode.decode(this.getObjectURL(res.tempFiles[0]))
|
||||
qrcode.callback = (codeRes) => {
|
||||
if (codeRes.indexOf('error') >= 0) {
|
||||
// 二维码识别失败
|
||||
console.log('不合法二维码:' + codeRes);
|
||||
success: (res) => {
|
||||
const tempFilePaths = res.tempFilePaths[0] // 获取到二维码图片的链接
|
||||
qrcode.decode(tempFilePaths); // 解析二维码图片
|
||||
qrcode.callback = function(res1) {
|
||||
// 解析失败返回 error decoding QR Code
|
||||
if (res1 == "error decoding QR Code") {
|
||||
uni.showToast({
|
||||
title: "识别二维码失败,请重新上传!",
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
})
|
||||
} else {
|
||||
// 二维码识别成功
|
||||
// 解析成功返回二维码链接
|
||||
let r = this.decodeStr(codeRes)
|
||||
// this.qrCodeRes = r
|
||||
console.log(r);
|
||||
console.log(res1)
|
||||
}
|
||||
}
|
||||
// const tempFilePaths = res.tempFilePaths[0] // 获取到二维码图片的链接
|
||||
// qrcode.decode(tempFilePaths); // 解析二维码图片
|
||||
// qrcode.callback = function(res1) {
|
||||
// // 解析失败返回 error decoding QR Code
|
||||
// if (res1 == "error decoding QR Code") {
|
||||
// uni.showToast({
|
||||
// title: "识别二维码失败,请重新上传!",
|
||||
// duration: 2000,
|
||||
// icon: 'none'
|
||||
// })
|
||||
// } else {
|
||||
// // 解析成功返回二维码链接
|
||||
// console.log(res1)
|
||||
// }
|
||||
// }
|
||||
},fail:(err)=> {
|
||||
},
|
||||
fail: (err) => {
|
||||
this.$toolAll.tools.checkQx(err.code);
|
||||
}
|
||||
});
|
||||
|
@ -269,26 +276,20 @@
|
|||
return out;
|
||||
},
|
||||
mapFun() {
|
||||
const that = this
|
||||
uni.getLocation({
|
||||
type: 'gcj02', //返回可以用于uni.openLocation的经纬度
|
||||
success: function(res) {
|
||||
const latitude = res.latitude;
|
||||
const longitude = res.longitude;
|
||||
let that = this
|
||||
uni.chooseLocation({
|
||||
success: function(res) {
|
||||
success: (res) => {
|
||||
that.data.service_address = res.address
|
||||
}
|
||||
});
|
||||
// uni.openLocation({
|
||||
// latitude: latitude,
|
||||
// longitude: longitude,
|
||||
// success: function () {
|
||||
// console.log('success');
|
||||
})
|
||||
// uni.getLocation({
|
||||
// type: 'wgs84', //返回可以用于uni.openLocation的经纬度gcj02
|
||||
// success: function(res) {
|
||||
// console.log(res);
|
||||
// let latitude = res.latitude;
|
||||
// let longitude = res.longitude;
|
||||
// }
|
||||
// });
|
||||
}
|
||||
});
|
||||
},
|
||||
repairsNavFun(index) {
|
||||
this.current = index;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<view class="content" >
|
||||
<view class="content">
|
||||
<statusNav returnColor="#c2c2c2" navBarTitle="工单详情"></statusNav>
|
||||
<container-subgroup-two>
|
||||
<view slot="content" style="margin:-30rpx -30rpx 0 -30rpx;">
|
||||
|
@ -28,7 +28,8 @@
|
|||
</view>
|
||||
<view class="li">
|
||||
<view class="title">项目名称:</view>
|
||||
<input type="text" disabled class="input input-black" :value="detailObj.project_name" />
|
||||
<input type="text" disabled class="input input-black"
|
||||
:value="detailObj.project_name" />
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">产品类型:</view>
|
||||
|
@ -36,7 +37,8 @@
|
|||
</view>
|
||||
<view class="li">
|
||||
<view class="title">安装位置:</view>
|
||||
<input type="text" disabled class="input" :value="detailObj.installation_location" />
|
||||
<input type="text" disabled class="input"
|
||||
:value="detailObj.installation_location" />
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">维保类型:</view>
|
||||
|
@ -44,11 +46,13 @@
|
|||
</view>
|
||||
<view class="li">
|
||||
<view class="title">紧急程度:</view>
|
||||
<input type="text" disabled class="input" :value="detailObj.emergency_level_view" />
|
||||
<input type="text" disabled class="input"
|
||||
:value="detailObj.emergency_level_view" />
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">维保说明:</view>
|
||||
<textarea style="overflow: hidden;overflow-y: scroll;height: auto;max-height: 200rpx;" disabled class="input" :value="detailObj.failure_description" />
|
||||
<view style="overflow: hidden;overflow-y: scroll;max-height: 200rpx;"
|
||||
class="input line-h36">{{detailObj.failure_description}}</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">维保图片:</view>
|
||||
|
@ -68,7 +72,8 @@
|
|||
</view>
|
||||
<view class="li">
|
||||
<view class="title">服务方式:</view>
|
||||
<input type="text" disabled class="input input-black" :value="detailObj.service_method_view" />
|
||||
<input type="text" disabled class="input input-black"
|
||||
:value="detailObj.service_method_view" />
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">定位地址:</view>
|
||||
|
@ -92,15 +97,18 @@
|
|||
</view>
|
||||
<view class="li">
|
||||
<view class="title">结束时间:</view>
|
||||
<input type="text" disabled class="input " :value="handleDetail.completion_times" />
|
||||
<input type="text" disabled class="input "
|
||||
:value="handleDetail.completion_times" />
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">维保用时: </view>
|
||||
<input type="text" disabled class="input input-black" :value="handleDetail.maintenance_time" />
|
||||
<input type="text" disabled class="input input-black"
|
||||
:value="handleDetail.maintenance_time" />
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">维保费用:</view>
|
||||
<input type="text" disabled class="input " :value="`¥${handleDetail.pay_price}元`" />
|
||||
<input type="text" disabled class="input "
|
||||
:value="`¥${handleDetail.pay_price}元`" />
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">等待时长:</view>
|
||||
|
@ -108,7 +116,8 @@
|
|||
</view>
|
||||
<view class="li">
|
||||
<view class="title">主维保人:</view>
|
||||
<input type="text" disabled class="input " :value="handleDetail.maintenance_name" />
|
||||
<input type="text" disabled class="input "
|
||||
:value="handleDetail.maintenance_name" />
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">更换配件:</view>
|
||||
|
@ -129,23 +138,28 @@
|
|||
</view>
|
||||
<view class="li">
|
||||
<view class="title">工作描述:</view>
|
||||
<textarea style="overflow: hidden;overflow-y: scroll;height: auto;max-height: 200rpx;" disabled class="input " :value="handleDetail.work_explanation"/>
|
||||
<view style="overflow: hidden;overflow-y: scroll;max-height: 200rpx;"
|
||||
class="input line-h36">{{handleDetail.work_explanation}}</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">维保图片:</view>
|
||||
<view class="input add-display">
|
||||
<view class="">
|
||||
<image class="img" v-for="(item,index) in handleDetail.maintenance_pictures" :key="index" :src="item" mode="aspectFill" lazy-load></image>
|
||||
<image class="img"
|
||||
v-for="(item,index) in handleDetail.maintenance_pictures"
|
||||
:key="index" :src="item" mode="aspectFill" lazy-load></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">维保原因:</view>
|
||||
<textarea auto-height disabled class="input " :value="handleDetail.failure_reason"/>
|
||||
<textarea auto-height disabled class="input "
|
||||
:value="handleDetail.failure_reason" />
|
||||
</view>
|
||||
<view class="li">
|
||||
<view class="title">维保人员: </view>
|
||||
<input type="text" disabled class="input " :value="handleDetail.maintenance_more" />
|
||||
<input type="text" disabled class="input "
|
||||
:value="handleDetail.maintenance_more" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -162,7 +176,8 @@
|
|||
<view class="state" :style="{backgroundColor: statusColor}">状态:{{statusText}}</view>
|
||||
<view class="list">
|
||||
<view class="li" v-for="(item,index) in replaceParts" :key="index">
|
||||
<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 class="text-content">
|
||||
<view class="title">
|
||||
<view class="text clips1">全彩LED显示屏电源</view>
|
||||
|
@ -187,7 +202,8 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="li">
|
||||
<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 class="text-content">
|
||||
<view class="title">
|
||||
<view class="text clips1">全彩LED显示屏电源</view>
|
||||
|
@ -221,14 +237,16 @@
|
|||
<view class="record-content">
|
||||
<view class="title">过程追踪</view>
|
||||
<view class="list">
|
||||
<view class="li pad-z40 fon27 col9 pad-x20" :class="index==0 ? 'activeTrack' : ''" v-for="(item,index) in handleProcess.time_line" :key="index">
|
||||
<view class="li pad-z40 fon27 col9 pad-x20"
|
||||
:class="index==0 ? 'activeTrack' : ''"
|
||||
v-for="(item,index) in handleProcess.time_line" :key="index">
|
||||
<view class="disac fw line-h40">
|
||||
<view class="text">{{item.value}}</view>
|
||||
<view class="date">{{item.create_time}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="button" @tap="goEvaluate()">我要评价</view>
|
||||
<view v-if="order_status==8" class="button" @tap="goEvaluate()">我要评价</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -246,7 +264,9 @@
|
|||
import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue';
|
||||
import statusNav from '../../components/status-nav.vue';
|
||||
import footTabOne from "../../components/foot-tabs/foot-tab-one.vue"
|
||||
import {handleWorkOrderGet} from '../../jsFile/public-api.js';
|
||||
import {
|
||||
handleWorkOrderGet
|
||||
} from '../../jsFile/public-api.js';
|
||||
export default {
|
||||
components: {
|
||||
footTabOne,
|
||||
|
@ -256,10 +276,10 @@
|
|||
data() {
|
||||
return {
|
||||
swiperCurrent: 0,
|
||||
swiHeight:0,
|
||||
statusBarHeight:uni.getSystemInfoSync().statusBarHeight + 40,
|
||||
statusText:'',//状态文字
|
||||
statusColor:'',//状态背景颜色
|
||||
swiHeight: 0,
|
||||
statusBarHeight: uni.getSystemInfoSync().statusBarHeight + 40,
|
||||
statusText: '', //状态文字
|
||||
statusColor: '', //状态背景颜色
|
||||
detailsNav: [{
|
||||
title: "基础信息",
|
||||
state: true
|
||||
|
@ -278,11 +298,12 @@
|
|||
},
|
||||
|
||||
],
|
||||
orderId:'',//订单id
|
||||
detailObj:{},//基础信息
|
||||
handleDetail:{},//处理详情
|
||||
replaceParts:[],//更换配件
|
||||
handleProcess:{}//处理过程
|
||||
orderId: '', //订单id
|
||||
detailObj: {}, //基础信息
|
||||
handleDetail: {}, //处理详情
|
||||
replaceParts: [], //更换配件
|
||||
handleProcess: {}, //处理过程
|
||||
order_status: '' //当前订单状态
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
@ -296,8 +317,7 @@
|
|||
onLoad(op) {
|
||||
this.statusText = op.statusText;
|
||||
this.statusColor = op.statusColor;
|
||||
console.log(this.statusColor,299);
|
||||
if(op.orderId!=undefined) {
|
||||
if (op.orderId != undefined) {
|
||||
this.orderId = op.orderId;
|
||||
// 调取获取工单详情事件
|
||||
this.getDetail(1);
|
||||
|
@ -305,16 +325,17 @@
|
|||
},
|
||||
methods: {
|
||||
// 获取工单详情事件
|
||||
getDetail(type){
|
||||
getDetail(type) {
|
||||
let params = {
|
||||
order_id:this.orderId,
|
||||
order_id: this.orderId,
|
||||
type
|
||||
}
|
||||
this.$requst.get('/universal/api.order/order_info',params).then(res=>{
|
||||
if(res.code) {
|
||||
switch (type){
|
||||
this.$requst.get('/universal/api.order/order_info', params).then(res => {
|
||||
if (res.code) {
|
||||
switch (type) {
|
||||
case 1:
|
||||
this.detailObj = res.data;
|
||||
this.order_status = this.detailObj.order_status;
|
||||
break;
|
||||
case 2:
|
||||
this.handleDetail = res.data;
|
||||
|
@ -326,12 +347,12 @@
|
|||
this.handleProcess = res.data;
|
||||
break;
|
||||
}
|
||||
setTimeout(()=>{
|
||||
setTimeout(() => {
|
||||
const query = uni.createSelectorQuery().in(this);
|
||||
query.select(`#swi${type}`).boundingClientRect(data => {
|
||||
this.swiHeight = data.height
|
||||
}).exec();
|
||||
},100)
|
||||
}, 500)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -371,14 +392,14 @@
|
|||
this.detailSwitch(index);
|
||||
},
|
||||
// 工单详情切换事件
|
||||
detailSwitch(index){
|
||||
let type = [1,2,3,4][index];
|
||||
detailSwitch(index) {
|
||||
let type = [1, 2, 3, 4][index];
|
||||
this.getDetail(type);
|
||||
},
|
||||
// 前往评价页面
|
||||
goEvaluate() {
|
||||
uni.navigateTo({
|
||||
url:`/pagesB/i-want-evaluate/i-want-evaluate?id=${this.orderId}`
|
||||
url: `/pagesB/i-want-evaluate/i-want-evaluate?orderId=${this.orderId}`
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -420,9 +441,9 @@
|
|||
|
||||
.work-order-from .li .title {
|
||||
font-size: 26rpx;
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
/* flex: 1; */
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
/* flex: 1; */
|
||||
}
|
||||
|
||||
.work-order-from .li .input {
|
||||
|
@ -723,6 +744,7 @@ white-space: nowrap;
|
|||
.work-order-from .isrideo .on .icon-content {
|
||||
background-color: #D81E06
|
||||
}
|
||||
|
||||
.record-content {
|
||||
padding: 0 52rpx;
|
||||
|
||||
|
@ -746,6 +768,7 @@ white-space: nowrap;
|
|||
border-left: 2rpx solid #999999;
|
||||
|
||||
}
|
||||
|
||||
.record-content .list .li::before {
|
||||
content: '';
|
||||
display: block;
|
||||
|
@ -756,18 +779,21 @@ white-space: nowrap;
|
|||
background-color: #999999;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
.record-content .list .activeTrack {
|
||||
color: #0084ff;
|
||||
padding-top: 0rpx;
|
||||
}
|
||||
|
||||
.record-content .list .activeTrack::before {
|
||||
background-color: rgba(0,132,255,.5);
|
||||
background-color: rgba(0, 132, 255, .5);
|
||||
top: -4rpx;
|
||||
width: 22rpx;
|
||||
height: 22rpx;
|
||||
left: -12rpx;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.record-content .list .activeTrack::after {
|
||||
content: '';
|
||||
display: block;
|
||||
|
@ -779,10 +805,12 @@ white-space: nowrap;
|
|||
background-color: #999999;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
.record-content .list .activeTrack .line-h40 {
|
||||
margin-top: -20rpx;
|
||||
line-height: 60rpx;
|
||||
}
|
||||
|
||||
.record-content .list .date {
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
|
|
|
@ -13,13 +13,13 @@
|
|||
<text>系</text>
|
||||
<text>人</text>
|
||||
</view>
|
||||
<input class="input" placeholder="请填写联系人称呼" type="text" placeholder-class="placeClass" />
|
||||
<input class="input" v-model="name" placeholder="请填写联系人称呼" type="text" placeholder-class="placeClass" />
|
||||
</view>
|
||||
<view class="payReturnVisit-input">
|
||||
<view class="title">
|
||||
联系电话
|
||||
</view>
|
||||
<input class="input" placeholder="请输入手机号码" type="text" placeholder-class="placeClass" />
|
||||
<input class="input" maxlength="11" v-model="phone" placeholder="请输入手机号码" type="number" placeholder-class="placeClass" />
|
||||
</view>
|
||||
<view class="payReturnVisit-input">
|
||||
<view class="title">
|
||||
|
@ -27,30 +27,31 @@
|
|||
<text>信</text>
|
||||
<text>号</text>
|
||||
</view>
|
||||
<input class="input" placeholder="请输入微信号码" type="text" placeholder-class="placeClass" />
|
||||
<input class="input" v-model="wxcode" placeholder="请输入微信号码" type="text" placeholder-class="placeClass" />
|
||||
</view>
|
||||
|
||||
<view class="payReturnVisit-textarea">
|
||||
<view class="title">
|
||||
回访内容
|
||||
</view>
|
||||
<textarea class="textarea" placeholder="请输入回访内容" placeholder-class="placeClass" />
|
||||
<textarea class="textarea" v-model="content" placeholder="请输入回访内容" placeholder-class="placeClass" />
|
||||
</view>
|
||||
<view class="payReturnVisit-input">
|
||||
<view class="title">
|
||||
客服电话
|
||||
</view>
|
||||
<input class="input" placeholder="400-765-9876" type="text" placeholder-class="placeClass" />
|
||||
<input class="input" disabled placeholder="400-765-9876" type="text" placeholder-class="placeClass" />
|
||||
</view>
|
||||
<view class="payReturnVisit-input">
|
||||
<view class="title">
|
||||
回访时间
|
||||
</view>
|
||||
<input class="input" placeholder="2022/02/13 14:18:00" type="text" placeholder-class="placeClass" />
|
||||
<input class="input colc" v-model="custmertime" disabled placeholder="2022/02/13 14:18:00" type="text" placeholder-class="placeClass" />
|
||||
<!-- <input class="input" v-model="custmertime" @tap="openDatetimePicker" disabled placeholder="2022/02/13 14:18:00" type="text" placeholder-class="placeClass" />
|
||||
<yy-mm-dd-hh-ss ref="myPicker" @submit="handleSubmit" :start-year="2022" :end-year="2122"></yy-mm-dd-hh-ss> -->
|
||||
</view>
|
||||
</view>
|
||||
<button class="submit-button" type="default">确认发送</button>
|
||||
|
||||
<button class="submit-button" @tap="setVisit" type="default">确认发送</button>
|
||||
</view>
|
||||
</container-subgroup-two>
|
||||
|
||||
|
@ -60,25 +61,89 @@
|
|||
<script>
|
||||
import statusNav from '../../components/status-nav.vue';
|
||||
import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue';
|
||||
import yyMmDdHhSs from '@/components/dates/yy-mm-dd-hh-ss.vue';
|
||||
export default {
|
||||
components: {
|
||||
statusNav,
|
||||
containerSubgroupTwo,
|
||||
containerSubgroupTwo,
|
||||
yyMmDdHhSs
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
name:'',//联系人
|
||||
phone:'',//联系电话
|
||||
wxcode:'',//微信号
|
||||
content:'',//回访内容
|
||||
custmerphone:'400-765-9876',//客服电话
|
||||
custmertime:'',//回访时间
|
||||
workId:'',//工单id
|
||||
flag:true
|
||||
}
|
||||
},
|
||||
onLoad(op) {
|
||||
if(op.id) {this.workId = op.id}
|
||||
this.custmertime = this.$toolAll.tools.returnCurrentTime('/',1);
|
||||
},
|
||||
methods: {
|
||||
// 工单回访提交事件
|
||||
setVisit() {
|
||||
if(this.checkEmpty() && this.flag) {
|
||||
this.flag = false;
|
||||
uni.showLoading({
|
||||
title:'正在发送',
|
||||
mask:true
|
||||
})
|
||||
let parmas = {
|
||||
id:this.workId,
|
||||
a:this.name,
|
||||
b:this.phone,
|
||||
c:this.wxcode,
|
||||
d:this.custmerphone,
|
||||
e:this.custmertime,
|
||||
f:this.content
|
||||
}
|
||||
this.$request.post('',parmas).then(res=>{
|
||||
if(res.code) {
|
||||
// 接口调用成功,自动返回上一级
|
||||
this.$toolAll.tools.automaticBack();
|
||||
}
|
||||
uni.hideLoading();
|
||||
this.flag = true;
|
||||
})
|
||||
}
|
||||
},
|
||||
// 判空
|
||||
checkEmpty() {
|
||||
let result = false;
|
||||
if(!this.name) {
|
||||
this.$toolAll.tools.showToast('请填写联系人称呼');
|
||||
} else if(this.$toolAll.tools.isPhone(this.phone)) {
|
||||
this.$toolAll.tools.showToast('请正确填写手机号码');
|
||||
} else if(!this.content) {
|
||||
this.$toolAll.tools.showToast('请输入回访内容');
|
||||
} else {
|
||||
result = true;
|
||||
}
|
||||
|
||||
return result;
|
||||
},
|
||||
// 打开时间选择弹框
|
||||
openDatetimePicker() {
|
||||
this.$refs.myPicker.show();
|
||||
},
|
||||
// 时间弹框确认事件
|
||||
handleSubmit(e) {
|
||||
this.custmertime = `${e.year}/${e.month}/${e.day} ${e.hour}:${e.minute}:00`;
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.placeClass {
|
||||
color: #cccccc;
|
||||
}
|
||||
|
||||
.placeClass{color:#cccccc;}
|
||||
.hint {
|
||||
color: #358ff0;
|
||||
font-size: 24rpx;
|
||||
|
|
|
@ -200,7 +200,7 @@
|
|||
methods: {
|
||||
// app获取经纬度和详细地址
|
||||
getAddress(){
|
||||
this.$toolAll.tools.showToast('正在获取定位...')
|
||||
// this.$toolAll.tools.showToast('正在获取定位...')
|
||||
// #ifdef APP-PLUS
|
||||
if(this.addressFlag) {
|
||||
this.addressFlag = false;
|
||||
|
@ -208,7 +208,7 @@
|
|||
type: 'gcj02',
|
||||
geocode:true,
|
||||
success: (res)=> {
|
||||
this.$toolAll.tools.showToast('定位成功');
|
||||
// this.$toolAll.tools.showToast('定位成功');
|
||||
// console.log(res,'app');
|
||||
this.targetObj.address = `${res.address.province}${res.address.city}${res.address.district}${res.address.street || ''}${res.address.streetNum || ''}${res.address.poiName || ''}`
|
||||
setTimeout(()=>{
|
||||
|
@ -240,7 +240,7 @@
|
|||
location: {latitude: res.latitude, longitude: res.longitude},
|
||||
success:(res)=> {
|
||||
console.log(res,'WX');
|
||||
this.$toolAll.tools.showToast('定位成功');
|
||||
// this.$toolAll.tools.showToast('定位成功');
|
||||
this.targetObj.address = `${res.result.address_component.province}${res.result.address_component.city}${res.result.address_component.district}${res.result.address_component.street || ''}(${res.result.address_component.street_number || ''})`
|
||||
setTimeout(()=>{
|
||||
this.addressFlag = true;
|
||||
|
@ -267,7 +267,7 @@
|
|||
let str = `output=jsonp&key=QNHBZ-55RKF-OMFJJ-NPU7O-EPSDH-ACBAA&location=${res.latitude},${res.longitude}`
|
||||
jsonp('https://apis.map.qq.com/ws/geocoder/v1/?'+str,{}).then(res=>{
|
||||
console.log(res,'H5');
|
||||
this.$toolAll.tools.showToast('定位成功');
|
||||
// this.$toolAll.tools.showToast('定位成功');
|
||||
this.targetObj.address = `${res.result.address_component.province}${res.result.address_component.city}${res.result.address_component.district}${res.result.address_component.street || ''}(${res.result.address_component.street_number || ''})`
|
||||
setTimeout(()=>{
|
||||
this.addressFlag = true;
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
<view class="li animated fadeIn" @click="projectDetailsFun(item.order_status,item.order_id,item.btn.attributes.text,item.btn.attributes.color)" v-for="(item,index) in dataList" :key="index">
|
||||
<view class="work-order-code">工单编号:{{item.order_number}}</view>
|
||||
<view class="message">
|
||||
<image class="img" src="../../static/del/img001.png" mode="aspectFill" lazy-load></image>
|
||||
<image class="img" :src="item.cover_picture" mode="aspectFill" lazy-load></image>
|
||||
<view class="text disjb fc" style="height: 180rpx;">
|
||||
<view class="title flexs">
|
||||
<view class="text clips1">{{item.project_name}}</view>
|
||||
|
@ -43,7 +43,7 @@
|
|||
</view>
|
||||
<view class="disjb fc line-h36" style="margin-left: -20rpx;">
|
||||
<view class="serial-number scal09">
|
||||
<view class="type">#{{item.fault_type}}#</view>
|
||||
<view class="type" v-if="item.fault_type">#{{item.fault_type}}#</view>
|
||||
<view class="date">{{item.failure_time}}</view>
|
||||
</view>
|
||||
<view class="specification scal09">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
<view class="content" :style="{paddingBottom: bottomHeight}">
|
||||
<statusNav returnColor="#c2c2c2" navBarTitle="处理工单"></statusNav>
|
||||
<container-subgroup-two>
|
||||
<view slot="content" style="margin: -20rpx -25rpx 0rpx;">
|
||||
|
@ -99,17 +99,13 @@
|
|||
</view>
|
||||
<view class="customerSignature">
|
||||
<view class="title">
|
||||
<view class="">
|
||||
客户签名
|
||||
</view>
|
||||
<view class="" @click="clearClick" v-if="!isCanvas">
|
||||
清除
|
||||
</view>
|
||||
<view class="">客户签名</view>
|
||||
<view class="" @click="clearClick" v-if="!isCanvas">清除 </view>
|
||||
</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'>
|
||||
disable-scroll='false' @error='error'>
|
||||
</canvas>
|
||||
<!-- <button @click='clearClick'>清除</button> -->
|
||||
<!-- <button @click='saveClick'>保存图片</button> -->
|
||||
|
@ -134,7 +130,7 @@
|
|||
</view>
|
||||
<view class="remark">
|
||||
<view class="title">备注内容</view>
|
||||
<textarea class="textarea" v-model="remarkText" placeholder="请输入备注内容" />
|
||||
<textarea @focus="remarkEv" class="textarea" v-model="remarkText" placeholder="请输入备注内容" />
|
||||
</view>
|
||||
</view>
|
||||
<button class="submit-button" type="default" @tap="submitEv">提交审核</button>
|
||||
|
@ -197,13 +193,13 @@
|
|||
billingIndex:0,//开票类型 0:专票 1:普票 2:不开票
|
||||
isMoney: true,//是否收款
|
||||
isCanvas: true,
|
||||
signImage: '',//签名图片
|
||||
ifCollectionCode:false,//是否显示收款码
|
||||
remarkText:'',//备注内容
|
||||
saveTimer:null,//保存签名延迟时间事件
|
||||
flag:true,//防抖
|
||||
signId:'',//签名图片id
|
||||
orderId:''//工单id
|
||||
orderId:'',//工单id
|
||||
bottomHeight:''
|
||||
}
|
||||
},
|
||||
computed:{
|
||||
|
@ -306,9 +302,12 @@
|
|||
}
|
||||
handleWorkOrderSubmit(params).then(res=>{
|
||||
if(res.code) {
|
||||
this.$toolAll.tools.showToast('提交成功,即将返回工单列表');
|
||||
setTimeout(()=>{
|
||||
uni.navigateTo({
|
||||
url: `/pagesA/workOrder/workorderTwo?id=${this.orderId}`
|
||||
url: `/pagesA/workOrder/workOrderLlsit`
|
||||
})
|
||||
},2000)
|
||||
} else {
|
||||
this.$toolAll.tools.showToast(res.msg);
|
||||
}
|
||||
|
@ -325,7 +324,7 @@
|
|||
// } else
|
||||
if(!this.paymentMode) {
|
||||
this.$toolAll.tools.showToast('请选择付款方式');
|
||||
} else if(!this.signImage) {
|
||||
} else if(!this.signId) {
|
||||
this.$toolAll.tools.showToast('请签名');
|
||||
} else {
|
||||
result = true;
|
||||
|
@ -437,23 +436,54 @@
|
|||
},
|
||||
//保存图片
|
||||
saveClick: function() {
|
||||
var that = this
|
||||
uni.canvasToTempFilePath({
|
||||
canvasId: 'firstCanvas',
|
||||
success: function(res) {
|
||||
success:(res)=> {
|
||||
// base64转图片路径
|
||||
base64ToPath(res.tempFilePath).then(path => {
|
||||
that.signImage = path;
|
||||
console.log(that.signImage);
|
||||
uploadImg({path:that.signImage}).then(res=>{
|
||||
if(res.code) {
|
||||
that.signId = res.data.id;
|
||||
// #ifdef APP-PLUS
|
||||
uni.saveImageToPhotosAlbum({
|
||||
filePath: res.tempFilePath,
|
||||
success:(resimg)=> {
|
||||
uploadImg({path:resimg.path}).then(result=>{
|
||||
if(result.code) {
|
||||
this.signId = result.data.id;
|
||||
} else {
|
||||
that.$toolAll.tools.showToast(res.msg);
|
||||
this.$toolAll.tools.showToast(result.msg);
|
||||
}
|
||||
})
|
||||
}).catch(error => {})
|
||||
}
|
||||
});
|
||||
// #endif
|
||||
// #ifdef MP-WEIXIN
|
||||
wx.saveFile({
|
||||
tempFilePath: res.tempFilePath,
|
||||
success:(wximg)=> {
|
||||
uploadImg({path:wximg.savedFilePath}).then(result=>{
|
||||
if(result.code) {
|
||||
this.signId = result.data.id;
|
||||
} else {
|
||||
this.$toolAll.tools.showToast(result.msg);
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
// #endif
|
||||
// #ifdef H5
|
||||
uploadImg({path:res.tempFilePath}).then(result=>{
|
||||
if(result.code) {
|
||||
this.signId = result.data.id;
|
||||
} else {
|
||||
this.$toolAll.tools.showToast(result.msg);
|
||||
}
|
||||
})
|
||||
// #endif
|
||||
}
|
||||
})
|
||||
},
|
||||
remarkEv(){
|
||||
uni.onKeyboardHeightChange(res => {
|
||||
console.log(res.height)
|
||||
this.bottomHeight = res.height + 'px'
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -696,6 +726,8 @@
|
|||
background-color: #FFFFFF;
|
||||
width: 100%;
|
||||
height: 320rpx;
|
||||
border: 2rpx dashed #cccccc;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
|
||||
.contents image {
|
||||
|
@ -704,11 +736,6 @@
|
|||
background-color: orange;
|
||||
}
|
||||
|
||||
.firstCanvas {
|
||||
border: 2rpx dashed #cccccc;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
|
||||
.money-receiving-code {
|
||||
width: 100%;
|
||||
height: 80rpx;
|
||||
|
|
|
@ -5,10 +5,12 @@
|
|||
<view slot="content" style="margin: -6rpx -30rpx 0 -30rpx;">
|
||||
<view class="bacf fon28 pad-sx30 pad-zy40">
|
||||
<view class=" bold disjbac fw line-h50">
|
||||
<view class="mar-y20">{{project_name}}</view>
|
||||
<view>{{project_number}}</view>
|
||||
<!-- 项目名称 -->
|
||||
<view class="mar-y20">{{orderObj.project_name || '项目名称'}}</view>
|
||||
<!-- 项目编号 -->
|
||||
<view>{{orderObj.order_number || '项目编号'}}</view>
|
||||
</view>
|
||||
<view class="mar-s10 mar-x30" style="color: #6b6a6a;">服务时间:{{project_time}}</view>
|
||||
<view class="mar-s10 mar-x30" style="color: #6b6a6a;">服务时间:{{orderObj.order_time}}</view>
|
||||
<view class="radius20 pad30 dis" style="border: 2rpx solid #dcdcdc;">
|
||||
<image src="/static/public/icon-evaluate-pen.png" mode="widthFix" lazy-load style="width: 25rpx;height: 30rpx;"></image>
|
||||
<textarea v-model="serviceExperience" maxlength="-1" class="fon24 mar-z20 width100" style="height: 200rpx;" placeholder="写下您的服务体验,帮助我们更好的管理提升" placeholder-style="font-size:24rpx;color: #aaaaaa;" />
|
||||
|
@ -50,14 +52,17 @@
|
|||
{imgsrc:''}
|
||||
],
|
||||
tempImgId:[],
|
||||
project_name:'长沙XXXXXXXXX项目名称',
|
||||
project_number:'GD20220108-1002',
|
||||
project_time:'2022-01-11 15 : 27',
|
||||
rateNum:5,//技术服务评分
|
||||
attitudeNum:5,//客服态度评分
|
||||
serviceExperience:'',//服务体验
|
||||
flag:true,
|
||||
orderId:''//工单id
|
||||
orderId:'',//工单id
|
||||
orderObj: {
|
||||
order_id:28,
|
||||
order_number:"",
|
||||
order_time:"",
|
||||
project_name:""
|
||||
}
|
||||
}
|
||||
},
|
||||
onLoad(op) {
|
||||
|
@ -70,7 +75,7 @@
|
|||
getOrderInfo(){
|
||||
this.$requst.get('/universal/api.order/evaluate_order',{order_id:this.orderId}).then(res=>{
|
||||
if(res.code) {
|
||||
|
||||
this.orderObj = res.data;
|
||||
} else {
|
||||
this.$toolAll.tools.showToast(res.msg);
|
||||
}
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
id_card_no:'', // 身份证号码
|
||||
imgList:[],
|
||||
flag:true,
|
||||
temporaryImg:[]
|
||||
temporaryImg:[],
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
|
@ -140,7 +140,13 @@
|
|||
this.imgList[3] = res.data.agreement_document;
|
||||
// 技能证书
|
||||
this.imgList[4] = res.data.skills_certificate;
|
||||
// this.temporaryImg = this.imgList[4];
|
||||
this.temporaryImg = [
|
||||
res.data.idcard_front_value,
|
||||
res.data.idcard_reverse_value,
|
||||
res.data.accident_insurance_value,
|
||||
res.data.agreement_document_value,
|
||||
res.data.skills_certificate_value
|
||||
];
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -164,12 +170,14 @@
|
|||
}
|
||||
|
||||
this.$requst.post('/universal/api.user/user_info',params).then(res=>{
|
||||
if(res.code==1){
|
||||
if(res.code){
|
||||
this.$toolAll.tools.showToast('保存成功');
|
||||
setTimeout(()=>{
|
||||
uni.navigateBack({delta:1})
|
||||
},1000)
|
||||
|
||||
} else {
|
||||
this.$toolAll.tools.showToast(res.msg);
|
||||
}
|
||||
})
|
||||
} else {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<status-nav :navBarTitle="detailTitle" returnColor="#c2c2c2"></status-nav>
|
||||
<container-subgroup>
|
||||
<view slot="content" style="margin: 0 -30rpx;" class="fon28">
|
||||
<view class="bacf pad-zy30 pad-sx20" style="margin-top: -10rpx;">
|
||||
<view class="bacf pad-zy30 pad-sx20" style="margin-top: -10rpx;" v-if="dataObj">
|
||||
<!-- 标题 -->
|
||||
<view class="fon38 col0 tcenter">{{dataObj.title}}</view>
|
||||
<!-- 时间 -->
|
||||
|
@ -25,15 +25,17 @@
|
|||
export default {
|
||||
data() {
|
||||
return {
|
||||
detailTitle:'',
|
||||
detailTitle:'方案详情',
|
||||
current:0,
|
||||
dataObj:{},
|
||||
dataObj:'',
|
||||
rich_text:''//富文本
|
||||
}
|
||||
},
|
||||
onLoad(op) {
|
||||
if(op.index!=undefined) {
|
||||
this.detailTitle = `${['方案详情','详情概述','产品详情'][op.index*1]}`;
|
||||
this.current = op.index*1;
|
||||
}
|
||||
this.getDetail(op.id);
|
||||
},
|
||||
methods: {
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
data() {
|
||||
return {
|
||||
rateNum:5,
|
||||
ifPlanFault:'',
|
||||
ifPlanFault:'解决方案',
|
||||
current:'',
|
||||
size:20,
|
||||
page:1,
|
||||
|
@ -59,8 +59,10 @@
|
|||
}
|
||||
},
|
||||
onLoad(op) {
|
||||
if(op.index!=undefined) {
|
||||
this.ifPlanFault = `${['解决方案','常见故障'][op.index*1]}`;
|
||||
this.current = op.index*1;
|
||||
}
|
||||
if(op.type_id!=undefined) this.type_id = op.type_id;
|
||||
this.getPlanFault();
|
||||
},
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
</view>
|
||||
<view class="bbot disac pad-sx30 pad-zy30">
|
||||
<view class="mar-y30 flexs disjbac" :style="{width: eareWidth + 'px'}">地 <view>区<text style="color: red;">*</text></view></view>
|
||||
<!-- <view class="disjbac width100" @tap="chooseRegion"> -->
|
||||
<view class="disjbac width100" @tap="openPicker">
|
||||
<view>{{region}}</view>
|
||||
<i class="icon icon-next col9" style="font-size: 30rpx;"></i>
|
||||
|
@ -68,12 +67,12 @@
|
|||
cityName:'',
|
||||
townName:'',
|
||||
},
|
||||
region:'湖南省株洲市芦淞区',
|
||||
newProvice:'',
|
||||
newCity:'',
|
||||
newDistrict:'',
|
||||
detailed_address:'',
|
||||
remarkText:'',
|
||||
region:'',//地区
|
||||
newProvice:'',//省/市
|
||||
newCity:'',//市/区
|
||||
newDistrict:'',//区
|
||||
detailed_address:'',//详细地址
|
||||
remarkText:'',//备注
|
||||
eareWidth:'',
|
||||
flag:true
|
||||
}
|
||||
|
@ -83,6 +82,7 @@
|
|||
query.select('#timeBox').boundingClientRect((rect) => {
|
||||
this.eareWidth = rect.width;
|
||||
}).exec()
|
||||
this.getDistrict();
|
||||
},
|
||||
methods: {
|
||||
// 提交保存
|
||||
|
@ -93,20 +93,22 @@
|
|||
let params = {
|
||||
is_working:this.personnelStatus[this.statusNum].id,//人员状态
|
||||
working_hours:this.workingHours[this.hoursNum].id ,//工作时段
|
||||
area_id:272,
|
||||
area:this.region,//地区
|
||||
address:this.detailed_address,//详细地址
|
||||
service_distance: parseFloat(this.serviceRange[this.rangeNum]) || 0,//服务范围
|
||||
remark:this.remarkText//备注
|
||||
}
|
||||
console.log(params,87);
|
||||
// this.$requst.post('/universal/api.user/service_area',params).then(res=>{
|
||||
// if(res.code) {
|
||||
// this.$toolAll.tools.showToast('保存成功');
|
||||
// setTimeout(()=>{
|
||||
// uni.navigateBack({delta:1})
|
||||
// },1000)
|
||||
// }
|
||||
// })
|
||||
this.$requst.post('/universal/api.user/service_area',params).then(res=>{
|
||||
if(res.code) {
|
||||
this.$toolAll.tools.showToast('保存成功');
|
||||
setTimeout(()=>{
|
||||
uni.navigateBack({delta:1})
|
||||
},1000)
|
||||
} else {
|
||||
this.$toolAll.tools.showToast(res.msg);
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -122,33 +124,6 @@
|
|||
}
|
||||
return result;
|
||||
},
|
||||
// 选择地区
|
||||
chooseRegion(){
|
||||
uni.getLocation({
|
||||
type: 'gcj02', //返回可以用于uni.openLocation的经纬度
|
||||
success: function (res) {
|
||||
const latitude = res.latitude;
|
||||
const longitude = res.longitude;
|
||||
console.log(latitude,longitude,78);
|
||||
uni.chooseLocation({
|
||||
success: function (res) {
|
||||
console.log(res,81);
|
||||
console.log('位置名称:' + res.name);
|
||||
console.log('详细地址:' + res.address);
|
||||
console.log('纬度:' + res.latitude);
|
||||
console.log('经度:' + res.longitude);
|
||||
}
|
||||
});
|
||||
// uni.openLocation({
|
||||
// latitude: latitude,
|
||||
// longitude: longitude,
|
||||
// success: function () {
|
||||
// console.log('success');
|
||||
// }
|
||||
// });
|
||||
}
|
||||
});
|
||||
},
|
||||
getDistrict() {
|
||||
let ya = this
|
||||
uni.getLocation({
|
||||
|
@ -158,11 +133,22 @@
|
|||
header: {
|
||||
'Content-Type':'application/json'
|
||||
},
|
||||
success:function(res) {
|
||||
success:(res)=> {
|
||||
// console.log('地址数据:',res)
|
||||
ya.newProvice = res.data.result.address_component.province
|
||||
ya.newCity = res.data.result.address_component.city
|
||||
ya.newDistrict = res.data.result.address_component.district
|
||||
let provinceStr = res.data.result.address_component.province;
|
||||
if(provinceStr=='北京市') {
|
||||
provinceStr = '北京';
|
||||
} else if(provinceStr=='天津市') {
|
||||
provinceStr = '天津';
|
||||
} else if(provinceStr=='上海市') {
|
||||
provinceStr = '上海';
|
||||
} else if(provinceStr=='重庆市') {
|
||||
provinceStr = '重庆';
|
||||
}
|
||||
ya.newProvice = provinceStr;
|
||||
ya.newCity = res.data.result.address_component.city;
|
||||
ya.newDistrict = res.data.result.address_component.district;
|
||||
this.region = ya.newProvice + ya.newCity + ya.newDistrict;
|
||||
}
|
||||
})
|
||||
},
|
||||
|
|
|
@ -142,7 +142,61 @@
|
|||
},
|
||||
// 检测版本事件
|
||||
checkEdition(){
|
||||
console.log('检测版本事件');
|
||||
// status int 升级标志,1:需要升级;0:无需升级
|
||||
// note string 升级日志
|
||||
// android_url string 安卓包下载地址
|
||||
// ios_url string 苹果更新商店地址
|
||||
// 检测升级
|
||||
plus.runtime.getProperty(plus.runtime.appid, (widgetInfo) => {
|
||||
var platform = uni.getSystemInfoSync().platform;
|
||||
this.$requst.get('/universal/api.other/update_version',{version:widgetInfo.version}).then(res=>{
|
||||
if(res.code) {
|
||||
// 判断是否需要更新
|
||||
if (res.data.status) {
|
||||
//content是版本更新内容 \n换行
|
||||
uni.showModal({
|
||||
title:`检测到有新版本`,
|
||||
content:res.data.note,
|
||||
confirmText:'更新',
|
||||
cancelText:'取消',
|
||||
success: (result) => {
|
||||
if(result.confirm) {
|
||||
//ios用户pkgUrl是苹果市场App地址,android自定义下载地址
|
||||
if(platform == 'ios'){
|
||||
// plus.runtime.launchApplication({
|
||||
// action: `itms-apps://itunes.apple.com/cn/app/id${appleId}?mt=8`
|
||||
// }, function(e) {
|
||||
// console.log('Open system default browser failed: ' + e.message);
|
||||
// });
|
||||
plus.runtime.openURL(res.data.ios_url);
|
||||
}else{
|
||||
var downloadTask = uni.downloadFile({
|
||||
url: res.data.android_url,
|
||||
success: (downloadResult) => {
|
||||
if (downloadResult.statusCode === 200) {
|
||||
plus.runtime.install(downloadResult.tempFilePath, {force: false }, function() {
|
||||
plus.runtime.restart();
|
||||
}, (e) => {
|
||||
uni.showToast({
|
||||
title: '安装升级包失败',
|
||||
icon: 'none'
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
downloadTask.onProgressUpdate((e)=>{
|
||||
// 监听进度条
|
||||
// this.progress = e.progress
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
// 去服务协议、服务条款、隐私政策、合作协议、飞猴云服务页面
|
||||
gopageEv(index) {
|
||||
|
|
19
readme.md
|
@ -1,19 +0,0 @@
|
|||
<!-- 暂无更多组件参数的使用
|
||||
|
||||
组件一
|
||||
<nothing-page
|
||||
:imgSrc="图片路径可相对、可绝对、可网络"
|
||||
:currentType="0,1,2,..."
|
||||
:content="'-- NO MORE --'"></nothing-page>
|
||||
|
||||
组件二
|
||||
<pitera
|
||||
:textColor="'#999999'"
|
||||
:textStr="'-- NO MORE --'"
|
||||
:textFontSize="'24rpx'"
|
||||
:ifBold="false"
|
||||
:ifCenter="true"
|
||||
:paddingStr="'20rpx'"></pitera>
|
||||
|
||||
-->
|
||||
|
Before Width: | Height: | Size: 375 B After Width: | Height: | Size: 799 B |
Before Width: | Height: | Size: 395 B After Width: | Height: | Size: 769 B |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 699 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 488 B |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 646 B |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 600 B |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 756 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 519 B |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 697 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 635 B |
|
@ -64,7 +64,7 @@ const cfu = {
|
|||
if(index==0){
|
||||
return '随便用'+item.data+'年'
|
||||
}else{
|
||||
return item.name+item.data+'天'
|
||||
return item.name+item.data+'%'
|
||||
}
|
||||
},
|
||||
"pieDemo":function(val, index, series){
|
||||
|
|