From e1dd822239ce5b1fd85462c95b264b300153a4cf Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期二, 03 十一月 2026 21:45:00 +0800
Subject: [PATCH] 修改了回款名字
---
src/views/project/fund/applyDetail0/index.vue | 149 ++++++++++++++++++++++++++++++++-----------------
1 files changed, 98 insertions(+), 51 deletions(-)
diff --git a/src/views/project/fund/applyDetail0/index.vue b/src/views/project/fund/applyDetail0/index.vue
index b061aed..f770dec 100644
--- a/src/views/project/fund/applyDetail0/index.vue
+++ b/src/views/project/fund/applyDetail0/index.vue
@@ -12,7 +12,7 @@
style="width: 100%"
v-model="form.createTime"
type="date" format="yyyy-MM-dd"
- value-format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd HH:mm:ss"
placeholder="鐢宠鏃ユ湡"
>
</el-date-picker>
@@ -1034,8 +1034,21 @@
:close-on-click-modal="false"
:title="pdftitle"
:visible.sync="pdfVisible"
+ :fullscreen="pdfFullscreen"
width="60%"
+ custom-class="pdf-resize-dialog"
+ @closed="pdfFullscreen = false"
>
+ <template slot="title">
+ <span>{{ pdftitle }}</span>
+ <el-button
+ class="pdf-fullscreen-btn"
+ size="mini"
+ :icon="pdfFullscreen ? 'el-icon-close' : 'el-icon-full-screen'"
+ @click="pdfFullscreen = !pdfFullscreen"
+ >{{ pdfFullscreen ? "杩樺師" : "鍏ㄥ睆" }}</el-button
+ >
+ </template>
<div class="pdfimg">
<div class="box-pdf">
<div>
@@ -1125,16 +1138,7 @@
</div> -->
</div>
- <div v-if="this.previewpdf" class="pdfimgmin">
- <!-- <img :src="pdfimg" /> -->
- <el-image
- style="width: 95%; height: 90%"
- :src="pdfimg"
- :preview-src-list="pdfimgsrcList"
- >
- </el-image>
- </div>
- <div v-else class="pdfimgmins">{{ hintitle }}</div>
+ <attachment-preview-pane :file="embeddedFile" style="flex: 1; min-width: 0;" />
</div>
</el-dialog>
<el-dialog title="鎻愮ず" :visible.sync="Savereminder" width="30%">
@@ -1228,6 +1232,7 @@
import OrgSelecter from "@/views/project/components/orgselect";
import { getToken } from "@/utils/auth";
import { moneySum, moneyAdd, moneySub, moneyMul, moneyRound } from "@/utils/money";
+import { checkFileName, checkDetails } from "@/utils/fileNameCheck";
export default {
//import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
@@ -1551,15 +1556,8 @@
},
// 鑾峰彇璇锋眰澶�
Getnetworkheader() {
- let string = window.location.href;
- if (string.includes("9091")) {
- const index = string.indexOf("9091");
- this.Networkheader = string.slice(0, index + 4); // 鎴彇9091鍙婂叾鍓嶉儴瀛楃
- // console.log(this.Networkheader);
- } else {
- const index = string.indexOf("8032");
- this.Networkheader = string.slice(0, index + 4); // 鎴彇8032鍙婂叾鍓嶉儴瀛楃
- }
+ // 浠ュ綋鍓嶉〉闈� origin 涓哄噯锛屽吋瀹� 80/8032/9091 鍙婂悗缁鍙h皟鏁�
+ this.Networkheader = window.location.origin;
},
/** 閫氳繃鍙傛暟鑾峰彇涓氬姟绫诲瀷 */
getroute() {
@@ -1845,6 +1843,11 @@
},
/** 鎻愪氦鎸夐挳 */
submitForm: debounce(function() {
+ // 2026-10-15锛氫繚瀛樺墠闄勪欢鏂囦欢鍚嶈鑼冩牎楠岋紙浠呮柊澧炲崟鎹紱鑰佸崟鎹殑鍘嗗彶闄勪欢鐢卞悗绔寜"鍙牎楠屾湰娆″彉鏇�"鏀捐锛�
+ if (!this.checkDetailFileNames()) {
+ return;
+ }
+
if (!this.randomnumber) {
this.randomnumber = this.generateRandomString(9);
this.form.randomnumber = this.randomnumber;
@@ -2523,6 +2526,11 @@
},
// 鎺ュ彈鎻愰啋绔嬪埢淇濆瓨
Savenow() {
+ // 2026-10-15锛氫繚瀛樺墠闄勪欢鏂囦欢鍚嶈鑼冩牎楠岋紙浠呮柊澧炲崟鎹紱鑰佸崟鎹殑鍘嗗彶闄勪欢鐢卞悗绔寜"鍙牎楠屾湰娆″彉鏇�"鏀捐锛�
+ if (!this.checkDetailFileNames()) {
+ return;
+ }
+
if (!this.randomnumber) {
this.randomnumber = this.generateRandomString(9);
this.form.randomnumber = this.randomnumber;
@@ -2998,7 +3006,43 @@
// console.log(response.msg);
// }
// },
+ /**
+ * 2026-10-15锛氫笂浼犳椂鏍¢獙闄勪欢鏂囦欢鍚嶏紙涓氬姟瑕佹眰锛氫笉鍚堟牸绔嬪嵆鎻愮ず涓斾笉鍔犲叆鍒楄〃锛夈��
+ * 瑙勫垯涓庡悗绔� AttachmentNameValidator 鍚屽彛寰勶細涓嶅己鍒跺惈涓枃 / 鍘绘帀鎵╁睍鍚嶅悗涓诲共 鈮�20 瀛� /
+ * 涓嶅惈绌烘牸鍙� / \ : * ? " < > | # % 绛夌壒娈婂瓧绗︺��
+ */
+ checkUploadFileName(file) {
+ const raw = file && file.raw ? file.raw.name : file && file.name;
+ const r = checkFileName(raw);
+ if (!r.ok) {
+ this.$modal.msgError(r.msg);
+ return false;
+ }
+ return true;
+ },
+
+ /**
+ * 2026-10-15锛氫繚瀛樺墠鏍¢獙鏁村崟鏄庣粏闄勪欢鏂囦欢鍚嶏紙鍚悓涓�琛屽唴閲嶅悕锛夈��
+ * 鍙e緞锛堜笟鍔$‘璁わ級锛氬彧鏍¢獙"鏈鍙樻洿"鐨勯檮浠垛�斺�旇�佸崟鎹噷宸插瓨鍦ㄧ殑涓嶅悎瑙勯檮浠跺悕涓嶈兘鎶婁繚瀛樺崱姝�
+ * 锛堝惁鍒欒�佸崟鎹敼涓�涓噾棰濋兘瀛樹笉杩涘幓锛夈�傚悗绔寜 id 璇绘棫璁板綍鏀捐鍘嗗彶闄勪欢锛涘墠绔嬁涓嶅埌"鍝簺鏄巻鍙�"
+ * 鐨勬潈濞佷俊鎭紝鍥犳**浠呮柊澧炲崟鎹�**鍋氫繚瀛樺墠鎷︽埅锛岀紪杈戣�佸崟鎹椂鏂板鐨勪笉鍚堣闄勪欢鐢卞悗绔簩娆℃牎楠屾嫤涓嬨��
+ */
+ checkDetailFileNames() {
+ if (this.form && this.form.id) {
+ return true;
+ }
+ const c = checkDetails(this.rbDetails);
+ if (!c.ok) {
+ this.$modal.msgError(c.msg);
+ return false;
+ }
+ return true;
+ },
+
uploadSccess(response, file, fileList) {
+ if (!this.checkUploadFileName(file)) {
+ return;
+ }
this.rbDetails;
//鑾峰彇绁ㄦ嵁淇℃伅浣嶇疆
@@ -3009,9 +3053,15 @@
this.fileListto.push({ name: file.name, url: response.fileName });
// this.fileListto.push({ name: file.name, url: response.url });
this.pdfimgsrcList.push(
- this.Networkheader + "/prod-api" + response.fileName
+ this.Networkheader + process.env.VUE_APP_BASE_API + response.fileName
);
- this.pdfimg = this.Networkheader + "/prod-api" + response.fileName;
+ this.pdfimg = this.Networkheader + process.env.VUE_APP_BASE_API + response.fileName;
+ const localUrl = URL.createObjectURL(file.raw);
+ this.embeddedFile = {
+ name: file.name,
+ url: localUrl,
+ type: /\.pdf$/i.test(file.name) ? "pdf" : "image"
+ };
this.rbDetails[this.atpresent].annexfilesList = this.fileListto;
} else {
@@ -3026,11 +3076,11 @@
if (this.rbDetails[index].annexfilesList) {
this.previewpdf = true;
this.fileListto = this.rbDetails[index].annexfilesList;
- this.pdfimg = this.Networkheader + "/prod-api" + this.fileListto[0].url;
+ this.pdfimg = this.Networkheader + process.env.VUE_APP_BASE_API + this.fileListto[0].url;
// this.pdfimg = this.fileListto[0].url;
this.pdfimgsrcList = [];
this.fileListto.forEach(item => {
- this.pdfimgsrcList.push(this.Networkheader + "/prod-api" + item.url);
+ this.pdfimgsrcList.push(this.Networkheader + process.env.VUE_APP_BASE_API + item.url);
});
console.log(this.pdfimgsrcList);
console.log(this.pdfimg);
@@ -3041,34 +3091,31 @@
}
},
- // 鐐瑰嚮宸蹭笂浼犳枃浠�
+ // 鐐瑰嚮宸蹭笂浼犳枃浠讹細鍦ㄩ檮浠跺脊绐楀彸渚у唴宓岄瑙�
downFile(item) {
- console.log(item);
- this.pdftitle = item.name;
- let name = item.name.split(".");
- if (name[1] == "pdf") {
- this.$modal.msgWarning("褰撳墠鏂囦欢鏆備笉鏀寔棰勮");
- this.previewpdf = false;
- this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
- } else if (name[1] == "jpg" || "png") {
- this.previewpdf = true;
- if (item.url) {
- this.pdfimg = this.Networkheader + "/prod-api" + item.url;
-
- // if (!this.pdfimgsrcList.includes(this.pdfimg)) {
- // this.pdfimgsrcList.push(this.pdfimg);
- // console.log("鍔犲叆");
- // }
- console.log(this.pdfimg);
- console.log(this.pdfimgsrcList, "imglist");
- } else {
- this.pdfimg = this.Networkheader + "/prod-api" + item.url;
- }
- } else {
- this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
- this.$modal.msgWarning("褰撳墠鏂囦欢鏆備笉鏀寔棰勮");
- this.previewpdf = false;
+ if (this.operationType == "detail") {
+ const list = (this.fileListto || []).map(f => ({
+ name: f.name,
+ url: f.url
+ }));
+ const index = list.findIndex(f => f.url === item.url);
+ this.$previewFile(list, index > -1 ? index : 0);
+ return;
}
+ const ext = String(item.name || "").toLowerCase().split(".").pop();
+ const isImage = ["jpg", "jpeg", "png", "gif", "bmp", "webp"].includes(ext);
+ if (ext !== "pdf" && !isImage) {
+ this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
+ this.$modal.msgWarning("褰撳墠鏂囦欢鏆備笉鏀寔棰勮");
+ return;
+ }
+ this.embeddedFile = {
+ name: item.name,
+ url: item.url,
+ type: ext === "pdf" ? "pdf" : "image"
+ };
+ this.pdftitle = item.name;
+ this.pdfVisible = true;
},
getIndexInArray(arr, obj) {
return arr.indexOf(obj);
@@ -3079,7 +3126,7 @@
console.log(row);
const indexlist = this.getIndexInArray(
this.pdfimgsrcList,
- this.Networkheader + "/prod-api" + row.url
+ this.Networkheader + process.env.VUE_APP_BASE_API + row.url
);
console.log(indexlist);
this.pdfimgsrcList.splice(indexlist, 1);
--
Gitblit v1.9.3