|  | @@ -116,8 +116,15 @@
 | 
											
												
													
														|  |        <el-form-item label="生产动态" prop="productionStatus">
 |  |        <el-form-item label="生产动态" prop="productionStatus">
 | 
											
												
													
														|  |          <el-input v-model="formData.productionStatus" placeholder="请输入生产动态" type="textarea"/>
 |  |          <el-input v-model="formData.productionStatus" placeholder="请输入生产动态" type="textarea"/>
 | 
											
												
													
														|  |        </el-form-item>
 |  |        </el-form-item>
 | 
											
												
													
														|  | -      <el-form-item label="人员情况" prop="personnel">
 |  | 
 | 
											
												
													
														|  | -        <el-input v-model="formData.personnel" placeholder="请输入人员情况" type="textarea"/>
 |  | 
 | 
											
												
													
														|  | 
 |  | +      <el-form-item label="全员数量" prop="totalStaffNum">
 | 
											
												
													
														|  | 
 |  | +        <el-input v-model="formData.totalStaffNum" placeholder="请输入全员数量" @input="calculateOnDutyStaffNum"/>
 | 
											
												
													
														|  | 
 |  | +      </el-form-item>
 | 
											
												
													
														|  | 
 |  | +      <el-form-item label="在岗人数" prop="onDutyStaffNum">
 | 
											
												
													
														|  | 
 |  | +        <el-input v-model="formData.onDutyStaffNum" placeholder="" disabled
 | 
											
												
													
														|  | 
 |  | +                  :class="{'yellow-bg': formData.onDutyStaffNum < 0}"/>
 | 
											
												
													
														|  | 
 |  | +      </el-form-item>
 | 
											
												
													
														|  | 
 |  | +      <el-form-item label="休假人员数量" prop="leaveStaffNum">
 | 
											
												
													
														|  | 
 |  | +        <el-input v-model="formData.leaveStaffNum" placeholder="请输入休假人员数量" @input="calculateOnDutyStaffNum"/>
 | 
											
												
													
														|  |        </el-form-item>
 |  |        </el-form-item>
 | 
											
												
													
														|  |        <el-form-item label="备注" prop="remark">
 |  |        <el-form-item label="备注" prop="remark">
 | 
											
												
													
														|  |          <el-input v-model="formData.remark" placeholder="请输入备注" type="textarea"/>
 |  |          <el-input v-model="formData.remark" placeholder="请输入备注" type="textarea"/>
 | 
											
										
											
												
													
														|  | @@ -140,44 +147,6 @@ defineOptions({ name: 'IotRyXjDailyReportForm' })
 | 
											
												
													
														|  |  const { t } = useI18n() // 国际化
 |  |  const { t } = useI18n() // 国际化
 | 
											
												
													
														|  |  const message = useMessage() // 消息弹窗
 |  |  const message = useMessage() // 消息弹窗
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -// 添加 props 接收行数据
 |  | 
 | 
											
												
													
														|  | -const props = defineProps({
 |  | 
 | 
											
												
													
														|  | -  rowData: {
 |  | 
 | 
											
												
													
														|  | -    type: Object,
 |  | 
 | 
											
												
													
														|  | -    default: () => ({})
 |  | 
 | 
											
												
													
														|  | -  }
 |  | 
 | 
											
												
													
														|  | -})
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -// 监听 props.rowData 的变化
 |  | 
 | 
											
												
													
														|  | -watch(() => props.rowData, (newVal) => {
 |  | 
 | 
											
												
													
														|  | -  if (newVal) {
 |  | 
 | 
											
												
													
														|  | -    displayData.value.deptName = newVal.deptName || ''
 |  | 
 | 
											
												
													
														|  | -    displayData.value.contractName = newVal.contractName || ''
 |  | 
 | 
											
												
													
														|  | -    displayData.value.taskName = newVal.taskName || ''
 |  | 
 | 
											
												
													
														|  | -    displayData.value.designWellDepth = newVal.designWellDepth || ''
 |  | 
 | 
											
												
													
														|  | -    displayData.value.technique = newVal.technique || ''
 |  | 
 | 
											
												
													
														|  | -    displayData.value.wellCategory = newVal.wellCategory || ''
 |  | 
 | 
											
												
													
														|  | -    displayData.value.wellControlLevel = newVal.wellControlLevel || ''
 |  | 
 | 
											
												
													
														|  | -    displayData.value.casingPipeSize = newVal.casingPipeSize || ''
 |  | 
 | 
											
												
													
														|  | -  }
 |  | 
 | 
											
												
													
														|  | -}, { immediate: true })
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -const dialogVisible = ref(false) // 弹窗的是否展示
 |  | 
 | 
											
												
													
														|  | -const dialogTitle = ref('') // 弹窗的标题
 |  | 
 | 
											
												
													
														|  | -const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
 |  | 
 | 
											
												
													
														|  | -const formType = ref('') // 表单的类型:create - 新增;update - 修改
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -// 添加显示数据对象
 |  | 
 | 
											
												
													
														|  | -const displayData = ref({
 |  | 
 | 
											
												
													
														|  | -  deptName: '',
 |  | 
 | 
											
												
													
														|  | -  contractName: '',
 |  | 
 | 
											
												
													
														|  | -  taskName: '',
 |  | 
 | 
											
												
													
														|  | -  designWellDepth: '',
 |  | 
 | 
											
												
													
														|  | -  technique: '',
 |  | 
 | 
											
												
													
														|  | -  wellCategory: '',
 |  | 
 | 
											
												
													
														|  | -  wellControlLevel: '',
 |  | 
 | 
											
												
													
														|  | -  casingPipeSize: ''
 |  | 
 | 
											
												
													
														|  | -})
 |  | 
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  const formData = ref({
 |  |  const formData = ref({
 | 
											
												
													
														|  |    id: undefined,
 |  |    id: undefined,
 | 
											
										
											
												
													
														|  | @@ -207,6 +176,9 @@ const formData = ref({
 | 
											
												
													
														|  |    nextPlan: undefined,
 |  |    nextPlan: undefined,
 | 
											
												
													
														|  |    rigStatus: undefined,
 |  |    rigStatus: undefined,
 | 
											
												
													
														|  |    personnel: undefined,
 |  |    personnel: undefined,
 | 
											
												
													
														|  | 
 |  | +  totalStaffNum: undefined,
 | 
											
												
													
														|  | 
 |  | +  leaveStaffNum: undefined,
 | 
											
												
													
														|  | 
 |  | +  onDutyStaffNum: undefined,
 | 
											
												
													
														|  |    mudDensity: undefined,
 |  |    mudDensity: undefined,
 | 
											
												
													
														|  |    mudViscosity: undefined,
 |  |    mudViscosity: undefined,
 | 
											
												
													
														|  |    lateralLength: undefined,
 |  |    lateralLength: undefined,
 | 
											
										
											
												
													
														|  | @@ -220,6 +192,56 @@ const formData = ref({
 | 
											
												
													
														|  |    processInstanceId: undefined,
 |  |    processInstanceId: undefined,
 | 
											
												
													
														|  |    auditStatus: undefined,
 |  |    auditStatus: undefined,
 | 
											
												
													
														|  |  })
 |  |  })
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +// 添加 props 接收行数据
 | 
											
												
													
														|  | 
 |  | +const props = defineProps({
 | 
											
												
													
														|  | 
 |  | +  rowData: {
 | 
											
												
													
														|  | 
 |  | +    type: Object,
 | 
											
												
													
														|  | 
 |  | +    default: () => ({})
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +})
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/** 计算在岗人数 */
 | 
											
												
													
														|  | 
 |  | +const calculateOnDutyStaffNum = () => {
 | 
											
												
													
														|  | 
 |  | +  // 转换为数字进行计算,处理空值情况
 | 
											
												
													
														|  | 
 |  | +  const total = formData.value.totalStaffNum ? Number(formData.value.totalStaffNum) : 0
 | 
											
												
													
														|  | 
 |  | +  const leave = formData.value.leaveStaffNum ? Number(formData.value.leaveStaffNum) : 0
 | 
											
												
													
														|  | 
 |  | +  formData.value.onDutyStaffNum = total - leave
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +// 监听 props.rowData 的变化
 | 
											
												
													
														|  | 
 |  | +watch(() => props.rowData, (newVal) => {
 | 
											
												
													
														|  | 
 |  | +  if (newVal) {
 | 
											
												
													
														|  | 
 |  | +    displayData.value.deptName = newVal.deptName || ''
 | 
											
												
													
														|  | 
 |  | +    displayData.value.contractName = newVal.contractName || ''
 | 
											
												
													
														|  | 
 |  | +    displayData.value.taskName = newVal.taskName || ''
 | 
											
												
													
														|  | 
 |  | +    displayData.value.designWellDepth = newVal.designWellDepth || ''
 | 
											
												
													
														|  | 
 |  | +    displayData.value.technique = newVal.technique || ''
 | 
											
												
													
														|  | 
 |  | +    displayData.value.wellCategory = newVal.wellCategory || ''
 | 
											
												
													
														|  | 
 |  | +    displayData.value.wellControlLevel = newVal.wellControlLevel || ''
 | 
											
												
													
														|  | 
 |  | +    displayData.value.casingPipeSize = newVal.casingPipeSize || ''
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +  // 初始化时计算在岗人数
 | 
											
												
													
														|  | 
 |  | +  calculateOnDutyStaffNum()
 | 
											
												
													
														|  | 
 |  | +}, { immediate: true })
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +const dialogVisible = ref(false) // 弹窗的是否展示
 | 
											
												
													
														|  | 
 |  | +const dialogTitle = ref('') // 弹窗的标题
 | 
											
												
													
														|  | 
 |  | +const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
 | 
											
												
													
														|  | 
 |  | +const formType = ref('') // 表单的类型:create - 新增;update - 修改
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +// 添加显示数据对象
 | 
											
												
													
														|  | 
 |  | +const displayData = ref({
 | 
											
												
													
														|  | 
 |  | +  deptName: '',
 | 
											
												
													
														|  | 
 |  | +  contractName: '',
 | 
											
												
													
														|  | 
 |  | +  taskName: '',
 | 
											
												
													
														|  | 
 |  | +  designWellDepth: '',
 | 
											
												
													
														|  | 
 |  | +  technique: '',
 | 
											
												
													
														|  | 
 |  | +  wellCategory: '',
 | 
											
												
													
														|  | 
 |  | +  wellControlLevel: '',
 | 
											
												
													
														|  | 
 |  | +  casingPipeSize: ''
 | 
											
												
													
														|  | 
 |  | +})
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  const formRules = reactive({
 |  |  const formRules = reactive({
 | 
											
												
													
														|  |  })
 |  |  })
 | 
											
												
													
														|  |  const formRef = ref() // 表单 Ref
 |  |  const formRef = ref() // 表单 Ref
 | 
											
										
											
												
													
														|  | @@ -248,6 +270,8 @@ const open = async (type: string, id?: number) => {
 | 
											
												
													
														|  |      formLoading.value = true
 |  |      formLoading.value = true
 | 
											
												
													
														|  |      try {
 |  |      try {
 | 
											
												
													
														|  |        formData.value = await IotRyDailyReportApi.getIotRyDailyReport(id)
 |  |        formData.value = await IotRyDailyReportApi.getIotRyDailyReport(id)
 | 
											
												
													
														|  | 
 |  | +      // 数据加载后计算在岗人数
 | 
											
												
													
														|  | 
 |  | +      calculateOnDutyStaffNum()
 | 
											
												
													
														|  |      } finally {
 |  |      } finally {
 | 
											
												
													
														|  |        formLoading.value = false
 |  |        formLoading.value = false
 | 
											
												
													
														|  |      }
 |  |      }
 |