From be016d292a1eb3af5088e17f076e7cc6cab90576 Mon Sep 17 00:00:00 2001
From: feige <791364011@qq.com>
Date: 星期二, 06 五月 2025 17:20:08 +0800
Subject: [PATCH] 增加了模块

---
 ruoyi-ui/src/views/qrcode/pdscanInfo.vue |  628 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 628 insertions(+), 0 deletions(-)

diff --git a/ruoyi-ui/src/views/qrcode/pdscanInfo.vue b/ruoyi-ui/src/views/qrcode/pdscanInfo.vue
new file mode 100644
index 0000000..af8ef37
--- /dev/null
+++ b/ruoyi-ui/src/views/qrcode/pdscanInfo.vue
@@ -0,0 +1,628 @@
+<template>
+  <div class="app-container" id="printable-content">
+    <div class="form-header mt">
+      <h1 style="font-size:21px;padding-top:30px;display: flex;justify-content: space-between;align-items: center;" >
+        <span>浜岀淮鐮佺敓鎴愯褰曡鎯�</span>
+
+      </h1>
+    </div>
+
+    <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
+
+      <el-form-item label="濮撳悕" prop="name">
+        <el-input v-model="formData.name" placeholder="璇疯緭鍏ュ鍚�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
+      </el-form-item>
+
+   <el-form-item label="鏍囬" prop="title">
+        <el-input v-model="formData.title" placeholder="璇疯緭鍏ユ爣棰�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
+      </el-form-item>
+
+
+
+<!--      <el-form-item label="鏄惁鏄湰瀹跺涵璁板綍" prop="ownData">-->
+<!--        <el-input  v-model="formData.ownData=== 1 ? '鏄�':'鍚�'" placeholder=" " clearable :style="{width: '100%'}" :disabled=true></el-input>-->
+<!--      </el-form-item>-->
+    <!--    :http-request="requestUpload" -->
+
+      <h4 class="form-header">浜岀淮鐮佸浘鐗�</h4>
+      <el-upload
+        action="#"
+        list-type="picture-card"
+        multiple
+		ref="upload"
+		        :show-file-list="true"
+ :http-request="requestUpload"
+        :file-list="fileList"
+      :on-change="handleChange"
+	  :auto-upload="false"
+        :disabled="true"
+        :class="{ hide: true }"
+
+      >
+
+  <!--      <div v-if="uploading" class="upload-status">姝e湪涓婁紶...</div> -->
+
+        <div slot="file" slot-scope="{file}">
+          <img
+            class="el-upload-list__item-thumbnail"
+            :src="file.url"
+            alt=""
+            style="width: 147px; height: 147px"
+            fit="cover"
+            :preview-src-list="[file.url]"
+          >
+          <span class="el-upload-list__item-actions">
+        <span
+
+          class="el-upload-list__item-preview"
+          @click="handlePictureCardPreview(file)"
+        >
+          <i class="el-icon-zoom-in"></i>
+        </span>
+        <span
+
+          class="el-upload-list__item-delete"
+          @click="handleDownload(file.url)"
+        >
+          <i class="el-icon-download"></i>
+        </span>
+
+      </span>
+
+
+        </div>
+
+
+      </el-upload>
+<h4 class="form-header">pdf鏂囦欢</h4>
+             <el-form-item  prop="cov">
+
+<!-- 	  <el-upload
+	         action="#"
+	         list-type="picture-card"
+	         multiple
+	  		ref="upload"
+
+	  :http-request="requestUpload"
+	         :file-list="fileList"
+	       :on-change="handleChange"
+	  	  :auto-upload="false"
+	         :disabled="!btn"
+	         :class="{ hide: !btn }"
+
+	       >
+	  -->
+
+      <el-upload
+        action="#"
+        multiple
+list-type="picture-card"
+			  		ref="upload1"
+   :on-remove="handleRemoveFile"
+        :http-request="requestUpload"
+		       :file-list="fileList1"
+
+        :disabled="!btn"
+
+        :class="{ hide: !btn }"
+
+
+		:on-change="handleChange1"
+				:auto-upload="false"
+
+
+
+
+
+      >
+<!--
+        <div v-if="uploading" class="upload-status">姝e湪涓婁紶...</div> -->
+      <i slot="default" class="el-icon-plus"></i>
+        <div slot="file" slot-scope="{file}">
+          <!-- 娣诲姞video鍏冪礌鐢ㄤ簬鏄剧ず瑙嗛 -->
+ <img
+                            class="el-upload-list__item-thumbnail"
+                            src="../../assets/401_images/401.gif" alt=""
+                          >
+                          <p style="text-align: center;">{{ file.name }}</p>
+
+          <span class="el-upload-list__item-actions">
+               <span class="el-upload-list__item-name"  @click="handleDownload(file.url)"><span>{{ file.name }}</span></span>
+
+                    <span
+
+                      class="el-upload-list__item-delete"
+                      @click="handleDownload(file.url)"
+                    >
+                 <i class="el-icon-download"></i>
+                 </span>
+  <span
+
+                      class="el-upload-list__item-delete"
+                      @click="handleRemoveFile(file)"
+                    >
+                      <i class="el-icon-delete"></i>
+                    </span>
+              </span>
+        </div>
+
+
+      </el-upload>
+      <el-button
+      		          style="margin-left: 10px"
+      		          size="small"
+      		          type="success"
+      		          v-if="btn"
+      		          @click="fileUpload"
+      		        >涓婁紶鍒版湇鍔″櫒</el-button>
+
+        </el-form-item>
+				      <h4 class="form-header"> </h4>
+      <el-form-item size="large">
+        <el-button v-if="isShow" type="primary" @click="submitForm" :disabled="dsb">淇敼</el-button>
+      </el-form-item>
+      <el-form-item size="large">
+        <el-button v-if="isShow1" type="primary" @click="submitFormAudit" :disabled="dsb">瀹℃牳閫氳繃</el-button>
+
+        <el-button v-if="isShow1" type="primary" @click="submitFormAuditFail" :disabled="dsb">瀹℃牳涓嶉�氳繃</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-dialog  :visible.sync="dialogVisible">
+      <img w-full :src="dialogImageUrl"    style="width: 100%; height: 100%" alt="Preview Image" />
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {addRole, updateRole} from "@/api/system/role";
+import {blobValidate} from "@/utils/ruoyi";
+import errorCode from "@/utils/errorCode";
+import {Message} from "element-ui";
+import {listFScan,getFScanInfo,addFScan,delFScan,getFSInfo,updateFScan, uploadPic, uploadPic1, download} from "@/api/fscan/index";
+import store from '@/store'
+export default {
+  components: {},
+  props: [],
+
+  data() {
+    const validateLogo = (rule, value, callback) => {
+         if (!this.form.cov && this.fileList1.length ===0) {
+         //  console.log(!this.form.cover)
+           callback(new Error('璇蜂笂浼犲浘鐗�'))
+         } else {
+           callback()
+         }
+       }
+
+    return {
+        userid: store.getters.id,
+
+      cdi:"浜岀淮鐮佺敓鎴愯缁嗕俊鎭�",
+      udi:"浜岀淮鐮佺敓鎴愯褰曚慨鏀�",
+
+      fileList:[
+      ],
+	  fileList1:[],
+      uploadFileList:[],
+	  uploadFileList1:[],
+      fileListOther:[
+
+      ],
+      fileListOther1:[],
+
+      dsb:true,
+      btn:false,
+      isShow:true,
+      isShow1: false,
+      uploading: false,
+      uploading1:false,
+      formData: {
+     comName:undefined,
+     productName:undefined,
+     deadTime: undefined,
+     cov: undefined,
+     filePath: ""
+      },
+      rules: {
+           comName: [{
+             required: true,
+             message: '璇疯緭鍏ュ叕鍙稿悕绉�',
+             trigger: 'blur'
+           }],
+
+
+           deadTime: [{
+             required: true,
+             message: '璇烽�夋嫨鏃ユ湡',
+             trigger: 'blur'
+           }],
+      cover: [{ required: true, validator: validateLogo, trigger: 'change' }],
+         },
+	  ID: undefined,
+      dialogImageUrl: '',
+      url1:undefined,
+      dialogVisible: false,
+      disabled: false,
+
+      rules: {
+        comName: [{
+          required: true,
+          message: '璇疯緭鍏ュぇ浜嬫爣棰�',
+          trigger: 'blur'
+        }],
+
+        deadTime: [{
+          required: true,
+          message: '璇疯緭鍏ヤ汉鐗�',
+          trigger: 'blur'
+        }],
+
+
+      },
+      typeOptions: [],
+    }
+  },
+  computed: {},
+  watch: {},
+  created() {
+
+
+    let jd;
+    if(this.$route.query.detail!=undefined)
+    {
+      jd =  this.$route.query.detail
+      this.btn= jd
+      this.dsb = !jd
+      this.isShow=true
+      this.isShow1 = false;
+      this.$route.meta.title = "淇敼浜岀淮鐮佽褰�";//鍒楄〃鐨勫悕绉�
+    }
+    else if(this.$route.query.sh!=undefined)
+    {
+      this.$route.meta.title = "浜岀淮鐮佽缁嗕俊鎭鏍�";//鍒楄〃鐨勫悕绉�
+      jd = this.$route.query.sh
+     this.dsb = !jd
+   //  alert(this.dsb)
+      this.isShow = false
+      this.isShow1 = true
+    }
+    else{
+
+      this.$route.meta.title = "浜岀淮鐮佽缁嗕俊鎭�";//鍒楄〃鐨勫悕绉�
+      this.btn = false;
+      this.isShow=false
+      this.isShow1 = false;
+     //       alert(this.btn)
+    }
+    this.getData()
+    console.log(this.fileList,'fileListfilelllllllllllll')
+  },
+  mounted() {},
+  methods: {
+    getData(){
+  const id = this.$route.params && this.$route.params.id;
+ this.fileList1 = []
+	this.ID = id;
+    let _this = this
+    if (id) {
+      this.loading = true;
+     // alert(id)
+      getFSInfo(id).then((response) => {
+        console.log(response)
+        // console.log(response,'666666666')
+        this.formData = response.data;
+  let paths = this.formData.filePath.split(",");
+        console.log(response.data)
+
+        this.fileList.push({name:response.data.codeS,url: process.env.VUE_APP_BASE_TRUE_API+response.data.codeS})
+		//  _this.fileList1 = _this.fileList
+   // alert(response.data.filePath)
+   for(let i = 0; i < paths.length; i++)
+   {
+     if(paths[i]!="") {
+        var lsr = paths[i].split("/")
+ this.fileList1.push({name:lsr[lsr.length-1], url: process.env.VUE_APP_BASE_TRUE_API+paths[i],res:false})
+        this.loading = false;
+        }
+        }
+      });
+    }
+    },
+    submitFormAudit() {
+      this.$refs['elForm'].validate(valid => {
+        if (valid) {
+          if (this.formData.id != undefined) {
+            this.formData.approveStatus = 0
+            updateFScan(this.formData).then(response => {
+              this.$modal.msgSuccess("瀹℃牳鎴愬姛");
+              this.btn=false
+
+            });
+          } else {
+            this.$modal.msgSuccess("淇敼澶辫触");
+
+          }
+        }
+      })
+    },
+    submitFormAuditFail () {
+      this.$refs['elForm'].validate(valid => {
+        if (valid) {
+          if (this.formData.id != undefined) {
+            this.formData.approveStatus = 2
+            updateFScan(this.formData).then(response => {
+              this.$modal.msgSuccess("瀹℃牳鎴愬姛锛岄渶瑕佷慨鏀归噸鏂颁笂浼狅紒");
+              this.btn=false
+
+            });
+          } else {
+            this.$modal.msgSuccess("淇敼澶辫触");
+
+          }
+        }
+      })
+    },
+    submitForm() {
+      // let ul = this.fileList.map(function (elem){
+      //   return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
+      // }).join(",")
+      let uls = this.fileList1.map(function (elem){
+        return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
+      }).join(",")
+      this.formData.filePath = uls
+     //  console.log(this.fileList1)
+     // if(this.fileList1.length>0)
+     //  this.formData.filePath = this.fileList1[0].url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
+
+      this.$refs['elForm'].validate(valid => {
+        if (valid) {
+          this.formData.approveStatus = 1
+          if (this.formData.id != undefined) {
+            updateFScan(this.formData).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.btn=false
+
+            });
+          } else {
+            this.$modal.msgSuccess("淇敼澶辫触");
+
+          }
+        }
+      })
+    },
+    handleChange1(file)
+    {
+      this.uploadFileList1.push(file.raw);
+       this.fileList1.push({name:file.name,url:file.url,res:true})
+       console.log("=========5555=========")
+       //console.log(file)
+    },
+    resetForm() {
+      this.$refs['elForm'].resetFields()
+    },
+    handlePreview(file)
+    {
+      let formData = {'path':"/"+file.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")};
+      let lens = formData.path.split(".")
+      let suffix = lens[lens.length-1]
+      download(formData).then(async (response) => {
+        const isLogin = await blobValidate(response);
+        let nt = new Date().getTime()
+        let filename = 'scond_'+nt+'.'+suffix
+        const blob = new Blob([response])
+        saveAs(blob, filename)
+      })
+    },
+    handleRemoveFile(file) {
+	  //鍒よ鏄惁鏄箣鍓嶇殑鍥剧墖
+	 // let res = false
+    //鍒よ鏄惁鏄箣鍓嶇殑鍥剧墖
+      let res = false
+      for(let i = 0; i < this.fileList1.length; i++)
+      {
+        if(this.fileList1[i].url==file.url)
+    	{
+    		if(this.fileList1[i].res==false)
+    			res = true
+    		else
+    		{
+       //   alert(90)
+    			this.$delete(this.uploadFileList1, Math.abs(i - this.uploadFileList1.length-1))
+    		}
+
+this.$delete(this.fileList1,i);
+    	}
+      }
+
+//alert(123)
+      let uls = ""
+      this.fileList1.map(function (elem){
+        if(elem.res==false)
+      			uls = uls +","+elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
+      })
+      this.formData.filePath = uls;
+     // alert(this.formData.filePath)
+    //  alert(this.formData.url)
+    //console.log(this.fileList1)
+      if(res==true){
+    	  updateFScan(this.formData).then(response => {
+    		this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+    		// this.open = false;
+
+    	  });
+      }
+   //   for(let i = 0; i < this.fileList1.length; i++)
+
+
+
+    },
+
+
+    handlePictureCardPreview(file) {
+      this.dialogImageUrl = file.url;
+      this.dialogVisible = true;
+    },
+    handleDownload(url) {
+
+      var formData = {'path':url.replace(process.env.VUE_APP_BASE_TRUE_API,"")};
+      let lens = formData.path.split(".")
+      let suffix = lens[lens.length-1]
+      download(formData).then(async (response) => {
+        const isLogin = await blobValidate(response);
+        let nt = new Date().getTime()
+        let filename = 'scods_'+nt+'.'+suffix
+        const blob = new Blob([response])
+        saveAs(blob, filename)
+      })
+    },
+    handleEdit()
+    {
+      this.dsb = false
+      this.btn = true
+      this.isShow=false
+    },
+
+//鑷畾涔変笂浼犳柟娉�
+    handleChange(file, fileList1) {
+       //瀹氫箟涓�涓叏灞�鏁扮粍uploadFileList鏉ュ仛瀛樺偍
+
+     // this.uploadFileList.push(file.raw);
+
+    },
+	//鑷畾涔変笂浼犳柟娉�
+
+	fileUpload(){
+		var formData = new FormData();
+		//this.$refs.upload1.submit();
+	//	alert(this.uploadFileList1.length)
+		// formData.append('uploadFile', file);
+		if(this.uploadFileList1.length==0){
+			  this.$modal.msgSuccess("鏂囨。涓婁紶鍒楄〃涓嶈兘涓虹┖锛�");
+			  return}
+
+		this.uploadFileList1.forEach((elem)=>{
+			formData.append("files", elem)
+
+		})
+		console.log(this.uploadFileList1)
+		let _this = this
+
+		this.uploading = true;
+		uploadPic1(formData).then(response => {
+		_this.uploadFileList1 = []
+   // alert(_this.formData.id)
+    //  alert(_this.formData.filePath)
+		  _this.formData.filePath = _this.formData.filePath+","+response.fileNames
+    //  alert(  _this.formData.filePath )
+		    updateFScan(_this.formData).then(response => {
+		      this.$modal.msgSuccess("鏂囨。涓婁紶鎴愬姛");
+		      // this.open = false;
+          _this.getData()
+          this.fileListOther1=[]
+		    });
+		  })
+},
+picUpload()
+	{
+		var formData = new FormData();
+		//this.$refs.upload.submit();
+		//alert(this.uploadFileList.length)
+	if(this.uploadFileList.length==0){
+		  this.$modal.msgSuccess("鍥惧儚涓婁紶鍒楄〃涓嶈兘涓虹┖锛�");
+		  return
+    }
+		this.uploadFileList.forEach((elem)=>{
+			formData.append("files", elem)
+		})
+		let _this = this
+        uploadPic1(formData).then(response => {
+			// console.log(response.originalFilenames)
+			// console.log(response.urls)
+			// console.log(response.fileNames)
+			// 		console.log(response.newFileNames)
+        // let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length)
+        // _this.uploading1= false;
+        // console.log(_this.fot.includes(pth))
+        // // debugger
+        // if(_this.fot.includes(pth) === true)
+        // {
+        //   _this.fileList.push({name:response.data.fileName, "url":response.data.url})
+        //   let ul = _this.fileList.map(function (elem){
+        //     return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
+        //   }).join(",")
+        //   let uls = _this.fileListOther.map(function (elem){
+        //     return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
+        //   }).join(",")
+		//console.log(_this.fileList)
+	//	alert(response.fileNames)
+
+          _this.formData.filePath = _this.formData.filePath+","+response.fileNames
+          _this.uploadFileList = []
+         // alert(87)
+          updateFScan(_this.formData).then(response => {
+            _this.$modal.msgSuccess("鍥剧墖涓婁紶鎴愬姛");
+            // this.open = false;
+          });
+        // }
+        // else{
+        //   _this.fileListOther.push({name:response.data.fileName, url:response.data.url})
+        // }
+      });
+	},
+    requestUpload(params)
+    {
+	//	alert(123)
+   // this.uploadFileList1.push(params.file);
+  //  console.log("-----------")
+	//console.log(this.uploadFileList1)
+  // var file = params.file;
+  // var formData = new FormData();
+
+  // formData.append('file', file);
+  // let _this = this
+
+  // uploadPic(formData).then(response => {
+  //   console.log(response)
+
+  //   //let pth = response.originalFilename.substr(response.originalFilename.length-4, response.originalFilename.length)
+  //   _this.fileList1.push({name:response.fileName, url:response.fileName})
+  //   console.log(_this.fileList1)
+  //   // _this.fileList2.push({name:response.data.fileName, url:response.data.url})
+  // //  alert(response.url)
+  //   console("ok")
+  // })
+    },
+
+
+
+  }
+}
+
+</script>
+
+<style scoped>
+.app-container{
+  background-color: #FEF7FC;
+}
+.mt
+{
+  position: relative;
+}
+.dt{
+  display: block;
+
+}
+.hide /deep/ .el-upload--picture-card {
+  display: none;
+}
+.pt{
+  right: 10px;
+  top:-3px;
+  display: block;
+  position: absolute;
+}
+.form{
+  background:center/11% no-repeat url('../../assets/icons/form.png') ;
+}
+</style>

--
Gitblit v1.9.1