|
@@ -24,10 +24,23 @@
|
|
|
<text>是</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view v-if="flag">
|
|
|
- <uni-easyinput class="uni-mt-5" suffixIcon="search" focus v-model="userName" placeholder="请输入协作者编号"
|
|
|
- @iconClick="iconClick"></uni-easyinput>
|
|
|
+ <view class="userList" v-if="flag">
|
|
|
+ <uni-easyinput class="uni-mt-5" v-model="userName" placeholder="请输入协作者编号"
|
|
|
+ @input="debounce(handleSearchUserName,500)" @blur="handleBlur"></uni-easyinput>
|
|
|
+
|
|
|
+ <view class="uni-row showUser">
|
|
|
+ <view v-for="(item,index) in userList">
|
|
|
+ <view class="user" @click="handleClickUserName(item)">{{item.nickName}}</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
+ <view class="uni-row selectedUserList">
|
|
|
+ <view class="selectedUser uni-row" v-for="(item,index) in selectedUserList">
|
|
|
+ <view >{{item.nickName}}</view>
|
|
|
+ <view v-if="selectedUserList.length > 0" @click="handleRemoveUserName(item)">×</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
|
|
|
<view class="add-btn-container uni-row">
|
|
|
<button type="primary" class="btn" @click="handleStart">开始</button>
|
|
@@ -62,8 +75,12 @@
|
|
|
getEquipmentByUidAndDid
|
|
|
} from '@/api/resourceGroup/resourceGroupDetail.js'
|
|
|
import {
|
|
|
- timestampToTime
|
|
|
+ timestampToTime,
|
|
|
+ debounce
|
|
|
} from '@/utils/common.js'
|
|
|
+ import {
|
|
|
+ getUserByLikeUsername
|
|
|
+ } from '@/api/sys/user.js'
|
|
|
|
|
|
const baseDialog = ref(null)
|
|
|
const equipments = ref([]) // 接收设备列表信息
|
|
@@ -77,12 +94,21 @@
|
|
|
const selectedEquipment = ref(null)
|
|
|
const flag = ref(false)
|
|
|
const userName = ref(null)
|
|
|
+ const userList = ref([])
|
|
|
+ const selectedUserList = ref([])
|
|
|
|
|
|
|
|
|
onLoad(() => {
|
|
|
userId.value = store.userInfo.userId || "";
|
|
|
})
|
|
|
|
|
|
+ function resetPage() {
|
|
|
+ flag.value = false;
|
|
|
+ userName.value = null;
|
|
|
+ userList.value = [];
|
|
|
+ selectedUserList.value = [];
|
|
|
+ }
|
|
|
+
|
|
|
function init() {
|
|
|
getProcessList({
|
|
|
// tenantId: store.tenantId,
|
|
@@ -100,39 +126,50 @@
|
|
|
selectedProcess.value = res.data[0].processId;
|
|
|
}
|
|
|
})
|
|
|
-
|
|
|
- getEquipmentByUidAndDid(store.userInfo.userId, store.curDeptDetails).then(res => {
|
|
|
- if (res.code == 200) {
|
|
|
- getDayWorkItemList({
|
|
|
- userId: store.userInfo.userId,
|
|
|
- dayworkId: store.dayworkInfo.id,
|
|
|
- status: 1
|
|
|
- }).then(response => {
|
|
|
- equipmentList.value = res.rows
|
|
|
- if (response.code = 200) {
|
|
|
- for (let i = 0; i < res.rows.length; i++) {
|
|
|
- for (let j = 0; j < response.rows.length; j++) {
|
|
|
- if (response.rows[j].equipmentDetailId == res.rows[i].commonId) {
|
|
|
- equipmentList.value.splice(j, 1)
|
|
|
- }
|
|
|
- }
|
|
|
- };
|
|
|
- for (var i = 0; i < equipmentList.value.length; i++) {
|
|
|
- equipmentList.value[i] = {
|
|
|
- text: equipmentList.value[i].commonCode,
|
|
|
- value: equipmentList.value[i]
|
|
|
- }
|
|
|
- };
|
|
|
- selectedEquipment.value = equipmentList.value[0].value;
|
|
|
+
|
|
|
+ Promise.all([getEquipmentByUidAndDid(store.userInfo.userId, store.curDeptDetails), getDayWorkItemList({
|
|
|
+ userId: store.userInfo.userId,
|
|
|
+ dayworkId: store.dayworkInfo.id,
|
|
|
+ status: 1
|
|
|
+ })])
|
|
|
+ .then(([equipmentRes, response]) => {
|
|
|
+ console.log(equipmentRes)
|
|
|
+ console.log(response.rows)
|
|
|
+ if (equipmentRes.code == 200 && response.code == 200) {
|
|
|
+ let equipmentListData = equipmentRes.rows.filter((equipment) => {
|
|
|
+ return !response.rows.some((item) => item.equipmentDetailId == equipment.commonId);
|
|
|
+ });
|
|
|
+ equipmentList.value = equipmentListData.map((equipment) => {
|
|
|
+ return {
|
|
|
+ text: equipment.commonCode,
|
|
|
+ value: equipment
|
|
|
}
|
|
|
- baseDialog.value.open()
|
|
|
- })
|
|
|
+ });
|
|
|
+ selectedEquipment.value = equipmentListData.length > 0 ? equipmentListData[0] : null;
|
|
|
}
|
|
|
- })
|
|
|
+ baseDialog.value.open()
|
|
|
+ });
|
|
|
+ // for (let i = 0; i < equipmentList.value.length; i++) {
|
|
|
+ // for (let j = 0; j < response.rows.length; j++) {
|
|
|
+ // if (response.rows[j].equipmentDetailId == equipmentList.value[i].commonId) {
|
|
|
+ // equipmentList.value.splice(j, 1)
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // for (var i = 0; i < equipmentList.value.length; i++) {
|
|
|
+ // equipmentList.value[i] = {
|
|
|
+ // text: equipmentList.value[i].commonCode,
|
|
|
+ // value: equipmentList.value[i]
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //
|
|
|
}
|
|
|
|
|
|
function open(data) {
|
|
|
+ resetPage()
|
|
|
firstItem.value = data;
|
|
|
+ userName.value = null;
|
|
|
+ userList.value = [];
|
|
|
init();
|
|
|
}
|
|
|
|
|
@@ -152,22 +189,51 @@
|
|
|
|
|
|
}
|
|
|
|
|
|
+ function handleSearchUserName() {
|
|
|
+ if(userName.value){
|
|
|
+ getUserByLikeUsername(userName.value).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ userList.value = res.data;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function handleClickUserName(item) {
|
|
|
+ selectedUserList.value.push(item);
|
|
|
+ userList.value = [];
|
|
|
+ }
|
|
|
+
|
|
|
+ function handleBlur(){
|
|
|
+ setTimeout(function(){
|
|
|
+ userList.value = [];
|
|
|
+ },200)
|
|
|
+ }
|
|
|
+
|
|
|
+ function handleRemoveUserName(item){
|
|
|
+ selectedUserList.value.splice(selectedUserList.value.indexOf(item),1);
|
|
|
+ }
|
|
|
+
|
|
|
function switchChange(e) {
|
|
|
flag.value = e.detail.value;
|
|
|
}
|
|
|
|
|
|
+ function handleStart() {
|
|
|
+ uni.showModal({
|
|
|
+ title: "提示",
|
|
|
+ content: "确认开始新的报工吗",
|
|
|
+ success: function(res) {
|
|
|
+ if (res.confirm) {
|
|
|
+ handleDoStart();
|
|
|
+ } else if (res.cancel) {
|
|
|
+ close();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
|
|
|
- // function handleSelection(item) {
|
|
|
- // // const buttonIndex = selection.value.findIndex(selectedItem => selectedItem === item);
|
|
|
- // // if (buttonIndex > -1) {
|
|
|
- // // selection.value.splice(buttonIndex, 1); // 取消选中
|
|
|
- // // } else {
|
|
|
- // // selection.value.push(item); // 选中
|
|
|
- // // }
|
|
|
- // selection.value[0] = item;
|
|
|
- // }
|
|
|
+ }
|
|
|
|
|
|
- function handleStart() {
|
|
|
+ function handleDoStart() {
|
|
|
if (!selectedProcess.value || !selectedEquipment.value) {
|
|
|
uni.showToast({
|
|
|
icon: "none",
|
|
@@ -185,14 +251,16 @@
|
|
|
equipmentDetailId: selectedEquipment.value.commonId,
|
|
|
equipmentDetailCode: selectedEquipment.value.commonCode,
|
|
|
startTime: timestampToTime(new Date()),
|
|
|
- status: 1
|
|
|
+ status: 1,
|
|
|
+ collaborationList: selectedUserList.value
|
|
|
};
|
|
|
emit('handleAddDayWorkItem', sendReqParam.value);
|
|
|
} else {
|
|
|
emit('handleAddDayWorkItem', {
|
|
|
processId: selectedProcess.value,
|
|
|
equipmentDetailId: selectedEquipment.value.commonId,
|
|
|
- equipmentDetailCode: selectedEquipment.value.commonCode
|
|
|
+ equipmentDetailCode: selectedEquipment.value.commonCode,
|
|
|
+ collaborationList: selectedUserList.value
|
|
|
});
|
|
|
}
|
|
|
}
|
|
@@ -238,5 +306,46 @@
|
|
|
justify-content: space-between;
|
|
|
margin: 16rpx;
|
|
|
}
|
|
|
+
|
|
|
+ .userList {
|
|
|
+ border: 1rpx solid #1684fc;
|
|
|
+ border-radius: 8rpx;
|
|
|
+ max-height: 300rpx;
|
|
|
+ overflow: auto;
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+ .showUser {
|
|
|
+ justify-content: flex-start;
|
|
|
+ flex-wrap: wrap;
|
|
|
+
|
|
|
+ .user {
|
|
|
+ border: 1rpx solid #999;
|
|
|
+ border-radius: 8rpx;
|
|
|
+ width: 150rpx;
|
|
|
+ height: 50rpx;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 50rpx;
|
|
|
+ margin: 10rpx;
|
|
|
+ overflow: auto;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .selectedUserList {
|
|
|
+ width: 100%;
|
|
|
+ justify-content: flex-start;
|
|
|
+ flex-wrap: wrap;
|
|
|
+
|
|
|
+ .selectedUser {
|
|
|
+ border: 1rpx solid #999;
|
|
|
+ border-radius: 8rpx;
|
|
|
+ width: 150rpx;
|
|
|
+ height: 50rpx;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 50rpx;
|
|
|
+ margin: 20rpx 20rpx 0 0;
|
|
|
+ justify-content: space-around;
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|