linweizeng 3 lat temu
rodzic
commit
bfe4528e52
45 zmienionych plików z 2553 dodań i 749 usunięć
  1. 16 0
      App.vue
  2. 7 0
      common/router/modules/routes.js
  3. 2 0
      common/service/http.js
  4. 3 1
      common/service/service.js
  5. 19 0
      common/util/showToast.js
  6. 3 2
      common/util/work.js
  7. 1 1
      components/lin-popup/index.vue
  8. 383 0
      components/lin-select/lin-select.vue
  9. 10 7
      components/uni-section/uni-section.vue
  10. 6 0
      main.js
  11. 1 0
      package.json
  12. 7 0
      pages.json
  13. 78 26
      pages/communication/communication.vue
  14. 153 0
      pages/communication/communicationList.vue
  15. 36 38
      pages/fileView/reportList.vue
  16. 44 16
      pages/hold/hold.vue
  17. 84 44
      pages/home/home.vue
  18. 54 0
      pages/home/iconItem.vue
  19. 1 15
      pages/index/index.vue
  20. 1 3
      pages/jiance/jindu.vue
  21. 34 13
      pages/jiance/list.vue
  22. 23 0
      pages/jiance/list/json/spe.json
  23. 126 44
      pages/jiance/list/specimen.vue
  24. 8 2
      pages/jiance/manyi.vue
  25. 421 279
      pages/jiance/order.vue
  26. 111 0
      pages/jiance/order/lhypbCom.vue
  27. 249 94
      pages/jiance/order/lhypbMessage.vue
  28. 272 9
      pages/jiance/order/meth.js
  29. 31 2
      pages/jiance/order/test.json
  30. 79 0
      pages/jiance/order/top.vue
  31. 78 23
      pages/jiance/tousu.vue
  32. 53 16
      pages/jiance/tousu/tousuList.vue
  33. 0 6
      pages/login/login.vue
  34. 14 3
      pages/user/editpassword.vue
  35. 60 96
      pages/user/location.vue
  36. 40 3
      pages/user/people.vue
  37. 34 2
      pages/user/userdetail.vue
  38. 9 2
      pages/wallet/wallet.vue
  39. BIN
      static/weitou/renyuan-active.png
  40. BIN
      static/weitou/renyuan.png
  41. BIN
      static/weitou/weituo-active.png
  42. BIN
      static/weitou/weituo.png
  43. BIN
      static/weitou/yangpin-active.png
  44. BIN
      static/weitou/yangpin.png
  45. 2 2
      uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue

+ 16 - 0
App.vue

@@ -174,11 +174,27 @@
 	@import "plugin/colorui/animation.css";
 	@import "common/css/uniCss.css";
 
+	/deep/.uni-mask {
+		z-index: 1001;
+	}
+
+	/deep/uni-modal .uni-modal {
+		z-index: 1002;
+	}
+
 	.bg-luohu {
 		background: linear-gradient(to top, #3396d1, #7dbfdf);
 		color: #FFFFFF;
 	}
 
+	.btn-back-color {
+		background-color: #3396d1 !important;
+	}
+
+	.green-back-color {
+		background-color: #99cc66 !important;
+	}
+
 	.nav-list {
 		display: flex;
 		flex-wrap: wrap;

+ 7 - 0
common/router/modules/routes.js

@@ -210,6 +210,13 @@ const routes = [{
 			title: '沟通',
 		},
 	},
+	{
+		path: "/pages/communication/communicationList",
+		name: 'communicationList',
+		meta: {
+			title: '沟通列表',
+		},
+	},
 	{
 		path: "/pages/jiance/tousu/tousuList",
 		name: 'tousuList',

+ 2 - 0
common/service/http.js

@@ -1,5 +1,7 @@
 let apiHosp = 'http://120.78.154.31/'
 
+// let apiHosp = 'http://192.168.2.247/'
+
 // let apiHosp = 'http://172.16.40.184/'
 // let apiHosp = 'http://172.16.40.182/'
 

+ 3 - 1
common/service/service.js

@@ -90,7 +90,9 @@ http.interceptor.response(async (response) => {
 	  	 return Promise.reject(response)
 	  } */
 	if (response.data.state !== 200) { // 服务端返回的状态码不等于200,则reject()
-
+		if (response.statusCode == '200') {
+			return response
+		}
 		return Promise.reject(response)
 	}
 	return response

+ 19 - 0
common/util/showToast.js

@@ -0,0 +1,19 @@
+function getShowToast(val1, val2) {
+	let title = '必填'
+	if (val2 == 1) {
+		title = '必选一项'
+	} else if (val2 == 2) {
+		title = '必添加'
+	} else if (val2 == 3) {
+		title = '大于1'
+	}
+	uni.showToast({
+		title: val1 + title,
+		icon: 'none',
+		duration: 2000
+	})
+}
+
+export default {
+	getShowToast
+}

+ 3 - 2
common/util/work.js

@@ -22,7 +22,8 @@ export const us = {
 			icon: icon_prefix + "kaoqin.png",
 			description: "工作考勤",
 			useCount: 10000,
-			page: 'jindu'
+			page: 'jindu',
+			text: 0
 		}, {
 			title: "我的样品",
 			icon: icon_prefix + "richeng.png",
@@ -176,7 +177,7 @@ export const sh = {
 			icon: icon_prefix + "wendang.png",
 			description: "文档中心",
 			useCount: 10000,
-			page: 'communication'
+			page: 'communicationList'
 		}
 		/* {
 		      title:"文档中心",

+ 1 - 1
components/lin-popup/index.vue

@@ -77,7 +77,7 @@
 		right: 0;
 		bottom: 0;
 		left: 0;
-		z-index: 110;
+		z-index: 1600;
 		opacity: 0;
 		outline: 0;
 		text-align: center;

+ 383 - 0
components/lin-select/lin-select.vue

@@ -0,0 +1,383 @@
+<template>
+	<view class="yealuo-select">
+		<view class="yealuo-background" @tap="isShow = false" v-show="isShow"></view>
+		<view class="yealuo-con" :style="inputStyle" @tap='isShow = !isShow'>
+			<slot name='left'></slot>
+			<input class="uni-combox__input" :disabled="theDisabled" :placeholder="placeholder" v-model="theValue"
+				@input="theInput" @focus="theFocus" @blur="theBlur" autocomplete="off" />
+			<slot name='right' v-if="selectIco">
+				<svg class="icon" v-if="!isShow"
+					style="width: 1.5em; height: 1.5em;vertical-align: middle;fill: currentColor;overflow: hidden;"
+					viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="530">
+					<path
+						d="M512 714.666667c-8.533333 0-17.066667-2.133333-23.466667-8.533334l-341.333333-341.333333c-12.8-12.8-12.8-32 0-44.8 12.8-12.8 32-12.8 44.8 0l320 317.866667 317.866667-320c12.8-12.8 32-12.8 44.8 0 12.8 12.8 12.8 32 0 44.8L533.333333 704c-4.266667 8.533333-12.8 10.666667-21.333333 10.666667z"
+						p-id="531"></path>
+				</svg>
+				<svg class="icon" v-else
+					style="width: 1.5em; height: 1.5em;vertical-align: middle;fill: currentColor;overflow: hidden;"
+					viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1927">
+					<path
+						d="M904.533333 674.133333l-362.666666-362.666666c-17.066667-17.066667-42.666667-17.066667-59.733334 0l-362.666666 362.666666c-17.066667 17.066667-17.066667 42.666667 0 59.733334 17.066667 17.066667 42.666667 17.066667 59.733333 0L512 401.066667l332.8 332.8c8.533333 8.533333 19.2 12.8 29.866667 12.8s21.333333-4.266667 29.866666-12.8c17.066667-17.066667 17.066667-42.666667 0-59.733334z"
+						p-id="1928"></path>
+				</svg>
+			</slot>
+		</view>
+		<view class="uni-select__selector" v-show="show" :style="selectStyle">
+			<view class="uni-popper__arrow"></view>
+			<scroll-view scroll-y="true" class="uni-select__selector-scroll">
+				<view class="uni-combox__selector-empty" v-if="filterCandidatesLength === 0">
+					<text>{{emptyTips}}</text>
+				</view>
+				<view class="data">
+					<radio-group v-if="checkType=='radio'" @change="selectCheckbox">
+						<view class="select-item" :class="'item-'+overflow" v-for="(item, index) in nowData"
+							:key="index">
+							<label class="item-text" :class="{active: theValue==item.value}">
+								<radio name="name1" checked v-if="theValue==item.value" :value="item.id">
+								</radio>
+								<radio name="name1" v-else :value="item.id"></radio>
+								<text class="select-text">{{item.value}}</text>
+							</label>
+						</view>
+					</radio-group>
+					<checkbox-group v-else-if="checkType=='checkbox'" @change="selectCheckbox">
+						<view class="select-item" :class="'item-'+overflow" v-for="(item, index) in nowData"
+							:key="index">
+							<label class="item-text" :class="{active: theValue.indexOf(item.value)!=-1 }">
+								<checkbox name="name1" checked v-if="theValue.indexOf(item.value)!=-1 "
+									:value="item.id"></checkbox>
+								<checkbox name="name1" v-else :value="item.id"></checkbox>
+								<text class="select-text">{{item.value}}</text>
+							</label>
+						</view>
+					</checkbox-group>
+					<radio-group v-else @change="selectCheckbox">
+						<view class="select-item" :class="'item-'+overflow" v-for="(item, index) in nowData"
+							:key="index">
+							<label class="item-text" :class="{active: theValue==item.value}">
+								<radio name="name1" style="display: none;" checked v-if="theValue==item.value"
+									:value="item.id"></radio>
+								<radio name="name1" style="display: none;" v-else :value="item.id">
+								</radio>
+								<text class="select-text">{{item.value}}</text>
+							</label>
+						</view>
+					</radio-group>
+				</view>
+			</scroll-view>
+			<!-- <view class="item-close" @tap="isShow=false">收起</view> -->
+		</view>
+	</view>
+</template>
+
+<script>
+	/**
+	 * v1.0.3
+	 * 最后修改: 2023.03.24
+	 * 创建: 2023.03.24
+	 * Author: 林维增
+	 * contact:2630208719.com
+	 */
+	let fontUnit = 'upx'
+	// #ifdef MP-WEIXIN
+	fontUnit = 'rpx'
+	// #endif
+	export default {
+		name: 'yealuoInputs',
+		props: {
+			placeholder: {
+				type: String,
+				default: ''
+			},
+			//初始化
+			value: {
+				type: String,
+				default: ''
+			},
+			checkType: {
+				type: String,
+				default: ''
+			},
+			itemKey: {
+				type: String,
+				default: ''
+			},
+			width: {
+				type: String,
+				default: '600'
+			},
+			disabled: {
+				type: Boolean,
+				default: false
+			},
+			inputStyle: {
+				type: String,
+				default: ''
+			},
+			selectStyle: {
+				type: String,
+				default: ''
+			},
+			overflow: {
+				type: String,
+				default: 'auto'
+			},
+			tags: {
+				type: String,
+				default: ''
+			},
+
+			binData: {
+				type: Array,
+				default: ''
+			},
+			selectIco: {
+				type: Boolean,
+				default: true
+			},
+			emptyTips: {
+				type: String,
+				default: '无匹配项'
+			}
+		},
+		data() {
+			return {
+				odData: this.binData,
+				nowData: this.binData,
+				isShow: false,
+				theValue: this.value,
+				theDisabled: this.disabled
+			}
+		},
+		watch: {
+			value(val) {
+				this.theValue = val;
+			},
+			//监听数据变化
+			nowData: {
+				handler: function() {
+					this.nowData = this.binData;
+				},
+				deep: true
+			},
+		},
+		computed: {
+			show() {
+				return this.isShow
+			},
+			filterCandidatesLength() {
+				return this.binData.length
+			}
+		},
+		methods: {
+			//获取焦点
+			theFocus(e) {
+				this.nowData = this.odData;
+			},
+			//失去焦点
+			theBlur(e) {
+				this.$emit('blur', e)
+			},
+			//获取输入值
+			theInput(e) {
+				var val = e.detail.value;
+				let data = [];
+				var odData = this.odData;
+				for (var i = 0; i < odData.length; i++) {
+					var isHas = false;
+					if (odData[i].value.indexOf(val) != -1) {
+						data.push(odData[i])
+						if (odData[i].value == val) {
+							isHas = true;
+							var arr = [];
+							arr.push(odData[i].value)
+							this.$emit('getBackVal', arr);
+						}
+					}
+					if (!isHas) {
+						var arr = [];
+						arr.push(val)
+						this.$emit('getBackVal', arr);
+					}
+				}
+				this.nowData = data;
+			},
+			//下拉选中
+			selectCheckbox(e) {
+				var val = e.detail.value
+				var str = val;
+				let list = []
+				let list2 = []
+				if (typeof(str) != "string") {
+					str = ""
+					val.forEach(item => {
+						if (item) {
+							let itenShow = this.binData.find(it => it.id == item)
+							if (itenShow) {
+								list2.push(itenShow.value)
+							}
+							list.push(item)
+						}
+					})
+					str = list2.join(",")
+				} else {
+					let itenShow = this.binData.find(it => it.id == str)
+					if (itenShow) {
+						str = itenShow.value
+					}
+					this.isShow = false;
+				}
+				this.$emit('getBackVal', str)
+				this.theValue = str;
+			}
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.yealuo-select {
+		// margin: 20rpx;
+		max-width: 100%;
+		position: relative;
+		border: 1px solid #DCDFE6;
+		border-radius: 4px;
+
+		.yealuo-background {
+			position: fixed;
+			top: 0;
+			left: 0;
+			width: 750upx;
+			height: 100%;
+		}
+
+		.yealuo-con {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+
+		}
+	}
+
+	.uni-combox__input {
+		padding: 15rpx;
+		flex: 1;
+		font-size: 28rpx;
+		height: 65rpx;
+		line-height: 65rpx;
+	}
+
+	.icon {
+		color: #999;
+		font-size: 26rpx;
+		margin-right: 10rpx;
+	}
+
+	.item-close {
+		padding: 20upx;
+		text-align: center;
+		font-size: 32upx;
+		border-top: 1px solid #f3f3f4;
+		color: #8F8F94;
+	}
+
+	.uni-select__selector {
+		/* #ifndef APP-NVUE */
+		box-sizing: border-box;
+		/* #endif */
+		position: absolute;
+		top: calc(100% + 12px);
+		left: 0;
+		width: 100%;
+		background-color: #FFFFFF;
+		border: 1px solid #EBEEF5;
+		border-radius: 6px;
+		box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+		z-index: 2;
+		padding: 4px 0;
+		z-index: 999;
+	}
+
+	.uni-select__selector-scroll {
+		/* #ifndef APP-NVUE */
+		max-height: 200px;
+		box-sizing: border-box;
+		/* #endif */
+		padding: 0 20rpx;
+
+		.select-item {
+			width: 100%;
+			color: #666;
+			margin: 10rpx 0;
+
+			.item-text {
+				width: 100%;
+				display: block;
+
+				.select-text {
+					margin-left: 10rpx;
+				}
+			}
+
+			.active {
+				font-weight: bold;
+			}
+		}
+
+		.item-auto {
+			overflow: auto;
+
+			.item-text {
+				width: max-content;
+			}
+		}
+
+		.item-hide .item-text {
+			overflow: hidden;
+			text-overflow: ellipsis;
+			white-space: nowrap;
+		}
+	}
+
+
+	/* picker 弹出层通用的指示小三角 */
+	.uni-popper__arrow,
+	.uni-popper__arrow::after {
+		position: absolute;
+		display: block;
+		width: 0;
+		height: 0;
+		border-color: transparent;
+		border-style: solid;
+		border-width: 6px;
+	}
+
+	.uni-popper__arrow {
+		filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
+		top: -6px;
+		left: 10%;
+		margin-right: 3px;
+		border-top-width: 0;
+		border-bottom-color: #EBEEF5;
+	}
+
+	.uni-popper__arrow::after {
+		content: " ";
+		top: 1px;
+		margin-left: -6px;
+		border-top-width: 0;
+		border-bottom-color: #fff;
+	}
+
+	.uni-combox__selector-empty {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		cursor: pointer;
+		/* #endif */
+		line-height: 36px;
+		font-size: 14px;
+		text-align: center;
+		// border-bottom: solid 1px #DDDDDD;
+		padding: 0px 10px;
+	}
+</style>

+ 10 - 7
components/uni-section/uni-section.vue

@@ -2,21 +2,21 @@
 	<view class="uni-section">
 		<view class="uni-section-header" nvue>
 			<view v-if="type" class="uni-section__head">
-				<view :class="type" class="uni-section__head-tag"/>
+				<view :class="type" class="uni-section__head-tag" />
 			</view>
 			<view class="uni-section__content">
-				<text :class="{'distraction':!subTitle}" :style="{color:color}" class="uni-section__content-title">{{ title }}</text>
+				<text :class="{'distraction':!subTitle}" :style="{color:color}"
+					class="uni-section__content-title">{{ title }}</text>
 				<text v-if="subTitle" class="uni-section__content-sub">{{ subTitle }}</text>
 			</view>
 		</view>
 		<view :style="{padding: padding ? '10px' : ''}">
-			<slot/>
+			<slot />
 		</view>
 	</view>
 </template>
 
 <script>
-
 	/**
 	 * Section 标题栏
 	 * @description 标题栏
@@ -29,7 +29,7 @@
 
 	export default {
 		name: 'UniSection',
-		emits:['click'],
+		emits: ['click'],
 		props: {
 			type: {
 				type: String,
@@ -39,7 +39,7 @@
 				type: String,
 				default: ''
 			},
-			color:{
+			color: {
 				type: String,
 				default: '#333'
 			},
@@ -71,12 +71,14 @@
 </script>
 <style lang="scss" scoped>
 	$uni-primary: #2979ff !default;
-	
+
 	.uni-section {
 		background-color: #fff;
 		// overflow: hidden;
 		margin-top: 10px;
+		border-radius: 15rpx;
 	}
+
 	.uni-section-header {
 		position: relative;
 		/* #ifndef APP-NVUE */
@@ -88,6 +90,7 @@
 		// height: 50px;
 		font-weight: normal;
 	}
+
 	.uni-section__head {
 		flex-direction: row;
 		justify-content: center;

+ 6 - 0
main.js

@@ -86,6 +86,12 @@ import linPopup from '@/components/lin-popup/index.vue'
 Vue.component('linPopup', linPopup)
 // import VConsole from './js_sdk/vconsole.min'
 
+import dayjs from "dayjs" //封装dayjs
+Vue.prototype.$dayjs = dayjs;
+
+import showToast from "@/common/util/showToast.js"
+Vue.prototype.$showToast = showToast;
+
 //   var vConsole = new VConsole();
 
 Vue.config.productionTip = false

+ 1 - 0
package.json

@@ -4,6 +4,7 @@
   "description": "![JEECG](https://static.oschina.net/uploads/img/201905/24164523_XDhg.png \"JeecgBoot快速开发平台\")",
   "main": "index.js",
   "dependencies": {
+    "dayjs": "^1.11.7",
     "html2canvas": "^1.4.1",
     "ids": "^1.0.0",
     "uview-ui": "^1.8.4",

+ 7 - 0
pages.json

@@ -239,6 +239,13 @@
 				"enablePullDownRefresh": false
 			}
 
+		}, {
+			"path": "pages/communication/communicationList",
+			"style": {
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false
+			}
+
 		}, {
 			"path": "pages/jiance/tousu/tousuList",
 			"style": {

+ 78 - 26
pages/communication/communication.vue

@@ -17,58 +17,64 @@
 			</view>
 			<view class="cu-form-group">
 				<view class="title">客户联系人:</view>
-				<input placeholder="请输入客户联系人" v-model="form.keHuLianXiRen" name="input"></input>
+				<input placeholder="请输入客户联系人" v-model="form.keHuLianXiRen" name="input"
+					:disabled="id && id != '' ? true: false"></input>
 				<u-icon class="uni-icon" name="close-circle-fill" color="rgb(192, 196, 204)" size="42"
-					v-if="form.keHuLianXiRen != ''" @click="form.keHuLianXiRen = ''"></u-icon>
+					v-if="form.keHuLianXiRen != '' && id == ''" @click="form.keHuLianXiRen = ''"></u-icon>
 			</view>
 			<view class="cu-form-group">
 				<view class="title">委托单号:</view>
-				<!-- 				<input placeholder="请输入委托单号" v-model="form.weiTuoDanHao" name="input"></input>
-				<u-icon class="uni-icon" name="close-circle-fill" color="rgb(192, 196, 204)" size="42"
-					v-if="form.weiTuoDanHao != ''" @click="form.weiTuoDanHao = ''"></u-icon> -->
 				<text style="width: 100%;" @click="getShow">{{getWeiTuo(form.weiTuoDanHao)}}</text>
-				<u-button type="success" size="mini" @click="getShow" v-if="form.weiTuoDanHao == ''">选择
+				<u-button type="success" size="mini" @click="getShow" v-if="form.weiTuoDanHao == '' && id == ''">选择
 				</u-button>
 				<u-icon class="uni-icon" name="close-circle-fill" color="rgb(192, 196, 204)" size="42"
-					v-if="form.weiTuoDanHao != ''" @click="form.weiTuoDanHao = ''"></u-icon>
+					v-if="form.weiTuoDanHao != '' && id == ''" @click="form.weiTuoDanHao = ''"></u-icon>
 			</view>
 			<view class="cu-form-group">
 				<view class="title">联系电话:</view>
-				<input placeholder="请输入联系电话" v-model="form.lianXiDianHua" name="input"></input>
+				<input placeholder="请输入联系电话" v-model="form.lianXiDianHua" name="input"
+					:disabled="id && id != '' ? true: false"></input>
 				<u-icon class="uni-icon" name="close-circle-fill" color="rgb(192, 196, 204)" size="42"
-					v-if="form.lianXiDianHua != ''" @click="form.lianXiDianHua = ''"></u-icon>
+					v-if="form.lianXiDianHua != '' && id == ''" @click="form.lianXiDianHua = ''"></u-icon>
 			</view>
 			<view class="cu-form-group">
 				<view class="title">样品名称:</view>
-				<input placeholder="请输入样品名称" v-model="form.yangPinMingCheng" name="input"></input>
+				<textarea maxlength="-1" v-model="form.yangPinMingCheng" placeholder="请输入样品名称" auto-height="true"
+					:disabled="id && id != '' ? true: false"></textarea>
 				<u-icon class="uni-icon" name="close-circle-fill" color="rgb(192, 196, 204)" size="42"
-					v-if="form.yangPinMingCheng != ''" @click="form.yangPinMingCheng = ''"></u-icon>
+					v-if="form.yangPinMingCheng != '' && id == ''" @click="form.yangPinMingCheng = ''"></u-icon>
 			</view>
 			<view class="cu-form-group">
 				<view class="title">样品编号:</view>
-				<input placeholder="请输入样品编号" v-model="form.yangPinBianHao" name="input"></input>
+				<textarea maxlength="-1" v-model="form.yangPinBianHao" placeholder="请输入样品编号" auto-height="true"
+					:disabled="id && id != '' ? true: false"></textarea>
+				<!-- <input placeholder="请输入样品编号" v-model="form.yangPinBianHao" name="input"
+					:disabled="id && id != '' ? true: false"></input> -->
 				<u-icon class="uni-icon" name="close-circle-fill" color="rgb(192, 196, 204)" size="42"
-					v-if="form.yangPinBianHao != ''" @click="form.yangPinBianHao = ''"></u-icon>
+					v-if="form.yangPinBianHao != '' && id == ''" @click="form.yangPinBianHao = '' && id == ''"></u-icon>
 			</view>
 			<view class="cu-form-group">
 				<view class="title">样品类型:</view>
-				<input placeholder="请输入样品类型" v-model="form.yangPinLeiXing" name="input"></input>
+				<textarea maxlength="-1" v-model="form.yangPinLeiXing" placeholder="请输入样品类型" auto-height="true"
+					:disabled="id && id != '' ? true: false"></textarea>
 				<u-icon class="uni-icon" name="close-circle-fill" color="rgb(192, 196, 204)" size="42"
-					v-if="form.yangPinLeiXing != ''" @click="form.yangPinLeiXing = ''"></u-icon>
+					v-if="form.yangPinLeiXing != '' && id == ''" @click="form.yangPinLeiXing = ''"></u-icon>
 			</view>
 			<view class="cu-form-group">
 				<view class="title">报告编号:</view>
-				<input placeholder="请输入报告编号" v-model="form.baoGaoBianHao" name="input"></input>
+				<textarea maxlength="-1" v-model="form.baoGaoBianHao" placeholder="请输入报告编号" auto-height="true"
+					:disabled="id && id != '' ? true: false"></textarea>
 				<u-icon class="uni-icon" name="close-circle-fill" color="rgb(192, 196, 204)" size="42"
-					v-if="form.baoGaoBianHao != ''" @click="form.baoGaoBianHao = ''"></u-icon>
+					v-if="form.baoGaoBianHao != '' && id == ''" @click="form.baoGaoBianHao = ''"></u-icon>
 			</view>
 			<view class="cu-form-group">
 				<view class="title">沟通类型:</view>
 				<input placeholder="请选择沟通类型" v-model="form.gouTongLeiXing" name="input" disabled></input>
-				<u-button type="success" size="mini" @click="sheetShow = true">选择</u-button>
+				<u-button type="success" size="mini" @click="sheetShow = true" v-if="id == ''">选择</u-button>
 			</view>
 			<uni-section title="沟通内容" type="line" padding>
-				<textarea maxlength="-1" v-model="form.gouTongNeiRong" placeholder="意见和建议"></textarea>
+				<textarea maxlength="-1" v-model="form.gouTongNeiRong" placeholder="意见和建议"
+					:disabled="id && id != '' ? true: false"></textarea>
 			</uni-section>
 			<!-- 			<uni-section title="上传附件" type="line">
 				<view class="example-body">
@@ -79,9 +85,9 @@
 			</uni-section> -->
 			<uni-section title="签名" type="line" padding>
 				<view style="width: 100%;">
-					<view style="text-align: right;width: 100%;">
+					<view style="text-align: right;width: 100%;" v-if="id == ''">
 						<view>
-							<u-button type="primary" size="mini" @click="qianming(0)">
+							<u-button type="primary" size="mini" @click="qianming(0)" class="btn-back-color">
 								签名</u-button>
 							<u-button type="primary" size="mini" @click="deqianming(0)" style="margin-left: 15rpx;"
 								v-if="form.keHu != ''">
@@ -94,8 +100,9 @@
 					</view>
 				</view>
 			</uni-section>
-			<view class="padding flex flex-direction">
-				<button class="cu-btn bg-blue lg" @click="onSubmit">提交</button>
+			<view class="padding flex flex-direction" v-if="id == ''">
+				<u-button type="success" class="btn btn-back-color" @click="onSubmit">提交
+				</u-button>
 			</view>
 		</view>
 
@@ -127,6 +134,7 @@
 		},
 		data() {
 			return {
+				id: '',
 				sheetShow: false,
 				form: {
 					xuanZeKeHu: '',
@@ -166,9 +174,14 @@
 				weiTuoList: []
 			}
 		},
-		created() {
-			this.getGtbh()
+		onLoad(options) {
 			this.getKehu()
+			if (options.id) {
+				this.id = options.id
+				this.getDe(options.id)
+			} else {
+				this.getGtbh()
+			}
 		},
 		methods: {
 			actionSheetCallback(e) {
@@ -287,7 +300,7 @@
 			getKehu() {
 				let info = uni.getStorageSync(USER_INFO);
 				if (info) {
-					this.form.xuanZeKeHu = info.user.wcAccount
+					this.form.xuanZeKeHu = info.user.qq
 					this.form.lianXiDianHua = info.user.mobile
 					this.form.keHuDanWeiMingChe = info.user.id
 					this.form.keHuLianXiRen = info.user.fullname
@@ -295,6 +308,38 @@
 				}
 				this.getWeiTuoList()
 			},
+			getDe(id) {
+				uni.showLoading({
+					mask: true,
+					title: 'loading'
+				});
+				let sql =
+					`select * from t_khgtjlb where id_ = ${id}`
+
+				let requestData = this.$sig(sql)
+				this.$http.post("/ibps/business/v3/sys/universal/inputSqlSelectData", requestData).then(res => {
+					if (res.data.state == 200) {
+						const data = res.data.variables.data[0]
+						this.form = {
+							xuanZeKeHu: data.xuan_ze_ke_hu_,
+							biaoDanBianHao: data.biao_dan_bian_hao,
+							buMenName: data.xuan_ze_ke_hu_,
+							keHuDanWeiMingChe: data.ke_hu_lian_xi_ren,
+							keHuLianXiRen: data.ke_hu_lian_xi_ren,
+							weiTuoDanHao: data.wei_tuo_dan_hao_,
+							lianXiDianHua: data.lian_xi_dian_hua_,
+							yangPinMingCheng: data.yang_pin_ming_che,
+							yangPinBianHao: data.yang_pin_bian_hao,
+							yangPinLeiXing: data.yang_pin_lei_xing,
+							baoGaoBianHao: data.bao_gao_bian_hao_,
+							gouTongLeiXing: data.gou_tong_lei_xing,
+							gouTongNeiRong: data.gou_tong_nei_rong,
+							keHu: data.ke_hu_
+						}
+						uni.hideLoading()
+					}
+				})
+			},
 			onSubmit() {
 				let info = uni.getStorageSync(USER_INFO);
 				let useId = info.user.id
@@ -421,6 +466,9 @@
 				})
 			},
 			getShow() {
+				if (this.id != '') {
+					return
+				}
 				this.$refs['picker'].show();
 			},
 			onConfirm(index, item) {
@@ -444,4 +492,8 @@
 	.cu-form-group .title {
 		min-width: 180rpx;
 	}
+
+	.btn {
+		margin: 15rpx
+	}
 </style>

+ 153 - 0
pages/communication/communicationList.vue

@@ -0,0 +1,153 @@
+<template>
+	<view>
+		<cu-custom bgColor="bg-luohu" :isBack="true">
+			<block slot="backText">返回</block>
+			<block slot="content">沟通列表</block>
+			<block slot="right">
+				<view @click="getGo('')">添加</view>
+			</block>
+		</cu-custom>
+		<view class="cu-bar bg-white search fixed" :style="[{top:CustomBar + 'px'}]">
+			<view class="search-form round">
+				<text class="cuIcon-search"></text>
+				<input type="text" v-model="keyword" placeholder="输入搜索的关键词" confirm-type="search"
+					@confirm="search"></input>
+			</view>
+			<view class="action">
+				<button class="cu-btn bg-gradual-blue shadow-blur round" @tap="search">搜索</button>
+			</view>
+		</view>
+
+		<block v-if="list.length > 0">
+			<view v-for="(item,index) in list" :key="index" style="margin: 10rpx 20rpx;position: relative;"
+				:style="[{top:'calc('+ CustomBar + 'px + 20rpx)'}]">
+				<uni-section :title="'表单编号:'+item.biao_dan_bian_hao" type="line" padding>
+					<view class="sectionBox">
+						<view class="left">联系人:</view>
+						<view>{{item.ke_hu_lian_xi_ren}} </view>
+					</view>
+					<view class="sectionBox">
+						<view class="left">委托单号:</view>
+						<view>{{item.weiTuoBianHao}} </view>
+					</view>
+					<view class="sectionBox">
+						<view class="left">编制日期:</view>
+						<view>{{item.bian_zhi_shi_jian}} </view>
+					</view>
+					<view class="sectionBox">
+						<view class="left">状态:</view>
+						<view>{{item.shi_fou_guo_shen_ == '1' ? '已完成' : item.shi_fou_guo_shen_}} </view>
+					</view>
+					<view style=" width: 100%; text-align: right; padding-top: 5rpx;padding-bottom: 0rpx;"
+						v-if="item.chu_li_jie_guo_sh == '已通知' && item.shi_fou_guo_shen_ == '已反馈'">
+						<u-button type="warning" size="mini" @click="getGo(item.id_)">签名</u-button>
+					</view>
+					<view style=" width: 100%; text-align: right; padding-top: 5rpx;padding-bottom: 0rpx;">
+						<u-button type="warning" size="mini" class="btn-back-color" @click="getGo(item.id_)">查阅
+						</u-button>
+					</view>
+				</uni-section>
+			</view>
+		</block>
+	</view>
+</template>
+
+<script>
+	import {
+		ACCESS_TOKEN,
+		USER_NAME,
+		USER_INFO
+	} from "@/common/util/constants" // 拉取登录token,userName,userInfo
+	export default {
+		data() {
+			return {
+				CustomBar: this.CustomBar,
+				keyword: '',
+				list: [],
+				current: 0
+			}
+		},
+		// 下拉刷新
+		onPullDownRefresh() {
+			this.getInit()
+		},
+		// 上拉加载
+		onReachBottom() {
+			let _self = this
+			uni.showNavigationBarLoading()
+			if (this.ReachBottomShow) {
+				this.getData()
+			}
+		},
+		created() {
+			this.getInit()
+		},
+		methods: {
+			getInit() {
+				this.current = 0
+				this.list = []
+				this.getData(this.keyword)
+			},
+			/**
+			 * 模糊查询
+			 */
+			search() {
+				this.current = 0
+				this.resdata = []
+				this.getData(this.keyword)
+			},
+			//获取列表数据
+			getData(keyword) {
+				uni.showLoading({
+					mask: true,
+					title: 'loading'
+				});
+
+				let info = uni.getStorageSync(USER_INFO);
+				let useId = info.user.id
+
+				var page = 0
+				if (this.current == 0) {
+					page = 0
+				} else {
+					page = this.current * 10
+				}
+				let sql =
+					`select a.*,b.wei_tuo_bian_hao_ as weiTuoBianHao from t_khgtjlb a left join t_lhwtsqb b on a.wei_tuo_dan_hao_ = b.id_ where a.ke_hu_dan_wei_min = '${useId}' and biao_dan_bian_hao like'%${keyword}%'  ORDER BY a.create_time_ desc LIMIT ${page},10`
+
+				let requestData = this.$sig(sql)
+				this.$http.post("/ibps/business/v3/sys/universal/inputSqlSelectData", requestData).then(res => {
+					if (res.data.state == 200) {
+						const data = res.data.variables.data
+						this.list.push(...data)
+						uni.stopPullDownRefresh();
+						if (data.length > 10) {
+							this.ReachBottomShow = false
+						} else {
+							this.current++
+						}
+						uni.hideLoading()
+					}
+				})
+			},
+			getGo(id) {
+				uni.navigateTo({
+					url: './communication?id=' + id
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.sectionBox {
+		display: flex;
+		align-items: center;
+		margin-bottom: 5rpx;
+
+		.left {
+			width: 150rpx;
+
+		}
+	}
+</style>

+ 36 - 38
pages/fileView/reportList.vue

@@ -9,16 +9,16 @@
 				<view class="title">报告编号:{{item.bao_gao_bian_hao_}}</view>
 				<view class="title">样品编号:{{item.yang_pin_bian_hao}}</view>
 				<view class="title">样品名称:{{item.yang_pin_ming_che}}</view>
-				<view class="title">联系人:{{item.wei_tuo_lian_xi_r}}</view>
+				<!-- <view class="title">联系人:{{item.wei_tuo_lian_xi_r}}</view> -->
 				<view class="title">报告状态:<text style="color: #7349ff;">{{item.zhuang_tai_}}</text></view>
 				<view class="btn">
 					<view>
 						<u-button type="warning" size="mini" @click="goDe(item.id_)" style="margin-right: 10rpx;"
-							v-if="item.zhuang_tai_ == '待编制' || item.zhuang_tai_ == '待审核'">修改信息</u-button>
+							v-if="item.zhuang_tai_ == '待编制' || item.zhuang_tai_ == '报告待审核'">修改信息</u-button>
 						<u-button type="warning" size="mini" @click="goto(item.id_,'1')"
-							v-if="item.zhuang_tai_ == '待编制' || item.zhuang_tai_ == '待审核'">预览报告</u-button>
+							v-if="item.zhuang_tai_ == '报告待审核'">预览报告</u-button>
 						<u-button type="warning" size="mini" @click="goto(item.id_,'2')" style="margin-right: 10rpx;"
-							v-if="item.zhuang_tai_ == '待发放' || item.zhuang_tai_ == '已完成'">查看报告</u-button>
+							v-if="item.zhuang_tai_ == '已完成'">查看报告</u-button>
 						<u-button type="primary" size="mini" v-if="item.zhuang_tai_ == '已完成'"
 							@click="getDe(item.id_,item)">
 							下载报告</u-button>
@@ -62,7 +62,6 @@
 			}
 		},
 		onLoad(option) {
-			console.log(option)
 			if (option.id) {
 				this.yangPinBianHao = option.id
 				this.getList(option.id)
@@ -111,53 +110,52 @@
 			},
 			//下载
 			getDe(id, item) {
-				let access_token = uni.getStorageSync('Access-Token')
-				console.log(access_token)
-
+				uni.showLoading({
+					title: '下载中',
+					mask: true
+				})
 				let sql =
-					`select FILE_PATH_  from ibps_file_attachment  WHERE id_ = (SELECT  bao_gao_pdf_ FROM t_lhjcbgb WHERE id_ = '${id}')`
-
+					`select a.bao_gao_pdf_,b.FILE_NAME_ FROM t_lhjcbgb a left join ibps_file_attachment b on a.bao_gao_pdf_ = b.id_ WHERE a.id_ = '${id}'`
 				let requestData = this.$sig(sql)
 				this.$http.post("/ibps/business/v3/sys/universal/inputSqlSelectData", requestData).then(res => {
 					if (res.data.state == 200) {
 						const data = res.data.variables.data[0]
-						let url =
-							http.apiHosp + data.FILE_PATH_
-						uni.getSystemInfo({
-							success: (res) => {
-								// windows | mac为pc端
-								// android | ios为手机端
-								if (res.platform == 'android' || res.platform == 'ios') {
-									var iframe = document.createElement('iframe');
-									iframe.style.display = 'none';
-									iframe.src = "javascript: '<script>location.href=\"" + url +
-										"\"<\/script>'";
-									document.getElementsByTagName('body')[0].appendChild(iframe);
-								} else {
-									const blob = new Blob([
-										url
-									]); //new Blob([res])中不加data就会返回下图中[objece objece]内容(少取一层)
-									const fileName = item.bao_gao_bian_hao_ + '检测项目' + '.pdf'; //下载文件名称
-									const elink = document.createElement('a');
-									elink.download = fileName;
-									elink.style.display = 'none';
-									elink.href = URL.createObjectURL(blob);
-									document.body.appendChild(elink);
-									elink.click();
-									URL.revokeObjectURL(elink.href); // 释放URL 对象
-								}
-							}
-						});
+						this.geDownload(data.bao_gao_pdf_, data.FILE_NAME_)
 					}
 				})
 			},
+			geDownload(id, item) {
+				let requestData = {
+					attachmentId: id
+				}
+				this.$http.get(`/ibps/platform/v3/file/download?attachmentId=${id}`, {
+					responseType: 'arraybuffer'
+				}).then(res => {
+					const blob = new Blob([
+						res.data
+					], {
+						type: 'application/octet-stream'
+					})
+					const url = window.URL.createObjectURL(blob)
+					const link = document.createElement('a')
+					link.style.display = 'none'
+					link.href = url
+					link.setAttribute('download', item + '.pdf')
+					document.body.appendChild(link)
+					link.click()
+					window.URL.revokeObjectURL(link.href)
+					document.body.removeChild(link)
+					uni.hideLoading()
+				})
+			},
 			goDe(id) {
 				this.id = id
 				this.show = true
 			},
 			saveSuccees() {
+				this.show = false
 				this.reportList = []
-				this.getDe(this.id)
+				this.getList(this.yangPinBianHao)
 			},
 
 

+ 44 - 16
pages/hold/hold.vue

@@ -18,7 +18,12 @@
 					</view>
 					<view class="btn">
 						<view>
-							<u-button type="primary" size="mini" @click="goClick(item.id_)">添加</u-button>
+							<u-button type="primary" size="mini" @click="goClick(item.id_)"
+								class="u-m-r-20 btn-back-color">继续编制
+							</u-button>
+							<u-button type="error" size="mini" @click="repulse(item.id_)">
+								删除暂存
+							</u-button>
 						</view>
 					</view>
 				</uni-section>
@@ -44,9 +49,7 @@
 		},
 		// 下拉刷新
 		onPullDownRefresh() {
-			this.current = 0
-			this.list = []
-			this.getData()
+			this.getInit()
 		},
 		// 上拉加载
 		onReachBottom() {
@@ -58,19 +61,14 @@
 
 		},
 		onShow() {
-			this.current = 0
-			this.list = []
-			this.getData()
+			this.getInit()
 		},
-		// watch: {
-		// 	'$route.path'() {
-		// 		console.log(this.$route.path)
-		// 		// 	this.current = 0
-		// 		// 	this.list = []
-		// 		// 	this.getData()
-		// 	}
-		// },
 		methods: {
+			getInit() {
+				this.current = 0
+				this.list = []
+				this.getData()
+			},
 			//获取暂存列表
 			getData() {
 				uni.showLoading({
@@ -88,7 +86,7 @@
 					page = this.current * 10
 				}
 				let sql =
-					`select id_,bian_zhi_shi_jian,wei_tuo_dan_hao_,bao_cun_biao_ti_ from t_mjsjdzcb where bian_zhi_ren_ = '${useId}' and create_time_ > DATE_SUB(NOW(),INTERVAL 3 MONTH) order by create_time_ desc LIMIT ${page},10`
+					`select id_,bian_zhi_shi_jian,wei_tuo_dan_hao_,bao_cun_biao_ti_ from t_mjsjdzcb where dui_ying_shu_ju_b = 't_lhwtsqb' and bian_zhi_ren_ = '${useId}' and create_time_ > DATE_SUB(NOW(),INTERVAL 3 MONTH) order by create_time_ desc LIMIT ${page},10`
 
 				let requestData = this.$sig(sql)
 				this.$http.post("/ibps/business/v3/sys/universal/inputSqlSelectData", requestData).then(res => {
@@ -106,6 +104,36 @@
 					}
 				})
 			},
+			//删除接口
+			repulse(id) {
+				let that = this
+				uni.showModal({
+					title: '提示',
+					content: '是否删除该条暂存数据,删除后,将无法恢复?',
+					success: function(res) {
+						if (res.confirm) {
+							let params = {}
+							params['tableName'] = 't_mjsjdzcb'
+							params['paramWhere'] = "{id_:'" + id + "'}"
+							let requestData = that.$sig(params)
+							that.$http.post("/ibps/business/v3/sys/universal/batchDelete", requestData).then(
+								res => {
+									if (res.data.state == 200) {
+										uni.showToast({
+											title: '删除成功',
+											icon: 'none',
+											duration: 2000
+										})
+										that.getInit()
+									}
+								})
+						} else if (res.cancel) {
+
+						}
+					}
+				})
+
+			},
 
 			//跳转到委托单添加页面
 			goClick(id) {

+ 84 - 44
pages/home/home.vue

@@ -1,16 +1,6 @@
 <template name="home">
 	<view>
 		<scroll-view>
-			<!-- 轮播 -->
-			<!-- 			<swiper class="screen-swiper square-dot" :indicator-dots="true" :circular="true" :autoplay="true"
-				interval="5000" duration="500" :style="[{animation: 'show 0.2s 1'}]">
-				<swiper-item v-for="(item,index) in swiperList" :key="index">
-					<image :src="item.url" mode="aspectFill" v-if="item.type=='image'"></image>
-					<video :src="item.url" autoplay loop muted :show-play-btn="false" :controls="false"
-						objectFit="cover" v-if="item.type=='video'"></video>
-				</swiper-item>
-			</swiper> -->
-
 			<!-- 常用服务 -->
 			<view class="cu-bar bg-white solid-bottom" :style="[{animation: 'show 0.5s 1'}]">
 				<view class="action">
@@ -21,15 +11,7 @@
 			<view class="cu-list grid col-4 text-sm">
 				<view class="cu-item animation-slide-bottom" :style="[{animationDelay: (index + 1)*0.05 + 's'}]"
 					v-for="(item,index) in usList" :key="index" @tap="goPage(item.page)">
-					<view class="padding text-center">
-						<image :src="item.icon" style="width:28px;height:28px;">
-							<view class="cu-tag badge margin-top-sm" style="margin-left:1.2em"
-								v-if="getTtemDotInfo(item)">
-								<block v-if="getTtemDotInfo(item)">{{getTtemDotInfo(item)}}</block>
-							</view>
-						</image>
-						<view class="margin-top-xs">{{item.title}}</view>
-					</view>
+					<icon-item :item="item"></icon-item>
 				</view>
 			</view>
 
@@ -41,15 +23,7 @@
 			<view class="cu-list grid col-4 text-sm">
 				<view class="cu-item animation-slide-bottom" :style="[{animationDelay: (index + 1)*0.05 + 's'}]"
 					v-for="(item,index) in shList" :key="index" @tap="goPage(item.page)">
-					<view class="padding text-center">
-						<image :src="item.icon" style="width:28px;height:28px;">
-							<view class="cu-tag badge margin-top-sm" style="margin-left:1.2em"
-								v-if="getTtemDotInfo(item)">
-								<block v-if="getTtemDotInfo(item)">{{getTtemDotInfo(item)}}</block>
-							</view>
-						</image>
-						<view class="margin-top-xs">{{item.title}}</view>
-					</view>
+					<icon-item :item="item"></icon-item>
 				</view>
 			</view>
 
@@ -62,10 +36,7 @@
 			<view class="cu-list grid col-4 text-sm">
 				<view class="cu-item animation-slide-bottom" :style="[{animationDelay: (index + 1)*0.1 + 's'}]"
 					v-for="(item,index) in osList" :key="index" @tap="goPage(item.page)">
-					<view class="padding text-center">
-						<image :src="item.icon" style="width:28px;height:28px;" />
-						<view class="margin-top-xs">{{item.title}}</view>
-					</view>
+					<icon-item :item="item"></icon-item>
 				</view>
 			</view>
 		</scroll-view>
@@ -80,11 +51,20 @@
 		sh
 	} from '@/common/util/work.js'
 	import socket from '@/common/js-sdk/socket/socket.js'
+	import {
+		ACCESS_TOKEN,
+		USER_NAME,
+		USER_INFO
+	} from "@/common/util/constants"
+	import iconItem from './iconItem.vue'
 	export default {
 		name: 'home',
 		props: {
 			cur: String,
 		},
+		components: {
+			iconItem
+		},
 		watch: {
 			cur: {
 				immediate: true,
@@ -128,10 +108,24 @@
 				msgCount: 0,
 				dot: {
 					mailHome: false
-				}
+				},
+				userid: ''
 			}
 		},
-
+		onLoad() {},
+		created() {
+			//获取账号id
+			setTimeout(() => {
+				let info = uni.getStorageSync(USER_INFO)
+				if (info && info.user.id) {
+					this.userid = info.user.id || ''
+				}
+				this.getCount()
+			}, 500)
+		},
+		onShow() {
+			this.getCount()
+		},
 		methods: {
 			initMenu() {
 				//this.onSocketOpen()
@@ -139,6 +133,11 @@
 				this.loadCount(0);
 			},
 			goPage(page) {
+				//是否是退出按钮判断
+				if (page == "userexit") {
+					this.getQuit()
+					return
+				}
 
 				if (!page) {
 					return false;
@@ -172,16 +171,6 @@
 			},
 			loadCount(flag) {
 				let url = '/sys/annountCement/listByUser';
-
-				/*
-				this.$http.get(url).then(res=>{
-				  if(res.data.success){
-					let msg1Count = res.data.result.anntMsgTotal;
-					let msg2Count = res.data.result.sysMsgTotal;
-					this.msgCount = msg1Count + msg2Count
-				  }
-				})
-				*/
 			},
 			loadEmailCount() {
 				this.dot.mailHome = true
@@ -191,6 +180,57 @@
 					return this.msgCount
 				}
 				return '';
+			},
+			//退出逻辑
+			getQuit() {
+				uni.showModal({
+					title: '提示',
+					content: '是否退出登录?',
+					success: function(res) {
+						if (res.confirm) {
+							let loginMessage2 = uni.getStorageSync('login-message')
+							let para = {
+								access_token: uni.getStorageSync(ACCESS_TOKEN)
+							}
+
+							uni.clearStorageSync()
+
+							//ibps/oauth2/v3/user/logout?access_token=
+							uni.setStorageSync('login-message', loginMessage2)
+							uni.navigateTo({
+								url: '/pages/login/login'
+							})
+							// let url = "/ibps/oauth2/v3/user/logout?access_token=" + uni.getStorageSync(
+							// 	ACCESS_TOKEN)
+							// api.logout(url, para).then(res => {
+							// 	uni.clearStorageSync()
+
+							// 	//ibps/oauth2/v3/user/logout?access_token=
+							// 	uni.setStorageSync('login-message', loginMessage2)
+							// 	uni.navigateTo({
+							// 		url: '/pages/login/login'
+							// 	})
+							// })
+						} else if (res.cancel) {
+
+						}
+					}
+				});
+
+			},
+			getCount() {
+				if (!this.userid) {
+					return
+				}
+				let sql =
+					`select count(id_) as count from t_lhwtsqb where wei_tuo_zhuang_ta = '待编制' or shi_fou_guo_shen_ = '已退回' and create_by_ = '${this.userid}'`
+				let requestData = this.$sig(sql)
+				this.$http.post("/ibps/business/v3/sys/universal/inputSqlSelectData", requestData).then(res => {
+					if (res.data.state == 200) {
+						const data = res.data.variables.data[0]
+						this.usList[2].text = data.count
+					}
+				})
 			}
 		}
 	}

+ 54 - 0
pages/home/iconItem.vue

@@ -0,0 +1,54 @@
+<template>
+	<view>
+		<view class="padding text-center">
+			<block v-if="item.text && item.text != 0">
+				<uni-badge class="uni-badge-left-margin" :text="item.text" absolute="rightTop" :offset="[-3, -3]"
+					size="small" :custom-style="customStyle">
+					<image :src="item.icon" style="width:28px;height:28px;">
+						<view class="cu-tag badge margin-top-sm" style="margin-left:1.2em" v-if="getTtemDotInfo(item)">
+							<block v-if="getTtemDotInfo(item)">{{getTtemDotInfo(item)}}</block>
+						</view>
+					</image>
+				</uni-badge>
+			</block>
+			<block v-else>
+				<image :src="item.icon" style="width:28px;height:28px;">
+					<view class="cu-tag badge margin-top-sm" style="margin-left:1.2em" v-if="getTtemDotInfo(item)">
+						<block v-if="getTtemDotInfo(item)">{{getTtemDotInfo(item)}}</block>
+					</view>
+				</image>
+			</block>
+			<view class="margin-top-xs">{{item.title}}</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			item: {
+				type: Object,
+				default: () => {}
+			}
+		},
+		data() {
+			return {
+				customStyle: {
+					backgroundColor: '#dd524d',
+					color: '#fff'
+				}
+			}
+		},
+		methods: {
+			getTtemDotInfo(item) {
+				if (item.page === 'annotationList' && this.msgCount > 0) {
+					return this.msgCount
+				}
+				return '';
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+</style>

+ 1 - 15
pages/index/index.vue

@@ -2,29 +2,15 @@
 	<view>
 		<home :cur="PageCur" v-if="PageCur=='home'" :key="commponent1Key"></home>
 		<people v-if="PageCur=='people'" :key="commponent2Key"></people>
-		<view class="cu-bar tabbar bg-white shadow foot">
+		<view class="cu-bar tabbar bg-white shadow foot" style="z-index: 999;">
 			<view :class="PageCur=='home'?'action text-green':'action text-gray'" @click="NavChange" data-cur="home">
 				<view class='cuIcon-homefill'></view>主页
 			</view>
-
-			<!-- 			<view :class="PageCur=='peoplelis'?'action text-green':'action text-gray'" @click="NavChange"
-				data-cur="peoplelis">
-				<view class='cuIcon-peoplelist'></view>审批
-			</view>
-			<view :class="PageCur=='profile'?'action text-green':'action text-gray'" @click="NavChange"
-				data-cur="profile">
-				<view class='cuIcon-profile'></view>发起
-			</view> -->
 			<view :class="PageCur=='people'?'action text-green':'action text-gray'" @click="NavChange"
 				data-cur="people">
 				<view class='cuIcon-people'></view>个人
 			</view>
 		</view>
-
-
-		<uni-notice-bar show-icon scrollable style="position: fixed;bottom: 0rpx;"
-			text="号外号外!罗湖网上委托平台上线啦!从此下单无忧,报告查询无忧,吃得好,睡得好,顶呱呱!" />
-
 	</view>
 </template>
 

+ 1 - 3
pages/jiance/jindu.vue

@@ -51,7 +51,7 @@
 						v-if="(item.wei_tuo_zhuang_ta == '待审核' || item.wei_tuo_zhuang_ta == '待审批') && item.shi_fou_guo_shen_ != '已退回'">
 						撤回申请
 					</u-button>
-					<u-button class="m-r-15" type="primary" size="mini" style=""
+					<u-button class="m-r-15 btn-back-color" type="primary" size="mini" style=""
 						@click="editOrder(item.id_,item.he_tong_bian_hao_,'0', 'detail')">明细
 					</u-button>
 					<u-button class="m-r-15" type="success" size="mini"
@@ -122,7 +122,6 @@
 		},
 		// 下拉刷新
 		onPullDownRefresh() {
-			console.log('refresh');
 			this.current = 0
 			this.resdata = []
 			this.getData(this.keyword)
@@ -161,7 +160,6 @@
 			 * 页面跳转
 			 */
 			editOrder(editId, heTongBianHao, buttonFlag, type) {
-				console.log(editId)
 				uni.navigateTo({
 					url: `/pages/jiance/order?id=${editId}&buttonFlag=${buttonFlag}&heTongBianHao=${heTongBianHao}&type=${type}`
 				})

+ 34 - 13
pages/jiance/list.vue

@@ -5,8 +5,20 @@
 			<block slot="content">我的样品</block>
 		</cu-custom>
 
+		<view class="cu-bar bg-white search fixed" :style="[{top:CustomBar + 'px'}]">
+			<view class="search-form round">
+				<text class="cuIcon-search"></text>
+				<input type="text" v-model="keyword" placeholder="输入搜索的关键词" confirm-type="search"
+					@confirm="search"></input>
+			</view>
+			<view class="action">
+				<button class="cu-btn bg-gradual-blue shadow-blur round" @tap="search">搜索</button>
+			</view>
+		</view>
+
 
-		<view v-for="(item,i) in resdata" :key="i" style="margin: 10rpx 20rpx;">
+		<view v-for="(item,i) in resdata" :key="i" style="margin: 10rpx 20rpx;position: relative;"
+			:style="[{top:'calc('+ CustomBar + 'px + 20rpx)'}]">
 			<uni-section :title="'样品编号:'+item.yang_pin_bian_hao" :subTitle="'检测委托单号:'+item.wei_tuo_bian_hao_"
 				type="line" padding>
 				<view>
@@ -20,8 +32,8 @@
 							<view> {{item.shou_yang_ri_qi_}} </view>
 						</view>
 						<view style="display: flex;line-height: 50rpx;">
-							<view>验收状态:</view>
-							<view style="color: #5E00FF;" v-if="item.yan_shou_zhuang_t"> {{item.yan_shou_zhuang_t}}
+							<view>验收结果:</view>
+							<view style="color: #5E00FF;" v-if="item.yan_shou_jie_guo_"> {{item.yan_shou_jie_guo_}}
 							</view>
 						</view>
 						<!-- 						<view>
@@ -43,11 +55,11 @@
 					</view>
 					<!-- v-if="item.zhuang_tai_ && (item.zhuang_tai_ == '待运营中心审核' || item.zhuang_tai_ == '待检测中心审核' || item.zhuang_tai_ == '待财务审核' || item.zhuang_tai_ == '待样品接收')" -->
 					<view class="btnList">
-						<u-button class="u-m-r-15" type="warning" size="mini" @click="goto(item.id_)"
+						<u-button class="u-m-r-15 btn-back-color" type="success" size="mini" @click="goto(item.id_)"
 							v-if="item.wei_tuo_zhuang_ta && (item.wei_tuo_zhuang_ta == '待审核' ||item.wei_tuo_zhuang_ta == '已编制' || item.wei_tuo_zhuang_ta == '待财务审核' || item.wei_tuo_zhuang_ta == '待签订' || item.wei_tuo_zhuang_ta == '待样品接收')">
 							样品修改</u-button>
-						<u-button type="warning" size="mini" class="m-r-15" @click="getTag(item.id_)">样品标签</u-button>
-						<u-button type="warning" size="mini" @click="goBaogao(item.yang_pin_bian_hao)">查看报告</u-button>
+						<u-button type="success" size="mini" class="m-r-15" @click="getTag(item.id_)">样品标签</u-button>
+						<u-button type="success" size="mini" @click="goBaogao(item.yang_pin_bian_hao)">查看报告</u-button>
 					</view>
 				</view>
 			</uni-section>
@@ -76,6 +88,8 @@
 		// 初始化
 		data() {
 			return {
+				keyword: '',
+				CustomBar: this.CustomBar,
 				url: http.apiHosp +
 					'demo/reportJsp/pdfReport.jsp?rpx=%E4%B8%AD%E6%B1%87%E7%91%9E%E5%BE%B7%E6%A3%80%E6%B5%8B%E4%B8%AD%E5%BF%83/39%E6%A0%B7%E5%93%81%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/GDYR-CX11-R01A%20%E6%A3%80%E6%B5%8B%E5%A7%94%E6%89%98%E5%8D%95.rpx&id_=',
 				resdata: [],
@@ -88,26 +102,33 @@
 		},
 		// 页面加载
 		onLoad: function() {
-			this.getData()
+			this.getData(this.keyword)
 			// this.getData(this.current, this.pageSize, this.total);
 		},
 		// 下拉刷新
 		onPullDownRefresh() {
-			console.log('refresh');
 			this.current = 0
 			this.resdata = []
-			this.getData()
+			this.getData(this.keyword)
 		},
 		// 上拉加载
 		onReachBottom() {
 			let _self = this
 			uni.showNavigationBarLoading()
 			if (this.ReachBottomShow) {
-				this.getData()
+				this.getData(this.keyword)
 			}
 
 		},
 		methods: {
+			/**
+			 * 模糊查询
+			 */
+			search() {
+				this.current = 0
+				this.resdata = []
+				this.getData(this.keyword)
+			},
 			add() {
 				this.total += 10
 			},
@@ -121,7 +142,7 @@
 			},
 
 			// 拉取列表数据
-			getData(pageNo, limit, totalCount) {
+			getData(keyworks) {
 				uni.showLoading({
 					mask: true,
 					title: 'loading'
@@ -148,10 +169,10 @@
 				//select a.id_,a.create_time_,a.yang_pin_ming_che,a.yang_pin_bian_hao,c.fu_kuan_zhuang_ta,c.wei_tuo_bian_hao_,c.wei_tuo_zhuang_ta,b.fan_yang_ri_qi_,b.bei_zhu_ from t_lhypb a inner join t_lhwtsqb c on a.parent_id_ = c.id_ left join t_lhypdjb b on a.yang_pin_bian_hao = b.yang_ben_bian_hao
 				//明鉴
 				let sql =
-					`select a.id_,a.create_time_,a.yang_pin_ming_che,a.yang_pin_bian_hao,c.fu_kuan_zhuang_ta,c.wei_tuo_bian_hao_,c.wei_tuo_zhuang_ta,b.shou_yang_ri_qi_,b.bei_zhu_` +
+					`select a.id_,a.create_time_,a.yang_pin_ming_che,a.yang_pin_bian_hao,c.fu_kuan_zhuang_ta,c.wei_tuo_bian_hao_,c.wei_tuo_zhuang_ta,b.shou_yang_ri_qi_,b.bei_zhu_,b.yan_shou_jie_guo_` +
 					` from t_lhypb a` +
 					` inner join t_lhwtsqb c on a.parent_id_ = c.id_ and a.create_by_= '${useId}' ` +
-					` left join t_lhypdjb b on a.yang_pin_bian_hao = b.yang_ben_bian_hao ORDER BY a.create_time_ desc limit ${page},10`
+					` left join t_lhypdjb b on a.yang_pin_bian_hao = b.yang_ben_bian_hao where a.yang_pin_bian_hao like '%${keyworks}%' or a.wei_tuo_dan_hao_ like '%${keyworks}%' ORDER BY a.create_time_ desc limit ${page},10`
 
 				let requestData = this.$sig(sql)
 				this.$http.post("/ibps/business/v3/sys/universal/inputSqlSelectData", requestData).then(res => {

+ 23 - 0
pages/jiance/list/json/spe.json

@@ -34,5 +34,28 @@
 	}, {
 		"label": "不返回给委托人",
 		"value": "不返回给委托人"
+	}],
+	"transportType": [{
+		"text": "常温",
+		"value": "常温"
+	}, {
+		"text": "冰袋(2-8℃)",
+		"value": "冰袋(2-8℃)"
+	}, {
+		"text": "干冰",
+		"value": "干冰"
+	}, {
+		"text": "液氮",
+		"value": "液氮"
+	}, {
+		"text": "其他",
+		"value": "其他"
+	}],
+	"sex": [{
+		"text": "男",
+		"value": "男"
+	}, {
+		"text": "女",
+		"value": "女"
 	}]
 }

+ 126 - 44
pages/jiance/list/specimen.vue

@@ -16,11 +16,13 @@
 					<u-input v-model="form.xing_ming_" />
 				</u-form-item>
 				<u-form-item label="性别">
-					<u-radio-group v-model="form.xing_bie_">
+					<!-- <u-radio-group v-model="form.xing_bie_">
 						<u-radio v-for="(it, index) in sexList" :key="index" :name="it.name">
 							{{it.name}}
 						</u-radio>
-					</u-radio-group>
+					</u-radio-group> -->
+					<uni-data-select placeholder="请选择性别" v-model="form.xing_bie_" :localdata="sexList">
+					</uni-data-select>
 				</u-form-item>
 				<u-form-item label="年龄">
 					<u-input v-model="form.nian_ling_" />
@@ -92,10 +94,14 @@
 				</view>
 				<block v-if="showBoolean1">
 					<u-form-item label="样本类型①">
-						<u-input type="select" v-model="form.yang_pin_lei_xing" @click="sheetClick('yangpinType1')" />
+						<u-input v-model="form.yang_pin_lei_xing" />
+						<u-button slot="right" type="success" size="mini" @click="sheetClick('yangpinType1','样本类型')">选择
+						</u-button>
 					</u-form-item>
 					<u-form-item label="样本运输条件①">
-						<u-input type="select" v-model="form.yang_ben_yun_shu_" @click="sheetClick('transportType1')" />
+						<u-input v-model="form.yang_ben_yun_shu_" />
+						<u-button slot="right" type="success" size="mini" @click="sheetClick('transportType1')">选择
+						</u-button>
 					</u-form-item>
 					<u-form-item label="数量①">
 						<u-number-box v-model="form.shu_liang_"></u-number-box>
@@ -119,10 +125,14 @@
 				</view>
 				<block v-if="showBoolean2">
 					<u-form-item label="样本类型②">
-						<u-input type="select" v-model="form.yang_pin_lei_er_" @click="sheetClick('yangpinType2')" />
+						<u-input v-model="form.yang_pin_lei_er_" />
+						<u-button slot="right" type="success" size="mini" @click="sheetClick('yangpinType2','样本类型')">选择
+						</u-button>
 					</u-form-item>
 					<u-form-item label="样本运输条件②">
-						<u-input type="select" v-model="form.yang_pin_yun_shu_" @click="sheetClick('transportType2')" />
+						<u-input v-model="form.yang_pin_yun_shu_" />
+						<u-button slot="right" type="success" size="mini" @click="sheetClick('transportType2')">选择
+						</u-button>
 					</u-form-item>
 					<u-form-item label="数量②">
 						<u-number-box v-model="form.shu_liang_er_"> </u-number-box>
@@ -146,10 +156,14 @@
 				</view>
 				<block v-if="showBoolean3">
 					<u-form-item label="样本类③">
-						<u-input type="select" v-model="form.yang_pin_lei_san_" @click="sheetClick('yangpinType3')" />
+						<u-input v-model="form.yang_pin_lei_san_" />
+						<u-button slot="right" type="success" size="mini" @click="sheetClick('yangpinType3','样本类型')">选择
+						</u-button>
 					</u-form-item>
 					<u-form-item label="样本运输条件③">
-						<u-input type="select" v-model="form.yang_pin_yun_san" @click="sheetClick('transportType3')" />
+						<u-input v-model="form.yang_pin_yun_san" />
+						<u-button slot="right" type="success" size="mini" @click="sheetClick('transportType3')">选择
+						</u-button>
 					</u-form-item>
 					<u-form-item label="数量③">
 						<u-number-box v-model="form.shu_liang_san_"></u-number-box>
@@ -173,10 +187,14 @@
 				</view>
 				<block v-if="showBoolean4">
 					<u-form-item label="样本类型④">
-						<u-input type="select" v-model="form.yang_pin_lei_si_" @click="sheetClick('yangpinType4')" />
+						<u-input v-model="form.yang_pin_lei_si_" @click="sheetClick('yangpinType4')" />
+						<u-button slot="right" type="success" size="mini" @click="sheetClick('yangpinType4','样本类型')">选择
+						</u-button>
 					</u-form-item>
 					<u-form-item label="样本运输条件④" required>
-						<u-input type="select" v-model="form.yang_pin_yun_si_" @click="sheetClick('transportType4')" />
+						<u-input v-model="form.yang_pin_yun_si_" />
+						<u-button slot="right" type="success" size="mini" @click="sheetClick('transportType4')">选择
+						</u-button>
 					</u-form-item>
 					<u-form-item label="数量④">
 						<u-number-box v-model="form.shu_liang_si_"></u-number-box>
@@ -205,6 +223,8 @@
 			</view>
 		</u-modal>
 
+		<lin-popup ref="picker" :title="title" :list="list" @onConfirm="onConfirm"></lin-popup>
+
 	</view>
 </template>
 
@@ -265,13 +285,13 @@
 				list: [],
 
 				//样本类型
-				sampleTypeList: order.sampleType,
+				sampleTypeList: [],
 				//样本状态
 				sampleStateList: order.sampleState,
 				//样本运输条件
-				transportTypeList: order.transportType,
+				transportTypeList: test.transportType,
 				//样本规格
-				specificationList: order.specification,
+				specificationList: [],
 				//样品处理
 				dispositionList: order.disposition,
 				//性别
@@ -284,7 +304,8 @@
 				taoCanXiangMuList: [],
 				jianCeListShow: false,
 				content: ``,
-				meassageShow: false
+				meassageShow: false,
+				title: ''
 			}
 		},
 		onLoad(option) {
@@ -295,10 +316,45 @@
 			if (option.id) {
 				this.id = option.id
 				this.getDe(option.id)
-
 			}
+			this.getYpbzggb()
+			this.getYplxb()
 		},
 		methods: {
+			//样品类型
+			getYplxb() {
+				let sql =
+					`select lei_xing_ from t_yplxb order by create_time_ desc`
+				let requestData = this.$sig(sql)
+				this.$http.post("/ibps/business/v3/sys/universal/inputSqlSelectData", requestData).then(res => {
+					if (res.data.state == 200) {
+						const datas = res.data.variables.data
+						if (datas.length > 0) {
+							datas.forEach(item => {
+								this.$set(item, 'name', item.lei_xing_)
+							})
+							this.sampleTypeList = datas
+						}
+					}
+				})
+			},
+			//样品规格
+			getYpbzggb() {
+				let sql =
+					`select yang_pin_gui_ge_ from t_ypbzggb order by create_time_ desc`
+				let requestData = this.$sig(sql)
+				this.$http.post("/ibps/business/v3/sys/universal/inputSqlSelectData", requestData).then(res => {
+					if (res.data.state == 200) {
+						const datas = res.data.variables.data
+						if (datas.length > 0) {
+							datas.forEach(item => {
+								this.$set(item, 'name', item.yang_pin_gui_ge_)
+							})
+							this.specificationList = datas
+						}
+					}
+				})
+			},
 			//样品详情
 			getDe(id) {
 				let sql = `select  * from  t_lhypb  where id_ = '${id}'`
@@ -319,18 +375,18 @@
 						this.form.bei_zhu_1_ = result.bei_zhu_1_
 						this.form.yang_pin_lei_xing = result.yang_pin_lei_xing
 						this.form.yang_ben_yun_shu_ = result.yang_ben_yun_shu_
-						this.form.shu_liang_ = parseInt(result.shu_liang_)
+						this.form.shu_liang_ = parseInt(result.shu_liang_ || 0)
 						this.form.yang_pin_gui_ge_ = result.yang_pin_gui_ge_
 						this.form.yang_pin_lei_er_ = result.yang_pin_lei_er_
 						this.form.yang_pin_yun_shu_ = result.yang_pin_yun_shu_
 						this.form.yang_pin_gui_ge_e = result.yang_pin_gui_ge_e
-						this.form.shu_liang_er_ = parseInt(result.shu_liang_er_)
+						this.form.shu_liang_er_ = parseInt(result.shu_liang_er_ || 0)
 						this.form.yang_pin_gui_ge_s = result.yang_pin_gui_ge_s
-						this.form.shu_liang_san_ = parseInt(result.shu_liang_san_)
+						this.form.shu_liang_san_ = parseInt(result.shu_liang_san_ || 0)
 						this.form.yang_pin_yun_san = result.yang_pin_yun_san
 						this.form.yang_pin_lei_san_ = result.yang_pin_lei_san_
 						this.form.yang_pin_gui_si_ = result.yang_pin_gui_si_
-						this.form.shu_liang_si_ = parseInt(result.shu_liang_si_)
+						this.form.shu_liang_si_ = parseInt(result.shu_liang_si_ || 0)
 						this.form.yang_pin_yun_si_ = result.yang_pin_yun_si_
 						this.form.yang_pin_lei_si_ = result.yang_pin_lei_si_
 						this.form.xiang_mu_ming_che = result.xiang_mu_ming_che
@@ -424,6 +480,19 @@
 				this.form.yang_pin_zong_shu = parseInt(this.form.shu_liang_si_) + parseInt(this.form.shu_liang_san_) +
 					parseInt(this.form.shu_liang_er_) + parseInt(this.form.shu_liang_)
 
+				if (this.form.shu_liang_ == 0) {
+					this.form.shu_liang_ = ''
+				}
+				if (this.form.shu_liang_er_ == 0) {
+					this.form.shu_liang_er_ = ''
+				}
+				if (this.form.shu_liang_san_ == 0) {
+					this.form.shu_liang_san_ = ''
+				}
+				if (this.form.shu_liang_si_ == 0) {
+					this.form.shu_liang_si_ = ''
+				}
+
 				let pp = {
 					paramWhere: [{
 						id_: this.id
@@ -453,7 +522,6 @@
 
 			sheetClick(type) {
 				this.listType = type
-				this.sheetShow = true
 				if (type == 'state') {
 					this.list = this.sampleStateList
 				}
@@ -475,6 +543,12 @@
 				if (type == 'jianCeType') {
 					this.list = this.jianCeTypeList
 				}
+
+				if (type.includes('specification') || type.includes('yangpinType')) {
+					this.$refs['picker'].show();
+				} else {
+					this.sheetShow = true
+				}
 			},
 			dateClick() {
 				this.dateShow = true
@@ -495,53 +569,61 @@
 				}
 
 				//1
-				if (this.listType == 'yangpinType1') {
-					lists.yang_pin_lei_xing = that.list[e].text
-				}
 				if (this.listType == 'transportType1') {
 					lists.yang_ben_yun_shu_ = that.list[e].text
 				}
-				if (this.listType == 'specification1') {
-					lists.yang_pin_gui_ge_ = that.list[e].text
-				}
 
 				//2
-				if (this.listType == 'yangpinType2') {
-					lists.yang_pin_lei_er_ = that.list[e].text
-				}
 				if (this.listType == 'transportType2') {
 					lists.yang_pin_yun_shu_ = that.list[e].text
 				}
-				if (this.listType == 'specification2') {
-					lists.yang_pin_gui_ge_e = that.list[e].text
-				}
 
 				//3
-				if (this.listType == 'yangpinType3') {
-					lists.yang_pin_lei_san_ = that.list[e].text
-				}
 				if (this.listType == 'transportType3') {
 					lists.yang_pin_yun_san = that.list[e].text
 				}
-				if (this.listType == 'specification3') {
-					lists.yang_pin_gui_ge_s = that.list[e].text
-				}
 
 				//4
-				if (this.listType == 'yangpinType4') {
-					lists.yang_pin_lei_si_ = that.list[e].text
-				}
 				if (this.listType == 'transportType4') {
 					lists.yang_pin_yun_si_ = that.list[e].text
 				}
-				if (this.listType == 'specification4') {
-					lists.yang_pin_gui_si_ = that.list[e].text
-				}
 
 				if (this.listType == 'disposition') {
 					this.form.yangBenChuLi = this.list[e].text
 				}
 			},
+			onConfirm(e) {
+				let that = this
+				let lists = that.form
+
+				//样品类型
+				if (this.listType == 'yangpinType1') {
+					lists.yang_pin_lei_xing = that.list[e].name
+				}
+				if (this.listType == 'yangpinType2') {
+					lists.yang_pin_lei_er_ = that.list[e].name
+				}
+				if (this.listType == 'yangpinType3') {
+					lists.yang_pin_lei_san_ = that.list[e].name
+				}
+				if (this.listType == 'yangpinType4') {
+					lists.yang_pin_lei_si_ = that.list[e].name
+				}
+
+				//样品规格
+				if (this.listType == 'specification1') {
+					lists.yang_pin_gui_ge_ = that.list[e].name
+				}
+				if (this.listType == 'specification2') {
+					lists.yang_pin_gui_ge_e = that.list[e].name
+				}
+				if (this.listType == 'specification3') {
+					lists.yang_pin_gui_ge_s = that.list[e].name
+				}
+				if (this.listType == 'specification4') {
+					lists.yang_pin_gui_si_ = that.list[e].name
+				}
+			},
 			//检测详情弹出框
 			getJianXiangData(item) {
 				let content = `

+ 8 - 2
pages/jiance/manyi.vue

@@ -65,7 +65,9 @@
 			<textarea maxlength="-1" v-model="qingNinTianXie" placeholder="意见和建议"></textarea>
 		</uni-section>
 		<view class="padding flex flex-direction">
-			<button class="cu-btn bg-blue lg bg-mingjian" @click="onSubmit">提交</button>
+			<u-button type="success" class="btn btn-back-color" @click="onSubmit">提交
+			</u-button>
+			<!-- <button class="cu-btn bg-blue lg bg-mingjian" @click="onSubmit">提交</button> -->
 		</view>
 	</view>
 </template>
@@ -119,7 +121,7 @@
 				let info = uni.getStorageSync(USER_INFO);
 				if (info) {
 					this.keHuBianHao = info.user.id || ''
-					this.buMenName = info.user.wcAccount || ''
+					this.buMenName = info.user.qq || ''
 					this.lianxidianhua = info.user.mobile || ''
 					this.keHuLianXiRen = info.user.name || ''
 					this.keHuLianXiYouXian = info.user.email || ''
@@ -218,4 +220,8 @@
 	.cu-form-group .title {
 		min-width: calc(8em + 25px);
 	}
+
+	.btn {
+		margin: 15rpx
+	}
 </style>

Plik diff jest za duży
+ 421 - 279
pages/jiance/order.vue


+ 111 - 0
pages/jiance/order/lhypbCom.vue

@@ -0,0 +1,111 @@
+<template>
+	<view>
+		<u-card :title="'样品编号:'+ item.yangPinBianHao" :subTitle="'样品'+(index+1)">
+			<view class="" slot="body">
+				<view class="u-body-item u-flex u-border-bottom u-col-between u-p-t-0">
+					<view class="u-body-item-title ">
+						样品名称:
+					</view>
+					<view class="u-body-item-title u-line-2 u-body-item-title-color">
+						{{item.yangPinMingCheng}}
+					</view>
+				</view>
+				<view class="u-body-item u-flex u-border-bottom u-col-between u-p-t-0 u-m-t-20">
+					<view class="u-body-item-title">
+						送检批号/编号:
+					</view>
+					<view class="u-body-item-title u-line-2 u-body-item-title-color">
+						{{item.songJianPiHao}}
+					</view>
+				</view>
+				<view class="u-body-item u-flex u-border-bottom u-col-between u-p-t-0 u-m-t-20">
+					<view class="u-body-item-title">
+						样品状态:
+					</view>
+					<view class="u-body-item-title u-line-2 u-body-item-title-color">
+						{{item.yangPinZhuangTai}}
+					</view>
+				</view>
+				<view class="u-body-item u-flex u-p-t-0 u-m-t-20">
+					<view class="u-body-item-title">
+						送检时间:
+					</view>
+					<view class="u-body-item-title u-line-2 u-body-item-title-color">
+						{{item.songJianShiJian}}
+					</view>
+				</view>
+			</view>
+			<view class="u-body-footer" slot="foot">
+				<u-icon name="setting" size="34" color="" label="详情" class="u-m-r-20"
+					@click="updateClick(index,'detail')"></u-icon>
+				<u-icon name="edit-pen" size="34" color="" label="编辑" class="u-m-r-20"
+					@click="updateClick(index,'edit')" v-if="type != 'detail'">
+				</u-icon>
+				<u-icon name=" trash" size="34" color="" label="删除" @click="deleteClick(index)" v-if="type != 'detail'">
+				</u-icon>
+			</view>
+		</u-card>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			item: {
+				type: Object,
+				default: () => {}
+			},
+			index: {
+				type: Number,
+				default: 0
+			},
+			type: {
+				type: String,
+				default: 'add'
+			}
+		},
+		data() {
+			return {
+				title: 'S2023012155',
+			}
+		},
+		methods: {
+			deleteClick(index) {
+				this.$emit("deleteClick", index)
+			},
+			updateClick(index, type) {
+				this.$emit("updateClick", index, type)
+			}
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.u-card-wrap {
+		background-color: $u-bg-color;
+		padding: 1px;
+	}
+
+	.u-body-item-title-color {
+		color: #909399;
+	}
+
+	.u-body-item {
+		font-size: 28rpx;
+		color: #333;
+		padding: 20rpx 10rpx;
+	}
+
+	.u-body-item image {
+		width: 120rpx;
+		flex: 0 0 120rpx;
+		height: 120rpx;
+		border-radius: 8rpx;
+		margin-left: 12rpx;
+	}
+
+	.u-body-footer {
+		display: flex;
+		justify-content: flex-end;
+	}
+</style>

+ 249 - 94
pages/jiance/order/lhypbMessage.vue

@@ -13,11 +13,14 @@
 					<u-input placeholder="请输入姓名" v-model="form.xingMing" :disabled="type == 'detail'?true :false" />
 				</u-form-item>
 				<u-form-item label="性别">
-					<u-radio-group v-model="form.xingBie" v-if="type != 'detail'">
+					<uni-data-select placeholder="请选择性别" v-model="form.xingBie" :localdata="sexList"
+						v-if="type != 'detail'">
+					</uni-data-select>
+					<!-- <u-radio-group v-model="form.xingBie" v-if="type != 'detail'">
 						<u-radio v-for="(it, index) in sexList" :key="index" :name="it.name">
 							{{it.name}}
 						</u-radio>
-					</u-radio-group>
+					</u-radio-group> -->
 					<text v-else>{{form.xingBie}}</text>
 				</u-form-item>
 				<u-form-item label="年龄">
@@ -30,35 +33,54 @@
 				<u-form-item label="样本状态" prop="yangPinZhuangTai" required>
 					<u-input placeholder="请选择样本状态" v-model="form.yangPinZhuangTai"
 						:disabled="type == 'detail'?true :false" />
-					<u-button type="success" slot="right" size="mini" @click="sheetClick('state')"
-						v-if="type != 'detail'">选择
+					<u-button type="success" slot="right" class="btn-back-color" size="mini"
+						@click="sheetClick('state')" v-if="type != 'detail'">选择
 					</u-button>
 				</u-form-item>
 				<u-form-item label="送检时间" prop="songJianShiJian" required>
 					<u-input placeholder="请选择送检时间" v-model="form.songJianShiJian" disabled />
-					<u-button type="success" slot="right" size="mini" @click="dateClick('inspect')"
-						v-if="type != 'detail'">选择
+					<u-button type="success" slot="right" class="btn-back-color" size="mini"
+						@click="dateClick('inspect')" v-if="type != 'detail'">选择
 					</u-button>
 				</u-form-item>
 				<u-form-item label="备注">
 					<u-input placeholder="请输入备注" v-model="form.beiZhu1" :disabled="type == 'detail'?true :false" />
 				</u-form-item>
 
-				<view class="qingshe" style="background-color: #99cc66;">
-					<view class="qingTitle" style="color: #FFFFFF;">
+				<view class="qingshe">
+					<view class="qingTitle">
 						常规项目选择
 					</view>
 				</view>
+				<u-form-item label="项目编号搜索" v-if="type != 'detail'">
+					<u-input placeholder="请输入项目编号搜索" v-model="form.search" />
+				</u-form-item>
 
-				<u-form-item label="检测类型">
+				<u-form-item label="检测类型" v-if="type != 'detail'">
 					<!-- <u-input placeholder="请选择检测类型" type="select" v-model="form.jianCeType"
 						@click="selectClick('jianCeType')" /> -->
+					<lin-select item-key="id" placeholder='请输入内容' :binData="jianCeTypeList" checkType="checkbox"
+						tags="name" inputStyle="" selectStyle="" overflow="hide" @getBackVal="checkBoxChange">
+					</lin-select>
+
+				</u-form-item>
+
+				<view v-if="false">
 					<uni-data-checkbox v-model="form.jianCeType" multiple :localdata="jianCeTypeList"
 						@change="checkBoxChange">
 					</uni-data-checkbox>
+				</view>
+
+				<u-form-item label="检测项目" prop="name">
+					<div style="display: flex;justify-content: flex-end;" @click="jianCeShow = !jianCeShow">
+						<!-- <checkbox :checked="checked" style="margin-right: 15rpx;" @click="checkedChange" />全选 -->
+						<u-icon name="arrow-up" color="#999" v-if="jianCeShow">
+						</u-icon>
+						<u-icon name="arrow-down" color="#999" v-else></u-icon>
+					</div>
 				</u-form-item>
 
-				<u-form-item label="检测项目" prop="name" label-position="top">
+				<view v-if="jianCeShow">
 					<view v-if="type != 'detail'">
 						<view>
 							<checkbox-group v-for="(it, x) in form.jianCeList" :key="x">
@@ -72,6 +94,7 @@
 											{{it.xiang_mu_bian_hao || ''}}-{{it.jian_ce_xiang_mu_ || ''}}
 											<text style="color: red;">[{{it.zhe_hou_jia_ge_ || '0'}}元]</text>
 										</view>
+										<view>检测类别:{{it.jian_ce_lei_bie_}}</view>
 										<!-- <view>{{it.yi_ju_de_biao_zhu || ''}}</view> -->
 										<view>报告周期(工作日):{{it.bao_gao_zhou_qi_g || '当'}}天</view>
 									</view>
@@ -81,7 +104,7 @@
 						<view>
 							<checkbox-group v-for="(it, x) in form.jianCeList" :key="x">
 								<label class=" uni-list-cell uni-list-cell-pd"
-									v-show="(form.jianCeTypeString.indexOf(it.jian_ce_lei_bie_) !== -1) && !it.checked"
+									v-show="((form.jianCeTypeString.indexOf(it.jian_ce_lei_bie_ || '') !== -1) || (form.search && it.xiang_mu_bian_hao.indexOf(form.search) !== -1)) && !it.checked"
 									style="display: flex;margin: 15rpx 10rpx;font-size: 20rpx;line-height: 40rpx;">
 									<view>
 										<checkbox :checked="it.checked" :value="it.id_" @click="changeIndex(it,x)" />
@@ -91,6 +114,7 @@
 											{{it.xiang_mu_bian_hao || ''}}-{{it.jian_ce_xiang_mu_ || ''}}
 											<text style="color: red;">[{{it.zhe_hou_jia_ge_ || '0'}}元]</text>
 										</view>
+										<view>检测类别:{{it.jian_ce_lei_bie_}}</view>
 										<!-- <view>{{it.yi_ju_de_biao_zhu || ''}}</view> -->
 										<view>报告周期(工作日):{{it.bao_gao_zhou_qi_g || '当'}}天</view>
 									</view>
@@ -107,15 +131,17 @@
 									{{it.xiang_mu_bian_hao || ''}}-{{it.jian_ce_xiang_mu_ || ''}}
 									<text style="color: red;">[{{it.zhe_hou_jia_ge_ || '当'}}元]</text>
 								</view>
+								<view>检测类别:{{it.jian_ce_lei_bie_}}</view>
 								<!-- <view>{{it.yi_ju_de_biao_zhu || ''}}</view> -->
 								<view>报告周期(工作日):{{it.bao_gao_zhou_qi_g || '当'}}天</view>
 							</view>
 						</view>
 					</view>
-				</u-form-item>
+				</view>
+
 
-				<view class="qingshe" style="background-color: #99cc66;" v-if="taoCanShow">
-					<view class="qingTitle" style="color: #FFFFFF;">
+				<view class="qingshe" v-if="taoCanShow">
+					<view class="qingTitle">
 						套餐选择
 					</view>
 				</view>
@@ -132,7 +158,16 @@
 							:text="it.tao_can_ming_chen" :key="x" />
 					</view>
 				</u-form-item>
-				<view v-if="form.taoCanXiangMuList && form.taoCanXiangMuList.length > 0">
+
+				<u-form-item label="套餐项目" prop="name" v-if="taoCanShow">
+					<div style="display: flex;justify-content: flex-end;"
+						@click="taoCanXiangMuShow = !taoCanXiangMuShow">
+						<u-icon name="arrow-up" v-if="taoCanXiangMuShow"></u-icon>
+						<u-icon name="arrow-down" v-else></u-icon>
+					</div>
+				</u-form-item>
+
+				<view v-if="taoCanXiangMuShow && form.taoCanXiangMuList && form.taoCanXiangMuList.length > 0">
 					<view style="padding: 0 20rpx;">
 						<view v-for="(it, x) in form.taoCanXiangMuList" :key="x" @click.stop="getSty(it)">
 							<view class="jiancexiangm">
@@ -156,29 +191,29 @@
 					</view>
 				</view>
 				<block v-if="form.showBoolean1">
-					<u-form-item label="样品类型①">
+					<u-form-item label="样品类型①" required>
 						<u-input placeholder="请选择样品类型①" v-model="form.yangPinLeiXing"
 							:disabled="type == 'detail'?true :false" />
-						<u-button type="success" slot="right" size="mini" @click="sheetClick('yangpinType1')"
-							v-if="type != 'detail'">选择
+						<u-button type="success" slot="right" class="btn-back-color" size="mini"
+							@click="sheetClick('yangpinType1','样品类型')" v-if="type != 'detail'">选择
 						</u-button>
 					</u-form-item>
-					<u-form-item label="样品运输条件①">
+					<u-form-item label="样品运输条件①" required>
 						<u-input placeholder="请选择样品运输条件①" v-model="form.yangBenYunShuTiao"
 							:disabled="type == 'detail'?true :false" />
-						<u-button type="success" slot="right" size="mini" @click="sheetClick('transportType1')"
-							v-if="type != 'detail'">选择
+						<u-button type="success" slot="right" class="btn-back-color" size="mini"
+							@click="sheetClick('transportType1')" v-if="type != 'detail'">选择
 						</u-button>
 					</u-form-item>
-					<u-form-item label="数量①">
+					<u-form-item label="样品数量①" required>
 						<uni-number-box v-model="form.shuLiang" v-if="type != 'detail'"></uni-number-box>
 						<text v-else>{{form.shuLiang}}</text>
 					</u-form-item>
-					<u-form-item label="样品规格①">
+					<u-form-item label="样品规格①" required>
 						<u-input placeholder="请输入样品规格①" v-model="form.yangPinGuiGe"
 							:disabled="type == 'detail'?true :false" />
-						<u-button slot="right" type="success" size="mini" @click="sheetClick('specification1')"
-							v-if="type != 'detail'">规格
+						<u-button slot="right" type="success" class="btn-back-color" size="mini"
+							@click="sheetClick('specification1','样品规格')" v-if="type != 'detail'">规格
 						</u-button>
 					</u-form-item>
 				</block>
@@ -195,29 +230,29 @@
 						</view>
 					</view>
 					<block v-if="form.showBoolean2">
-						<u-form-item label="样品类型②">
+						<u-form-item label="样品类型②" required>
 							<u-input placeholder="请选择样品类型②" v-model="form.yangPinLeiXingEr"
 								:disabled="type == 'detail'?true :false" />
-							<u-button type="success" slot="right" size="mini" @click="sheetClick('yangpinType2')"
-								v-if="type != 'detail'">选择
+							<u-button type="success" slot="right" class="btn-back-color" size="mini"
+								@click="sheetClick('yangpinType2','样品类型')" v-if="type != 'detail'">选择
 							</u-button>
 						</u-form-item>
-						<u-form-item label="样品运输条件②">
+						<u-form-item label="样品运输条件②" required>
 							<u-input placeholder="请选择样品运输条件②" v-model="form.yangPinYunShuTiao"
 								:disabled="type == 'detail'?true :false" />
-							<u-button type="success" slot="right" size="mini" @click="sheetClick('transportType2')"
-								v-if="type != 'detail'">选择
+							<u-button type="success" slot="right" class="btn-back-color" size="mini"
+								@click="sheetClick('transportType2')" v-if="type != 'detail'">选择
 							</u-button>
 						</u-form-item>
-						<u-form-item label="数量②">
+						<u-form-item label="样品数量②" required>
 							<uni-number-box v-model="form.shuLiangEr" v-if="type != 'detail'"></uni-number-box>
 							<text v-else>{{form.shuLiangEr}}</text>
 						</u-form-item>
-						<u-form-item label="样品规格②">
+						<u-form-item label="样品规格②" required>
 							<u-input placeholder="请输入样品规格②" v-model="form.yangPinGuiGeEr"
 								:disabled="type == 'detail'?true :false" />
-							<u-button slot="right" type="success" size="mini" @click="sheetClick('specification2')"
-								v-if="type != 'detail'">规格
+							<u-button slot="right" type="success" class="btn-back-color" size="mini"
+								@click="sheetClick('specification2','样品规格')" v-if="type != 'detail'">规格
 							</u-button>
 						</u-form-item>
 					</block>
@@ -235,29 +270,29 @@
 						</view>
 					</view>
 					<block v-if="form.showBoolean3">
-						<u-form-item label="样品类型③">
+						<u-form-item label="样品类型③" required>
 							<u-input placeholder="请选择样品类型③" v-model="form.yangPinLeiXingSan"
 								:disabled="type == 'detail'?true :false" />
-							<u-button type="success" slot="right" size="mini" @click="sheetClick('yangpinType3')"
-								v-if="type != 'detail'">选择
+							<u-button type="success" slot="right" class="btn-back-color" size="mini"
+								@click="sheetClick('yangpinType3','样品类型')" v-if="type != 'detail'">选择
 							</u-button>
 						</u-form-item>
-						<u-form-item label="样品运输条件③">
+						<u-form-item label="样品运输条件③" required>
 							<u-input placeholder="请选择样品运输条件③" v-model="form.yangPinYunShuSan"
 								:disabled="type == 'detail'?true :false" />
-							<u-button type="success" slot="right" size="mini" @click="sheetClick('transportType3')"
-								v-if="type != 'detail'">选择
+							<u-button type="success" slot="right" class="btn-back-color" size="mini"
+								@click="sheetClick('transportType3')" v-if="type != 'detail'">选择
 							</u-button>
 						</u-form-item>
-						<u-form-item label="数量③">
+						<u-form-item label="样品数量③" required>
 							<uni-number-box v-model="form.shuLiangSan" v-if="type != 'detail'"></uni-number-box>
 							<text v-else>{{form.shuLiangSan}}</text>
 						</u-form-item>
-						<u-form-item label="样品规格③">
+						<u-form-item label="样品规格③" required>
 							<u-input placeholder="请输入样品规格③" v-model="form.yangPinGuiGeSan"
 								:disabled="type == 'detail'?true :false" />
-							<u-button slot="right" type="success" size="mini" @click="sheetClick('specification3')"
-								v-if="type != 'detail'">规格
+							<u-button slot="right" type="success" class="btn-back-color" size="mini"
+								@click="sheetClick('specification3','样品规格')" v-if="type != 'detail'">规格
 							</u-button>
 						</u-form-item>
 					</block>
@@ -275,29 +310,29 @@
 						</view>
 					</view>
 					<block v-if="form.showBoolean4">
-						<u-form-item label="样品类型④">
+						<u-form-item label="样品类型④" required>
 							<u-input placeholder="请选择样品类型④" v-model="form.yangPinLeiXingSi"
 								:disabled="type == 'detail'?true :false" />
-							<u-button type="success" slot="right" size="mini" @click="sheetClick('yangpinType4')"
-								v-if="type != 'detail'">选择
+							<u-button type="success" slot="right" class="btn-back-color" size="mini"
+								@click="sheetClick('yangpinType4','样品类型')" v-if="type != 'detail'">选择
 							</u-button>
 						</u-form-item>
-						<u-form-item label="样品运输条件④">
+						<u-form-item label="样品运输条件④" required>
 							<u-input placeholder="请选择样品运输条件④" v-model="form.yangPinYunShuSi"
 								:disabled="type == 'detail'?true :false" />
-							<u-button type="success" slot="right" size="mini" @click="sheetClick('transportType4')"
-								v-if="type != 'detail'">ѡ��
+							<u-button type="success" slot="right" class="btn-back-color" size="mini"
+								@click="sheetClick('transportType4')" v-if="type != 'detail'">选择
 							</u-button>
 						</u-form-item>
-						<u-form-item label="数量④">
+						<u-form-item label="样品数量④" required>
 							<uni-number-box v-model="form.shuLiangSi" v-if="type != 'detail'"></uni-number-box>
 							<text v-else>{{form.shuLiangSi}}</text>
 						</u-form-item>
-						<u-form-item label="样品规格④">
+						<u-form-item label="样品规格④" required>
 							<u-input placeholder="请输入样品规格④" v-model="form.yangPinGuiGeSi"
 								:disabled="type == 'detail'?true :false" />
-							<u-button slot="right" type="success" size="mini" @click="sheetClick('specification4')"
-								v-if="type != 'detail'">规格
+							<u-button slot="right" type="success" class="btn-back-color" size="mini"
+								@click="sheetClick('specification4','样品规格')" v-if="type != 'detail'">规格
 							</u-button>
 						</u-form-item>
 					</block>
@@ -317,11 +352,11 @@
 			<view class="btnBottom" v-if="itemType">
 				<u-row>
 					<u-col span="6">
-						<u-button type="error" class="btn" @click="deletSing">取消
+						<u-button type="success" class="btn green-back-color" @click="deletSing">取消
 						</u-button>
 					</u-col>
 					<u-col span="6">
-						<u-button type="success" class="btn" @click="sumbitSing">保存
+						<u-button type="success" class="btn btn-back-color" @click="sumbitSing">保存
 						</u-button>
 					</u-col>
 				</u-row>
@@ -333,12 +368,19 @@
 		<u-select v-model="selectShow" :list="list" @confirm="selectConfirm"></u-select>
 		<u-calendar v-model="dateShow" :mode="mode" max-date="2050-01-01" @change="dateChange"></u-calendar>
 
+		<lin-popup ref="picker" :title="title" :list="list" @onConfirm="onConfirm"></lin-popup>
+
 	</view>
 </template>
 
 <script>
 	import order from './test.json'
+	import linSelect from '@/components/lin-select/lin-select.vue'
+	import meth from './meth.js'
 	export default {
+		components: {
+			linSelect
+		},
 		props: {
 			jianCeTypeList: {
 				type: Array,
@@ -371,17 +413,22 @@
 		},
 		data() {
 			return {
+				jianCeShow: true,
+				taoCanXiangMuShow: true,
+				checked: false,
 				errorType: ['toast'],
 				form: this.item,
 				//样本状态
 				sampleStateList: order.sampleState,
 				sexList: order.sex,
 				//样本类型
-				sampleTypeList: order.sampleType,
+				sampleTypeList: [],
 				//样本运输条件
 				transportTypeList: order.transportType,
 				//样本规格
-				specificationList: order.specification,
+				// specificationList: order.specification,
+				specificationList: [],
+				validList: order.validList,
 				list: [],
 				listType: '',
 				sheetShow: false,
@@ -409,11 +456,13 @@
 						message: '请输入送检时间',
 						trigger: 'blur',
 					}],
-				}
+				},
+				title: ''
 			}
 		},
 		created() {
-			// console.log(this.itemType)
+			this.getYpbzggb()
+			this.getYplxb()
 		},
 
 		methods: {
@@ -421,14 +470,61 @@
 			getInit(data) {
 				this.form = JSON.parse(JSON.stringify(data))
 			},
+			//样品类型
+			getYplxb() {
+				let sql =
+					`select lei_xing_ from t_yplxb order by create_time_ desc`
+				let requestData = this.$sig(sql)
+				this.$http.post("/ibps/business/v3/sys/universal/inputSqlSelectData", requestData).then(res => {
+					if (res.data.state == 200) {
+						const datas = res.data.variables.data
+						if (datas.length > 0) {
+							datas.forEach(item => {
+								this.$set(item, 'name', item.lei_xing_)
+							})
+							this.sampleTypeList = datas
+						}
+					}
+				})
+			},
+			//样品规格
+			getYpbzggb() {
+				let sql =
+					`select yang_pin_gui_ge_ from t_ypbzggb order by create_time_ desc`
+				let requestData = this.$sig(sql)
+				this.$http.post("/ibps/business/v3/sys/universal/inputSqlSelectData", requestData).then(res => {
+					if (res.data.state == 200) {
+						const datas = res.data.variables.data
+						if (datas.length > 0) {
+							datas.forEach(item => {
+								this.$set(item, 'name', item.yang_pin_gui_ge_)
+							})
+							this.specificationList = datas
+						}
+					}
+				})
+			},
 			//委托项目 点击事件
 			changeIndex(it, x) {
+				let taoCanXiangMuList = this.form.taoCanXiangMuList
+				if (taoCanXiangMuList.length > 0 && !it.checked) {
+					//判断是否与套餐项目相同
+					let showData = taoCanXiangMuList.findIndex(item => item.id_ == it.id_)
+					if (showData >= 0) {
+						uni.showToast({
+							title: it.xiang_mu_bian_hao + '项目与套餐项目相同',
+							icon: 'none',
+							duration: 1000
+						})
+					}
+				}
+
+
 				let itemData = this.form
 				this.form.jianCeList[x].checked = !this.form.jianCeList[x].checked
 
 				let show = itemData.jianCeList.some(item => (item.id_ == '1039826037036285952' || item.id_ ==
 					'1040205909151711232') && item.checked)
-				console.log(show)
 
 				if (show) {
 					itemData.mingChengShow = true
@@ -494,13 +590,12 @@
 				}
 			},
 			//弹出框初始化
-			sheetClick(type) {
+			sheetClick(type, title = '') {
 				this.listType = type
-				this.sheetShow = true
+				this.title = title
 				if (type == 'state') {
 					this.list = this.sampleStateList
 				}
-
 				//1
 				if (type.includes('yangpinType')) {
 					this.list = this.sampleTypeList
@@ -514,6 +609,13 @@
 				if (type == 'disposition') {
 					this.list = this.dispositionList
 				}
+
+				if (type.includes('specification') || type.includes('yangpinType')) {
+					this.$refs['picker'].show();
+				} else {
+					this.sheetShow = true
+				}
+
 			},
 			//弹出框初始化
 			selectConfirm(e) {
@@ -534,48 +636,24 @@
 				}
 
 				//1
-				if (this.listType == 'yangpinType1') {
-					lists.yangPinLeiXing = that.list[e].text
-				}
 				if (this.listType == 'transportType1') {
 					lists.yangBenYunShuTiao = that.list[e].text
 				}
-				if (this.listType == 'specification1') {
-					lists.yangPinGuiGe = that.list[e].text
-				}
 
 				//2
-				if (this.listType == 'yangpinType2') {
-					lists.yangPinLeiXingEr = that.list[e].text
-				}
 				if (this.listType == 'transportType2') {
 					lists.yangPinYunShuTiao = that.list[e].text
 				}
-				if (this.listType == 'specification2') {
-					lists.yangPinGuiGeEr = that.list[e].text
-				}
 
 				//3
-				if (this.listType == 'yangpinType3') {
-					lists.yangPinLeiXingSan = that.list[e].text
-				}
 				if (this.listType == 'transportType3') {
 					lists.yangPinYunShuSan = that.list[e].text
 				}
-				if (this.listType == 'specification3') {
-					lists.yangPinGuiGeSan = that.list[e].text
-				}
 
-				//3
-				if (this.listType == 'yangpinType4') {
-					lists.yangPinLeiXingSi = that.list[e].text
-				}
+				//4
 				if (this.listType == 'transportType4') {
 					lists.yangPinYunShuSi = that.list[e].text
 				}
-				if (this.listType == 'specification4') {
-					lists.yangPinGuiGeSi = that.list[e].text
-				}
 
 				if (this.listType == 'disposition') {
 					this.form.yangBenChuLi = this.list[e].text
@@ -604,9 +682,27 @@
 				this.$http.post("/ibps/business/v3/sys/universal/inputSqlSelectData", requestData).then(res => {
 					if (res.data.state == 200) {
 						const datas = res.data.variables.data
+						let list = []
 						datas.forEach(item => {
 							this.form.taoCanXiangMuList.push(item)
+
+							//判断与常规项目是否相同
+							let ypglOne = this.form.jianCeList
+							ypglOne.forEach(it => {
+								if ((item.id_ == it.id_) && it.checked) {
+									list.push(it.xiang_mu_bian_hao)
+								}
+							})
 						})
+
+						if (list.length > 0) {
+							uni.showToast({
+								title: list.join(",") + '项目与已常规项目相同',
+								icon: 'none',
+								duration: 1000
+							})
+						}
+
 						this.getTotal()
 					}
 				})
@@ -621,6 +717,25 @@
 				if (this.form.yangPinZongJia == '') {
 					this.form.yangPinZongJia = 0
 				}
+				for (let item of this.validList) {
+					if (this.form[item.value] == '') {
+						this.$showToast.getShowToast(item.toast, item.num)
+						return
+					}
+				}
+
+				// let itemShow = this.form.jianCeList.every(item => !item.checked)
+				// if (itemShow && this.form.taoCanXiangMuList.length == 0) {
+				// 	return meth.getPrompt('请选择常规项目或者套餐项目')
+				// }
+
+				if (!meth.getJudge(this.form)) {
+					return
+				}
+
+
+
+
 				// let showIndex = this.form.lhypb.findIndex(item => item.jianCeXiangMu == '')
 				// if (showIndex >= 0) {
 				// 	uni.showToast({
@@ -648,10 +763,50 @@
 				this.$emit('getParentContent', item)
 			},
 			checkBoxChange(e) {
-				// console.log(e)
-				let dataList = e.detail.value
-				this.form.jianCeTypeString = dataList.join(",")
-				// console.log(this.form.jianCeTypeString)
+				this.form.jianCeTypeString = e
+			},
+			checkedChange() {
+				this.checked = !this.checked
+				if (this.form.jianCeList && this.form.jianCeList.length > 0) {
+					this.form.jianCeList.forEach(item => {
+						if (this.form.jianCeTypeString.indexOf(item.jian_ce_lei_bie_) !== -1) {
+							item.checked = this.checked
+						}
+					})
+				}
+
+			},
+			onConfirm(e) {
+				let that = this
+				let lists = that.form
+
+				//样品类型
+				if (this.listType == 'yangpinType1') {
+					lists.yangPinLeiXing = that.list[e].name
+				}
+				if (this.listType == 'yangpinType2') {
+					lists.yangPinLeiXingEr = that.list[e].name
+				}
+				if (this.listType == 'yangpinType3') {
+					lists.yangPinLeiXingSan = that.list[e].name
+				}
+				if (this.listType == 'yangpinType4') {
+					lists.yangPinLeiXingSi = that.list[e].name
+				}
+
+				//样品规格
+				if (this.listType == 'specification1') {
+					lists.yangPinGuiGe = that.list[e].name
+				}
+				if (this.listType == 'specification2') {
+					lists.yangPinGuiGeEr = that.list[e].name
+				}
+				if (this.listType == 'specification3') {
+					lists.yangPinGuiGeSan = that.list[e].name
+				}
+				if (this.listType == 'specification4') {
+					lists.yangPinGuiGeSi = that.list[e].name
+				}
 			}
 		},
 		onReady() {

+ 272 - 9
pages/jiance/order/meth.js

@@ -1,4 +1,29 @@
 export default {
+	//时间
+	time(index) {
+		var nowDate = new Date((new Date).getTime() + 8 * 60 * 60 * 1000)
+		var time = nowDate.toJSON().split('T').join(' ').substr(0, index)
+		return time
+	},
+	//弹出提示
+	getPrompt(title, icon = 'none', duration = 2000) {
+		uni.showToast({
+			title: title,
+			icon: icon,
+			duration: duration
+		})
+	},
+	getShowToast(val1, val2) {
+		let title = '必填'
+		if (val2 == 1) {
+			title = '必选一项'
+		} else if (val2 == 2) {
+			title = '必添加'
+		} else if (val2 == 3) {
+			title = '大于1'
+		}
+		this.getPrompt(val1 + title)
+	},
 	getForm(item) {
 		let form = {
 			weiTuoLeiXing: item.wei_tuo_lei_xing_,
@@ -25,18 +50,51 @@ export default {
 		}
 		return form
 	},
-	getListForm(list, jianCeList) {
+	getListForm(list, jianCeList, taoCanXiangmMuList, taoCanList) {
 		let TList = []
+		let noList = []
 		list.forEach((item, index) => {
+			//常规项目处理
 			let jian_ce_xiang_mu2_ = item.jian_ce_xiang_mu_.split(",")
 			let jiancLis = JSON.parse(JSON.stringify(jianCeList))
-
 			jiancLis.forEach(it => {
 				let jianSin = jian_ce_xiang_mu2_.findIndex(itg => itg == it.id_)
 				if (jianSin >= 0) {
 					it.checked = true
 				}
 			})
+			let showHen = this.getXiangMuList(jian_ce_xiang_mu2_, jiancLis) //已经选择的检测项目是否存在常规项目
+			if (!showHen) {
+				noList.push(index)
+			}
+
+			//套餐处理
+			let tCList = JSON.parse(JSON.stringify(taoCanList))
+			let xuanZeTaoCan = item.xuan_ze_tao_can_.split(',')
+			if (tCList.length > 0 && xuanZeTaoCan.length > 0) {
+				tCList.forEach(ite => {
+					let showData = xuanZeTaoCan.findIndex(itg => itg == ite.id_)
+					if (showData >= 0) {
+						ite.checked = true
+					}
+				})
+			}
+
+
+			//套餐项目处理
+			let tCXmList = JSON.parse(JSON.stringify(taoCanXiangmMuList))
+			let taoCanXiangMu = item.tao_can_xiang_mu_.split(",")
+			let tcXmlist = []
+			if (tCXmList.length > 0 && taoCanXiangMu.length > 0) {
+				taoCanXiangMu.forEach(ite => {
+					tCXmList.forEach(it => {
+						if (it.id_ == ite) {
+							tcXmlist.push(it)
+						}
+					})
+				})
+			}
+
 			let obj = {
 				id: item.id_,
 				jianCeXiangMu: item.jian_ce_xiang_mu_,
@@ -53,23 +111,23 @@ export default {
 
 				yangPinLeiXing: item.yang_pin_lei_xing,
 				yangBenYunShuTiao: item.yang_ben_yun_shu_,
-				shuLiang: parseInt(item.shu_liang_),
+				shuLiang: parseInt(item.shu_liang_ || 0),
 				yangPinGuiGe: item.yang_pin_gui_ge_,
 
 				yangPinLeiXingEr: item.yang_pin_lei_er_,
 				yangPinYunShuTiao: item.yang_pin_yun_shu_,
 				yangPinGuiGeEr: item.yang_pin_gui_ge_e,
-				shuLiangEr: parseInt(item.shu_liang_er_),
+				shuLiangEr: parseInt(item.shu_liang_er_ || 0),
 
 				yangPinLeiXingSan: item.yang_pin_lei_san_,
 				yangPinGuiGeSan: item.yang_pin_gui_ge_s,
-				shuLiangSan: parseInt(item.shu_liang_san_),
+				shuLiangSan: parseInt(item.shu_liang_san_ || 0),
 				yangPinYunShuSan: item.yang_pin_yun_san,
 
 				yangPinLeiXingSi: item.yang_pin_lei_si_,
 				yangPinGuiGeSi: item.yang_pin_gui_si_,
 				yangPinYunShuSi: item.yang_pin_yun_si_,
-				shuLiangSi: parseInt(item.shu_liang_si_),
+				shuLiangSi: parseInt(item.shu_liang_si_ || 0),
 				jianCeList: jiancLis,
 				jianCeType: '',
 
@@ -87,8 +145,8 @@ export default {
 				mingChengShow: false,
 
 
-				taoCanList: [],
-				taoCanXiangMuList: [],
+				taoCanList: tCList,
+				taoCanXiangMuList: tcXmlist,
 				taoCanZiBiaoId: item.tao_can_zi_biao_i,
 				taoCanMingCheng: item.tao_can_ming_chen,
 				taoCanJiaGe: item.tao_can_jia_ge_,
@@ -106,7 +164,9 @@ export default {
 
 				taoCanZheHouJiaGe: item.tao_can_zhe_hou_j || '',
 				chuBaoGaoYaoQiu: item.chu_bao_gao_yao_q || '',
-				changGuiZheHouJia: item.chang_gui_zhe_hou || ''
+				changGuiZheHouJia: item.chang_gui_zhe_hou || '',
+
+				jianCeTypeString: ''
 			}
 			if (obj.yangPinLeiXing != '') {
 				obj.showBoolean1 = true
@@ -129,6 +189,209 @@ export default {
 
 			TList.push(obj)
 		})
+
+		if (noList.length > 0) {
+			let setList = [...new Set(noList)]
+			this.getPrompt('样品' + setList.join(",") + '因为特殊原因有些检测项目暂时无法检测,请联系医院确定')
+		}
+
 		return TList
+	},
+	//添加样品字段
+	getMjypbSin(index, list1, list2) {
+		let obj = {
+			id: '',
+			jianCeXiangMu: '',
+			jianCeXiangMu2: [], //不传到后台
+			yangPinMingCheng: '',
+			yangPinBianHao: index,
+			xingMing: '',
+			xingBie: '',
+			nianLing: '',
+			songJianPiHao: '',
+			yangPinZhuangTai: '',
+			songJianShiJian: this.time(10),
+			beiZhu1: '',
+
+			yangPinLeiXing: '',
+			yangBenYunShuTiao: '',
+			shuLiang: 0,
+			yangPinGuiGe: '',
+
+			yangPinLeiXingEr: '',
+			yangPinYunShuTiao: '',
+			yangPinGuiGeEr: '',
+			shuLiangEr: 0,
+
+			yangPinLeiXingSan: '',
+			yangPinGuiGeSan: '',
+			shuLiangSan: 0,
+			yangPinYunShuSan: '',
+
+			yangPinLeiXingSi: '',
+			yangPinGuiGeSi: '',
+			yangPinYunShuSi: '',
+			shuLiangSi: 0,
+			jianCeList: JSON.parse(JSON.stringify(list1)),
+			jianCeType: [],
+			jianCeTypeString: '',
+
+			xiangMuMingCheng: '',
+			yangPinZongJia: '',
+
+			lianXiDianHua: '',
+			lianXiRen: '',
+			weiTuoDanWei: '',
+			weiTuoDanHao: '',
+			yangPinZongShu: 0,
+			jieYangZhuangTai: "待接收",
+
+			showBoolean1: true,
+			showBoolean2: false,
+			showBoolean3: false,
+			showBoolean4: false,
+			mingChengShow: false,
+
+			taoCanList: JSON.parse(JSON.stringify(list2)),
+			taoCanXiangMuList: [],
+
+			taoCanZiBiaoId: '',
+			taoCanMingCheng: '',
+			taoCanJiaGe: '',
+			taoCanXiangMu: '',
+			xuanZeTaoCan: '',
+
+			heTongBianHao: '',
+			jiaoFeiFangShi: '',
+			fuKuanZhuangTai: '',
+			heTongLeiXing: '',
+			weiTuoRiQi: '',
+			songJianDanWei: '',
+			changGuiXiangMuMi: '',
+
+			taoCanZheHouJiaGe: '',
+			changGuiZheHouJia: '',
+			chuBaoGaoYaoQiu: '',
+			search: ''
+		}
+		return obj
+	},
+	getActiveNum1(form) {
+		if (form.heTongId == '') {
+			this.getPrompt('请选择合同')
+			return false
+		}
+		if (form.yangBenChuLi == '') {
+			this.getPrompt('请选择检毕样品处置')
+			return false
+		}
+		return true
+	},
+	//提交判断
+	getJudge(form) {
+		if (form.showBoolean1) {
+			if (form.yangPinLeiXing == '') {
+				this.getShowToast('样品信息的样品类型①')
+				return false
+			}
+			if (form.yangBenYunShuTiao == '') {
+				this.getShowToast('样品信息的运输条件①')
+				return false
+			}
+			if (form.yangPinGuiGe == '') {
+				this.getShowToast('样品信息的样品规格①')
+				return false
+			}
+			if (form.shuLiang == 0) {
+				this.getShowToast('样品信息的样品数量①', 3)
+				return false
+			}
+		}
+
+		if (form.showBoolean2) {
+			if (form.yangPinLeiXingEr == '') {
+				this.getShowToast('样品信息的样品类型②')
+				return false
+			}
+			if (form.yangPinYunShuTiao == '') {
+				this.getShowToast('样品信息的运输条件②')
+				return false
+			}
+			if (form.yangPinGuiGeEr == '') {
+				this.getShowToast('样品信息的样品规格②')
+				return false
+			}
+			if (form.shuLiangEr == 0) {
+				this.getShowToast('样品信息的样品数量②', 3)
+				return false
+			}
+		}
+
+		if (form.showBoolean3) {
+			if (form.yangPinLeiXingSan == '') {
+				this.getShowToast('样品信息的样品类型③')
+				return false
+			}
+			if (form.yangPinYunShuSan == '') {
+				this.getShowToast('样品信息的运输条件③')
+				return false
+			}
+			if (form.yangPinGuiGeSan == '') {
+				this.getShowToast('样品信息的样品规格③')
+				return false
+			}
+			if (form.shuLiangSan == 0) {
+				this.getShowToast('样品信息的样品数量③', 3)
+				return false
+			}
+		}
+		if (form.showBoolean4) {
+			if (form.yangPinLeiXingSi == '') {
+				this.getShowToast('样品信息的样品类型④')
+				return false
+			}
+			if (form.yangPinYunShuSi == '') {
+				this.getShowToast('样品信息的运输条件④')
+				return false
+			}
+			if (form.yangPinGuiGeSi == '') {
+				this.getShowToast('样品信息的样品规格④')
+				return false
+			}
+			if (form.shuLiangSi == 0) {
+				this.getShowToast('样品信息的样品数量④', 3)
+				return false
+			}
+		}
+
+		//判断是否有套餐,并且是否选择列套餐
+		let taoCanListShow = false
+		if (form.taoCanList.length > 0) {
+			taoCanListShow = form.taoCanList.some(it => it.checked)
+		}
+
+		//判断是否有套餐,并且是否选择列套餐,并且套餐是否有项目
+		if (form.taoCanList.length > 0 && taoCanListShow && form.taoCanXiangMuList.length > 0) {
+			return true
+		} else {
+			let flag = false
+			//判断常规项目是否选择项目
+			let show = form.jianCeList.every(it => !it.checked)
+			if (show) {
+				this.getPrompt('常规检测项目与套餐检测项目至少选择其中一项')
+				return false
+			}
+		}
+		return true
+	},
+	//遍历list1 在 list的是否存在
+	getXiangMuList(list1, list2) {
+		for (let item of list1) {
+			let show = list2.findIndex(it => it.id_ == item)
+			if (show < 0) {
+				return false
+			}
+		}
+		return true
 	}
 }

+ 31 - 2
pages/jiance/order/test.json

@@ -59,9 +59,11 @@
 		"text": "其他"
 	}],
 	"sex": [{
-		"name": "男"
+		"text": "男",
+		"value": "男"
 	}, {
-		"name": "女"
+		"text": "女",
+		"value": "女"
 	}],
 	"specification": [{
 		"text": "__ml*5ml离心管"
@@ -90,5 +92,32 @@
 		"text": "退样(邮寄到付)"
 	}, {
 		"text": "自行取回(请于报告发出之日1个月内取回,过期销毁)"
+	}],
+	"weiTouTop": [{
+		"icon": "weitou",
+		"name": "委托单"
+	}, {
+		"icon": "yangpin",
+		"name": "样品"
+	}, {
+		"icon": "weituo",
+		"name": "委托人"
+	}],
+	"validList": [{
+		"value": "yangPinMingCheng",
+		"toast": "样品名称",
+		"num": 0
+	}, {
+		"value": "songJianPiHao",
+		"toast": "送检批号/编号",
+		"num": 0
+	}, {
+		"value": "yangPinZhuangTai",
+		"toast": "样品状态",
+		"num": 0
+	}, {
+		"value": "songJianShiJian",
+		"toast": "送检时间",
+		"num": 0
 	}]
 }

+ 79 - 0
pages/jiance/order/top.vue

@@ -0,0 +1,79 @@
+<template>
+	<view>
+		<uni-group mode="card">
+			<u-line-progress active-color="#3396d1" :percent="activeNum == 1 ? 33 : activeNum == 2 ? 66 : 100"
+				:show-percent="false"></u-line-progress>
+			<u-row>
+				<u-col span="4">
+					<view class="nameTop" @click="activeNumClick(1)">
+						<image src="../../../static/weitou/weituo-active.png" class="iamgeTop" v-if="activeNum == 1">
+						</image>
+						<image src="../../../static/weitou/weituo.png" class="iamgeTop" v-else></image>
+						<view class="textName" :class="activeNum == 1 ? 'textName-active':''">{{weitTouTop[0].name}}
+						</view>
+					</view>
+				</u-col>
+				<u-col span="4">
+					<view class="nameTop" @click="activeNumClick(2)">
+						<image src="../../../static/weitou/yangpin-active.png" class="iamgeTop" v-if="activeNum == 2">
+						</image>
+						<image src="../../../static/weitou/yangpin.png" class="iamgeTop" v-else></image>
+						<view class="textName" :class="activeNum == 2 ? 'textName-active':''">{{weitTouTop[1].name}}
+						</view>
+					</view>
+				</u-col>
+				<u-col span="4">
+					<view class="nameTop" @click="activeNumClick(3)">
+						<image src="../../../static/weitou/renyuan-active.png" class="iamgeTop" v-if="activeNum == 3">
+						</image>
+						<image src="../../../static/weitou/renyuan.png" class="iamgeTop" v-else></image>
+						<view class="textName" :class="activeNum == 3 ? 'textName-active':''">{{weitTouTop[2].name}}
+						</view>
+					</view>
+				</u-col>
+			</u-row>
+		</uni-group>
+	</view>
+</template>
+
+<script>
+	import order from './test.json'
+	export default {
+		data() {
+			return {
+				activeNum: 1,
+				weitTouTop: order.weiTouTop
+			}
+		},
+		methods: {
+			activeNumClick(index) {
+				// this.activeNum = index
+				this.$emit("activeNumClick", index)
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.nameTop {
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		margin: 15rpx 0;
+
+		.iamgeTop {
+			height: 30rpx;
+			width: 30rpx;
+			color: red;
+		}
+
+		.textName {
+			margin-left: 5rpx;
+			color: #8a8a8a;
+		}
+
+		.textName-active {
+			color: #3396d1;
+		}
+	}
+</style>

+ 78 - 23
pages/jiance/tousu.vue

@@ -32,7 +32,7 @@
 			<u-button type="success" size="mini" @click="getShow" v-if="form.guanLianYangPin == '' && id == ''">选择
 			</u-button>
 			<u-icon class="uni-icon" name="close-circle-fill" color="rgb(192, 196, 204)" size="42"
-				v-if="form.guanLianYangPin != ''" @click="form.guanLianYangPin = '' && id == ''"></u-icon>
+				v-if="form.guanLianYangPin != '' && id == ''" @click="form.guanLianYangPin = ''"></u-icon>
 		</view>
 		<view class="cu-form-group" style="z-index: 999;">
 			<view class="title">投诉方式</view>
@@ -55,8 +55,21 @@
 				</view>
 			</view>
 		</uni-section>
+
+		<uni-section title="受理意见" type="line">
+			<view class="u-m-15 u-p-b-15">
+				{{option}}
+			</view>
+		</uni-section>
+
 		<uni-section title="客户确认" type="line" v-if="id != ''">
-			<uni-data-checkbox selectedColor="red" v-model="form.shiFouTongYi" :localdata="sexList"></uni-data-checkbox>
+			<view class="u-m-15 u-p-b-15">
+				<uni-data-checkbox selectedColor="red" v-model="form.shiFouTongYi" :localdata="sexList"
+					v-if="type == '1'">
+				</uni-data-checkbox>
+				<view v-if="type == '2'">{{form.shiFouTongYi}}</view>
+			</view>
+
 			<!-- 			<u-radio-group v-model="form.shiFouTongYi" v-if="id != ''" style="margin: 0 10rpx;">
 				<u-radio v-for="(it, index) in sexList" :key="index" :name="it.name">
 					{{it.name}}
@@ -64,9 +77,9 @@
 			</u-radio-group> -->
 		</uni-section>
 
-		<uni-section title="投诉内容" type="line" padding v-if="id != ''">
+		<uni-section title="投诉签名" type="line" padding v-if="id != ''">
 			<view style="width: 100%;">
-				<view style="text-align: right;width: 100%;">
+				<view style="text-align: right;width: 100%;" v-if="type == '1'">
 					<view v-if="id != ''">
 						<u-button type="primary" size="mini" @click="qianming(0)">
 							签名</u-button>
@@ -84,8 +97,10 @@
 
 
 		<view class="padding flex flex-direction">
-			<button class="cu-btn bg-blue lg" @click="onSubmit" v-if="id == ''">提交</button>
-			<button class="cu-btn bg-blue lg" @click="getArgee()" v-else>签名确认</button>
+			<u-button type="success" class="btn btn-back-color" @click="onSubmit" v-if="id == ''">提交
+			</u-button>
+			<u-button type="success" class="btn btn-back-color" @click="getArgee()" v-if="id != '' && type == '1'">签名确认
+			</u-button>
 		</view>
 
 
@@ -135,6 +150,7 @@
 				popupShow: false,
 
 				id: '',
+				type: '',
 				form: {
 					id: '',
 					guanLianKeHu: '',
@@ -160,7 +176,7 @@
 					bianZhiSJ: "",
 					bianZhiBuMen: "",
 					acceptor: "",
-					acceptanceDate: "",
+					// acceptanceDate: "",
 					shouLiBuMen: "",
 					zeRenBuMenFuZeRen: "",
 					zeRenShouLiRiQi: "",
@@ -173,6 +189,7 @@
 					shouLiBuMen2: "",
 					qianMingRiQi: "",
 					shiFouGuoShen: '',
+					shouLiRiQi3: ''
 				},
 				sexList: [{
 					text: "同意",
@@ -182,7 +199,8 @@
 					value: "不同意"
 				}],
 
-				yangPinList: []
+				yangPinList: [],
+				option: ''
 			}
 		},
 		filters: {
@@ -191,8 +209,8 @@
 		onLoad(options) {
 			if (options.id) {
 				this.id = options.id
+				this.type = options.type
 				this.getTaskId(this.id)
-				this.getDe(this.id)
 			}
 		},
 		created() {
@@ -202,7 +220,7 @@
 			let useId = info.user.id
 			let name = info.user.name
 			this.form.Complainants = name
-			this.form.guanLianKeHu = info.user.wcAccount
+			this.form.guanLianKeHu = info.user.qq
 			this.form.telephone = info.user.mobile
 			this.form.company = useId
 			this.form.postcode = info.user.email
@@ -213,20 +231,32 @@
 			//根据投诉id查询 taskId
 			getTaskId(id) {
 				let sql =
-					`select TASK_ID_ from ibps_bpm_tasks where NAME_ = '客户确认' and NODE_ID_ = 'Activity_1sdpied' and PROC_DEF_KEY_ = 'Process_1ydqnej' and EXEC_ID_ = (select PROC_INST_ID_ from act_ru_execution where ACT_ID_ = 'Activity_1sdpied' and BUSINESS_KEY_ = '${id}') ORDER BY CREATE_TIME_ desc`
-
+					`select TASK_ID_,PROC_INST_ID_ from ibps_bpm_tasks where NAME_ = '客户确认' and NODE_ID_ = 'Activity_1sdpied' and PROC_DEF_KEY_ = 'Process_1ydqnej' and EXEC_ID_ = (select PROC_INST_ID_ from act_ru_execution where ACT_ID_ = 'Activity_1sdpied' and BUSINESS_KEY_ = '${id}') ORDER BY CREATE_TIME_ desc`
 				let requestData = this.$sig(sql)
-
 				this.$http.post("/ibps/business/v3/sys/universal/inputSqlSelectData", requestData).then(res => {
 					if (res.data.state == 200) {
 						if (res.data.variables.data.length > 0) {
 							let result = res.data.variables.data[0]
 							if (result.TASK_ID_) {
 								this.taskId = result.TASK_ID_
+
+								if (this.type == '1') {
+									this.getProcInstId(result.PROC_INST_ID_)
+								}
 							}
 						}
-
-
+					}
+				})
+			},
+			//根据委托单id查询 taskId
+			getProcInstId(id) {
+				let sql =
+					`select OPTION_ from ibps_bpm_oper_log where PROC_INST_ID_ = '${id}' and OPER_TYPE_ = 'agree' and NODE_ID_ = 'Activity_0dpz207' order by create_time_ desc  limit 1`
+				let requestData = this.$sig(sql)
+				this.$http.post("/ibps/business/v3/sys/universal/inputSqlSelectData", requestData).then(res => {
+					if (res.data.state == 200) {
+						let result = res.data.variables.data[0]
+						this.option = result.OPTION_
 					}
 				})
 			},
@@ -261,7 +291,7 @@
 						this.form.bianZhiSJ = data.bian_zhi_sj_
 						this.form.bianZhiBuMen = data.bian_zhi_bu_men_
 						this.form.acceptor = data.acceptor_
-						this.form.acceptanceDate = data.acceptance_date_
+						// this.form.acceptanceDate = data.acceptance_date_
 						this.form.shouLiBuMen = data.shou_li_bu_men_
 						this.form.zeRenBuMenFuZeRen = data.ze_ren_bu_men_fu_
 						this.form.zeRenShouLiRiQi = data.ze_ren_shou_li_ri
@@ -269,13 +299,15 @@
 						this.form.zhiLiangFuZeRen = data.zhi_liang_fu_ze_r
 						this.form.zhiLiangRiQi = data.zhi_liang_ri_qi_
 						this.form.zhiLiangBuMen = data.zhi_liang_bu_men_
-						this.form.shouLiRen2 = data.shou_li_ri_qi_2_
-						this.form.shouLiRiQi2 = data.shou_li_ren_2_
+						this.form.shouLiRen2 = data.shou_li_ren_2_
+						this.form.shouLiRiQi2 = data.shou_li_ri_qi_2_
 						this.form.shouLiBuMen2 = data.shou_li_bu_men_2_
 						this.form.shiFouGuoShen = data.shi_fou_guo_shen_
 						this.form.xuanZeRen = data.xuan_ze_ren_
 						this.form.qianMing = data.qian_ming_
 						this.form.qianMingRiQi = data.qian_ming_ri_qi_
+						this.form.shouLiRiQi3 = data.shou_li_ri_qi_3_
+						this.form.guanLianYangPin = data.guan_lian_yang_pi
 						if (data.fu_jian_shang_chu && data.fu_jian_shang_chu != '') {
 							this.getFileList(data.fu_jian_shang_chu)
 						}
@@ -313,9 +345,13 @@
 						duration: 3000,
 						message: '文件大于1M!'
 					});
-					return false;
+					return
 				}
 				let that = this
+				uni.showToast({
+					title: '上传中',
+					mask: true
+				})
 				for (let e in file.tempFilePaths) {
 					var extName = file.tempFiles[e].file.name.substring(file.tempFiles[e].file.name.lastIndexOf(
 						'.'));
@@ -338,10 +374,10 @@
 								fileid: file.tempFiles[e].file.uuid,
 								uploadid: data.data.id
 							})
+							uni.hideLoading()
 						}
 					});
 				}
-				return true;
 			},
 			// 删除
 			deleteMe(file) {
@@ -425,7 +461,7 @@
 				this.$http.post("/ibps/business/v3/bpm/task/agree", editData).then(res => {
 					if (res.data.state == 200) {
 						this.$tip.success('提交成功!')
-						this.getHouSumit(this.form)
+						// this.getHouSumit(this.form)
 						uni.hideLoading();
 						this.$Router.replaceAll({
 							name: 'index'
@@ -506,6 +542,9 @@
 				}
 			},
 			getShow() {
+				if (this.id != '') {
+					return
+				}
 				this.$refs['picker'].show();
 			},
 			// 拉取样品列表数据
@@ -530,6 +569,10 @@
 									.yang_pin_ming_che)
 							})
 							this.yangPinList = datas
+
+							if (this.id) {
+								this.getDe(this.id)
+							}
 						}
 
 					}
@@ -541,11 +584,19 @@
 			getYangPin(id) {
 				if (id) {
 					let itemData = this.yangPinList.find(item => item.id_ == id)
-					return itemData.yang_pin_bian_hao + '-' + itemData
-						.yang_pin_ming_che
+					if (itemData) {
+						return itemData.yang_pin_bian_hao + '-' + itemData
+							.yang_pin_ming_che
+					} else {
+						return ''
+					}
+
 				} else {
 					return ''
 				}
+			},
+			close() {
+				this.popupShow = false
 			}
 		}
 	}
@@ -556,6 +607,10 @@
 		min-width: 180rpx;
 	}
 
+	.btn {
+		margin: 15rpx
+	}
+
 	.uni-file-pickerheight {
 		box-sizing: border-box;
 		overflow: hidden;

+ 53 - 16
pages/jiance/tousu/tousuList.vue

@@ -3,13 +3,27 @@
 		<cu-custom bgColor="bg-luohu" :isBack="true">
 			<block slot="backText">返回</block>
 			<block slot="content">投诉列表</block>
+			<block slot="right">
+				<view @click="getGo('')">添加</view>
+			</block>
 		</cu-custom>
+		<view class="cu-bar bg-white search fixed" :style="[{top:CustomBar + 'px'}]">
+			<view class="search-form round">
+				<text class="cuIcon-search"></text>
+				<input type="text" v-model="keyword" placeholder="输入搜索的关键词" confirm-type="search"
+					@confirm="search"></input>
+			</view>
+			<view class="action">
+				<button class="cu-btn bg-gradual-blue shadow-blur round" @tap="search">搜索</button>
+			</view>
+		</view>
 
-		<block v-if="list.length > 0">
-			<view v-for="(item,index) in list" :key="index" style="margin: 10rpx 20rpx;">
-				<uni-section :title="'投诉人:'+item.company_" type="line" padding>
+		<view v-if="list.length > 0" style="margin: 10rpx 20rpx;position: relative;"
+			:style="[{top:'calc('+ CustomBar + 'px + 20rpx)'}]">
+			<view v-for="(item,index) in list" :key="index">
+				<uni-section :title="'投诉人:'+item.complainants_" type="line" padding>
 					<view style="display: flex;align-items: center;">
-						<view>电话:</view>
+						<view>电&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;话:</view>
 						<view>{{item.telephone_}} </view>
 					</view>
 					<view style="display: flex;align-items: center;">
@@ -20,17 +34,29 @@
 						<view>投诉日期:</view>
 						<view>{{item.tou_su_ri_qi_}} </view>
 					</view>
-					<view style=" width: 100%; text-align: right; padding-top: 5rpx;padding-bottom: 0rpx;"
-						v-if="item.chu_li_jie_guo_sh == '已通知' && item.shi_fou_guo_shen_ == '已反馈'">
-						<u-button type="warning" size="mini" @click="getGo(item.id_)">签名</u-button>
+					<view style="display: flex;align-items: center;">
+						<view>状&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;态:</view>
+						<view>
+							<view v-if="item.you_wu_you_xiao_ == '无效投诉'">异常完结</view>
+							<view v-else-if="item.chu_li_jie_guo_sh == '未通知'">异常完结</view>
+							<view v-else-if="item.shi_fou_tong_yi_ == '不同意'">异常完结</view>
+							<view v-else-if="item.shi_fou_guo_shen_ == '1'">已完结</view>
+							<view v-else>未完结</view>
+						</view>
+					</view>
+					<view style=" width: 100%; text-align: right; padding-top: 5rpx;padding-bottom: 0rpx;">
+						<u-button type="success" size="mini" @click="getGo(item.id_)" class="u-m-r-15"
+							v-if="item.chu_li_jie_guo_sh == '已通知' && item.shi_fou_guo_shen_ == '已反馈'">签名</u-button>
+						<u-button type="success" size="mini" @click="getDe(item.id_)" class="btn-back-color">详情
+						</u-button>
 					</view>
 				</uni-section>
 			</view>
-		</block>
+		</view>
 
-		<view style="position: fixed;right: 30rpx;bottom: 100rpx;">
+		<!-- 		<view style="position: fixed;right: 30rpx;bottom: 100rpx;">
 			<image src="../../../static/add.png" style="width: 150rpx;height: 150rpx;" @click="getGo('')"></image>
-		</view>
+		</view> -->
 	</view>
 </template>
 
@@ -43,6 +69,7 @@
 	export default {
 		data() {
 			return {
+				keyword: '',
 				list: [],
 				current: 0,
 				ReachBottomShow: false
@@ -52,23 +79,23 @@
 		onPullDownRefresh() {
 			this.current = 0
 			this.list = []
-			this.getData()
+			this.getData(this.keyword)
 		},
 		// 上拉加载
 		onReachBottom() {
 			let _self = this
 			uni.showNavigationBarLoading()
 			if (this.ReachBottomShow) {
-				this.getData()
+				this.getData(this.keyword)
 			}
 
 		},
 		created() {
-			this.getData()
+			this.getData(this.keyword)
 		},
 		methods: {
 			// 拉取列表数据
-			getData() {
+			getData(keyword) {
 				uni.showLoading({
 					mask: true,
 					title: 'loading'
@@ -85,7 +112,7 @@
 				}
 
 				let sql =
-					`select * from t_complaint where company_ = '${useId}' ORDER BY id_ desc LIMIT ${page},10`
+					`select * from t_complaint where company_ = '${useId}' and complainants_ like '%${keyword}%' ORDER BY id_ desc LIMIT ${page},10`
 
 				let requestData = this.$sig(sql)
 				this.$http.post("/ibps/business/v3/sys/universal/inputSqlSelectData", requestData).then(res => {
@@ -104,8 +131,18 @@
 			},
 			getGo(id) {
 				uni.navigateTo({ // 跳转页面
-					url: '/pages/jiance/tousu?id=' + id
+					url: '/pages/jiance/tousu?id=' + id + '&type=1'
 				})
+			},
+			getDe(id) {
+				uni.navigateTo({ // 跳转页面
+					url: '/pages/jiance/tousu?id=' + id + '&type=2'
+				})
+			},
+			search() {
+				this.current = 0
+				this.list = []
+				this.getData(this.keyword)
 			}
 		}
 	}

+ 0 - 6
pages/login/login.vue

@@ -238,7 +238,6 @@
 					res => {
 						this.iscaptcha = true
 						this.requestId = res.data.variables.requestId;
-						console.log(res)
 						if (res.data.state == 200) {
 							this.image = res.data.data;
 							this.iscaptcha = true
@@ -249,9 +248,7 @@
 			},
 			//是否开启验证码 ibps/oauth2/v3/user/captcha/open  是否开始注册
 			isCaptcha() {
-				console.log(11111)
 				this.$http.get(`ibps/oauth2/v3/user/open?_t=${Ids([32, 36, 1]).next()}`).then(res => {
-					console.log(res)
 					if (res.data.state == 200) {
 						this.requestId = res.data.variables.requestId;
 						this.iscaptcha = res.data.data;
@@ -269,7 +266,6 @@
 						clientId: cid
 					}
 				}).then(res => {
-					console.log("res::saveClientId>", res)
 					this.$tip.success('登录成功!')
 					this.$Router.replaceAll({
 						name: 'index'
@@ -335,8 +331,6 @@
 					captcha: this.smsCode
 				};
 				this.PhoneLogin(loginParams).then((res) => {
-					//console.log(this.$store)
-					console.log("res====》", res)
 					if (res.data.state == 200) {
 						this.$tip.success('登录成功!')
 						this.$Router.replaceAll({

+ 14 - 3
pages/user/editpassword.vue

@@ -15,17 +15,21 @@
 					<view class="cu-form-group">
 						<view class="title">密码</view>
 						<input placeholder="请输入六位以上密码" name="input" type="password" v-model="password"></input>
+						<!-- <text class="uni-icon" :class="[!showPassword ? 'uni-eye-active' : '']"
+							@click="changePassword"></text> -->
 					</view>
 					<view class="cu-form-group">
 						<view class="title">确认</view>
 						<input placeholder="请再输入一遍密码" name="input" type="password" v-model="again"></input>
+						<!-- <text class="uni-icon" :class="[!showPassword2 ? 'uni-eye-active' : '']"
+							@click="changePassword"></text> -->
 					</view>
 				</view>
 			</uni-card>
 			<view class="padding flex flex-direction" style="margin-bottom: 100rpx;">
-				<button class="cu-btn bg-blue lg bg-mingjian" @click="submit">确认修改</button>
+				<u-button type="success" class="btn btn-back-color" @click="submit">确认修改
+				</u-button>
 			</view>
-
 		</scroll-view>
 	</view>
 </template>
@@ -44,7 +48,9 @@
 				password: "",
 				again: "",
 				id: '',
-				photo: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/b7c7f970-517d-11eb-97b7-0dc4655d6e68.jpg'
+				photo: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/b7c7f970-517d-11eb-97b7-0dc4655d6e68.jpg',
+				showPassword: true,
+				showPassword2: true
 			};
 		},
 		onLoad() {
@@ -156,3 +162,8 @@
 		color: #333;
 	}
 </style>
+<style scoped>
+	.btn {
+		margin: 15rpx
+	}
+</style>

+ 60 - 96
pages/user/location.vue

@@ -1,115 +1,79 @@
 <template>
-    <view>
+	<view>
 		<cu-custom :bgColor="NavBarColor" :isBack="true">
 			<block slot="backText">返回</block>
 			<block slot="content">定位</block>
 		</cu-custom>
-		<map 
-		style="width: 100%; height:500px;" 
-		:latitude="latitude" 
-		:longitude="longitude" 
-		:markers="marker"
-		:scale="scale"
-		>
+		<map style="width: 100%; height:500px;" :latitude="latitude" :longitude="longitude" :markers="marker"
+			:scale="scale">
 		</map>
-    </view>
+	</view>
 </template>
 
 <script>
 	export default {
-	    data() {
-	        return {
-				NavBarColor:this.NavBarColor,
-	            id:0, // 使用 marker点击事件 需要填写id
-	            title: 'map',
-	           latitude: 40.009704,  //纬度
-		      longitude: 116.374999,  //经度
-		     marker: [{
-			     id:0,
-			     latitude: 40.009704,//纬度
-			     longitude: 116.374999,//经度
-			     iconPath: '/static/location.png',    //显示的图标        
-			     rotate:0,   // 旋转度数
-			     width:20,   //宽
-			     height:20,   //高
-			     title:'你在哪了',//标注点名
-			     alpha:0.5,   //透明度
-			     /* label:{//为标记点旁边增加标签   //因背景颜色H5不支持
-				     content:'北京国炬公司',//文本
-				    color:'red',//文本颜色
-					  fontSize:24,//文字大小
-					   x:5,//label的坐标,原点是 marker 对应的经纬度
-					   y:1,//label的坐标,原点是 marker 对应的经纬度 
-					   borderWidth:12,//边框宽度
-					   borderColor:'pink',//边框颜色    
-					  borderRadius:20,//边框圆角                        
-					  bgColor:'black',//背景色
-					  padding:5,//文本边缘留白
-					   textAlign:'right'//文本对齐方式。
-			   }, */
-			   callout:{//自定义标记点上方的气泡窗口 点击有效  
-			     content:'北京国炬公司',//文本
-			     color:'#ffffff',//文字颜色
-			     fontSize:14,//文本大小
-			     borderRadius:2,//边框圆角
-			     bgColor:'#00c16f',//背景颜色
-			     display:'ALWAYS'//常显
-			   }
-			   // anchor:{//经纬度在标注图标的锚点,默认底边中点
-			   //     x:0,    原点为给出的经纬度
-			   //     y:0,
-			   // }
-						
-		   }],
-		   scale:16,//地图缩放程度
-	      controls:[{//在地图上显示控件,控件不随着地图移动
-		    id:1,//控件id
-		    iconPath:'/static/login3.png',//显示的图标
-		      clickable:true,
-		    position:{//控件在地图的位置
-			   left:15,
-			   top:15,
-			   width:50,
-			   height:50
-		     },    
-	     }], 
-	      circles:[{//在地图上显示圆
-		    latitude: 40.009704,
-		    longitude: 116.374999,
-		    radius:50,//半径
-		      fillColor:"#ffffffAA",//填充颜色
-		    color:"#55aaffAA",//描边的颜色
-		    strokeWidth:1//描边的宽度
-		  }], 
-	    /*  polyline:[{//指定一系列坐标点,从数组第一项连线至最后一项
-	       points:[
-			    {latitude: 40.009153,longitude: 116.374935},
-			    {latitude: 40.009704,longitude: 116.374999},
-	       ],
-	       color:"#0000AA",//线的颜色
-	       width:2,//线的宽度
-	       dottedLine:true,//是否虚线
-	       arrowLine:true,    //带箭头的线 开发者工具暂不支持该属性
-	     }], */
-	     }
-	    },
+		data() {
+			return {
+				NavBarColor: this.NavBarColor,
+				id: 0, // 使用 marker点击事件 需要填写id
+				title: 'map',
+				latitude: 40.009704, //纬度
+				longitude: 116.374999, //经度
+				marker: [{
+					id: 0,
+					latitude: 40.009704, //纬度
+					longitude: 116.374999, //经度
+					iconPath: '/static/location.png', //显示的图标        
+					rotate: 0, // 旋转度数
+					width: 20, //宽
+					height: 20, //高
+					title: '你在哪了', //标注点名
+					alpha: 0.5, //透明度
+					callout: { //自定义标记点上方的气泡窗口 点击有效  
+						content: '北京国炬公司', //文本
+						color: '#ffffff', //文字颜色
+						fontSize: 14, //文本大小
+						bordius: 2, //边框圆角
+						bgColor: '#00c16f', //背景颜色
+						display: 'ALWAYS' //常显
+					}
+				}],
+				scale: 16, //地图缩放程度
+				controls: [{ //在地图上显示控件,控件不随着地图移动
+					id: 1, //控件id
+					iconPath: '/static/login3.png', //显示的图标
+					clickable: true,
+					position: { //控件在地图的位置
+						left: 15,
+						top: 15,
+						width: 50,
+						height: 50
+					},
+				}],
+				circles: [{ //在地图上显示圆
+					latitude: 40.009704,
+					longitude: 116.374999,
+					radius: 50, //半径
+					fillColor: "#ffffffAA", //填充颜色
+					color: "#55aaffAA", //描边的颜色
+					strokeWidth: 1 //描边的宽度
+				}],
+			}
+		},
 		onLoad() {
 			this.getLocation()
 		},
-	    methods: {
-			getLocation(){
+		methods: {
+			getLocation() {
 				uni.getLocation({
-				    type: 'gcj02',
-				    success: function (res) {
-				        console.log('当前位置的经度:' + res.longitude);
-				        console.log('当前位置的纬度:' + res.latitude);
-				    },
-					fail: function (res) {
-						 console.log('当前位置的经度');
-					}	
+					type: 'gcj02',
+					success: function(res) {},
+					fail: function(res) {
+
+					}
 				});
 			}
-	    }
+		}
 	}
 </script>
 

+ 40 - 3
pages/user/people.vue

@@ -59,13 +59,12 @@
 					</view>
 				</navigator>
 
-				<navigator class="cu-item arrow animation-slide-bottom" :style="[{animationDelay: '0.7s'}]"
-					url="/pages/user/userexit" hover-class="none">
+				<view class="cu-item arrow animation-slide-bottom" :style="[{animationDelay: '0.7s'}]" @click="getQuit">
 					<view class="content">
 						<text class="cuIcon-exit text-cyan"></text>
 						<text class="text-grey">退出</text>
 					</view>
-				</navigator>
+				</view>
 			</view>
 			<view class="cu-tabbar-height"></view>
 		</scroll-view>
@@ -80,6 +79,7 @@
 	} from "@/common/util/constants"
 	import api from '@/api/api'
 	import http from '@/common/service/http.js'
+
 	export default {
 		name: "people",
 		data() {
@@ -117,6 +117,43 @@
 					}
 				}).catch(e => {})
 			},
+			//退出逻辑
+			getQuit() {
+				uni.showModal({
+					title: '提示',
+					content: '是否退出登录?',
+					success: function(res) {
+						if (res.confirm) {
+							let loginMessage2 = uni.getStorageSync('login-message')
+							let para = {
+								access_token: uni.getStorageSync(ACCESS_TOKEN)
+							}
+
+							uni.clearStorageSync()
+
+							//ibps/oauth2/v3/user/logout?access_token=
+							uni.setStorageSync('login-message', loginMessage2)
+							uni.navigateTo({
+								url: '/pages/login/login'
+							})
+							// let url = "/ibps/oauth2/v3/user/logout?access_token=" + uni.getStorageSync(
+							// 	ACCESS_TOKEN)
+							// api.logout(url, para).then(res => {
+							// 	uni.clearStorageSync()
+
+							// 	//ibps/oauth2/v3/user/logout?access_token=
+							// 	uni.setStorageSync('login-message', loginMessage2)
+							// 	uni.navigateTo({
+							// 		url: '/pages/login/login'
+							// 	})
+							// })
+						} else if (res.cancel) {
+
+						}
+					}
+				});
+
+			}
 		}
 	}
 </script>

+ 34 - 2
pages/user/userdetail.vue

@@ -14,7 +14,7 @@
 				<view class="cu-list menu">
 					<u-form :model="user" ref="uForm" label-width="160">
 						<u-form-item label="单位名称">
-							<u-input v-model="user.wcAccount" input-align="right" disabled />
+							<u-input v-model="user.qq" input-align="right" disabled />
 						</u-form-item>
 						<u-form-item label="客户姓名">
 							<u-input v-model="user.name" input-align="right" />
@@ -32,7 +32,7 @@
 							<u-input v-model="user.address" input-align="right" />
 						</u-form-item>
 					</u-form>
-					<u-button class="u-m-t-40" type="error" @click="sumbit">提交</u-button>
+					<u-button class="u-m-t-40 btn-back-color" type="error" @click="sumbit">提交</u-button>
 				</view>
 			</uni-card>
 
@@ -86,7 +86,37 @@
 					}
 				}).catch(e => {})
 			},
+			//手机号码判断
+			checkPhone(value) {
+				const reg = /^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\d{8}$/
+				if (!reg.test(value)) {
+					return false
+				}
+				return true
+			},
 			sumbit() {
+				uni.showLoading({
+					mask: true,
+					title: "加载中"
+				})
+				if (this.user.name == '') {
+					uni.showToast({
+						title: '请填写姓名',
+						icon: 'none',
+						duration: 2000
+					})
+					uni.hideLoading()
+					return
+				}
+				if (!this.checkPhone(this.user.mobile)) {
+					uni.showToast({
+						title: '请填写正确的手机号码',
+						icon: 'none',
+						duration: 2000
+					})
+					uni.hideLoading()
+					return
+				}
 				this.$http.post('ibps/platform/v3/employee/update', {
 					partyEmployeePo: this.user,
 					user: this.user,
@@ -117,6 +147,7 @@
 							duration: 2000
 						})
 					}
+					uni.hideLoading()
 				}).catch(res => {
 					let datas = res.data
 					uni.showToast({
@@ -124,6 +155,7 @@
 						icon: 'none',
 						duration: 2000
 					})
+					uni.hideLoading()
 				})
 			},
 			getImage() {

+ 9 - 2
pages/wallet/wallet.vue

@@ -41,11 +41,11 @@
 							<view class="left">
 								<view v-if="showIndex == 0">
 									<view>委托单:{{item.wei_tuo_dan_hao_}}</view>
-									<view class="time">充值时间:{{item.create_time_}}</view>
+									<view class="time">充值时间:{{setTime(item.create_time_)}}</view>
 								</view>
 								<view v-if="showIndex == 1">
 									<view>委托单:{{item.wei_tuo_dan_hao_}}</view>
-									<view class="time">扣除时间:{{item.create_time_}}</view>
+									<view class="time">扣除时间:{{setTime(item.create_time_)}}</view>
 								</view>
 							</view>
 							<view class="right">
@@ -77,6 +77,9 @@
 				monkey: '0.00',
 				monkeyList: []
 			}
+		},
+		filters: {
+
 		},
 		created() {
 			this.getInit()
@@ -89,6 +92,10 @@
 				var time = nowDate.toJSON().split('T').join(' ').substr(0, 16);
 				this.time = time
 			},
+			setTime(value) {
+				let time = this.$dayjs(value).format('YYYY-MM-DD HH:mm:ss')
+				return time
+			},
 			//充值和扣除切换
 			showClick(index) {
 				this.showIndex = index

BIN
static/weitou/renyuan-active.png


BIN
static/weitou/renyuan.png


BIN
static/weitou/weituo-active.png


BIN
static/weitou/weituo.png


BIN
static/weitou/yangpin-active.png


BIN
static/weitou/yangpin.png


+ 2 - 2
uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue

@@ -249,12 +249,12 @@
 		flex: 1;
 		box-sizing: border-box;
 	}
-	
+
 	.uni-stat-box {
 		width: 100%;
 		flex: 1;
 	}
-	
+
 	.uni-stat__actived {
 		width: 100%;
 		flex: 1;

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików