浏览代码

工业工程|市政工程 提交校验问题

吕宣芝 1 年之前
父节点
当前提交
2d6075dd86
共有 2 个文件被更改,包括 82 次插入108 次删除
  1. 2 7
      src/api/rules.js
  2. 80 101
      src/views/zdsz/engineeringIndustry/index.vue

+ 2 - 7
src/api/rules.js

@@ -11,14 +11,9 @@ export function validPhoneMobile(rule, value, callback){
     } else {
       let regPone;
       let mobile = /^1([3456789])\d{9}$/; //最新16手机正则
-      let tel = /^(0\d{2,3}-){0,1}\d{7,8}$/; //座机
-      if (value.charAt(0) == 0) {    // charAt查找第一个字符方法,用来判断输入的是座机还是手机号
-        regPone = tel;
-      } else {
-        regPone = mobile;
-      }
+      regPone = mobile;
       if (!regPone.test(value)) {
-        callback(new Error("请填写11位手机号或座机号(座机格式为 区号-座机号码)"))
+        callback(new Error("请填写11位手机号"))
       }
       callback();
     }

+ 80 - 101
src/views/zdsz/engineeringIndustry/index.vue

@@ -142,7 +142,7 @@
           <el-input v-model="form.designHead" placeholder="请填写现场负责人" maxlength="20"></el-input>
         </el-form-item>
         <el-form-item label="设计联系方式" prop="designPhone">
-          <el-input v-model="form.designPhone" placeholder="请填写联系方式" maxlength="13"></el-input>
+          <el-input v-model="form.designPhone" placeholder="请填写设计联系方式" maxlength="11"></el-input>
         </el-form-item>
         <el-form-item label="监理单位" prop="supervisionUnit">
           <el-input v-model="form.supervisionUnit" placeholder="请填写监理单位" maxlength="50"/>
@@ -151,7 +151,7 @@
           <el-input v-model="form.supervisionHead" placeholder="请填写监理负责人" maxlength="20"></el-input>
         </el-form-item>
         <el-form-item label="监理联系电话" prop="supervisionPhone">
-          <el-input v-model="form.supervisionPhone" placeholder="请填写联系方式" maxlength="13"></el-input>
+          <el-input v-model="form.supervisionPhone" placeholder="请填写监理联系电话" maxlength="11"></el-input>
         </el-form-item>
         <el-form-item label="工程类型" prop="enginType">
           <el-select v-model="form.enginType" placeholder="请选择工程类型" style="width: 100%">
@@ -175,43 +175,24 @@
         </el-form-item>
         <el-row :gutter="20">
           <el-col :span="24">
-            <el-form-item label="文件" prop="" v-if="currentType==='put'">
+            <el-form-item label="文件" prop="" v-if="currentType==='put'" style="width: 100%">
               <ObsFileUpload ref="obsFileUpload" :file-size="100" :file-type="['dwg','dwt','doc','docx','xls','xlsx','png', 'jpg', 'jpeg']" :limit="9999"  :value="form.pics"
               ></ObsFileUpload>
             </el-form-item>
-            <el-form-item label="文件" prop="" v-if="currentType==='add'">
+            <el-form-item label="文件" prop="" v-if="currentType==='add'" style="width: 100%">
               <ObsFileUpload ref="obsFileUpload" :file-size="100" :file-type="['dwg','dwt','doc','docx','xls','xlsx','png', 'jpg', 'jpeg']" :limit="9999"  :value="form.files"
               ></ObsFileUpload>
             </el-form-item>
           </el-col>
         </el-row>
-<!--        <el-row>-->
-<!--          <el-form-item label="附件" prop="zEngineeringAttachmentsList" style="width: 100%;">-->
-<!--            <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['dwg','dwt','doc','docx','xls','xlsx','png', 'jpg', 'jpeg']" :value="zEngineeringAttachmentsList"-->
-<!--                            @input="getUrl"></ObsImageUpload>-->
-<!--          </el-form-item>-->
-<!--        </el-row>-->
-
-<!--        <el-row>-->
-<!--          <el-form-item label="备注" prop="remark">-->
-<!--            <el-input-->
-<!--              v-model="form.remark"-->
-<!--              type="textarea"-->
-<!--              placeholder="请输入内容"-->
-<!--              class="remark_input"-->
-<!--              maxlength="200"-->
-<!--              show-word-limit-->
-<!--            />-->
-<!--          </el-form-item>-->
-<!--        </el-row>-->
+        <div style="width: 20%; float: right">
+          <el-button :loading="buttonLoading" type="primary" @click="toNodeDetail">填写施工信息</el-button>
+          <el-button @click="cancel">取 消</el-button>
+        </div>
       </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button :loading="buttonLoading" type="primary" @click="toNodeDetail">填写施工信息</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
     </el-dialog>
     <!-- 施工信息dialog -->
-        <el-dialog :visible.sync="nodeDetailVisible" title="施工信息" append-to-body customClass="appendElNodeDialog" width="70% !important">
+    <el-dialog :visible.sync="nodeDetailVisible" title="施工信息" append-to-body customClass="appendElNodeDialog" width="70% !important">
           <!-- 节点表单 -->
           <el-form ref="nodeForm" :model="form.zEngineeringNodeBo.zEngineeringInfoBo" :rules="nodeRules" label-width="200px">
             <el-form-item label="施工时间" prop="constructTime">
@@ -226,68 +207,52 @@
             <el-form-item label="施工人" prop="constructUser" v-if="form.id">
               <el-input v-model="form.zEngineeringNodeBo.zEngineeringInfoBo.constructUser" placeholder="请填写施工人" maxlength="20" disabled></el-input>
             </el-form-item>
-<!--            <el-button icon="el-icon-plus" size="small" type="primary" @click="addzEngineeringMaterialBo()">添加用料</el-button>-->
-<!--            <el-row :gutter="10">-->
-<!--              <div v-for="(item, index) in form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo" :key="index" style="width: 100px;height: 100px;background-color: #0BB0DE">-->
-<!--                <el-col :span="7">-->
-<!--                  <div style="width: 100px;height: 100px;background-color: #0BB0DE">-->
-<!--                    <el-form-item-->
-<!--                      :prop="'zEngineeringInfoBo.zEngineeringMaterialBo.' + index + '.materialQuality'"-->
-<!--                      label="材质" + index-->
-<!--                      :rules="{required: true, message: '材质不能为空', trigger: 'blur'}">-->
-<!--                      <el-input v-model="item.materialQuality" placeholder="请填写材质" maxlength="20"/>-->
-<!--                    </el-form-item>-->
-<!--                  </div>-->
-<!--                </el-col>-->
-<!--                <el-col :span="7">-->
-<!--                  <div style="width: 100px;height: 100px;background-color: #0BB0DE">-->
-<!--                    <el-form-item-->
-<!--                      :prop="'zEngineeringInfoBo.zEngineeringMaterialBo.' + index + '.specifications'"-->
-<!--                      label="规格" + index-->
-<!--                      :rules="{required: true, message: '规格不能为空', trigger: 'blur'}">-->
-<!--                      <el-input v-model="item.specifications" placeholder="请填写材质" maxlength="20"/>-->
-<!--                    </el-form-item>-->
-<!--                  </div>-->
-<!--                </el-col>-->
-<!--                <el-col :span="7">-->
-<!--                  <div style="width: 100px;height: 100px;background-color: #0BB0DE">-->
-<!--                    <el-form-item-->
-<!--                      :prop="'zEngineeringInfoBo.zEngineeringMaterialBo.' + index + '.number'"-->
-<!--                      label="数量" + index-->
-<!--                      :rules="{required: true, message: '数量不能为空', trigger: 'blur'}">-->
-<!--                      <el-input v-model="item.number" placeholder="请填写数量" maxlength="8"/>-->
-<!--                    </el-form-item>-->
-<!--                  </div>-->
-<!--                </el-col>-->
-<!--                <el-col :span="3">-->
-<!--                  <div style="width: 100px;height: 100px;background-color: #0BB0DE">-->
-<!--                    <el-form-item>-->
-<!--                      <el-button type="danger" icon="el-icon-delete" @click.prevent="removezEngineeringMaterialBo(item,index)"/>-->
-<!--                    </el-form-item>-->
-<!--                  </div>-->
-<!--                </el-col>-->
-<!--              </div>-->
-<!--            </el-row>-->
             <el-row>
               <el-form-item label="照片" prop="zEngiineeringPhotoBoList" style="width: 100%;">
                 <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="form.zEngineeringNodeBo.zEngineeringInfoBo.zEngiineeringPhotoBoList"
                                 @input="getUrl"></ObsImageUpload>
               </el-form-item>
             </el-row>
-            <!-- 节点复选框 -->
-<!--            <el-checkbox-group v-model="currentNode" @change="currentNodeHasChanged">-->
-<!--              <el-checkbox-->
-<!--                :label="e"-->
-<!--                v-for="e in nodeList"-->
-<!--                :key="e"-->
-<!--              ></el-checkbox>-->
-<!--            </el-checkbox-group>-->
-<!--            <div style="display: flex;margin-top: 3%;">-->
-              <div style="width: 20%; float: right">
-                <el-button :loading="buttonLoading" type="primary" @click="submitForm">提交</el-button>
-                <el-button @click="nodeCancel">取 消</el-button>
-              </div>
-<!--            </div>-->
+            <el-row v-for="(item, index) in form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo" :key="index">
+              <el-col :span="7">
+                <el-form-item
+                  :prop="'zEngineeringMaterialBo.' + index + '.materialQuality'"
+                  label-width="50px"
+                  label="材质"  :rules="{required: true, message: '请输入材质', trigger: 'blur'}">
+                  <el-input v-model="item.materialQuality" placeholder="请输入材质" style="width: 100%"/>
+                </el-form-item>
+              </el-col>
+              <el-col :span="7">
+                <el-form-item
+                  :prop="'zEngineeringMaterialBo.' + index + '.specifications'"
+                  label-width="50px"
+                  label="规格"  :rules="{required: true, message: '请输入规格', trigger: 'blur'}">
+                  <el-input v-model="item.specifications" placeholder="请输入规格" style="width: 100%"/>
+                </el-form-item>
+              </el-col>
+              <el-col :span="7">
+                <el-form-item
+                  :prop="'zEngineeringMaterialBo.' + index + '.number'"
+                  label-width="50px"
+                  label="数量"  :rules="{required: true, message: '请输入数量', trigger: 'change'}">
+                  <div class="block" style="display: inline-block; margin-right: 20px;">
+                    <el-input v-model="item.number" placeholder="请输入数量" style="width: 100%"/>
+                  </div>
+                </el-form-item>
+              </el-col>
+              <el-col :span="3">
+                <el-form-item style="margin-left: -120px;">
+                  <el-button v-if="form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo.length > 1" @click="removezEngineeringMaterialBo(index)">
+                    删除
+                  </el-button>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <div style="width: 25%; float: right">
+              <el-button @click="addzEngineeringMaterialBo">新增用料信息</el-button>
+              <el-button :loading="buttonLoading" type="primary" @click="submitForm">提交</el-button>
+              <el-button @click="nodeCancel">取 消</el-button>
+            </div>
           </el-form>
         </el-dialog>
     <ConstructionDetails
@@ -308,6 +273,8 @@ import {
 import EngineePipe from '@/components/EngineePipe'
 import { validPhoneMobile } from '@/api/rules'
 import ConstructionDetails from "@/components/ConstructionDetails/index.vue";
+import { getEnginMaterialQualityList } from '@/api/zdsz/enginee'
+import { getEnginSpecificationsList } from '@/api/zdsz/enginSpecifications'
 
 export default {
   name: "openrepair",
@@ -462,13 +429,10 @@ export default {
       // 节点规则校验
       nodeRules: {
         // constructTime: [
-        //   {required: true, message: "施工时间不能为空", trigger: 'blur'}
-        // ],
-        // constructAddre: [
-        //   {required: true, message: "施工地址不能为空", trigger: 'blur'}
+        //   {required: true, message: "施工时间不能为空", trigger: ['blur','change']}
         // ],
         // zEngiineeringPhotoBoList: [
-        //   {required: true, message: "图片不能为空", trigger: 'blur'}
+        //   {required: true, message: "图片不能为空", trigger: ['blur','change']}
         // ],
 
       },
@@ -476,24 +440,31 @@ export default {
     };
   },
   created() {
-    this.getList();
     // 根据url获取type节点类型
     this.getType();
     if (this.form.type === '2') {
       this.engineeType = false
     }
+    this.getList();
+  },
+  mounted() {
+    // 手动渲染
+    setInterval(() =>{
+      this.$forceUpdate()
+    },500)
   },
   methods: {
-    // addzEngineeringMaterialBo(){
-    //   this.form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo.push({
-    //     materialQuality: '', // 用料材质
-    //     specifications: '', // 用料规格
-    //     number: '' // 用料数量
-    //   })
-    // },
-    // removezEngineeringMaterialBo(item, index){
-    //   this.form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo.splice(index, 1)
-    // },
+    addzEngineeringMaterialBo(){
+      console.log(this.form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo)
+      this.form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo.push({
+        materialQuality: '', // 用料材质
+        specifications: '', // 用料规格
+        number: '' // 用料数量
+      })
+    },
+    removezEngineeringMaterialBo(index){
+      this.form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo.splice(index, 1)
+    },
     // 根据url获取type节点类型
     getType() {
       const queryString = window.location.search;
@@ -503,7 +474,6 @@ export default {
         this.form.type = type;
         this.form.zEngineeringNodeBo.type = (type === '1' ? "工业工程" : "市政工程")
       }
-
     },
     // 新增顶管工程
     addNewPipe(data) {
@@ -548,6 +518,15 @@ export default {
     /** 查询市政工程|工业工程列表 */
     getList() {
       this.loading = true;
+      let enginType = this.form.zEngineeringNodeBo.type;
+      // 获取材质 市政工程 1 - 工业工程 2
+      getEnginMaterialQualityList({enginType}).then(res => {
+        console.log(res);
+      });
+      // 获取材质规格
+      getEnginSpecificationsList('材质ID').then(res => {
+        console.log(res)
+      })
       getEngineeIndustryList({
         type: this.form.type
       }).then(res => {