消息列表接口完毕,客户提的修改完毕(涉及故障--->维保,维修--->维保,实时故障--->实时工单,个人信息页面身份证正反面拆分为两个单独字段)、项目详情接口90%、巡检记录接口完毕、项目列表接口80%

master
chen 2022-04-12 08:50:56 +08:00
parent d63756e6be
commit 487c8099a9
16 changed files with 213 additions and 169 deletions

View File

@ -361,9 +361,11 @@ uni-radio .uni-radio-input {border: 1rpx solid #444444;}
margin-top: 10rpx; margin-top: 10rpx;
} }
/* 消息中心 */ /* 消息中心 */
.message-circle{display: flex;align-items: center;}
.message-circle::before { .message-circle::before {
content: ''; content: '';
display: flex; display: flex;
flex-shrink: 0;
width: 24rpx; width: 24rpx;
height: 24rpx; height: 24rpx;
background-color: #6f91ff; background-color: #6f91ff;
@ -379,3 +381,6 @@ uni-radio .uni-radio-input {border: 1rpx solid #444444;}
.system-notification::before { .system-notification::before {
background-color: #2cfc3b; background-color: #2cfc3b;
} }
.server-message::before {
background-color: #FF0000;
}

View File

@ -37,7 +37,7 @@
<text class="icon-text">正常</text> <text class="icon-text">正常</text>
</view> </view>
<view class="icon1" v-else> <view class="icon1" v-else>
<text class="icon-text">待维</text> <text class="icon-text">待维</text>
</view> </view>
</view> </view>
<view class="li"> <view class="li">
@ -73,7 +73,7 @@
<text class="icon-text">正常</text> <text class="icon-text">正常</text>
</view> </view>
<view class="icon1" v-else> <view class="icon1" v-else>
<text class="icon-text">待维</text> <text class="icon-text">待维</text>
</view> </view>
</view> </view>
<view class="li"> <view class="li">
@ -109,7 +109,7 @@
<text class="icon-text">正常</text> <text class="icon-text">正常</text>
</view> </view>
<view class="icon1" v-else> <view class="icon1" v-else>
<text class="icon-text">待维</text> <text class="icon-text">待维</text>
</view> </view>
</view> </view>
</view> </view>

View File

@ -49,7 +49,7 @@
<view class="last-date-content"> <view class="last-date-content">
<image class="icon" src="../../static/iocn/gzzt.png" mode=""></image> <image class="icon" src="../../static/iocn/gzzt.png" mode=""></image>
<view class="text"> <view class="text">
最近一次故障时间2021-11-18 170016 最近一次维保时间2021-11-18 170016
</view> </view>
</view> </view>
</view> </view>
@ -232,7 +232,7 @@
<view class="list"> <view class="list">
<view class="li pad-z40 fon27 col9" :class="index==0 ? 'activeTrack' : ''" v-for="(item,index) in 10" :key="index"> <view class="li pad-z40 fon27 col9" :class="index==0 ? 'activeTrack' : ''" v-for="(item,index) in 10" :key="index">
<view class="disac fw line-h60"> <view class="disac fw line-h60">
<view class="text">部分模组不显示故障陈志远已处理</view> <view class="text">部分模组不显示维保陈志远已处理</view>
<view class="date">2020-05-15 16:00</view> <view class="date">2020-05-15 16:00</view>
</view> </view>
</view> </view>
@ -260,7 +260,7 @@
interval: 3000, interval: 3000,
index: 1, index: 1,
recordState: [{ recordState: [{
title: '维记录', title: '维记录',
state: true state: true
}, },
{ {

View File

@ -1,6 +1,6 @@
<template> <template>
<view class="content"> <view class="content">
<statusNav navBarTitle="故障统计" returnColor="#c2c2c2"></statusNav> <statusNav navBarTitle="维保统计" returnColor="#c2c2c2"></statusNav>
<container-subgroup-two> <container-subgroup-two>
<view slot="content" style="margin: 0 -30rpx;"> <view slot="content" style="margin: 0 -30rpx;">
<view class="faultStatistics-nav"> <view class="faultStatistics-nav">
@ -33,7 +33,7 @@
</view> </view>
</view> </view>
<view class="fault-type"> <view class="fault-type">
<view class="settlement-type-title">故障类型</view> <view class="settlement-type-title">维保类型</view>
<view class="charts-box"> <view class="charts-box">
<qiun-data-charts type="ring" :chartData="chartData" background="none" /> <qiun-data-charts type="ring" :chartData="chartData" background="none" />
</view> </view>

View File

@ -54,7 +54,7 @@
</view> </view>
<view class="date-con-li"> <view class="date-con-li">
<view class="text"> <view class="text">
项目故障 项目维保
</view> </view>
<view class="single-amount"> <view class="single-amount">
0 0
@ -87,7 +87,7 @@
</view> </view>
<view class="date-con-li"> <view class="date-con-li">
<view class="text"> <view class="text">
项目故障 项目维保
</view> </view>
<view class="single-amount"> <view class="single-amount">
0 0
@ -120,7 +120,7 @@
</view> </view>
<view class="date-con-li"> <view class="date-con-li">
<view class="text"> <view class="text">
项目故障 项目维保
</view> </view>
<view class="single-amount"> <view class="single-amount">
0 0

View File

@ -7,35 +7,25 @@
<view class="details-head"> <view class="details-head">
<view class="swiper-head"> <view class="swiper-head">
<swiper class="swiper" @change="changeAutoplay" :autoplay="autoplay" :interval="interval" circular> <swiper class="swiper" @change="changeAutoplay" :autoplay="autoplay" :interval="interval" circular>
<swiper-item> <swiper-item v-for="(item,index) in projectObj.completed_img" :key="index">
<view class="swiper-item uni-bg-red"> <view class="swiper-item uni-bg-red">
<image class="img" src="../../static/del/img001.png" mode="aspectFill"></image> <image class="img" :src="item" mode="aspectFill"></image>
</view>
</swiper-item>
<swiper-item>
<view class="swiper-item uni-bg-red">
<image class="img" src="../../static/del/img001.png" mode="aspectFill"></image>
</view>
</swiper-item>
<swiper-item>
<view class="swiper-item uni-bg-red">
<image class="img" src="../../static/del/img001.png" mode="aspectFill"></image>
</view> </view>
</swiper-item> </swiper-item>
</swiper> </swiper>
<view class="indication-point fon24 disjcac">{{index}}/3</view> <view class="indication-point fon24 disjcac">{{index}}/{{projectObj.completed_img.length}}</view>
</view> </view>
<view class="title">湖南工业大学生化学院会议室P2.5全彩LED显示屏</view> <view class="title">{{projectObj.project_name}}</view>
<view class="code">XM20220108-1001</view> <view class="code">{{projectObj.project_number}}</view>
<view class="address"> <view class="address">
<image class="img" src="../../static/iocn/im.png" mode=""></image> <image class="img" src="../../static/iocn/im.png" mode=""></image>
<view class="text">湖南省长沙市高新开发区谷园路109号像素大厦1205</view> <view class="text">{{projectObj.address}}</view>
</view> </view>
</view> </view>
<view class="last-date"> <view class="last-date">
<view class="last-date-content"> <view class="last-date-content">
<image class="icon" src="../../static/iocn/gzzt.png" mode=""></image> <image class="icon" src="../../static/iocn/gzzt.png" mode=""></image>
<view class="text">最近一次故障时间2021-11-18 170016</view> <view class="text">最近一次维保时间{{projectObj.downtime}}</view>
</view> </view>
</view> </view>
</view> </view>
@ -44,26 +34,26 @@
<view class="text">项目概况</view> <view class="text">项目概况</view>
</view> </view>
<view class="project-message-content"> <view class="project-message-content">
<view class="li"> <view class="li" v-if="projectObj.product_brand">
<view class="title-one"> <view class="title-one">
<text></text> <text></text>
<text></text> <text></text>
</view> </view>
<view class="text">海康威视</view> <view class="text">{{projectObj.product_brand}}</view>
</view> </view>
<view class="li"> <view class="li" v-if="projectObj.product_model">
<view class="title-one"> <view class="title-one">
<text></text> <text></text>
<text></text> <text></text>
</view> </view>
<view class="text">DS-CK25FI/H</view> <view class="text">{{projectObj.product_model}}</view>
</view> </view>
<view class="li"> <view class="li" v-if="projectObj.product_size">
<view class="title-one"> <view class="title-one">
<text></text> <text></text>
<text></text> <text></text>
</view> </view>
<view class="text">3.94*2.02m</view> <view class="text">{{projectObj.product_size}}</view>
</view> </view>
<view class="li"> <view class="li">
<view class="title">安装位置</view> <view class="title">安装位置</view>
@ -81,14 +71,15 @@
</view> </view>
</view> </view>
<view class="record-content"> <view class="record-content">
<view class="title">追踪</view> <view class="title">追踪</view>
<view class="list"> <view class="list">
<view class="li pad-z40 fon27 col9" :class="index==0 ? 'activeTrack' : ''" v-for="(item,index) in 10" :key="index"> <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="disac fw line-h60">
<view class="text">部分模组不显示故障陈志远已处理</view> <view class="text">{{item.time_line}}</view>
<view class="date">2020-05-15 16:00</view> <!-- <view class="date">2020-05-15 16:00</view> -->
</view> </view>
</view> </view>
<pitera v-if="recordList.length==0" :textStr="nomoreText"></pitera>
</view> </view>
</view> </view>
</view> </view>
@ -99,10 +90,12 @@
<script> <script>
import statusNav from "../../components/status-nav.vue" import statusNav from "../../components/status-nav.vue"
import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue'; import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue';
import pitera from '@/components/nothing/pitera.vue';
export default { export default {
components: { components: {
statusNav, statusNav,
containerSubgroupTwo containerSubgroupTwo,
pitera
}, },
data() { data() {
return { return {
@ -111,7 +104,7 @@
index: 1, index: 1,
projectId: "", projectId: "",
recordState: [{ recordState: [{
title: '维记录', title: '维记录',
state: true state: true
}, },
{ {
@ -122,35 +115,66 @@
title: '巡检记录', title: '巡检记录',
state: false state: false
}, },
] ],
projectObj:'',
typeId:1,// 1 2: 3:
list_rows:200,
page:1,
recordList:[],//
nomoreText:''
} }
}, },
onLoad(option) { onLoad(op) {
this.projectId = option.id this.projectId = op.id
this.getData() this.getData(this.projectId);
this.getRecord();
}, },
methods: { methods: {
//
getRecord(){
let params = {
project_id: this.projectId,
type_id: this.typeId, // 1 2: 3:
list_rows: this.list_rows,
page:this.page
}
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;
}
})
},
changeAutoplay(data) { changeAutoplay(data) {
console.log()
this.index = data.detail.current - 0 + 1 this.index = data.detail.current - 0 + 1
}, },
getData() { getData(id) {
this.$requst.get('/universal/api.project/project_info', { this.$requst.get('/universal/api.project/project_info', {
id: this.projectId, project_id: id,
}).then(res => { }).then(res => {
if (res.code == 1) { if (res.code) {
console.log(res.data.data) this.projectObj = res.data;
console.log(this.projectObj);
} else { } else {
} }
}) })
}, },
recordNav(index) { recordNav(index) {
if(index==0) this.typeId = 1;
if(index==1) this.typeId = 2;
if(index==2) this.typeId = 3;
for (var i = 0; i < this.recordState.length; i++) { for (var i = 0; i < this.recordState.length; i++) {
this.recordState[i].state = false this.recordState[i].state = false
} }
this.recordState[index].state = true this.recordState[index].state = true
this.getRecord();
} }
} }
} }

View File

@ -12,18 +12,17 @@
</view> </view>
</view> </view>
<view class="screen bbot mar-sx20"> <view class="screen bbot mar-sx20">
<picker class="width30 disjcac" @change="bindPickerChange" :value="index" :range="array" :range-key="'title'"> <picker class="width30 disjcac" @change="bindPickerChange" :value="index" :range="array" :range-key="'name'">
<view class="li"> <view class="li">
<view v-if="initial_value!=''" class="text">{{initial_value}}</view> <view v-if="initial_value!=''" class="text">{{initial_value}}</view>
<view v-else class="text">{{array[index].title}}</view> <view v-else class="text clips1">{{array[index].name}}</view>
<image class="img" src="../../static/iocn/xla.png" mode="aspectFill" lazy-load></image> <image class="img" src="../../static/iocn/xla.png" mode="aspectFill" lazy-load></image>
</view> </view>
</picker> </picker>
<picker class="width30 disjcac" mode="date" :value="date" @change="bindDateChange"> <picker class="width30 disjcac" mode="date" :value="date" @change="bindDateChange">
<view class="li"> <view class="li">
<view class="text">竣工日期</view> <view class="text">{{completion_time || '竣工日期'}}</view>
<image class="img" src="../../static/iocn/xla.png" mode="aspectFill" lazy-load> <image class="img" src="../../static/iocn/xla.png" mode="aspectFill" lazy-load></image>
</image>
</view> </view>
</picker> </picker>
<view class="li width30 disjcac"> <view class="li width30 disjcac">
@ -33,17 +32,16 @@
</view> </view>
</view> </view>
<view class="project-list"> <view class="project-list">
<view class="li" @click="projectDetailsFun(item.id)" v-for="(item,index) in dataList.data" :key="index"> <view class="li" @click="projectDetailsFun(item.project_id)" v-for="(item,index) in dataList.data" :key="index">
<view class="message"> <view class="message">
<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 disjb fc" style="height: 180rpx;"> <view class="text disjb fc" style="height: 180rpx;">
<view class="clips1 fon24 bold">{{item.project_name}}</view> <view class="clips1 fon24 bold">{{item.project_name}}</view>
<view class="disjb fc" style="margin-left: -20rpx;height: 80%;"> <view class="line-h38" style="margin-left: -20rpx;height: 80%;">
<view class="serial-number scal09">项目编号{{item.projectCode}}</view> <view class="serial-number scal09" v-if="item.project_number">{{item.project_number}}</view>
<view class="specification scal09">规格型号{{item.project_number}}</view> <view class="specification scal09" v-if="item.product_model">{{item.product_model}}</view>
<view class="specification scal09">产品尺寸{{item.size}}</view> <view class="specification scal09" v-if="item.product_size">{{item.product_size}}</view>
<view class="installation-site scal09">安装位置{{item.installation_location}} <view class="installation-site scal09" v-if="item.installation_location">{{item.installation_location}}</view>
</view>
</view> </view>
</view> </view>
</view> </view>
@ -54,12 +52,14 @@
<view class="text scal09" style="margin-left: -26rpx;">{{item.address}} <view class="text scal09" style="margin-left: -26rpx;">{{item.address}}
</view> </view>
</view> </view>
<view class="date scal09">{{item.date}}</view> <view class="date scal09 flexs">{{item.joint_starting_times}}</view>
</view> </view>
<view v-if="item.warranty_time==1" class="icon iconBera"></view> <view v-if="item.warranty_time==1" class="icon iconBera"></view>
<view v-else class="icon iconBer">质保到期</view> <view v-else class="icon iconBer">质保到期</view>
</view> </view>
<pitera v-if="total==dataList.data.length && dataList.data.length" textStr="暂无更多项目列表数据"></pitera>
</view> </view>
<nothing-page v-if="dataList.data.length==0" content="暂无更多项目列表数据"></nothing-page>
</view> </view>
</container-subgroup-two> </container-subgroup-two>
<footTabOne :current="1"></footTabOne> <footTabOne :current="1"></footTabOne>
@ -70,11 +70,13 @@
import statusNav from '../../components/status-nav.vue'; import statusNav from '../../components/status-nav.vue';
import footTabOne from "../../components/foot-tabs/foot-tab-one.vue" import footTabOne from "../../components/foot-tabs/foot-tab-one.vue"
import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue'; import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue';
import pitera from '@/components/nothing/pitera.vue';
export default { export default {
components: { components: {
footTabOne, footTabOne,
statusNav, statusNav,
containerSubgroupTwo containerSubgroupTwo,
pitera
}, },
data() { data() {
const currentDate = this.getDate({ const currentDate = this.getDate({
@ -85,15 +87,7 @@
inputData: "", inputData: "",
date: currentDate, date: currentDate,
initial_value:'产品类型', initial_value:'产品类型',
array: [{ array: [],
title: "质保中",
key: 0,
}, {
title: "质保到期",
key: 1
}, ],
index: 0, index: 0,
statusHeight: uni.getSystemInfoSync().statusBarHeight + 40, statusHeight: uni.getSystemInfoSync().statusBarHeight + 40,
dataList: { dataList: {
@ -101,27 +95,37 @@
page: 1, page: 1,
data: [ data: [
] ]
} },
productType:'',//id
completion_time:'',//
total:''//
} }
}, },
onReachBottom() {
if(this.total!=this.dataList.data.length) {
this.dataList.page++;
this.getData();
}
},
onLoad() { onLoad() {
this.getData() this.getData()
//
this.getProjectType();
}, },
methods: { methods: {
//
getData() { getData() {
if(this.dataList.page==1) this.dataList.data = [];
this.$requst.get('/universal/api.project/project_list', { this.$requst.get('/universal/api.project/project_list', {
product_type:this.productType,
completion_time:this.completion_time,
list_rows: this.dataList.list_rows, list_rows: this.dataList.list_rows,
page: this.dataList.page, page: this.dataList.page
}).then(res => { }).then(res => {
// this.$toolAll.tools.showToast(res.msg); if (res.code) {
console.log(res.data.data) //
if (res.code == 1) { this.total = res.data.total;
this.dataList.data = res.data.data this.dataList.data = [...this.dataList.data,...res.data.data];
} else {
} }
}) })
}, },
@ -130,30 +134,31 @@
url: `/pages/project/details?id=${id}` url: `/pages/project/details?id=${id}`
}) })
}, },
// //
inquireProject() { getProjectType(){
this.$requst.get('/universal/api.project/project_type').then(res=>{
this.$requst.post('/universal/api.project/project_list', { if(res.code) {
list_rows: this.dataList.list_rows, this.array = res.data;
page: this.dataList.page, }
value: this.inputData, })
}).then(res => { },
// this.$toolAll.tools.showToast(res.msg);
if (res.code == 0) {
console.log(res.data.data)
// this.dataList = res.data.data
} else {
}
})
},
bindPickerChange(data) { bindPickerChange(data) {
console.log(data) // console.log(data)
this.initial_value = ''; this.initial_value = '';
this.index = data.detail.value; this.index = data.detail.value;
this.dataList.page = 1;
// id
this.productType = this.array[this.index].id;
//
this.getData();
}, },
bindDateChange(date) { bindDateChange(date) {
console.log(date) // console.log(date)
this.dataList.page = 1;
//
this.completion_time = date.detail.value;
//
this.getData();
}, },
getDate(type) { getDate(type) {
const date = new Date(); const date = new Date();

View File

@ -12,10 +12,10 @@
<view class="repairs-hint padding"> <view class="repairs-hint padding">
<image class="icon" src="../../static/iocn/lp.png" mode="aspectFill"></image> <image class="icon" src="../../static/iocn/lp.png" mode="aspectFill"></image>
<view class="text"> <view class="text">
请务必拍好故障照片或视频上传,便于技术工程师作为判断依据,带齐 相关维保设备高效为您提供服务 请务必拍好维保照片或视频上传,便于技术工程师作为判断依据,带齐 相关维保设备高效为您提供服务
</view> </view>
</view> </view>
<view class="fault-type-title padding">故障类型</view> <view class="fault-type-title padding">维保类型</view>
<view class="padding fault-type-content"> <view class="padding fault-type-content">
<view class="li" @click="repairsTypeFun(index)" :class="index==indexType?'on':''" <view class="li" @click="repairsTypeFun(index)" :class="index==indexType?'on':''"
v-for="(item,index) in faultTypeData"> v-for="(item,index) in faultTypeData">
@ -33,10 +33,10 @@
mode="aspectFill"></image> mode="aspectFill"></image>
<view class="fault-pictures-con" v-else> <view class="fault-pictures-con" v-else>
<image class="img" src="../../static/iocn/gz.png" lazy-load mode="aspectFill"></image> <image class="img" src="../../static/iocn/gz.png" lazy-load mode="aspectFill"></image>
<view class="text">添加故障图片</view> <view class="text">添加维保图片</view>
</view> </view>
</view> </view>
<textarea v-model="data.fault_describe" class="fault-description radius10" placeholder="故障情况描述" <textarea v-model="data.fault_describe" class="fault-description radius10" placeholder="维保情况描述"
placeholder-class="fault-description-text" /> placeholder-class="fault-description-text" />
<view class="detailed-address inputCss"> <view class="detailed-address inputCss">
<input type="text" v-model="data.service_address" class="fon26 width100" <input type="text" v-model="data.service_address" class="fon26 width100"
@ -52,7 +52,7 @@
placeholder="请选择上门时间" placeholder-class="inputCss-input" /> 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 ref="myPicker" @submit="handleSubmit" :start-year="2022" :end-year="2122">
</yy-mm-dd-hh-ss> </yy-mm-dd-hh-ss>
<button class="submit-button" @click="submitButton()" type="default">提交故障申报</button> <button class="submit-button" @click="submitButton()" type="default">提交维保申报</button>
</view> </view>
</view> </view>
</container-subgroup> </container-subgroup>
@ -105,7 +105,7 @@
}, },
methods: { methods: {
// //
getType() { getType() {
// /universal/api.order/fault_type // /universal/api.order/fault_type
this.$requst.post('/universal/api.work_order/fault_type').then(res => { this.$requst.post('/universal/api.work_order/fault_type').then(res => {

View File

@ -41,7 +41,7 @@
</view> </view>
<view class="bleft" style="height: 90rpx;"></view> <view class="bleft" style="height: 90rpx;"></view>
<view class="disjcac fc width50"> <view class="disjcac fc width50">
<view class="fon26 col9">实时故障</view> <view class="fon26 col9">实时工单</view>
<view class="fon60 bold">116</view> <view class="fon60 bold">116</view>
</view> </view>
</view> </view>
@ -91,9 +91,9 @@
</view> </view>
<!-- 工程师可见 --> <!-- 工程师可见 -->
<view v-if="role==4 || role==3"> <view v-if="role==4 || role==3">
<!-- 项目维 --> <!-- 项目维 -->
<view class="home-fun-box" v-if="role==4"> <view class="home-fun-box" v-if="role==4">
<view class="fun-title col3 fon28 disac bold">项目维</view> <view class="fun-title col3 fon28 disac bold">项目维</view>
<view class="disac mar-s40"> <view class="disac mar-s40">
<view @tap="stayEv(item.title,item.id)" class="disjcac fc width25" v-for="(item,index) in projectRepairList" :key="index"> <view @tap="stayEv(item.title,item.id)" class="disjcac fc width25" v-for="(item,index) in projectRepairList" :key="index">
<view class="posir" style="height: 58rpx;"> <view class="posir" style="height: 58rpx;">
@ -250,7 +250,7 @@
role: uni.getStorageSync('type_id'), // 1 2: 3: 4 role: uni.getStorageSync('type_id'), // 1 2: 3: 4
statusHeight: uni.getSystemInfoSync().statusBarHeight + 50, statusHeight: uni.getSystemInfoSync().statusBarHeight + 50,
messageNumber: 16 ,// messageNumber: 16 ,//
noticeList:[{id:1,title:'2021年11月06日公司团建服务暂停一天服务暂停一天服务暂停一天。一天服务暂停一天服务暂停一天。'}],// noticeList:[{id:1,title:'2021年11月06日公司团建服务暂停一天服务暂停一天服务暂停一天。一天服务暂停一天服务暂停一天。'}],//
// //
repairList:[ repairList:[
{imgsrc:'/static/public/icon-home-repair.png',title:'报修'}, {imgsrc:'/static/public/icon-home-repair.png',title:'报修'},
@ -266,7 +266,7 @@
], ],
// //
otherList:[ otherList:[
{imgsrc:'/static/public/icon-home-largeScreen.png',title:'故障统计'}, {imgsrc:'/static/public/icon-home-largeScreen.png',title:'维保统计'},
{imgsrc:'/static/public/icon-home-reportForm.png',title:'数据看板'}, {imgsrc:'/static/public/icon-home-reportForm.png',title:'数据看板'},
{imgsrc:'/static/public/icon-home-product.png',title:'新产品'}, {imgsrc:'/static/public/icon-home-product.png',title:'新产品'},
], ],
@ -277,11 +277,11 @@
{imgsrc:'/static/deleteImg/flying-img03.png',title:'会议室解决方案'}, {imgsrc:'/static/deleteImg/flying-img03.png',title:'会议室解决方案'},
{imgsrc:'/static/deleteImg/flying-img04.png',title:'实体店解决方案'}, {imgsrc:'/static/deleteImg/flying-img04.png',title:'实体店解决方案'},
], ],
// //
projectRepairList:[ projectRepairList:[
{imgsrc:'/static/public/icon-home-staySingle.png',title:'待接单',num:0,id:2}, {imgsrc:'/static/public/icon-home-staySingle.png',title:'待接单',num:0,id:2},
{imgsrc:'/static/public/icon-home-stayImplement.png',title:'待执行',num:99,id:0}, {imgsrc:'/static/public/icon-home-stayImplement.png',title:'待执行',num:99,id:0},
{imgsrc:'/static/public/icon-home-repairIng.png',title:'维中',num:6,id:4}, {imgsrc:'/static/public/icon-home-repairIng.png',title:'维中',num:6,id:4},
], ],
// //
workOrderList:[ workOrderList:[
@ -300,7 +300,7 @@
stayWorkOrderList:[ stayWorkOrderList:[
{imgsrc:'/static/public/icon-home-stayImplement.png',title:'待受理',num:0,id:0}, {imgsrc:'/static/public/icon-home-stayImplement.png',title:'待受理',num:0,id:0},
{imgsrc:'/static/public/icon-home-stayAssign.png',title:'待指派',num:6,id:0}, {imgsrc:'/static/public/icon-home-stayAssign.png',title:'待指派',num:6,id:0},
{imgsrc:'/static/public/icon-home-stayRepair.png',title:'待维',num:6,id:3}, {imgsrc:'/static/public/icon-home-stayRepair.png',title:'待维',num:6,id:3},
{imgsrc:'/static/public/icon-home-returnVisit.png',title:'待回访',num:0,id:8}, {imgsrc:'/static/public/icon-home-returnVisit.png',title:'待回访',num:0,id:8},
], ],
// //

View File

@ -38,7 +38,7 @@
<input type="text" disabled class="input" placeholder="" value="详细地址+某某栋11楼会议室" /> <input type="text" disabled class="input" placeholder="" value="详细地址+某某栋11楼会议室" />
</view> </view>
<view class="li"> <view class="li">
<view class="title">故障类型</view> <view class="title">维保类型</view>
<input type="text" class="input" placeholder="" value="供电不足" /> <input type="text" class="input" placeholder="" value="供电不足" />
</view> </view>
<view class="li"> <view class="li">
@ -46,13 +46,13 @@
<input type="text" disabled class="input" placeholder="" value="紧急" /> <input type="text" disabled class="input" placeholder="" value="紧急" />
</view> </view>
<view class="li"> <view class="li">
<view class="title">故障说明</view> <view class="title">维保说明</view>
<textarea auto-height disabled class="input" <textarea auto-height disabled class="input"
value="*********************************************************************************************************" value="*********************************************************************************************************"
placeholder="" /> placeholder="" />
</view> </view>
<view class="li"> <view class="li">
<view class="title">故障图片</view> <view class="title">维保图片</view>
<view class="input"> <view class="input">
<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>
<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>
@ -142,7 +142,7 @@
</view> </view>
</view> </view>
<view class="li"> <view class="li">
<view class="title">故障原因</view> <view class="title">维保原因</view>
<textarea auto-height disabled class="input " <textarea auto-height disabled class="input "
value="*********************************************************************************************************" value="*********************************************************************************************************"
placeholder="" /> placeholder="" />
@ -220,7 +220,7 @@
<view class="list"> <view class="list">
<view class="li pad-z40 fon27 col9 pad-x20" :class="index==0 ? 'activeTrack' : ''" v-for="(item,index) in 10" :key="index"> <view class="li pad-z40 fon27 col9 pad-x20" :class="index==0 ? 'activeTrack' : ''" v-for="(item,index) in 10" :key="index">
<view class="disac fw line-h40"> <view class="disac fw line-h40">
<view class="text">部分模组不显示故障陈志远已处理</view> <view class="text">部分模组不显示维保陈志远已处理</view>
<view class="date">2020-05-15 16:00</view> <view class="date">2020-05-15 16:00</view>
</view> </view>
</view> </view>

View File

@ -39,19 +39,19 @@
<input type="text" class="input" v-model="targetObj.installLocation" placeholder="请填写安装位置(例:详细地址+某某栋11楼会议室)" :style="{color: targetObj.installLocation!='' ? '#000' : ''}" /> <input type="text" class="input" v-model="targetObj.installLocation" placeholder="请填写安装位置(例:详细地址+某某栋11楼会议室)" :style="{color: targetObj.installLocation!='' ? '#000' : ''}" />
</view> </view>
<view class="li"> <view class="li">
<view class="title flexs">故障类型</view> <view class="title flexs">维保类型</view>
<input type="text" class="input" v-model="targetObj.faultType" placeholder="请填写故障类型(例:供电不足)" :style="{color: targetObj.faultType!='' ? '#000' : ''}" /> <input type="text" class="input" v-model="targetObj.faultType" placeholder="请填写维保类型(例:供电不足)" :style="{color: targetObj.faultType!='' ? '#000' : ''}" />
</view> </view>
<view class="li"> <view class="li">
<view class="title flexs">紧急程度</view> <view class="title flexs">紧急程度</view>
<input type="text" disabled class="input" placeholder="" :value="targetObj.urgentDegree" /> <input type="text" disabled class="input" placeholder="" :value="targetObj.urgentDegree" />
</view> </view>
<view class="li"> <view class="li">
<view class="title flexs"> 故障说明</view> <view class="title flexs"> 维保说明</view>
<textarea class="input line-h36" v-model="targetObj.faultExplain" style="height: 110rpx;" placeholder="请输入故障说明" :style="{color: targetObj.faultExplain!='' ? '#000' : ''}" /> <textarea class="input line-h36" v-model="targetObj.faultExplain" style="height: 110rpx;" placeholder="请输入维保说明" :style="{color: targetObj.faultExplain!='' ? '#000' : ''}" />
</view> </view>
<view class="li"> <view class="li">
<view class="title flexs">故障图片</view> <view class="title flexs">维保图片</view>
<view class="input"> <view class="input">
<view v-for="(item,index) in targetObj.faultImgList" :key="index" v-if="targetObj.faultImgList.length!=0"> <view v-for="(item,index) in targetObj.faultImgList" :key="index" v-if="targetObj.faultImgList.length!=0">
<image class="img" :src="item" mode="aspectFill" ></image> <image class="img" :src="item" mode="aspectFill" ></image>
@ -104,10 +104,10 @@
projectName:'湖南省林业科学院11楼会议室P2.5', // projectName:'湖南省林业科学院11楼会议室P2.5', //
productType:'一拳超人', // productType:'一拳超人', //
installLocation:'手臂', // installLocation:'手臂', //
faultType:'脱节', // faultType:'脱节', //
urgentDegree:'紧急', // urgentDegree:'紧急', //
faultExplain:'摔了一跤', // faultExplain:'摔了一跤', //
faultImgList:[], // faultImgList:[], //
reporter:'林某', // reporter:'林某', //
declarationTime:'2022/3/31 12:01:00', // declarationTime:'2022/3/31 12:01:00', //
serviceMode: '手把手' ,// serviceMode: '手把手' ,//
@ -120,7 +120,7 @@
ifParts:false,// ifParts:false,//
workDescribe:'',// workDescribe:'',//
maintenanceImgList:[],// maintenanceImgList:[],//
faultReason:'',// faultReason:'',//
maintenancePersonnel:''// maintenancePersonnel:''//
}, },
flag:true flag:true
@ -177,11 +177,11 @@
} else if(!this.targetObj.installLocation) { } else if(!this.targetObj.installLocation) {
this.$toolAll.tools.showToast('请填写安装位置'); this.$toolAll.tools.showToast('请填写安装位置');
} else if(!this.targetObj.faultType) { } else if(!this.targetObj.faultType) {
this.$toolAll.tools.showToast('请填写故障类型'); this.$toolAll.tools.showToast('请填写维保类型');
} else if(!this.targetObj.faultExplain) { } else if(!this.targetObj.faultExplain) {
this.$toolAll.tools.showToast('请填写故障说明'); this.$toolAll.tools.showToast('请填写维保说明');
} else if(this.targetObj.faultImgList.length==0) { } else if(this.targetObj.faultImgList.length==0) {
this.$toolAll.tools.showToast('请添加故障图片'); this.$toolAll.tools.showToast('请添加维保图片');
} else if(!this.targetObj.serviceMode) { } else if(!this.targetObj.serviceMode) {
this.$toolAll.tools.showToast('请填写服务方式'); this.$toolAll.tools.showToast('请填写服务方式');
} else { } else {

View File

@ -50,7 +50,7 @@
紧急程度<view class="text"> {{item.emergency_level_view}}</view> 紧急程度<view class="text"> {{item.emergency_level_view}}</view>
</view> </view>
<view class="specification scal09">主负责人{{item.principal}}</view> <view class="specification scal09">主负责人{{item.principal}}</view>
<view class="installation-site scal09 clips1">故障描述{{item.failure_description}}</view> <view class="installation-site scal09 clips1">维保描述{{item.failure_description}}</view>
</view> </view>
</view> </view>
</view> </view>

View File

@ -39,7 +39,7 @@
<input type="text" class="input input-black" disabled :value="targetObj.installLocation" /> <input type="text" class="input input-black" disabled :value="targetObj.installLocation" />
</view> </view>
<view class="li"> <view class="li">
<view class="title">故障类型</view> <view class="title">维保类型</view>
<input type="text" class="input input-black" disabled :value="targetObj.faultType" /> <input type="text" class="input input-black" disabled :value="targetObj.faultType" />
</view> </view>
<view class="li"> <view class="li">
@ -47,11 +47,11 @@
<input type="text" class="input input-black" disabled :value="targetObj.serviceMode" /> <input type="text" class="input input-black" disabled :value="targetObj.serviceMode" />
</view> </view>
<view class="li"> <view class="li">
<view class="title">故障说明</view> <view class="title">维保说明</view>
<textarea auto-height disabled class="input input-black" :value="targetObj.faultExplain" /> <textarea auto-height disabled class="input input-black" :value="targetObj.faultExplain" />
</view> </view>
<view class="li"> <view class="li">
<view class="title">故障图片</view> <view class="title">维保图片</view>
<view class="input add-display"> <view class="input add-display">
<view class=""> <view class="">
<image class="img" v-for="(item,index) in targetObj.faultImgList" :src="item" mode="aspectFill" lazy-load></image> <image class="img" v-for="(item,index) in targetObj.faultImgList" :src="item" mode="aspectFill" lazy-load></image>
@ -122,8 +122,8 @@
</view> </view>
</view> </view>
<view class="li"> <view class="li">
<view class="title">故障原因</view> <view class="title">维保原因</view>
<textarea maxlength="-1" v-model="targetObj.faultReason" class="input input-black line-h36" placeholder="请填写故障原因" style="height: 110rpx;" /> <textarea maxlength="-1" v-model="targetObj.faultReason" class="input input-black line-h36" placeholder="请填写维保原因" style="height: 110rpx;" />
</view> </view>
<view class="li"> <view class="li">
<view class="title">维保人员</view> <view class="title">维保人员</view>
@ -235,7 +235,7 @@
} else if(this.targetObj.maintenanceImgList.length==0) { } else if(this.targetObj.maintenanceImgList.length==0) {
this.$toolAll.tools.showToast('请上传维保图片'); this.$toolAll.tools.showToast('请上传维保图片');
} else if(!this.targetObj.faultReason) { } else if(!this.targetObj.faultReason) {
this.$toolAll.tools.showToast('请填写故障原因'); this.$toolAll.tools.showToast('请填写维保原因');
} else if(!this.targetObj.maintenancePersonnel) { } else if(!this.targetObj.maintenancePersonnel) {
this.$toolAll.tools.showToast('请填写维保人员'); this.$toolAll.tools.showToast('请填写维保人员');
} else { } else {

View File

@ -7,10 +7,11 @@
</view> </view>
<container-subgroup> <container-subgroup>
<view slot="content"> <view slot="content">
<view @longtap.stop="longTap(index)" @tap="chooseDel(index,item.id)" class="mar-x10 bacf" :style="{backgroundColor: (ifDel && item.status) ? '#dddddd' :''}" v-for="(item,index) in dataList" :key="index"> <!-- <view @longtap.stop="longTap(index)" @tap="chooseDel(index,item.id)" class="mar-x10 bacf" :style="{backgroundColor: (ifDel && item.status) ? '#dddddd' :''}" v-for="(item,index) in dataList" :key="index"> -->
<view class="mar-x10 bacf" :style="{backgroundColor: (ifDel && item.status) ? '#dddddd' :''}" v-for="(item,index) in dataList" :key="index">
<view class="pad-sx30 pad-zy20 disjbac"> <view class="pad-sx30 pad-zy20 disjbac">
<view class="fon30 message-circle disac" :class="['activity-message','audit-failed','system-notification'][index]">{{item.title}}{{item.id}}</view> <view class="fon30 message-circle disac" :class="['','system-notification','activity-message','server-message','audit-failed'][item.message_type]"><view class="clips1 mar-y20">{{item.title}}</view></view>
<view class="fon26 col9">{{item.time}}</view> <view class="fon26 col9 flexs">{{item.time}}</view>
</view> </view>
<view class="bbot"></view> <view class="bbot"></view>
<view class="fon27 line-h46 pad-zy20 pad-sx30" style="color: #737373;">{{item.content}}</view> <view class="fon27 line-h46 pad-zy20 pad-sx30" style="color: #737373;">{{item.content}}</view>
@ -34,20 +35,7 @@
newTop: uni.getSystemInfoSync().statusBarHeight + 40, newTop: uni.getSystemInfoSync().statusBarHeight + 40,
ifDel:false, ifDel:false,
total:12, total:12,
dataList:[ dataList:[],
{id:1,title:'活动消息',time:'2020.06.17 18:30',content:'恭喜您成为第99位会员我们将赠送您一张优惠 券您可以享受8折优惠购买....',status:false},
{id:2,title:'活动消息',time:'2020.06.17 18:30',content:'恭喜您成为第99位会员我们将赠送您一张优惠 券您可以享受8折优惠购买....',status:false},
{id:3,title:'活动消息',time:'2020.06.17 18:30',content:'恭喜您成为第99位会员我们将赠送您一张优惠 券您可以享受8折优惠购买....',status:false},
{id:4,title:'活动消息',time:'2020.06.17 18:30',content:'恭喜您成为第99位会员我们将赠送您一张优惠 券您可以享受8折优惠购买....',status:false},
{id:5,title:'活动消息',time:'2020.06.17 18:30',content:'恭喜您成为第99位会员我们将赠送您一张优惠 券您可以享受8折优惠购买....',status:false},
{id:6,title:'活动消息',time:'2020.06.17 18:30',content:'恭喜您成为第99位会员我们将赠送您一张优惠 券您可以享受8折优惠购买....',status:false},
{id:7,title:'活动消息',time:'2020.06.17 18:30',content:'恭喜您成为第99位会员我们将赠送您一张优惠 券您可以享受8折优惠购买....',status:false},
{id:8,title:'活动消息',time:'2020.06.17 18:30',content:'恭喜您成为第99位会员我们将赠送您一张优惠 券您可以享受8折优惠购买....',status:false},
{id:9,title:'活动消息',time:'2020.06.17 18:30',content:'恭喜您成为第99位会员我们将赠送您一张优惠 券您可以享受8折优惠购买....',status:false},
{id:10,title:'活动消息',time:'2020.06.17 18:30',content:'恭喜您成为第99位会员我们将赠送您一张优惠 券您可以享受8折优惠购买....',status:false},
{id:11,title:'活动消息',time:'2020.06.17 18:30',content:'恭喜您成为第99位会员我们将赠送您一张优惠 券您可以享受8折优惠购买....',status:false},
{id:12,title:'活动消息',time:'2020.06.17 18:30',content:'恭喜您成为第99位会员我们将赠送您一张优惠 券您可以享受8折优惠购买....',status:false},
],
delArrId:[] delArrId:[]
} }
}, },
@ -58,7 +46,22 @@
// //
getMessageList(){ getMessageList(){
this.$requst.get('/universal/api.message/message_list',{page: 1,list_rows: 200}).then(res=>{ this.$requst.get('/universal/api.message/message_list',{page: 1,list_rows: 200}).then(res=>{
if(res.code) {
if(res.data.data.length) {
res.data.data.forEach(item=>{
let obj = {
id:item.message_id,
title:item.title,
content:item.content,
time:item.create_time,
is_read:item.is_read,
message_type:item.message_type,
status:false
}
this.dataList.push(obj);
})
}
}
}) })
}, },
// //

View File

@ -66,7 +66,7 @@
</view> </view>
<view class="fon24 disjbac mar-sx10"> <view class="fon24 disjbac mar-sx10">
<view class="col9">工单编号{{item.number}}</view> <view class="col9">工单编号{{item.number}}</view>
<view style="color: #00a2e9;">故障类型{{item.type}}</view> <view style="color: #00a2e9;">维保类型{{item.type}}</view>
</view> </view>
<view class="fon24"> <view class="fon24">
<view class="col9 disac width100"> <view class="col9 disac width100">
@ -110,10 +110,10 @@
{prices:'1088',workOrderNum:'GD20220112-1001',way:'现金',date:'2019-7-24'}, {prices:'1088',workOrderNum:'GD20220112-1001',way:'现金',date:'2019-7-24'},
], ],
unsettledList:[ unsettledList:[
{id:1,title:'株洲市XXX项目名称',name:'林小雨',number:'GD20220112-1001',date:'2022-01-12 13:25:16',type:'模组故障',status:'维保已完成',address:'湖南省长沙市xx区1001栋6-12',priceo:'260.0'}, {id:1,title:'株洲市XXX项目名称',name:'林小雨',number:'GD20220112-1001',date:'2022-01-12 13:25:16',type:'模组维保',status:'维保已完成',address:'湖南省长沙市xx区1001栋6-12',priceo:'260.0'},
{id:2,title:'株洲市XXX项目名称',name:'林小雨',number:'GD20220112-1001',date:'2022-01-12 13:25:16',type:'模组故障',status:'维保已完成',address:'湖南省长沙市xx区1001栋6-12',priceo:'260.0'}, {id:2,title:'株洲市XXX项目名称',name:'林小雨',number:'GD20220112-1001',date:'2022-01-12 13:25:16',type:'模组维保',status:'维保已完成',address:'湖南省长沙市xx区1001栋6-12',priceo:'260.0'},
{id:3,title:'株洲市XXX项目名称',name:'林小雨',number:'GD20220112-1001',date:'2022-01-12 13:25:16',type:'模组故障',status:'维保已完成',address:'湖南省长沙市xx区1001栋6-12',priceo:'260.0'}, {id:3,title:'株洲市XXX项目名称',name:'林小雨',number:'GD20220112-1001',date:'2022-01-12 13:25:16',type:'模组维保',status:'维保已完成',address:'湖南省长沙市xx区1001栋6-12',priceo:'260.0'},
{id:4,title:'株洲市XXX项目名称',name:'林小雨',number:'GD20220112-1001',date:'2022-01-12 13:25:16',type:'模组故障',status:'维保已完成',address:'湖南省长沙市xx区1001栋6-12',priceo:'260.0'}, {id:4,title:'株洲市XXX项目名称',name:'林小雨',number:'GD20220112-1001',date:'2022-01-12 13:25:16',type:'模组维保',status:'维保已完成',address:'湖南省长沙市xx区1001栋6-12',priceo:'260.0'},
], ],
ifDetail:false ifDetail:false
} }

View File

@ -48,33 +48,40 @@
</view> </view>
</view> </view>
<view class="bacf pad-sx30 pad-zy40 disac bbot"> <view class="bacf pad-sx30 pad-zy40 disac bbot">
<view class="bold width30 flexs">身份证正</view> <view class="bold width30 flexs">身份证正</view>
<view style="color: #f26803;" class="width100 disjbac"> <view style="color: #f26803;" class="width100 disjbac">
<text @tap="previewImageEv(0)"></text> <text @tap="previewImageEv(0)"></text>
<image @tap="uploadImgEv(0)" src="/static/public/icon-personInfo-upload.png" mode="widthFix" lazy-load style="width: 128rpx;height: 50rpx;"></image> <image @tap="uploadImgEv(0)" src="/static/public/icon-personInfo-upload.png" mode="widthFix" lazy-load style="width: 128rpx;height: 50rpx;"></image>
</view> </view>
</view> </view>
<view class="bacf pad-sx30 pad-zy40 disac bbot"> <view class="bacf pad-sx30 pad-zy40 disac bbot">
<view class="bold width30 flexs">意外险材料</view> <view class="bold width30 flexs">身份证反面</view>
<view style="color: #f26803;" class="width100 disjbac"> <view style="color: #f26803;" class="width100 disjbac">
<text @tap="previewImageEv(1)"></text> <text @tap="previewImageEv(1)"></text>
<image @tap="uploadImgEv(1)" src="/static/public/icon-personInfo-upload.png" mode="widthFix" lazy-load style="width: 128rpx;height: 50rpx;"></image> <image @tap="uploadImgEv(1)" src="/static/public/icon-personInfo-upload.png" mode="widthFix" lazy-load style="width: 128rpx;height: 50rpx;"></image>
</view> </view>
</view> </view>
<view class="bacf pad-sx30 pad-zy40 disac bbot"> <view class="bacf pad-sx30 pad-zy40 disac bbot">
<view class="bold flexs mar-y40">签署工程师合作协议</view> <view class="bold width30 flexs">意外险材料</view>
<view style="color: #f26803;" class="width100 disjbac"> <view style="color: #f26803;" class="width100 disjbac">
<text @tap="previewImageEv(2)"></text> <text @tap="previewImageEv(2)"></text>
<image @tap="uploadImgEv(2)" src="/static/public/icon-personInfo-upload.png" mode="widthFix" lazy-load style="width: 128rpx;height: 50rpx;"></image> <image @tap="uploadImgEv(2)" src="/static/public/icon-personInfo-upload.png" mode="widthFix" lazy-load style="width: 128rpx;height: 50rpx;"></image>
</view> </view>
</view> </view>
<view class="bacf pad-sx30 pad-zy40 disac bbot"> <view class="bacf pad-sx30 pad-zy40 disac bbot">
<view class="bold width30 flexs">技能证书</view> <view class="bold flexs mar-y40">签署工程师合作协议</view>
<view style="color: #f26803;" class="width100 disjbac"> <view style="color: #f26803;" class="width100 disjbac">
<text @tap="previewImageEv(3)"></text> <text @tap="previewImageEv(3)"></text>
<image @tap="uploadImgEv(3)" src="/static/public/icon-personInfo-upload.png" mode="widthFix" lazy-load style="width: 128rpx;height: 50rpx;"></image> <image @tap="uploadImgEv(3)" src="/static/public/icon-personInfo-upload.png" mode="widthFix" lazy-load style="width: 128rpx;height: 50rpx;"></image>
</view> </view>
</view> </view>
<view class="bacf pad-sx30 pad-zy40 disac bbot">
<view class="bold width30 flexs">技能证书</view>
<view style="color: #f26803;" class="width100 disjbac">
<text @tap="previewImageEv(4)"></text>
<image @tap="uploadImgEv(4)" src="/static/public/icon-personInfo-upload.png" mode="widthFix" lazy-load style="width: 128rpx;height: 50rpx;"></image>
</view>
</view>
</view> </view>
<view class="person-btn" @tap="sumbmitData"></view> <view class="person-btn" @tap="sumbmitData"></view>
</view> </view>