572 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
		
		
			
		
	
	
			572 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| 
								 | 
							
								<template>
							 | 
						||
| 
								 | 
							
									<view class="page-wrap">
							 | 
						||
| 
								 | 
							
										<view class="card">
							 | 
						||
| 
								 | 
							
											<uni-card margin="0" :is-shadow="true">
							 | 
						||
| 
								 | 
							
												<u--form labelPosition="left" labelWidth="auto" labelAlign="center" :model="dataModel" :rules="rules"
							 | 
						||
| 
								 | 
							
													ref="wForm" errorType="border-bottom">
							 | 
						||
| 
								 | 
							
													<u-form-item label="审核意见:" prop="CONTEXT" borderBottom v-if="dataModel.IS_PUBLISH==9">
							 | 
						||
| 
								 | 
							
													</u-form-item>
							 | 
						||
| 
								 | 
							
													<u--textarea v-html="dataModel.CONTEXT" border="surround" v-if="dataModel.IS_PUBLISH==9"
							 | 
						||
| 
								 | 
							
														disabled></u--textarea>
							 | 
						||
| 
								 | 
							
													<u-form-item label="编号" prop="CODE" borderBottom>
							 | 
						||
| 
								 | 
							
														<u--input v-model="dataModel.CODE" disabled  border="none" disabledColor="#ffffff"
							 | 
						||
| 
								 | 
							
															inputAlign="right"></u--input>
							 | 
						||
| 
								 | 
							
													</u-form-item>
							 | 
						||
| 
								 | 
							
													<u-form-item label="发起人" prop="userName" borderBottom>
							 | 
						||
| 
								 | 
							
														<u--input v-model="dataModel.Nav_CreateUser.NAME" disabled  border="none" disabledColor="#ffffff"
							 | 
						||
| 
								 | 
							
															inputAlign="right"></u--input>
							 | 
						||
| 
								 | 
							
													</u-form-item>
							 | 
						||
| 
								 | 
							
													<u-form-item label="发起时间" prop="CREATE_TIME" borderBottom>
							 | 
						||
| 
								 | 
							
														<u--input v-model="dataModel.CREATE_TIME" disabled  border="none" disabledColor="#ffffff"
							 | 
						||
| 
								 | 
							
															inputAlign="right"></u--input>
							 | 
						||
| 
								 | 
							
													</u-form-item>
							 | 
						||
| 
								 | 
							
													
							 | 
						||
| 
								 | 
							
												</u--form>
							 | 
						||
| 
								 | 
							
											</uni-card>
							 | 
						||
| 
								 | 
							
										</view>
							 | 
						||
| 
								 | 
							
										<u-sticky offset-top="20">
							 | 
						||
| 
								 | 
							
											<view class="sub-form">
							 | 
						||
| 
								 | 
							
												<view class="sub-form-wrap">
							 | 
						||
| 
								 | 
							
													<view class="sub-form-btns">
							 | 
						||
| 
								 | 
							
														<view class="sub-form-btn" @click="handleAdd">
							 | 
						||
| 
								 | 
							
															<u-icon class="icon" name="plus-circle" color="#3c9cff" size="21"></u-icon>
							 | 
						||
| 
								 | 
							
															<u--text type="primary" text="增加作业人员"></u--text>
							 | 
						||
| 
								 | 
							
														</view>
							 | 
						||
| 
								 | 
							
													</view>
							 | 
						||
| 
								 | 
							
													<u--form labelPosition="left" labelWidth="auto" labelAlign="center" errorType="border-bottom"
							 | 
						||
| 
								 | 
							
														ref="sForm1">
							 | 
						||
| 
								 | 
							
														<uni-collapse accordion>
							 | 
						||
| 
								 | 
							
															<uni-card style="margin-bottom: 16px;" margin="0" spacing="0" :is-shadow="false"
							 | 
						||
| 
								 | 
							
																v-for="(item, index) in dataModel.Nav_AnalysisPerson">
							 | 
						||
| 
								 | 
							
																<uni-collapse-item title-border="none" :show-arrow="false" :border="false" :open="true">
							 | 
						||
| 
								 | 
							
																	<view slot="title" class="custom-collapse-title">
							 | 
						||
| 
								 | 
							
																		<view class="down">
							 | 
						||
| 
								 | 
							
																			<uni-icons type="bottom"></uni-icons>
							 | 
						||
| 
								 | 
							
																		</view>
							 | 
						||
| 
								 | 
							
																		<view class="text">{{index + 1 + '. ' +item.Nav_User.NAME}}</view>
							 | 
						||
| 
								 | 
							
																		<view class="action" @click.stop>
							 | 
						||
| 
								 | 
							
																			<u-icon @click="handleDelRowBefore(index)" class="icon" name="trash" color="#ff4d4f" size="21"></u-icon>
							 | 
						||
| 
								 | 
							
																		</view>
							 | 
						||
| 
								 | 
							
																	</view>
							 | 
						||
| 
								 | 
							
																	<u-form-item label="人员姓名" prop="personName" borderBottom
							 | 
						||
| 
								 | 
							
																		@click="handleChangeUser(item['Nav_User'])">
							 | 
						||
| 
								 | 
							
																		<u--input disabled disabledColor="#fff" v-model="item['Nav_User'].NAME"
							 | 
						||
| 
								 | 
							
																			placeholder="请选择人员姓名" border="none" inputAlign="right"></u--input>
							 | 
						||
| 
								 | 
							
																		<u-icon style="margin-left: 4px;" slot="right" name="arrow-down">
							 | 
						||
| 
								 | 
							
																		</u-icon>
							 | 
						||
| 
								 | 
							
																	</u-form-item>
							 | 
						||
| 
								 | 
							
																	<u-form-item label="人员编号" prop="personNo" borderBottom>
							 | 
						||
| 
								 | 
							
																		<u--input disabled disabledColor="#fff" v-model="item['Nav_User'].CODE"
							 | 
						||
| 
								 | 
							
																			border="none" inputAlign="right"></u--input>
							 | 
						||
| 
								 | 
							
																	</u-form-item>
							 | 
						||
| 
								 | 
							
																	<!-- <u-form-item>
							 | 
						||
| 
								 | 
							
																		<button type="primary" style="height: 100%;background-color: darkorange;width: 60%;font-size:12px"
							 | 
						||
| 
								 | 
							
																			@click="handleDelRowBefore(index)">删除</button>
							 | 
						||
| 
								 | 
							
																	</u-form-item> -->
							 | 
						||
| 
								 | 
							
																</uni-collapse-item>
							 | 
						||
| 
								 | 
							
															</uni-card>
							 | 
						||
| 
								 | 
							
														</uni-collapse>
							 | 
						||
| 
								 | 
							
													</u--form>
							 | 
						||
| 
								 | 
							
												</view>
							 | 
						||
| 
								 | 
							
											</view>
							 | 
						||
| 
								 | 
							
										</u-sticky>
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										<u-sticky offset-top="20">
							 | 
						||
| 
								 | 
							
											<view class="sub-form">
							 | 
						||
| 
								 | 
							
												<view class="sub-form-wrap">
							 | 
						||
| 
								 | 
							
													<view class="sub-form-btns">
							 | 
						||
| 
								 | 
							
														<view class="sub-form-btn">
							 | 
						||
| 
								 | 
							
															<!-- <u-icon class="icon" name="plus-circle" color="#3c9cff" size="21"></u-icon> -->
							 | 
						||
| 
								 | 
							
															<u--text type="primary" text="任务分析"></u--text>
							 | 
						||
| 
								 | 
							
														</view>
							 | 
						||
| 
								 | 
							
													</view>
							 | 
						||
| 
								 | 
							
													<u--form labelPosition="left" labelWidth="auto" labelAlign="center" errorType="border-bottom"
							 | 
						||
| 
								 | 
							
														ref="sForm2">
							 | 
						||
| 
								 | 
							
														<uni-collapse accordion>
							 | 
						||
| 
								 | 
							
															<uni-card style="margin-bottom: 16px;" margin="0" spacing="0" :is-shadow="false"
							 | 
						||
| 
								 | 
							
																v-for="(item, index) in dataModel.Nav_Details">
							 | 
						||
| 
								 | 
							
																<uni-collapse-item title-border="none" :show-arrow="false" :border="false" :open="true">
							 | 
						||
| 
								 | 
							
																	<view slot="title" class="custom-collapse-title">
							 | 
						||
| 
								 | 
							
																		<view class="down">
							 | 
						||
| 
								 | 
							
																			<uni-icons type="bottom"></uni-icons>
							 | 
						||
| 
								 | 
							
																		</view>
							 | 
						||
| 
								 | 
							
																		<view class="text">{{index + 1 + '. ' +item['Nav_OperationStep'].NAME}}</view>
							 | 
						||
| 
								 | 
							
																		<!-- <view class="action" @click.stop>
							 | 
						||
| 
								 | 
							
																			<u-icon @click="handleDelRowBefore(index)" class="icon" name="trash" color="#ff4d4f" size="21"></u-icon>
							 | 
						||
| 
								 | 
							
																		</view> -->
							 | 
						||
| 
								 | 
							
																	</view>
							 | 
						||
| 
								 | 
							
																	<u-form-item label="作业名称" prop="OperationStepName" borderBottom>
							 | 
						||
| 
								 | 
							
																		<u--input disabled disabledColor="#fff" v-model="item['Nav_OperationStep'].NAME"
							 | 
						||
| 
								 | 
							
																							border="none" inputAlign="right"></u--input>
							 | 
						||
| 
								 | 
							
																		
							 | 
						||
| 
								 | 
							
																	</u-form-item>
							 | 
						||
| 
								 | 
							
																	<u-form-item label="作业周期" prop="CYCLE_TYPE_SHOW" borderBottom>
							 | 
						||
| 
								 | 
							
																		<u--input disabled disabledColor="#fff" v-model="item.CYCLE_TYPE_SHOW"
							 | 
						||
| 
								 | 
							
																							border="none" inputAlign="right"></u--input>
							 | 
						||
| 
								 | 
							
																		
							 | 
						||
| 
								 | 
							
																	</u-form-item>
							 | 
						||
| 
								 | 
							
																	<u-form-item label="许可审批层级" prop="AUDIT_LEVEL_SHOW" borderBottom 
							 | 
						||
| 
								 | 
							
																	@click="handleShowSheet({title: '许可审批层级', name: 'AUDIT_LEVEL', dataIndex: index})">
							 | 
						||
| 
								 | 
							
																		<u--input v-model="item.AUDIT_LEVEL_SHOW"
							 | 
						||
| 
								 | 
							
																							border="none" inputAlign="right"></u--input>
							 | 
						||
| 
								 | 
							
																		<u-icon style="margin-left: 4px;" slot="right" name="arrow-down">
							 | 
						||
| 
								 | 
							
																		</u-icon>
							 | 
						||
| 
								 | 
							
																	</u-form-item>
							 | 
						||
| 
								 | 
							
																	<u-form-item label="作业前安全确认" prop="SafeConfirmsStr" borderBottom>
							 | 
						||
| 
								 | 
							
																	</u-form-item>
							 | 
						||
| 
								 | 
							
																	<u--textarea v-model="item.SafeConfirmsStr"
							 | 
						||
| 
								 | 
							
																						border="none" inputAlign="right"></u--textarea>
							 | 
						||
| 
								 | 
							
																	<u-form-item label="作业流程及安全措施" prop="SafeMeasuresStr" borderBottom>
							 | 
						||
| 
								 | 
							
																	</u-form-item>
							 | 
						||
| 
								 | 
							
																	<u--textarea v-model="item.SafeMeasuresStr"
							 | 
						||
| 
								 | 
							
																						border="none" inputAlign="right"></u--textarea>
							 | 
						||
| 
								 | 
							
																	<u-form-item label="作业后处理措施" prop="DealMeasuresStr" borderBottom>
							 | 
						||
| 
								 | 
							
																	</u-form-item>
							 | 
						||
| 
								 | 
							
																	<u--textarea v-model="item.DealMeasuresStr"
							 | 
						||
| 
								 | 
							
																						border="none" inputAlign="right"></u--textarea>
							 | 
						||
| 
								 | 
							
																	<u-form-item label="许可类别" prop="WorkPermitType" borderBottom
							 | 
						||
| 
								 | 
							
																	@click="handleShowSheet({title: '许可类别', name: 'WorkPermitType', dataIndex: index})">
							 | 
						||
| 
								 | 
							
																		<u--input v-model="item['Nav_WorkPermitType'].NAME"
							 | 
						||
| 
								 | 
							
																							border="none" inputAlign="right"></u--input>
							 | 
						||
| 
								 | 
							
																		<u-icon style="margin-left: 4px;" slot="right" name="arrow-down">
							 | 
						||
| 
								 | 
							
																		</u-icon>
							 | 
						||
| 
								 | 
							
																	</u-form-item>
							 | 
						||
| 
								 | 
							
																	<view class="upload-title">附件</view>
							 | 
						||
| 
								 | 
							
																	<full-upload v-model="item.Nav_Files"></full-upload>
							 | 
						||
| 
								 | 
							
																	<!-- <u-form-item>
							 | 
						||
| 
								 | 
							
																		<button type="primary" style="height: 100%;background-color: darkorange;width: 60%;font-size:12px"
							 | 
						||
| 
								 | 
							
																			@click="handleDelRowBefore(index)">删除</button>
							 | 
						||
| 
								 | 
							
																	</u-form-item> -->
							 | 
						||
| 
								 | 
							
																</uni-collapse-item>
							 | 
						||
| 
								 | 
							
															</uni-card>
							 | 
						||
| 
								 | 
							
														</uni-collapse>
							 | 
						||
| 
								 | 
							
													</u--form>
							 | 
						||
| 
								 | 
							
												</view>
							 | 
						||
| 
								 | 
							
											</view>
							 | 
						||
| 
								 | 
							
										</u-sticky>
							 | 
						||
| 
								 | 
							
										<u-modal :show="showDelModalIndex >= 0" @confirm="confirmDel" title="确认删除?"></u-modal>
							 | 
						||
| 
								 | 
							
										<u-picker :show="comPickerInfo.showSheet" :columns="comPickerInfo.columns" @confirm="onConfirmPicker"
							 | 
						||
| 
								 | 
							
											@close="closePicker" @cancel="closePicker" keyName="NAME"></u-picker>
							 | 
						||
| 
								 | 
							
										<query-selector :show="showPopup" :total="curTotal" :lists="userLists" :defaultValue="currentOperateUser.NAME"
							 | 
						||
| 
								 | 
							
											@close="handleClosePopup" @search="handleSearchUser" @select="handleSelectedUser" />
							 | 
						||
| 
								 | 
							
										<view class="bottom-button">
							 | 
						||
| 
								 | 
							
											<button type="primary" @click="submit">提交</button>
							 | 
						||
| 
								 | 
							
										</view>
							 | 
						||
| 
								 | 
							
									</view>
							 | 
						||
| 
								 | 
							
								</template>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<script>
							 | 
						||
| 
								 | 
							
									import {
							 | 
						||
| 
								 | 
							
										mapState,
							 | 
						||
| 
								 | 
							
										mapMutations
							 | 
						||
| 
								 | 
							
									} from 'vuex'
							 | 
						||
| 
								 | 
							
									import {
							 | 
						||
| 
								 | 
							
										extendFilterGroup,
							 | 
						||
| 
								 | 
							
										extendGroupRule,
							 | 
						||
| 
								 | 
							
										extendInclude,
							 | 
						||
| 
								 | 
							
										extendOrder,
							 | 
						||
| 
								 | 
							
										extendRule,
							 | 
						||
| 
								 | 
							
										guid,
							 | 
						||
| 
								 | 
							
										initFilter,
							 | 
						||
| 
								 | 
							
										initFilterGroup,
							 | 
						||
| 
								 | 
							
										extendIgnoreDataRule
							 | 
						||
| 
								 | 
							
									} from '../../../../utils/common'
							 | 
						||
| 
								 | 
							
									import {
							 | 
						||
| 
								 | 
							
										getLicenseGet,
							 | 
						||
| 
								 | 
							
										getLicenseSign,
							 | 
						||
| 
								 | 
							
										getWorkPermitTypeLists,
							 | 
						||
| 
								 | 
							
										saveLicenseRecord
							 | 
						||
| 
								 | 
							
									} from '../../../../services/apply/HMServices/HMServices.js'
							 | 
						||
| 
								 | 
							
									import {
							 | 
						||
| 
								 | 
							
										getUserLists,
							 | 
						||
| 
								 | 
							
									} from '../../../../services/apply/FOServices/FOServices.js'
							 | 
						||
| 
								 | 
							
									import config from '../../../../config/common'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									export default {
							 | 
						||
| 
								 | 
							
										data() {
							 | 
						||
| 
								 | 
							
											return {
							 | 
						||
| 
								 | 
							
												ID:null,
							 | 
						||
| 
								 | 
							
												TaskID:null,
							 | 
						||
| 
								 | 
							
												tableKey:0,
							 | 
						||
| 
								 | 
							
												curTotal: 0,
							 | 
						||
| 
								 | 
							
												isLoadOK :false,
							 | 
						||
| 
								 | 
							
												showDelModalIndex: undefined,
							 | 
						||
| 
								 | 
							
												userLists: [],
							 | 
						||
| 
								 | 
							
												dataModel: {
							 | 
						||
| 
								 | 
							
													CODE:'',
							 | 
						||
| 
								 | 
							
													Nav_AnalysisPerson:[],
							 | 
						||
| 
								 | 
							
													Nav_CreateUser:[],
							 | 
						||
| 
								 | 
							
												},
							 | 
						||
| 
								 | 
							
												subDataModel: {
							 | 
						||
| 
								 | 
							
													Nav_AnalysisPerson:{
							 | 
						||
| 
								 | 
							
														Nav_User: {
							 | 
						||
| 
								 | 
							
															NAME: '',
							 | 
						||
| 
								 | 
							
															CODE: '',
							 | 
						||
| 
								 | 
							
														},
							 | 
						||
| 
								 | 
							
													},
							 | 
						||
| 
								 | 
							
													Nav_Details:{
							 | 
						||
| 
								 | 
							
														CYCLE_TYPE:0,
							 | 
						||
| 
								 | 
							
														CYCLE_TYPE_SHOW:"需求作业",
							 | 
						||
| 
								 | 
							
														AUDIT_LEVEL:0,
							 | 
						||
| 
								 | 
							
														AUDIT_LEVEL_SHOW:"无审批层级",
							 | 
						||
| 
								 | 
							
														Nav_WorkPermitType:{NAME:''},
							 | 
						||
| 
								 | 
							
														Nav_OperationStep:{NAME:''},
							 | 
						||
| 
								 | 
							
														Nav_Files:[]
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
												},
							 | 
						||
| 
								 | 
							
												options: [{
							 | 
						||
| 
								 | 
							
													text: '删除',
							 | 
						||
| 
								 | 
							
													style: {
							 | 
						||
| 
								 | 
							
														backgroundColor: '#f56c6c'
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
												}],
							 | 
						||
| 
								 | 
							
												comPickerInfo: {
							 | 
						||
| 
								 | 
							
													showSheet: false,
							 | 
						||
| 
								 | 
							
													columns: [],
							 | 
						||
| 
								 | 
							
													title: '',
							 | 
						||
| 
								 | 
							
													dataIndex: undefined,
							 | 
						||
| 
								 | 
							
													formIndex: undefined,
							 | 
						||
| 
								 | 
							
													name: ''
							 | 
						||
| 
								 | 
							
												},
							 | 
						||
| 
								 | 
							
												currentOperateUser: {},
							 | 
						||
| 
								 | 
							
												showPopup: false,
							 | 
						||
| 
								 | 
							
												rules: {
							 | 
						||
| 
								 | 
							
													'CODE': {
							 | 
						||
| 
								 | 
							
														type: 'string',
							 | 
						||
| 
								 | 
							
														required: true,
							 | 
						||
| 
								 | 
							
														trigger: ['blur', 'change']
							 | 
						||
| 
								 | 
							
													},
							 | 
						||
| 
								 | 
							
												},
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										onLoad(opt) {
							 | 
						||
| 
								 | 
							
											this.handleGetLicenseGet(opt)
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										methods: {
							 | 
						||
| 
								 | 
							
											handleGetLicenseGet(opt) {
							 | 
						||
| 
								 | 
							
												this.TaskID = opt.taskID ? opt.taskID : null;
							 | 
						||
| 
								 | 
							
												this.ID = opt.ID ? opt.ID : null;
							 | 
						||
| 
								 | 
							
												const orgId = uni.getStorageSync('orgId')
							 | 
						||
| 
								 | 
							
												const json = initFilter(orgId, "", "")
							 | 
						||
| 
								 | 
							
												 extendRule(json, 'ID', 1, opt.ID)
							 | 
						||
| 
								 | 
							
												// TODO: id 未获取
							 | 
						||
| 
								 | 
							
												getLicenseGet(json).then(res => {
							 | 
						||
| 
								 | 
							
													this.dataModel = res.Data
							 | 
						||
| 
								 | 
							
													// //数据组装
							 | 
						||
| 
								 | 
							
													// let strUserFiles = [{
							 | 
						||
| 
								 | 
							
													// 	url: '',
							 | 
						||
| 
								 | 
							
													// 	name:''
							 | 
						||
| 
								 | 
							
													// }]
							 | 
						||
| 
								 | 
							
													// if (res.Data.Nav_AnalyzeFiles && res.Data.Nav_AnalyzeFiles.length > 0) {
							 | 
						||
| 
								 | 
							
													// 	for (let i = 0; i < res.Data.Nav_AnalyzeFiles.length; i++) {
							 | 
						||
| 
								 | 
							
													// 		strUserFiles.push({
							 | 
						||
| 
								 | 
							
													// 			url: config.uni_app_web_local_api_url+res.Data.Nav_AnalyzeFiles[i].Nav_ImgFile.Nav_File.FILE_PATH,
							 | 
						||
| 
								 | 
							
													// 			name:res.Data.Nav_AnalyzeFiles[i].Nav_ImgFile.FILE_NAME
							 | 
						||
| 
								 | 
							
													// 		})
							 | 
						||
| 
								 | 
							
													// 	}
							 | 
						||
| 
								 | 
							
													// }
							 | 
						||
| 
								 | 
							
													// //数据组装
							 | 
						||
| 
								 | 
							
													// let strUserName = ''
							 | 
						||
| 
								 | 
							
													// if (res.Data.Nav_Users && res.Data.Nav_Users.length > 0) {
							 | 
						||
| 
								 | 
							
													// 	for (let i = 0; i < res.Data.Nav_Users.length; i++) {
							 | 
						||
| 
								 | 
							
													// 		if (res.Data.Nav_Users[i].DEAL_STATUS == 0) {
							 | 
						||
| 
								 | 
							
													// 			strUserName += (strUserName.length > 0 ? "  " : "") + "<text style='color:red'>" +
							 | 
						||
| 
								 | 
							
													// 				res.Data.Nav_Users[i].Nav_User.NAME + "</text>";
							 | 
						||
| 
								 | 
							
													// 		} else {
							 | 
						||
| 
								 | 
							
													// 			let user=res.Data.Nav_Users[i].USER_ID!=null?res.Data.Nav_Users[i].Nav_User.NAME:'';
							 | 
						||
| 
								 | 
							
													// 			strUserName += (strUserName.length > 0 ? "  " : "") + user;
							 | 
						||
| 
								 | 
							
													// 		}
							 | 
						||
| 
								 | 
							
													
							 | 
						||
| 
								 | 
							
													// 	}
							 | 
						||
| 
								 | 
							
													// }
							 | 
						||
| 
								 | 
							
													if (res.Data.Nav_Details && res.Data.Nav_Details.length > 0) {
							 | 
						||
| 
								 | 
							
														for (let i = 0; i < res.Data.Nav_Details.length; i++) {
							 | 
						||
| 
								 | 
							
															if (res.Data.Nav_Details[i].CYCLE_TYPE == 0) {
							 | 
						||
| 
								 | 
							
																res.Data.Nav_Details[i].CYCLE_TYPE_SHOW = "需求作业"
							 | 
						||
| 
								 | 
							
															} else {
							 | 
						||
| 
								 | 
							
																res.Data.Nav_Details[i].CYCLE_TYPE_SHOW="每日作业"
							 | 
						||
| 
								 | 
							
															}
							 | 
						||
| 
								 | 
							
															if (res.Data.Nav_Details[i].AUDIT_LEVEL == 0) {
							 | 
						||
| 
								 | 
							
																res.Data.Nav_Details[i].AUDIT_LEVEL_SHOW = "无审批层级"
							 | 
						||
| 
								 | 
							
															} else if(res.Data.Nav_Details[i].AUDIT_LEVEL == 1){
							 | 
						||
| 
								 | 
							
																res.Data.Nav_Details[i].AUDIT_LEVEL_SHOW="一级审批"
							 | 
						||
| 
								 | 
							
															}else if(res.Data.Nav_Details[i].AUDIT_LEVEL == 2){
							 | 
						||
| 
								 | 
							
																res.Data.Nav_Details[i].AUDIT_LEVEL_SHOW="二级审批"
							 | 
						||
| 
								 | 
							
															}else if(res.Data.Nav_Details[i].AUDIT_LEVEL == 3){
							 | 
						||
| 
								 | 
							
																res.Data.Nav_Details[i].AUDIT_LEVEL_SHOW="三级审批"
							 | 
						||
| 
								 | 
							
															}else if(res.Data.Nav_Details[i].AUDIT_LEVEL == 4){
							 | 
						||
| 
								 | 
							
																res.Data.Nav_Details[i].AUDIT_LEVEL_SHOW="四级审批"
							 | 
						||
| 
								 | 
							
															}
							 | 
						||
| 
								 | 
							
															
							 | 
						||
| 
								 | 
							
															if(res.Data.Nav_Details[i].WORK_PERMIT_TYPE_ID ===null)
							 | 
						||
| 
								 | 
							
															{
							 | 
						||
| 
								 | 
							
																res.Data.Nav_Details[i].Nav_WorkPermitType={CODE:'',NAME:''}
							 | 
						||
| 
								 | 
							
															}
							 | 
						||
| 
								 | 
							
														}
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													// this.dataModel.UserNames = strUserName
							 | 
						||
| 
								 | 
							
													// this.dataModel.UserFiles = strUserFiles
							 | 
						||
| 
								 | 
							
													this.isLoadOK = true
							 | 
						||
| 
								 | 
							
												})
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											handleDelRowBefore(index) {
							 | 
						||
| 
								 | 
							
												this.showDelModalIndex = index
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											confirmDel() {
							 | 
						||
| 
								 | 
							
												this.dataModel.Nav_AnalysisPerson.splice(this.showDelModalIndex, 1)
							 | 
						||
| 
								 | 
							
												this.showDelModalIndex = undefined
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											handleAdd() {
							 | 
						||
| 
								 | 
							
												const identifyUser = JSON.parse(JSON.stringify(this.subDataModel.Nav_AnalysisPerson))
							 | 
						||
| 
								 | 
							
												this.dataModel.Nav_AnalysisPerson.unshift(identifyUser)
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											handleSearchUser(val, pageIndex) {
							 | 
						||
| 
								 | 
							
												const orgId = uni.getStorageSync('orgId')
							 | 
						||
| 
								 | 
							
												const json = initFilter(orgId, "", "NAME", '', pageIndex)
							 | 
						||
| 
								 | 
							
												extendInclude(json, "Nav_Department")
							 | 
						||
| 
								 | 
							
												extendRule(json, 'ENABLE_STATUS', 1, '0')
							 | 
						||
| 
								 | 
							
												if (val !== 'init') {
							 | 
						||
| 
								 | 
							
													const tempGroup = initFilterGroup(false);
							 | 
						||
| 
								 | 
							
													extendGroupRule(tempGroup, 'NAME', 9, val)
							 | 
						||
| 
								 | 
							
													extendFilterGroup(json, tempGroup);
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
												json.Limit = 20
							 | 
						||
| 
								 | 
							
												if (pageIndex) {
							 | 
						||
| 
								 | 
							
													json.Start = (pageIndex - 1) * 20;
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
												getUserLists(json).then(res => {
							 | 
						||
| 
								 | 
							
													if (res.IsSuccessful) {
							 | 
						||
| 
								 | 
							
														this.userLists = res.Data.map(i => {
							 | 
						||
| 
								 | 
							
															return {
							 | 
						||
| 
								 | 
							
																...i,
							 | 
						||
| 
								 | 
							
																name: i.NAME,
							 | 
						||
| 
								 | 
							
																code: i.CODE
							 | 
						||
| 
								 | 
							
															}
							 | 
						||
| 
								 | 
							
														})
							 | 
						||
| 
								 | 
							
														this.curTotal = res.TotalCount
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
												})
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											handleSelectedUser(val) {
							 | 
						||
| 
								 | 
							
												this.showPopup = false
							 | 
						||
| 
								 | 
							
												this.lists = []
							 | 
						||
| 
								 | 
							
												const result = this.dataModel.Nav_AnalysisPerson.map((obj) => {
							 | 
						||
| 
								 | 
							
													const {
							 | 
						||
| 
								 | 
							
														Nav_User,USER_ID,
							 | 
						||
| 
								 | 
							
													} = obj
							 | 
						||
| 
								 | 
							
													if (Nav_User.CODE === this.currentOperateUser.CODE) {
							 | 
						||
| 
								 | 
							
														return Object.assign({}, obj, {
							 | 
						||
| 
								 | 
							
															Nav_User: val,
							 | 
						||
| 
								 | 
							
															USER_ID:val.ID,
							 | 
						||
| 
								 | 
							
														})
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													return obj
							 | 
						||
| 
								 | 
							
												})
							 | 
						||
| 
								 | 
							
												
							 | 
						||
| 
								 | 
							
												this.dataModel.Nav_AnalysisPerson=result
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											handleClosePopup() {
							 | 
						||
| 
								 | 
							
												this.showPopup = false
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											handleChangeUser(user) {
							 | 
						||
| 
								 | 
							
												this.currentOperateUser = user
							 | 
						||
| 
								 | 
							
												this.showPopup = true
							 | 
						||
| 
								 | 
							
												this.handleSearchUser('init')
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											//下拉数据加载
							 | 
						||
| 
								 | 
							
											async handleShowSheet(p) {
							 | 
						||
| 
								 | 
							
												const orgId = uni.getStorageSync('orgId')
							 | 
						||
| 
								 | 
							
												const json = initFilter(orgId, "", "", 0)
							 | 
						||
| 
								 | 
							
												let dataSelect = []
							 | 
						||
| 
								 | 
							
												if (p.name === 'AUDIT_LEVEL') {
							 | 
						||
| 
								 | 
							
													dataSelect = [{
							 | 
						||
| 
								 | 
							
															NAME: '无审批层级',
							 | 
						||
| 
								 | 
							
															ID: 0
							 | 
						||
| 
								 | 
							
														},
							 | 
						||
| 
								 | 
							
														{
							 | 
						||
| 
								 | 
							
															NAME: '一级审批',
							 | 
						||
| 
								 | 
							
															ID: 1
							 | 
						||
| 
								 | 
							
														},
							 | 
						||
| 
								 | 
							
														{
							 | 
						||
| 
								 | 
							
															NAME: '二级审批',
							 | 
						||
| 
								 | 
							
															ID: 2
							 | 
						||
| 
								 | 
							
														},
							 | 
						||
| 
								 | 
							
														{
							 | 
						||
| 
								 | 
							
															NAME: '三级审批',
							 | 
						||
| 
								 | 
							
															ID: 3
							 | 
						||
| 
								 | 
							
														},
							 | 
						||
| 
								 | 
							
														{
							 | 
						||
| 
								 | 
							
															NAME: '四级审批',
							 | 
						||
| 
								 | 
							
															ID: 4
							 | 
						||
| 
								 | 
							
														}
							 | 
						||
| 
								 | 
							
													]
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
												else if(p.name === 'WorkPermitType')
							 | 
						||
| 
								 | 
							
												{
							 | 
						||
| 
								 | 
							
													dataSelect = await getWorkPermitTypeLists(json).then(res => {
							 | 
						||
| 
								 | 
							
														return res
							 | 
						||
| 
								 | 
							
													})
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
												if (dataSelect.length) {
							 | 
						||
| 
								 | 
							
													this.comPickerInfo = {
							 | 
						||
| 
								 | 
							
														showSheet: true,
							 | 
						||
| 
								 | 
							
														title: p.title,
							 | 
						||
| 
								 | 
							
														name: p.name,
							 | 
						||
| 
								 | 
							
														dataIndex:p.dataIndex,	
							 | 
						||
| 
								 | 
							
														formIndex: p.formIndex,
							 | 
						||
| 
								 | 
							
														columns: [dataSelect]
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
												} else {
							 | 
						||
| 
								 | 
							
													// 暂无数据
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											closePicker() {
							 | 
						||
| 
								 | 
							
												this.comPickerInfo = {
							 | 
						||
| 
								 | 
							
													showSheet: false,
							 | 
						||
| 
								 | 
							
													columns: [],
							 | 
						||
| 
								 | 
							
													title: '',
							 | 
						||
| 
								 | 
							
													name: '',
							 | 
						||
| 
								 | 
							
													dataIndex: undefined,
							 | 
						||
| 
								 | 
							
													formIndex: undefined
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											onConfirmPicker(e) {
							 | 
						||
| 
								 | 
							
												const {
							 | 
						||
| 
								 | 
							
													name,
							 | 
						||
| 
								 | 
							
													dataIndex,
							 | 
						||
| 
								 | 
							
													formIndex
							 | 
						||
| 
								 | 
							
												} = this.comPickerInfo
							 | 
						||
| 
								 | 
							
												if(name === "AUDIT_LEVEL")
							 | 
						||
| 
								 | 
							
												{
							 | 
						||
| 
								 | 
							
													this.dataModel.Nav_Details[dataIndex].AUDIT_LEVEL = e.value[0].ID
							 | 
						||
| 
								 | 
							
													this.dataModel.Nav_Details[dataIndex].AUDIT_LEVEL_SHOW = e.value[0].NAME
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
												
							 | 
						||
| 
								 | 
							
												else if(name === "WorkPermitType")
							 | 
						||
| 
								 | 
							
												{
							 | 
						||
| 
								 | 
							
													this.dataModel.Details[dataIndex].Nav_WorkPermitType = e.value[0]
							 | 
						||
| 
								 | 
							
													this.dataModel.Details[dataIndex].WORK_PERMIT_TYPE_ID = e.value[0].ID
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
												this.comPickerInfo.showSheet = false
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											submit() {
							 | 
						||
| 
								 | 
							
												const ele = this.$refs
							 | 
						||
| 
								 | 
							
												ele['wForm'].validate().then(res => {
							 | 
						||
| 
								 | 
							
													this.dataModel.PUBLISH = "SaveAndNotify";
							 | 
						||
| 
								 | 
							
													if (this.TaskID != "") {
							 | 
						||
| 
								 | 
							
														this.dataModel.TaskID = this.TaskID;
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													this.dataModel.ID = this.ID;
							 | 
						||
| 
								 | 
							
													this.dataModel.ORG_ID =uni.getStorageSync('orgId')
							 | 
						||
| 
								 | 
							
													const resultDetail = this.dataModel.Nav_Details.map((obj, index) => {
							 | 
						||
| 
								 | 
							
														let navFiles=[];
							 | 
						||
| 
								 | 
							
														obj.Nav_Files.map(item=>{
							 | 
						||
| 
								 | 
							
															navFiles.push({
							 | 
						||
| 
								 | 
							
																IMG_FILE_ID:item.IMG_FILE_ID===null? item.responseText.imgFileID:item.IMG_FILE_ID,
							 | 
						||
| 
								 | 
							
																LICENSE_ANALYSIS_DETAIL_ID:obj.ID,
							 | 
						||
| 
								 | 
							
																ORG_ID:uni.getStorageSync('orgId')
							 | 
						||
| 
								 | 
							
															})
							 | 
						||
| 
								 | 
							
														})
							 | 
						||
| 
								 | 
							
													// if (obj.IS_CONFIRM === "是") {
							 | 
						||
| 
								 | 
							
													// 	return Object.assign({}, obj, {
							 | 
						||
| 
								 | 
							
													// 		IS_CONFIRM: true,
							 | 
						||
| 
								 | 
							
													// 		Nav_Files:navFiles
							 | 
						||
| 
								 | 
							
													// 	})
							 | 
						||
| 
								 | 
							
													// }
							 | 
						||
| 
								 | 
							
													// else
							 | 
						||
| 
								 | 
							
													// {
							 | 
						||
| 
								 | 
							
														return Object.assign({}, obj, {
							 | 
						||
| 
								 | 
							
															Nav_Files:navFiles
							 | 
						||
| 
								 | 
							
														})
							 | 
						||
| 
								 | 
							
													// }
							 | 
						||
| 
								 | 
							
													return obj
							 | 
						||
| 
								 | 
							
													})
							 | 
						||
| 
								 | 
							
													this.dataModel.Nav_Details = resultDetail
							 | 
						||
| 
								 | 
							
													
							 | 
						||
| 
								 | 
							
													saveLicenseRecord(this.dataModel).then(res => {
							 | 
						||
| 
								 | 
							
														uni.$showMsgFunc('操作成功!', () => {
							 | 
						||
| 
								 | 
							
															// if (this.tableKey == null || this.tableKey == 0) {
							 | 
						||
| 
								 | 
							
															// 	uni.navigateTo({
							 | 
						||
| 
								 | 
							
															// 		url: 'jobTaskLicenseRecord'
							 | 
						||
| 
								 | 
							
															// 	})
							 | 
						||
| 
								 | 
							
															// } else {
							 | 
						||
| 
								 | 
							
																uni.navigateBack()
							 | 
						||
| 
								 | 
							
															// }
							 | 
						||
| 
								 | 
							
														}, 'success', 1000)
							 | 
						||
| 
								 | 
							
													})
							 | 
						||
| 
								 | 
							
												}).catch(err => {
							 | 
						||
| 
								 | 
							
													uni.$showErrorInfo('请检查必填项,必填项不能为空')
							 | 
						||
| 
								 | 
							
												})
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											uploadFilePromise(url) {
							 | 
						||
| 
								 | 
							
												const appInfoData = uni.getStorageSync('appInfo')
							 | 
						||
| 
								 | 
							
												const userId = appInfoData?.User?.ID || ''
							 | 
						||
| 
								 | 
							
												const orgId = uni.getStorageSync('orgId')
							 | 
						||
| 
								 | 
							
												const tenant = uni.getStorageSync('Tenant') || ''
							 | 
						||
| 
								 | 
							
												const remoteUrl = config.serviceHost('/PF/File/UploadFile')
							 | 
						||
| 
								 | 
							
												return new Promise((resolve, reject) => {
							 | 
						||
| 
								 | 
							
													uni.uploadFile({
							 | 
						||
| 
								 | 
							
														url: remoteUrl,
							 | 
						||
| 
								 | 
							
														filePath: url,
							 | 
						||
| 
								 | 
							
														fileList: url,
							 | 
						||
| 
								 | 
							
														name: 'file',
							 | 
						||
| 
								 | 
							
														formData: {
							 | 
						||
| 
								 | 
							
															OrgId: orgId
							 | 
						||
| 
								 | 
							
														},
							 | 
						||
| 
								 | 
							
														header: {
							 | 
						||
| 
								 | 
							
															Tenant: tenant,
							 | 
						||
| 
								 | 
							
															userid: userId
							 | 
						||
| 
								 | 
							
														},
							 | 
						||
| 
								 | 
							
														success: (res) => {
							 | 
						||
| 
								 | 
							
															if (res.statusCode === 200) {
							 | 
						||
| 
								 | 
							
																const uploadResult = JSON.parse(res.data)
							 | 
						||
| 
								 | 
							
																if (uploadResult.IsSuccessful) {
							 | 
						||
| 
								 | 
							
																	resolve(uploadResult.Data)
							 | 
						||
| 
								 | 
							
																}
							 | 
						||
| 
								 | 
							
															}
							 | 
						||
| 
								 | 
							
														}
							 | 
						||
| 
								 | 
							
													});
							 | 
						||
| 
								 | 
							
												})
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								</script>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<style scoped>
							 | 
						||
| 
								 | 
							
									@import url("../../../../style/css/editTemplate.css");
							 | 
						||
| 
								 | 
							
									.page-wrap {
							 | 
						||
| 
								 | 
							
										padding: 16px 16px 166px;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.card {
							 | 
						||
| 
								 | 
							
										margin-bottom: 18px;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.sub-form {
							 | 
						||
| 
								 | 
							
										margin-bottom: 16px;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.bottom-button {
							 | 
						||
| 
								 | 
							
										position: fixed;
							 | 
						||
| 
								 | 
							
										bottom: 0;
							 | 
						||
| 
								 | 
							
										left: 0;
							 | 
						||
| 
								 | 
							
										width: 100%;
							 | 
						||
| 
								 | 
							
										padding: 10px 16px;
							 | 
						||
| 
								 | 
							
										box-sizing: border-box;
							 | 
						||
| 
								 | 
							
										background: #fff;
							 | 
						||
| 
								 | 
							
										z-index: 999;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.upload-title {
							 | 
						||
| 
								 | 
							
										color: #303133;
							 | 
						||
| 
								 | 
							
										font-size: 15px;
							 | 
						||
| 
								 | 
							
										line-height: 22px;
							 | 
						||
| 
								 | 
							
										padding: 8px 0;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.page-wrap>>>.u-upload__button {
							 | 
						||
| 
								 | 
							
										margin-bottom: 0;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								</style>
							 |