|
@@ -116,8 +116,15 @@
|
|
|
<el-form-item label="生产动态" prop="productionStatus">
|
|
|
<el-input v-model="formData.productionStatus" placeholder="请输入生产动态" type="textarea"/>
|
|
|
</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 label="备注" prop="remark">
|
|
|
<el-input v-model="formData.remark" placeholder="请输入备注" type="textarea"/>
|
|
@@ -140,44 +147,6 @@ defineOptions({ name: 'IotRyXjDailyReportForm' })
|
|
|
const { t } = useI18n() // 国际化
|
|
|
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({
|
|
|
id: undefined,
|
|
@@ -207,6 +176,9 @@ const formData = ref({
|
|
|
nextPlan: undefined,
|
|
|
rigStatus: undefined,
|
|
|
personnel: undefined,
|
|
|
+ totalStaffNum: undefined,
|
|
|
+ leaveStaffNum: undefined,
|
|
|
+ onDutyStaffNum: undefined,
|
|
|
mudDensity: undefined,
|
|
|
mudViscosity: undefined,
|
|
|
lateralLength: undefined,
|
|
@@ -220,6 +192,56 @@ const formData = ref({
|
|
|
processInstanceId: 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 formRef = ref() // 表单 Ref
|
|
@@ -248,6 +270,8 @@ const open = async (type: string, id?: number) => {
|
|
|
formLoading.value = true
|
|
|
try {
|
|
|
formData.value = await IotRyDailyReportApi.getIotRyDailyReport(id)
|
|
|
+ // 数据加载后计算在岗人数
|
|
|
+ calculateOnDutyStaffNum()
|
|
|
} finally {
|
|
|
formLoading.value = false
|
|
|
}
|