shi'sen'yuan пре 3 година
родитељ
комит
a9842d671e

+ 126 - 83
ui/src/views/components/PlantProgList/index.vue

@@ -172,18 +172,8 @@
     />
 
     <!-- 添加或修改装置程序清单对话框 -->
-    <el-dialog v-dialogDrag :title="title" :visible.sync="open" width="900px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item :label="$t('部门')" prop="department">
-          <el-select v-model="form.department" :placeholder="$t('请选择') + $t('部门')">
-            <el-option
-              v-for="dict in departmentOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
+    <el-dialog v-dialogDrag :title="title" :visible.sync="open" width="1200px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="150px">
         <el-form-item :label="$t('文件编号')" prop="fileno">
           <el-input v-model="form.fileno" :placeholder="$t('请输入') + $t('文件编号')" />
         </el-form-item>
@@ -202,9 +192,13 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-form-item :label="$t('更新负责人')" prop="responsibility">
-          <el-input v-model="form.responsibility" :placeholder="$t('请输入') + $t('更新负责人')" />
-        </el-form-item>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('更新负责人')" prop="responsibility">
+              <el-input v-model="form.responsibility" :placeholder="$t('请输入') + $t('更新负责人')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item :label="$t('修订日期')" prop="filedate">
@@ -218,7 +212,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item :label="$t('下次修订日期')" prop="nexteditdate" label-width="120">
+            <el-form-item :label="$t('下次修订日期')" prop="nexteditdate">
               <el-date-picker clearable size="small" style="width: 200px"
                               v-model="form.nexteditdate"
                               type="date"
@@ -235,7 +229,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item :label="$t('回顾日期')" prop="reviewdate" v-if="this.itemNum !== '5'"  label-width="120">
+            <el-form-item :label="$t('回顾日期')" prop="reviewdate" v-if="this.itemNum !== '5'">
               <el-date-picker clearable size="small" style="width: 200px"
                               v-model="form.reviewdate"
                               type="date"
@@ -245,56 +239,83 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-form-item :label="$t('回顾结果')" prop="reviewResult" v-if="this.itemNum !== '5'">
-          <el-input v-model="form.reviewResult" :placeholder="$t('请输入') + $t('回顾结果')" />
-        </el-form-item>
-        <el-form-item :label="$t('下次回顾日期')" prop="nextreviewdate" v-if="this.itemNum !== '5'">
-          <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.nextreviewdate"
-                          type="date"
-                          value-format="yyyy-MM-dd"
-                          :placeholder="$t('请选择') + $t('下次回顾日期')">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item :label="$t('密级分类')" prop="classify" v-if="this.itemNum !== '5'">
-          <el-select v-model="form.classify" :placeholder="$t('请选择') + $t('密级分类')">
-            <el-option
-              v-for="dict in classifyOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <!--<el-form-item :label="$t('控制室文件版本')" prop="versionKzs" v-if="this.itemNum !== '5'">
-          <el-input v-model="form.versionKzs" :placeholder="$t('请输入') + $t('控制室文件版本')" />
-        </el-form-item>-->
-        <el-form-item :label="$t('公共盘文件版本')" prop="versionPan" v-if="this.itemNum !== '5'">
-          <el-input v-model="form.versionPan" :placeholder="$t('请输入') + $t('公共盘文件版本')" />
-        </el-form-item>
-        <el-form-item :label="$t('附件编号')" prop="attachmentNo" v-if="this.itemNum === '5'">
-          <el-input v-model="form.attachmentNo" :placeholder="$t('请输入') + $t('附件编号')" />
-        </el-form-item>
-        <el-form-item :label="$t('附件名称')" prop="attachmentName" v-if="this.itemNum === '5'">
-          <el-input v-model="form.attachmentName" :placeholder="$t('请输入') + $t('附件名称')" />
-        </el-form-item>
-        <el-form-item :label="$t('附件版次')" prop="attachmentRevision" v-if="this.itemNum === '5'">
-          <el-input v-model="form.attachmentRevision" :placeholder="$t('请输入') + $t('附件版次')" />
-        </el-form-item>
-        <el-form-item :label="$t('附件修改日期')" prop="revisionDate" v-if="this.itemNum === '5'">
-          <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.revisionDate"
-                          type="date"
-                          value-format="yyyy-MM-dd"
-                          :placeholder="$t('请选择') + $t('附件修改日期')">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item :label="$t('备注')" prop="remarks">
-          <el-input v-model="form.remarks" :placeholder="$t('请输入') + $t('备注')" />
-        </el-form-item>
-        <el-form-item :label="$t('归属部门')" prop="deptId">
-          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择') + $t('归属部门')" />
-        </el-form-item>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('回顾结果')" prop="reviewResult" v-if="this.itemNum !== '5'">
+              <el-input v-model="form.reviewResult" :placeholder="$t('请输入') + $t('回顾结果')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('下次回顾日期')" prop="nextreviewdate" v-if="this.itemNum !== '5'">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.nextreviewdate"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              :placeholder="$t('请选择') + $t('下次回顾日期')">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('密级分类')" prop="classify" v-if="this.itemNum !== '5'">
+              <el-select v-model="form.classify" :placeholder="$t('请选择') + $t('密级分类')">
+                <el-option
+                  v-for="dict in classifyOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('公共盘文件版本')" prop="versionPan" v-if="this.itemNum !== '5'">
+              <el-input v-model="form.versionPan" :placeholder="$t('请输入') + $t('公共盘文件版本')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('附件编号')" prop="attachmentNo" v-if="this.itemNum === '5'">
+              <el-input v-model="form.attachmentNo" :placeholder="$t('请输入') + $t('附件编号')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('附件名称')" prop="attachmentName" v-if="this.itemNum === '5'">
+              <el-input v-model="form.attachmentName" :placeholder="$t('请输入') + $t('附件名称')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('附件版次')" prop="attachmentRevision" v-if="this.itemNum === '5'">
+              <el-input v-model="form.attachmentRevision" :placeholder="$t('请输入') + $t('附件版次')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('附件修改日期')" prop="revisionDate" v-if="this.itemNum === '5'">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.revisionDate"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              :placeholder="$t('请选择') + $t('附件修改日期')">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('备注')" prop="remarks">
+              <el-input v-model="form.remarks" :placeholder="$t('请输入') + $t('备注')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('归属部门')" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择') + $t('归属部门')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">{{ $t('确 定') }}</el-button>
@@ -479,8 +500,6 @@
       // 部门树选项
       deptOptions: undefined,
       clientHeight:300,
-      // 部门字典
-      departmentOptions: [],
       // 是否显示弹出层
       open: false,
       // 分级字典
@@ -545,7 +564,6 @@
       queryParams: {
         pageNum: 1,
         pageSize: 20,
-        department: null,
         fileno: null,
         filename: null,
         revision: null,
@@ -575,14 +593,47 @@
       form: {},
       // 表单校验
       rules: {
-        department: [
-          { required: true, message: this.$t('部门') + this.$t('不能为空'), trigger: "blur" }
-        ],
         fileno: [
           { required: true, message: this.$t('文件编号') + this.$t('不能为空'), trigger: "blur" }
         ],
-        deptCode: [
-          { required: true, message: this.$t('部门编号') + this.$t('不能为空'), trigger: "blur" }
+        filename: [
+          { required: true, message: this.$t('文件名称') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        revision: [
+          { required: true, message: this.$t('版次') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        rccode: [
+          { required: true, message: this.$t('RC代码') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        carrier: [
+          { required: true, message: this.$t('载体') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        responsibility: [
+          { required: true, message: this.$t('更新负责人') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        filedate: [
+          { required: true, message: this.$t('修订日期') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        reviewdate: [
+          { required: true, message: this.$t('回顾日期') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        nextreviewdate: [
+          { required: true, message: this.$t('下次回顾日期') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        nexteditdate: [
+          { required: true, message: this.$t('下次修订日期') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        classify: [
+          { required: true, message: this.$t('密级分类') + this.$t('不能为空'), trigger: "change" }
+        ],
+        reviewFrequency: [
+          { required: true, message: this.$t('回顾频率') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        reviewResult: [
+          { required: true, message: this.$t('回顾结果') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        deptId: [
+          { required: true, message: this.$t('归属部门') + this.$t('不能为空'), trigger: "blur" }
         ],
       }
     };
@@ -600,9 +651,6 @@
     })
     this.getList();
     this.getTreeselect();
-    this.getDicts("DEPARTMENT").then(response => {
-      this.departmentOptions = response.data;
-    });
     this.getDicts("CLASSIFY").then(response => {
       this.classifyOptions = response.data;
     });
@@ -639,10 +687,6 @@
         this.deptOptions = response.data;
       });
     },
-    // 部门字典翻译
-    plantCodeFormat(row, column) {
-      return this.selectDictLabel(this.departmentOptions, row.department);
-    },
     // 分级字典翻译
     classifyFormat(row, column) {
       return this.selectDictLabel(this.classifyOptions, row.classify);
@@ -668,7 +712,6 @@
     reset() {
       this.form = {
         id: null,
-        department: null,
         fileno: null,
         filename: null,
         revision: null,

+ 279 - 146
ui/src/views/ehs/msds/index.vue

@@ -225,103 +225,226 @@
     />
 
     <!-- 添加或修改MSDS管理对话框 -->
-    <el-dialog v-dialogDrag :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="ITEM" prop="item">
-          <el-input v-model="form.item" :placeholder="$t('请输入') + 'ITEM'" />
-        </el-form-item>
-        <el-form-item :label="$t('产品类别')" prop="productcategory">
-          <el-select v-model="form.productcategory" :placeholder="$t('请选择') + $t('产品类别')">
-            <el-option
-              v-for="dict in productcategoryOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('英文名称')" prop="enName">
-          <el-input v-model="form.enName" :placeholder="$t('请输入') + $t('英文名称')" />
-        </el-form-item>
-        <el-form-item :label="$t('中文名称')" prop="cnName">
-          <el-input v-model="form.cnName" :placeholder="$t('请输入') + $t('中文名称')" />
-        </el-form-item>
-        <el-form-item :label="$t('CAS号')" prop="casNo">
-          <el-input v-model="form.casNo" :placeholder="$t('请输入') + $t('CAS号')" />
-        </el-form-item>
-        <el-form-item :label="$t('危险警句')" prop="hazardPhrases">
-          <el-select v-model="hazardPhrasess" multiple filterable :placeholder="$t('请选择') + $t('危险警句')">
-            <el-option
-              v-for="dict in hazardPhrasesOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('是否三致物')" prop="cmr">
-          <el-select v-model="form.cmr" multiple :placeholder="$t('请选择') + $t('是否三致物')">
-            <el-option
-              v-for="dict in cmrOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('GHS符号')" prop="ghsPictogram">
-          <el-select v-model="ghsPictograms" multiple :placeholder="$t('请选择') + $t('GHS符号')">
-            <el-option
-              v-for="dict in ghsPictogramOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('保存量')" prop="holdup">
-          <el-input v-model="form.holdup" :placeholder="$t('请输入') + $t('保存量')" />
-        </el-form-item>
-        <el-form-item :label="$t('工作区域')" prop="workArea">
-          <el-select v-model="workAreas" multiple :placeholder="$t('请选择') + $t('工作区域')">
-            <el-option
-              v-for="dict in workAreaOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('形态')" prop="form">
-          <el-input v-model="form.form" :placeholder="$t('请输入') + $t('形态')" />
-        </el-form-item>
-        <el-form-item :label="$t('爆炸极限')+'(v%)'" prop="explosionLimit">
-          <el-input v-model="form.explosionLimit" :placeholder="$t('请输入') + $t('爆炸极限')" />
-        </el-form-item>
-        <el-form-item :label="$t('熔点')+'(℃)'" prop="meltingPoint">
-          <el-input v-model="form.meltingPoint" :placeholder="$t('请输入') + $t('熔点')" />
-        </el-form-item>
-        <el-form-item :label="$t('沸点')+'(℃)'" prop="boilingPoint">
-          <el-input v-model="form.boilingPoint" :placeholder="$t('请输入') + $t('沸点')" />
-        </el-form-item>
-        <el-form-item :label="$t('密度/分子量')" prop="density">
-          <el-input v-model="form.density" :placeholder="$t('请输入') + $t('密度/分子量')" />
-        </el-form-item>
-        <el-form-item :label="$t('组成及纯度')+'(w/w)'" prop="purity">
-          <el-input type="textarea" v-model="form.purity" :placeholder="$t('请输入') + $t('组成及纯度')" />
-        </el-form-item>
-        <el-form-item :label="$t('归属单位')" prop="responsibleCompany">
-          <el-input v-model="form.responsibleCompany" :placeholder="$t('请输入') + $t('归属单位')" />
-        </el-form-item>
-        <el-form-item :label="$t('出版日期') + '1'" prop="issueTime">
-          <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.issueTime"
-                          type="date"
-                          value-format="yyyy-MM-dd"
-                          :placeholder="$t('请选择') + $t('出版日期') + '1'">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="出版日期2" prop="issuetimeTwo">
+    <el-dialog v-dialogDrag :title="title" :visible.sync="open" width="1200px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="ITEM" prop="item">
+              <el-input v-model="form.item" :placeholder="$t('请输入') + 'ITEM'" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('产品类别')" prop="productcategory">
+              <el-select v-model="form.productcategory" :placeholder="$t('请选择') + $t('产品类别')">
+                <el-option
+                  v-for="dict in productcategoryOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('英文名称')" prop="enName">
+              <el-input v-model="form.enName" :placeholder="$t('请输入') + $t('英文名称')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('中文名称')" prop="cnName">
+              <el-input v-model="form.cnName" :placeholder="$t('请输入') + $t('中文名称')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('CAS号')" prop="casNo">
+              <el-input v-model="form.casNo" :placeholder="$t('请输入') + $t('CAS号')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('危险警句')" prop="hazardPhrases">
+              <el-select v-model="hazardPhrasess" multiple filterable :placeholder="$t('请选择') + $t('危险警句')">
+                <el-option
+                  v-for="dict in hazardPhrasesOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('是否三致物')" prop="cmr">
+              <el-select v-model="form.cmr" multiple :placeholder="$t('请选择') + $t('是否三致物')">
+                <el-option
+                  v-for="dict in cmrOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('GHS符号')" prop="ghsPictogram">
+              <el-select v-model="ghsPictograms" multiple :placeholder="$t('请选择') + $t('GHS符号')">
+                <el-option
+                  v-for="dict in ghsPictogramOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('保存量')" prop="holdup">
+              <el-input v-model="form.holdup" :placeholder="$t('请输入') + $t('保存量')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('工作区域')" prop="workArea">
+              <el-select v-model="workAreas" multiple :placeholder="$t('请选择') + $t('工作区域')">
+                <el-option
+                  v-for="dict in workAreaOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('形态')" prop="form">
+              <el-input v-model="form.form" :placeholder="$t('请输入') + $t('形态')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('爆炸极限') + '(v%)'" prop="explosionLimit">
+              <el-input v-model="form.explosionLimit" :placeholder="$t('请输入') + $t('爆炸极限')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('熔点') + '(℃)'" prop="meltingPoint">
+              <el-input v-model="form.meltingPoint" :placeholder="$t('请输入') + $t('熔点')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('沸点') + '(℃)'" prop="boilingPoint">
+              <el-input v-model="form.boilingPoint" :placeholder="$t('请输入') + $t('沸点')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('密度/分子量')" prop="density">
+              <el-input v-model="form.density" :placeholder="$t('请输入') + $t('密度/分子量')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('组成及纯度') + '(w/w)'" prop="purity">
+              <el-input type="textarea" v-model="form.purity" :placeholder="$t('请输入') + $t('组成及纯度')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('归属单位')" prop="responsibleCompany">
+              <el-input v-model="form.responsibleCompany" :placeholder="$t('请输入') + $t('归属单位')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('出版日期') + '1'" prop="issueTime">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.issueTime"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              :placeholder="$t('请选择') + $t('出版日期') + '1'">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('版次')" prop="version">
+              <el-input v-model="form.version" :placeholder="$t('请输入') + $t('版次')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('回顾人')" prop="reviewer">
+              <el-select v-model="form.reviewer" filterable :placeholder="$t('请选择') + $t('回顾人')">
+                <el-option
+                  v-for="dict in stffmgrOptions"
+                  :key="dict.staffid"
+                  :label="dict.name"
+                  :value="dict.staffid">
+                  <span style="float: left">{{ dict.name }}</span>
+                  <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.staffid }}</span>
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('回顾日期')" prop="reviewdate">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.reviewdate"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              :placeholder="$t('请选择') + $t('回顾日期')">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('回顾状态')" prop="reviewState">
+              <el-select v-model="form.reviewState" :placeholder="$t('请选择') + $t('回顾状态')">
+                <el-option
+                  v-for="dict in reviewStateOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('下次回顾日期')" prop="nextReviewdate">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.nextReviewdate"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              :placeholder="$t('请选择') + $t('下次回顾日期')">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('备注')" prop="remarks">
+              <el-input v-model="form.remarks" :placeholder="$t('请输入') + $t('备注')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('归属部门')" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择') + $t('归属部门')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <!--<el-form-item label="出版日期2" prop="issuetimeTwo">
           <el-date-picker clearable size="small" style="width: 200px"
                           v-model="form.issuetimeTwo"
                           type="date"
@@ -336,54 +459,7 @@
                           value-format="yyyy-MM-dd"
                           placeholder="选择出版日期3">
           </el-date-picker>
-        </el-form-item>
-        <el-form-item :label="$t('版次')" prop="version">
-          <el-input v-model="form.version" :placeholder="$t('请输入') + $t('版次')" />
-        </el-form-item>
-        <el-form-item :label="$t('回顾人')" prop="reviewer">
-          <el-select v-model="form.reviewer" filterable :placeholder="$t('请选择') + $t('回顾人')">
-            <el-option
-              v-for="dict in stffmgrOptions"
-              :key="dict.staffid"
-              :label="dict.name"
-              :value="dict.staffid">
-              <span style="float: left">{{ dict.name }}</span>
-              <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.staffid }}</span>
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('回顾日期')" prop="reviewdate">
-          <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.reviewdate"
-                          type="date"
-                          value-format="yyyy-MM-dd"
-                          :placeholder="$t('请选择') + $t('回顾日期')">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item :label="$t('回顾状态')" prop="reviewState">
-          <el-select v-model="form.reviewState" :placeholder="$t('请选择') + $t('回顾状态')">
-            <el-option
-              v-for="dict in reviewStateOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('下次回顾日期')" prop="nextReviewdate">
-          <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.nextReviewdate"
-                          type="date"
-                          value-format="yyyy-MM-dd"
-                          :placeholder="$t('请选择') + $t('下次回顾日期')">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item :label="$t('备注')" prop="remarks">
-          <el-input v-model="form.remarks" :placeholder="$t('请输入') + $t('备注')" />
-        </el-form-item>
-        <el-form-item :label="$t('归属部门')" prop="deptId">
-          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择') + $t('归属部门')" />
-        </el-form-item>
+        </el-form-item>-->
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">{{ $t('确 定') }}</el-button>
@@ -631,8 +707,65 @@
         cmrs: [],
         // 表单校验
         rules: {
+          item: [
+            { required: true, message: "ITEM" + this.$t('不能为空'), trigger: "blur" }
+          ],
+          productcategory: [
+            { required: true, message: this.$t('产品类别') + this.$t('不能为空'), trigger: "change" }
+          ],
+          enName: [
+            { required: true, message: this.$t('英文名称') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          cnName: [
+            { required: true, message: this.$t('中文名称') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          casNo: [
+            { required: true, message: this.$t('CAS号') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          holdup: [
+            { required: true, message: this.$t('保存量') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          form: [
+            { required: true, message: this.$t('形态') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          explosionLimit: [
+            { required: true, message: this.$t('爆炸极限') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          meltingPoint: [
+            { required: true, message: this.$t('熔点') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          boilingPoint: [
+            { required: true, message: this.$t('沸点') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          density: [
+            { required: true, message: this.$t('密度/分子量') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          purity: [
+            { required: true, message: this.$t('组成及纯度') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          responsibleCompany: [
+            { required: true, message: this.$t('归属单位') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          issueTime: [
+            { required: true, message: this.$t('出版日期') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          version: [
+            { required: true, message: this.$t('版次') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          reviewer: [
+            { required: true, message: this.$t('回顾人') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          reviewdate: [
+            { required: true, message: this.$t('回顾日期') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          reviewState: [
+            { required: true, message: this.$t('回顾状态') + this.$t('不能为空'), trigger: "change" }
+          ],
+          nextReviewdate: [
+            { required: true, message: this.$t('下次回顾日期') + this.$t('不能为空'), trigger: "blur" }
+          ],
           deptId: [
-            { required: true, message: this.$t('部门编号')+this.$t('不能为空'), trigger: "blur" }
+            { required: true, message: this.$t('部门编号') + this.$t('不能为空'), trigger: "blur" }
           ],
         }
       };

+ 265 - 142
ui/src/views/ehs/records/index.vue

@@ -159,149 +159,215 @@
     />
 
     <!-- 添加或修改事件报告清单对话框 -->
-    <el-dialog v-dialogDrag :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item :label="$t('日期')" prop="incidentDate">
-          <el-date-picker clearable size="small" style="width: 200px"
-            v-model="form.incidentDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            :placeholder="$t('请选择') + $t('日期')">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item :label="$t('事故报告编号')" prop="reportNo">
-          <el-input v-model="form.reportNo" :placeholder="$t('请输入') + $t('事故报告编号')" />
-        </el-form-item>
-        <el-form-item :label="$t('调查报告编号')" prop="investigationNo">
-          <el-input v-model="form.investigationNo" :placeholder="$t('请输入') + $t('调查报告编号')" />
-        </el-form-item>
-        <el-form-item :label="$t('单位')" prop="company">
-          <el-input v-model="form.company" :placeholder="$t('请输入') + $t('单位')" />
-        </el-form-item>
-        <el-form-item :label="$t('承包商')" prop="contractor">
-          <el-select v-model="form.contractor" :placeholder="$t('请选择') + $t('承包商')">
-            <el-option
-              v-for="dict in contractorOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('事件分类')" prop="classification">
-          <el-select v-model="form.classification" :placeholder="$t('请选择') + $t('事件分类')">
-            <el-option
-              v-for="dict in classificationOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('未遂事件风险类别')" prop="riskKind">
-          <el-select v-model="form.riskKind" :placeholder="$t('请选择') + $t('未遂事件风险类别')">
-            <el-option
-              v-for="dict in riskKindOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('物料/作业')" prop="materials">
-          <el-input v-model="form.materials" :placeholder="$t('请输入') + $t('物料/作业')" />
-        </el-form-item>
-        <el-form-item :label="$t('漏量')" prop="leakedAmount">
-          <el-input v-model="form.leakedAmount" :placeholder="$t('请输入') + $t('漏量')" />
-        </el-form-item>
-        <el-form-item :label="$t('工艺安全相关事件')" prop="processSafety">
-          <el-input v-model="form.processSafety" :placeholder="$t('请输入') + $t('工艺安全相关事件')" />
-        </el-form-item>
-        <el-form-item :label="$t('是否工艺系统')" prop="processSystem">
-          <el-select v-model="form.processSystem" :placeholder="$t('请选择') + $t('是否工艺系统')">
-            <el-option
-              v-for="dict in processSystemOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="OAD" prop="oad">
-          <el-select v-model="form.oad" :placeholder="$t('请选择') + ' OAD'">
-            <el-option
-              v-for="dict in oadOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('事件简述/机械/电仪问题')" prop="bridfing">
-          <el-input v-model="form.bridfing" :placeholder="$t('请输入') + $t('事件简述/机械/电仪问题')" />
-        </el-form-item>
-        <el-form-item :label="$t('实际后果事件分级')" prop="actualClassification">
-          <el-select v-model="form.actualClassification" :placeholder="$t('请选择') + $t('实际后果事件分级')">
-            <el-option
-              v-for="dict in actualClassificationOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('可能性')" prop="probability">
-          <el-select v-model="form.probability" :placeholder="$t('请选择') + $t('可能性')" @change="changeProbability">
-            <el-option
-              v-for="dict in probabilityOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('严重性')" prop="severity">
-          <el-select v-model="form.severity" :placeholder="$t('请选择') + $t('严重性')" @change="changeSeverity">
-            <el-option
-              v-for="dict in severityOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('风险等级')" prop="riskClass">
-          <el-select v-model="form.riskClass" :placeholder="$t('请选择') + $t('风险等级')">
-            <el-option
-              v-for="dict in riskClassOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('潜在后果事件等级')" prop="potentialLevel">
-          <el-select v-model="form.potentialLevel" :placeholder="$t('请选择') + $t('潜在后果事件等级')">
-            <el-option
-              v-for="dict in potentialLevelOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('对策')" prop="measures">
-          <el-input v-model="form.measures" :placeholder="$t('请输入') + $t('对策')" />
-        </el-form-item>
-        <el-form-item :label="$t('输入AIMS')" prop="aims">
-          <el-input v-model="form.aims" :placeholder="$t('请输入') + $t('输入AIMS')" />
-        </el-form-item>
-        <el-form-item :label="$t('备注')" prop="remarks">
-          <el-input v-model="form.remarks" :placeholder="$t('请输入') + $t('备注')" />
-        </el-form-item>
-          <el-form-item :label="$t('归属部门')" prop="deptId">
+    <el-dialog v-dialogDrag :title="title" :visible.sync="open" width="1000px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="135px">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('日期')" prop="incidentDate">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.incidentDate"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              :placeholder="$t('请选择') + $t('日期')">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('单位')" prop="company">
+              <el-input v-model="form.company" :placeholder="$t('请输入') + $t('单位')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('事故报告编号')" prop="reportNo">
+              <el-input v-model="form.reportNo" :placeholder="$t('请输入') + $t('事故报告编号')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('调查报告编号')" prop="investigationNo">
+              <el-input v-model="form.investigationNo" :placeholder="$t('请输入') + $t('调查报告编号')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('承包商')" prop="contractor">
+              <el-select v-model="form.contractor" :placeholder="$t('请选择') + $t('承包商')">
+                <el-option
+                  v-for="dict in contractorOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('事件分类')" prop="classification">
+              <el-select v-model="form.classification" :placeholder="$t('请选择') + $t('事件分类')">
+                <el-option
+                  v-for="dict in classificationOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('未遂事件风险类别')" prop="riskKind">
+              <el-select v-model="form.riskKind" :placeholder="$t('请选择') + $t('未遂事件风险类别')">
+                <el-option
+                  v-for="dict in riskKindOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('物料/作业')" prop="materials">
+              <el-input v-model="form.materials" :placeholder="$t('请输入') + $t('物料/作业')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('漏量')" prop="leakedAmount">
+              <el-input v-model="form.leakedAmount" :placeholder="$t('请输入') + $t('漏量')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('工艺安全相关事件')" prop="processSafety">
+              <el-input v-model="form.processSafety" :placeholder="$t('请输入') + $t('工艺安全相关事件')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('是否工艺系统')" prop="processSystem">
+              <el-select v-model="form.processSystem" :placeholder="$t('请选择') + $t('是否工艺系统')">
+                <el-option
+                  v-for="dict in processSystemOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="OAD" prop="oad">
+              <el-select v-model="form.oad" :placeholder="$t('请选择') + ' OAD'">
+                <el-option
+                  v-for="dict in oadOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('事件简述/机械/电仪问题')" prop="bridfing">
+              <el-input v-model="form.bridfing" :placeholder="$t('请输入') + $t('事件简述/机械/电仪问题')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('实际后果事件分级')" prop="actualClassification">
+              <el-select v-model="form.actualClassification" :placeholder="$t('请选择') + $t('实际后果事件分级')">
+                <el-option
+                  v-for="dict in actualClassificationOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('可能性')" prop="probability">
+              <el-select v-model="form.probability" :placeholder="$t('请选择') + $t('可能性')" @change="changeProbability">
+                <el-option
+                  v-for="dict in probabilityOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('严重性')" prop="severity">
+              <el-select v-model="form.severity" :placeholder="$t('请选择') + $t('严重性')" @change="changeSeverity">
+                <el-option
+                  v-for="dict in severityOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('风险等级')" prop="riskClass">
+              <el-select v-model="form.riskClass" :placeholder="$t('请选择') + $t('风险等级')">
+                <el-option
+                  v-for="dict in riskClassOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('潜在后果事件等级')" prop="potentialLevel">
+              <el-select v-model="form.potentialLevel" :placeholder="$t('请选择') + $t('潜在后果事件等级')">
+                <el-option
+                  v-for="dict in potentialLevelOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('对策')" prop="measures">
+              <el-input v-model="form.measures" :placeholder="$t('请输入') + $t('对策')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('输入AIMS')" prop="aims">
+              <el-input v-model="form.aims" :placeholder="$t('请输入') + $t('输入AIMS')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('备注')" prop="remarks">
+              <el-input v-model="form.remarks" :placeholder="$t('请输入') + $t('备注')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('归属部门')" prop="deptId">
               <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择') + $t('归属部门')" />
-          </el-form-item>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">{{ $t('确 定') }}</el-button>
@@ -535,6 +601,63 @@ export default {
       form: {},
       // 表单校验
       rules: {
+        incidentDate: [
+          { required: true, message: this.$t('日期') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        reportNo: [
+          { required: true, message: this.$t('事故报告编号') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        investigationNo: [
+          { required: true, message: this.$t('调查报告编号') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        contractor: [
+          { required: true, message: this.$t('承包商') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        classification: [
+          { required: true, message: this.$t('事件分类') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        riskKind: [
+          { required: true, message: this.$t('未遂事件风险类别') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        company: [
+          { required: true, message: this.$t('单位') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        materials: [
+          { required: true, message: this.$t('物料/作业') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        leakedAmount: [
+          { required: true, message: this.$t('漏量') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        processSafety: [
+          { required: true, message: this.$t('工艺安全相关事件') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        processSystem: [
+          { required: true, message: this.$t('是否工艺系统') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        oad: [
+          { required: true, message: this.$t('OAD') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        bridfing: [
+          { required: true, message: this.$t('事件简述/机械/电仪问题') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        actualClassification: [
+          { required: true, message: this.$t('实际后果事件分级') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        probability: [
+          { required: true, message: this.$t('可能性') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        severity: [
+          { required: true, message: this.$t('严重性') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        riskClass: [
+          { required: true, message: this.$t('风险等级') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        potentialLevel: [
+          { required: true, message: this.$t('潜在后果事件等级') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        measures: [
+          { required: true, message: this.$t('对策') + this.$t('不能为空'), trigger: "blur" }
+        ],
         deptId: [
           { required: true, message: this.$t('部门编号') + this.$t('不能为空'), trigger: "blur" }
         ]

+ 41 - 6
ui/src/views/plant/targetlist/index.vue

@@ -357,19 +357,52 @@ export default {
       // 表单参数
       form: {},
       // 表单校验
-      rules: {
-        id: [
-          { required: true, message: this.$t('唯一标识id') + this.$t('不能为空'), trigger: "blur" }
+      rules: {},
+      rulesOne: {
+        plantCode: [
+          { required: true, message: this.$t('装置名称') + this.$t('不能为空'), trigger: "change" }
+        ],
+        item: [
+          { required: true, message: this.$t('序号') + this.$t('不能为空'), trigger: "blur" }
         ],
+        description: [
+          { required: true, message: this.$t('内容') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        year: [
+          { required: true, message: this.$t('年份') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        deptId: [
+          { required: true, message: this.$t('部门编号') +this.$t('不能为空'), trigger: "blur" }
+        ],
+        parentId: [
+          { required: true, message: this.$t('父级目录') +this.$t('不能为空'), trigger: "blur" }
+        ]
+      },
+      rulesTwo: {
         plantCode: [
           { required: true, message: this.$t('装置名称') + this.$t('不能为空'), trigger: "change" }
         ],
         item: [
           { required: true, message: this.$t('序号') + this.$t('不能为空'), trigger: "blur" }
         ],
+        description: [
+          { required: true, message: this.$t('内容') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        year: [
+          { required: true, message: this.$t('年份') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        yardstick: [
+          { required: true, message: this.$t('判断标准') + this.$t('不能为空'), trigger: "blur" }
+        ],
+        partners: [
+          { required: true, message: this.$t('合作者') + this.$t('不能为空'), trigger: "blur" }
+        ],
         deptId: [
           { required: true, message: this.$t('部门编号') +this.$t('不能为空'), trigger: "blur" }
         ],
+        parentId: [
+          { required: true, message: this.$t('父级目录') +this.$t('不能为空'), trigger: "blur" }
+        ]
       }
     };
   },
@@ -483,9 +516,6 @@ export default {
     handleUpdate(row) {
       this.reset();
 	    this.getTreeselect();
-      if (row != null) {
-        this.form.parentId = row.id;
-      }
       getTargetlist(row.id).then(response => {
         this.form = response.data;
         let partners = null;
@@ -493,6 +523,11 @@ export default {
           partners = this.form.partners.split(",");
         }
         this.form.partners = partners;
+        if (this.form.parentId !== 0) {
+          this.rules = this.rulesTwo
+        }else {
+          this.rules = this.rulesOne
+        }
         this.open = true;
         this.title = this.$t('修改') + this.$t('目标录入');
       });

+ 9 - 0
ui/src/views/plant/targetmeasures/index.vue

@@ -643,6 +643,15 @@
         form: {},
         // 表单校验
         rules: {
+          measures: [
+            { required: true, message: this.$t('方案/行动计划/措施') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          expectedDate: [
+            { required: true, message: this.$t('计划完成日期') + this.$t('不能为空'), trigger: "blur" }
+          ],
+          deptId: [
+            { required: true, message: this.$t('部门编号') +this.$t('不能为空'), trigger: "blur" }
+          ]
         },
         //下载按钮参数
         download: {

+ 178 - 160
ui/src/views/training/training/index.vue

@@ -205,136 +205,185 @@
     <non-add v-if="nonVisible" ref="nonAdd" @refreshDataList="getList" :showFlag="showFlag" @closeChildDialog="closeChildDialog"></non-add>
 
     <!-- 添加或修改培训计划对话框 -->
-    <el-dialog v-dialogDrag :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <!--<el-form-item :label="$t('装置名称')" prop="plantCode">
-          <el-select v-model="form.plantCode" :placeholder="$t('请选择') + $t('装置名称')">
-            <el-option
-              v-for="dict in plantCodeOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>-->
-        <el-form-item :label="$t('培训课程')" prop="course">
-          <el-input v-model="form.course" :placeholder="$t('请输入') + $t('培训课程')" />
-        </el-form-item>
-        <el-form-item :label="$t('培训类型')" prop="trainingType">
-          <el-select v-model="form.trainingType" :placeholder="$t('请选择') + $t('培训类型')">
-            <el-option
-              v-for="dict in trainingTypeOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('培训内容')" prop="content">
-          <el-input v-model="form.content" :placeholder="$t('请输入') + $t('培训内容')" />
-        </el-form-item>
-        <el-form-item :label="$t('课程代码')" prop="courseid">
-          <el-input v-model="form.courseid" :placeholder="$t('请输入') + $t('课程代码')" />
-        </el-form-item>
-        <el-form-item :label="$t('培训周期')" prop="period">
-          <el-input v-model="form.period" :placeholder="$t('请输入') + $t('培训周期')" />
-        </el-form-item>
-        <el-form-item :label="$t('课时')" prop="duration">
-          <el-input v-model="form.duration" :placeholder="$t('请输入') + $t('课时')" />
-        </el-form-item>
-        <el-form-item :label="$t('培训人')" prop="trainer">
-          <el-select v-model="form.trainer" filterable multiple :placeholder="$t('请选择') + $t('培训人')">
-            <el-option
-              v-for="dict in stffmgrOptions"
-              :key="dict.staffid"
-              :label="dict.name"
-              :value="dict.staffid">
-              <span style="float: left">{{ dict.name }}</span>
-              <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.staffid }}</span>
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('部门')" prop="unit">
-          <el-select v-model="form.unit" multiple :placeholder="$t('请选择') + $t('部门')" >
-            <el-option
-              v-for="dict in unitOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('培训岗位')" prop="position">
-          <el-select v-model="form.position" multiple :placeholder="$t('请选择') + $t('培训岗位')" @change="changePosition">
-            <el-option
-              v-for="dict in positionOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('是否存在') +$t('指定人员')" prop="haveDesignated">
-          <el-checkbox v-model="haveDesignated" @change="changeHave"></el-checkbox>
-        </el-form-item>
-        <el-form-item :label="$t('指定人员') + $t('岗位')" prop="designatedPosition" v-if="haveDesignated === true">
-          <el-select v-model="designatedPositions" multiple :placeholder="$t('请选择') + $t('指定岗位')" @change="changeDesignated">
-            <el-option
-              v-for="dict in designatedPositionOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="dict.dictValue"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('指定人员')" prop="designatedStaff" v-if="haveDesignated === true && designatedPositions.length > 0">
-          <el-select v-model="designatedStaffs" filterable multiple :placeholder="$t('请选择') + $t('指定人员')">
-            <el-option
-              v-for="dict in stffmgrOptions"
-              :key="dict.staffid"
-              :label="dict.name"
-              :value="dict.staffid">
-              <span style="float: left">{{ dict.name }}</span>
-              <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.staffid }}</span>
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="$t('年份')" prop="year">
-          <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.year"
-                          type="year"
-                          value-format="yyyy"
-                          :placeholder="$t('请选择') + $t('年份')">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item :label="$t('培训开始日期')" prop="courseStartdate">
-          <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.courseStartdate"
-                          type="date"
-                          value-format="yyyy-MM-dd"
-                          :placeholder="$t('请选择') + $t('培训开始日期')">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item :label="$t('培训结束日期')" prop="courseEnddate">
-          <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.courseEnddate"
-                          type="date"
-                          value-format="yyyy-MM-dd"
-                          :placeholder="$t('请选择') + $t('培训结束日期')">
-          </el-date-picker>
-        </el-form-item >
+    <el-dialog v-dialogDrag :title="title" :visible.sync="open" width="800px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="110px">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('培训课程')" prop="course">
+              <el-input v-model="form.course" :placeholder="$t('请输入') + $t('培训课程')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('培训类型')" prop="trainingType">
+              <el-select v-model="form.trainingType" :placeholder="$t('请选择') + $t('培训类型')">
+                <el-option
+                  v-for="dict in trainingTypeOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('培训内容')" prop="content">
+              <el-input v-model="form.content" :placeholder="$t('请输入') + $t('培训内容')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('课程代码')" prop="courseid">
+              <el-input v-model="form.courseid" :placeholder="$t('请输入') + $t('课程代码')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('培训周期')" prop="period">
+              <el-input v-model="form.period" :placeholder="$t('请输入') + $t('培训周期')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('课时')" prop="duration">
+              <el-input v-model="form.duration" :placeholder="$t('请输入') + $t('课时')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('培训人')" prop="trainer">
+              <el-select v-model="form.trainer" filterable multiple :placeholder="$t('请选择') + $t('培训人')">
+                <el-option
+                  v-for="dict in stffmgrOptions"
+                  :key="dict.staffid"
+                  :label="dict.name"
+                  :value="dict.staffid">
+                  <span style="float: left">{{ dict.name }}</span>
+                  <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.staffid }}</span>
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('部门')" prop="unit">
+              <el-select v-model="form.unit" multiple :placeholder="$t('请选择') + $t('部门')" >
+                <el-option
+                  v-for="dict in unitOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('培训岗位')" prop="position">
+              <el-select v-model="form.position" multiple :placeholder="$t('请选择') + $t('培训岗位')" @change="changePosition">
+                <el-option
+                  v-for="dict in positionOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('是否存在') +$t('指定人员')" prop="haveDesignated" label-width="140px">
+              <el-checkbox v-model="haveDesignated" @change="changeHave"></el-checkbox>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('年份')" prop="year">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.year"
+                              type="year"
+                              value-format="yyyy"
+                              :placeholder="$t('请选择') + $t('年份')">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('指定人员') + $t('岗位')" prop="designatedPosition" v-if="haveDesignated === true">
+              <el-select v-model="designatedPositions" multiple :placeholder="$t('请选择') + $t('指定岗位')" @change="changeDesignated">
+                <el-option
+                  v-for="dict in designatedPositionOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="dict.dictValue"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('培训开始日期')" prop="courseStartdate">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.courseStartdate"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              :placeholder="$t('请选择') + $t('培训开始日期')">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('指定人员')" prop="designatedStaff" v-if="haveDesignated === true && designatedPositions.length > 0">
+              <el-select v-model="designatedStaffs" filterable multiple :placeholder="$t('请选择') + $t('指定人员')">
+                <el-option
+                  v-for="dict in stffmgrOptions"
+                  :key="dict.staffid"
+                  :label="dict.name"
+                  :value="dict.staffid">
+                  <span style="float: left">{{ dict.name }}</span>
+                  <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.staffid }}</span>
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('培训结束日期')" prop="courseEnddate">
+              <el-date-picker clearable size="small" style="width: 200px"
+                              v-model="form.courseEnddate"
+                              type="date"
+                              value-format="yyyy-MM-dd"
+                              :placeholder="$t('请选择') + $t('培训结束日期')">
+              </el-date-picker>
+            </el-form-item >
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('是否完成')" prop="isfinish">
+              <el-select v-model="form.isfinish" :placeholder="$t('请选择') + $t('是否完成')">
+                <el-option
+                  v-for="dict in isfinishOptions"
+                  :key="dict.dictValue"
+                  :label="dict.dictLabel"
+                  :value="parseInt(dict.dictValue)"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item :label="$t('备注')" prop="remarks">
+              <el-input v-model="form.remarks" :placeholder="$t('请输入') + $t('备注')" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item :label="$t('归属部门')" prop="deptId">
+              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择') + $t('归属部门')" />
+            </el-form-item>
+          </el-col>
+        </el-row>
         <el-form-item :label="$t('图片')" v-if="this.form.trainingType == '12'" prop="picUrl">
-<!--          <el-upload-->
-<!--            class="avatar-uploader"-->
-<!--            :headers="pic.headers"-->
-<!--            :action="pic.url"-->
-<!--            :show-file-list="false"-->
-<!--            :on-success="handleAvatarSuccess"-->
-<!--            :before-upload="beforeAvatarUpload"-->
-<!--          >-->
-<!--            <img v-if="pic.imageUrl" :src="pic.imageUrl" class="avatar">-->
-<!--            <i v-else class="el-icon-plus avatar-uploader-icon"></i>-->
-<!--          </el-upload>-->
           <el-upload
             :action="pic.url"
             :headers="pic.headers"
@@ -352,37 +401,6 @@
             <img width="100%" :src="dialogImageUrl" alt="">
           </el-dialog>
         </el-form-item>
-        <el-form-item :label="$t('是否完成')" prop="isfinish">
-          <el-select v-model="form.isfinish" :placeholder="$t('请选择') + $t('是否完成')">
-            <el-option
-              v-for="dict in isfinishOptions"
-              :key="dict.dictValue"
-              :label="dict.dictLabel"
-              :value="parseInt(dict.dictValue)"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <!--<el-form-item :label="$t('未参培人员名单')" prop="nonParticipants">
-          <el-select v-model="nonParticipants" filterable multiple :placeholder="$t('请选择') + $t('未参培人员名单')">
-            <el-option
-              v-for="dict in stffmgrOptions"
-              :key="dict.staffid"
-              :label="dict.name"
-              :value="dict.staffid">
-              <span style="float: left">{{ dict.name }}</span>
-              <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.staffid }}</span>
-            </el-option>
-          </el-select>
-        </el-form-item>-->
-        <!--<el-form-item :label="$t('确认人')" prop="confirmor">
-          <el-input v-model="form.confirmor" :placeholder="$t('请输入') + $t('确认人')" />
-        </el-form-item>-->
-        <el-form-item :label="$t('备注')" prop="remarks">
-          <el-input v-model="form.remarks" :placeholder="$t('请输入') + $t('备注')" />
-        </el-form-item>
-          <el-form-item :label="$t('归属部门')" prop="deptId">
-              <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" :placeholder="$t('请选择') + $t('归属部门')" />
-          </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm" :disabled="submitDisabled">{{ $t('确 定') }}</el-button>

+ 24 - 14
ui/src/views/training/worklicense/index.vue

@@ -175,8 +175,8 @@
     />
 
     <!-- 添加或修改上岗证一览对话框 -->
-    <el-dialog v-dialogDrag :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+    <el-dialog v-dialogDrag :title="title" :visible.sync="open" width="800px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
         <el-form-item :label="$t('装置名称')" prop="plantCode">
           <el-select v-model="form.plantCode" :placeholder="$t('请选择') + $t('装置名称')">
             <el-option
@@ -219,18 +219,28 @@
         <el-form-item :label="$t('证件号')" prop="crackingIdnum">
           <el-input v-model="form.crackingIdnum" :placeholder="$t('请输入') +$t('证件号') " />
         </el-form-item>
-        <el-form-item :label="$t('裂解')" prop="boiler">
-          <el-checkbox v-model="form.boiler" @change="changeBoiler()"></el-checkbox>
-        </el-form-item>
-        <el-form-item :label="$t('压缩')" prop="cracking">
-          <el-checkbox v-model="form.cracking" @change="changeCracking()"></el-checkbox>
-        </el-form-item>
-        <el-form-item :label="$t('分离')" prop="hotarea">
-          <el-checkbox v-model="form.hotarea" @change="changeHotarea()"></el-checkbox>
-        </el-form-item>
-        <el-form-item label="PGU/AEU" prop="coldarea">
-          <el-checkbox v-model="form.coldarea" @change="changeColdarea()"></el-checkbox>
-        </el-form-item>
+        <el-row>
+          <el-col :span="6">
+            <el-form-item :label="$t('裂解')" prop="boiler">
+              <el-checkbox v-model="form.boiler" @change="changeBoiler()"></el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item :label="$t('压缩')" prop="cracking">
+              <el-checkbox v-model="form.cracking" @change="changeCracking()"></el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item :label="$t('分离')" prop="hotarea">
+              <el-checkbox v-model="form.hotarea" @change="changeHotarea()"></el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="PGU/AEU" prop="coldarea">
+              <el-checkbox v-model="form.coldarea" @change="changeColdarea()"></el-checkbox>
+            </el-form-item>
+          </el-col>
+        </el-row>
         <el-form-item :label="$t('取复证日期')" prop="recertificatedate">
           <el-date-picker clearable size="small" style="width: 200px"
             v-model="form.recertificatedate"