Ver Fonte

Merge branch 'deploy' of http://git.chelingzhu.com/chelingzhu-web/storeCheck-app into deploy

1004749546@qq.com há 4 anos atrás
pai
commit
9936631ddb

+ 1 - 1
App.vue

@@ -1,7 +1,7 @@
 <script>
 	// const uat_URL = 'http://md.test.zyucgj.com/at-employee/' // 预发布
 	// const uat_URL = 'http://192.168.16.107:7300/mock/5f5af637cb0f492ad4ee858f/app/at-employee/' // mock
-	const uat_URL = 'http://192.168.16.104:8203/at-employee/' // 本地
+	const uat_URL = 'http://192.168.16.102:8203/at-employee/' // 本地
 	const pro_URL = 'https://car.zyucgj.com/at-employee/'  // 生产
 	const buildType = 0 // 打包环境对应类型,1 生产 0 预发布
 	const buildURL = buildType ? pro_URL : uat_URL // 打包后实际对应的url

+ 1 - 1
api/atorg.js

@@ -3,7 +3,7 @@ import axios from '@/libs/axios.js'
 export const findUserInfo = param => {
   return axios.request({
     url: `atorg/findOrgTree`,
-    method: 'post',
+    method: 'get',
 	data: param
   })
 }

+ 4 - 2
api/checkTaskConfig.js

@@ -3,7 +3,8 @@ import axios from '@/libs/axios.js'
 export const getCheckTaskConfigList = params => {
   return axios.request({
     url: `checkTaskConfig/query/${params.pageNo}/${params.pageSize}`,
-    method: 'post'
+    method: 'post',
+	data: params
   })
 }
 // 点检配置删除
@@ -31,6 +32,7 @@ export const getCheckTaskConfig = params => {
 export const saveBackLog = params => {
   return axios.request({
     url: `checkTaskConfig/save`,
-    method: 'post'
+    method: 'post',
+	data: params
   })
 }

+ 15 - 1
api/store.js

@@ -10,7 +10,21 @@ export const findStoreList = param => {
 // 查询门店摄像头流列表
 export const findVsDeviceChannels = param => {
   return axios.request({
-    url: `store/findVsDeviceChannels/${param.storeId}`,
+    url: `vs/device/channels/${param.deviceId}`,
+    method: 'get',
+  })
+}
+// 拍照截图vs/stream/url/{streamId}/{outProtocol}
+export const photoPaiZhao = param => {
+  return axios.request({
+    url: `vs/stream/streamSnapshot/${param.streamId}`,
+    method: 'get',
+  })
+}
+// 获取播放地址
+export const getVideoUrl = param => {
+  return axios.request({
+    url: `vs/stream/url/${param.streamId}/${param.outProtocol}`,
     method: 'get',
   })
 }

+ 3 - 2
api/task.js

@@ -39,8 +39,9 @@ export const getTaskList = params => {
 // 查询门店当前任务是否进行
 export const queryCurrentTaskUsing = params => {
   return axios.request({
-    url: `task/queryCurrentTask/${params.storeId}`,
-    method: 'get'
+    url: `task/queryCurrentTask`,
+    method: 'post',
+	data: params
   })
 }
 // 我的巡店列表

+ 1 - 0
components/autograph-to-pic/autograph-to-pic.vue

@@ -60,6 +60,7 @@ export default {
 	watch: {
 		isEmpty: {
 			handler(value) {
+				console.log(value)
 				this.checkEmpty(value)
 			},
 			deep: true

+ 263 - 0
hybrid/html/css/styles.css

@@ -0,0 +1,263 @@
+* {
+  padding: 0;
+  margin: 0;
+}
+
+body {
+  height: 100%;
+  overflow: hidden;
+}
+
+.storeCheck {
+  height: calc(100vh);
+  display: flex;
+  flex-direction: column;
+}
+.storeCheck .loading {
+  background: #fff;
+  height: 100%;
+  width: 100%;
+  text-align: center;
+  position: fixed;
+  z-index: 10000;
+  left: 0;
+  top: 0;
+}
+.storeCheck .loading .ant-spin {
+  margin-top: 50%;
+}
+.storeCheck .checkWork {
+  flex-grow: 1;
+  display: flex;
+  flex-direction: column;
+  overflow: auto;
+}
+.storeCheck .checkWork .checkWork-head {
+  position: relative;
+}
+.storeCheck .checkWork .checkWork-head .checkWork-head-row:first-child > div {
+  display: flex;
+  align-items: center;
+  width: 100%;
+}
+.storeCheck .checkWork .checkWork-head .checkWork-head-row:first-child > div > div:last-child {
+  flex-grow: 1;
+}
+.storeCheck .checkWork .checkWork-head .checkWork-head-row > div {
+  width: 100%;
+  padding: 5px 10px;
+  display: flex;
+  align-items: center;
+}
+.storeCheck .checkWork .checkWork-head .checkWork-head-row > div:first-child {
+  border-bottom: 1px solid #eee;
+}
+.storeCheck .checkWork .checkWork-head .checkWork-head-row > div > div {
+  width: 33.3%;
+  padding: 3px 0;
+}
+.storeCheck .checkWork .checkWork-head .checkWork-head-row > div .ant-dropdown-link {
+  width: 100%;
+  display: block;
+  text-align: right;
+  color: #666666;
+}
+.storeCheck .checkWork .checkWork-body {
+  flex-grow: 1;
+  display: flex;
+  background: #f8f8f8;
+  overflow: auto;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabs {
+  width: 26%;
+  padding: 1px 0;
+  overflow-y: scroll;
+  box-shadow: 1px 1px 3px #eee;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabs .tabs-items {
+  text-align: center;
+  padding: 8px 5px;
+  position: relative;
+  margin: 5px;
+  background: #fff;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabs .tabs-items .edit {
+  font-size: 14px;
+  color: #ff0000;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabs .tabs-items .aicon {
+  color: #fff;
+  position: absolute;
+  font-size: 12px;
+  left: -5px;
+  top: -6px;
+  background: #ff0000;
+  padding: 3px;
+  border-radius: 100%;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabs .tabs-items.active {
+  background: #91D5FF;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabCons {
+  width: 74%;
+  padding: 5px;
+  overflow-y: scroll;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabCons .tabCons-items {
+  background: #fff;
+  padding: 5px;
+  margin-bottom: 10px;
+  border-radius: 5px;
+  box-shadow: 1px 1px 3px #eee;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabCons .tabCons-items .remarks {
+  padding: 5px;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabCons .tabCons-items .photos {
+  display: block;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabCons .tabCons-items .photos span {
+  border: 1px solid #eee;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabCons .tabCons-items .photos > div {
+  display: inline-block;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabCons .tabCons-items > div {
+  display: flex;
+  align-items: center;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabCons .tabCons-items > div > div {
+  padding: 5px;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabCons .tabCons-items > div > div:first-child {
+  flex-grow: 1;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabCons .tabCons-items > div > div .anticon {
+  font-size: 30px;
+  color: #666;
+  margin-left: 15px;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabCons .tabCons-items > div > div .choose-bsy {
+  color: #13C2C2;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabCons .tabCons-items > div > div .choose-bhg {
+  color: #ff0000;
+}
+.storeCheck .checkWork .checkWork-body .checkWork-body-tabCons .tabCons-items > div > div .choose-hg {
+  color: #00be00;
+}
+.storeCheck .checkWork .checkWork-button > div {
+  padding: 10px;
+  text-align: center;
+  font-size: 18px;
+  background: #FAAD14;
+  color: #fff;
+}
+
+.videoPlay {
+  position: relative;
+  height: 240px;
+}
+.videoPlay .control-yt, .videoPlay .control-yt-close {
+  position: absolute;
+  right: 15px;
+  top: 15px;
+  z-index: 100000;
+  width: 32px;
+  height: 32px;
+  background: url(../static/icons/kz-mini.png) no-repeat center center;
+  background-size: contain;
+}
+.videoPlay .control-yt-close {
+  background: url(../static/icons/close.png) no-repeat center center;
+  background-size: contain;
+}
+.videoPlay .ytBtns {
+  position: absolute;
+  width: 40px;
+  height: 40px;
+  z-index: 10000;
+  opacity: 50%;
+}
+.videoPlay .yt-left {
+  left: 20%;
+  top: 100px;
+  background: url(../static/icons/left.png) no-repeat center center;
+  background-size: contain;
+}
+.videoPlay .yt-right {
+  right: 20%;
+  top: 100px;
+  background: url(../static/icons/right.png) no-repeat center center;
+  background-size: contain;
+}
+.videoPlay .yt-top {
+  left: 50%;
+  top: 20px;
+  margin-left: -20px;
+  background: url(../static/icons/up.png) no-repeat center center;
+  background-size: contain;
+}
+.videoPlay .yt-bottom {
+  left: 50%;
+  bottom: 20px;
+  margin-left: -20px;
+  background: url(../static/icons/down.png) no-repeat center center;
+  background-size: contain;
+}
+.videoPlay .prism-player .prism-controlbar {
+  background: rgba(0, 0, 0, 0.5);
+}
+
+.pzPopus .pz-pinglun {
+  display: flex;
+  align-items: center;
+}
+.pzPopus .pz-pinglun .remarks {
+  flex-grow: 1;
+  padding-right: 15px;
+}
+.pzPopus .pz-pinglun .icons {
+  border: 1px solid #aaa;
+  padding: 10px;
+  border-radius: 100%;
+  width: 60px;
+  height: 60px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.pzPopus .pz-pinglun .icons .aicon {
+  font-size: 30px;
+  color: #999;
+}
+.pzPopus .imglist {
+  display: flex;
+  align-items: center;
+  flex-wrap: wrap;
+  padding: 30px 0 20px;
+}
+.pzPopus .imglist > div {
+  position: relative;
+  padding: 3px;
+  border: 1px solid #eee;
+  border-radius: 5px;
+  margin-right: 10px;
+}
+.pzPopus .imglist > div img {
+  width: 45px;
+  height: 45px;
+}
+.pzPopus .imglist > div .aicon {
+  color: #fff;
+  position: absolute;
+  font-size: 12px;
+  right: -6px;
+  top: -8px;
+  background: #FF0000;
+  padding: 2px;
+  border-radius: 100%;
+}
+.pzPopus .f-btns {
+  padding: 10px 0;
+}

+ 1 - 2
hybrid/html/video.html

@@ -17,8 +17,7 @@
 		<link rel="stylesheet" href="aliplayer/aliplayer-min.css" />
 		<script type="text/javascript" charset="utf-8" src="aliplayer/aliplayer-h5-min.js"></script>
 		<!-- 页面样式 -->
-		<link rel="stylesheet/less" type="text/css" href="css/styles.less" />
-		<script src="js/less.min.js"></script>
+		<link rel="stylesheet" href="css/styles.css" />
 	</head>
 	<body>
 		<div class="storeCheck" id="app">

+ 12 - 4
pages.json

@@ -170,12 +170,20 @@
 		{
 			"path": "pages/spotCheckConfigure/spotCheckList",
 			"style": {
-				"navigationStyle": "custom", //  是否显示导航栏  default显示,custom不显示
 				"navigationBarTitleText": "点检任务配置",
 				"app-plus": {
-					"titleView": false,
-					// 将回弹属性关掉
-					"bounce": "none"
+					"scrollIndicator": "none",
+					"titleNView": {
+						"buttons": [ //原生标题栏按钮配置,
+							{
+								"text": "\ue610 新增", //原生标题栏增加分享按钮,点击事件可通过页面的 onNavigationBarButtonTap 函数进行监听
+								"fontSize": 16,
+								"color": "#eee",
+								"width": "90px",
+								"fontSrc": "/static/iconfont/iconfont.ttf"
+							}
+						]
+					}
 				}
 			}
 		},

+ 6 - 6
pages/organization/organization.vue

@@ -28,7 +28,7 @@
 						<u-icon class="listData-item-r-icon" name="yuanchengxundian" custom-prefix="xd-icon" size="40" color="#2b85e4"></u-icon>
 					</view>
 				</view>
-				<u-empty :text="noDataText" img-width="120" v-if="list.length == 0 && status != 'loading'" :margin-top="120" style="padding-bottom: 100px;" mode="list"></u-empty>
+				<u-empty :text="noDataText" img-width="120" v-if="list.length == 0 && status != 'loading'" style="padding: 150px 0 180px;background: #fff;" mode="list"></u-empty>
 			</view>
 		</view>
 	</view>
@@ -67,7 +67,7 @@
 				// 获取门店列表
 				findStoreList({ orgCode: orgCode ? orgCode : '' }).then(res => {
 					if(res.status == 200){
-						this.list = res.data.list
+						this.list = res.data
 						this.noDataText = '暂无数据'  //  有列表数据时不显示,因此只用默认设置为无数据时所需显示的'暂无数据'即可
 					}else{
 						this.list = []
@@ -80,8 +80,8 @@
 			getOrgList(){
 				findUserInfo().then(res => {
 					if(res.status == 200){
-						this.organizationList = res.data.list
-						this.organizationNowList = res.data.list
+						this.organizationList = res.data
+						this.organizationNowList = res.data
 					}else{
 						this.organizationList = []
 						this.organizationNowList = []
@@ -126,7 +126,8 @@
 			//  选择门店
 			goPage(item){
 				//  校验是否有历史巡店记录
-				queryCurrentTaskUsing({ storeId: item.id }).then(res => {
+				//  type  VIDEO_INSPECTION:视频巡店、SPOT_INSPECTION:现场巡店、POINT_INSPECTION:点检任务
+				queryCurrentTaskUsing({ storeId: item.id, type: 'VIDEO_INSPECTION' }).then(res => {
 					if(res.status == 200){
 						if(res.data){  //  为true有历史巡店记录
 							clzConfirm({
@@ -136,7 +137,6 @@
 								cancelText: '重新开始',
 								buttons: ['继续巡店','重新开始'],
 							    success: function (result) {
-									console.log(result.index)
 							        if (result.confirm || result.index==0) {  //  继续巡店
 										uni.navigateTo({
 											url: '/pages/shopTour/shopTour?storeId=' + item.id + '&taskId='+ res.data + '&restart=0&types=video'

+ 4 - 4
pages/searchPage/searchPage.vue

@@ -54,8 +54,8 @@
 				this.status = 'loading'
 				findStoreList({ name: this.keyword }).then(res => {
 					if(res.status == 200){
-						this.list = res.data.list
-						this.noDataText = '暂无数据'  //  有列表数据时不显示,因此只用默认设置为无数据时所需显示的'暂无数据'即可
+						this.list = res.data
+						this.noDataText = '暂无数据' //  有列表数据时不显示,因此只用默认设置为无数据时所需显示的'暂无数据'即可
 					}else{
 						this.list = []
 						this.noDataText = res.message
@@ -66,7 +66,8 @@
 			//  选择门店
 			goPage(item){
 				//  校验是否有历史巡店记录
-				queryCurrentTaskUsing({ storeId: item.id }).then(res => {
+				//  type  VIDEO_INSPECTION:视频巡店、SPOT_INSPECTION:现场巡店、POINT_INSPECTION:点检任务
+				queryCurrentTaskUsing({ storeId: item.id, type: 'VIDEO_INSPECTION' }).then(res => {
 					if(res.status == 200){
 						if(res.data){  //  为true有历史巡店记录
 							clzConfirm({
@@ -76,7 +77,6 @@
 								cancelText: '重新开始',
 								buttons: ['继续巡店','重新开始'],
 							    success: function (result) {
-									console.log(result.index)
 							        if (result.confirm || result.index==0) {  //  继续巡店
 										uni.navigateTo({
 											url: '/pages/shopTour/shopTour?storeId=' + item.id + '&taskId='+ res.data + '&restart=0&types=video'

+ 2 - 1
pages/shopTour/shopTour.vue

@@ -9,7 +9,7 @@
 	import {taskStart,submitTask,updateTaskItem,getTaskDetail} from '@/api/task'
 	import {getTaskItem,delTaskItem} from '@/api/taskItem'
 	import {taskTargetSave,taskCommentsSave} from '@/api/taskTarget'
-	import {findVsDeviceChannels} from '@/api/store'
+	import {findVsDeviceChannels,photoPaiZhao,getVideoUrl} from '@/api/store'
 	export default {
 		data() {
 			return {
@@ -199,6 +199,7 @@
 			// 获取视频列表
 			getVideoList(){
 				findVsDeviceChannels({storeId:this.storeId}).then(res=>{
+					console.log(res,'----')
 					if(res.status==200){
 						this.wv.evalJS("vm.setVideoList('"+JSON.stringify(res.data)+"')")
 					}

+ 2 - 2
pages/shopTourOver/shopTourOver.vue

@@ -29,8 +29,8 @@
 		data(){
 			return{
 				isEmpty: [  //  是否为空判断
-					{name: 'handWriting-dz', state: false},
-					{name: 'handWriting-xd', state: false}
+					{name: 'handWriting-dz', state: true},
+					{name: 'handWriting-xd', state: true}
 				],
 				taskId: '',
 				inspectorSign:'', // 巡店人签名

+ 2 - 2
pages/shopTourRecord/shopTourRecord.vue

@@ -45,7 +45,7 @@
 					</u-sticky>
 					<view class="record-item" v-for="(item,index) in list" :key="index">
 						<view class="item-head">
-							<text class="item-c-tit">{{item.name}}</text>
+							<text class="item-c-tit">{{item.storeName}}</text>
 							<u-tag class="item-c-type" :text="item.orderStatus" type="primary" />
 						</view>
 						<view class="item-main">
@@ -54,7 +54,7 @@
 						</view>
 						<view class="item-main">
 							<text class="item-tit">创建时间:</text>
-							<text class="item-val">{{item.creatTime}}</text>
+							<text class="item-val">{{item.createDate}}</text>
 						</view>
 						<u-grid class="item-grid" :col="4" hover-class="none">
 							<u-grid-item>

+ 6 - 16
pages/signIn/signIn.vue

@@ -92,7 +92,7 @@ export default {
 		},
 		//  签到
 		signInFun() {
-			if(!this.position.latitude || !this.position.longitude){
+			if(!this.position || !this.position.latitude || !this.position.longitude){
 				uni.showToast({ icon: 'none', title: '位置获取失败,请重新定位后再进行签到' })
 				return
 			}else if(!this.photograph){
@@ -102,8 +102,10 @@ export default {
 			//  判断是否超出签到范围
 			validTaskPosition({
 				storeId: this.stores.id,
-				lat: this.position.latitude,
-				lng: this.position.longitude
+				point: {
+					lat: this.position.latitude,
+					lng: this.position.longitude,
+				}
 			}).then(res => {
 				if (res.status == 200) {
 					//  跳转开始巡店
@@ -111,19 +113,7 @@ export default {
 						url: '/pages/shopTour/shopTour?storeId=' + this.stores.id + '&types=scene'
 					})
 				} else {
-					this.isOutRange();
-				}
-			});
-		},
-		// 超出范围 提示
-		isOutRange() {
-			clzConfirm({
-				title: '提示',
-				content: '您所在的位置超出门店签到范围,无法开启巡店!',
-				showCancel: false,
-				success: function(res) {
-					if (res.confirm || res.index == 0) {
-					}
+					uni.showToast({ icon: 'none', title: res.message })
 				}
 			});
 		},

+ 36 - 6
pages/siteInspection/siteInspection.vue

@@ -35,11 +35,12 @@
 <script>
 	import { clzConfirm } from '@/libs/tools.js'
 	import { findStoreList } from '@/api/store.js'
+	import { queryCurrentTaskUsing } from '@/api/task.js'
 	export default{
 		data(){
 			return{
-				queryValue: '',
-				location: '陕西省西安市雁塔区丈八东路卡的时间段卡萨34345的想法双方都第三方的',
+				queryValue: '',  //  查询门店
+				location: '',  //  位置
 				noDataText: '未查找到附近门店',  //  列表请求状态提示语
 				status: 'loadmore',  //  加载中状态
 				listdata: [],  //  列表数据
@@ -89,11 +90,11 @@
 				findStoreList({
 					lng: this.lng,
 					lat: this.lat,
-					queryWord: this.queryValue
+					name: this.queryValue
 				}).then(res => {
 					console.log(res)
 					if (res.status == 200) {
-						this.listdata = res.data.list || []
+						this.listdata = res.data || []
 						this.noDataText = this.listdata.length == 0 && this.queryValue != '' ? '没有搜索到相关结果' : '未查找到附近门店'
 					} else {
 						this.listdata = []
@@ -104,8 +105,37 @@
 			},
 			// 选择门店
 			chooseStore(item){
-				uni.navigateTo({
-					url:"/pages/signIn/signIn?item="+encodeURIComponent(JSON.stringify(item))
+				//  校验是否有历史巡店记录
+				//  type  VIDEO_INSPECTION:视频巡店、SPOT_INSPECTION:现场巡店、POINT_INSPECTION:点检任务
+				queryCurrentTaskUsing({ storeId: item.id, type: 'SPOT_INSPECTION' }).then(res => {
+					if(res.status == 200){
+						if(res.data){  //  为true有历史巡店记录
+							clzConfirm({
+							    title: '提示',
+							    content: '有进行中的巡店任务,是否继续?',
+								confirmText: '继续巡店',
+								cancelText: '重新开始',
+								buttons: ['继续巡店','重新开始'],
+							    success: function (result) {
+							        if (result.confirm || result.index==0) {  //  继续巡店
+										uni.navigateTo({
+											url: '/pages/shopTour/shopTour?storeId=' + item.id + '&taskId='+ res.data + '&restart=0&types=scene'
+										})
+							        }else if(result.cancel || result.index==1){  //  重新开始
+										uni.navigateTo({
+											url:"/pages/signIn/signIn?item=" + encodeURIComponent(JSON.stringify(item))
+										})
+							        }
+							    }
+							})
+						}else{
+							uni.navigateTo({
+								url:"/pages/signIn/signIn?item=" + encodeURIComponent(JSON.stringify(item))
+							})
+						}
+					}else{
+						uni.showToast({icon: 'none', title: res.message})
+					}
 				})
 			}
 		}

+ 11 - 63
pages/spotCheckConfigure/addSpotCheck.vue

@@ -4,22 +4,14 @@
 			<u-form :model="form" ref="uForm">
 				<u-form-item label="任务名称" label-width="160rpx" prop="name"><u-input v-model="form.name" maxlength="30" /></u-form-item>
 				<u-form-item label="任务周期" v-model="form.cycleType" label-width="160rpx" prop="cycleType">
-					<v-select ref="cycleType" code="BUSINESS_EXPERIRENCE_CONTENT_CLS" placeholder="请选择任务周期" v-model="form.cycleType"></v-select>
+					<v-select ref="cycleType" code="TASK_CONFIG_CYCLE_TYPE" placeholder="请选择任务周期" v-model="form.cycleType"></v-select>
 				</u-form-item>
-				<u-form-item label="执行日期" label-width="160rpx" prop="buildTime">
-					<view style="width: 100%;" @tap="choosePartMark">
-						<input v-show="markArr && markArr.length == 0" disabled placeholder-class="form-input-placeholder" placeholder="请选择执行日期" />
-						<u-tag
-							v-show="markArr && markArr.length != 0"
-							v-for="(item, index) in markArr"
-							:key="item.id"
-							:text="item.name"
-							size="mini"
-							style="margin: 6upx 0 6upx 6upx;"
-						/>
-					</view>
-					<!-- <view @click="onShowPickerBegin('date')" style="color: rgb(192,196,204);">{{date ? date : '请选择执行日期'}}</view>
-					<mx-date-picker class="beginTime" :show="showPickerBegin" :type="type" :value="form.beginTime" :show-tips="true"  @confirm="onSelectedBegin" @cancel="onSelectedBegin"/> -->
+				<u-form-item label="执行日期" v-if="form.cycleType=='DAY'" label-width="160rpx" prop="buildDateDay">
+					 <u-input v-model="form.buildDateDay" @click="showBuildDateDay=true" placeholder="请选择执行时间" type="select"/>
+					 <u-picker v-model="showBuildDateDay" @confirm="confirmBuildDateDay" mode="time" :default-time="form.buildDateDay"></u-picker>
+				</u-form-item>
+				<u-form-item label="执行日期" v-if="form.cycleType=='WEEK'" label-width="160rpx" prop="buildDateWeek">
+					<v-select ref="cycleType" code="WEEK" placeholder="请选择周几" v-model="form.buildDateWeek"></v-select>
 				</u-form-item>
 				<u-form-item label="执行时间" label-width="160rpx" prop="zxTime">
 					<view @click="onShowPickerTime('time')" style="color: rgb(192,196,204);">{{ time ? time : '请选择执行时间' }}</view>
@@ -88,6 +80,7 @@ export default {
 		// 	format: true
 		// })
 		return {
+			showBuildDateDay: false, // 执行日期
 			showPickerBegin: false, // 默认是否显示开始日期的日期组件
 			showPickerEnd: false, // 默认是否显示结束日期的日期组件
 			showPickerTime: false, // 默认是否显示时间的时间组件
@@ -106,9 +99,6 @@ export default {
 				storeList: '', // 考评门店
 				effectiveDay: '' // 任务有效天数
 			},
-			markList: [], //  配件标签数据列表
-			markArr: [], //  配件标签  已选 数据
-			isPartMark: false,
 			rules: {
 				name: [{ required: true, message: '请输入名称30个字以内', trigger: 'blur' }],
 				cycleType: [{ required: true, message: '请选择任务周期', trigger: 'blur' }],
@@ -121,19 +111,8 @@ export default {
 				storeList: [{ required: true, message: '请选择考评门店', trigger: 'blur' }],
 				effectiveDay: [{ required: true, message: '请输入任务有效天数', trigger: 'blur' }]
 			}
-			// // date: currentDate,
-			// dateMode: 'date',
-			// dateShow: false,
 		};
 	},
-	// computed: {
-	//         startDate() {
-	//             return this.getDate('start');
-	//         },
-	//         endDate() {
-	//             return this.getDate('end');
-	//         }
-	//     },
 	onReady() {
 		this.$refs.uForm.setRules(this.rules);
 		// 检测选择的考评指标
@@ -151,6 +130,9 @@ export default {
 		uni.$off('selKpStores')
 	},
 	methods: {
+		confirmBuildDateDay(val){
+			this.form.buildDateDay = val.year +"-"+ val.month +"-"+ val.day
+		},
 		//  显示开始日期选择
 		onShowPickerBegin(type) {
 			this.type = type;
@@ -194,40 +176,6 @@ export default {
 				this[this.type] = e.value;
 			}
 		},
-		// 		dateChange(e){
-		// 			this.form.entryDate = e.result
-		// 		},
-		// 		confirm(e){
-		// 			console.log(e)
-		// 		},
-		// 		openSeleteType(){
-		// 			this.show=true
-		// 		},
-		// 		bindDateChange: function(e) {
-		// 			this.date = e.target.value
-		// 		},
-		// 		getDate(type) {
-		// 			const date = new Date();
-		// 			let year = date.getFullYear();
-		// 			let month = date.getMonth() + 1;
-		// 			let day = date.getDate();
-
-		// 			if (type === 'start') {
-		// 				year = year - 60;
-		// 			} else if (type === 'end') {
-		// 				year = year + 2;
-		// 			}
-		// 			month = month > 9 ? month : '0' + month;;
-		// 			day = day > 9 ? day : '0' + day;
-		// 			return `${year}-${month}-${day}`;
-		// 		},
-		//  选择配件标签
-		choosePartMark() {
-			this.isPartMark = false;
-			this.$nextTick(function() {
-				this.isPartMark = true;
-			});
-		},
 		// 确认
 		markConfirm(arr) {
 			this.markArr = arr;

+ 135 - 138
pages/spotCheckConfigure/spotCheckList.vue

@@ -1,158 +1,155 @@
 <template>
 	<view class="pageInfo">
-		<!-- 自定义导航栏 -->
-		<u-navbar title-color="#fff" back-icon-size="30" back-icon-color="#fff" :border-bottom="false" :background="background">
-			<view class="slot-wrap">
-				<view class="left-icon">
-					点检任务配置
-				</view>
-				<!-- 新增 -->
-				<view class="right-icon" @click="openAddPage">
-					<u-icon name="plus-circle" size="30" color="#fff" label="新增" label-color="#fff"></u-icon>
-					<uni-font-icons type="icon-sousuo" size="16" color="#fff"></uni-font-icons> 
-				</view>
-			</view>
-		</u-navbar>
 		<!-- 任务列表 -->
-		<scroll-view scroll-y class="scroll-view" @scrolltolower="onreachBottom">
-			<view v-for="item in listData" :key="item.id" class="itemInfo">
-				<view class="itemName">
-					<span class="name">{{item.name}}</span>
-					<u-switch size="40" :value="item.status==1"></u-switch>
-				</view>
-				<view class="itemName">
-					<span>{{item.startDate}} 至 {{item.endDate}}</span>
-					<span>
-						<u-button v-if="item.status==1" type="warning" size="mini" style="margin-right: 15upx;" @click="handetail">查看</u-button>
-						<u-button type="primary" size="mini" style="margin-right: 15upx;" @click="handedit">编辑</u-button>
-						<u-button type="error" size="mini" @click="handelete(item)">删除</u-button>
-					</span>
-					
-				</view>
+		<view v-for="item in list" :key="item.id" class="itemInfo">
+			<view class="itemName">
+				<span class="name">{{ item.name }}</span>
+				<u-switch size="40" @change="changeItem(item)" v-model="item.status == 1"></u-switch>
+			</view>
+			<view class="itemName">
+				<span>{{ item.startDate }} 至 {{ item.endDate }}</span>
+				<span>
+					<u-button type="success" size="mini" style="margin-right: 15upx;" @click="handetail">查看</u-button>
+					<u-button v-if="item.status == 0&&item.taskGenerateFlag==0" type="primary" size="mini" style="margin-right: 15upx;" @click="handedit">编辑</u-button>
+					<u-button v-if="item.status == 0&&item.taskGenerateFlag==0" type="error" size="mini" @click="handelete(item)">删除</u-button>
+				</span>
 			</view>
-		</scroll-view>
+		</view>
+		<u-empty :text="noDataText" v-if="list.length == 0 && status != 'loading'" mode="list"></u-empty>
+		<view style="padding: 20upx;"><u-loadmore v-if="total > pageSize || status == 'loading'" :status="status" /></view>
 	</view>
 </template>
 
 <script>
-	import {getCheckTaskConfigList,delCheckTaskConfig,enableCheckTaskConfig,saveBackLog} from '../../api/checkTaskConfig.js'
-	export default{
-		data(){
-			return{
-				background: {
-					// 渐变色
-					backgroundImage: 'linear-gradient(45deg, rgb(85, 170, 255), rgb(21, 102, 223))'
-				},
-				status: 'loadmore',
-				noDataText: '暂无数据',
-				listData:[]
-			}
+import {clzConfirm} from '@/libs/tools.js'
+import { getCheckTaskConfigList, delCheckTaskConfig, enableCheckTaskConfig } from '@/api/checkTaskConfig.js';
+export default {
+	data() {
+		return {
+			status: 'loadmore',
+			noDataText: '暂无数据',
+			list: [],
+			pageNo: 1,
+			pageSize: 10,
+			total: 0
+		};
+	},
+	onLoad() {
+		this.getList();
+	},
+	// 新增
+	onNavigationBarButtonTap() {
+		uni.navigateTo({
+			url: '/pages/spotCheckConfigure/addSpotCheck'
+		});
+	},
+	// 上拉分页
+	onReachBottom() {
+		console.log('onReachBottom');
+		if(this.list.length< this.total){
+		  this.pageNo++
+		  this.getList()
+		}else {
+		  uni.showToast({
+			title: '已经到底了',
+			icon: 'none'
+		  })
+		  this.status = "nomore"
+		}
+	},
+	methods: {
+		// 获取列表
+		getList() {
+			let _this = this;
+			let params = {
+				pageNo: this.pageNo,
+				pageSize: this.pageSize,
+			};
+			this.status = 'loading';
+			getCheckTaskConfigList(params).then(res => {
+				console.log(res)
+				if (res.status == 200) {
+					let list = res.data.list;
+					_this.list = _this.list.concat(list);
+					_this.total = res.data.count;
+				} else {
+					uni.showToast({
+						title: res.message,
+						icon: 'none'
+					});
+					_this.noDataText = res.message;
+				}
+				_this.status = 'loadmore';
+			});
 		},
-		watch: {
-			checked(val) {
-				// 等于false,意味着用户手动关闭了switch
-				if (val == false) {
-					if(this.listData.status == 0) {
-						this.listData.status = 1;
-						return ;
-					}
-					// 重新打开switch,并让它处于加载中的状态
-					this.checked = true;
-					this.loading = true;
-					// 模拟向后端发起请求
-					this.getRestultFromServer();
+		// 启用禁用
+		changeItem(item){
+			let _this = this
+			enableCheckTaskConfig({id:item.id,flag:item.status}).then(res=>{
+				if(res.status == 200){
+					let i = _this.list.findIndex(a=>a.id == item.id)
+					_this.list[i].status = item.status == 1 ? 0 : 1
+					_this.list.splice()
 				}
-			}
+				uni.showToast({
+					title: res.message,
+					icon: 'none'
+				})
+			})
 		},
-		onLoad() {
-			this.getListData()
+		// 查看详情
+		handetail(item) {
+			uni.navigateTo({
+				url: '/pages/spotCheckConfigure/spotCheckDetail/spotCheckDetail?id='+item.id
+			});
 		},
-		methods:{
-			// 列表数据
-			getListData(){
-				getCheckTaskConfigList({pageNo:1,pageSize:10}).then(res=>{
-					if(res.status==200){
-						this.listData=res.data.list
+		// 编辑
+		handedit(item) {
+			uni.navigateTo({
+				url: '/pages/spotCheckConfigure/addSpotCheck?id='+item.id
+			});
+		},
+		// 删除
+		handelete(item) {
+			const _this = this;
+			clzConfirm({
+				title: '提示',
+				content: '确认删除,删除后数据将无法恢复?',
+				success: function(res) {
+					if (res.confirm || res.index == 0) {
+						delCheckTaskConfig({id:item.id}).then(ret=>{
+							if(ret.status == 200){
+								let i = _this.list.findIndex(a=>a.id == item.id)
+								_this.list.splice(i,1)
+							}
+							uni.showToast({
+								title: ret.message,
+								icon: 'none'
+							})
+						})
 					}
-				})
-			},
-			openAddPage(){
-				console.log('-------------------')
-				uni.navigateTo({
-					url:'/pages/spotCheckConfigure/addSpotCheck'
-				})
-			},
-			// 查看详情
-			handetail(){
-				uni.navigateTo({
-					url:'/pages/spotCheckConfigure/spotCheckDetail/spotCheckDetail?id=${listData.id}'
-				})
-			},
-			// 编辑
-			handedit(){
-				uni.navigateTo({
-					url:'/pages/spotCheckConfigure/addSpotCheck'
-				})
-			},
-			// 删除
-			handelete(item){
-				const _this=this
-				clzConfirm({
-					title: '提示',
-					content: '确认删除,删除后数据将无法恢复?',
-					// success: function(res) {
-					// 	if (res.confirm || res.index == 0) {
-					// 		_this.isClose = true
-					// 		uni.navigateBack({
-					// 			delta: 1
-					// 		});
-					// 	}
-					// }
-				});
-			},
-			onreachBottom(){
-				
-			}
+				}
+			});
 		}
 	}
+};
 </script>
 
 <style lang="scss">
-	page{
-		height: 100%;
-		background-color: #eee;
+page {
+	background: #f8f8f8;
+}
+.itemInfo {
+	margin: 20upx;
+	background-color: #fff;
+	border-radius: 3px;
+	.itemName {
+		padding: 25upx 35upx;
+		display: flex;
+		justify-content: space-between;
 	}
-	.slot-wrap {
-			display: flex;
-			align-items: center;
-			/* 如果您想让slot内容占满整个导航栏的宽度 */
-			flex: 1;
-			/* 如果您想让slot内容与导航栏左右有空隙 */
-			padding: 0 30rpx 0 0;
-			color: #fff;
-			font-size: 28upx;
-			.left-icon{
-				flex-grow: 1;
-				font-size: 32upx;
-			}
-			.right-icon{
-				padding-left:50upx;
-			}
-			.uni-icons{
-				margin-right: 10upx;
-			}
-		}
-		.itemInfo{
-			margin: 20upx;
-			background-color: #fff;
-			border-radius: 3px;
-			.itemName{
-				padding: 25upx 35upx;
-				display: flex;
-				justify-content: space-between;
-			}
-			.itemName:first-child{
-				border-bottom: 1px solid #f8f8f8;
-			}
-		}
+	.itemName:first-child {
+		border-bottom: 1px solid #f8f8f8;
+	}
+}
 </style>

+ 3 - 4
pages/videoShopTour/videoShopTour.vue

@@ -51,7 +51,7 @@
 			init(){
 				this.status = 'loading'
 				// 获取门店列表
-				findStoreList({}).then(res => {
+				findStoreList().then(res => {
 					if(res.status == 200){
 						this.list = res.data || []
 						this.noDataText = '暂无数据'  //  有列表数据时不显示,因此只用默认设置为无数据时所需显示的'暂无数据'即可
@@ -77,8 +77,8 @@
 			//  开始巡店
 			goPage(item){
 				//  校验是否有历史巡店记录
-				queryCurrentTaskUsing({ storeId: item.id }).then(res => {
-					console.log(res,{ storeId: item.id },'---')
+				//  type  VIDEO_INSPECTION:视频巡店、SPOT_INSPECTION:现场巡店、POINT_INSPECTION:点检任务
+				queryCurrentTaskUsing({ storeId: item.id, type: 'VIDEO_INSPECTION' }).then(res => {
 					if(res.status == 200){
 						if(res.data){  //  为true有历史巡店记录
 							clzConfirm({
@@ -88,7 +88,6 @@
 								cancelText: '重新开始',
 								buttons: ['继续巡店','重新开始'],
 							    success: function (result) {
-									console.log(result.index)
 							        if (result.confirm || result.index==0) {  //  继续巡店
 										uni.navigateTo({
 											url: '/pages/shopTour/shopTour?storeId=' + item.id + '&taskId='+ res.data + '&restart=0&types=video'

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
unpackage/dist/dev/app-plus/app-config-service.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
unpackage/dist/dev/app-plus/app-service.js


Diff do ficheiro suprimidas por serem muito extensas
+ 24 - 35
unpackage/dist/dev/app-plus/app-view.js


+ 1 - 2
unpackage/dist/dev/app-plus/hybrid/html/video.html

@@ -17,8 +17,7 @@
 		<link rel="stylesheet" href="aliplayer/aliplayer-min.css" />
 		<script type="text/javascript" charset="utf-8" src="aliplayer/aliplayer-h5-min.js"></script>
 		<!-- 页面样式 -->
-		<link rel="stylesheet/less" type="text/css" href="css/styles.less" />
-		<script src="js/less.min.js"></script>
+		<link rel="stylesheet" href="css/styles.css" />
 	</head>
 	<body>
 		<div class="storeCheck" id="app">

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
unpackage/dist/dev/app-plus/view.umd.min.js


Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff