wsx 1 год назад
Родитель
Сommit
e227548091

+ 3 - 2
api/myTicket/index.js

@@ -1,7 +1,8 @@
 import {
 	postJ,
 	post,
-	get
+	get,
+	getJ
 } from '@/utils/request'
 import Vue from 'vue'
 
@@ -101,7 +102,7 @@ export async function getUserPage(params) {
 
 // 转派
 export async function workOrderRotate(params) {
-	const data = await get(Vue.prototype.apiUrl + `/eam/workordermaintenance/rotate`, params)
+	const data = await getJ(Vue.prototype.apiUrl + `/eam/workordermaintenance/rotate`, params)
 	if (data.code == 0) {
 		return data.data
 	}

+ 22 - 20
components/Assign.vue

@@ -155,7 +155,7 @@
 					workOrderId: this.formData.workOrderId
 				}
 				console.log(param, 'param')
-				if (this.Usertype == 1) {
+				// if (this.Usertype == 1) {
 					workOrderRotate(param).then(() => {
 						this.close()
 						const _this = this
@@ -171,23 +171,23 @@
 							}
 						})
 					})
-				} else {
-					addAssists(param).then(() => {
-						this.close()
-						const _this = this
-						uni.showModal({
-							title: `此工单已转派成功`,
-							content: '',
-							confirmText: '确认',
-							showCancel: false, // 是否显示取消按钮,默认为 true
-							success: function(res) {
-								if (res.confirm) {
-									_this.$emit('success', _this.formData)
-								}
-							}
-						})
-					})
-				}
+				// } else {
+				// 	addAssists(param).then(() => {
+				// 		this.close()
+				// 		const _this = this
+				// 		uni.showModal({
+				// 			title: `此工单已转派成功`,
+				// 			content: '',
+				// 			confirmText: '确认',
+				// 			showCancel: false, // 是否显示取消按钮,默认为 true
+				// 			success: function(res) {
+				// 				if (res.confirm) {
+				// 					_this.$emit('success', _this.formData)
+				// 				}
+				// 			}
+				// 		})
+				// 	})
+				// }
 
 
 				// postJ(this.apiUrl + '/workOrder/anewSendOrders', [param]).then(res => {
@@ -286,8 +286,8 @@
 			color: #fff;
 
 			.btn {
-				width: 80rpx;
-				height: 32rpx;
+				padding: 10rpx 20rpx;
+			
 				display: inline-block;
 				font-size: 32rpx;
 				border: 1px solid #fff;
@@ -365,4 +365,6 @@
 			}
 		}
 	}
+	
+	
 </style>

+ 25 - 12
components/MySearch/MySearch.vue

@@ -7,7 +7,7 @@
 					<!-- <slot name='slot'></slot> -->
 					<u-form-item :label="item.label" :prop="item.prop">
 						<component :is="item.component" v-model="formData[item.prop]" v-bind="item.props"
-							v-on="item.events" />
+							v-on="item.events" :ref="item.prop" />
 					</u-form-item>
 				</block>
 
@@ -17,8 +17,13 @@
 				<u-button text="重置" shape="circle" style="color: #000;" @click="reset"></u-button>
 				<u-button type="primary" text="确定" shape="circle" @click="search"></u-button>
 			</view>
-			
-			
+
+
+
+
+			<!-- <u--input ref="kk" placeholder="请输入内容" border="surround" clearable focus></u--input> -->
+
+			<!-- <slot name="picker"></slot> -->
 
 		</view>
 	</u-popup>
@@ -30,13 +35,17 @@
 	import MyPicker from '@/uni_modules/uview-ui/components/u-picker/u-picker.vue'
 	import MyDateRange from '@/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue'
 
+	import MySelect from '@/uni_modules/zxz-uni-data-select/components/zxz-uni-data-select/zxz-uni-data-select.vue'
+	// <zxz-uni-data-select :localdata="option.dimension" v-model="form.dimension" dataValue='type'
+	// 							dataKey="name" filterable format='{name}'></zxz-uni-data-select>
 
 	export default {
 		name: "MySearch",
 		components: {
 			MyInput,
 			MyPicker,
-			MyDateRange
+			MyDateRange,
+			MySelect
 		},
 		props: {
 			show: {
@@ -55,11 +64,13 @@
 		data() {
 			return {
 				formData: {},
+				
 			};
 		},
 		watch: {
 			initialData: {
 				handler(newVal) {
+					console.log(newVal);
 					this.formData = {
 						...newVal
 					};
@@ -68,14 +79,9 @@
 			}
 		},
 		methods: {
-			
-			
-			
-			change(){
-				console.log(this);
-			},
 			open() {
-
+				console.log(this.formData);
+				console.log(this.formItems);
 			},
 			close() {
 				this.$emit('update:show', false)
@@ -84,12 +90,15 @@
 				console.log('maskClick事件:', e);
 			},
 			reset() {
+				// this.form = {
+				// 	...this.initialData
+				// }
 				this.formData = {}
 				console.log(this.formData);
 			},
 			search() {
 				this.close()
-				this.$emit('search',this.formData)
+				this.$emit('search', this.formData)
 			}
 		},
 		created() {
@@ -127,4 +136,8 @@
 		justify-content: space-around;
 		margin-top: 20px;
 	}
+
+	/deep/.uni-stat__select {
+		background-color: #fff;
+	}
 </style>

+ 15 - 8
pages/doc/docList.vue

@@ -4,8 +4,8 @@
 
 		</uni-nav-bar>
 		<view class="topBtn">
-			<u-button type="primary" @click="add" text="本地上传"></u-button>
-			<u-button @click="selectDoc" text="关联文档库"></u-button>
+			<u-button v-if="type!=='view'" type="primary" @click="add" text="本地上传"></u-button>
+			<u-button v-if="type!=='view'" @click="selectDoc" text="关联文档库"></u-button>
 		</view>
 
 		<u-cell-group>
@@ -17,7 +17,7 @@
 				<view slot="value" class="listBtn">
 
 					<u-button text="浏览" size='mini'></u-button>
-					<u-button text="删除" size='mini' @click="del(index)"></u-button>
+					<u-button v-if="type!=='view'" text="删除" size='mini' @click="del(index)"></u-button>
 				</view>
 			</u-cell>
 		</u-cell-group>
@@ -25,9 +25,9 @@
 		<view style="height: 84rpx;"></view>
 		<view class="footerButton">
 			<u-button type="primary" @click="back" text="返回"></u-button>
-			<u-button @click="save" text="保存"></u-button>
+			<u-button v-if="type!=='view'" @click="save" text="保存"></u-button>
 		</view>
-		<fileEdit  ref="fileEditRef" @success="done"></fileEdit>
+		<fileEdit ref="fileEditRef" @success="done"></fileEdit>
 	</view>
 </template>
 
@@ -40,17 +40,24 @@
 		components: {
 			fileEdit
 		},
+		computed: {
+
+		},
 
 		data() {
 			return {
 				tableList: [],
-				fileId: []
+				fileId: [],
+				type: ''
 
 			}
 		},
 		onLoad({
-			fileId
+			fileId,
+			type
 		}) {
+			this.type = type
+			console.log(type);
 			if (fileId) {
 				this.fileId = JSON.parse(fileId)
 			}
@@ -90,7 +97,7 @@
 			add() {
 				this.$refs.fileEditRef.open()
 			},
-			done(id){
+			done(id) {
 				this.fileId.push(...id);
 				this.init()
 			}

+ 5 - 1
pages/doc/index.vue

@@ -58,9 +58,13 @@
 		},
 		methods: {
 			handleUpload() {
+				let type=this.type
+				console.log(this.type);
+				console.log(JSON.stringify(this.selectVal));
 				console.log('1111111')
+				// return
 				uni.navigateTo({
-					url: '/pages/doc/docList?fileId=' + JSON.stringify(this.selectVal)
+					url: '/pages/doc/docList?fileId=' + JSON.stringify(this.selectVal) + '&type=' + type
 				})
 			},
 			getFiles(val = []) {

+ 2 - 0
pages/home/home.vue

@@ -532,6 +532,7 @@
 			}
 
 			.table-content {
+				font-size: 28rpx;
 				display: flex;
 				padding: 10rpx 0;
 				width: 100%;
@@ -561,6 +562,7 @@
 					white-space: nowarp;
 					over-flow: hidden;
 					text-overflow: ellipsip;
+					word-break: break-all;
 				}
 
 				.total {

+ 43 - 5
pages/home/myTicket/myTicket.vue

@@ -6,19 +6,26 @@
 				<view @click="HandlScanCode" class="scan_btn"></view>
 			</view>
 		</uni-nav-bar>
+
 		<view class="top-wrapper">
 			<view class="tab_box rx-sc">
 				<view class="tab_item" :class="{active: activeIndex == item.index}" v-for="(item,index) in tabList"
 					:key="index">
-					<view @click="handleTabChange(item)">
+					<view @click="handleTabChange(item)" class="badge-c">
 						{{item.name}}
+							<u-badge max="99" :value="item.badge.value" absolute v-show="orderType==1"></u-badge>
 					</view>
+
+
 				</view>
 			</view>
+
+
 			<view class="more_search">
 				<image src="~@/static/moreSearch.svg" mode="" @click="searchShow = true"></image>
 			</view>
 		</view>
+
 		<view class="work-list">
 			<u-list @scrolltolower="scrolltolower" :key="activeType" :preLoadScreen="page * 10">
 				<u-list-item v-for="(item, index) in dataList" :key="index">
@@ -31,6 +38,7 @@
 				</u-list-item>
 			</u-list>
 		</view>
+
 		<SearchPopup mode="top" v-if="searchShow">
 			<template v-slot:list>
 				<view class="search_list">
@@ -310,6 +318,7 @@
 			})
 		},
 		onShow(e) {
+			console.log(this.orderType);
 			if (this.isInstall) return
 			this.dataList = []
 			this.getList()
@@ -402,7 +411,7 @@
 				}
 				if (this.orderType == 1) {
 					// 待办 执行中
-					this.searchFrom.orderStatus = [0, 2, 3]
+					this.searchFrom.orderStatus = [0, 2]
 				} else {
 					// 已完成
 					this.searchFrom.orderStatus = [4]
@@ -503,11 +512,11 @@
 				}
 				// 维修
 				if (this.tabList[this.activeIndex].workOrderType == 3) {
-					let userInfo = uni.getStorageSync('userInfo')
-					params.executeUserId = userInfo.userId
+					// let userInfo = uni.getStorageSync('userInfo')
+					// params.executeUserId = userInfo.userId
 					if (this.orderType == 1) {
 						if (!params.orderStatus.includes(3)) {
-							params.orderStatus.push(3)
+							// params.orderStatus.push(3)
 						}
 					}
 				} else {
@@ -737,4 +746,33 @@
 	.mg-20 {
 		margin-right: 20rpx;
 	}
+
+	.badge-c {
+		position: relative;
+	}
+
+	.badge {
+		position: absolute;
+		top: 0;
+		right: 0;
+		transform: translate(100%, -20%);
+		font-size: 24rpx;
+
+
+		// position: absolute;
+		// top: -8rpx;
+		// left: 100rpx;
+		// font-size: 24rpx;
+		padding: 0rpx 10rpx;
+		border-radius: 38rpx;
+		background-color: #ff4949;
+		color: #fff;
+		font-style: normal;
+	}
+
+	/deep/.u-badge {
+		top: 0;
+		right: 0;
+		transform: translate(90%, 20%);
+	}
 </style>

+ 2 - 4
pages/maintenanceWorkorder/components/unfinishedApplication.vue

@@ -57,8 +57,7 @@
 			baTreePicker,
 			fileMain
 		},
-		props: {
-		},
+		props: {},
 		data() {
 			return {
 				popShow: false,
@@ -193,8 +192,7 @@
 			color: #fff;
 
 			.btn {
-				width: 80rpx;
-				height: 32rpx;
+				padding: 10rpx 20rpx;
 				display: inline-block;
 				font-size: 32rpx;
 				border: 1px solid #fff;

+ 5 - 3
pages/maintenanceWorkorder/detail/detail.vue

@@ -84,6 +84,7 @@
 						<view class="zp-btn btns" @click="handlbpbj">申请备品备件</view>
 						<view class="zx-btn btns" @click="handlbg">报工</view>
 						<view class="zx-btn btns" style="margin-top: 20rpx;" @click="handlNobg">非完成报工</view>
+						<view class="zp-btn btns" @click="handlZp">转派</view>
 						<!-- <view class="zp-btn btns" @click="handlbpbj" v-if="!worksheetInfo.applyOrder">
 							申请备品备件
 						</view>
@@ -102,10 +103,11 @@
 						<view class="zp-btn btns" @click="handlZp" v-if="worksheetInfo.status.code === 8">转派</view>
 					</div> -->
 				</view>
-				<view class="zxpg-wrap"
+
+				<!-- 	<view class="zxpg-wrap"
 					v-if="orderType == 1 && repairInfo.orderStatus == 3 && repairInfo.requestUserId == userId && ParentIndex !=4">
 					<view class="zx-btn btns" @click="searchShow = true">验收</view>
-				</view>
+				</view> -->
 
 				<Assign ref="Assign" @success="handleAssign"></Assign>
 				<SearchPopup mode="center" v-if="searchShow">
@@ -534,7 +536,7 @@
 			getInfo() {
 				getWorkOrderDetail(this.workOrderCode).then(data => {
 					// *** 新增 照片数据接收
-					if(data.ticketsInfoResponse.workOrderImg){
+					if (data.ticketsInfoResponse.workOrderImg) {
 						data.ticketsInfoResponse.workOrderImg = JSON.parse(data.ticketsInfoResponse.workOrderImg);
 					}
 					console.log(data, '看看数据')

+ 5 - 1
pages/maintenanceWorkorder/order/order.vue

@@ -80,7 +80,11 @@
 			}
 		},
 		onShow() {
-			this.getFirstList()
+		
+			
+			this.changeChartsTab(this.pickTabIndex)
+			
+			// this.getFirstList()
 			this.getStatus()
 		},
 		onReachBottom: function() {

+ 2 - 2
pages/salesServiceManagement/demandList/components/contactList.vue

@@ -200,8 +200,8 @@
 		padding-bottom: 16rpx;
 
 		.btn {
-			width: 80rpx;
-			height: 48rpx;
+			// width: 80rpx;
+			// height: 48rpx;
 			line-height: 48rpx;
 			text-align: center;
 			background: #1890ff;

+ 99 - 4
pages/salesServiceManagement/demandList/index.vue

@@ -10,7 +10,7 @@
 				</uni-easyinput>
 			</uni-section>
 			<button class="search_btn" @click="doSearch">搜索</button>
-			<image class="menu_icon" @click="handleSearch" src="~@/static/pda/menu.svg"></image>
+			<image class="menu_icon" @click="showSearch" src="~@/static/pda/menu.svg"></image>
 		</view>
 		<view class="wrapper">
 			<u-list @scrolltolower="scrolltolower" class="listContent">
@@ -59,6 +59,9 @@
 		<!-- <Screen ref="screen" @succeed="doSearch" /> -->
 		<u-toast ref="uToast"></u-toast>
 
+		<MySearch :show.sync="searchShow" :formItems="formItems" @search="confirmSearch" ref="mySearchRef">
+		</MySearch>
+
 	</view>
 </template>
 
@@ -78,6 +81,83 @@
 
 		data() {
 			return {
+				searchForm: {},
+				emptyShow: false,
+				searchShow: false,
+				formItems: [{
+						label: '客户名称:',
+						prop: 'contactName',
+						component: 'MyInput',
+						props: {
+							placeholder: '请输入内容',
+						}
+					},
+					{
+						label: '编码:',
+						prop: 'code',
+						component: 'MyInput',
+						props: {
+							placeholder: '请输入内容',
+						}
+					},
+					{
+						label: '客户编码:',
+						prop: 'contactCode',
+						component: 'MyInput',
+						props: {
+							placeholder: '请输入内容',
+						}
+					},
+					{
+						label: '创建人:',
+						prop: 'createUserName',
+						component: 'MyInput',
+						props: {
+							placeholder: '请输入内容',
+						}
+					},
+
+					{
+						label: '故障等级:',
+						prop: 'faultLevel',
+						component: 'MySelect',
+						props: {
+							localdata: [{
+								label: '一般',
+								value: 1
+							}, {
+								label: '紧急',
+								value: 2
+							}],
+							dataKey: 'label',
+							dataValue: 'value'
+						}
+					},
+
+					{
+						label: '状态:',
+						prop: 'demandStatus',
+						component: 'MySelect',
+						props: {
+							localdata: [{
+								label: '待提交',
+								value: 0
+							}, {
+								label: '已提交',
+								value: 1
+							}, {
+								label: '已关闭',
+								value: 3
+							}, {
+								label: '已撤回',
+								value: 4
+							}],
+							dataKey: 'label',
+							dataValue: 'value',
+						}
+					},
+				],
+
 				tableList: [],
 				searchVal: '',
 				page: 1,
@@ -249,12 +329,15 @@
 				let data = {
 					pageNum: this.page,
 					size: this.size,
-					type: 1,
-					keyWord: this.searchVal
+					keyWord: this.searchVal,
+					...this.searchForm
 				}
 				getTableList(data).then(res => {
 					if (this.page === 1) {
 						this.tableList = res.list
+						if (this.tableList.length === 0) {
+							this.emptyShow = true
+						}
 					} else {
 						this.tableList.push(...res.list)
 					}
@@ -345,7 +428,19 @@
 			clearSearch() {
 				this.searchVal = ''
 				this.doSearch()
-			}
+			},
+			showSearch() {
+				this.searchShow = true
+			},
+			confirmSearch(e) {
+				console.log(e);
+				let data = JSON.parse(JSON.stringify(e))
+				this.searchForm = data
+				this.doSearch()
+			},
+
+
+
 		}
 	}
 </script>

+ 0 - 1
pages/salesServiceManagement/recycle/index.vue

@@ -102,7 +102,6 @@
 							type: 'daterange',
 						}
 					}
-
 				],
 
 

+ 13 - 12
pages/salesServiceManagement/workOrder/components/planInfo.vue

@@ -2,30 +2,30 @@
 	<u-cell-group>
 		<u-cell title="需求编码" arrow-direction="down">
 			<view slot="value" style="display: flex;align-items: center;width: 100%;">
-				<u--input readonly style="flex:1" border="surround" v-model="planForm.code">
+				<u--input readonly style="flex:1" border="surround" v-model="form.code">
 				</u--input>
 			</view>
 		</u-cell>
 		<u-cell title="名称" arrow-direction="down">
 			<view slot="value" style="display: flex;align-items: center;width: 100%;">
-				<u--input placeholder="请输入" readonly style="flex:1" border="surround" v-model="planForm.name">
+				<u--input placeholder="请输入" readonly style="flex:1" border="surround" v-model="form.name">
 				</u--input>
 			</view>
 		</u-cell>
 		<u-cell title="自动派单" arrow-direction="down">
-			<!-- 		<uni-data-picker  v-model="planForm.isSyncBill" slot="value" placeholder="请选择"
+			<!-- 		<uni-data-picker  v-model="form.isSyncBill" slot="value" placeholder="请选择"
 				:localdata="isSyncBillist" @change="dispatchOnchange">
 			</uni-data-picker> -->
 			<view slot="value" style="display: flex;align-items: center;width: 100%;">
-				<u--input placeholder="请输入" readonly style="flex:1" border="surround" v-model="planForm.isSyncBill">
+				<u--input placeholder="请输入" readonly style="flex:1" border="surround" v-model="form.isSyncBill">
 				</u--input>
 			</view>
 		</u-cell>
 		<u-cell title="预计售后时长" arrow-direction="down">
 			<view slot="value" style="display: flex;align-items: center;width: 100%;">
-				<u--input style="flex:1" readonly border="surround" v-model="planForm.duration">
+				<u--input style="flex:1" readonly border="surround" v-model="form.duration">
 					<template #suffix>
-						<uni-data-picker class="time_select" readonly v-model="planForm.durationUnit" slot="value"
+						<uni-data-picker class="time_select" readonly v-model="form.durationUnit" slot="value"
 							placeholder="请选择" :localdata="durationList">
 						</uni-data-picker>
 					</template>
@@ -34,28 +34,28 @@
 		</u-cell>
 		<u-cell title="部门" arrow-direction="down">
 			<view slot="value" style="display: flex;align-items: center;width: 100%;">
-				<u--input style="flex:1" readonly placeholder="请选择" border="surround" v-model="planForm.executeGroupName">
+				<u--input style="flex:1" readonly placeholder="请选择" border="surround" v-model="form.executeGroupName">
 				</u--input>
 			</view>
 		</u-cell>
 		<u-cell title="执行人" arrow-direction="down">
 			<view slot="value" style="display: flex;align-items: center;width: 100%;">
-				<u--input style="flex:1" readonly placeholder="请选择" border="surround" v-model="planForm.executeUserName">
+				<u--input style="flex:1" readonly placeholder="请选择" border="surround" v-model="form.executeUserName">
 				</u--input>
 			</view>
 		</u-cell>
 		<u-cell title="紧急程度" arrow-direction="down"> 
 		<view slot="value" style="display: flex;align-items: center;width: 100%;">
-			<u--input style="flex:1" readonly placeholder="请选择" border="surround" v-model="planForm.urgent">
+			<u--input style="flex:1" readonly placeholder="请选择" border="surround" v-model="form.urgent">
 			</u--input>
 		</view>
-			<!-- 			<uni-data-picker  v-model="planForm.urgent" slot="value" placeholder="请选择"
+			<!-- 			<uni-data-picker  v-model="form.urgent" slot="value" placeholder="请选择"
 					:localdata="urgentList" @change="urgentOnchange">
 				</uni-data-picker> -->
 		</u-cell>
 		<u-cell title="备注" arrow-direction="down">
 			<view slot="value" style="display: flex;align-items: center;width: 100%;">
-				<u--textarea disabled style="flex:1" border="surround" v-model="planForm.remark">
+				<u--textarea disabled style="flex:1" border="surround" v-model="form.remark">
 				</u--textarea>
 			</view>
 		</u-cell>
@@ -73,7 +73,7 @@
 		watch:{
 			planForm:{
 				handler(val){
-					this.planForm = val;
+					this.form = val;
 				},
 				immediate:true,
 				deep:true,
@@ -81,6 +81,7 @@
 		},
 		data() {
 			return {
+				form:{},
 				durationList: [{
 						value: '1',
 						text: '分钟'

+ 24 - 18
pages/salesServiceManagement/workOrder/index.vue

@@ -38,12 +38,14 @@
 		<CheckAndAccept ref="acceptRef" @getList='doSearch' />
 		<Evaluate ref="evaluateRef" @getList='doSearch' />
 		<u-toast ref="uToast"></u-toast>
-		<MySearch :show.sync="searchShow" :formItems="formItems" @search="confirmSearch">
-		</MySearch>
+		<MySearch :show.sync="searchShow" :formItems="formItems" @search="confirmSearch" ></MySearch>
 	</view>
 </template>
 
 <script>
+	// import MyPicker from '@/uni_modules/uview-ui/components/u-picker/u-picker.vue'
+
+
 	import {
 		getSalesWorkOrder,
 		receiveSalesWorkOrder
@@ -55,7 +57,7 @@
 		components: {
 			myCard,
 			CheckAndAccept,
-			Evaluate
+			Evaluate,
 		},
 
 		data() {
@@ -87,20 +89,22 @@
 							placeholder: '请输入内容',
 						}
 					},
-					// {
-					// 	label: '故障等级:',
-					// 	prop: 'faultLevel',
-					// 	component: 'MyInput',
-					// 	props: {
-					// 		placeholder: '请选择',
-					// 		events:{
-					// 			focus:(e)=>{
-					// 				console.log('123');
-					// 				console.log(e);
-					// 			}
-					// 		}
-					// 	}
-					// },
+					{
+						label: '故障等级:',
+						prop: 'faultLevel',
+						component: 'MySelect',
+						props: {
+							localdata: [{
+								label: '一般',
+								value: 1
+							}, {
+								label: '紧急',
+								value: 2
+							}],
+							dataKey:'label',
+							dataValue:'value'
+						}
+					},
 					{
 						label: '计划单号:',
 						prop: 'planCode',
@@ -380,6 +384,7 @@
 		},
 		computed: {},
 		onLoad() {
+			console.log(this.$refs.uToast);
 
 		},
 		onShow() {
@@ -502,7 +507,8 @@
 				let data = JSON.parse(JSON.stringify(e))
 				this.searchForm = data
 				this.doSearch()
-			}
+			},
+			
 		}
 	}
 </script>

+ 189 - 189
pages/systemSettings/index.vue

@@ -1,209 +1,209 @@
 <template>
-  <view class="">
-    <uni-nav-bar
-      fixed="true"
-      statusBar="true"
-      left-icon="back"
-      @clickLeft="back"
-      title="系统设置"
-    >
-    </uni-nav-bar>
-    <u-cell-group>
-      <picker @change="handlePicker" :range="['是', '否']">
-        <u-cell title="记住密码" :isLink="true" arrow-direction="right">
-          <text slot="value" class="u-slot-value">{{
+	<view class="">
+		<uni-nav-bar fixed="true" statusBar="true" left-icon="back" @clickLeft="back" title="系统设置">
+		</uni-nav-bar>
+		<u-cell-group>
+			<picker @change="handlePicker" :range="['是', '否']">
+				<u-cell title="记住密码" :isLink="true" arrow-direction="right">
+					<text slot="value" class="u-slot-value">{{
             isMemo ? '是' : '否'
           }}</text>
-        </u-cell>
-      </picker>
-      <u-cell
-        title="服务器地址"
-        :isLink="true"
-        arrow-direction="right"
-        @click="handleServerSettings"
-      >
-        <text slot="value" class="u-slot-value" :key="apiAdress">{{
+				</u-cell>
+			</picker>
+			<u-cell title="服务器地址" :isLink="true" arrow-direction="right" @click="handleServerSettings">
+				<text slot="value" class="u-slot-value" :key="apiAdress">{{
           apiAdress
         }}</text>
-      </u-cell>
-      <u-cell
-        :title="'当前版本 ' + currentVersion"
-        :isLink="true"
-        arrow-direction="right"
-      >
-        <text slot="value" class="u-slot-value" @click="handlUpdate">{{
+			</u-cell>
+			<u-cell :title="'当前版本 ' + currentVersion" :isLink="true" arrow-direction="right">
+				<text slot="value" class="u-slot-value" @click="handlUpdate">{{
           Nversion == currentVersion ? '' : `发现新版本(${this.Nversion})`
         }}</text>
-      </u-cell>
-    </u-cell-group>
-    <view class="flex-buttom">
-      <view class="btn" @click="loginOut"> 退出登录 </view>
-      <view class="copyright">
-        <view>版权所有© 2019-2021中赢合力</view>
-        <view>湘ICP备20015098号</view>
-      </view>
-    </view>
-    <updatePop
-      ref="updatePop"
-      :versionNum="versionNum"
-      :downloadUrl="downloadUrl"
-      :sizes="VersionInfo.fileSize"
-    ></updatePop>
-    <ServerSetting ref="serverSettingRef" @setServerStatus="setServerStatus" />
-  </view>
+			</u-cell>
+		</u-cell-group>
+		<view class="flex-buttom">
+			<view class="btn" @click="loginOut"> 退出登录 </view>
+			<view class="copyright">
+				<view>版权所有© 2019-2021中赢合力</view>
+				<view>湘ICP备20015098号</view>
+			</view>
+		</view>
+		<updatePop ref="updatePop" :versionNum="versionNum" :downloadUrl="downloadUrl" :sizes="VersionInfo.fileSize">
+		</updatePop>
+		<ServerSetting ref="serverSettingRef" @setServerStatus="setServerStatus" />
+	</view>
 </template>
 
 <script>
-import { postJ, get } from '@/utils/api.js'
-import updatePop from './components/updatePop.vue'
-import { setMemo, isMemo, removeMemo } from '@/utils/passwordMemo.js'
-import ServerSetting from '@/components/ServerSetting/index'
-export default {
-  components: {
-    updatePop,
-    ServerSetting
-  },
-  data () {
-    return {
-      show: false,
-      versionNum: '',
-      downloadUrl: '',
-      currentVersion: '',
-      isMemo: isMemo(),
-      apiAdress: '',
-      Nversion: '',
-      VersionInfo: ''
-    }
-  },
-  created () {
-    const apiInfo = uni.getStorageSync('apiInfo')
+	import {
+		postJ,
+		get
+	} from '@/utils/api.js'
+	import updatePop from './components/updatePop.vue'
+	import {
+		setMemo,
+		isMemo,
+		removeMemo
+	} from '@/utils/passwordMemo.js'
+	import ServerSetting from '@/components/ServerSetting/index'
+	export default {
+		components: {
+			updatePop,
+			ServerSetting
+		},
+		data() {
+			return {
+				show: false,
+				versionNum: '',
+				downloadUrl: '',
+				currentVersion: '',
+				isMemo: isMemo(),
+				apiAdress: '',
+				Nversion: '',
+				VersionInfo: ''
+			}
+		},
+		created() {
+			const apiInfo = uni.getStorageSync('apiInfo')
 
-    this.apiAdress =
-      apiInfo.hostname &&
-      `${apiInfo.protocal || ''}${apiInfo.hostname || ''}:${apiInfo.port || ''}`
+			this.apiAdress =
+				apiInfo.hostname &&
+				`${apiInfo.protocal || ''}${apiInfo.hostname || ''}:${apiInfo.port || ''}`
 
-    this.currentVersion = plus?.runtime.version
-    this.getbb()
-  },
-  methods: {
-    handlePicker (e) {
-      this.isMemo = e.detail.value === 0
-      if (e.detail.value === 0) {
-        setMemo()
-      } else {
-        removeMemo()
-      }
-    },
-    setServerStatus (val) {
-      if (val) {
-        const apiInfo = uni.getStorageSync('apiInfo')
+			this.currentVersion = plus?.runtime.version
+			this.getbb()
+		},
+		methods: {
+			handlePicker(e) {
+				this.isMemo = e.detail.value === 0
+				if (e.detail.value === 0) {
+					setMemo()
+				} else {
+					removeMemo()
+				}
+			},
+			setServerStatus(val) {
+				if (val) {
+					const apiInfo = uni.getStorageSync('apiInfo')
 
-        this.apiAdress = `${apiInfo.protocal || ''}${apiInfo.hostname || ''}:${
+					this.apiAdress = `${apiInfo.protocal || ''}${apiInfo.hostname || ''}:${
           apiInfo.port || ''
         }`
-      }
-    },
-    handleServerSettings () {
-      this.$refs.serverSettingRef.open()
-    },
-    loginOut () {
+				}
+			},
+			handleServerSettings() {
+				this.$refs.serverSettingRef.open()
+			},
+			loginOut() {
 
-      uni.showModal({
-        title: '提示',
-        content: '确认退出登录',
-        success: res => {
-          console.log(res,res.confirm,'-----确认退出登录');
-          if (res.confirm) {
-          console.log('-----确认退出登录9999999');
-		  uni.clearStorage()
-          try {
-            postJ(this.apiUrl + '/main/user/logout')
-              .then(res => {
+				uni.showModal({
+					title: '提示',
+					content: '确认退出登录',
+					success: res => {
+						console.log(res, res.confirm, '-----确认退出登录');
+						if (res.confirm) {
+							console.log('-----确认退出登录9999999');
+							uni.clearStorage()
+							try {
+								postJ(this.apiUrl + '/main/user/logout')
+									.then(res => {
 
-                uni.removeStorageSync('token')
-                uni.removeStorageSync('userInfo')
-				uni.removeStorageSync('treeList')
-			
-				
-                uni.reLaunch({
-                  url: '/pages/login/login'
-                })
-              })
-              .catch(err => {
-                uni.showToast({
-                  title: '退出失败',
-                  icon: 'none'
-                })
-              })
-            
-          } catch (error) {
-            console.log(error,'error----')
-            uni.reLaunch({
-                  url: '/pages/login/login'
-                })
-          }
-          } else if (res.cancel) {
-            console.log('用户点击取消')
-          }
-        }
-      })
-    },
-    handlUpdate () {
-      get(this.apiUrl + '/versioning/getLatestData').then(res => {
-        if (res.success) {
-          const currentVersion = this.currentVersion
-          const Nversion = res.data.version
-          this.VersionInfo = res.data
-          if (currentVersion !== Nversion) {
-            this.$refs.updatePop.open()
-            this.versionNum = Nversion
-            this.downloadUrl = this.apiUrl + res.data.path
-          } else {
-            uni.showToast({
-              title: '暂无新版本',
-              icon: 'none'
-            })
-          }
-        }
-      })
-    },
-    getbb () {
-      get(this.apiUrl + '/versioning/getLatestData').then(res => {
-        if (res.success) {
-          this.Nversion = res.data.version
-        }
-      })
-    }
-  }
-}
+										uni.showToast({
+											title: '退出成功',
+											icon: 'success',
+											duration: 500
+										})
+
+
+										setTimeout(() => {
+											uni.removeStorageSync('token')
+											uni.removeStorageSync('userInfo')
+											uni.removeStorageSync('treeList')
+											uni.reLaunch({
+												url: '/pages/login/login'
+											})
+
+										}, 500)
+
+									})
+									.catch(err => {
+										uni.showToast({
+											title: '退出失败',
+											icon: 'none'
+										})
+									})
+
+							} catch (error) {
+								console.log(error, 'error----')
+								uni.reLaunch({
+									url: '/pages/login/login'
+								})
+							}
+						} else if (res.cancel) {
+							console.log('用户点击取消')
+						}
+					}
+				})
+			},
+			handlUpdate() {
+				get(this.apiUrl + '/versioning/getLatestData').then(res => {
+					if (res.success) {
+						const currentVersion = this.currentVersion
+						const Nversion = res.data.version
+						this.VersionInfo = res.data
+						if (currentVersion !== Nversion) {
+							this.$refs.updatePop.open()
+							this.versionNum = Nversion
+							this.downloadUrl = this.apiUrl + res.data.path
+						} else {
+							uni.showToast({
+								title: '暂无新版本',
+								icon: 'none'
+							})
+						}
+					}
+				})
+			},
+			getbb() {
+				get(this.apiUrl + '/versioning/getLatestData').then(res => {
+					if (res.success) {
+						this.Nversion = res.data.version
+					}
+				})
+			}
+		}
+	}
 </script>
 
 <style lang="scss" scoped>
-.u-slot-value {
-  color: #157a2c;
-}
-.flex-buttom {
-  position: fixed;
-  bottom: 0;
-  left: 0;
-  width: 100%;
-  padding: 20rpx;
-  box-sizing: border-box;
-  .btn {
-    color: #157a2c;
-    font-size: 28rpx;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    border: 1px solid #157a2c;
-    border-radius: 10rpx;
-    height: 80rpx;
-  }
-}
-.copyright {
-  color: #555;
-  font-size: 28rpx;
-  text-align: center;
-  padding: 20rpx 0;
-}
-</style>
+	.u-slot-value {
+		color: #157a2c;
+	}
+
+	.flex-buttom {
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		width: 100%;
+		padding: 20rpx;
+		box-sizing: border-box;
+
+		.btn {
+			color: #157a2c;
+			font-size: 28rpx;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			border: 1px solid #157a2c;
+			border-radius: 10rpx;
+			height: 80rpx;
+		}
+	}
+
+	.copyright {
+		color: #555;
+		font-size: 28rpx;
+		text-align: center;
+		padding: 20rpx 0;
+	}
+</style>

+ 1 - 0
pages/tour_tally/detail/detail.vue

@@ -59,6 +59,7 @@
 						<template v-else-if="worksheetInfo.orderStatus === 2">
 							<button class="btn-execute" type="primary" @click="handleReport">报工</button>
 							<button class="btn-sparepart" type="warning" @click="handlbpbj">申请备品备件</button>
+							<button class="btn-reassignment" type="primary" @click="handleAssign">转派</button>
 						</template>
 						<button v-else-if="worksheetInfo.orderStatus === 3" :disabled="true" class="btn-execute"
 							type="primary">已报工</button>

+ 10 - 5
uni_modules/zxz-uni-data-select/components/zxz-uni-data-select/zxz-uni-data-select.vue

@@ -30,8 +30,10 @@
 						style="font-size: 12px;position: absolute;z-index: 1;" :placeholder="placeholderOld"
 						v-model="filterInput">
 					<view v-else class="uni-select__input-text uni-select__input-placeholder">{{typePlaceholder}}</view>
-					<uni-icons v-if="(current.length>0 && clear&&!disabled)||(currentArr.length>0&&clear&&!disabled)"
-						type="clear" color="#c0c4cc" size="24" style="position: absolute;right: 0;" @click="clearVal" />
+					<label @click.stop="clearVal"
+						v-if="(current.length>0 && clear&&!disabled)||(currentArr.length>0&&clear&&!disabled)">
+						<uni-icons type="clear" color="#c0c4cc" size="24" style="right: 0;" />
+					</label>
 					<uni-icons style="right: 0;position: absolute;" v-else :type="showSelector? 'top' : 'bottom'"
 						size="14" color="#999" />
 				</view>
@@ -203,8 +205,9 @@
 
 				// #ifndef VUE3
 				if (this.value || this.value == 0) {
+					console.log('这里');
 					this.current = this.formatItemName(this.filterMixinDatacomResData.find(e =>
-						e[this.dataValue] == this.value
+						e[this.dataValue] === this.value
 					))
 				}
 				// #endif
@@ -341,6 +344,8 @@
 					const def = this.mixinDatacomResData.find(item => item[this.dataValue] === defValue)
 					this.current = def ? this.formatItemName(def) : ''
 				}
+
+				console.log(this.current);
 			},
 			/**
 			 * @param {[String, Number]} value
@@ -359,7 +364,8 @@
 			inputChange(e) {
 				this.$emit('inputChange', e.detail.value)
 			},
-			clearVal() {
+			clearVal(event) {
+				console.log(event);
 				if (this.disabled) {
 					return
 				}
@@ -435,7 +441,6 @@
 					this.$emit('input', val)
 					this.$emit('update:modelValue', val)
 					const current = this.mixinDatacomResData.find(item => val == item[this.dataValue])
-					console.log(current);
 					this.$emit('change', current)
 				}
 				if (this.collection) {