Ver código fonte

前端新增工程名称不能重复

wangzhe 10 meses atrás
pai
commit
46ce2dbbe0
2 arquivos alterados com 66 adições e 26 exclusões
  1. 10 2
      src/api/zdsz/engineeringGY.js
  2. 56 24
      src/views/zdsz/engineeringGY/index.vue

+ 10 - 2
src/api/zdsz/engineeringGY.js

@@ -1,11 +1,19 @@
 import request from '@/utils/request'
 
+// 查询工业工程名称唯一性
+export function testEnginNameUnique(data) {
+  return request({
+    url: `/zdsz/engineeringGY/testEnginNameUnique`,
+    method: 'get',
+    params: data
+  })
+}
 
-export function getEngineeIndustryList(sata) {
+export function getEngineeIndustryList(data) {
   return request({
     url: `/zdsz/engineeringGY/list`,
     method: 'get',
-    params:sata
+    params:data
   })
 }
 

+ 56 - 24
src/views/zdsz/engineeringGY/index.vue

@@ -511,22 +511,6 @@
           <el-input v-model="form.supervisionPhone" placeholder="请填写监理联系电话" maxlength="13"
                     :readonly="title == '添加用料' "></el-input>
         </el-form-item>
-        <el-form-item label="庭院PE管材预设" prop="pePreset">
-          <el-input v-model="form.pePresetTy" placeholder="请填写PE管材预设" maxlength="20" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
-                    :readonly="title == '添加用料' "></el-input>
-        </el-form-item>
-        <el-form-item label="庭院钢材预设" prop="gcPreset">
-          <el-input v-model="form.gcPresetTy" placeholder="请填写钢材预设" maxlength="13" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
-                    :readonly="title == '添加用料' "></el-input>
-        </el-form-item>
-        <el-form-item label="室内PE管材预设" prop="pePreset">
-          <el-input v-model="form.pePresetSn" placeholder="请填写PE管材预设" maxlength="20" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
-                    :readonly="title == '添加用料' "></el-input>
-        </el-form-item>
-        <el-form-item label="室内钢材预设" prop="gcPreset">
-          <el-input v-model="form.gcPresetSn" placeholder="请填写钢材预设" maxlength="13" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
-                    :readonly="title == '添加用料' "></el-input>
-        </el-form-item>
         <el-form-item label="工程分类" prop="enginType" >
           <el-select v-model="form.enginType" placeholder="请选择工程分类" style="width: 100%"
                      :disabled="title == '添加用料' ">
@@ -549,6 +533,22 @@
             ></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="室内PE管材" prop="pePresetSn" v-if="enginClassificationQuery.includes('室内管线')">
+          <el-input v-model="form.pePresetSn" placeholder="请填写PE管材预设" maxlength="20" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
+        <el-form-item label="室内钢材" prop="gcPresetSn" v-if="enginClassificationQuery.includes('室内管线')">
+          <el-input v-model="form.gcPresetSn" placeholder="请填写钢材预设" maxlength="13" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
+        <el-form-item label="庭院PE管材" prop="pePresetTy" v-if="enginClassificationQuery.includes('庭院')">
+          <el-input v-model="form.pePresetTy" placeholder="请填写PE管材预设" maxlength="20" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
+        <el-form-item label="庭院钢材" prop="gcPresetTy" v-if="enginClassificationQuery.includes('庭院')">
+          <el-input v-model="form.gcPresetTy" placeholder="请填写钢材预设" maxlength="13" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
         <el-row :gutter="20">
           <el-col :span="24">
             <el-form-item label="附件" v-if="form.id" style="width: 100%">
@@ -676,6 +676,7 @@
 </template>
 <script>
 import {
+  testEnginNameUnique,
   addEngineeEngineeIndustry,
   DelEngineeEngineeIndustry,
   EditEngineeEngineeIndustry,
@@ -819,17 +820,44 @@ export default {
       // 表单校验
       rules: {
         enginName: [
-          {required: true, message: "工程名称不能为空", trigger: 'blur'}
+          {required: true, validator:function(rule, value, callback) {
+            if(value == null || value == ''){
+              callback(new Error("工程名称不能为空"))
+            }else {
+              testEnginNameUnique({enginName: value, enginType: '工业工程'}).then(res => {
+                alert(res.data)
+                if(!res.data){
+                  callback(new Error("工程名称不能重复"))
+                }else {
+                  // callback(new Error("工程名称可以使用"))
+                }
+              });
+
+              // callback(new Error("123"))
+            }
+          }, trigger: 'blur'}
         ],
         enginType: [
           {required: true, message: "工程类型不能为空", trigger: 'blur'}
         ],
-        enginClassificationQuery: [
-          {required: true, message: "工程分类不能为空", trigger: 'blur'}
+        pePresetTy: [
+          {required: true, message: "庭院PE管材预设", trigger: 'blur'}
+        ],
+        gcPresetTy: [
+          {required: true, message: "庭院钢材预设", trigger: 'blur'}
+        ],
+        pePresetSn: [
+          {required: true, message: "室内PE管材预设", trigger: 'blur'}
         ],
-        enginClassification: [
-          {required: true, message: "工程分类不能为空", trigger: 'blur'}
+        gcPresetSn: [
+          {required: true, message: "室内钢材预设", trigger: 'blur'}
         ],
+        // enginClassificationQuery: [
+        //   {required: true, message: "工程分类不能为空", trigger: 'blur'}
+        // ],
+        // enginClassification: [
+        //   {required: true, message: "工程分类不能为空", trigger: 'blur'}
+        // ],
         constructUnit: [
           {required: true, message: "建筑单位不能为空", trigger: 'blur'}
         ],
@@ -1177,7 +1205,8 @@ export default {
     },
     // 取消按钮
     cancel() {
-      this.open = false;
+      this.open = false; // 修改
+      this.openadd = false; // 新增
       this.reset();
     },
     // 表单重置
@@ -1187,6 +1216,7 @@ export default {
       }
       this.form.zEngineeringNodeBo = {}
       this.form.zEngineeringNodeBo.zEngineeringInfoBo = {}
+      this.enginClassificationQuery = [];
       this.zEngineeringMaterialBo = []
       this.zEngineeringMaterialBo.push({
         materialQuality: '', // 用料材质
@@ -1272,7 +1302,7 @@ export default {
         }
       })
     },
-    /** 提交按钮 */
+    /** 提交按钮 修改提交*/
     submitForm() {
       this.$refs["form"].validate(valid => {
         if (valid) {
@@ -1311,7 +1341,7 @@ export default {
         }
       });
     },
-    /** 提交按钮 */
+    /** 提交按钮 新增提交 */
     submitFormAdd() {
       this.$refs["form"].validate(valid => {
         if (valid) {
@@ -1346,6 +1376,8 @@ export default {
               })
               this.getList();
             }
+          }else{
+            this.$modal.alertWarning("请选择工程类型!");
           }
         }
       });