人员选择优化,bug优化
This commit is contained in:
parent
a8f41928e3
commit
f63ac3e827
|
|
@ -13,7 +13,7 @@
|
|||
"type" : "uniCloud"
|
||||
},
|
||||
{
|
||||
"playground" : "custom",
|
||||
"playground" : "standard",
|
||||
"type" : "uni-app:app-android"
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -152,6 +152,14 @@ export function getImportMonthPlanApi(data) {
|
|||
data: data
|
||||
})
|
||||
}
|
||||
// 获取人员信息
|
||||
export function getPersonInfoApi(data) {
|
||||
return request_yn({
|
||||
url: '/ynPlanApp/infDay/getSubPeople',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 生产月计划
|
||||
|
|
|
|||
|
|
@ -90,6 +90,13 @@
|
|||
"system" : {
|
||||
"__platform__" : [ "ios", "android" ]
|
||||
}
|
||||
},
|
||||
"maps" : {
|
||||
"amap" : {
|
||||
"name" : "",
|
||||
"appkey_ios" : "",
|
||||
"appkey_android" : ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"orientation" : [ "portrait-primary" ],
|
||||
|
|
|
|||
|
|
@ -448,7 +448,7 @@ export default {
|
|||
// 获取定位位置信息
|
||||
uni.getLocation({
|
||||
type: 'gcj02', // 默认为 gcj02,可以选择 'wgs84'
|
||||
altitude: true,
|
||||
// altitude: true,
|
||||
geocode: true,
|
||||
success: res => {
|
||||
console.log(res, '位置信息--')
|
||||
|
|
|
|||
|
|
@ -193,7 +193,7 @@
|
|||
v-if="f.items_type === 'sel'"
|
||||
></uni-data-select>
|
||||
|
||||
<view v-if="f.name === 'rys'" @tap="onAddSubUserInfo(f.name)">
|
||||
<view v-if="f.name === 'rys'" @tap="onAddSubUserInfo(f.name, index)">
|
||||
<u--input :autoHeight="true" type="text" v-model="item.rys" placeholder="请选择" disabled />
|
||||
|
||||
<!-- <uni-easyinput
|
||||
|
|
@ -205,11 +205,18 @@
|
|||
/> -->
|
||||
</view>
|
||||
<view class="time-container" @tap="onSelectWorkInfo(index)" v-if="f.form_label == '作业内容'">
|
||||
<view style="font-size: 26rpx">{{ item.zynr ? item.zynr : '请选择' }}</view>
|
||||
<view v-if="!item.zynr" style="font-size: 26rpx">请选择</view>
|
||||
<text v-if="!item.zynr">
|
||||
<uni-icons type="forward" size="22"></uni-icons>
|
||||
</text>
|
||||
</view>
|
||||
<u--textarea
|
||||
v-if="item.zynr && f.form_label == '作业内容'"
|
||||
autoHeight
|
||||
type="area"
|
||||
v-model="item.zynr"
|
||||
placeholder="请填写"
|
||||
/>
|
||||
</uni-forms-item>
|
||||
</uni-forms>
|
||||
</scroll-view>
|
||||
|
|
@ -309,7 +316,7 @@
|
|||
:required="f.required"
|
||||
>
|
||||
<u--textarea
|
||||
v-if="f.items_type === 'area'"
|
||||
v-if="f.items_type === 'area' && f.name != 'rys' && f.name != 'zynr'"
|
||||
v-model="item[f.name]"
|
||||
placeholder="请填写"
|
||||
autoHeight
|
||||
|
|
@ -320,6 +327,7 @@
|
|||
:type="f.isType ? f.isType : 'text'"
|
||||
v-model="item[f.name]"
|
||||
placeholder="请填写"
|
||||
@input="handleInput($event, f.isType, index, f.name)"
|
||||
disabled
|
||||
/>
|
||||
<uni-data-select
|
||||
|
|
@ -329,6 +337,31 @@
|
|||
:clear="false"
|
||||
v-if="f.items_type === 'sel'"
|
||||
></uni-data-select>
|
||||
|
||||
<view v-if="f.name === 'rys'" @tap="onAddSubUserInfoNew(f.name, index)">
|
||||
<u--input :autoHeight="true" type="text" v-model="item.rys" placeholder="请选择" disabled />
|
||||
|
||||
<!-- <uni-easyinput
|
||||
v-else
|
||||
:autoHeight="true"
|
||||
type="text"
|
||||
v-model="item.userName"
|
||||
placeholder="请选择"
|
||||
/> -->
|
||||
</view>
|
||||
<view class="time-container" @tap="onSelectWorkInfo(index)" v-if="f.form_label == '作业内容'">
|
||||
<view v-if="!item.zynr" style="font-size: 26rpx">请选择</view>
|
||||
<text v-if="!item.zynr">
|
||||
<uni-icons type="forward" size="22"></uni-icons>
|
||||
</text>
|
||||
</view>
|
||||
<u--textarea
|
||||
v-if="item.zynr && f.form_label == '作业内容'"
|
||||
autoHeight
|
||||
type="area"
|
||||
v-model="item.zynr"
|
||||
placeholder="请填写"
|
||||
/>
|
||||
</uni-forms-item>
|
||||
</uni-forms>
|
||||
</scroll-view>
|
||||
|
|
@ -731,6 +764,13 @@ export default {
|
|||
},
|
||||
|
||||
{ form_label: '风险类别', items_type: 'ipt', required: true, name: 'fxlb' },
|
||||
{
|
||||
form_label: '风险管控层级',
|
||||
items_type: 'sel',
|
||||
name: 'gkcj',
|
||||
required: true,
|
||||
options: []
|
||||
},
|
||||
{ form_label: '现场负责人', items_type: 'ipt', required: true, name: 'xcfzr' },
|
||||
{ form_label: '全体人数', items_type: 'ipt', required: true, name: 'qtrs', isType: 'number' },
|
||||
{ form_label: '公司职工人数', items_type: 'ipt', required: true, name: 'zgs', isType: 'number' },
|
||||
|
|
@ -740,13 +780,6 @@ export default {
|
|||
{ form_label: 'SIP编号', items_type: 'area', required: true, name: 'sipnum' },
|
||||
{ form_label: '责任管控人', items_type: 'area', required: true, name: 'sipfzr' },
|
||||
|
||||
{
|
||||
form_label: '风险管控层级',
|
||||
items_type: 'sel',
|
||||
name: 'gkcj',
|
||||
required: true,
|
||||
options: []
|
||||
},
|
||||
{ form_label: '中等以上风险作业管控人等', items_type: 'area', required: false, name: 'gkr' }
|
||||
],
|
||||
|
||||
|
|
@ -872,7 +905,9 @@ export default {
|
|||
planDate: '',
|
||||
keyword: ''
|
||||
},
|
||||
workContentList: []
|
||||
workContentList: [],
|
||||
currenPersonIndex: 0,
|
||||
currenPersonIndexNew: 0
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
|
@ -924,8 +959,17 @@ export default {
|
|||
userId += e.idNumber + '@'
|
||||
})
|
||||
|
||||
this_.monthParams[0].selectuser = userId.slice(0, -1)
|
||||
this_.monthParams[0].rys = '1'
|
||||
this_.monthParams[this_.currenPersonIndex].selectuser = userId.slice(0, -1)
|
||||
|
||||
this_.monthParams[this_.currenPersonIndex].rys =
|
||||
this_.monthParams[this_.currenPersonIndex].selectuser.split('@').length
|
||||
|
||||
if (activeIndex == '查看报表') {
|
||||
this_.monthDataList[this_.currenPersonIndexNew].selectuser = userId.slice(0, -1)
|
||||
|
||||
this_.monthDataList[this_.currenPersonIndexNew].rys =
|
||||
this_.monthDataList[this_.currenPersonIndexNew].selectuser.split('@').length
|
||||
}
|
||||
|
||||
console.log(userNameStr, userId)
|
||||
})
|
||||
|
|
@ -1049,8 +1093,11 @@ export default {
|
|||
state: ''
|
||||
}
|
||||
console.log('saveParams保存参数', saveParams)
|
||||
|
||||
uni.showLoading({
|
||||
title: '正在提交,请勿重复点击'
|
||||
})
|
||||
const result = await setMonthPlanApi(saveParams)
|
||||
uni.hideLoading()
|
||||
if (result.res == 1) {
|
||||
uni.showToast({ icon: 'none', title: '保存成功!' })
|
||||
setTimeout(() => {
|
||||
|
|
@ -1429,7 +1476,11 @@ export default {
|
|||
}
|
||||
console.log('saveParams保存参数', saveParams)
|
||||
|
||||
uni.showLoading({
|
||||
title: '正在提交,请勿重复点击'
|
||||
})
|
||||
const result = await setMonthPlanApi(saveParams)
|
||||
uni.hideLoading()
|
||||
if (result.res == 1) {
|
||||
uni.showToast({ icon: 'none', title: '保存成功!' })
|
||||
this.$refs.popupAuditing.close()
|
||||
|
|
@ -1610,7 +1661,7 @@ export default {
|
|||
this.monthParams = res.obj
|
||||
}
|
||||
},
|
||||
onAddSubUserInfo(name) {
|
||||
onAddSubUserInfo(name, index) {
|
||||
if (name == 'rys') {
|
||||
// console.log('跳转选人----') proName
|
||||
|
||||
|
|
@ -1618,7 +1669,57 @@ export default {
|
|||
uni.showToast({ icon: 'none', title: '请选择工程!' })
|
||||
return
|
||||
}
|
||||
uni.navigateTo({ url: `/pages/workPlan/dayPlan/sub-user/index?proName=${this.projectName}` })
|
||||
this.currenPersonIndex = index
|
||||
|
||||
let personList = []
|
||||
this.monthParams.forEach(e => {
|
||||
personList.push(e.selectuser)
|
||||
})
|
||||
|
||||
const personInfo = {
|
||||
personList
|
||||
}
|
||||
|
||||
console.log('personList', personList)
|
||||
uni.navigateTo({
|
||||
url: `/pages/workPlan/dayPlan/sub-user/index?proName=${this.projectName}&personList=${JSON.stringify(
|
||||
personInfo
|
||||
)}&index=${index}`
|
||||
})
|
||||
}
|
||||
},
|
||||
onAddSubUserInfoNew(name, index) {
|
||||
let proName = ''
|
||||
this.projectListSel.forEach(e => {
|
||||
if (e.value == this.queryDataParams.proId) {
|
||||
proName = e.text
|
||||
}
|
||||
})
|
||||
if (name == 'rys') {
|
||||
// console.log('跳转选人----') proName
|
||||
|
||||
// if (!this.projectId) {
|
||||
// uni.showToast({ icon: 'none', title: '请选择工程!' })
|
||||
// return
|
||||
// }
|
||||
this.currenPersonIndexNew = index
|
||||
|
||||
let personList = []
|
||||
this.monthDataList.forEach(e => {
|
||||
console.log(e.selectuser, 'e.selectusere.selectusere.selectuser')
|
||||
personList.push(e.selectuser)
|
||||
})
|
||||
|
||||
const personInfo = {
|
||||
personList
|
||||
}
|
||||
|
||||
console.log('personList', personList)
|
||||
uni.navigateTo({
|
||||
url: `/pages/workPlan/dayPlan/sub-user/index?proName=${proName}&personList=${JSON.stringify(
|
||||
personInfo
|
||||
)}&index=${index}`
|
||||
})
|
||||
}
|
||||
},
|
||||
onSelectWorkInfo(index) {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<view class="month-container">
|
||||
<u-navbar
|
||||
class="u-navbar"
|
||||
title="基建日计划"
|
||||
title="生产日计划"
|
||||
placeholder
|
||||
@leftClick="leftClick"
|
||||
leftIconColor="#fff"
|
||||
|
|
@ -193,23 +193,24 @@
|
|||
v-if="f.items_type === 'sel'"
|
||||
></uni-data-select>
|
||||
|
||||
<view v-if="f.name === 'rys'" @tap="onAddSubUserInfo(f.name)">
|
||||
<uni-easyinput :autoHeight="true" type="text" v-model="item.rys" placeholder="请选择" />
|
||||
<!-- <view v-if="f.name === 'rys'" @tap="onAddSubUserInfo(f.name)">
|
||||
<u--input :autoHeight="true" type="text" v-model="item.rys" placeholder="请选择" disabled />
|
||||
|
||||
<!-- <uni-easyinput
|
||||
v-else
|
||||
:autoHeight="true"
|
||||
type="text"
|
||||
v-model="item.userName"
|
||||
placeholder="请选择"
|
||||
/> -->
|
||||
</view>
|
||||
|
||||
</view> -->
|
||||
<view class="time-container" @tap="onSelectWorkInfo(index)" v-if="f.form_label == '作业内容'">
|
||||
<view style="font-size: 26rpx">{{ item.zynr ? item.zynr : '请选择' }}</view>
|
||||
<view v-if="!item.zynr" style="font-size: 26rpx">请选择</view>
|
||||
<text v-if="!item.zynr">
|
||||
<uni-icons type="forward" size="22"></uni-icons>
|
||||
</text>
|
||||
</view>
|
||||
<u--textarea
|
||||
v-if="item.zynr && f.form_label == '作业内容'"
|
||||
autoHeight
|
||||
type="area"
|
||||
v-model="item.zynr"
|
||||
placeholder="请填写"
|
||||
/>
|
||||
</uni-forms-item>
|
||||
</uni-forms>
|
||||
</scroll-view>
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@
|
|||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<view class="pagination">
|
||||
<!-- <view class="pagination">
|
||||
<uni-pagination
|
||||
:total="totalAmount"
|
||||
title="标题文字"
|
||||
|
|
@ -82,7 +82,7 @@
|
|||
next-text="下一页"
|
||||
@change="onPagination"
|
||||
/>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
<!-- 弹框 -->
|
||||
<uni-popup ref="popup" background-color="#fff">
|
||||
|
|
@ -122,6 +122,41 @@
|
|||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
|
||||
<uni-popup ref="popupPerson" background-color="#fff">
|
||||
<view class="popup-person">
|
||||
<view class="title">操作确认</view>
|
||||
|
||||
<view class="info">
|
||||
(暂退人员:在24点后自动返场,状态调整为"在场"
|
||||
<br />
|
||||
<br />
|
||||
临时人员:只能打7天卡,且无法生产工资册)
|
||||
</view>
|
||||
|
||||
<view class="title_1">选择的作业人员包含</view>
|
||||
|
||||
<view class="person-list">
|
||||
<view>
|
||||
固定人员:
|
||||
<text v-for="(item, index) in fixedPersonList" :key="index">{{ item }}</text>
|
||||
</view>
|
||||
<view>
|
||||
暂退人员:
|
||||
<text v-for="(item, index) in tempPersonList" :key="index">{{ item }}</text>
|
||||
</view>
|
||||
<view>
|
||||
临时人员:
|
||||
<text v-for="(item, index) in returnPersonList" :key="index">{{ item }}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="person-btn">
|
||||
<view @tap="onCancelBtn">取消</view>
|
||||
<view @tap="onSubmitBtn">确定</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
|
@ -140,6 +175,7 @@ export default {
|
|||
},
|
||||
subUserList: [],
|
||||
subUserListAll: [],
|
||||
subUserListTemp: [],
|
||||
teamList: [],
|
||||
totalAmount: 0,
|
||||
activeList: [],
|
||||
|
|
@ -150,7 +186,12 @@ export default {
|
|||
{ title: '临时人员', id: '2' },
|
||||
{ title: '暂退人员', id: '3' }
|
||||
],
|
||||
tempUserInfoList: []
|
||||
tempUserInfoList: [],
|
||||
personList: [],
|
||||
currentIndex: 0,
|
||||
fixedPersonList: [],
|
||||
tempPersonList: [],
|
||||
returnPersonList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -174,29 +215,102 @@ export default {
|
|||
// }
|
||||
|
||||
const res = await getSubUserInfoListApi(this.subQueryParams)
|
||||
// console.log('分包人员信息', res)
|
||||
this.subUserListAll = res.obj
|
||||
|
||||
console.log('人员数据---参数', this.subQueryParams)
|
||||
console.log('人员数据---', res)
|
||||
// 1.先存储所有人员
|
||||
this.subUserListAll = res.obj
|
||||
this.subUserList = []
|
||||
this.subUserListAll.forEach(e => {
|
||||
this.$set(e, 'isChecked', false)
|
||||
})
|
||||
|
||||
// 判断选择状态
|
||||
if (this.activeTypeList.length == 1) {
|
||||
const isActiveType = this.activeTypeList[0]
|
||||
|
||||
if (isActiveType === 1) {
|
||||
if (this.tempUserInfoList.length == 0) {
|
||||
this.subUserList = []
|
||||
// console.log('选择状态--')
|
||||
if (this.activeTypeList[0] === 1) {
|
||||
// 过滤已选择的数据
|
||||
if (this.subUserListTemp.length > 0) {
|
||||
// this.subUserList = this.subUserListTemp.filter(e => e.isAllChecked == true)
|
||||
this.subUserListAll.forEach(e => {
|
||||
this.subUserListTemp.forEach(j => {
|
||||
if (e.idNumber == j.idNumber) {
|
||||
this.subUserList.push(JSON.parse(JSON.stringify(j)))
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
this.subUserList = this.tempUserInfoList
|
||||
this.subUserList = []
|
||||
}
|
||||
}
|
||||
if (isActiveType === 2) {
|
||||
// 未选择
|
||||
if (this.activeTypeList[0] == 2) {
|
||||
console.log('查询未选择的数据')
|
||||
// 过滤未选择的数据
|
||||
// if (this.subUserListTemp.length > 0) {
|
||||
// this.subUserList = this.subUserListTemp.filter(e => e.isAllChecked == false)
|
||||
// }
|
||||
if (this.subUserListTemp.length > 0) {
|
||||
this.subUserListAll.forEach(e => {
|
||||
this.subUserListTemp.forEach(j => {
|
||||
if (e.idNumber != j.idNumber) {
|
||||
this.subUserList.push(JSON.parse(JSON.stringify(e)))
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
this.subUserList = JSON.parse(JSON.stringify(this.subUserListAll))
|
||||
}
|
||||
}
|
||||
this.subUserList = this.subUserListAll.slice(0, 10)
|
||||
this.totalAmount = res.obj.length
|
||||
} else {
|
||||
// 然后处理选中状态
|
||||
// if(this.subUserListTemp.length > 0) {
|
||||
// this.subUserListAll.forEach((e)=>{
|
||||
// his.subUserListTemp.forEach((j)=>{
|
||||
|
||||
// })
|
||||
// })
|
||||
// }
|
||||
|
||||
console.log('全部状态---')
|
||||
if (this.subUserListTemp.length == 0) {
|
||||
if (this.personList.length > 0) {
|
||||
this.subUserListAll.forEach(e => {
|
||||
if (this.personList[this.currentIndex].includes(e.idNumber)) {
|
||||
e.isChecked = true
|
||||
this.subUserListTemp.push(JSON.parse(JSON.stringify(e)))
|
||||
}
|
||||
})
|
||||
let tempArray = this.personList.filter((e, index) => index != this.currentIndex)
|
||||
if (tempArray.length > 0) {
|
||||
this.subUserList = []
|
||||
// this.subUserListTemp
|
||||
tempArray.forEach(e => {
|
||||
this.subUserListAll.forEach(j => {
|
||||
if (!e.includes(j.idNumber)) {
|
||||
// this.subUserList.push(j)
|
||||
this.subUserList.push(JSON.parse(JSON.stringify(j)))
|
||||
// this.subUserListTemp.push(JSON.parse(JSON.stringify(j)))
|
||||
}
|
||||
})
|
||||
})
|
||||
} else {
|
||||
this.subUserList = JSON.parse(JSON.stringify(this.subUserListAll))
|
||||
// this.subUserListTemp = JSON.parse(JSON.stringify(this.subUserListAll))
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.subUserListAll.forEach(e => {
|
||||
this.subUserListTemp.forEach(j => {
|
||||
if (e.idNumber == j.idNumber) {
|
||||
this.subUserList.push(JSON.parse(JSON.stringify(j)))
|
||||
} else {
|
||||
this.subUserList.push(JSON.parse(JSON.stringify(e)))
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
this.totalAmount = this.subUserList.length
|
||||
},
|
||||
onPagination(e) {
|
||||
this.subUserList = []
|
||||
|
|
@ -212,11 +326,22 @@ export default {
|
|||
this.subUserListAll.forEach(e => {
|
||||
if (e.idNumber == item.idNumber) {
|
||||
e.isChecked = !eisChecked
|
||||
|
||||
throw new Error()
|
||||
}
|
||||
})
|
||||
} catch (error) {}
|
||||
|
||||
this.subUserListTemp = []
|
||||
this.subUserList.forEach(e => {
|
||||
if (e.isChecked) {
|
||||
this.subUserListTemp.push(JSON.parse(JSON.stringify(e)))
|
||||
}
|
||||
})
|
||||
// if (this.subUserList.every(e => e.isChecked == true)) {
|
||||
// this.subUserListTemp = JSON.parse(JSON.stringify(this.subUserList))
|
||||
// } else {
|
||||
// this.subUserListTemp = []
|
||||
// }
|
||||
},
|
||||
async getUserTeamInfoList() {
|
||||
const res = await getUserTeamInfoListApi({ proName: this.subQueryParams.proName })
|
||||
|
|
@ -282,42 +407,81 @@ export default {
|
|||
},
|
||||
// 提交
|
||||
onUserSubmit() {
|
||||
const isSelect = this.subUserListAll.some(e => e.isChecked === true)
|
||||
|
||||
const isSelect = this.subUserList.some(e => e.isChecked === true)
|
||||
if (!isSelect) {
|
||||
uni.showToast({
|
||||
title: '请勾选人员数据',
|
||||
icon: 'none'
|
||||
})
|
||||
|
||||
return
|
||||
} else {
|
||||
const userInfo = this.subUserListAll.filter(e => e.isChecked === true)
|
||||
this.subUserList.forEach(e => {
|
||||
console.log('选择的每一项', e)
|
||||
|
||||
if (e.isChecked) {
|
||||
if (e.userState == 1) {
|
||||
// 固定人员
|
||||
this.fixedPersonList.push(e.name)
|
||||
}
|
||||
if (e.userState == 2) {
|
||||
// 临时人员
|
||||
this.tempPersonList.push(e.name)
|
||||
}
|
||||
if (e.userState == 3) {
|
||||
// 暂退人员
|
||||
this.returnPersonList.push(e.name)
|
||||
}
|
||||
}
|
||||
})
|
||||
this.$refs.popupPerson.open('center')
|
||||
}
|
||||
},
|
||||
onCancelBtn() {
|
||||
this.$refs.popupPerson.close()
|
||||
},
|
||||
onSubmitBtn() {
|
||||
const userInfo = this.subUserList.filter(e => e.isChecked === true)
|
||||
uni.navigateBack({
|
||||
delta: 1,
|
||||
success() {
|
||||
uni.$emit('updateUser', userInfo)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
// 全选
|
||||
onCheckBoxChangeAll() {
|
||||
this.subUserList.forEach(e => {
|
||||
e.isChecked = !e.isChecked
|
||||
})
|
||||
|
||||
if (this.subUserList.every(e => e.isChecked == true)) {
|
||||
this.subUserListTemp = JSON.parse(JSON.stringify(this.subUserList))
|
||||
} else {
|
||||
this.subUserListTemp = []
|
||||
}
|
||||
|
||||
// this.subUserListTemp.forEach(e => {
|
||||
// e.isChecked = !e.isChecked
|
||||
// })
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
this.subQueryParams.proName = options.proName
|
||||
|
||||
this.personList = JSON.parse(options.personList).personList
|
||||
|
||||
// console.log('options.index', options.index)
|
||||
this.currentIndex = options.index
|
||||
|
||||
// console.log('this.personList', options.personList, this.personList)
|
||||
this.getSubUserInfoList()
|
||||
this.getUserTeamInfoList()
|
||||
},
|
||||
computed: {
|
||||
onAlreadySelect() {
|
||||
let amount = 0
|
||||
if (this.subUserListAll.length > 0) {
|
||||
this.subUserListAll.forEach(e => {
|
||||
if (this.subUserList.length > 0) {
|
||||
this.subUserList.forEach(e => {
|
||||
if (e.isChecked) {
|
||||
amount++
|
||||
}
|
||||
|
|
@ -327,8 +491,18 @@ export default {
|
|||
},
|
||||
isAllChecked() {
|
||||
let isCheckedAll = false
|
||||
if (this.subUserListAll.length > 0) {
|
||||
isCheckedAll = this.subUserListAll.every(e => e.isChecked === true)
|
||||
if (this.subUserList.length > 0) {
|
||||
isCheckedAll = this.subUserList.every(e => e.isChecked === true)
|
||||
|
||||
// if (isCheckedAll) {
|
||||
// this.subUserListTemp.forEach(e => {
|
||||
// e.isChecked = true
|
||||
// })
|
||||
// } else {
|
||||
// this.subUserListTemp.forEach(e => {
|
||||
// e.isChecked = false
|
||||
// })
|
||||
// }
|
||||
}
|
||||
return isCheckedAll
|
||||
}
|
||||
|
|
@ -402,9 +576,12 @@ export default {
|
|||
border-top: none;
|
||||
view {
|
||||
padding: 15rpx 0;
|
||||
text-align: center;
|
||||
// text-align: center;
|
||||
border-left: 1px solid #ccc;
|
||||
font-size: 22rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
.tb-content-box view:first-child {
|
||||
|
|
@ -508,4 +685,64 @@ export default {
|
|||
color: #fff !important;
|
||||
}
|
||||
}
|
||||
|
||||
.popup-person {
|
||||
width: 90vw;
|
||||
background-color: #fff;
|
||||
|
||||
.title {
|
||||
padding: 26rpx;
|
||||
text-align: center;
|
||||
font-size: 36rpx;
|
||||
letter-spacing: 2rpx;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.info {
|
||||
padding: 20rpx;
|
||||
color: #c95645;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.title_1 {
|
||||
text-align: center;
|
||||
font-size: 28rpx;
|
||||
padding: 12rpx 0;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.person-list {
|
||||
height: 30vh;
|
||||
}
|
||||
.person-list view {
|
||||
padding: 8rpx 12rpx;
|
||||
|
||||
text {
|
||||
padding: 8rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.person-btn {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
padding: 16rpx 0;
|
||||
}
|
||||
.person-btn view {
|
||||
width: 138rpx;
|
||||
height: 58rpx;
|
||||
line-height: 58rpx;
|
||||
text-align: center;
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
|
||||
.person-btn view:first-child {
|
||||
background-color: #dfdfdf;
|
||||
color: #013678;
|
||||
}
|
||||
.person-btn view:last-child {
|
||||
margin-left: 32rpx;
|
||||
background-color: #013678;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@
|
|||
:name="f.name"
|
||||
:required="f.required"
|
||||
>
|
||||
<view @tap="onViewPerson(f.name, item)">
|
||||
<u--textarea
|
||||
v-if="f.items_type === 'area'"
|
||||
v-model="item[f.name]"
|
||||
|
|
@ -76,6 +77,7 @@
|
|||
autoHeight
|
||||
:disabled="editDisabled"
|
||||
></u--textarea>
|
||||
</view>
|
||||
<u--input
|
||||
v-if="f.items_type === 'ipt'"
|
||||
:type="f.isType ? f.isType : 'text'"
|
||||
|
|
@ -194,6 +196,19 @@
|
|||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
|
||||
<uni-popup ref="personRef" type="center">
|
||||
<view class="person-box">
|
||||
<view class="title">分包人员</view>
|
||||
<view class="person-list">
|
||||
<text v-for="item in personList" :key="item.idNumber">{{ item.name }}</text>
|
||||
</view>
|
||||
|
||||
<view class="submit-btn">
|
||||
<view @tap="onSubmitBtn">确定</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
|
@ -209,7 +224,8 @@ import {
|
|||
getAUditingProcessApi,
|
||||
getAUditingUserInfoApi,
|
||||
// setMonthPlanApi,
|
||||
setAuditingRejectApi
|
||||
setAuditingRejectApi,
|
||||
getPersonInfoApi
|
||||
} from '../../../api/workPlan/dayPlan'
|
||||
export default {
|
||||
data() {
|
||||
|
|
@ -225,6 +241,7 @@ export default {
|
|||
proId: '',
|
||||
planTime: ''
|
||||
},
|
||||
personList: [],
|
||||
btnList: [
|
||||
{ title: '修改', id: 1, type: 'compose', isShow: ['1', '3', '2'], isRoles: ['22', '23'] },
|
||||
{ title: '删除', id: 2, type: 'trash', isShow: ['1', '3', '2'], isRoles: ['22', '23'] },
|
||||
|
|
@ -621,6 +638,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
@ -768,6 +790,20 @@ export default {
|
|||
if (value === 0) {
|
||||
this.remarks = ''
|
||||
}
|
||||
},
|
||||
async onViewPerson(type, item) {
|
||||
console.log(type, item, '9999')
|
||||
|
||||
const res = await getPersonInfoApi({ contentId: item.contentId })
|
||||
console.log('人员信息--', res)
|
||||
this.personList = res.obj
|
||||
|
||||
if (type == 'rys') {
|
||||
this.$refs.personRef.open('center')
|
||||
}
|
||||
},
|
||||
onSubmitBtn() {
|
||||
this.$refs.personRef.close()
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -1064,4 +1100,36 @@ export default {
|
|||
color: #000;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.person-box {
|
||||
width: 90vw;
|
||||
background-color: #fff;
|
||||
.title {
|
||||
font-size: 38rpx;
|
||||
padding: 20rpx 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.person-list {
|
||||
padding: 15rpx 26rpx;
|
||||
|
||||
text {
|
||||
padding: 0 6rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.submit-btn {
|
||||
padding-bottom: 18rpx;
|
||||
}
|
||||
|
||||
.submit-btn view {
|
||||
margin: 0 auto;
|
||||
width: 180rpx;
|
||||
height: 78rpx;
|
||||
line-height: 78rpx;
|
||||
text-align: center;
|
||||
border-radius: 16rpx;
|
||||
color: #fff;
|
||||
background-color: #003778;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -641,6 +641,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@
|
|||
:name="f.name"
|
||||
:required="f.required"
|
||||
>
|
||||
<view @tap="onViewPerson(f.name, item)">
|
||||
<u--textarea
|
||||
v-if="f.items_type === 'area'"
|
||||
v-model="item[f.name]"
|
||||
|
|
@ -59,6 +60,7 @@
|
|||
autoHeight
|
||||
:disabled="editDisabled"
|
||||
></u--textarea>
|
||||
</view>
|
||||
<u--input
|
||||
v-if="f.items_type === 'ipt'"
|
||||
:type="f.isType ? f.isType : 'text'"
|
||||
|
|
@ -169,6 +171,19 @@
|
|||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
|
||||
<uni-popup ref="personRef" type="center">
|
||||
<view class="person-box">
|
||||
<view class="title">分包人员</view>
|
||||
<view class="person-list">
|
||||
<text v-for="item in personList" :key="item.idNumber">{{ item.name }}</text>
|
||||
</view>
|
||||
|
||||
<view class="submit-btn">
|
||||
<view @tap="onSubmitBtn">确定</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
|
@ -183,7 +198,8 @@ import {
|
|||
updateInfPlanContentApi,
|
||||
getAUditingProcessApi,
|
||||
getAUditingUserInfoApi,
|
||||
setMonthPlanApi
|
||||
setMonthPlanApi,
|
||||
getPersonInfoApi
|
||||
} from '../../../api/workPlan/dayPlan'
|
||||
export default {
|
||||
data() {
|
||||
|
|
@ -311,7 +327,8 @@ export default {
|
|||
}
|
||||
],
|
||||
searchUserName: '',
|
||||
auditingUserList: []
|
||||
auditingUserList: [],
|
||||
personList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -518,6 +535,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
@ -590,6 +612,20 @@ export default {
|
|||
}
|
||||
|
||||
return isShowBtn
|
||||
},
|
||||
async onViewPerson(type, item) {
|
||||
console.log(type, item, '9999')
|
||||
|
||||
const res = await getPersonInfoApi({ contentId: item.contentId })
|
||||
console.log('人员信息--', res)
|
||||
this.personList = res.obj
|
||||
|
||||
if (type == 'rys') {
|
||||
this.$refs.personRef.open('center')
|
||||
}
|
||||
},
|
||||
onSubmitBtn() {
|
||||
this.$refs.personRef.close()
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -868,4 +904,37 @@ export default {
|
|||
color: #000;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
|
||||
.person-box {
|
||||
width: 90vw;
|
||||
background-color: #fff;
|
||||
.title {
|
||||
font-size: 38rpx;
|
||||
padding: 20rpx 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.person-list {
|
||||
padding: 15rpx 26rpx;
|
||||
|
||||
text {
|
||||
padding: 0 6rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.submit-btn {
|
||||
padding-bottom: 18rpx;
|
||||
}
|
||||
|
||||
.submit-btn view {
|
||||
margin: 0 auto;
|
||||
width: 180rpx;
|
||||
height: 78rpx;
|
||||
line-height: 78rpx;
|
||||
text-align: center;
|
||||
border-radius: 16rpx;
|
||||
color: #fff;
|
||||
background-color: #003778;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -539,6 +539,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
|
|||
|
|
@ -1369,6 +1369,8 @@ export default {
|
|||
month: this.DateValue
|
||||
}
|
||||
const res = await getIsPlanApi(params)
|
||||
|
||||
console.log('计划是否存在', res)
|
||||
if (res.res == 0) {
|
||||
uni.showToast({
|
||||
title: '计划已存在,请重新选择!',
|
||||
|
|
|
|||
|
|
@ -644,6 +644,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
|
|||
|
|
@ -595,6 +595,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
|
|||
|
|
@ -544,6 +544,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
|
|||
|
|
@ -354,7 +354,7 @@ export default {
|
|||
time: '',
|
||||
auditingResult: '',
|
||||
imgSrcIndex: 0,
|
||||
auditingInfo: [],
|
||||
auditingInfo: [{ operateTime: '', operateUser: '', operateResult: '' }],
|
||||
imgSrcList: ['../../../static/images/workPlan/xmb_dd.png', ' ', '../../../static/images/workPlan/xmb_tg.png']
|
||||
},
|
||||
{
|
||||
|
|
@ -648,6 +648,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
isSHowBtn(item) {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<view class="month-container">
|
||||
<u-navbar
|
||||
class="u-navbar"
|
||||
title="基建涉网计划"
|
||||
title="生产涉网计划"
|
||||
placeholder
|
||||
@leftClick="leftClick"
|
||||
leftIconColor="#fff"
|
||||
|
|
|
|||
|
|
@ -604,6 +604,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
|
|||
|
|
@ -719,6 +719,12 @@ export default {
|
|||
wztj: {
|
||||
rules: [{ required: true, errorMessage: '请选择甲、乙供物资到货是否满足作业条件' }]
|
||||
},
|
||||
jjtj: {
|
||||
rules: [{ required: true, errorMessage: '请选择施工机具是否满足作业条件' }]
|
||||
},
|
||||
jktj: {
|
||||
rules: [{ required: true, errorMessage: '请选择视频监控是否满足作业条件' }]
|
||||
},
|
||||
jks: {
|
||||
rules: [{ required: true, errorMessage: '请填写投入监控设备数(台)' }]
|
||||
},
|
||||
|
|
@ -801,6 +807,26 @@ export default {
|
|||
{ value: '0', text: '否' }
|
||||
]
|
||||
},
|
||||
{
|
||||
form_label: '施工机具是否满足作业条件',
|
||||
items_type: 'sel',
|
||||
options: [
|
||||
{ value: '1', text: '是' },
|
||||
{ value: '0', text: '否' }
|
||||
],
|
||||
required: true,
|
||||
name: 'jjtj'
|
||||
},
|
||||
{
|
||||
form_label: '视频监控是否满足作业条件',
|
||||
items_type: 'sel',
|
||||
options: [
|
||||
{ value: '1', text: '是' },
|
||||
{ value: '0', text: '否' }
|
||||
],
|
||||
required: true,
|
||||
name: 'jktj'
|
||||
},
|
||||
{ form_label: '投入监控设备数(台)', items_type: 'ipt', required: true, name: 'jks', isType: 'number' },
|
||||
{ form_label: '公司职工人数', items_type: 'ipt', required: true, name: 'zgs', isType: 'number' },
|
||||
{ form_label: '分包人员人数', items_type: 'ipt', required: true, name: 'fbrys', isType: 'number' },
|
||||
|
|
|
|||
|
|
@ -859,7 +859,7 @@ export default {
|
|||
{ form_label: '投入车辆(辆)', items_type: 'ipt', required: true, name: 'cls' },
|
||||
{ form_label: '开始时间', items_type: 'date', required: true, name: 'kssj' },
|
||||
{ form_label: '结束时间', items_type: 'date', required: true, name: 'jssj' },
|
||||
{ form_label: '典型中高风险分部分项公工程', items_type: 'ipt', required: false, name: 'fxgc' },
|
||||
{ form_label: '典型中高风险分部分项工程', items_type: 'ipt', required: false, name: 'fxgc' },
|
||||
{ form_label: '开始时间', items_type: 'date', required: false, name: 'fxkssj' },
|
||||
{ form_label: '结束时间', items_type: 'date', required: false, name: 'fxjssj' },
|
||||
{ form_label: '作业地点', items_type: 'area', required: false, name: 'fxgzdd' }
|
||||
|
|
|
|||
|
|
@ -656,6 +656,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
|
|||
|
|
@ -686,6 +686,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
|
|||
|
|
@ -556,6 +556,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
|
|||
|
|
@ -586,6 +586,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
|
|||
|
|
@ -642,6 +642,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
|
|||
|
|
@ -739,6 +739,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
|
|||
|
|
@ -631,6 +631,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
|
|||
|
|
@ -642,6 +642,11 @@ export default {
|
|||
}
|
||||
}
|
||||
})
|
||||
this.processList.forEach(e => {
|
||||
if (e.auditingInfo.length > 1) {
|
||||
e.auditingInfo = e.auditingInfo.splice(-1, 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/* 复选框事件 */
|
||||
|
|
|
|||
Loading…
Reference in New Issue