Pārlūkot izejas kodu

Merge branch 'zdsz3.0' of http://192.168.10.18:3000/sunwei/zdsz_vue into zdsz3.0

付宇航 1 gadu atpakaļ
vecāks
revīzija
4b74ee750a

+ 28 - 0
src/api/rules.js

@@ -0,0 +1,28 @@
+/**
+ * 验证手机号,座机号
+ * @param {*} rule
+ * @param {*} value
+ * @param {*} callback
+ */
+export function validPhoneMobile(rule, value, callback){
+  if (value){
+    if (value === '') {
+      callback(new Error('请输入11位手机号'));
+    } 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;
+      }
+      if (!regPone.test(value)) {
+        callback(new Error("请填写11位手机号或座机号(座机格式为 区号-座机号码)"))
+      }
+      callback();
+    }
+  }else {
+    callback();
+  }
+}

+ 44 - 0
src/api/zdsz/engineeringCivil.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询民用工程列表
+export function listEngineeringCivil(query) {
+  return request({
+    url: '/zdsz/engineeringCivil/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询民用工程详细
+export function getEngineeringCivil(id) {
+  return request({
+    url: '/zdsz/engineeringCivil/' + id,
+    method: 'get'
+  })
+}
+
+// 新增民用工程
+export function addEngineeringCivil(data) {
+  return request({
+    url: '/zdsz/engineeringCivil',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改民用工程
+export function updateEngineeringCivil(data) {
+  return request({
+    url: '/zdsz/engineeringCivil',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除民用工程
+export function delEngineeringCivil(id) {
+  return request({
+    url: '/zdsz/engineeringCivil/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
src/api/zdsz/engineeringDangerous.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询危险工程列表
+export function listEngineeringDangerous(query) {
+  return request({
+    url: '/zdsz/engineeringDangerous/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询危险工程详细
+export function getEngineeringDangerous(id) {
+  return request({
+    url: '/zdsz/engineeringDangerous/query/' + id,
+    method: 'get'
+  })
+}
+
+// 新增危险工程
+export function addEngineeringDangerous(data) {
+  return request({
+    url: '/zdsz/engineeringDangerous',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改危险工程
+export function updateEngineeringDangerous(data) {
+  return request({
+    url: '/zdsz/engineeringDangerous',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除危险工程
+export function delEngineeringDangerous(id) {
+  return request({
+    url: '/zdsz/engineeringDangerous/' + id,
+    method: 'delete'
+  })
+}

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

@@ -1,6 +1,14 @@
-import request from "@/utils/request";
+import request from '@/utils/request'
 
-export function getEngineeIndustryList({type, enginType ='',}) {
+// 根据url直接获取type
+function getTypeFromUrl(url) {
+  // 使用正则表达式或其他方法从 URL 中提取 type 参数
+  const params = new URLSearchParams(url.split('?')[1]);
+  return params.get('type');
+}
+
+export function getEngineeIndustryList({enginType ='',}) {
+  const type = getTypeFromUrl(window.location.href);
   return request({
     url: `/zdsz/engineeringIndustry/list?type=${type}&enginType=${enginType}`,
     method: 'get',

+ 42 - 8
src/components/EngineeNode/index.vue

@@ -9,11 +9,11 @@
 
 <template>
   <div style="width: 100%; height: 100%;">
-    <el-dialog :visible="nodeDetailVisible" :rules="nodeRules" title="节点信息" append-to-body customClass="appendElNodeDialog" width="70% !important"> 
+    <el-dialog :visible="nodeDetailVisible" :rules="nodeRules" title="节点信息" append-to-body customClass="appendElNodeDialog" width="70% !important">
       <!-- 节点选项卡 -->
       <el-tabs type="border-card" class="engineNodeTypes" @tab-click="nodeHasChanged">
         <el-tab-pane label="基本信息"></el-tab-pane>
-        <el-tab-pane 
+        <el-tab-pane
           :label="e"
           v-for="e in currentNode"
           :key="e"
@@ -123,7 +123,7 @@
             </el-form-item>
             <!-- 节点复选框 -->
             <el-checkbox-group v-model="currentNode" @change="currentNodeHasChanged">
-              <el-checkbox 
+              <el-checkbox
                 :label="e"
                 v-for="e in nodeList"
                 :key="e"
@@ -194,7 +194,6 @@
 <script>
 import {
     addEnginee,                                // 新增工业工程
-    addEngineeringDangerous,                   // 新增危险作业工程
     addEngineeringPipeJacking,                 // 新增顶管工程
     putEngineeringPipeJacking,                 // 修改顶管工程
     getEnginMaterialQualityList,               // 获取工程材质
@@ -203,6 +202,7 @@ import {
     putEngineeringCivil,                       // 民用修改
     putEngineeringInfrastructure,              // 基建修改
 } from "@/api/zdsz/enginee"
+import {updateEngineeringDangerous,addEngineeringDangerous} from "@/api/zdsz/engineeringDangerous";
 export default {
     name:'EngineeNode',
     dicts:['pass_check',
@@ -339,7 +339,7 @@ export default {
           this.currentPickedNode = nodeItem
           console.log(nodeItem)
         },
-        // 当前所选节点发生改变 
+        // 当前所选节点发生改变
         currentNodeHasChanged(e){
         },
         // 添加用料
@@ -350,6 +350,8 @@ export default {
             this.zEngineeringInfoBo.zEngiineeringPhotoBoList = this.$refs.obsImageUpload.fileList?this.$refs.obsImageUpload.fileList.map(e=>e.url):[];
         },
         nodeCancel(){
+            this.nodeType=null
+            this.reset()
             this.nodeDetailVisible = false
         },
         created() {
@@ -357,6 +359,7 @@ export default {
         },
         // 提交表单 创建新工程
         submitForm() {
+          this.zEngineeringInfoBo.zEngiineeringPhotoBoList = this.$refs.obsImageUpload.fileList?this.$refs.obsImageUpload.fileList.map(e=>e.url):[];
           console.log(this.currentType)
             // this.$refs["nodeForm"].validate(valid => {
                 // if (valid) {
@@ -377,12 +380,21 @@ export default {
                             })
                         break;
                         case 3 :
-                            // 危险作业工程
+                            // 危险作业工程新增
+                            this.params.zEngineeringNodeBo = {}
                             this.params.zEngineeringNodeBo.zEngineeringInfoBo = this.zEngineeringInfoBo
+                            this.params.zEngineeringNodeBo.type = this.nodeType
                             this.params.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo = []
                             console.log(this.params)
-                            addEngineeringDangerous(this.params).then(res => {
-                                console.log(res)
+                          addEngineeringDangerous(this.params).then(res => {
+                            if(res.code == 200){
+                              this.$message({
+                                message: '新增成功',
+                                type: 'success'
+                              });
+                              this.$emit('closeToSucceed')
+                              this.nodeDetailVisible = false
+                            }
                             })
                         break;
                         case 4 :
@@ -461,6 +473,24 @@ export default {
                               }
                             })
                         break;
+
+                      case 37:
+                        // 危险修改
+                        this.params.zEngineeringNodeBo = {}
+                        this.params.zEngineeringNodeBo.zEngineeringInfoBo = this.zEngineeringInfoBo
+                        this.params.zEngineeringNodeBo.type = this.nodeType
+                        updateEngineeringDangerous(this.params).then(res => {
+                          console.log('危险________',res)
+                          if(res.code == 200){
+                            this.$message({
+                              message: '修改成功',
+                              type: 'success'
+                            });
+                            this.$emit('closeToSucceed')
+                            this.nodeDetailVisible = false
+                          }
+                        })
+                        break;
                     }
                 // this.params.zEngineeringNodeBo.zEngineeringInfoBo = this.zEngineeringInfoBo
                 // console.log(this.queryParams)
@@ -496,6 +526,10 @@ export default {
             if(type == 14){
               this.zEngineeringInfoBo = this.params.zEngineeringNodeBoList[0].zEngineeringInfoBoList[0]
             }
+            if(type === 37){
+              this.zEngineeringInfoBo = this.params.zEngineeringNodeBos[0].zEngineeringInfoBoList[0]
+              this.nodeType = this.params.zEngineeringNodeBos[0].type
+            }
         },
         reset(){
             this.$refs['nodeForm'].resetFields()

+ 97 - 64
src/components/EngineePipe/index.vue

@@ -10,63 +10,97 @@
     <!--          新增主表与节点-->
     <el-dialog :title="title" :visible.sync="open" append-to-body customClass="appendElDialog">
         <el-form ref="form" :model="queryParams" :rules="rules" label-width="110px">
-          <el-form-item label="工程类型" prop="type">
-            <el-select v-model="queryParams.type" placeholder="请选择类型" disabled>
-              <el-option
-                v-for="e in dict.type.engin_type"
-                :key="e.value"
-                :label="e.label"
-                :value="e.value"
-              ></el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="节点类型" prop="zEngineeringNodeBoType">
-            <el-select v-model="queryParams.zEngineeringNodeBo.type" placeholder="请选择节点类型">
-              <el-option
-                v-for="e in dict.type.pipe_jack"
-                :key="e.value"
-                :label="e.label"
-                :value="e.value"
-              ></el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="工程名称" prop="enginName">
-            <el-input v-model="queryParams.enginName" placeholder="请填写工程名称" maxlength="50"></el-input>
-          </el-form-item>
-          <el-form-item label="工程地址" prop="enginAddre">
-            <el-input v-model="queryParams.enginAddre" placeholder="请填写工程地址" maxlength="100"></el-input>
-          </el-form-item>
-          <el-form-item label="工程编码" prop="enginCode">
-            <el-input v-model="queryParams.enginCode" placeholder="请填写工程编码" maxlength="50"></el-input>
-          </el-form-item>
-          <el-form-item label="施工单位" prop="constructUnit">
-            <el-input v-model="queryParams.constructUnit" placeholder="请填写施工单位" maxlength="100"></el-input>
-          </el-form-item>
-          <el-form-item label="工程规模" prop="enginScale">
-            <el-input v-model="queryParams.enginScale" placeholder="请填写工程规模" maxlength="50"></el-input>
-          </el-form-item>
-          <el-form-item label="施工质量" prop="constructQuality">
-            <el-input v-model="queryParams.constructQuality" placeholder="请填写施工质量" maxlength="50"></el-input>
-          </el-form-item>
-          <el-form-item label="施工进度" prop="constructSchedule">
-            <el-input v-model="queryParams.constructSchedule" placeholder="请填写施工进度" maxlength="50"/>
-          </el-form-item>
-          <el-form-item label="工程地址" prop="constructAddre">
-            <el-input
-              v-model="queryParams.remark"
-              type="textarea"
-              placeholder="请输入内容"
-              maxlength="255"
-            />
-          </el-form-item>
-          <el-form-item label="备注" prop="remark">
-            <el-input
-              v-model="queryParams.remark"
-              type="textarea"
-              placeholder="请输入内容"
-              maxlength="255"
-            />
-          </el-form-item>
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="工程类型" prop="type" v-show="!queryParams.id">
+                <el-select v-model="queryParams.type" placeholder="请选择类型" disabled >
+                  <el-option
+                    v-for="e in dict.type.engin_type"
+                    :key="e.value"
+                    :label="e.label"
+                    :value="e.value"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="节点类型" prop="zEngineeringNodeBoType">
+                <el-select v-model="queryParams.zEngineeringNodeBo.type" placeholder="请选择节点类型">
+                  <el-option
+                    v-for="e in dict.type.pipe_jack"
+                    :key="e.value"
+                    :label="e.label"
+                    :value="e.value"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="工程名称" prop="enginName">
+                <el-input v-model="queryParams.enginName" placeholder="请填写工程名称" maxlength="50"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="工程地址" prop="enginAddre">
+                <el-input v-model="queryParams.enginAddre" placeholder="请填写工程地址" maxlength="100"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="工程编码" prop="enginCode">
+                <el-input v-model="queryParams.enginCode" placeholder="请填写工程编码" maxlength="50"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="施工单位" prop="constructUnit">
+                <el-input v-model="queryParams.constructUnit" placeholder="请填写施工单位" maxlength="100"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="工程规模" prop="enginScale">
+                <el-input v-model="queryParams.enginScale" placeholder="请填写工程规模" maxlength="50"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="施工质量" prop="constructQuality">
+                <el-input v-model="queryParams.constructQuality" placeholder="请填写施工质量" maxlength="50"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="施工进度" prop="constructSchedule">
+                <el-input v-model="queryParams.constructSchedule" placeholder="请填写施工进度" maxlength="50"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="备注" prop="remark">
+                <el-input
+                  v-model="queryParams.remark"
+                  type="textarea"
+                  placeholder="请输入内容"
+                  maxlength="255"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="20">
+            <el-col :span="24">
+              <el-form-item label="文件" prop="" v-if="currentType=='put'">
+                <ObsFileUpload ref="obsFileUpload" :file-size="100" :file-type="['dwg','dwt','doc','docx','xls','xlsx','png', 'jpg', 'jpeg']" :limit="9999"  :value="queryParams.pics"
+                ></ObsFileUpload>
+              </el-form-item>
+              <el-form-item label="文件" prop="" v-if="currentType=='add'">
+                <ObsFileUpload ref="obsFileUpload" :file-size="100" :file-type="['dwg','dwt','doc','docx','xls','xlsx','png', 'jpg', 'jpeg']" :limit="9999"  :value="queryParams.files"
+                ></ObsFileUpload>
+              </el-form-item>
+            </el-col>
+          </el-row>
         </el-form>
         <div slot="footer" class="dialog-footer">
           <el-button :loading="buttonLoading" type="primary" @click="toNodeDetail">{{keyWork}}</el-button>
@@ -152,7 +186,7 @@
           </el-select>
         </el-form-item>
         <el-form-item label="照片" prop="zEngiineeringPhotoBoList" style="width: 100%;">
-          <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+          <ObsImageUpload ref="obsImageUpload" :limit="9999"
                           :value="zEngineeringInfoBo.zEngiineeringPhotoBoList"
                           @input="getUrl"></ObsImageUpload>
         </el-form-item>
@@ -234,6 +268,7 @@ export default {
       nodeType: '1',               // 节点类型
       // 查询参数
       queryParams: {
+        files:[],
         enginId: null,           // 外建工程
         enginName: '',            // 工程名称
         enginAddre: '',            // 工程地址
@@ -381,8 +416,10 @@ export default {
     },
     toNodeDetail() {
       if (this.currentType == 'put') {
+        this.queryParams.files = this.$refs.obsFileUpload.fileList
         this.$refs.childNode.open(this.queryParams, 15)
       } else if (this.currentType == 'add') {
+        this.queryParams.files = this.$refs.obsFileUpload.fileList
         this.$refs.childNode.open(this.queryParams, 10)
       }
     },
@@ -414,7 +451,7 @@ export default {
 <style lang="scss" scoped>
 ::v-deep .appendElDialog {
   width: 850px;
-  height: 600px;
+  height: 700px;
 
   .el-dialog__footer {
     padding: 20px;
@@ -427,11 +464,7 @@ export default {
     height: 85%;
   }
 
-  .el-form-item {
-    margin-bottom: 22px;
-    width: 44%;
-    display: inline-block;
-  }
+
 
   .el-form-item:nth-child(2n+2) {
     margin-left: 5%;

+ 0 - 1
src/components/FileUpload/index.vue

@@ -11,7 +11,6 @@
       :on-success="handleUploadSuccess"
       :show-file-list="false"
       :headers="headers"
-      class="upload-file-uploader"
       ref="fileUpload"
     >
       <!-- 上传按钮 -->

+ 263 - 0
src/components/ObsImageUpload/indexFile.vue

@@ -0,0 +1,263 @@
+<template>
+  <el-form>
+    <el-upload ref="fileList"
+               :disabled="disabled"
+               :action="uploadImgUrl"
+               :on-success="handleUploadSuccess"
+               :before-upload="handleBeforeUpload"
+               :limit="limit"
+               :on-preview="handlePreview"
+               :on-error="handleUploadError"
+               :on-exceed="handleExceed"
+               :on-remove="handleRemove"
+                name="file"
+               :file-list="fileList"
+               :headers="headers"
+    >
+      <div slot="tip" class="el-upload__tip">cad文件类型:dwg,dwt;word文件类型:doc,docx;Excel文件类型:xls,xlsx;照片文件类型:jpg,png,jpeg</div>
+      <i class="el-icon-plus abs"></i>
+    </el-upload>
+
+    <!-- 上传提示 -->
+    <div class="el-upload__tip" slot="tip" v-if="showTip">
+      请上传
+      <template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>
+      <template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>
+      的文件
+    </div>
+    <!-- 文件列表 -->
+<!--    <transition-group class="upload-file-list el-upload-list el-upload-list&#45;&#45;text" name="el-fade-in-linear" tag="ul">-->
+<!--      <li :key="file.url + index" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList">-->
+<!--        <el-link :href="`${file.url}`" :underline="false" target="_blank">-->
+<!--          <span class="el-icon-document"> {{ file.name }} </span>-->
+<!--        </el-link>-->
+<!--        <div class="ele-upload-list__item-content-action">-->
+<!--          <el-link :underline="false" @click="handleDelete(index)" type="danger">删除</el-link>-->
+<!--        </div>-->
+<!--      </li>-->
+<!--    </transition-group>-->
+  </el-form>
+</template>
+
+<script>
+import { getToken } from "@/utils/auth";
+import {picDel} from "@/api/zdsz/obs";
+import request from "@/utils/request";
+import {delOss} from "@/api/system/oss";
+
+export default {
+  props: {
+    value: [String, Object, Array],
+    // 图片数量限制
+    limit: {
+      type: Number,
+      default: 5,
+    },
+    // 大小限制(MB)
+    fileSize: {
+      type: Number,
+      default: 5,
+    },
+    disabled:{
+      type:Boolean,
+      default: false
+    },
+    // 文件类型, 例如['png', 'jpg', 'jpeg']
+    fileType: {
+      type: Array,
+      default: () => ['dwg','dwt','doc','docx','xls','xlsx','png', 'jpg', 'jpeg'],
+    },
+    // 是否显示提示
+    isShowTip: {
+      type: Boolean,
+      default: true
+    }
+  },
+  data() {
+    return {
+      dialogImageUrl: "",
+      dialogVisible: false,
+      hideUpload: false,
+      type:"",
+      baseUrl: process.env.VUE_APP_BASE_API,
+      uploadImgUrl: process.env.VUE_APP_BASE_API + "/obs", // 上传的图片服务器地址
+      headers: {
+        Authorization: "Bearer " + getToken(),
+      },
+      fileList: []
+    };
+  },
+  watch: {
+    value: {
+      handler(val) {
+        if (val) {
+          // 首先将值转为数组
+          const list = Array.isArray(val) ? val : this.value.split(',');
+          // 然后将数组转为对象数组
+          this.fileList = list.map(item => {
+            if (typeof item === "object") {
+              item = { name: item.fileName, url: item.picUrl };
+            }
+            return item;
+          });
+        } else {
+          this.fileList = [];
+          return [];
+        }
+      },
+      deep: true,
+      immediate: true
+    }
+  },
+  computed: {
+    // 是否显示提示
+    showTip() {
+      return this.isShowTip && (this.fileType || this.fileSize);
+    },
+  },
+  methods: {
+    handlePreview(file){
+      if (file.url==null)return;
+      const link = document.createElement('a');
+      link.href = file.url;
+      link.download = file.name?file.name:'文件'; // 可以指定下载后的文件名
+      link.click();
+    },
+    // 删除文件
+    handleDelete(index) {
+      const obj = this.fileList[index];
+      if(obj!=null) {
+          this.fileList.splice(index, 1);
+      }
+      this.$emit("input", this.fileList);
+    },
+    // 删除图片
+    handleRemove(file, fileList) {
+      debugger
+      const findex = this.fileList.map(f => f.url).indexOf(file.url);
+      if(findex > -1) {
+        if (file.url!=null){
+          this.fileList.splice(findex, 1);
+        }
+      }
+      this.$emit("input", this.fileList);
+    },
+    // 上传成功回调
+    handleUploadSuccess(res) {
+      if (res.code == 200) {
+        this.fileList.push({ name: res.data.fileName, url: res.data.url });
+        this.$emit("input", this.fileList);
+        this.loading.close();
+      } else {
+        this.$message.error(res.msg);
+        this.loading.close();
+      }
+    },
+    /**
+     * cad文件类型:dwg,dwt;word文件类型:doc,docx;Excel文件类型:xls,xlsx;
+     * @param file
+     * @returns {boolean}
+     */
+    // 上传前loading加载
+    handleBeforeUpload(file) {
+      if (this.fileType.length) {
+        let fileExtension = "";
+        if (file.name.lastIndexOf(".") > -1) {
+          fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1);
+          let name = '';
+          let flag = false;
+          if (!['dwg','dwt','doc','docx','xls','xlsx','png', 'jpg', 'jpeg'].includes(fileExtension)){
+            name='cad文件类型:dwg,dwt;word文件类型:doc,docx;Excel文件类型:xls,xlsx;照片文件类型:jpg,png,jpeg';
+            flag = true
+          }
+          if (flag==true) {
+            this.$message.error(
+              `文件格式不正确, 规则:${name}!`
+            );
+            return false;
+          }
+          return true
+        }else {
+          return false
+        }
+
+      }
+      if (this.fileSize) {
+        const isLt = file.size / 1024 / 1024 < this.fileSize;
+        if (!isLt) {
+          this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);
+          return false;
+        }
+      }
+      this.loading = this.$loading({
+        lock: true,
+        text: "上传中",
+        background: "rgba(0, 0, 0, 0.7)",
+      });
+    },
+    // 文件个数超出
+    handleExceed() {
+      this.$message.error(`上传文件数量不能超过 ${this.limit} 个!`);
+    },
+    // 上传失败
+    handleUploadError(res) {
+      this.$message({
+        type: "error",
+        message: "上传失败",
+      });
+      this.loading.close();
+    },
+    // 预览
+    handlePictureCardPreview(file) {
+      this.dialogImageUrl = file.url;
+      this.dialogVisible = true;
+      this.type=file.name.slice(file.name.lastIndexOf(".")+1);
+      console.log(this.type)
+    },
+    // 对象转成指定字符串分隔
+    listToString(list, separator) {
+      let strs = "";
+      separator = separator || ",";
+      for (let i in list) {
+        strs += list[i].url + separator;
+      }
+      return strs != '' ? strs.substr(0, strs.length - 1) : '';
+    }
+  }
+};
+</script>
+<style scoped lang="scss">
+// .el-upload--picture-card 控制加号部分
+::v-deep.hide .el-upload--picture-card {
+  display: none;
+}
+// 去掉动画效果
+::v-deep .el-list-enter-active,
+::v-deep .el-list-leave-active {
+  transition: all 0s;
+}
+
+::v-deep .el-list-enter, .el-list-leave-active {
+  opacity: 0;
+  transform: translateY(0);
+}
+.upload-file-uploader {
+  margin-bottom: 5px;
+}
+.upload-file-list .el-upload-list__item {
+  border: 1px solid #e4e7ed;
+  line-height: 2;
+  margin-bottom: 10px;
+  position: relative;
+}
+.upload-file-list .ele-upload-list__item-content {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  color: inherit;
+}
+.ele-upload-list__item-content-action .el-link {
+  margin-right: 10px;
+}
+</style>
+

+ 3 - 1
src/main.js

@@ -29,7 +29,8 @@ import Editor from "@/components/Editor"
 import FileUpload from "@/components/FileUpload"
 // 图片上传组件
 import ImageUpload from "@/components/ImageUpload"
-import ObsImageUpload from "@/components/ObsImageUpload"
+import ObsImageUpload from "@/components/ObsImageUpload/index.vue"
+import ObsFileUpload from "@/components/ObsImageUpload/indexFile.vue"
 // 图片预览组件
 import ImagePreview from "@/components/ImagePreview"
 // 字典标签组件
@@ -57,6 +58,7 @@ Vue.component('Pagination', Pagination)
 Vue.component('RightToolbar', RightToolbar)
 Vue.component('Editor', Editor)
 Vue.component('FileUpload', FileUpload)
+Vue.component('ObsFileUpload', ObsFileUpload)
 Vue.component('ImageUpload', ImageUpload)
 Vue.component('ObsImageUpload', ObsImageUpload)
 Vue.component('ImagePreview', ImagePreview)

+ 4 - 4
src/views/login.vue

@@ -51,7 +51,7 @@
         </el-button>
         <div style="float: right;" v-if="register">
           <router-link class="link-type" :to="'/register'">立即注册</router-link>
-        </div>
+        </DIV>
       </el-form-item>
     </el-form>
     <!--  底部  -->
@@ -59,7 +59,7 @@
       <span>Copyright © 2018-2023 疯狂的狮子Li All Rights Reserved.</span>
     </div>
   </div>
-</template>
+</TEMPLATE>
 
 <script>
 import { getCodeImg } from "@/api/login";
@@ -72,8 +72,8 @@ export default {
     return {
       codeUrl: "",
       loginForm: {
-        username: "admin",
-        password: "admin123",
+        username: "",
+        password: "",
         rememberMe: false,
         code: "",
         uuid: "",

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 841 - 903
src/views/zdsz/engineeringCivil/index.vue


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 890 - 731
src/views/zdsz/engineeringDangerous/index.vue


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 691 - 683
src/views/zdsz/engineeringIndustry/index.vue


+ 15 - 12
src/views/zdsz/engineeringPipeJacking/index.vue

@@ -7,9 +7,9 @@
 
     <template>
         <div class="app-container">
-          <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="110px">
+          <el-form :model="queryParams1" ref="queryForm1" size="small" :inline="true" v-show="showSearch" label-width="110px">
             <el-form-item label="工程名称" prop="enginName">
-              <el-input v-model="queryParams.enginName" placeholder="请输入工程名称"></el-input>
+              <el-input v-model="queryParams1.enginName" placeholder="请输入工程名称"></el-input>
             </el-form-item>
             <el-form-item>
               <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -45,7 +45,7 @@
 
           <el-table v-loading="loading" :data="comprehensiveList" @selection-change="handleSelectionChange">
             <el-table-column type="selection" width="55" align="center" />
-            <el-table-column label="工程id" align="center" prop="enginId" />
+<!--            <el-table-column label="工程id" align="center" prop="enginId" />-->
             <el-table-column label="工程名称" align="center" prop="enginName" />
             <el-table-column label="工程编码" align="center" prop="enginCode" />
             <el-table-column label="施工单位" align="center" prop="constructUnit" />
@@ -82,8 +82,8 @@
           <pagination
             v-show="total>0"
             :total="total"
-            :page.sync="queryParams.pageNum"
-            :limit.sync="queryParams.pageSize"
+            :page.sync="queryParams1.pageNum"
+            :limit.sync="queryParams1.pageSize"
             @pagination="getList"
           />
 
@@ -224,8 +224,8 @@
                 </el-select>
               </el-form-item>
               <el-form-item label="照片" prop="zEngiineeringPhotoBoList" style="width: 100%;">
-                <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="zEngineeringInfoBo.zEngiineeringPhotoBoList"
-                                @input="getUrl"></ObsImageUpload>
+                <FileUpload ref="obsImageUpload" :limit="9999"  :value="zEngineeringInfoBo.zEngiineeringPhotoBoList"
+                                @input="getUrl"></FileUpload>
               </el-form-item>
               <el-button :loading="buttonLoading" type="primary" @click="submitForm">提交</el-button>
               <el-button @click="nodeCancel">取 消</el-button>
@@ -312,6 +312,11 @@
             ],
             nodeType:'1',               // 节点类型
             // 查询参数
+            queryParams1: {
+              enginName:'',
+              pageNum:1,
+              pageSize:10
+            },
             queryParams: {
               enginName:'',            // 工程名称
               enginAddre:'',            // 工程地址
@@ -477,9 +482,7 @@
           /** 查询开栓|安检|维修列表 */
           getList() {
             this.loading = true;
-            getPipeJackingList({
-              enginName:''
-            }).then(res => {
+            getPipeJackingList(this.queryParams1).then(res => {
               this.comprehensiveList = res.rows;
               this.total = res.total;
               this.loading = false;
@@ -501,12 +504,12 @@
           },
           /** 搜索按钮操作 */
           handleQuery() {
-            this.queryParams.pageNum = 1;
+            this.queryParams1.pageNum = 1;
             this.getList();
           },
           /** 重置按钮操作 */
           resetQuery() {
-            this.resetForm("queryForm");
+            this.queryParams1.enginName=''
             this.handleQuery();
           },
           // 多选框选中数据