Browse Source

feat: 锁定作业类型字段,确保其值由申请时选择的作业类型决定

xieyong 23 hours ago
parent
commit
d607c1429e

+ 9 - 0
src/views/DangerousWorkList/components/workTicketForm.vue

@@ -6,6 +6,7 @@
                     (弹框内可按姓名/工号/账号搜索并分页),点击输入框即打开弹框
       multiple: true 多选,提交时名称与 id 用逗号连接
   - 部门字段 dept:点击输入框打开部门选择弹框(弹框内可按部门名称搜索),提交部门名称并附带部门 id
+  - 作业类型字段 work_type:锁定不可调整,由申请时选择的作业类型自动带出
   - 日期字段 date:el-date-picker 日期时间选择
   - 子表:可新增/删除行
 -->
@@ -48,6 +49,7 @@
                 <el-input
                   v-if="field.type === 'text'"
                   v-model="formData[field.id]"
+                  :disabled="isFieldLocked(field)"
                   :placeholder="field.placeholder || getPlaceholder(field)"
                 />
                 <el-input
@@ -61,6 +63,7 @@
                   v-else-if="field.type === 'select'"
                   v-model="formData[field.id]"
                   :placeholder="field.placeholder || '请选择'"
+                  :disabled="isFieldLocked(field)"
                   clearable
                   style="width: 100%"
                 >
@@ -77,6 +80,7 @@
                   type="datetime"
                   placeholder="请选择时间"
                   value-format="yyyy-MM-dd HH:mm:ss"
+                  :disabled="isFieldLocked(field)"
                   style="width: 100%"
                 />
                 <!-- 部门字段:点击输入框打开部门选择弹框 -->
@@ -410,6 +414,11 @@
         }
         return `请输入${field.label}`;
       },
+      // 锁定的字段不允许人工调整:
+      // 作业类型(work_type)由申请时选择的作业类型决定,票面只做展示
+      isFieldLocked(field) {
+        return field.id === 'work_type';
+      },
       // 上传、签名字段占满整行,避免控件被压缩
       isFullField(field) {
         return !!field.full || field.type === 'file' || field.type === 'sign';

+ 2 - 0
src/views/DangerousWorkList/templates.js

@@ -20,6 +20,8 @@
  *                   改用人员选择弹框(弹框内可按姓名/工号/账号搜索并分页)
  *                   不设置时人员范围取「作业单位」部门,未选作业单位时取「申请单位」部门
  *     multiple: true  多选,提交时名称与 id 用逗号连接
+ *   字段 id 为 work_type(作业类型)的字段由 workTicketForm 锁定,
+ *   值取自申请时选择的作业类型,不允许人工调整。
  */
 
 import {