From c2bb36f12e965fce062f82fb1d80337435b192f7 Mon Sep 17 00:00:00 2001
From: Kxc0822a <kxc000822>
Date: 星期一, 11 四月 2022 10:21:04 +0800
Subject: [PATCH] 重大

---
 src/views/contingencyplan/index.vue |  200 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 157 insertions(+), 43 deletions(-)

diff --git a/src/views/contingencyplan/index.vue b/src/views/contingencyplan/index.vue
index bb27234..ae5a316 100644
--- a/src/views/contingencyplan/index.vue
+++ b/src/views/contingencyplan/index.vue
@@ -7,7 +7,7 @@
             <el-input v-model="listQuery.filter.name"></el-input>
           </el-form-item>
         </el-col>
-        <el-col :span="4" style="text-align: center">
+        <el-col :span="5" style="text-align: center">
           <el-button type="primary" class="btns" icon="el-icon-search" @click="find()"
             >搜索</el-button
           >
@@ -18,13 +18,40 @@
             class="btns"
             >新增</el-button
           >
+            <el-button
+                type="primary"
+                class="btns"
+                @click="reset()"
+            >重置</el-button
+            >
         </el-col>
       </el-row>
     </el-form>
     <el-table :data="list" border style="width: 100%">
       <el-table-column prop="name" align="center" label="预案名称" width="150">
       </el-table-column>
-      <el-table-column prop="name" align="center" label="文件链接"> </el-table-column>
+      <el-table-column prop="fileType" align="center" label="文件类型">
+          <template slot-scope="scope">
+              <span v-if="scope.row.fileType==0">图片</span>
+              <span v-if="scope.row.fileType==1">文件</span>
+          </template>
+      </el-table-column>
+        <el-table-column align="center" label="附件">
+            <template slot-scope="scope">
+                <div v-if="scope.row.fileType==0">
+                    <img :src="envUrl+scope.row.fileList[0].fileUrl" @click="showViewer=true" style="max-width: 100px;height: auto"/>
+                    <el-image-viewer
+                        v-if="showViewer"
+                        :on-close="()=>showViewer=false"
+                        :url-list="scope.row.viewerList"
+                    />
+                </div>
+                <div v-if="scope.row.fileType==1">
+                    <span @click="downLoadFile(scope.row.fileList[0].fileUrl)" style="color: #3A71A8 ; cursor: pointer;">{{ scope.row.fileList[0].fileName }}</span>
+                </div>
+            </template>
+        </el-table-column>
+
       <el-table-column prop="remark" align="center" label="备注"> </el-table-column>
       <el-table-column prop="createTime" align="center" label="创建时间"> </el-table-column>
       <el-table-column prop="updateTime" align="center" label="更新时间"> </el-table-column>
@@ -54,24 +81,25 @@
       :page-size="pageSize"
       layout="total, sizes, prev, pager, next, jumper"
       :total="recordTotal"
+      style="text-align: right;margin-top: 20px;"
     >
     </el-pagination>
-    <el-dialog :title="title" :visible.sync="dialogVisible" width="30%">
+    <el-dialog :title="title" :visible.sync="dialogVisible" :close-on-click-modal="false" width="40%">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="预案名称" prop="name">
           <el-input v-model="form.name"></el-input>
         </el-form-item>
         <el-form-item label="文件类型">
-          <el-radio-group v-model="form.fileType">
-            <el-radio label="0">图片</el-radio>
-            <el-radio label="1">文件</el-radio>
+          <el-radio-group v-model="form.fileType" @change="changeFileType">
+            <el-radio :label=0 >图片</el-radio>
+            <el-radio :label=1 >文件</el-radio>
           </el-radio-group>
         </el-form-item>
         <el-form-item v-if="form.fileType==0" label="图片上传">
-          <el-input ></el-input>
+            <upload-img :imgList="fileList"   @uploadImgSuccess="uploadImgSuccess" @removeImgSuccess="removeImgSuccess"></upload-img>
         </el-form-item>
         <el-form-item label="文件链接" v-if="form.fileType==1">
-          <SingleImageUpload></SingleImageUpload>
+            <upload-file v-bind:url="fileUrl" v-bind:name="fileName"  @uploadFileSuccess="uploadFileSuccess" ></upload-file>
         </el-form-item>
         <el-form-item label="备注" prop="remark">
           <el-input v-model="form.remark" :rows="5" type="textarea"></el-input>
@@ -79,13 +107,15 @@
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button type="primary" class="btns" @click="addemergencyPlan()">确 定</el-button>
-        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button @click="cancel()">取 消</el-button>
       </span>
     </el-dialog>
   </div>
 </template>
 <script>
-import SingleImageUpload from "@/components/Upload/singleImage.vue";
+import uploadImg from "@/views/contingencyplan/uploadImg.vue";
+import uploadFile from "@/views/contingencyplan/uploadFile.vue";
+import elImageViewer from "element-ui/packages/image/src/image-viewer";
 import {
   emergencyPlanList,
   emergencyPlanAdd,
@@ -93,10 +123,13 @@
   emergencyPlanDel,
 } from "@/api/emergencyplan.js";
 export default {
-  components: { SingleImageUpload },
+  components: { uploadImg , uploadFile ,elImageViewer},
   data() {
     return {
+        uploadDisabled:false,
+
       dialogVisible: false,
+
       title: "",
       pageSize: 10,
       recordTotal: 0,
@@ -104,7 +137,7 @@
       form: {
         name: "",
         fileType: 0,
-        fileList: [{ fileName: "", fileUrl: "" }],
+        fileList: [],
         remark: "",
       },
       listQuery: {
@@ -114,29 +147,85 @@
           name: "",
         },
       },
+        fileName:"",
+        fileUrl:"",
+        fileList:[],
       list: [],
       rules: {
         name: [
           { required: true, message: "预案名称不能为空", trigger: "change" },
         ],
-        remark: [
-          { required: true, message: "责任人不能为空", trigger: "blur" },
-        ],
       },
+
+        showViewer:false,
+        viewerList:[],
+        envUrl:process.env.IMG_API
     };
   },
   created() {
     this.emergencyPlan();
   },
   methods: {
+
+      reset(){
+          this.listQuery.filter={}
+          this.listQuery.pageIndex=1
+          this.listQuery.pageSize=10
+          this.emergencyPlan();
+      },
+
+      downLoadFile(fileUrl){
+          return this.$confirm(`确定下载该文件?`,'提示',{
+              confirmButtonText:'确定',
+              cancelButtonText:'取消',
+              type:'warning',
+          }).then(() =>{
+              let a = document.createElement('a')
+              a.href = process.env.BASE_API + '/upload/'+fileUrl
+              a.click();
+          })
+      },
+
+      changeFileType(){
+          this.fileUrl=""
+          this.fileName=""
+          this.fileList=[]
+      },
+
+      uploadFileSuccess(res){
+          this.fileName=res.fileName
+          this.fileUrl=res.fileUrl
+      },
+
+      uploadImgSuccess(res){
+          let file = {
+              fileUrl : res.fileUrl,
+              fileName : res.fileName,
+              url:res.url
+          }
+          this.fileList.push(file)
+      },
+
+      removeImgSuccess(res){
+          this.fileList=res.fileList
+      },
+
     async emergencyPlan() {
       var res = await emergencyPlanList(this.listQuery);
-      console.log(res);
       if (res.data.code === "200") {
         this.list = res.data.result.records;
         this.recordTotal = res.data.result.total
         this.pageSize=res.data.result.size;
         this.currentPage = res.data.result.current
+          for (let i = 0 ; i < this.list.length ; i++){
+              if (this.list[i].fileList!=null && this.list[i].fileList.length>0){
+                  let viewerList = []
+                  for (let j = 0 ; j<this.list[i].fileList.length ; j++){
+                      viewerList.push(this.envUrl+this.list[i].fileList[j].fileUrl)
+                  }
+                  this.list[i].viewerList=viewerList
+              }
+          }
       }
     },
     emergencyPlanC(value, type) {
@@ -146,20 +235,38 @@
       });
       if (type === "新增") {
         this.title = "新增";
-        this.form = {
-          name: "",
-          fileType: "0",
-          fileList: [{ fileName: "", fileUrl: "" }],
-          remark: "",
-        };
+        this.form = {};
+        this.fileUrl="";
+        this.fileName="";
+        this.fileList=[]
       } else {
         this.title = "编辑";
-        this.form = value;
+          this.form=JSON.parse(JSON.stringify(value));
+        if (this.form.fileType==0){
+            this.fileList=value.fileList
+        } else{
+            this.fileUrl=value.fileList[0].fileUrl;
+            this.fileName=value.fileList[0].fileName
+        }
       }
     },
     addemergencyPlan() {
       this.$refs["form"].validate((valid) => {
         if (valid) {
+            if (this.form.fileType==0){
+                this.form.fileList=this.fileList
+            }
+            if (this.form.fileType==1){
+                let fileList = []
+                if (this.fileUrl!=""){
+                    let file={
+                        fileUrl:this.fileUrl,
+                        fileName:this.fileName
+                    }
+                    fileList.push(file)
+                }
+                this.form.fileList=fileList
+            }
           if (this.title === "新增") {
             emergencyPlanAdd(this.form).then((res) => {
               if (res.data.code === "200") {
@@ -171,11 +278,8 @@
                   message: "新增成功",
                   title: "成功",
                 });
-              } else {
-                this.$message({
-                  type: "warning",
-                  message: res.data.message,
-                });
+              }else{
+                  this.$message.error(res.data.message);
               }
             });
           }
@@ -190,11 +294,8 @@
                 message: "编辑成功",
                 title: "成功",
               });
-            } else {
-              this.$message({
-                type: "warning",
-                message: res.data.message,
-              });
+            }else{
+                this.$message.error(res.data.message);
             }
           });
         }
@@ -202,16 +303,29 @@
       });
     },
     deleteById(val) {
-      emergencyPlanDel({ id: val }).then(() => {
-        this.emergencyPlan();
-        this.$notify({
-          title: "成功",
-          message: "删除成功",
-          type: "success",
-          duration: 2000,
-        });
-      });
+        this.$confirm('确认删除吗','提示', {
+            confirmButtonText: '确认',
+            cancelButtonText: '取消',
+            type: 'warning'
+        })
+            .then(()=>{
+              emergencyPlanDel({ id: val }).then(() => {
+                this.emergencyPlan();
+                this.$notify({
+                  title: "成功",
+                  message: "删除成功",
+                  type: "success",
+                  duration: 2000,
+                });
+              });
+            })
+            .catch(error =>{
+            });
     },
+      cancel(){
+          this.emergencyPlan();
+          this.dialogVisible = false;
+      },
     find() {
       this.emergencyPlan();
     },
@@ -231,4 +345,4 @@
   background-color: #034EA2;
   border: 1px solid #034EA2;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.2