|  | @@ -1,335 +1,329 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  |    <div class="webuploader-container">
 | 
	
		
			
				|  |  | -        <div :id="'uploader'+upId">
 | 
	
		
			
				|  |  | -                <el-row>
 | 
	
		
			
				|  |  | -                    <!-- <el-col :span="6"> {{name}}  </el-col>                   
 | 
	
		
			
				|  |  | -                    <el-col :span="6"> <div :id="'picker'+upId" class="text_color" >选择文件</div>  </el-col> -->
 | 
	
		
			
				|  |  | -                    <!-- <el-button :id="'picker'+upId"> {{name}} </el-button> -->
 | 
	
		
			
				|  |  | -                    <div class="btntext upname wenjian" > {{ gfname}}</div>
 | 
	
		
			
				|  |  | -                    <div class="btntext upname" :id="'picker'+upId" style="width:28px;height:24px;">
 | 
	
		
			
				|  |  | -                        <img :src="imgSrc" alt="upload icon" class="custom-icon"/>
 | 
	
		
			
				|  |  | -                    </div>
 | 
	
		
			
				|  |  | -                </el-row>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                <el-row v-for="(fileObj,key) in files" :key="key" class="disflex">
 | 
	
		
			
				|  |  | -                    <el-col :span="6">{{fileObj.name}} </el-col>
 | 
	
		
			
				|  |  | -                    <el-col :span="8"><el-progress :percentage="fileObj.percentage"></el-progress></el-col>
 | 
	
		
			
				|  |  | -                    <el-col :span="5">{{fileObj.msg}}</el-col>
 | 
	
		
			
				|  |  | -                    <el-col :span="5"> <el-button type="danger" @click="fileDel(fileObj.id)" :icon="Delete" circle /></el-col>
 | 
	
		
			
				|  |  | -                </el-row>
 | 
	
		
			
				|  |  | -                <!-- <el-button size="mini" @click="uploader.upload()">开始上传</el-button> -->
 | 
	
		
			
				|  |  | +    <div :id="'uploader' + upId">
 | 
	
		
			
				|  |  | +      <el-row>
 | 
	
		
			
				|  |  | +        <!-- <div class="btntext upname wenjian">{{ gfname }}</div> -->
 | 
	
		
			
				|  |  | +        <div
 | 
	
		
			
				|  |  | +          class="btntext upname"
 | 
	
		
			
				|  |  | +          :id="'picker' + upId"
 | 
	
		
			
				|  |  | +          style="width: 28px; height: 24px"
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +          <img :src="imgSrc" alt="upload icon" class="custom-icon" />
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  | -    </div>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +      </el-row>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +      <!-- <el-row v-for="(fileObj, key) in files" :key="key" class="disflex">
 | 
	
		
			
				|  |  | +        <el-col :span="6">{{ fileObj.name }} </el-col>
 | 
	
		
			
				|  |  | +        <el-col :span="8"
 | 
	
		
			
				|  |  | +          ><el-progress :percentage="fileObj.percentage"></el-progress
 | 
	
		
			
				|  |  | +        ></el-col>
 | 
	
		
			
				|  |  | +        <el-col :span="5">{{ fileObj.msg }}</el-col>
 | 
	
		
			
				|  |  | +        <el-col :span="5">
 | 
	
		
			
				|  |  | +          <el-button
 | 
	
		
			
				|  |  | +            type="danger"
 | 
	
		
			
				|  |  | +            @click="fileDel(fileObj.id)"
 | 
	
		
			
				|  |  | +            :icon="Delete"
 | 
	
		
			
				|  |  | +            circle
 | 
	
		
			
				|  |  | +        /></el-col>
 | 
	
		
			
				|  |  | +      </el-row> -->
 | 
	
		
			
				|  |  | +      <!-- <el-button size="mini" @click="uploader.upload()">开始上传</el-button> -->
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +  </div>
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  <script setup>
 | 
	
		
			
				|  |  | -import $ from 'jquery' ;
 | 
	
		
			
				|  |  | +import $ from "jquery"
 | 
	
		
			
				|  |  |  // import WebUploader from 'webuploader';
 | 
	
		
			
				|  |  | -import store from "@/store";
 | 
	
		
			
				|  |  | -import { request, uploadFile } from "@/utils/request";
 | 
	
		
			
				|  |  | -import { ElMessage, ElButton, ElDialog } from "element-plus";
 | 
	
		
			
				|  |  | -import {
 | 
	
		
			
				|  |  | -  Check,
 | 
	
		
			
				|  |  | -  Delete,
 | 
	
		
			
				|  |  | -  Edit,
 | 
	
		
			
				|  |  | -  Message,
 | 
	
		
			
				|  |  | -  Search,
 | 
	
		
			
				|  |  | -  Star,
 | 
	
		
			
				|  |  | -} from '@element-plus/icons-vue'
 | 
	
		
			
				|  |  | -const props = defineProps({ 
 | 
	
		
			
				|  |  | -        projectId: Number,
 | 
	
		
			
				|  |  | -        solverType: String,
 | 
	
		
			
				|  |  | -        accept:String,
 | 
	
		
			
				|  |  | -        upId:String,
 | 
	
		
			
				|  |  | -        name:String,
 | 
	
		
			
				|  |  | -        namelist:Array,//文件名的集合
 | 
	
		
			
				|  |  | -        gfname:String,
 | 
	
		
			
				|  |  | -        imgSrc:String, // 按钮logo
 | 
	
		
			
				|  |  | - });
 | 
	
		
			
				|  |  | - let emit = defineEmits(['Gassaddgfid', 'Gassaddbfid', 'upload-success'])
 | 
	
		
			
				|  |  | -let runupboolen=ref(true);
 | 
	
		
			
				|  |  | -let uploader=ref(undefined);
 | 
	
		
			
				|  |  | -let fileName=ref(undefined);
 | 
	
		
			
				|  |  | -let md5=ref('1212');
 | 
	
		
			
				|  |  | -let files=ref([]);
 | 
	
		
			
				|  |  | -let gfid=ref('');
 | 
	
		
			
				|  |  | -let bfid=ref('');
 | 
	
		
			
				|  |  | -let msg=ref();
 | 
	
		
			
				|  |  | -let nmllist=ref([]);
 | 
	
		
			
				|  |  | -let gridFileId=ref('');
 | 
	
		
			
				|  |  | -let boundaryFileId=ref('');
 | 
	
		
			
				|  |  | -let uuid=ref('');
 | 
	
		
			
				|  |  | -let nmlid=ref('');
 | 
	
		
			
				|  |  | -let hcfdBoundarys=ref([]);
 | 
	
		
			
				|  |  | +import store from "@/store"
 | 
	
		
			
				|  |  | +import { request, uploadFile } from "@/utils/request"
 | 
	
		
			
				|  |  | +import { ElMessage, ElButton, ElDialog } from "element-plus"
 | 
	
		
			
				|  |  | +import { Check, Delete, Edit, Message, Search, Star } from "@element-plus/icons-vue"
 | 
	
		
			
				|  |  | +const props = defineProps({
 | 
	
		
			
				|  |  | +  projectId: Number,
 | 
	
		
			
				|  |  | +  solverType: String,
 | 
	
		
			
				|  |  | +  accept: String,
 | 
	
		
			
				|  |  | +  upId: String,
 | 
	
		
			
				|  |  | +  name: String,
 | 
	
		
			
				|  |  | +  namelist: Array, //文件名的集合
 | 
	
		
			
				|  |  | +  gfname: String,
 | 
	
		
			
				|  |  | +  imgSrc: String // 按钮logo
 | 
	
		
			
				|  |  | +})
 | 
	
		
			
				|  |  | +let emit = defineEmits(["Gassaddgfid", "Gassaddbfid", "upload-success", "update-fileName", "update-percentage","upload-status"])
 | 
	
		
			
				|  |  | +let runupboolen = ref(true)
 | 
	
		
			
				|  |  | +let uploader = ref(undefined)
 | 
	
		
			
				|  |  | +let fileName = ref(undefined)
 | 
	
		
			
				|  |  | +let md5 = ref("1212")
 | 
	
		
			
				|  |  | +let files = ref([])
 | 
	
		
			
				|  |  | +let gfid = ref("")
 | 
	
		
			
				|  |  | +let bfid = ref("")
 | 
	
		
			
				|  |  | +let msg = ref()
 | 
	
		
			
				|  |  | +let nmllist = ref([])
 | 
	
		
			
				|  |  | +let gridFileId = ref("")
 | 
	
		
			
				|  |  | +let boundaryFileId = ref("")
 | 
	
		
			
				|  |  | +let uuid = ref("")
 | 
	
		
			
				|  |  | +let nmlid = ref("")
 | 
	
		
			
				|  |  | +let hcfdBoundarys = ref([])
 | 
	
		
			
				|  |  |  onMounted(() => {
 | 
	
		
			
				|  |  | -    initup();
 | 
	
		
			
				|  |  | +  initup()
 | 
	
		
			
				|  |  | +})
 | 
	
		
			
				|  |  | +const initup = () => {
 | 
	
		
			
				|  |  | +  getUUID()
 | 
	
		
			
				|  |  | +  uuid.value = getUUID()
 | 
	
		
			
				|  |  | +  initWebUploader()
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +const getUUID = () => {
 | 
	
		
			
				|  |  | +  return "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g, function (c) {
 | 
	
		
			
				|  |  | +    var r = (Math.random() * 16) | 0,
 | 
	
		
			
				|  |  | +      v = c == "x" ? r : (r & 0x3) | 0x8
 | 
	
		
			
				|  |  | +    return v.toString(16)
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//fembdf绑定
 | 
	
		
			
				|  |  | +const fembdf = (bfid) => {
 | 
	
		
			
				|  |  | +  let params = {
 | 
	
		
			
				|  |  | +    transCode: "FEM001",
 | 
	
		
			
				|  |  | +    pid: props.projectId,
 | 
	
		
			
				|  |  | +    gridFileId: bfid
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -});
 | 
	
		
			
				|  |  | -const initup=()=>{
 | 
	
		
			
				|  |  | -    getUUID()
 | 
	
		
			
				|  |  | - uuid.value= getUUID()
 | 
	
		
			
				|  |  | -    initWebUploader();
 | 
	
		
			
				|  |  | +  request(params)
 | 
	
		
			
				|  |  | +    .then((res) => {
 | 
	
		
			
				|  |  | +      console.log("绑定成功")
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +    .catch((err) => {})
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -const getUUID=()=> {
 | 
	
		
			
				|  |  | -          return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
 | 
	
		
			
				|  |  | -          
 | 
	
		
			
				|  |  | -              var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
 | 
	
		
			
				|  |  | -              return v.toString(16);
 | 
	
		
			
				|  |  | -          })
 | 
	
		
			
				|  |  | -          
 | 
	
		
			
				|  |  | -     }
 | 
	
		
			
				|  |  | -      //fembdf绑定
 | 
	
		
			
				|  |  | -      const  fembdf=(bfid)=>{
 | 
	
		
			
				|  |  | -                let params = {
 | 
	
		
			
				|  |  | -                            transCode: "FEM001",
 | 
	
		
			
				|  |  | -                            pid: props.projectId,
 | 
	
		
			
				|  |  | -                            gridFileId:bfid,
 | 
	
		
			
				|  |  | -                            };
 | 
	
		
			
				|  |  | -                      
 | 
	
		
			
				|  |  | -                request(params)
 | 
	
		
			
				|  |  | -                    .then((res) => {
 | 
	
		
			
				|  |  | -                     console.log("绑定成功")
 | 
	
		
			
				|  |  | -                    
 | 
	
		
			
				|  |  | -                })
 | 
	
		
			
				|  |  | -                .catch((err) => {});
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -const  initWebUploader=()=>{
 | 
	
		
			
				|  |  | -           files.value=[];
 | 
	
		
			
				|  |  | -           uploader.value=WebUploader.create({
 | 
	
		
			
				|  |  | -                // swf文件路径
 | 
	
		
			
				|  |  | -                swf: './Uploader.swf',
 | 
	
		
			
				|  |  | -                // 文件接收服务端。
 | 
	
		
			
				|  |  | -                server:import.meta.env.VITE_BASE_URL+'/TransServlet',
 | 
	
		
			
				|  |  | -                //文件上传请求的参数表,每次发送都会发送此对象中的参数。
 | 
	
		
			
				|  |  | -                formData: {
 | 
	
		
			
				|  |  | -                
 | 
	
		
			
				|  |  | -                },
 | 
	
		
			
				|  |  | -                // 选择文件的按钮。可选。
 | 
	
		
			
				|  |  | -                // 内部根据当前运行是创建,可能是input元素,也可能是flash.
 | 
	
		
			
				|  |  | -                pick: {
 | 
	
		
			
				|  |  | -                        id:'#picker'+props.upId,
 | 
	
		
			
				|  |  | -                        multiple:true
 | 
	
		
			
				|  |  | -                      },
 | 
	
		
			
				|  |  | -                // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
 | 
	
		
			
				|  |  | -                  resize: false,
 | 
	
		
			
				|  |  | -                // 开起分片上传。
 | 
	
		
			
				|  |  | -                chunked: true,
 | 
	
		
			
				|  |  | -                chunkSize: 2 * 1024 * 1024,
 | 
	
		
			
				|  |  | -                threads :4,
 | 
	
		
			
				|  |  | +const initWebUploader = () => {
 | 
	
		
			
				|  |  | +  files.value = []
 | 
	
		
			
				|  |  | +  uploader.value = WebUploader.create({
 | 
	
		
			
				|  |  | +    // swf文件路径
 | 
	
		
			
				|  |  | +    swf: "/public/webuploader/Uploader.swf",
 | 
	
		
			
				|  |  | +    // 文件接收服务端。
 | 
	
		
			
				|  |  | +    server: import.meta.env.VITE_BASE_URL + "/TransServlet",
 | 
	
		
			
				|  |  | +    //文件上传请求的参数表,每次发送都会发送此对象中的参数。
 | 
	
		
			
				|  |  | +    formData: {},
 | 
	
		
			
				|  |  | +    // 选择文件的按钮。可选。
 | 
	
		
			
				|  |  | +    // 内部根据当前运行是创建,可能是input元素,也可能是flash.
 | 
	
		
			
				|  |  | +    pick: {
 | 
	
		
			
				|  |  | +      id: "#picker" + props.upId,
 | 
	
		
			
				|  |  | +      multiple: false
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
 | 
	
		
			
				|  |  | +    resize: false,
 | 
	
		
			
				|  |  | +    // 开起分片上传。
 | 
	
		
			
				|  |  | +    chunked: true,
 | 
	
		
			
				|  |  | +    chunkSize: 2 * 1024 * 1024, // 2M
 | 
	
		
			
				|  |  | +    threads: 4
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  // 当有文件被添加进队列的时候
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | -            // 当有文件被添加进队列的时候
 | 
	
		
			
				|  |  | -      
 | 
	
		
			
				|  |  | -            uploader.value.on( 'fileQueued', file=> {
 | 
	
		
			
				|  |  | -                console.log(2222);
 | 
	
		
			
				|  |  | -               fileName.value=file.name;
 | 
	
		
			
				|  |  | -             console.log(fileName.value);
 | 
	
		
			
				|  |  | -                // const fax=fileName.value.slice(-4) 
 | 
	
		
			
				|  |  | -                const fax = fileName.value.split(".")[1];
 | 
	
		
			
				|  |  | -                console.log(fax)
 | 
	
		
			
				|  |  | -                if(props.accept.indexOf(fax)<0){//判断上传支持文件类型
 | 
	
		
			
				|  |  | -                    uploader.value.reset();
 | 
	
		
			
				|  |  | -                    ElMessage.error("只支持" +props.accept+"格式文件!");
 | 
	
		
			
				|  |  | -                    return;
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                uploader.value.md5File(file)
 | 
	
		
			
				|  |  | -                .progress(percentage=> {//显示加密进度
 | 
	
		
			
				|  |  | -                     console.log('Percentage:', percentage);
 | 
	
		
			
				|  |  | -                     })
 | 
	
		
			
				|  |  | -                .then(md5 =>{ // 完成
 | 
	
		
			
				|  |  | -                     md5.value=md5;
 | 
	
		
			
				|  |  | -             });
 | 
	
		
			
				|  |  | -                if(files.value.length>0){
 | 
	
		
			
				|  |  | -                   uploader.value.removeFile(files.value[0].id);
 | 
	
		
			
				|  |  | -                  files.value=[];
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -              
 | 
	
		
			
				|  |  | -                files.value.push({
 | 
	
		
			
				|  |  | -                    id:file.id,
 | 
	
		
			
				|  |  | -                    name:file.name,
 | 
	
		
			
				|  |  | -                    msg:"等待上传...",
 | 
	
		
			
				|  |  | -                    percentage:0
 | 
	
		
			
				|  |  | -                })
 | 
	
		
			
				|  |  | -              uploader.value.upload();
 | 
	
		
			
				|  |  | -           
 | 
	
		
			
				|  |  | -            });
 | 
	
		
			
				|  |  | -            
 | 
	
		
			
				|  |  | -            /**文件发送前
 | 
	
		
			
				|  |  | +  uploader.value.on("fileQueued", (file) => {
 | 
	
		
			
				|  |  | +    fileName.value = file.name
 | 
	
		
			
				|  |  | +    console.log('fileName.value',fileName.value)
 | 
	
		
			
				|  |  | +     emit('update-fileName', fileName.value)
 | 
	
		
			
				|  |  | +     // 文件上传类型
 | 
	
		
			
				|  |  | +    const fax = fileName.value.split(".")[1]
 | 
	
		
			
				|  |  | +    if (props.accept.indexOf(fax) < 0) {
 | 
	
		
			
				|  |  | +      //判断上传支持文件类型
 | 
	
		
			
				|  |  | +      uploader.value.reset()
 | 
	
		
			
				|  |  | +      ElMessage.error("只支持" + props.accept + "格式文件!")
 | 
	
		
			
				|  |  | +      return
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    uploader.value
 | 
	
		
			
				|  |  | +      .md5File(file)
 | 
	
		
			
				|  |  | +      .progress((percentage) => {
 | 
	
		
			
				|  |  | +        //显示加密进度
 | 
	
		
			
				|  |  | +        console.log("Percentage:", percentage)
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      .then((md5) => {
 | 
	
		
			
				|  |  | +        // 完成
 | 
	
		
			
				|  |  | +        md5.value = md5
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +    if (files.value.length > 0) {
 | 
	
		
			
				|  |  | +      uploader.value.removeFile(files.value[0].id)
 | 
	
		
			
				|  |  | +      files.value = []
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    files.value.push({
 | 
	
		
			
				|  |  | +      id: file.id,
 | 
	
		
			
				|  |  | +      name: file.name,
 | 
	
		
			
				|  |  | +      msg: "等待上传...",
 | 
	
		
			
				|  |  | +      percentage: 0
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +    uploader.value.upload()
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  /**文件发送前
 | 
	
		
			
				|  |  |               *  object {Object}
 | 
	
		
			
				|  |  |                  data {Object}默认的上传参数,可以扩展此对象来控制上传参数。
 | 
	
		
			
				|  |  |                  headers {Object}可以扩展此对象来控制上传头部
 | 
	
		
			
				|  |  |               */
 | 
	
		
			
				|  |  | -             uploader.value.on('uploadBeforeSend', (file,data,headers)=> {
 | 
	
		
			
				|  |  | -               data.chunk=file.chunk;
 | 
	
		
			
				|  |  | -               data.chunks=file.chunks;
 | 
	
		
			
				|  |  | -               data.bfid=uuid.value;
 | 
	
		
			
				|  |  | -               data.fileName=fileName.value;
 | 
	
		
			
				|  |  | -              //  data.fid=v_this.projectId;
 | 
	
		
			
				|  |  | -            //    data.solverType=v_this.solverType;
 | 
	
		
			
				|  |  | -            //    data.md5=v_this.md5;
 | 
	
		
			
				|  |  | -            //    data.uploadFlag=2;//1 普通 2覆盖 3续传
 | 
	
		
			
				|  |  | -               data.channelNo ='service';
 | 
	
		
			
				|  |  | -               data.clientToken='e47b87eec69545559d1e81e56626da68';
 | 
	
		
			
				|  |  | -               data.transCode='B00028';
 | 
	
		
			
				|  |  | -               data.userId='5f06c8bc77234f969d13e160b54c27e3';
 | 
	
		
			
				|  |  | -               headers.Content='multipart';
 | 
	
		
			
				|  |  | -               headers.Type='form-data';
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | -           // 文件上传过程中创建进度条实时显示。
 | 
	
		
			
				|  |  | -           uploader.value.on( 'uploadProgress', ( file, percentage ) =>{
 | 
	
		
			
				|  |  | -                let prage= Math.floor(percentage*100);
 | 
	
		
			
				|  |  | -                files.value.forEach(fileObj=>{
 | 
	
		
			
				|  |  | -                    if(fileObj.id=file.id)
 | 
	
		
			
				|  |  | -                    fileObj.msg='上传中';
 | 
	
		
			
				|  |  | -                    msg.value=fileObj.msg;
 | 
	
		
			
				|  |  | -                    fileObj.percentage=prage;
 | 
	
		
			
				|  |  | -                })
 | 
	
		
			
				|  |  | -            });
 | 
	
		
			
				|  |  | -            uploader.value.on( 'uploadSuccess', ( file ,response) =>{
 | 
	
		
			
				|  |  | -              console.log('文件信息:',file);
 | 
	
		
			
				|  |  | -              console.log("返回值:",response);
 | 
	
		
			
				|  |  | -              gridFileId.value=response.bfid;
 | 
	
		
			
				|  |  | -              emit('upload-success', {
 | 
	
		
			
				|  |  | -                bfid:response.bfid,
 | 
	
		
			
				|  |  | -                fname: file.name
 | 
	
		
			
				|  |  | -              });
 | 
	
		
			
				|  |  | -                let params = {
 | 
	
		
			
				|  |  | -                    transCode: "B00029",
 | 
	
		
			
				|  |  | -                    bfid: response.bfid,
 | 
	
		
			
				|  |  | -                };
 | 
	
		
			
				|  |  | -                request(params)
 | 
	
		
			
				|  |  | -                    .then((res) => {
 | 
	
		
			
				|  |  | -                    console.log(res);
 | 
	
		
			
				|  |  | -                   files.value.forEach((fileObj) => {
 | 
	
		
			
				|  |  | -                        if ((fileObj.id === file.id)) {
 | 
	
		
			
				|  |  | -                        fileObj.msg = "已上传";
 | 
	
		
			
				|  |  | -                        msg.value=fileObj.msg;
 | 
	
		
			
				|  |  | -                       runupboolen.value=false;
 | 
	
		
			
				|  |  | -                    
 | 
	
		
			
				|  |  | -                        }
 | 
	
		
			
				|  |  | -                        if(file.ext=='x'){
 | 
	
		
			
				|  |  | -                    gfid.value= response.bfid;
 | 
	
		
			
				|  |  | -                    emit("Gassaddgfid", gfid.value);
 | 
	
		
			
				|  |  | -                }else if(file.ext=='inp'){
 | 
	
		
			
				|  |  | -                    bfid.value= response.bfid;
 | 
	
		
			
				|  |  | -                    emit("Gassaddbfid", bfid.value);
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                    });
 | 
	
		
			
				|  |  | -                    })
 | 
	
		
			
				|  |  | -                    .catch((err) => {});
 | 
	
		
			
				|  |  | -              
 | 
	
		
			
				|  |  | -              
 | 
	
		
			
				|  |  | -            });
 | 
	
		
			
				|  |  | -            //
 | 
	
		
			
				|  |  | -            /**
 | 
	
		
			
				|  |  | +  uploader.value.on("uploadBeforeSend", (file, data, headers) => {
 | 
	
		
			
				|  |  | +    data.chunk = file.chunk
 | 
	
		
			
				|  |  | +    data.chunks = file.chunks
 | 
	
		
			
				|  |  | +    data.bfid = uuid.value
 | 
	
		
			
				|  |  | +    data.fileName = fileName.value
 | 
	
		
			
				|  |  | +    //  data.fid=v_this.projectId;
 | 
	
		
			
				|  |  | +    //    data.solverType=v_this.solverType;
 | 
	
		
			
				|  |  | +    //    data.md5=v_this.md5;
 | 
	
		
			
				|  |  | +    //    data.uploadFlag=2;//1 普通 2覆盖 3续传
 | 
	
		
			
				|  |  | +    data.channelNo = "service"
 | 
	
		
			
				|  |  | +    data.clientToken = "e47b87eec69545559d1e81e56626da68"
 | 
	
		
			
				|  |  | +    data.transCode = "B00028"
 | 
	
		
			
				|  |  | +    data.userId = "5f06c8bc77234f969d13e160b54c27e3"
 | 
	
		
			
				|  |  | +    headers.Content = "multipart"
 | 
	
		
			
				|  |  | +    headers.Type = "form-data"
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  // 文件上传过程中创建进度条实时显示。
 | 
	
		
			
				|  |  | +  uploader.value.on("uploadProgress", (file, percentage) => {
 | 
	
		
			
				|  |  | +    let prage = Math.floor(percentage * 100)
 | 
	
		
			
				|  |  | +    files.value.forEach((fileObj) => {
 | 
	
		
			
				|  |  | +      if ((fileObj.id = file.id)) {
 | 
	
		
			
				|  |  | +        fileObj.msg = "上传中"
 | 
	
		
			
				|  |  | +        emit('upload-status', "上传中")
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      msg.value = fileObj.msg
 | 
	
		
			
				|  |  | +      fileObj.percentage = prage
 | 
	
		
			
				|  |  | +      // 更新进度条
 | 
	
		
			
				|  |  | +      emit('update-percentage', prage);
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  uploader.value.on("uploadSuccess", (file, response) => {
 | 
	
		
			
				|  |  | +    console.log("文件信息:", file)
 | 
	
		
			
				|  |  | +    console.log("返回值:", response)
 | 
	
		
			
				|  |  | +    gridFileId.value = response.bfid
 | 
	
		
			
				|  |  | +    emit("upload-success", {
 | 
	
		
			
				|  |  | +      bfid: response.bfid,
 | 
	
		
			
				|  |  | +      fname: file.name,
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +    let params = {
 | 
	
		
			
				|  |  | +      transCode: "B00029",
 | 
	
		
			
				|  |  | +      bfid: response.bfid
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    request(params)
 | 
	
		
			
				|  |  | +      .then((res) => {
 | 
	
		
			
				|  |  | +        console.log(res)
 | 
	
		
			
				|  |  | +        files.value.forEach((fileObj) => {
 | 
	
		
			
				|  |  | +          if (fileObj.id === file.id) {
 | 
	
		
			
				|  |  | +            fileObj.msg = "已上传"
 | 
	
		
			
				|  |  | +            emit('upload-status', "上传成功")
 | 
	
		
			
				|  |  | +            msg.value = fileObj.msg
 | 
	
		
			
				|  |  | +            runupboolen.value = false
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          if (file.ext == "x") {
 | 
	
		
			
				|  |  | +            gfid.value = response.bfid
 | 
	
		
			
				|  |  | +            emit("Gassaddgfid", gfid.value)
 | 
	
		
			
				|  |  | +          } else if (file.ext == "inp") {
 | 
	
		
			
				|  |  | +            bfid.value = response.bfid
 | 
	
		
			
				|  |  | +            emit("Gassaddbfid", bfid.value)
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      .catch((err) => {})
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  //
 | 
	
		
			
				|  |  | +  /**
 | 
	
		
			
				|  |  |               * 当某个文件上传到服务端响应后,会派送此事件来询问服务端响应是否有效。如果此事件handler返回值为false, 则此文件将派送server类型的uploadError事件。
 | 
	
		
			
				|  |  |               * object {Object}
 | 
	
		
			
				|  |  |                  ret {Object}服务端的返回数据,json格式,如果服务端不是json格式,从ret._raw中取数据,自行解析
 | 
	
		
			
				|  |  |               */
 | 
	
		
			
				|  |  | -           uploader.value.on('uploadAccept',(object,res)=>{
 | 
	
		
			
				|  |  | -               if(res.returnCode=="000000000"){
 | 
	
		
			
				|  |  | -                   return true;
 | 
	
		
			
				|  |  | -               }else{
 | 
	
		
			
				|  |  | -                ElMessage.error(res.returnMsg);
 | 
	
		
			
				|  |  | -                   return false;
 | 
	
		
			
				|  |  | -               }
 | 
	
		
			
				|  |  | -            });
 | 
	
		
			
				|  |  | -           uploader.value.on( 'uploadError', ( file ,reason)=> {
 | 
	
		
			
				|  |  | -                $( '#'+file.id ).text(file.name+'上传出错');
 | 
	
		
			
				|  |  | -                getUUID();
 | 
	
		
			
				|  |  | -                   uuid.value= getUUID();
 | 
	
		
			
				|  |  | -            });
 | 
	
		
			
				|  |  | +  uploader.value.on("uploadAccept", (object, res) => {
 | 
	
		
			
				|  |  | +    if (res.returnCode == "000000000") {
 | 
	
		
			
				|  |  | +      return true
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +      ElMessage.error(res.returnMsg)
 | 
	
		
			
				|  |  | +      return false
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  uploader.value.on("uploadError", (file, reason) => {
 | 
	
		
			
				|  |  | +    $("#" + file.id).text(file.name + "上传出错")
 | 
	
		
			
				|  |  | +    emit('upload-status', "上传失败")
 | 
	
		
			
				|  |  | +    getUUID()
 | 
	
		
			
				|  |  | +    uuid.value = getUUID()
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          uploader.value.on('uploadComplete', file => {
 | 
	
		
			
				|  |  | -                // $( '#'+file.id ).find('.progress').fadeOut();
 | 
	
		
			
				|  |  | -            });
 | 
	
		
			
				|  |  | -            
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        const uploaderClear=()=>{
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | -             uploader.value.reset();
 | 
	
		
			
				|  |  | -             percentage.value=0;
 | 
	
		
			
				|  |  | -            files.value=[];
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -     const fileDel=(fileId)=>{
 | 
	
		
			
				|  |  | -         console.log(fileId);
 | 
	
		
			
				|  |  | -                  getUUID();
 | 
	
		
			
				|  |  | -                   uuid.value= getUUID();
 | 
	
		
			
				|  |  | -           files.value=files.value.filter(fileObj=>{
 | 
	
		
			
				|  |  | -                if( fileObj.id == fileId){
 | 
	
		
			
				|  |  | -                       console.log(fileObj);
 | 
	
		
			
				|  |  | -                       fileObj.name=fileObj.name
 | 
	
		
			
				|  |  | -                       msg.value='';
 | 
	
		
			
				|  |  | -                  uploader.value.removeFile(fileId);  
 | 
	
		
			
				|  |  | -           
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -               return  fileObj.id != fileId
 | 
	
		
			
				|  |  | -              
 | 
	
		
			
				|  |  | -            })     
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        defineExpose({gfid,bfid,initWebUploader,files,msg})
 | 
	
		
			
				|  |  | +  uploader.value.on("uploadComplete", (file) => {
 | 
	
		
			
				|  |  | +    // $( '#'+file.id ).find('.progress').fadeOut();
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +const uploaderClear = () => {
 | 
	
		
			
				|  |  | +  uploader.value.reset()
 | 
	
		
			
				|  |  | +  percentage.value = 0
 | 
	
		
			
				|  |  | +  files.value = []
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +const fileDel = (fileId) => {
 | 
	
		
			
				|  |  | +  console.log(fileId)
 | 
	
		
			
				|  |  | +  getUUID()
 | 
	
		
			
				|  |  | +  uuid.value = getUUID()
 | 
	
		
			
				|  |  | +  files.value = files.value.filter((fileObj) => {
 | 
	
		
			
				|  |  | +    if (fileObj.id == fileId) {
 | 
	
		
			
				|  |  | +      console.log(fileObj)
 | 
	
		
			
				|  |  | +      fileObj.name = fileObj.name
 | 
	
		
			
				|  |  | +      msg.value = ""
 | 
	
		
			
				|  |  | +      uploader.value.removeFile(fileId)
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return fileObj.id != fileId
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +defineExpose({ gfid, bfid, initWebUploader, files, msg })
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  <style>
 | 
	
		
			
				|  |  |  .webuploader-container {
 | 
	
		
			
				|  |  | -	position: relative;
 | 
	
		
			
				|  |  | +  position: relative;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -.webuploader-pick{
 | 
	
		
			
				|  |  | -    color: #fff !important;
 | 
	
		
			
				|  |  | +.webuploader-pick {
 | 
	
		
			
				|  |  | +  color: #fff !important;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  .webuploader-element-invisible {
 | 
	
		
			
				|  |  | -	position: absolute !important;
 | 
	
		
			
				|  |  | -	clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
 | 
	
		
			
				|  |  | -    clip: rect(1px,1px,1px,1px);
 | 
	
		
			
				|  |  | +  position: absolute !important;
 | 
	
		
			
				|  |  | +  clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
 | 
	
		
			
				|  |  | +  clip: rect(1px, 1px, 1px, 1px);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  .webuploader-pick {
 | 
	
		
			
				|  |  | -	position: relative;
 | 
	
		
			
				|  |  | -	display: inline-block;
 | 
	
		
			
				|  |  | -	cursor: pointer;
 | 
	
		
			
				|  |  | -    padding: 1px 2px;
 | 
	
		
			
				|  |  | -    font-size: 12px;
 | 
	
		
			
				|  |  | -	color: #606266;
 | 
	
		
			
				|  |  | -	text-align: center;
 | 
	
		
			
				|  |  | -	border-radius: 3px;
 | 
	
		
			
				|  |  | -	overflow: hidden;
 | 
	
		
			
				|  |  | +  position: relative;
 | 
	
		
			
				|  |  | +  display: inline-block;
 | 
	
		
			
				|  |  | +  cursor: pointer;
 | 
	
		
			
				|  |  | +  padding: 1px 2px;
 | 
	
		
			
				|  |  | +  font-size: 12px;
 | 
	
		
			
				|  |  | +  color: #606266;
 | 
	
		
			
				|  |  | +  text-align: center;
 | 
	
		
			
				|  |  | +  border-radius: 3px;
 | 
	
		
			
				|  |  | +  overflow: hidden;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  .webuploader-pick-hover {
 | 
	
		
			
				|  |  | -	background: #00a2d4;
 | 
	
		
			
				|  |  | +  background: #00a2d4;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .webuploader-pick-disable {
 | 
	
		
			
				|  |  | -	opacity: 0.6;
 | 
	
		
			
				|  |  | -	pointer-events:none;
 | 
	
		
			
				|  |  | +  opacity: 0.6;
 | 
	
		
			
				|  |  | +  pointer-events: none;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -.disflex{
 | 
	
		
			
				|  |  | -    display: flex;
 | 
	
		
			
				|  |  | -    align-items: center;
 | 
	
		
			
				|  |  | +.disflex {
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  align-items: center;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -.text_color  .webuploader-pick{
 | 
	
		
			
				|  |  | -   color: #d5d5d5;
 | 
	
		
			
				|  |  | +.text_color .webuploader-pick {
 | 
	
		
			
				|  |  | +  color: #d5d5d5;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -.el-progress__text{
 | 
	
		
			
				|  |  | - color: #d5d5d5 !important;
 | 
	
		
			
				|  |  | +.el-progress__text {
 | 
	
		
			
				|  |  | +  color: #d5d5d5 !important;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -.disflex .el-col{
 | 
	
		
			
				|  |  | -color: #fff;
 | 
	
		
			
				|  |  | +.disflex .el-col {
 | 
	
		
			
				|  |  | +  color: #fff;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -.disflex .el-icon{
 | 
	
		
			
				|  |  | -    font-size: 20px;
 | 
	
		
			
				|  |  | +.disflex .el-icon {
 | 
	
		
			
				|  |  | +  font-size: 20px;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -.wenjian{
 | 
	
		
			
				|  |  | -    color: #fff;  
 | 
	
		
			
				|  |  | -    padding-right: 10px;
 | 
	
		
			
				|  |  | +.wenjian {
 | 
	
		
			
				|  |  | +  color: #fff;
 | 
	
		
			
				|  |  | +  padding-right: 10px;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -.webuploader-container .el-icon{
 | 
	
		
			
				|  |  | -    color: #fff;
 | 
	
		
			
				|  |  | +.webuploader-container .el-icon {
 | 
	
		
			
				|  |  | +  color: #fff;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .custom-icon {
 | 
	
		
			
				|  |  | -    width: 100%; 
 | 
	
		
			
				|  |  | -    height: auto; 
 | 
	
		
			
				|  |  | -    display: block; 
 | 
	
		
			
				|  |  | +  width: 100%;
 | 
	
		
			
				|  |  | +  height: auto;
 | 
	
		
			
				|  |  | +  display: block;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  </style>
 |