Explorar el Código

视频巡店接口对接

lilei hace 4 años
padre
commit
36ff36f04d

+ 1 - 1
hybrid/html/css/styles.less

@@ -134,7 +134,7 @@ body{
 					color: #666;
 					margin-left: 15px;
 				}
-				.choose-bhs{
+				.choose-bsy{
 					color: #13C2C2;
 				}
 				.choose-bhg{

+ 75 - 67
hybrid/html/video.html

@@ -76,69 +76,38 @@
         </div>
         <div class="checkWork-head-row">
           <div>
-            <div>进度:2/13</div>
-            <div>耗时:{{tj.haoshi}}</div>
-            <!-- <div>得分:10.2/22.3</div> -->
+            <div>进度:{{kptj.finishedTargetCount}}/{{kptj.totalTargetCount}}</div>
+            <div>耗时:{{kptj.haoshi}}</div>
+            <!-- <div>得分:{{kptj.getScore}}/{{kptj.totalScore}}</div> -->
           </div>
           <div>
-            <div>不适用:0</div>
-            <div>不合格:3</div>
-            <div>合格:5</div>
+            <div>不适用:{{kptj.notWorkTargetCount}}</div>
+            <div>不合格:{{kptj.notPassTargetCount}}</div>
+            <div>合格:{{kptj.passTargetCount}}</div>
           </div>
         </div>
       </div>
       <!-- 打分 -->
       <div class="checkWork-body">
         <div class="checkWork-body-tabs">
-          <div class="tabs-items active">
-			<div v-if="isDelItem"><a-icon @click="confirmDelKpx" class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
+          <div class="tabs-items" 
+		  :class="activeIndex==index?'active':''" 
+		  v-for="(item,index) in kpItem" 
+		  @click="getKpItemZb(index)"
+		  :key="item.id">
+			<div v-if="isDelItem"><a-icon @click.stop="confirmDelKpx(item.id)" class="aicon" type="close" /></div>
+            <div>{{item.assessItemName}}</div>
+            <div>{{item.finishedTargetCount}}/{{item.totalTargetCount}}</div>
           </div>
-          <div class="tabs-items">
-			<div v-if="isDelItem"><a-icon class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
-          </div>
-          <div class="tabs-items">
-			<div v-if="isDelItem"><a-icon class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
-          </div>
-          <div class="tabs-items">
-			<div v-if="isDelItem"><a-icon class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
-          </div>
-          <div class="tabs-items">
-			<div v-if="isDelItem"><a-icon class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
-          </div>
-          <div class="tabs-items">
-			<div v-if="isDelItem"><a-icon class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
-          </div>
-          <div class="tabs-items">
-			<div v-if="isDelItem"><a-icon class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
-          </div>
-          <div class="tabs-items">
-			<div v-if="isDelItem"><a-icon class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
-          </div>
-		  <div class="tabs-items">
+		  <div class="tabs-items" v-if="kpItem.length>0">
 		    <div class="edit" v-if="!isDelItem" @click="isDelItem=true">编辑</div>
 			<div class="edit" @click="isDelItem=false" v-else>取消编辑</div>
 		  </div>
         </div>
         <div class="checkWork-body-tabCons">
-          <div class="tabCons-items">
+          <div class="tabCons-items" v-for="(zb,zbIndex) in zbItem" :key="zb.id">
             <div>
-              <div><b>正常营业</b></div>
+              <div><b>{{zb.assessTargetName}}</b></div>
 			  <!-- 点击打开拍照 -->
               <div @click="openCamera()"><a-icon type="camera" style="font-size: 30px;" /></div>
             </div>
@@ -149,21 +118,22 @@
 			</div>
 			<!-- 评分 -->
             <div>
-              <div><!-- 分值:10 <a-icon @click="openEditFs" type="edit" style="font-size: 20px;margin-left: 10px;"/> --></div>
+              <div><!-- 分值:{{zb.getScore}} <a-icon @click="openEditFs" type="edit" style="font-size: 20px;margin-left: 10px;"/> --></div>
               <div>
 				  <!-- 不适用 -->
-                <a-icon @click="pingfen(0)" type="minus-circle" class="choose-bhs"/>
+                <a-icon @click="selZbResult(0,zb)" type="minus-circle" :class="zb.result=='bsy'?'choose-bsy':''"/>
               </div>
 			  <div>
 				  <!-- 不合格 -->
-				  <a-icon @click="pingfen(1)" type="close-circle" class="choose-bhg"/>
+				  <a-icon @click="selZbResult(1,zb)" type="close-circle" :class="zb.result=='bhg'?'choose-bhg':''"/>
 			  </div>
 			  <div>
 				  <!-- 合格 -->
-				  <a-icon @click="pingfen(2)" type="check-circle" class="choose-hg"/>
+				  <a-icon @click="selZbResult(2,zb)" type="check-circle" :class="zb.result=='hg'?'choose-hg':''"/>
 			  </div>
             </div>
           </div>
+		  
 		  </div>
       </div>
     </div>
@@ -228,17 +198,20 @@
 		  isEditImg: false, // 是否编辑图片
 		  PED: null, // 图片编辑对象
 		  hsID: null, // 耗时计时器id
-		  // 统计
-		  tj:{
+		  activeIndex:0, // 当前选择的考评项
+		  // 考评统计
+		  kptj:{
 			  haoshi: '0时0分'
-		  }
+		  },
+		  // 考评项
+		  kpItem: [],
+		  zbItem: []
 		},
 		mounted () {
 		  let _this = this
 		  moment.locale('zh-cn');
 		  this.videoInit()
 		  // 耗时计算
-		  this.haoshi()
 		  this.hsID = setInterval(function(){
 		  	_this.haoshi()
 		  }, 60000)
@@ -254,12 +227,13 @@
 		  },
 		  // 获取任务详情
 		  getTaskDetail(data){
-			  alert(data)
-			  console.log(data,'111')
+			  this.kptj = JSON.parse(data)
+			  this.haoshi()
 		  },
 		  // 获取任务考评项
 		  getTaskItem(data){
-			  console.log(data,'222')
+			  this.kpItem = JSON.parse(data)
+			  this.zbItem = this.kpItem[this.activeIndex].taskTargetVOList
 		  },
 		  // 初始化播放器
 		  videoInit(){
@@ -339,8 +313,9 @@
 		  haoshi(){
 			let _this = this
 			// 耗时
-			let s = moment('2020-09-07 10:16:20')
-			_this.tj.haoshi = moment().diff(s,'hours') + '时' + moment().diff(s,'minutes')%60 + '分'
+			let s = this.kptj.startTime
+			console.log()
+			_this.kptj.haoshi = moment().diff(s,'hours') + '时' + moment().diff(s,'minutes')%60 + '分'
 		  },
 		  // 发送消息给app 页面
 		  sendMsg (action,msg) {
@@ -393,17 +368,50 @@
 		  updateItemImg(path){
 			  console.log(path)
 		  },
+		  // 更新已完成考评数
+		  updateKpFinish(){
+			  let kpItem = this.kpItem[this.activeIndex]
+			  let a = 0
+			  this.zbItem.map(item=>{
+				  if(item.result){
+					  a++
+				  }
+			  })
+			  kpItem.finishedTargetCount = a
+		  },
 		  // -----考评项相关代码---------------
 		  // 删除考评项
-		  confirmDelKpx(item){
-			  this.sendMsg('delKpItem',JSON.stringify(item))
+		  confirmDelKpx(id){
+			  this.sendMsg('delKpItem',id)
 		  },
-		  delKpItem(item){
-			  console.log(item)
+		  // 删除考评项成功
+		  delKpItemSuccess(id){
+			  let index = this.kpItem.findIndex(item=> item.id == id)
+			  if(index>=0){
+				  this.kpItem.splice(index,1)
+				  this.getKpItemZb(0)
+			  }
+		  },
+		  // 切换考评项对应的指标
+		  getKpItemZb(index){
+			  this.activeIndex = index
+			  this.zbItem = this.kpItem[index].taskTargetVOList
 		  },
 		  // 评分,0 不适用,1 不合格,2 合格
-		  pingfen(type){
-			  
+		  selZbResult(type,zb){
+			  let {id,taskItemId,taskId} = zb
+			  this.sendMsg('selZbResult',JSON.stringify({result:type,id:id,taskItemId:taskItemId,taskId:taskId}))
+		  },
+		  // 保存指标结果成功
+		  saveZbResultSuccess(id,result){
+			  console.log(id,result)
+			  let ret = ['bsy','bhg','hg']
+			  let zb = this.zbItem.find(item=> item.id == id)
+			  if(zb){
+				  zb.result = ret[result]
+				  // 更新考评项已完成指标数
+				  this.updateKpFinish()
+			  }
 		  }
 		}
 	})

+ 29 - 3
pages/shopTour/shopTour.vue

@@ -8,7 +8,7 @@
 	import { clzConfirm,saveBase64ToAliOss } from '@/libs/tools'
 	import {taskStart,submitTask,updateTaskItem,getTaskDetail} from '@/api/task'
 	import {getTaskItem,delTaskItem} from '@/api/taskItem.js'
-	import {taskTargetSave,getTaskTargetById,taskCommentsSave} from '@/api/taskTarget'
+	import {taskTargetSave,taskCommentsSave} from '@/api/taskTarget'
 	
 	export default {
 		data() {
@@ -41,16 +41,42 @@
 				if(data.action == 'delKpItem'){
 					this.delKpItem(data.msg)
 				}
+				// 评分,保存指标结果
+				if(data.action == 'selZbResult'){
+					this.saveZbResult(JSON.parse(data.msg))
+				}
+			},
+			// 保存指标结果
+			saveZbResult(data){
+				console.log(data,'saveZbResult')
+				taskTargetSave(data).then(res=>{
+					console.log(res,'saveZbResult')
+					if(res.status == 200){
+						this.wv.evalJS("vm.saveZbResultSuccess("+data.id+",'"+data.result+"')") 
+					}
+					uni.showToast({
+						icon:'none',
+						title: res.message
+					})
+				})
 			},
 			// 删除考评项
-			delKpItem(item){
+			delKpItem(id){
 				const _this = this;
 				clzConfirm({
 					title: '提示',
 					content: '确定删除此考评项,删除后无法恢复?',
 					success: function(res) {
 						if (res.confirm || res.index == 0) {
-							_this.wv.evalJS("vm.delKpItem("+item+")") 
+							delTaskItem({id:id}).then(res=>{
+								if(res.status == 200){
+									_this.wv.evalJS("vm.delKpItemSuccess("+id+")") 
+								}
+								uni.showToast({
+									icon:'none',
+									title: res.message
+								})
+							})
 						}
 					}
 				});

+ 1 - 1
pages/videoShopTour/videoShopTour.vue

@@ -18,7 +18,7 @@
 			<view class="list-tit">门店列表</view>
 			<!-- 列表数据 -->
 			<view class="listData-con">
-				<view class="listData-item" v-for="(item, index) in list" :key="index" @click="goPage(item)">
+				<view class="listData-item" v-for="(item, index) in list" :key="item.id" @click="goPage(item)">
 					<view class="listData-item-l">
 						<u-icon class="listData-item-l-icon" name="mendian" custom-prefix="xd-icon" size="40" color="#888"></u-icon>
 						<text class="listData-item-l-name">{{item.name}}</text>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
unpackage/dist/dev/app-plus/app-service.js


+ 1 - 1
unpackage/dist/dev/app-plus/hybrid/html/css/styles.less

@@ -134,7 +134,7 @@ body{
 					color: #666;
 					margin-left: 15px;
 				}
-				.choose-bhs{
+				.choose-bsy{
 					color: #13C2C2;
 				}
 				.choose-bhg{

+ 75 - 67
unpackage/dist/dev/app-plus/hybrid/html/video.html

@@ -76,69 +76,38 @@
         </div>
         <div class="checkWork-head-row">
           <div>
-            <div>进度:2/13</div>
-            <div>耗时:{{tj.haoshi}}</div>
-            <!-- <div>得分:10.2/22.3</div> -->
+            <div>进度:{{kptj.finishedTargetCount}}/{{kptj.totalTargetCount}}</div>
+            <div>耗时:{{kptj.haoshi}}</div>
+            <!-- <div>得分:{{kptj.getScore}}/{{kptj.totalScore}}</div> -->
           </div>
           <div>
-            <div>不适用:0</div>
-            <div>不合格:3</div>
-            <div>合格:5</div>
+            <div>不适用:{{kptj.notWorkTargetCount}}</div>
+            <div>不合格:{{kptj.notPassTargetCount}}</div>
+            <div>合格:{{kptj.passTargetCount}}</div>
           </div>
         </div>
       </div>
       <!-- 打分 -->
       <div class="checkWork-body">
         <div class="checkWork-body-tabs">
-          <div class="tabs-items active">
-			<div v-if="isDelItem"><a-icon @click="confirmDelKpx" class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
+          <div class="tabs-items" 
+		  :class="activeIndex==index?'active':''" 
+		  v-for="(item,index) in kpItem" 
+		  @click="getKpItemZb(index)"
+		  :key="item.id">
+			<div v-if="isDelItem"><a-icon @click.stop="confirmDelKpx(item.id)" class="aicon" type="close" /></div>
+            <div>{{item.assessItemName}}</div>
+            <div>{{item.finishedTargetCount}}/{{item.totalTargetCount}}</div>
           </div>
-          <div class="tabs-items">
-			<div v-if="isDelItem"><a-icon class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
-          </div>
-          <div class="tabs-items">
-			<div v-if="isDelItem"><a-icon class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
-          </div>
-          <div class="tabs-items">
-			<div v-if="isDelItem"><a-icon class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
-          </div>
-          <div class="tabs-items">
-			<div v-if="isDelItem"><a-icon class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
-          </div>
-          <div class="tabs-items">
-			<div v-if="isDelItem"><a-icon class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
-          </div>
-          <div class="tabs-items">
-			<div v-if="isDelItem"><a-icon class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
-          </div>
-          <div class="tabs-items">
-			<div v-if="isDelItem"><a-icon class="aicon" type="close" /></div>
-            <div>正常营业</div>
-            <div>0/4</div>
-          </div>
-		  <div class="tabs-items">
+		  <div class="tabs-items" v-if="kpItem.length>0">
 		    <div class="edit" v-if="!isDelItem" @click="isDelItem=true">编辑</div>
 			<div class="edit" @click="isDelItem=false" v-else>取消编辑</div>
 		  </div>
         </div>
         <div class="checkWork-body-tabCons">
-          <div class="tabCons-items">
+          <div class="tabCons-items" v-for="(zb,zbIndex) in zbItem" :key="zb.id">
             <div>
-              <div><b>正常营业</b></div>
+              <div><b>{{zb.assessTargetName}}</b></div>
 			  <!-- 点击打开拍照 -->
               <div @click="openCamera()"><a-icon type="camera" style="font-size: 30px;" /></div>
             </div>
@@ -149,21 +118,22 @@
 			</div>
 			<!-- 评分 -->
             <div>
-              <div><!-- 分值:10 <a-icon @click="openEditFs" type="edit" style="font-size: 20px;margin-left: 10px;"/> --></div>
+              <div><!-- 分值:{{zb.getScore}} <a-icon @click="openEditFs" type="edit" style="font-size: 20px;margin-left: 10px;"/> --></div>
               <div>
 				  <!-- 不适用 -->
-                <a-icon @click="pingfen(0)" type="minus-circle" class="choose-bhs"/>
+                <a-icon @click="selZbResult(0,zb)" type="minus-circle" :class="zb.result=='bsy'?'choose-bsy':''"/>
               </div>
 			  <div>
 				  <!-- 不合格 -->
-				  <a-icon @click="pingfen(1)" type="close-circle" class="choose-bhg"/>
+				  <a-icon @click="selZbResult(1,zb)" type="close-circle" :class="zb.result=='bhg'?'choose-bhg':''"/>
 			  </div>
 			  <div>
 				  <!-- 合格 -->
-				  <a-icon @click="pingfen(2)" type="check-circle" class="choose-hg"/>
+				  <a-icon @click="selZbResult(2,zb)" type="check-circle" :class="zb.result=='hg'?'choose-hg':''"/>
 			  </div>
             </div>
           </div>
+		  
 		  </div>
       </div>
     </div>
@@ -228,17 +198,20 @@
 		  isEditImg: false, // 是否编辑图片
 		  PED: null, // 图片编辑对象
 		  hsID: null, // 耗时计时器id
-		  // 统计
-		  tj:{
+		  activeIndex:0, // 当前选择的考评项
+		  // 考评统计
+		  kptj:{
 			  haoshi: '0时0分'
-		  }
+		  },
+		  // 考评项
+		  kpItem: [],
+		  zbItem: []
 		},
 		mounted () {
 		  let _this = this
 		  moment.locale('zh-cn');
 		  this.videoInit()
 		  // 耗时计算
-		  this.haoshi()
 		  this.hsID = setInterval(function(){
 		  	_this.haoshi()
 		  }, 60000)
@@ -254,12 +227,13 @@
 		  },
 		  // 获取任务详情
 		  getTaskDetail(data){
-			  alert(data)
-			  console.log(data,'111')
+			  this.kptj = JSON.parse(data)
+			  this.haoshi()
 		  },
 		  // 获取任务考评项
 		  getTaskItem(data){
-			  console.log(data,'222')
+			  this.kpItem = JSON.parse(data)
+			  this.zbItem = this.kpItem[this.activeIndex].taskTargetVOList
 		  },
 		  // 初始化播放器
 		  videoInit(){
@@ -339,8 +313,9 @@
 		  haoshi(){
 			let _this = this
 			// 耗时
-			let s = moment('2020-09-07 10:16:20')
-			_this.tj.haoshi = moment().diff(s,'hours') + '时' + moment().diff(s,'minutes')%60 + '分'
+			let s = this.kptj.startTime
+			console.log()
+			_this.kptj.haoshi = moment().diff(s,'hours') + '时' + moment().diff(s,'minutes')%60 + '分'
 		  },
 		  // 发送消息给app 页面
 		  sendMsg (action,msg) {
@@ -393,17 +368,50 @@
 		  updateItemImg(path){
 			  console.log(path)
 		  },
+		  // 更新已完成考评数
+		  updateKpFinish(){
+			  let kpItem = this.kpItem[this.activeIndex]
+			  let a = 0
+			  this.zbItem.map(item=>{
+				  if(item.result){
+					  a++
+				  }
+			  })
+			  kpItem.finishedTargetCount = a
+		  },
 		  // -----考评项相关代码---------------
 		  // 删除考评项
-		  confirmDelKpx(item){
-			  this.sendMsg('delKpItem',JSON.stringify(item))
+		  confirmDelKpx(id){
+			  this.sendMsg('delKpItem',id)
 		  },
-		  delKpItem(item){
-			  console.log(item)
+		  // 删除考评项成功
+		  delKpItemSuccess(id){
+			  let index = this.kpItem.findIndex(item=> item.id == id)
+			  if(index>=0){
+				  this.kpItem.splice(index,1)
+				  this.getKpItemZb(0)
+			  }
+		  },
+		  // 切换考评项对应的指标
+		  getKpItemZb(index){
+			  this.activeIndex = index
+			  this.zbItem = this.kpItem[index].taskTargetVOList
 		  },
 		  // 评分,0 不适用,1 不合格,2 合格
-		  pingfen(type){
-			  
+		  selZbResult(type,zb){
+			  let {id,taskItemId,taskId} = zb
+			  this.sendMsg('selZbResult',JSON.stringify({result:type,id:id,taskItemId:taskItemId,taskId:taskId}))
+		  },
+		  // 保存指标结果成功
+		  saveZbResultSuccess(id,result){
+			  console.log(id,result)
+			  let ret = ['bsy','bhg','hg']
+			  let zb = this.zbItem.find(item=> item.id == id)
+			  if(zb){
+				  zb.result = ret[result]
+				  // 更新考评项已完成指标数
+				  this.updateKpFinish()
+			  }
 		  }
 		}
 	})

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio