| 
					
				 | 
			
			
				@@ -0,0 +1,239 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <basic-container> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <avue-crud :data="data" ref="crud" :option="option" @row-save="rowSave"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <template slot="menuLeft"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-button type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   size="small" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   icon="el-icon-edit" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   @click="addDetail">上传 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <template slot="url" slot-scope="{ row }"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-input placeholder="请输入内容" size="small" v-if="row.$cellEdit" v-model="row.url" class="input-with-select"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-button slot="append" @click="singleLineUpload(row)">附件</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <span v-else>{{ row.url }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <template slot-scope="scope" slot="menu"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-button icon="el-icon-download" :size="scope.size" :type="scope.type" @click="download(scope)">下载附件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :type="scope.type" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :size="scope.size" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            icon="el-icon-edit" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @click.stop="rowCell(scope.row,scope.index)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        > {{ scope.row.$cellEdit ? '修改完成' : '修改' }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :type="scope.type" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :size="scope.size" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            icon="el-icon-delete" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @click.stop="rowDel(scope.row,scope.index)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        >删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </avue-crud> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-dialog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        title="上传附件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        append-to-body 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :visible.sync="excelBox" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        width="555px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        v-dialog-drag> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-upload 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          class="upload-demo" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          drag 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          style="text-align: center" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ref="upload" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :action="incomingAction?incomingAction:action" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :headers="headers" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :on-success="onSuccess" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          multiple> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <i class="el-icon-upload"></i> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="el-upload__tip" slot="tip">如上传文件过大,请耐心等待上传成功</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-upload> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </el-dialog> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-dialog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        title="修改附件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        append-to-body 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :visible.sync="excelTwo" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        width="555px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        v-dialog-drag> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-upload 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          class="upload-demo" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          drag 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          style="text-align: center" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :action="incomingAction?incomingAction:action" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :headers="headers" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :show-file-list="false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :on-success="onSuccessTwo"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <i class="el-icon-upload"></i> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="el-upload__tip" slot="tip">如上传文件过大,请耐心等待上传成功</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-upload> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </el-dialog> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-dialog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        width="80%" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        title="附件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :visible.sync="innerVisible" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        append-to-body> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div style="width: 50%;height: 50%;margin: 0 auto"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <img :src="imgUrl" alt="" style="width: 100%;height: 100%;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </el-dialog> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </basic-container> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {getToken} from "@/util/auth"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {sharedDeletion} from "@/api/user"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name: "index", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  props: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    data: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: Object 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    incomingAction: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: String 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    deleteUrl: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: String 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      excelBox: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      excelTwo: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      innerVisible: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      form: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      imgUrl: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      action: '/api/blade-resource/oss/endpoint/put-file', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      headers: {"Blade-Auth": 'Bearer ' + getToken()}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      option: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dialogDrag: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        index: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        refreshBtn: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        cellBtn: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        cancelBtn: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        delBtn: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        editBtn: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        addBtn: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        align: "center", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        column: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label: '文件名称', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            prop: 'fileName', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            index: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            width: 140, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cell: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            overHidden: true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label: '文件地址', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            prop: 'url', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            index: 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            overHidden: true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            type: "select", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=file_type", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            props: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              label: "dictValue", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              value: "dictValue" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label: "文件属性", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            prop: "paymentType", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            search: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            index: 3, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            width: 140, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            overHidden: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cell: true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label: '备注', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            prop: 'remarks', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            index: 4, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cell: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            overHidden: true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uploadCount: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //新增上传成功 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onSuccess(response, file, fileList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$refs.crud.rowCellAdd({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fileName: response.data.originalName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        url: response.data.link 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.uploadCount++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (this.uploadCount === fileList.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$refs.upload.clearFiles() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.excelBox = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.uploadCount = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //修改上传成功 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onSuccessTwo(response) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.form.fileName = response.data.originalName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.form.url = response.data.link 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.data[this.form.$index] = this.form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.excelTwo = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //单行上传 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    singleLineUpload(row) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.form = row 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.excelTwo = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //开启批量上传 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addDetail() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.excelBox = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //下载附件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    download(scope) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log(scope.row.url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (scope.row.url) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (scope.row.fileName.substring(scope.row.fileName.lastIndexOf(".")) === '.jpg' || scope.row.fileName.substring(scope.row.fileName.lastIndexOf(".")) === '.png' || scope.row.fileName.substring(scope.row.fileName.lastIndexOf(".")) === '.JPG' || scope.row.fileName.substring(scope.row.fileName.lastIndexOf(".")) === '.PNG') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.imgUrl = scope.row.url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.innerVisible = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          window.open(scope.row.url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$message.error("请上传附件"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //修改触发 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    rowCell(row, index) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (row.$cellEdit == true) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$set(row, "$cellEdit", false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$set(row, "$cellEdit", true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // this.$refs.crud.rowCell(row, index) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    rowDel(row, index) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$confirm("确定将选择数据删除?", { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        confirmButtonText: "确定", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        cancelButtonText: "取消", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        type: "warning" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }).then(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (row.id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          sharedDeletion(this.deleteUrl, row.id).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (res.data.success) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.$message.success("操作成功!") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.data.splice(index, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.data.splice(index, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |